VaKeR CYBER ARMY
Logo of a company Server : Apache/2.4.41 (Ubuntu)
System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64
User : www-data ( 33)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Directory :  /var/www/html/libs/absol-poser/dist/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/html/libs/absol-poser/dist/absol_poser.js
/*
 * 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/).
 */
/******/ (() => { // webpackBootstrap
/******/ 	var __webpack_modules__ = ({

/***/ "./contants/QuestionTypeItems.js":
/*!***************************************!*\
  !*** ./contants/QuestionTypeItems.js ***!
  \***************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = exports.QuestionTypeDict = exports.QuestionType2Icon = void 0;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar QuestionTypeItems = [{\n  text: 'Trả lời ngắn',\n  icon: 'span.mdi.mdi-text-short',\n  questionType: 'short_answer'\n}, {\n  text: 'Trả lời dài',\n  icon: 'span.mdi.mdi-text',\n  questionType: 'paragraph'\n}, //15p\n'-------------', {\n  text: 'Trắc nghiệm (Một đáp án)',\n  icon: 'span.mdi.mdi-radiobox-marked',\n  questionType: 'multiple_choice'\n}, {\n  text: 'Trắc nghiệm (Nhiều đáp án)',\n  icon: 'span.mdi.mdi-check-box-outline',\n  questionType: 'checkboxes'\n}, // {\n//     text: 'Menu thả xuống',\n//     icon: 'span.mdi.mdi-arrow-down-drop-circle outline',\n//     questionType: 'dropdown'\n// },\n'------------', // {\n//     text: 'Tải tệp lên',\n//     icon: 'span.mdi.mdi-cloud-upload-outline',\n//      questionType: 'file_upload'\n// },\n{\n  text: 'Phạm vi tuyến tính',\n  icon: 'span.mdi.mdi-ray-start-vertex-end',\n  questionType: 'linear_scale'\n} // {\n//     text: 'Lưới trắc nghiệm',\n//     icon: '<svg viewBox=\"0 0 24 24\">\\n' +\n//         '    <path fill=\"currentColor\" d=\"M12 16C13.1 16 14 16.9 14 18S13.1 20 12 20 10 19.1 10 18 10.9 16 12 16M12 10C13.1 10 14 10.9 14 12S13.1 14 12 14 10 13.1 10 12 10.9 10 12 10M12 4C13.1 4 14 4.9 14 6S13.1 8 12 8 10 7.1 10 6 10.9 4 12 4M6 16C7.1 16 8 16.9 8 18S7.1 20 6 20 4 19.1 4 18 4.9 16 6 16M6 10C7.1 10 8 10.9 8 12S7.1 14 6 14 4 13.1 4 12 4.9 10 6 10M6 4C7.1 4 8 4.9 8 6S7.1 8 6 8 4 7.1 4 6 4.9 4 6 4M18 16C19.1 16 20 16.9 20 18S19.1 20 18 20 16 19.1 16 18 16.9 16 18 16M18 10C19.1 10 20 10.9 20 12S19.1 14 18 14 16 13.1 16 12 16.9 10 18 10M18 4C19.1 4 20 4.9 20 6S19.1 8 18 8 16 7.1 16 6 16.9 4 18 4Z\" />\\n' +\n//         '</svg>'\n//      questionType: 'multiple_choice_grid'\n// },\n// {\n//     text: 'Lưới hộp kiểm',\n//     icon: '<i class=\"material-icons\">apps</i>'\n//    questionType:'checkbox_grid'\n// },\n// '----------------',\n// {\n//     text: 'Ngày',\n//     icon: 'span.mdi.mdi-calendar',\n//     questionType: 'date'\n// },\n// {\n//     text: 'Giờ',\n//     icon: 'span.mdi.mdi-clock-outline'\n//     questionType: 'time'\n// },\n];\nvar QuestionType2Icon = QuestionTypeItems.reduce(function (ac, cr) {\n  if (cr.icon) ac[cr.questionType] = cr.icon;\n  return ac;\n}, {});\nexports.QuestionType2Icon = QuestionType2Icon;\nvar QuestionTypeDict = QuestionTypeItems.reduce(function (ac, cr) {\n  if (_typeof(cr) === 'object') ac[cr.questionType] = cr;\n  return ac;\n}, {});\nexports.QuestionTypeDict = QuestionTypeDict;\nvar _default = QuestionTypeItems;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./contants/QuestionTypeItems.js?");

/***/ }),

/***/ "./dev.js":
/*!****************!*\
  !*** ./dev.js ***!
  \****************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\n__webpack_require__(/*! absol */ \"./node_modules/absol/src/index.js\");\n\n__webpack_require__(/*! absol-acomp/dev */ \"./node_modules/absol-acomp/dev.js\");\n\nvar _index = _interopRequireDefault(__webpack_require__(/*! ./index */ \"./index.js\"));\n\nvar _install = _interopRequireDefault(__webpack_require__(/*! ./dom/install */ \"./dom/install.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nwindow.absol = window.absol || {};\nwindow.absol.poser = _index[\"default\"];\n(0, _install[\"default\"])(absol.coreDom);\n\n//# sourceURL=webpack://absol-poser/./dev.js?");

/***/ }),

/***/ "./dom/Core.js":
/*!*********************!*\
  !*** ./dom/Core.js ***!
  \*********************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = exports._ = exports.$$ = exports.$ = void 0;\n\n__webpack_require__(/*! ../css/config_format.css */ \"./css/config_format.css\");\n\n__webpack_require__(/*! ../css/common.css */ \"./css/common.css\");\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _install = _interopRequireDefault(__webpack_require__(/*! absol-acomp/js/dom/install */ \"./node_modules/absol-acomp/js/dom/install.js\"));\n\nvar _SelectMenu = _interopRequireDefault(__webpack_require__(/*! absol-acomp/js/SelectMenu */ \"./node_modules/absol-acomp/js/SelectMenu.js\"));\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! absol-acomp/ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar Core = new _Dom[\"default\"]();\n(0, _install[\"default\"])(Core);\nCore.install('dropdown-ico', _ACore[\"default\"].creator['dropdown-ico']);\nvar _ = Core._;\nexports._ = _;\nvar $ = Core.$;\nexports.$ = $;\nvar $$ = Core.$$;\nexports.$$ = $$;\nvar _default = Core; ///\n\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./dom/Core.js?");

/***/ }),

/***/ "./dom/editor/APEditableAnswerCtn.js":
/*!*******************************************!*\
  !*** ./dom/editor/APEditableAnswerCtn.js ***!
  \*******************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../../css/editableanswerctn.css */ \"./css/editableanswerctn.css\");\n\nvar _Core = _interopRequireWildcard(__webpack_require__(/*! ../Core */ \"./dom/Core.js\"));\n\nvar _Board = _interopRequireDefault(__webpack_require__(/*! absol-acomp/js/Board */ \"./node_modules/absol-acomp/js/Board.js\"));\n\nvar _BoardTable = __webpack_require__(/*! absol-acomp/js/BoardTable */ \"./node_modules/absol-acomp/js/BoardTable.js\");\n\nvar _EventEmitter = __webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction APEditableAnswerCtn() {\n  this.$editableAnswer = (0, _Core.$)('.ap-editable-answer', this);\n  this.$removeBtn = (0, _Core.$)('.ap-editable-answer-ctn-remove-bt-ctn > button', this).on('click', this.eventHandler.pressRemove);\n}\n\nAPEditableAnswerCtn.tag = 'APEditableAnswerCtn'.toLowerCase();\n\nAPEditableAnswerCtn.render = function () {\n  return (0, _Core._)({\n    tag: _Board[\"default\"].tag,\n    extendEvent: ['pressremove'],\n    \"class\": 'ap-editable-answer-ctn',\n    child: [{\n      \"class\": ['ap-editable-answer-ctn-drag-zone', _BoardTable.DRAG_ZONE_CLASS_NAME],\n      child: '<i class=\"material-icons drag-icon-button\">drag_indicator</i>',\n      on: {\n        contextmenu: function contextmenu(event) {\n          if ((0, _EventEmitter.isMouseRight)(event)) event.preventDefault();\n        }\n      }\n    }, {\n      \"class\": 'ap-editable-answer'\n    }, {\n      \"class\": 'ap-editable-answer-ctn-remove-bt-ctn',\n      child: {\n        tag: 'button',\n        \"class\": 'ap-button',\n        child: 'span.mdi.mdi-close'\n      }\n    }]\n  });\n};\n\nAPEditableAnswerCtn.prototype.addChild = function (child) {\n  this.$editableAnswer.selfReplace(child);\n  this.$editableAnswer = child;\n};\n\nAPEditableAnswerCtn.eventHandler = {};\n\nAPEditableAnswerCtn.eventHandler.pressRemove = function (event) {\n  this.emit('pressremove', {\n    type: 'pressremove',\n    target: this,\n    originalEvent: event\n  }, this);\n};\n\n_Core[\"default\"].install(APEditableAnswerCtn);\n\nvar _default = APEditableAnswerCtn;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./dom/editor/APEditableAnswerCtn.js?");

/***/ }),

/***/ "./dom/editor/APEditableSection.js":
/*!*****************************************!*\
  !*** ./dom/editor/APEditableSection.js ***!
  \*****************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Core = _interopRequireWildcard(__webpack_require__(/*! ../Core */ \"./dom/Core.js\"));\n\n__webpack_require__(/*! ../../css/common.css */ \"./css/common.css\");\n\n__webpack_require__(/*! ../../css/section.css */ \"./css/section.css\");\n\nvar _utils = __webpack_require__(/*! absol-acomp/js/utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _Attributes = _interopRequireDefault(__webpack_require__(/*! absol/src/AppPattern/Attributes */ \"./node_modules/absol/src/AppPattern/Attributes.js\"));\n\nvar _PreInput = _interopRequireDefault(__webpack_require__(/*! absol-acomp/js/PreInput */ \"./node_modules/absol-acomp/js/PreInput.js\"));\n\nvar _utils2 = __webpack_require__(/*! ../../utils */ \"./utils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction APEditableSection() {\n  var _this = this;\n\n  this.imageFiles = [];\n  this.$idx = (0, _Core.$)('.ap-editable-question-index-input', this).on('change', this.eventHandler.idxInputChange);\n  this.$imagebtn = (0, _Core.$)('.ap-editable-section-image-btn-ctn button', this).on('click', this.eventHandler.clickAddImage);\n  this.$imageCtn = (0, _Core.$)('.ap-editable-image-ctn', this);\n  this.$attachmentAddBtn = (0, _Core.$)('.as-message-input-attachment-add-btn', this).on('click', this.eventHandler.clickAddImage);\n  /***\r\n   *\r\n   * @type {PreInput}\r\n   */\n\n  this.$description = (0, _Core.$)('.ap-editable-section-description', this).on('focus', this.eventHandler.descInputFocus).on('blur', this.eventHandler.descInputBlur);\n  this.$name = (0, _Core.$)('.ap-editable-section-name', this).on('change', this.eventHandler.nameInputChange);\n  this.$actionBtns = (0, _Core.$$)('.ap-editable-section-tool button', this).forEach(function (btn) {\n    btn.on('click', _this.eventHandler.clickActionButton.bind(_this, btn.attr('data-action')));\n  });\n  this._data = new _Attributes[\"default\"](this);\n\n  this._data.loadAttributeHandlers(this.dataHandlers);\n\n  this.idx = 1;\n}\n\nAPEditableSection.tag = \"APEditableSection\".toLowerCase();\n\nAPEditableSection.render = function () {\n  return (0, _Core._)({\n    extendEvent: ['action', 'change'],\n    \"class\": ['ap-block', 'ap-editable-section'],\n    child: [{\n      \"class\": 'ap-editable-section-header',\n      child: [{\n        \"class\": 'ap-editable-section-idx',\n        child: [{\n          \"class\": 'ap-field-name',\n          child: {\n            tag: 'span',\n            child: {\n              text: 'Thứ tự section'\n            }\n          }\n        }, {\n          tag: 'input',\n          \"class\": ['ap-input', 'ap-editable-question-index-input'],\n          attr: {\n            type: 'number',\n            pattern: \"\\d*\",\n            inputmode: \"decimal\",\n            value: 1,\n            step: 1,\n            min: 1,\n            max: 3200,\n            readonly: 'true'\n          }\n        }]\n      }, {\n        \"class\": 'ap-editable-section-tool',\n        child: [{\n          tag: 'button',\n          \"class\": 'ap-button',\n          attr: {\n            'data-action': 'merge_with_above',\n            title: 'Hợp nhất với section trước'\n          },\n          child: 'span.mdi.mdi-call-merge'\n        }, {\n          tag: 'button',\n          \"class\": 'ap-button',\n          attr: {\n            \"data-action\": 'delete',\n            title: 'Xóa section'\n          },\n          child: 'span.mdi.mdi-delete-forever'\n        }]\n      }]\n    }, {\n      \"class\": 'ap-editable-section-content',\n      child: [{\n        \"class\": 'ap-editable-section-name-ctn',\n        child: [{\n          child: {\n            \"class\": 'ap-field-name',\n            child: {\n              tag: 'span',\n              child: {\n                text: 'Tên Section'\n              }\n            }\n          }\n        }, {\n          tag: 'input',\n          attr: {\n            type: 'text'\n          },\n          \"class\": ['ap-input', 'ap-editable-section-name']\n        }]\n      }, {\n        \"class\": 'ap-editable-section-description-ctn',\n        child: [{\n          child: {\n            \"class\": 'ap-field-name',\n            child: {\n              tag: 'span',\n              child: {\n                text: 'Mô tả Section'\n              }\n            }\n          }\n        }, {\n          tag: _PreInput[\"default\"].tag,\n          \"class\": ['ap-input', 'ap-editable-section-description']\n        }]\n      }, {\n        \"class\": 'ap-editable-image-ctn',\n        child: [{\n          tag: 'button',\n          \"class\": 'as-message-input-attachment-add-btn',\n          child: [// 'span.mdi.mdi-arrow-down-bold.as-message-input-attachment-add-btn-drop',\n          {\n            tag: 'span',\n            \"class\": 'as-message-input-attachment-add-btn-plus',\n            child: {\n              text: \"+\"\n            }\n          }]\n        }]\n      }, {\n        \"class\": 'ap-editable-section-image-btn-ctn',\n        child: {\n          tag: 'button',\n          \"class\": 'ap-button',\n          child: 'span.mdi.mdi-image-outline'\n        }\n      }]\n    }]\n  });\n};\n\nAPEditableSection.prototype.apBlockType = \"section\";\n/***\r\n *\r\n * @param {File|string} file\r\n * @param {Event|*} originalEvent\r\n * @public\r\n */\n\nAPEditableSection.prototype._addImage = function (file, originalEvent) {\n  var thisA = this;\n  var src;\n  var fileName;\n\n  if (typeof file === \"string\") {\n    src = file;\n    fileName = file.split('/').pop() || '';\n  } else if (file instanceof Blob || file instanceof File) {\n    src = (0, _utils2.toImageUrl)(file);\n    fileName = file.name;\n  } else return;\n\n  this.imageFiles.push(file);\n  this.addClass('ap-has-image');\n  var itemElt = (0, _Core._)({\n    \"class\": ['as-message-input-attach-preview', 'as-image'],\n    attr: {\n      title: file.name\n    },\n    child: [{\n      \"class\": 'as-message-input-attach-preview-image',\n      style: {\n        backgroundImage: 'url(' + src + ')'\n      }\n    }, {\n      tag: 'button',\n      \"class\": 'as-message-input-attach-preview-close-btn',\n      child: 'span.mdi.mdi-close',\n      attr: {\n        title: 'remove'\n      },\n      on: {\n        click: function click(event) {\n          var idx = thisA.imageFiles.indexOf(file);\n\n          if (idx >= 0) {\n            thisA.imageFiles.splice(idx, 1);\n          }\n\n          itemElt.remove();\n\n          if (thisA.imageFiles.length === 0) {\n            thisA.removeClass('ap-has-image');\n          }\n\n          thisA.emit('change', {\n            type: 'change',\n            target: thisA,\n            fieldName: 'images'\n          }, thisA);\n        }\n      }\n    }, {\n      \"class\": 'as-message-input-attach-preview-info',\n      child: [{\n        \"class\": 'as-message-input-attach-preview-name',\n        child: {\n          text: fileName\n        }\n      }, {\n        \"class\": 'as-message-input-attach-preview-size',\n        child: {\n          text: (0, _utils.fileSize2Text)(file.size)\n        }\n      }]\n    }]\n  });\n  this.$imageCtn.addChildBefore(itemElt, this.$attachmentAddBtn);\n  if (originalEvent) this.emit('change', {\n    type: 'change',\n    target: this,\n    fieldName: 'images'\n  }, this);\n};\n\nAPEditableSection.property = {};\nAPEditableSection.property.idx = {\n  set: function set(value) {\n    if (typeof value !== \"number\") value = 1;\n    value = Math.max(1, Math.min(3200, value)) << 0;\n    this.$idx.value = value;\n    this.attr('data-idx', value);\n  },\n  get: function get() {\n    return parseInt(this.$idx.value);\n  }\n};\nAPEditableSection.property.data = {\n  set: function set(value) {\n    Object.assign(this._data, value);\n  },\n  get: function get() {\n    return this._data;\n  }\n};\nAPEditableSection.eventHandler = {};\n/***\r\n * @this APEditableSection\r\n */\n\nAPEditableSection.eventHandler.clickAddImage = function (event) {\n  var thisA = this; // var image = prompt(\"Enter image url: \", '');\n  // if (image && image.trim().length >0){\n  //     thisA._addImage(image.trim(), event);\n  // }\n  // //\n\n  (0, _utils.openFileDialog)({\n    accept: \"image/*\"\n  }).then(function (files) {\n    if (files && files[0]) {\n      thisA._addImage(files[0], event);\n    }\n  });\n};\n\nAPEditableSection.eventHandler.clickActionButton = function (action, event) {\n  this.emit('action', {\n    action: action,\n    target: this,\n    type: 'action',\n    originalEvent: event\n  }, this);\n};\n\nAPEditableSection.eventHandler.idxInputChange = function (event) {\n  this.$idx.value = Math.min(32000, Math.max(1, parseInt(this.$idx.value))) << 0;\n  this.emit('action', {\n    action: 'set_idx',\n    idx: this.idx,\n    target: this,\n    type: 'action',\n    originalEvent: event\n  }, this);\n};\n/***\r\n * @this APEditableSection\r\n * @param event\r\n */\n\n\nAPEditableSection.eventHandler.nameInputChange = function (event) {\n  this.emit('change', {\n    type: 'change',\n    target: this,\n    originalEvent: event,\n    fieldName: 'name'\n  }, this);\n};\n/***\r\n * @this APEditableSection\r\n * @param event\r\n */\n\n\nAPEditableSection.eventHandler.descInputFocus = function (event) {\n  this._prevDescVal = this.$description.value;\n};\n/***\r\n * @this APEditableSection\r\n * @param event\r\n */\n\n\nAPEditableSection.eventHandler.descInputBlur = function (event) {\n  var value = this.$description.value;\n\n  if (value !== this._prevDescVal) {\n    this.emit('change', {\n      type: 'change',\n      target: this,\n      originalEvent: event,\n      fieldName: 'description'\n    }, this);\n  }\n};\n\nAPEditableSection.prototype.dataHandlers = {};\nAPEditableSection.prototype.dataHandlers.name = {\n  set: function set(value) {\n    value = (value || '') + '';\n    this.$name.value = value;\n  },\n  get: function get() {\n    return this.$name.value;\n  }\n};\nAPEditableSection.prototype.dataHandlers.description = {\n  set: function set(value) {\n    value = (value || '') + '';\n    this.$description.value = value;\n  },\n  get: function get() {\n    return this.$description.value;\n  }\n};\nAPEditableSection.prototype.dataHandlers.images = {\n  /***\r\n   * @this APEditableSection\r\n   * @param images\r\n   */\n  set: function set(images) {\n    if (!(images instanceof Array)) images = [];\n\n    while (this.$imageCtn.firstChild !== this.$attachmentAddBtn) {\n      this.$imageCtn.removeChild(this.$imageCtn.firstChild);\n    }\n\n    this.imageFiles.splice(0, this.imageFiles.length);\n    images.forEach(function (file) {\n      this._addImage(file);\n    }.bind(this));\n  },\n  get: function get() {\n    return this.imageFiles.slice();\n  }\n};\nAPEditableSection.prototype.dataHandlers.ident = {\n  set: function set(value) {\n    if (!(0, _utils.isRealNumber)(value)) value = 0;\n    this.attr('data-ident', value + '');\n  },\n  get: function get() {\n    var ident = parseInt(this.attr('data-ident'));\n    if (!(0, _utils.isRealNumber)(ident)) ident = 0;\n    return ident;\n  }\n};\n\n_Core[\"default\"].install(APEditableSection);\n\nvar _default = APEditableSection;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./dom/editor/APEditableSection.js?");

/***/ }),

/***/ "./dom/editor/question/APEditableCheckboxAnswer.js":
/*!*********************************************************!*\
  !*** ./dom/editor/question/APEditableCheckboxAnswer.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Core = _interopRequireWildcard(__webpack_require__(/*! ../../Core */ \"./dom/Core.js\"));\n\n__webpack_require__(/*! ../../../css/textanswer.css */ \"./css/textanswer.css\");\n\nvar _APEditableChoiceAnswer = _interopRequireDefault(__webpack_require__(/*! ./APEditableChoiceAnswer */ \"./dom/editor/question/APEditableChoiceAnswer.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/**\r\n * @extends APEditableChoiceAnswer\r\n * @constructor\r\n */\nfunction APEditableCheckboxAnswer() {\n  _APEditableChoiceAnswer[\"default\"].call(this);\n}\n\nAPEditableCheckboxAnswer.tag = 'APEditableCheckboxAnswer'.toLowerCase();\nAPEditableCheckboxAnswer.render = _APEditableChoiceAnswer[\"default\"].render;\nObject.assign(APEditableCheckboxAnswer.prototype, _APEditableChoiceAnswer[\"default\"].prototype);\nAPEditableCheckboxAnswer.eventHandler = Object.assign({}, _APEditableChoiceAnswer[\"default\"].eventHandler);\nAPEditableCheckboxAnswer.property = Object.assign({}, _APEditableChoiceAnswer[\"default\"].property);\nAPEditableCheckboxAnswer.prototype.selectConstruction = {\n  tag: 'checkboxbutton',\n  \"class\": 'ap-radio'\n};\nAPEditableCheckboxAnswer.prototype.trueAnswerConstruction = {\n  tag: 'checkboxbutton',\n  \"class\": 'ap-radio'\n};\nAPEditableCheckboxAnswer.prototype.trueAnsTag = 'checkboxbutton';\n\n_Core[\"default\"].install(APEditableCheckboxAnswer);\n\nvar _default = APEditableCheckboxAnswer;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./dom/editor/question/APEditableCheckboxAnswer.js?");

/***/ }),

/***/ "./dom/editor/question/APEditableChoiceAnswer.js":
/*!*******************************************************!*\
  !*** ./dom/editor/question/APEditableChoiceAnswer.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Core = _interopRequireWildcard(__webpack_require__(/*! ../../Core */ \"./dom/Core.js\"));\n\n__webpack_require__(/*! ../../../css/textanswer.css */ \"./css/textanswer.css\");\n\nvar _utils = __webpack_require__(/*! absol-acomp/js/utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _Attributes = _interopRequireDefault(__webpack_require__(/*! absol/src/AppPattern/Attributes */ \"./node_modules/absol/src/AppPattern/Attributes.js\"));\n\nvar _utils2 = __webpack_require__(/*! ../../../utils */ \"./utils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/**\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction APEditableChoiceAnswer() {\n  this.$addImageBtn = (0, _Core.$)('.ap-editable-ad-image-btn', this).on('click', this.eventHandler.clickAddImage);\n  this.$imageCtn = (0, _Core.$)('.ap-editable-image-ctn', this);\n  this.$attachmentAddBtn = (0, _Core.$)('.as-message-input-attachment-add-btn', this).on('click', this.eventHandler.clickAddImage);\n  this.$text = (0, _Core.$)('.ap-editable-text-answer-content-ctn preinput', this).on('focus', this.eventHandler.textFocus).on('blur', this.eventHandler.textBlur);\n  this.imageFiles = [];\n  this.$trueAws = (0, _Core.$)('.ap-editable-text-true-answer-select-ctn > ' + this.trueAnsTag, this).on('change', this.eventHandler.trueAnswerChange);\n  this.$select = (0, _Core.$)('.ap-editable-text-select-ctn', this).firstChild;\n  this._questionId = null;\n  this.questionId = null;\n  this._by = 'radio';\n  this.by = this._by;\n  this._data = new _Attributes[\"default\"](this);\n\n  this._data.loadAttributeHandlers(this.dataHandlers);\n\n  this.isCorrectAnswer = false;\n}\n\nAPEditableChoiceAnswer.tag = 'APEditableChoiceAnswer'.toLowerCase();\nAPEditableChoiceAnswer.prototype.selectConstruction = {\n  tag: 'radiobutton',\n  \"class\": 'ap-radio'\n};\nAPEditableChoiceAnswer.prototype.trueAnswerConstruction = {\n  tag: 'radiobutton',\n  \"class\": 'ap-radio'\n};\nAPEditableChoiceAnswer.prototype.trueAnsTag = 'radiobutton';\n\nAPEditableChoiceAnswer.render = function () {\n  return (0, _Core._)({\n    extendEvent: ['change'],\n    \"class\": 'ap-editable-text-answer',\n    child: [{\n      \"class\": 'ap-editable-text-select-ctn',\n      child: this.prototype.selectConstruction\n    }, {\n      \"class\": ['ap-editable-text-answer-content-ctn', 'ap-input'],\n      child: [{\n        tag: 'preinput',\n        \"class\": 'ap-text-input'\n      }, {\n        \"class\": 'ap-editable-image-ctn',\n        child: [{\n          tag: 'button',\n          \"class\": 'as-message-input-attachment-add-btn',\n          child: [// 'span.mdi.mdi-arrow-down-bold.as-message-input-attachment-add-btn-drop',\n          {\n            tag: 'span',\n            \"class\": 'as-message-input-attachment-add-btn-plus',\n            child: {\n              text: \"+\"\n            }\n          }]\n        }]\n      }, {\n        \"class\": 'ap-editable-text-answer-btn-ctn',\n        child: {\n          tag: 'button',\n          \"class\": ['ap-button', 'ap-editable-ad-image-btn'],\n          child: 'span.mdi.mdi-image-outline'\n        }\n      }]\n    }, {\n      \"class\": 'ap-editable-text-true-answer-select-ctn',\n      child: [this.prototype.trueAnswerConstruction, {\n        tag: 'span',\n        \"class\": 'ap-editable-text-true-answer-label',\n        child: {\n          text: 'Đáp án đúng'\n        },\n        on: {\n          click: function click() {\n            var pE = this.parentElement;\n            pE.firstChild.click();\n          }\n        }\n      }]\n    }]\n  });\n};\n\nAPEditableChoiceAnswer.prototype.selectAllText = function () {\n  var text = this.$text.value;\n  this.$text.focus();\n  this.$text.applyData(text, {\n    start: 0,\n    end: text.length\n  });\n};\n/***\r\n *\r\n * @param {File|string} file\r\n * @param {Event|*=} originalEvent\r\n * @private\r\n */\n\n\nAPEditableChoiceAnswer.prototype._addImage = function (file, originalEvent) {\n  var thisA = this;\n  var src;\n  var fileName;\n\n  if (typeof file === \"string\") {\n    src = file;\n    fileName = file.split('/').pop() || '';\n  } else if (file instanceof Blob || file instanceof File) {\n    src = (0, _utils2.toImageUrl)(file);\n    fileName = file.name;\n  } else return;\n\n  this.imageFiles.push(file);\n  this.addClass('ap-has-image');\n  var itemElt = (0, _Core._)({\n    \"class\": ['as-message-input-attach-preview', 'as-image'],\n    attr: {\n      title: file.name\n    },\n    child: [{\n      \"class\": 'as-message-input-attach-preview-image',\n      style: {\n        backgroundImage: 'url(' + src + ')'\n      }\n    }, {\n      tag: 'button',\n      \"class\": 'as-message-input-attach-preview-close-btn',\n      child: 'span.mdi.mdi-close',\n      attr: {\n        title: 'remove'\n      },\n      on: {\n        click: function click(event) {\n          var idx = thisA.imageFiles.indexOf(file);\n\n          if (idx >= 0) {\n            thisA.imageFiles.splice(idx, 1);\n          }\n\n          itemElt.remove();\n\n          if (thisA.imageFiles.length === 0) {\n            thisA.removeClass('ap-has-image');\n          }\n\n          thisA.emit('change', {\n            type: 'change',\n            target: this,\n            fieldName: 'images',\n            originalEvent: event\n          }, this);\n        }\n      }\n    }, {\n      \"class\": 'as-message-input-attach-preview-info',\n      child: [{\n        \"class\": 'as-message-input-attach-preview-name',\n        child: {\n          text: file.name\n        }\n      }, {\n        \"class\": 'as-message-input-attach-preview-size',\n        child: {\n          text: (0, _utils.fileSize2Text)(file.size)\n        }\n      }]\n    }]\n  });\n  this.$imageCtn.addChildBefore(itemElt, this.$attachmentAddBtn);\n  if (originalEvent) this.emit('change', {\n    type: 'change',\n    target: this,\n    fieldName: 'images',\n    originalEvent: originalEvent\n  }, this);\n};\n\nAPEditableChoiceAnswer.eventHandler = {};\n\nAPEditableChoiceAnswer.eventHandler.clickAddImage = function (event) {\n  var _this = this;\n\n  var thisA = this; // var image = prompt(\"Enter image url: \", '');\n  // if (image && image.trim().length > 0) {\n  //     thisA._addImage(image.trim(), event);\n  // }\n\n  (0, _utils.openFileDialog)({\n    accept: \"image/*\"\n  }).then(function (files) {\n    if (files && files[0]) {\n      var file = files[0];\n\n      _this._addImage(file, event);\n    }\n  });\n};\n/***\r\n * @this APEditableChoiceAnswer\r\n */\n\n\nAPEditableChoiceAnswer.eventHandler.trueAnswerChange = function () {\n  this.emit('change', {\n    type: 'change',\n    target: this,\n    propertyName: 'isCorrectAnswer'\n  }, this);\n};\n/***\r\n * @this APEditableChoiceAnswer\r\n */\n\n\nAPEditableChoiceAnswer.eventHandler.textFocus = function () {\n  this._prevText = this.$text.value;\n};\n/***\r\n * @this APEditableChoiceAnswer\r\n */\n\n\nAPEditableChoiceAnswer.eventHandler.textBlur = function (event) {\n  var text = this.$text.value;\n\n  if (this._prevText !== text) {\n    this.emit('change', {\n      type: 'change',\n      target: this,\n      fieldName: 'text',\n      originalEvent: event\n    }, this);\n  }\n};\n\nAPEditableChoiceAnswer.property = {};\nAPEditableChoiceAnswer.property.questionId = {\n  set: function set(value) {\n    this._questionId = value;\n    this.$trueAws.name = 'true_answer_of_' + value;\n  },\n  get: function get() {\n    return this._questionId;\n  }\n};\nAPEditableChoiceAnswer.property.isCorrectAnswer = {\n  set: function set(value) {\n    this.$trueAws.checked = !!value;\n  },\n  get: function get() {\n    return this.$trueAws.checked;\n  }\n};\nAPEditableChoiceAnswer.property.data = {\n  set: function set(value) {\n    Object.assign(this._data, value);\n  },\n  get: function get() {\n    return this._data;\n  }\n};\nAPEditableChoiceAnswer.prototype.dataHandlers = {};\nAPEditableChoiceAnswer.prototype.dataHandlers.text = {\n  set: function set(value) {\n    if (typeof value !== \"string\") value += '';\n    this.$text.value = value;\n  },\n  get: function get() {\n    return this.$text.value;\n  }\n};\nAPEditableChoiceAnswer.prototype.dataHandlers.images = {\n  /***\r\n   * @this APEditableSection\r\n   * @param images\r\n   */\n  set: function set(images) {\n    if (!(images instanceof Array)) images = [];\n\n    while (this.$imageCtn.firstChild !== this.$attachmentAddBtn) {\n      this.$imageCtn.removeChild(this.$imageCtn.firstChild);\n    }\n\n    this.imageFiles.splice(0, this.imageFiles.length);\n    images.forEach(function (file) {\n      this._addImage(file);\n    }.bind(this));\n  },\n  get: function get() {\n    return this.imageFiles.slice();\n  }\n};\nAPEditableChoiceAnswer.prototype.dataHandlers.ident = {\n  set: function set(value) {\n    if (!(0, _utils.isRealNumber)(value)) value = 0;\n    this.attr('data-ident', value + '');\n  },\n  get: function get() {\n    var ident = parseInt(this.attr('data-ident'));\n    if (!(0, _utils.isRealNumber)(ident)) ident = 0;\n    return ident;\n  }\n};\n\n_Core[\"default\"].install(APEditableChoiceAnswer);\n\nvar _default = APEditableChoiceAnswer; //con15p\n\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./dom/editor/question/APEditableChoiceAnswer.js?");

/***/ }),

/***/ "./dom/editor/question/APEditableQuestion.js":
/*!***************************************************!*\
  !*** ./dom/editor/question/APEditableQuestion.js ***!
  \***************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Core = _interopRequireWildcard(__webpack_require__(/*! ../../Core */ \"./dom/Core.js\"));\n\n__webpack_require__(/*! ../../../css/question.css */ \"./css/question.css\");\n\nvar _APEditableChoiceAnswer = _interopRequireDefault(__webpack_require__(/*! ./APEditableChoiceAnswer */ \"./dom/editor/question/APEditableChoiceAnswer.js\"));\n\nvar _QuestionTypeItems = _interopRequireWildcard(__webpack_require__(/*! ../../../contants/QuestionTypeItems */ \"./contants/QuestionTypeItems.js\"));\n\nvar _stringGenerate = __webpack_require__(/*! absol/src/String/stringGenerate */ \"./node_modules/absol/src/String/stringGenerate.js\");\n\nvar _Attributes = _interopRequireDefault(__webpack_require__(/*! absol/src/AppPattern/Attributes */ \"./node_modules/absol/src/AppPattern/Attributes.js\"));\n\nvar _APEditableCheckboxAnswer = _interopRequireDefault(__webpack_require__(/*! ./APEditableCheckboxAnswer */ \"./dom/editor/question/APEditableCheckboxAnswer.js\"));\n\nvar _PEShortAnswerField = _interopRequireDefault(__webpack_require__(/*! ./PEShortAnswerField */ \"./dom/editor/question/PEShortAnswerField.js\"));\n\nvar _PEParagraphAnswerField = _interopRequireDefault(__webpack_require__(/*! ./PEParagraphAnswerField */ \"./dom/editor/question/PEParagraphAnswerField.js\"));\n\nvar _PELinearScaleAnswerField = _interopRequireDefault(__webpack_require__(/*! ./PELinearScaleAnswerField */ \"./dom/editor/question/PELinearScaleAnswerField.js\"));\n\nvar _PERadioAnswerList = _interopRequireDefault(__webpack_require__(/*! ./PERadioAnswerList */ \"./dom/editor/question/PERadioAnswerList.js\"));\n\nvar _PECheckboxAnswerList = _interopRequireDefault(__webpack_require__(/*! ./PECheckboxAnswerList */ \"./dom/editor/question/PECheckboxAnswerList.js\"));\n\nvar _APEditableSection = _interopRequireDefault(__webpack_require__(/*! ../APEditableSection */ \"./dom/editor/APEditableSection.js\"));\n\nvar _utils = __webpack_require__(/*! absol-acomp/js/utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/****\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction APEditableQuestion() {\n  var _this2 = this;\n\n  this.imageFiles = [];\n  this.$questionTypeInput = (0, _Core.$)('.ap-editable-question-type-input', this).on('select', this.eventHandler.typeSelect);\n  this.$content = (0, _Core.$)('.ap-editable-question-content', this);\n  this.$content.on('focus', this.eventHandler.preInputFocus.bind(this, this.$content)).on('blur', this.eventHandler.preInputBlur.bind(this, this.$content));\n  this.$description = (0, _Core.$)('.ap-editable-question-description', this);\n  this.$description.on('focus', this.eventHandler.preInputFocus.bind(this, this.$description)).on('blur', this.eventHandler.preInputBlur.bind(this, this.$content));\n  this.$imagebtn = (0, _Core.$)('.ap-editable-question-image-btn-ctn button', this).on('click', this.eventHandler.clickAddImage);\n  this.$imageCtn = (0, _Core.$)('.ap-editable-image-ctn', this);\n  this.$attachmentAddBtn = (0, _Core.$)('.as-message-input-attachment-add-btn', this).on('click', this.eventHandler.clickAddImage);\n  this.$answer = (0, _Core.$)('.ap-editable-answer-list', this);\n  this.$listHeader = (0, _Core.$)('.ap-editable-answer-list-header', this);\n  this.$noteCtn = (0, _Core.$)('.ap-editable-answer-note-ctn', this);\n  this.$note = (0, _Core.$)('.ap-editable-answer-note', this).on('keyup', function () {\n    if (_this2.$note.value.trim().length > 0) {\n      _this2.$noteCtn.removeClass('ap-empty-filed');\n    } else {\n      _this2.$noteCtn.addClass('ap-empty-filed');\n    }\n  });\n  this.$note.on('focus', this.eventHandler.preInputFocus.bind(this, this.$note)).on('blur', this.eventHandler.preInputBlur.bind(this, this.$note));\n  this.$requireCtn = (0, _Core.$)('.ap-editable-question-required-ctn', this);\n  this.$required = (0, _Core.$)('.ap-editable-question-required', this).on('change', this.eventHandler.requiredSwitchChange);\n  this.$score = (0, _Core.$)('.ap-editable-question-point', this).on('change', this.eventHandler.scoreChange);\n  this.$idx = (0, _Core.$)('.ap-editable-question-index-input', this).on('change', this.eventHandler.idxInputChange);\n  this.$actionBtns = (0, _Core.$$)('.ap-editable-question-tool .ap-button', this);\n  this.$actionBtns.forEach(function (btn) {\n    btn.on('click', this.eventHandler.clickActionButton.bind(this, btn.attr('data-action')));\n  }.bind(this));\n\n  this._injectStyle();\n\n  this.idx = 1;\n  this.questionId = (0, _stringGenerate.randomIdent)(12);\n  this._backupData = {};\n  this._data = new _Attributes[\"default\"](this);\n  this._data.type = 'NULL';\n\n  this._data.loadAttributeHandlers(this.dataHandlers);\n\n  this._data.type = 'multiple_choice';\n  /***\r\n   * @name data\r\n   * @memberOf APEditableQuestion#\r\n   */\n}\n\nAPEditableQuestion.tag = 'APEditableQuestion'.toLowerCase();\n\nAPEditableQuestion.render = function () {\n  var idPrefix = (0, _stringGenerate.randomIdent)(8);\n  return (0, _Core._)({\n    extendEvent: ['action', 'change'],\n    \"class\": ['ap-block', 'ap-editable-question'],\n    attr: {\n      'data-ident': '0'\n    },\n    child: [{\n      \"class\": 'ap-editable-question-header',\n      child: [{\n        \"class\": 'ap-editable-question-index',\n        child: [{\n          \"class\": 'ap-field-name',\n          child: {\n            tag: 'span',\n            child: {\n              text: 'Thứ tự câu hỏi'\n            }\n          }\n        }, {\n          tag: 'input',\n          \"class\": ['ap-input', 'ap-editable-question-index-input'],\n          attr: {\n            type: 'number',\n            pattern: \"\\d*\",\n            inputmode: \"decimal\",\n            value: 1,\n            readonly: 'true'\n          }\n        }]\n      }, {\n        \"class\": 'ap-editable-question-type',\n        child: [{\n          \"class\": 'ap-field-name',\n          child: {\n            tag: 'span',\n            child: {\n              text: 'Loại câu hỏi'\n            }\n          }\n        }, {\n          tag: 'ribbonbutton',\n          \"class\": 'ap-editable-question-type-input',\n          props: {\n            text: 'Trắc nghiệm',\n            icon: 'span.mdi.mdi-radiobox-marked',\n            items: _QuestionTypeItems[\"default\"]\n          }\n        }]\n      }, {\n        \"class\": 'ap-editable-question-option-ctn',\n        child: [{\n          \"class\": 'ap-editable-question-point-ctn',\n          child: [{\n            tag: 'label',\n            attr: {\n              \"for\": idPrefix + '_points'\n            },\n            child: {\n              text: 'Điểm'\n            }\n          }, {\n            tag: 'numberinput',\n            \"class\": ['ap-editable-question-point', 'ap-input'],\n            id: idPrefix + '_points',\n            props: {\n              notNull: false,\n              value: 1,\n              min: 0,\n              step: 0.25,\n              floatFixed: 2\n            }\n          }]\n        }, {\n          \"class\": 'ap-editable-question-required-ctn',\n          child: [{\n            tag: 'label',\n            child: {\n              text: 'Bắt buộc'\n            }\n          }, {\n            tag: 'switch',\n            \"class\": 'ap-editable-question-required'\n          }]\n        }]\n      }, {\n        \"class\": 'ap-editable-question-tool',\n        child: [{\n          tag: 'button',\n          \"class\": 'ap-button',\n          attr: {\n            'data-action': 'duplicate'\n          },\n          child: 'span.mdi.mdi-file-multiple'\n        }, {\n          tag: 'button',\n          \"class\": 'ap-button',\n          attr: {\n            \"data-action\": 'delete'\n          },\n          child: 'span.mdi.mdi-delete-forever'\n        }]\n      }]\n    }, {\n      \"class\": 'ap-editable-question-content-ctn',\n      child: [{\n        child: {\n          \"class\": 'ap-field-name',\n          child: {\n            tag: 'span',\n            child: {\n              text: 'Nội dung câu hỏi'\n            }\n          }\n        }\n      }, {\n        tag: 'preinput',\n        attr: {\n          'data-field-name': 'content'\n        },\n        \"class\": 'ap-editable-question-content',\n        props: {\n          value: ''\n        }\n      }]\n    }, {\n      \"class\": 'ap-editable-question-description-ctn',\n      child: [{\n        child: {\n          \"class\": 'ap-field-name',\n          child: {\n            tag: 'span',\n            child: {\n              text: 'Mô tả'\n            }\n          }\n        }\n      }, {\n        tag: 'preinput',\n        attr: {\n          'data-field-name': 'description'\n        },\n        \"class\": 'ap-editable-question-description'\n      }]\n    }, {\n      \"class\": 'ap-editable-question-image-btn-ctn',\n      child: {\n        tag: 'button',\n        \"class\": 'ap-button',\n        child: 'span.mdi.mdi-image-outline'\n      }\n    }, {\n      \"class\": 'ap-editable-image-ctn',\n      child: [{\n        tag: 'button',\n        \"class\": 'as-message-input-attachment-add-btn',\n        child: [// 'span.mdi.mdi-arrow-down-bold.as-message-input-attachment-add-btn-drop',\n        {\n          tag: 'span',\n          \"class\": 'as-message-input-attachment-add-btn-plus',\n          child: {\n            text: \"+\"\n          }\n        }]\n      }]\n    }, {\n      \"class\": 'ap-editable-answer-list-header',\n      child: [{\n        \"class\": 'ap-editable-answer-list-header-true-answer-text',\n        child: {\n          text: 'Đáp án đúng'\n        }\n      }]\n    }, {\n      \"class\": 'ap-editable-answer-list'\n    }, {\n      \"class\": 'ap-editable-answer-note-ctn',\n      child: [{\n        \"class\": 'ap-field-name',\n        child: {\n          tag: 'span',\n          child: {\n            text: 'Ghi chú'\n          }\n        }\n      }, {\n        tag: 'preinput',\n        attr: {\n          \"data-field-name\": 'feedback'\n        },\n        \"class\": ['ap-editable-answer-note', 'ap-input']\n      }]\n    } //,\n    // {\n    //     class: 'ap-editable-question-footer',\n    //     child: [\n    //         {\n    //             child: [\n    //\n    //             ]\n    //         },\n    //\n    //     ]\n    // }\n    ]\n  });\n};\n\nAPEditableQuestion.prototype.apBlockType = \"question\";\n\nAPEditableQuestion.prototype._injectStyle = function () {\n  this.$questionTypeInput.addChild((0, _Core._)({\n    tag: 'button',\n    \"class\": 'absol-selectmenu-btn',\n    child: 'dropdown-ico'\n  }));\n};\n\nAPEditableQuestion.eventHandler = {};\n\nAPEditableQuestion.eventHandler.typeSelect = function (event) {\n  var item = event.item;\n  var prevType = this.data.type;\n  var newType = item.questionType;\n  if (prevType === newType) return;\n  var newData;\n\n  if ((prevType === 'checkboxes' || prevType === 'multiple_choice') && (newType === 'checkboxes' || newType === 'multiple_choice')) {\n    newData = Object.assign({}, JSON.parse(JSON.stringify(this.data)), {\n      type: newType\n    });\n\n    if (newType === 'checkboxes') {\n      if ((0, _utils.isNaturalNumber)(newData.correct_answer)) {\n        newData.correct_answer = [newData.correct_answer];\n      } else {\n        newData.correct_answer = [];\n      }\n    } else {\n      if (newData.correct_answer && newData.correct_answer.length > 0) {\n        newData.correct_answer = newData.correct_answer[0];\n      } else {\n        newData.correct_answer = null;\n      }\n    }\n\n    this.data = newData;\n  } else {\n    this.data.type = item.questionType;\n  }\n\n  this.emit('change', {\n    type: 'change',\n    target: this,\n    fieldName: 'type',\n    originalEvent: event\n  }, this);\n};\n\nAPEditableQuestion.eventHandler.clickActionButton = function (action, event) {\n  console.log(action);\n  this.emit('action', {\n    type: 'action',\n    target: this,\n    action: action,\n    originalEvent: event\n  }, this);\n};\n\nAPEditableQuestion.eventHandler.idxInputChange = function (event) {\n  this.$idx.value = Math.min(32000, Math.max(1, parseInt(this.$idx.value))) << 0;\n  this.emit('action', {\n    type: 'action',\n    target: this,\n    action: 'set_idx',\n    idx: this.idx,\n    originalEvent: event\n  }, this);\n};\n\nAPEditableQuestion.eventHandler.preInputFocus = function (inputElt, event) {\n  this['_prev_' + inputElt.attr('data-field-name')] = inputElt.value;\n};\n\nAPEditableQuestion.eventHandler.preInputBlur = function (inputElt, event) {\n  var fieldName = inputElt.attr('data-field-name');\n  var prevVal = this['_prev_' + fieldName];\n  var value = inputElt.value;\n\n  if (prevVal !== value) {\n    this.emit('change', {\n      type: 'change',\n      target: this,\n      fieldName: fieldName,\n      originalEvent: event\n    }, this);\n  }\n};\n\nAPEditableQuestion.eventHandler.requiredSwitchChange = function (event) {\n  if (this.$required.checked) {\n    this.$requireCtn.removeClass('ap-empty-field');\n  } else {\n    this.$requireCtn.addClass('ap-empty-field');\n  }\n\n  this.emit('change', {\n    type: 'change',\n    target: this,\n    fieldName: 'required',\n    originalEvent: event\n  }, this);\n};\n\nAPEditableQuestion.eventHandler.scoreChange = function (event) {\n  this.emit('change', {\n    type: 'change',\n    target: this,\n    fieldName: 'required',\n    originalEvent: event\n  }, this);\n};\n\nAPEditableQuestion.property = {};\nAPEditableQuestion.property.idx = {\n  set: function set(value) {\n    if (typeof value !== \"number\") value = 1;\n    value = Math.max(1, Math.min(32000, value)) << 0;\n    this.$idx.value = value;\n    this.attr('data-idx', value);\n  },\n  get: function get() {\n    return parseInt(this.$idx.value);\n  }\n};\nAPEditableQuestion.property.questionId = {\n  set: function set(value) {\n    value = value || (0, _stringGenerate.randomIdent)(12);\n    this._questionId = value;\n    (0, _Core.$$)(_APEditableChoiceAnswer[\"default\"].tag, this).forEach(function (aw) {\n      aw.questionId = value;\n    });\n  },\n  get: function get() {\n    return this._questionId;\n  }\n};\nAPEditableQuestion.property.data = {\n  set: function set(value) {\n    var data = Object.assign({}, value);\n    this._data.type = data.type || 'multiple_choice';\n    if ('answer' in data) this._data.answer = data.answer;\n    if ('correct_answer' in data) this._data.correct_answer = data.correct_answer;\n    delete data.type;\n    delete data.answer;\n    delete data.correct_answer;\n    Object.assign(this._data, value);\n  },\n  get: function get() {\n    return this._data;\n  }\n};\nAPEditableQuestion.property.acceptQuestionTypes = {\n  /***\r\n   * @this {APEditableQuestion}\r\n   * @param value\r\n   */\n  set: function set(value) {\n    value = value || null;\n    if (typeof value === \"string\") value = [value];\n\n    if (value && value.filter) {\n      value = value.filter(function (t) {\n        return !!_QuestionTypeItems.QuestionTypeDict[t];\n      });\n    }\n\n    if (value && value.length === 0) value = null;\n    this._acceptQuestionTypes = value;\n\n    if (value) {\n      this.$questionTypeInput.items = value.map(function (t) {\n        return _QuestionTypeItems.QuestionTypeDict[t];\n      });\n    } else {\n      this.$questionTypeInput.items = _QuestionTypeItems[\"default\"];\n    }\n  },\n  get: function get() {\n    return this._acceptQuestionTypes || null;\n  }\n};\nAPEditableQuestion.property.readOnly = {\n  /***\r\n   * @this {APEditableQuestion}\r\n   * @param value\r\n   */\n  set: function set(value) {\n    if (value) {\n      this.addClass('ap-read-only');\n    } else {\n      this.removeClass('ap-read-only');\n    }\n\n    [this.$score, this.$description, this.$content, this.$note].forEach(function (elt) {\n      return elt.readOnly = !!value;\n    });\n  },\n  get: function get() {\n    return this.hasClass('ap-read-only');\n  }\n};\nAPEditableQuestion.prototype.dataHandlers = {};\nAPEditableQuestion.prototype.dataHandlers.ident = {\n  set: function set(value) {\n    if (!(0, _utils.isRealNumber)(value)) value = 0;\n    this.attr('data-ident', value + '');\n  },\n  get: function get() {\n    var ident = parseInt(this.attr('data-ident'));\n    if (!(0, _utils.isRealNumber)(ident)) ident = 0;\n    return ident;\n  }\n};\nAPEditableQuestion.prototype.dataHandlers.type = {\n  /***\r\n   * @this APEditableQuestion\r\n   * @param {string} value\r\n   * @param {Ref} ref\r\n   * @return {string}\r\n   */\n  set: function set(value, ref) {\n    if (value === 'NULL') return value;\n    var cValue = ref.get();\n\n    var item = _QuestionTypeItems[\"default\"].find(function (item) {\n      return item.questionType === value;\n    });\n\n    if (item) {\n      this.$questionTypeInput.text = item.text;\n      this.$questionTypeInput.icon = item.icon;\n    } else {\n      value = ref.get();\n    }\n\n    var backup;\n    var typeHandler;\n    var data;\n\n    if (cValue !== value) {\n      data = Object.assign({}, this.data);\n\n      if (cValue !== 'NULL') {\n        this._backupData[cValue] = {\n          data: data,\n          $answer: this.$answer\n        };\n      }\n\n      backup = this._backupData[value];\n\n      if (!backup) {\n        backup = {};\n        typeHandler = this.typeHandlers[value];\n\n        if (typeHandler) {\n          backup.$answer = typeHandler.createAnswer.call(this);\n        }\n      }\n\n      var oldAWElt = this.$answer;\n      this.$answer = backup.$answer;\n      oldAWElt.selfReplace(this.$answer);\n      if (cValue && cValue.replace) this.removeClass('ap-editable-question-type-' + cValue.replace(/[_]/g, '-'));\n      this.addClass('ap-editable-question-type-' + value.replace(/[_]/g, '-'));\n    }\n\n    return value;\n  }\n};\nAPEditableQuestion.prototype.dataHandlers.content = {\n  set: function set(value) {\n    value = value || '';\n    if (typeof value !== \"string\") value = value + '';\n    this.$content.value = value;\n  },\n  get: function get() {\n    return this.$content.value;\n  }\n};\nAPEditableQuestion.prototype.dataHandlers.description = {\n  set: function set(value) {\n    value = value || '';\n    if (typeof value !== \"string\") value = value + '';\n    this.$description.value = value;\n  },\n  get: function get() {\n    return this.$description.value;\n  }\n};\nAPEditableQuestion.prototype.dataHandlers.images = _APEditableSection[\"default\"].prototype.dataHandlers.images;\nAPEditableQuestion.prototype._addImage = _APEditableSection[\"default\"].prototype._addImage;\nAPEditableQuestion.eventHandler.clickAddImage = _APEditableSection[\"default\"].eventHandler.clickAddImage;\nAPEditableQuestion.prototype.dataHandlers.answer = {\n  /***\r\n   * @this APEditableQuestion\r\n   * @param value\r\n   */\n  set: function set(value) {\n    var typeHandler = this.typeHandlers[this._data.type];\n\n    if (typeHandler) {\n      typeHandler.loadAnswer.call(this, value);\n    }\n  },\n  get: function get() {\n    var typeHandler = this.typeHandlers[this._data.type];\n\n    if (typeHandler && typeHandler.getAnswer) {\n      typeHandler.getAnswer.call(this, value);\n    } else {\n      return this.$answer.data;\n    }\n  },\n  \"export\": function _export() {\n    if (['multiple_choice', 'checkboxes', 'linear_scale'].indexOf(this._data.type) >= 0) {\n      var data = this.$answer.data;\n      if (data && data[\"export\"]) data = data[\"export\"]();\n\n      if (data instanceof Array) {\n        data = data.map(function (it) {\n          if (it && it[\"export\"]) return it[\"export\"]();\n          return it;\n        });\n      }\n\n      return data;\n    } else return undefined;\n  }\n};\nAPEditableQuestion.prototype.dataHandlers.correct_answer = {\n  /***\r\n   * @this APEditableQuestion\r\n   * @param value\r\n   */\n  set: function set(value) {\n    var type = this._data.type;\n\n    if (['multiple_choice', 'checkboxes'].indexOf(type) >= 0) {\n      this.$answer.correct_answer = value;\n    }\n  },\n  get: function get() {\n    var type = this._data.type;\n\n    if (['multiple_choice', 'checkboxes'].indexOf(type) >= 0) {\n      return this.$answer.correct_answer;\n    } else return null;\n  },\n  \"export\": function _export() {\n    var type = this._data.type;\n\n    if (['multiple_choice', 'checkboxes'].indexOf(type) >= 0) {\n      return this.$answer.correct_answer;\n    } else return undefined;\n  }\n};\nAPEditableQuestion.prototype.dataHandlers.note = {\n  set: function set(value) {\n    value = (value || '') + '';\n    this.$note.value = (value || '') + '';\n\n    if (value.trim().length > 0) {\n      this.$noteCtn.removeClass('ap-empty-filed');\n    } else {\n      this.$noteCtn.addClass('ap-empty-filed');\n    }\n  },\n  get: function get() {\n    return this.$note.value;\n  }\n};\nAPEditableQuestion.prototype.dataHandlers.required = {\n  set: function set(value) {\n    if (value === 'false') value = false;else if (value === 'true') value = true;\n    this.$required.checked = !!value;\n\n    if (value) {\n      this.$requireCtn.removeClass('ap-empty-field');\n    } else {\n      this.$requireCtn.addClass('ap-empty-field');\n    }\n  },\n  get: function get() {\n    return this.$required.checked;\n  }\n};\nAPEditableQuestion.prototype.dataHandlers.score = {\n  set: function set(value) {\n    if (typeof value === 'string') value = parseInt(value);\n\n    if (typeof value !== 'number') {\n      value = NaN;\n    }\n\n    if (isNaN(value)) {\n      this.$score.value = null;\n    } else {\n      this.$score.value = value;\n    }\n  },\n  get: function get() {\n    // if (['short_answer', 'paragraph'].indexOf(this._data.type) < 0)\n    //all question has score\n    return this.$score.value; // else return NaN;\n  },\n  \"export\": function _export() {\n    if (['short_answer', 'paragraph'].indexOf(this._data.type) < 0) return this.$score.value;else return undefined;\n  }\n};\nAPEditableQuestion.prototype.typeHandlers = {};\nAPEditableQuestion.prototype.typeHandlers.multiple_choice = {\n  /***\r\n   * @this APEditableQuestion\r\n   * @return {*}\r\n   */\n  createAnswer: function createAnswer() {\n    var _this = this;\n\n    return (0, _Core._)({\n      tag: _PERadioAnswerList[\"default\"].tag,\n      on: {\n        change: function change(event) {\n          var ev = {\n            type: 'change',\n            target: _this,\n            originalEvent: event.originalEvent || event\n          };\n\n          if (event.propertyName === 'correct_answer') {\n            ev.fieldName = 'correct_answer';\n          } else if (event.fieldName === 'text' || event.fieldName === 'images') {\n            ev.fieldName = 'answer';\n          }\n\n          _this.emit('change', ev, _this);\n        }\n      }\n    });\n  },\n\n  /***\r\n   * @this APEditableQuestion\r\n   * @param answers\r\n   */\n  loadAnswer: function loadAnswer(answers) {\n    var questionId = this.questionId;\n    var answerElt = this.$answer;\n    answerElt.data = answers;\n    answerElt.questionId = questionId;\n\n    if (answers.length > 0) {\n      this.$listHeader.removeStyle('display');\n    } else {\n      this.$listHeader.addStyle('display', 'none');\n    }\n  }\n};\nAPEditableQuestion.prototype.typeHandlers.checkboxes = {\n  createAnswer: function createAnswer() {\n    var _this = this;\n\n    return (0, _Core._)({\n      tag: _PECheckboxAnswerList[\"default\"].tag,\n      on: {\n        change: function change(event) {\n          var ev = {\n            type: 'change',\n            target: _this,\n            originalEvent: event.originalEvent || event\n          };\n\n          if (event.propertyName === 'correct_answer') {\n            ev.fieldName = 'correct_answer';\n          } else if (event.fieldName === 'text' || event.fieldName === 'images') {\n            ev.fieldName = 'answer';\n          }\n\n          _this.emit('change', ev, _this);\n        }\n      }\n    });\n  },\n\n  /***\r\n   * @this APEditableQuestion\r\n   * @param answers\r\n   */\n  loadAnswer: function loadAnswer(answers) {\n    var answerElt = this.$answer;\n    answerElt.data = answers;\n\n    if (answers.length > 0) {\n      this.$listHeader.removeStyle('display');\n    } else {\n      this.$listHeader.addStyle('display', 'none');\n    }\n  }\n};\nAPEditableQuestion.prototype.typeHandlers.short_answer = {\n  createAnswer: function createAnswer() {\n    return (0, _Core._)(_PEShortAnswerField[\"default\"].tag);\n  },\n\n  /***\r\n   * @this APEditableQuestion\r\n   * @param answers\r\n   */\n  loadAnswer: function loadAnswer(answers) {\n    this.$answer.data = answers;\n    this.$listHeader.addStyle('display', 'none');\n  }\n};\nAPEditableQuestion.prototype.typeHandlers.paragraph = {\n  createAnswer: function createAnswer() {\n    return (0, _Core._)(_PEParagraphAnswerField[\"default\"].tag);\n  },\n\n  /***\r\n   * @this APEditableQuestion\r\n   * @param answers\r\n   */\n  loadAnswer: function loadAnswer(answers) {\n    this.$answer.data = answers;\n    this.$listHeader.addStyle('display', 'none');\n  }\n};\nAPEditableQuestion.prototype.typeHandlers.linear_scale = {\n  /***\r\n   *\r\n   * @this {APEditableQuestion}\r\n   */\n  createAnswer: function createAnswer() {\n    var self = this;\n    var res = (0, _Core._)({\n      tag: _PELinearScaleAnswerField[\"default\"].tag,\n      on: {\n        change: function change(event) {\n          self.emit('change', {\n            type: 'change',\n            target: self,\n            fieldName: 'answer.' + event.fieldName,\n            originalEvent: event.originalEvent || event\n          }, self);\n        }\n      }\n    });\n    return res;\n  },\n\n  /***\r\n   * @this APEditableQuestion\r\n   * @param answers\r\n   */\n  loadAnswer: function loadAnswer(answers) {\n    this.$answer.data = answers;\n    this.$listHeader.addStyle('display', 'none');\n  }\n};\n\n_Core[\"default\"].install(APEditableQuestion);\n\nvar _default = APEditableQuestion;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./dom/editor/question/APEditableQuestion.js?");

/***/ }),

/***/ "./dom/editor/question/APMoreCheckboxAnswer.js":
/*!*****************************************************!*\
  !*** ./dom/editor/question/APMoreCheckboxAnswer.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Core = _interopRequireWildcard(__webpack_require__(/*! ../../Core */ \"./dom/Core.js\"));\n\n__webpack_require__(/*! ../../../css/radioanswer.css */ \"./css/radioanswer.css\");\n\nvar _utils = __webpack_require__(/*! absol-acomp/js/utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _APEditableChoiceAnswer = _interopRequireDefault(__webpack_require__(/*! ./APEditableChoiceAnswer */ \"./dom/editor/question/APEditableChoiceAnswer.js\"));\n\nvar _APEditableCheckboxAnswer = _interopRequireDefault(__webpack_require__(/*! ./APEditableCheckboxAnswer */ \"./dom/editor/question/APEditableCheckboxAnswer.js\"));\n\nvar _APMoreChoiceAnswer = _interopRequireDefault(__webpack_require__(/*! ./APMoreChoiceAnswer */ \"./dom/editor/question/APMoreChoiceAnswer.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/**\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction APMoreCheckboxAnswer() {\n  _APMoreChoiceAnswer[\"default\"].call(this);\n}\n\nAPMoreCheckboxAnswer.tag = 'APMoreCheckboxAnswer'.toLowerCase();\nObject.assign(APMoreCheckboxAnswer.prototype, _APMoreChoiceAnswer[\"default\"].prototype);\nAPMoreCheckboxAnswer.prototype.selectConstruction = _APEditableCheckboxAnswer[\"default\"].prototype.selectConstruction;\nAPMoreCheckboxAnswer.render = _APMoreChoiceAnswer[\"default\"].render;\nAPMoreCheckboxAnswer.eventHandler = {};\n\nAPMoreCheckboxAnswer.eventHandler.action = function (action, event) {\n  this.emit('action', {\n    type: 'action',\n    action: action,\n    target: this,\n    originalEvent: event\n  }, this);\n};\n\nAPMoreCheckboxAnswer.property = Object.assign({}, _APMoreChoiceAnswer[\"default\"].property);\n\n_Core[\"default\"].install(APMoreCheckboxAnswer);\n\nvar _default = APMoreCheckboxAnswer;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./dom/editor/question/APMoreCheckboxAnswer.js?");

/***/ }),

/***/ "./dom/editor/question/APMoreChoiceAnswer.js":
/*!***************************************************!*\
  !*** ./dom/editor/question/APMoreChoiceAnswer.js ***!
  \***************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Core = _interopRequireWildcard(__webpack_require__(/*! ../../Core */ \"./dom/Core.js\"));\n\n__webpack_require__(/*! ../../../css/radioanswer.css */ \"./css/radioanswer.css\");\n\nvar _utils = __webpack_require__(/*! absol-acomp/js/utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _APEditableChoiceAnswer = _interopRequireDefault(__webpack_require__(/*! ./APEditableChoiceAnswer */ \"./dom/editor/question/APEditableChoiceAnswer.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/**\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction APMoreChoiceAnswer() {\n  this.$text = (0, _Core.$)('input', this).on('focus', this.eventHandler.action.bind(this, 'new'));\n  this.$other = (0, _Core.$)('a', this).on('click', this.eventHandler.action.bind(this, 'other'));\n}\n\nAPMoreChoiceAnswer.tag = 'APMoreChoiceAnswer'.toLowerCase();\nAPMoreChoiceAnswer.prototype.selectConstruction = _APEditableChoiceAnswer[\"default\"].prototype.selectConstruction;\n\nAPMoreChoiceAnswer.render = function () {\n  return (0, _Core._)({\n    extendEvent: ['action'],\n    \"class\": ['ap-editable-answer-ctn', 'ap-more-radio-answer', 'ap-has-adding-other'],\n    child: {\n      \"class\": 'ap-editable-text-answer',\n      child: [{\n        \"class\": 'ap-editable-text-select-ctn',\n        child: this.prototype.selectConstruction\n      }, {\n        \"class\": ['ap-more-radio-answer-content-ctn'],\n        child: [{\n          tag: 'input',\n          \"class\": 'ap-input',\n          attr: {\n            type: 'text'\n          }\n        }, {\n          tag: 'a',\n          child: {\n            tag: 'span',\n            child: {\n              text: 'Thêm khác'\n            }\n          }\n        }]\n      }]\n    }\n  });\n};\n\nAPMoreChoiceAnswer.eventHandler = {};\n\nAPMoreChoiceAnswer.eventHandler.action = function (action, event) {\n  this.emit('action', {\n    type: 'action',\n    action: action,\n    target: this,\n    originalEvent: event\n  }, this);\n};\n\nAPMoreChoiceAnswer.property = {};\nAPMoreChoiceAnswer.property.hasAddingOther = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('ap-has-adding-other');\n    } else {\n      this.removeClass('ap-has-adding-other');\n    }\n  },\n  get: function get() {\n    return this.containsClass('ap-has-adding-other');\n  }\n};\n\n_Core[\"default\"].install(APMoreChoiceAnswer);\n\nvar _default = APMoreChoiceAnswer;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./dom/editor/question/APMoreChoiceAnswer.js?");

/***/ }),

/***/ "./dom/editor/question/APOtherCheckboxAnswer.js":
/*!******************************************************!*\
  !*** ./dom/editor/question/APOtherCheckboxAnswer.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Core = _interopRequireWildcard(__webpack_require__(/*! ../../Core */ \"./dom/Core.js\"));\n\n__webpack_require__(/*! ../../../css/radioanswer.css */ \"./css/radioanswer.css\");\n\nvar _utils = __webpack_require__(/*! absol-acomp/js/utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _APEditableChoiceAnswer = _interopRequireDefault(__webpack_require__(/*! ./APEditableChoiceAnswer */ \"./dom/editor/question/APEditableChoiceAnswer.js\"));\n\nvar _APOtherChoiceAnswer = _interopRequireDefault(__webpack_require__(/*! ./APOtherChoiceAnswer */ \"./dom/editor/question/APOtherChoiceAnswer.js\"));\n\nvar _APEditableCheckboxAnswer = _interopRequireDefault(__webpack_require__(/*! ./APEditableCheckboxAnswer */ \"./dom/editor/question/APEditableCheckboxAnswer.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/**\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction APOtherCheckboxAnswer() {\n  _APOtherChoiceAnswer[\"default\"].call(this);\n}\n\nAPOtherCheckboxAnswer.tag = 'APOtherCheckboxAnswer'.toLowerCase();\nObject.assign(APOtherCheckboxAnswer.prototype, _APOtherChoiceAnswer[\"default\"].prototype);\nAPOtherCheckboxAnswer.prototype.selectConstruction = _APEditableCheckboxAnswer[\"default\"].prototype.selectConstruction;\nAPOtherCheckboxAnswer.render = _APOtherChoiceAnswer[\"default\"].render;\nAPOtherCheckboxAnswer.eventHandler = Object.assign({}, _APOtherChoiceAnswer[\"default\"].eventHandler);\nAPOtherCheckboxAnswer.property = Object.assign({}, _APOtherChoiceAnswer[\"default\"].property);\n\n_Core[\"default\"].install(APOtherCheckboxAnswer);\n\nvar _default = APOtherCheckboxAnswer;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./dom/editor/question/APOtherCheckboxAnswer.js?");

/***/ }),

/***/ "./dom/editor/question/APOtherChoiceAnswer.js":
/*!****************************************************!*\
  !*** ./dom/editor/question/APOtherChoiceAnswer.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Core = _interopRequireWildcard(__webpack_require__(/*! ../../Core */ \"./dom/Core.js\"));\n\n__webpack_require__(/*! ../../../css/radioanswer.css */ \"./css/radioanswer.css\");\n\nvar _utils = __webpack_require__(/*! absol-acomp/js/utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _APEditableChoiceAnswer = _interopRequireDefault(__webpack_require__(/*! ./APEditableChoiceAnswer */ \"./dom/editor/question/APEditableChoiceAnswer.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/**\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction APOtherChoiceAnswer() {\n  this.$removeBtn = (0, _Core.$)('.ap-editable-answer-ctn-remove-bt-ctn > button', this).on('click', this.eventHandler.action.bind(this, 'remove'));\n}\n\nAPOtherChoiceAnswer.tag = 'APOtherChoiceAnswer'.toLowerCase();\nAPOtherChoiceAnswer.prototype.selectConstruction = _APEditableChoiceAnswer[\"default\"].prototype.selectConstruction;\n\nAPOtherChoiceAnswer.render = function () {\n  return (0, _Core._)({\n    extendEvent: ['action'],\n    \"class\": ['ap-editable-answer-ctn', 'ap-other-radio-answer'],\n    child: [{\n      \"class\": 'ap-editable-text-answer',\n      child: [{\n        \"class\": 'ap-editable-text-select-ctn',\n        child: this.prototype.selectConstruction\n      }, {\n        \"class\": ['ap-more-radio-answer-content-ctn'],\n        child: [{\n          tag: 'input',\n          \"class\": 'ap-input',\n          attr: {\n            type: 'text',\n            placeholder: 'Other...',\n            readonly: true\n          }\n        }]\n      }]\n    }, {\n      \"class\": 'ap-editable-answer-ctn-remove-bt-ctn',\n      child: {\n        tag: 'button',\n        \"class\": 'ap-button',\n        child: 'span.mdi.mdi-close'\n      }\n    }]\n  });\n};\n\nAPOtherChoiceAnswer.eventHandler = {};\n\nAPOtherChoiceAnswer.eventHandler.action = function (action, event) {\n  this.emit('action', {\n    type: 'action',\n    action: action,\n    target: this,\n    originalEvent: event\n  }, this);\n};\n\n_Core[\"default\"].install(APOtherChoiceAnswer);\n\nvar _default = APOtherChoiceAnswer;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./dom/editor/question/APOtherChoiceAnswer.js?");

/***/ }),

/***/ "./dom/editor/question/PECheckboxAnswerList.js":
/*!*****************************************************!*\
  !*** ./dom/editor/question/PECheckboxAnswerList.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Core = _interopRequireWildcard(__webpack_require__(/*! ../../Core */ \"./dom/Core.js\"));\n\n__webpack_require__(/*! ../../../css/question.css */ \"./css/question.css\");\n\nvar _APEditableCheckboxAnswer = _interopRequireDefault(__webpack_require__(/*! ./APEditableCheckboxAnswer */ \"./dom/editor/question/APEditableCheckboxAnswer.js\"));\n\nvar _PERadioAnswerList = _interopRequireDefault(__webpack_require__(/*! ./PERadioAnswerList */ \"./dom/editor/question/PERadioAnswerList.js\"));\n\nvar _APMoreCheckboxAnswer = _interopRequireDefault(__webpack_require__(/*! ./APMoreCheckboxAnswer */ \"./dom/editor/question/APMoreCheckboxAnswer.js\"));\n\nvar _APOtherCheckboxAnswer = _interopRequireDefault(__webpack_require__(/*! ./APOtherCheckboxAnswer */ \"./dom/editor/question/APOtherCheckboxAnswer.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends PERadioAnswerList\r\n * @constructor\r\n */\nfunction PECheckboxAnswerList() {\n  _PERadioAnswerList[\"default\"].call(this);\n}\n\nPECheckboxAnswerList.tag = 'PECheckboxAnswerList'.toLowerCase();\nPECheckboxAnswerList.render = _PERadioAnswerList[\"default\"].render;\nPECheckboxAnswerList.property = Object.assign({}, _PERadioAnswerList[\"default\"].property);\nPECheckboxAnswerList.prototype = Object.assign({}, _PERadioAnswerList[\"default\"].prototype);\nPECheckboxAnswerList.eventHandler = Object.assign({}, _PERadioAnswerList[\"default\"].eventHandler);\nPECheckboxAnswerList.prototype.peClassName = 'ape-checkbox-answer-list';\nPECheckboxAnswerList.prototype.answerTag = _APEditableCheckboxAnswer[\"default\"].tag;\nPECheckboxAnswerList.prototype.otherTag = _APOtherCheckboxAnswer[\"default\"].tag;\nPECheckboxAnswerList.prototype.moreTag = _APMoreCheckboxAnswer[\"default\"].tag;\nPECheckboxAnswerList.property.correct_answer = {\n  set: function set(value) {\n    if (!(value instanceof Array)) value = [value];\n    var dict = value.reduce(function (ac, cr) {\n      ac[cr] = true;\n      return ac;\n    }, {});\n    var ans;\n    var ansList = (0, _Core.$$)(PECheckboxAnswerList.prototype.answerTag, this);\n\n    for (var i = 0; i < ansList.length; ++i) {\n      ans = ansList[i];\n      ans.isCorrectAnswer = dict[i];\n    }\n  },\n  get: function get() {\n    var ansList = (0, _Core.$$)(PECheckboxAnswerList.prototype.answerTag, this);\n    return ansList.map(function (ans, i) {\n      return ans.isCorrectAnswer ? i : -1;\n    }).filter(function (v) {\n      return v >= 0;\n    });\n  }\n};\n\n_Core[\"default\"].install(PECheckboxAnswerList);\n\nvar _default = PECheckboxAnswerList;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./dom/editor/question/PECheckboxAnswerList.js?");

/***/ }),

/***/ "./dom/editor/question/PELinearScaleAnswerField.js":
/*!*********************************************************!*\
  !*** ./dom/editor/question/PELinearScaleAnswerField.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Core = _interopRequireWildcard(__webpack_require__(/*! ../../Core */ \"./dom/Core.js\"));\n\n__webpack_require__(/*! ../../../css/linearscale.css */ \"./css/linearscale.css\");\n\nvar _Attributes = _interopRequireDefault(__webpack_require__(/*! absol/src/AppPattern/Attributes */ \"./node_modules/absol/src/AppPattern/Attributes.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/**\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction PELinearScaleAnswerField() {\n  var inputs = (0, _Core.$$)('.ap-editable-linear-scale-answer-range selectmenu', this);\n  this.$min = inputs[0].on('change', this.eventHandler.minChange);\n  this.$max = inputs[1].on('change', this.eventHandler.maxChange);\n  this.$minLb = (0, _Core.$)('.ap-editable-linear-scale-answer-title-min  .ap-field-name span', this);\n  this.$maxLb = (0, _Core.$)('.ap-editable-linear-scale-answer-title-max  .ap-field-name span', this);\n  this.$titleOfMin = (0, _Core.$)('.ap-editable-linear-scale-answer-title-min  .ap-input', this).on('change', this.eventHandler.inputTextChange.bind(this, 'min'));\n  this.$titleOfMax = (0, _Core.$)('.ap-editable-linear-scale-answer-title-max  .ap-input', this).on('change', this.eventHandler.inputTextChange.bind(this, 'max'));\n  this._data = new _Attributes[\"default\"](this);\n\n  this._data.loadAttributeHandlers(this.dataHandlers);\n\n  this.data = {\n    min: 0,\n    max: 10,\n    titleOfMin: '',\n    titleOfMax: ''\n  };\n}\n\nPELinearScaleAnswerField.tag = 'APEditableLinearScaleAnswer'.toLowerCase();\n\nPELinearScaleAnswerField.render = function () {\n  return (0, _Core._)({\n    extendEvent: 'change',\n    \"class\": ['ap-editable-linear-scale-answer', 'ap-editable-answer-list', 'ape-linear-scale-answer-field'],\n    child: [{\n      \"class\": 'ap-editable-linear-scale-answer-range',\n      child: [{\n        \"class\": 'ap-field-name',\n        child: {\n          tag: 'span',\n          child: {\n            text: '  '\n          }\n        }\n      }, {\n        \"class\": 'ap-editable-linear-scale-answer-range-input-ctn',\n        child: [{\n          tag: 'selectmenu',\n          props: {\n            items: [{\n              text: '0',\n              value: 0\n            }, {\n              text: '1',\n              value: 1\n            }]\n          }\n        }, '<span>&nbsp; &nbsp; đến &nbsp; &nbsp;</span>', {\n          tag: 'selectmenu',\n          props: {\n            items: Array(9).fill(null).map(function (u, i) {\n              return {\n                text: i + 2 + '',\n                value: i + 2\n              };\n            })\n          }\n        }]\n      }]\n    }, {\n      \"class\": 'ap-editable-linear-scale-answer-title-min',\n      child: [{\n        \"class\": 'ap-field-name',\n        child: {\n          tag: 'span',\n          child: {\n            text: 'Tiêu đề mức {min}'\n          }\n        }\n      }, {\n        \"class\": 'ap-editable-linear-scale-answer-title-input-ctn',\n        child: [{\n          tag: 'input',\n          \"class\": 'ap-input',\n          attr: {\n            type: 'text'\n          }\n        }]\n      }]\n    }, {\n      \"class\": 'ap-editable-linear-scale-answer-title-max',\n      child: [{\n        \"class\": 'ap-field-name',\n        child: {\n          tag: 'span',\n          child: {\n            text: 'Tiêu đề mức {max}'\n          }\n        }\n      }, {\n        \"class\": 'ap-editable-linear-scale-answer-title-input-ctn',\n        child: [{\n          tag: 'input',\n          \"class\": 'ap-input',\n          attr: {\n            type: 'text'\n          }\n        }]\n      }]\n    }]\n  });\n};\n\nPELinearScaleAnswerField.property = {};\nPELinearScaleAnswerField.property.data = {\n  set: function set(value) {\n    Object.assign(this._data, value);\n  },\n  get: function get() {\n    return this._data;\n  }\n};\nPELinearScaleAnswerField.prototype.dataHandlers = {};\nPELinearScaleAnswerField.prototype.dataHandlers.min = {\n  set: function set(value) {\n    if (typeof value === \"number\") {\n      value = Math.max(0, value);\n      value = Math.min(1, value);\n      value = Math.floor(value);\n    } else {\n      value = 0;\n    }\n\n    this.$min.value = value;\n    this.$minLb.firstChild.data = \"Tiêu đề mức \" + value;\n  },\n  get: function get() {\n    return this.$min.value;\n  }\n};\nPELinearScaleAnswerField.prototype.dataHandlers.max = {\n  set: function set(value) {\n    if (typeof value === \"number\") {\n      value = Math.max(2, value);\n      value = Math.min(10, value);\n      value = Math.floor(value);\n    } else {\n      value = 10;\n    }\n\n    this.$max.value = value;\n    this.$maxLb.firstChild.data = \"Tiêu đề mức \" + value;\n  },\n  get: function get() {\n    return this.$max.value;\n  }\n};\nPELinearScaleAnswerField.prototype.dataHandlers.titleOfMax = {\n  set: function set(value) {\n    if (typeof value !== \"string\") value = value + '';\n    this.$titleOfMax.value = value;\n  },\n  get: function get() {\n    return this.$titleOfMax.value;\n  }\n};\nPELinearScaleAnswerField.prototype.dataHandlers.titleOfMin = {\n  set: function set(value) {\n    if (typeof value !== \"string\") value = value + '';\n    this.$titleOfMin.value = value;\n  },\n  get: function get() {\n    return this.$titleOfMin.value;\n  }\n};\nPELinearScaleAnswerField.eventHandler = {};\n\nPELinearScaleAnswerField.eventHandler.maxChange = function (event) {\n  this.$maxLb.firstChild.data = \"Tiêu đề mức \" + this.$max.value;\n  this.emit('change', {\n    type: 'change',\n    target: this,\n    fieldName: 'max',\n    originalEvent: event.originalEvent || event\n  }, this);\n};\n\nPELinearScaleAnswerField.eventHandler.minChange = function (event) {\n  this.$minLb.firstChild.data = \"Tiêu đề mức \" + this.$min.value;\n  this.emit('change', {\n    type: 'change',\n    target: this,\n    fieldName: 'min',\n    originalEvent: event.originalEvent || event\n  }, this);\n};\n\nPELinearScaleAnswerField.eventHandler.inputTextChange = function (fieldName, event) {\n  this.emit('change', {\n    type: 'change',\n    target: this,\n    fieldName: fieldName,\n    originalEvent: event.originalEvent || event\n  }, this);\n};\n\n_Core[\"default\"].install(PELinearScaleAnswerField);\n\nvar _default = PELinearScaleAnswerField;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./dom/editor/question/PELinearScaleAnswerField.js?");

/***/ }),

/***/ "./dom/editor/question/PEParagraphAnswerField.js":
/*!*******************************************************!*\
  !*** ./dom/editor/question/PEParagraphAnswerField.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Core = _interopRequireWildcard(__webpack_require__(/*! ../../Core */ \"./dom/Core.js\"));\n\n__webpack_require__(/*! ../../../css/textanswer.css */ \"./css/textanswer.css\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/**\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction PEParagraphAnswerField() {}\n\nPEParagraphAnswerField.tag = 'APEditableLongTextAnswer'.toLowerCase();\n\nPEParagraphAnswerField.render = function () {\n  return (0, _Core._)({\n    \"class\": ['ap-editable-answer-list', 'ape-paragraph-answer-field', 'ap-editable-long-text-answer'],\n    child: [{\n      child: {\n        \"class\": 'ap-field-name',\n        child: '<span>Trả lời</span>'\n      }\n    }, {\n      \"class\": 'ap-editable-long-text-answer-text-field',\n      child: ['div', 'div', 'div']\n    }]\n  });\n};\n\n_Core[\"default\"].install(PEParagraphAnswerField);\n\nvar _default = PEParagraphAnswerField;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./dom/editor/question/PEParagraphAnswerField.js?");

/***/ }),

/***/ "./dom/editor/question/PERadioAnswerList.js":
/*!**************************************************!*\
  !*** ./dom/editor/question/PERadioAnswerList.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Core = _interopRequireWildcard(__webpack_require__(/*! ../../Core */ \"./dom/Core.js\"));\n\nvar _BoardTable = _interopRequireDefault(__webpack_require__(/*! absol-acomp/js/BoardTable */ \"./node_modules/absol-acomp/js/BoardTable.js\"));\n\n__webpack_require__(/*! ../../../css/question.css */ \"./css/question.css\");\n\nvar _APEditableAnswerCtn = _interopRequireDefault(__webpack_require__(/*! ../APEditableAnswerCtn */ \"./dom/editor/APEditableAnswerCtn.js\"));\n\nvar _stringGenerate = __webpack_require__(/*! absol/src/String/stringGenerate */ \"./node_modules/absol/src/String/stringGenerate.js\");\n\nvar _APEditableChoiceAnswer = _interopRequireDefault(__webpack_require__(/*! ./APEditableChoiceAnswer */ \"./dom/editor/question/APEditableChoiceAnswer.js\"));\n\nvar _APMoreChoiceAnswer = _interopRequireDefault(__webpack_require__(/*! ./APMoreChoiceAnswer */ \"./dom/editor/question/APMoreChoiceAnswer.js\"));\n\nvar _APOtherChoiceAnswer = _interopRequireDefault(__webpack_require__(/*! ./APOtherChoiceAnswer */ \"./dom/editor/question/APOtherChoiceAnswer.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction PERadioAnswerList() {\n  this.$more = (0, _Core.$)(this.moreTag, this).on('action', this.eventHandler.moreAction);\n  this.$other = null;\n  /***\r\n   *\r\n   * @type {string}\r\n   */\n\n  this.questionId = (0, _stringGenerate.randomIdent)(8);\n  this.on('orderchange', this.eventHandler.orderchange);\n}\n\nPERadioAnswerList.tag = 'PERadioAnswerList'.toLowerCase();\nPERadioAnswerList.prototype.answerTag = _APEditableChoiceAnswer[\"default\"].tag;\nPERadioAnswerList.prototype.moreTag = _APMoreChoiceAnswer[\"default\"].tag;\nPERadioAnswerList.prototype.otherTag = _APOtherChoiceAnswer[\"default\"].tag;\nPERadioAnswerList.prototype.peClassName = 'ape-radio-answer-list';\n\nPERadioAnswerList.render = function () {\n  return (0, _Core._)({\n    tag: _BoardTable[\"default\"].tag,\n    extendEvent: ['change'],\n    \"class\": ['ap-editable-answer-list', this.prototype.peClassName],\n    child: [{\n      tag: this.prototype.moreTag\n    }]\n  });\n};\n/***\r\n *\r\n * @param data\r\n * @return {APEditableAnswerCtn}\r\n * @private\r\n */\n\n\nPERadioAnswerList.prototype._makeAnswerWithCtn = function (data) {\n  var thisA = this;\n  return (0, _Core._)({\n    tag: _APEditableAnswerCtn[\"default\"].tag,\n    child: {\n      tag: this.answerTag,\n      props: {\n        data: data,\n        questionId: this.questionId\n      },\n      on: {\n        change: function change(event) {\n          var ev = {\n            type: 'change',\n            target: thisA,\n            of: this\n          };\n\n          if (event.fieldName === 'text' || event.fieldName === 'images') {\n            ev.fieldName = event.fieldName;\n          } else if (event.propertyName === \"isCorrectAnswer\") {\n            ev.propertyName = 'correct_answer';\n          }\n\n          thisA.emit('change', ev, thisA);\n        }\n      }\n    },\n    on: {\n      pressremove: function pressremove(event) {\n        this.selfRemove();\n        thisA.emit('change', {\n          type: 'change',\n          target: thisA,\n          of: this,\n          propertyName: 'data',\n          action: 'remove'\n        }, this);\n      }\n    }\n  });\n};\n\nPERadioAnswerList.prototype.addOther = function (originalEvent) {\n  if (this.$other && this.$other.parentElement) return;\n  var thisList = this;\n  if (!this.$other) this.$other = (0, _Core._)({\n    tag: this.otherTag,\n    on: {\n      action: function action(event) {\n        if (event.action === 'remove') {\n          this.selfRemove();\n          thisList.emit('change', {\n            type: 'change',\n            target: thisList,\n            propertyName: 'data',\n            originalEvent: event.originalEvent || event\n          }, thisList);\n          thisList.$more.hasAddingOther = true;\n        }\n      }\n    }\n  });\n  this.addChildBefore(this.$other, this.$more);\n  this.$more.hasAddingOther = false;\n  if (originalEvent) this.emit('change', {\n    type: 'change',\n    target: this,\n    propertyName: 'data',\n    originalEvent: originalEvent\n  }, this);\n};\n/***\r\n *\r\n * @param {Event=}originalEvent\r\n */\n\n\nPERadioAnswerList.prototype.addNew = function (originalEvent) {\n  this._autoIdx = this._autoIdx || (0, _Core.$$)(_APEditableAnswerCtn[\"default\"].tag, this).length;\n  this._autoIdx += 1;\n\n  var newAnsCtn = this._makeAnswerWithCtn({\n    text: 'Tùy chọn ' + this._autoIdx\n  });\n\n  var bf = this.$other && this.$other.parentElement && this.$other || this.$more;\n  this.addChildBefore(newAnsCtn, bf);\n  newAnsCtn.$editableAnswer.selectAllText();\n  if (originalEvent) this.emit('change', {\n    type: 'change',\n    target: this,\n    propertyName: 'data',\n    originalEvent: originalEvent\n  }, this);\n};\n\nPERadioAnswerList.property = {};\nPERadioAnswerList.property.data = {\n  /***\r\n   * @this PERadioAnswerList\r\n   * @param {*[]} value\r\n   */\n  set: function set(value) {\n    var _this = this;\n\n    if (!(value instanceof Array)) value = [];\n    (0, _Core.$$)(_APEditableAnswerCtn[\"default\"].tag, this).forEach(function (ansElt) {\n      ansElt.selfRemove();\n    });\n    if (this.$other) this.$other.selfRemove();\n    var ctnList = value.map(function (it) {\n      if (it !== 'other') {\n        return _this._makeAnswerWithCtn(it);\n      }\n    }).filter(function (elt) {\n      return !!elt;\n    });\n    ctnList.forEach(function (ansElt) {\n      _this.addChildBefore(ansElt, _this.$more);\n    });\n    if (value.indexOf('other') >= 0) this.addOther();\n  },\n  get: function get() {\n    var res = (0, _Core.$$)(this.answerTag, this).map(function (ansElt) {\n      return ansElt.data;\n    });\n    if (this.$other && this.$other.parentElement) res.push('other');\n    return res;\n  }\n};\nPERadioAnswerList.property.correct_answer = {\n  set: function set(value) {\n    (0, _Core.$$)(_APEditableChoiceAnswer[\"default\"].tag, this).forEach(function (ans, i) {\n      ans.isCorrectAnswer = i === value;\n    });\n  },\n  get: function get() {\n    var ansList = (0, _Core.$$)(_APEditableChoiceAnswer[\"default\"].tag, this);\n    var ans;\n\n    for (var i = 0; i < ansList.length; ++i) {\n      ans = ansList[i];\n      if (ans.isCorrectAnswer) return i;\n    }\n\n    return -1;\n  }\n};\nPERadioAnswerList.property.questionId = {\n  /***\r\n   * @this PERadioAnswerList\r\n   * @param value\r\n   */\n  set: function set(value) {\n    this._questionId = value;\n    (0, _Core.$$)(_APEditableChoiceAnswer[\"default\"].tag, this).forEach(function (ansELt) {\n      ansELt.questionId = value;\n    });\n  },\n\n  /***\r\n   * @this PERadioAnswerList\r\n   * @returns {string} value\r\n   */\n  get: function get() {\n    return this._questionId;\n  }\n};\nPERadioAnswerList.eventHandler = {};\n\nPERadioAnswerList.eventHandler.moreAction = function (event) {\n  switch (event.action) {\n    case 'new':\n      this.addNew(event);\n      break;\n\n    case 'other':\n      this.addOther(event);\n      break;\n  }\n};\n\nPERadioAnswerList.eventHandler.orderchange = function (event) {\n  this.emit('change', {\n    type: 'change',\n    target: this,\n    propertyName: 'data',\n    originalEvent: event.originalEvent || event.originEvent || event\n  }, this);\n};\n\n_Core[\"default\"].install(PERadioAnswerList);\n\nvar _default = PERadioAnswerList;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./dom/editor/question/PERadioAnswerList.js?");

/***/ }),

/***/ "./dom/editor/question/PEShortAnswerField.js":
/*!***************************************************!*\
  !*** ./dom/editor/question/PEShortAnswerField.js ***!
  \***************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Core = _interopRequireWildcard(__webpack_require__(/*! ../../Core */ \"./dom/Core.js\"));\n\n__webpack_require__(/*! ../../../css/textanswer.css */ \"./css/textanswer.css\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/**\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction PEShortAnswerField() {}\n\nPEShortAnswerField.tag = 'PEShortAnswerField'.toLowerCase();\n\nPEShortAnswerField.render = function () {\n  return (0, _Core._)({\n    \"class\": ['ap-editable-answer-list', 'ape-short-answer-field', 'ap-editable-short-text-answer'],\n    child: [{\n      child: {\n        \"class\": 'ap-field-name',\n        child: '<span>Trả lời</span>'\n      }\n    }, {\n      \"class\": 'ap-editable-short-text-answer-text-field'\n    }]\n  });\n};\n\n_Core[\"default\"].install(PEShortAnswerField);\n\nvar _default = PEShortAnswerField;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./dom/editor/question/PEShortAnswerField.js?");

/***/ }),

/***/ "./dom/evaluation/PRParagraphAnswer.js":
/*!*********************************************!*\
  !*** ./dom/evaluation/PRParagraphAnswer.js ***!
  \*********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Core = _interopRequireWildcard(__webpack_require__(/*! ../Core */ \"./dom/Core.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends PreInput\r\n * @constructor\r\n */\nfunction PRParagraphAnswer() {}\n\nPRParagraphAnswer.tag = 'PRParagraphAnswer'.toLowerCase();\n\nPRParagraphAnswer.render = function () {\n  return (0, _Core._)({\n    tag: 'pre',\n    extendEvent: ['resultchange'],\n    \"class\": ['ap-input', 'ap-paragraph-answer', 'as-preinput'],\n    child: {\n      text: ''\n    }\n  });\n};\n\nPRParagraphAnswer.property = {};\nPRParagraphAnswer.property.result = {\n  set: function set(value) {\n    this.firstChild.data = (value || '') + '';\n  },\n  get: function get() {\n    return this.firstChild.data;\n  }\n};\nPRParagraphAnswer.property.readOnly = {\n  set: function set(value) {\n    if (value) {\n      this.setAttribute('contenteditable', 'false');\n      this.contentEditable = false;\n      this.addClass('ap-readonly');\n    } else {\n      this.setAttribute('contenteditable', 'true');\n      this.contentEditable = true;\n      this.removeClass('ap-readonly');\n    }\n  },\n  get: function get() {\n    return this.containsClass('ap-readonly');\n  }\n};\nPRParagraphAnswer.eventHandler = {};\n\nPRParagraphAnswer.eventHandler.inputFocus = function () {\n  this._prevResult = this.value;\n};\n\nPRParagraphAnswer.eventHandler.inputBlur = function (event) {\n  var value = this.value;\n\n  if (this._prevResult !== value) {\n    this.emit('resultchange', {\n      originalEvent: event,\n      type: 'resultchange',\n      target: this\n    }, this);\n  }\n};\n\n_Core[\"default\"].install(PRParagraphAnswer);\n\nvar _default = PRParagraphAnswer;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./dom/evaluation/PRParagraphAnswer.js?");

/***/ }),

/***/ "./dom/evaluation/PRQuestion.js":
/*!**************************************!*\
  !*** ./dom/evaluation/PRQuestion.js ***!
  \**************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Core = _interopRequireWildcard(__webpack_require__(/*! ../Core */ \"./dom/Core.js\"));\n\nvar _PVQuestion = _interopRequireDefault(__webpack_require__(/*! ../viewer/question/PVQuestion */ \"./dom/viewer/question/PVQuestion.js\"));\n\nvar _PVShortAnswer = _interopRequireDefault(__webpack_require__(/*! ../viewer/question/PVShortAnswer */ \"./dom/viewer/question/PVShortAnswer.js\"));\n\nvar _PVLinearScaleAnswer = _interopRequireDefault(__webpack_require__(/*! ../viewer/question/PVLinearScaleAnswer */ \"./dom/viewer/question/PVLinearScaleAnswer.js\"));\n\nvar _PVMultipleChoiceAnswer = _interopRequireDefault(__webpack_require__(/*! ../viewer/question/PVMultipleChoiceAnswer */ \"./dom/viewer/question/PVMultipleChoiceAnswer.js\"));\n\nvar _PVCheckboxesAnswer = _interopRequireDefault(__webpack_require__(/*! ../viewer/question/PVCheckboxesAnswer */ \"./dom/viewer/question/PVCheckboxesAnswer.js\"));\n\nvar _PreInput = _interopRequireDefault(__webpack_require__(/*! absol-acomp/js/PreInput */ \"./node_modules/absol-acomp/js/PreInput.js\"));\n\nvar _PRParagraphAnswer = _interopRequireDefault(__webpack_require__(/*! ./PRParagraphAnswer */ \"./dom/evaluation/PRParagraphAnswer.js\"));\n\nvar _utils = __webpack_require__(/*! absol-acomp/js/utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _int = __webpack_require__(/*! absol/src/Math/int */ \"./node_modules/absol/src/Math/int.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends PVQuestion\r\n * @constructor\r\n */\nfunction PRQuestion() {\n  _PVQuestion[\"default\"].call(this);\n\n  this.$designedScore = (0, _Core.$)('.ap-question-designed-score numberinput', this);\n  this.$evaluatedScore = (0, _Core.$)('.ap-question-evaluated-score numberinput', this).on('change', this.eventHandler.evaluatedChange);\n  this.$note = (0, _Core.$)('.ap-question-note-ctn pre', this);\n  this.$feedback = (0, _Core.$)('.ap-question-feedback-ctn preinput', this).on('focus', this.eventHandler.noteFocus).on('blur', this.eventHandler.noteBlur);\n  this.designedScore = null;\n  this.evaluatedScore = null;\n  this.evaluationIdent = 0;\n}\n\nPRQuestion.tag = 'PRQuestion'.toLowerCase();\n\nPRQuestion.render = function () {\n  return (0, _Core._)({\n    extendEvent: ['evaluationchange'],\n    \"class\": ['ap-block', 'ap-question', 'ap-evaluation'],\n    child: [{\n      \"class\": 'ap-question-header',\n      child: [{\n        child: {\n          \"class\": 'ap-question-idx',\n          child: {\n            tag: 'span',\n            child: {\n              text: '1'\n            }\n          }\n        }\n      }, {\n        \"class\": 'ap-question-content-ctn',\n        child: [{\n          tag: 'span',\n          child: {\n            text: ''\n          }\n        }]\n      }]\n    }, {\n      \"class\": 'ap-question-description',\n      child: {\n        tag: 'span',\n        child: {\n          text: ''\n        }\n      }\n    }, {\n      \"class\": 'ap-question-image-ctn'\n    }, {\n      \"class\": 'ap-question-body'\n    }, {\n      \"class\": 'ap-question-score-ctn',\n      child: [{\n        \"class\": 'ap-question-designed-score',\n        child: [{\n          \"class\": 'ap-field-name',\n          child: {\n            tag: 'span',\n            child: {\n              text: 'Điểm thiết kế'\n            }\n          }\n        }, {\n          tag: 'numberinput',\n          \"class\": 'ap-input',\n          props: {\n            readonly: true,\n            disabled: true,\n            valueFixed: 2,\n            notNull: false\n          }\n        }]\n      }, {\n        \"class\": 'ap-question-evaluated-score',\n        child: [{\n          \"class\": 'ap-field-name',\n          child: {\n            tag: 'span',\n            child: {\n              text: 'Điểm đánh giá'\n            }\n          }\n        }, {\n          tag: 'numberinput',\n          \"class\": 'ap-input',\n          props: {\n            valueFixed: 2,\n            notNull: false\n          }\n        }]\n      }]\n    }, {\n      \"class\": 'ap-question-note-ctn',\n      child: [{\n        \"class\": 'ap-field-name',\n        child: {\n          tag: 'span',\n          child: {\n            text: 'Ghi chú'\n          }\n        }\n      }, {\n        tag: 'pre',\n        \"class\": 'ap-input',\n        child: {\n          text: ''\n        }\n      }]\n    }, {\n      \"class\": 'ap-question-feedback-ctn',\n      child: [{\n        \"class\": 'ap-field-name',\n        child: {\n          tag: 'span',\n          child: {\n            text: 'Nhận xét'\n          }\n        }\n      }, {\n        tag: _PreInput[\"default\"].tag,\n        \"class\": 'ap-input'\n      }]\n    }]\n  });\n};\n\nPRQuestion.prototype.dataHandlers = Object.assign({}, _PVQuestion[\"default\"].prototype.dataHandlers);\nPRQuestion.property = Object.assign({}, _PVQuestion[\"default\"].property);\nPRQuestion.property.evaluatedScore = {\n  set: function set(value) {\n    if (!(0, _utils.isRealNumber)(value)) value = null;\n    this.$evaluatedScore.value = value;\n  },\n  get: function get() {\n    var score = this.$evaluatedScore.value;\n    if (!(0, _utils.isRealNumber)(score)) score = null;\n    return score;\n  }\n};\nPRQuestion.property.designedScore = {\n  set: function set(value) {\n    if (!(0, _utils.isRealNumber)(value)) value = null;\n    this.$designedScore.value = value;\n  },\n  get: function get() {\n    var score = this.$designedScore.value;\n    if (!(0, _utils.isRealNumber)(score)) score = null;\n    return score;\n  }\n};\nPRQuestion.property.note = {\n  set: function set(value) {\n    value = typeof value === 'string' ? value : (value || '') + '';\n\n    if (value) {\n      this.addClass('ap-has-note');\n    } else {\n      this.removeClass('ap-has-note');\n    }\n\n    this.$note.firstChild.data = value;\n  },\n  get: function get() {\n    this.$note.firstChild.data;\n  }\n};\nPRQuestion.property.feedback = {\n  set: function set(value) {\n    value = typeof value === 'string' ? value : (value || '') + '';\n\n    if (value) {\n      this.addClass('ap-has-feedback');\n    } else {\n      this.removeClass('ap-has-feedback');\n    }\n\n    this.$feedback.value = value;\n  },\n  get: function get() {\n    return this.$feedback.value;\n  }\n};\nPRQuestion.property.evaluationIdent = {\n  set: function set(value) {\n    if (!(0, _utils.isRealNumber)(value)) value = 0;\n    this.attr('data-evaluation-ident', value + '');\n  },\n  get: function get() {\n    var ident = parseInt(this.attr('data-evaluation-ident'));\n    if ((0, _utils.isRealNumber)(ident)) return ident;\n    return 0;\n  }\n};\nPRQuestion.property.readOnly = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('ap-read-only');\n    } else {\n      this.removeClass('ap-read-only');\n    }\n\n    this.$feedback.readOnly = !!value;\n  },\n  get: function get() {\n    return this.hasClass('ap-read-only');\n  }\n};\nPRQuestion.prototype.dataHandlers.type = {\n  set: function set(value) {\n    this.attr('data-type', value);\n    var tag = this.type2tag[value];\n    this.$body.clearChild();\n\n    if (tag) {\n      this.$answer = (0, _Core._)({\n        tag: tag,\n        props: {\n          readOnly: true\n        }\n      });\n    } else {\n      this.$answer = (0, _Core._)('pre');\n    }\n\n    this.$body.addChild(this.$answer);\n    return value;\n  }\n};\n\nPRQuestion.prototype.init = function (props) {\n  var cProps = Object.assign({}, props);\n  var result = cProps.result;\n  delete cProps.result;\n  Object.assign(this, cProps);\n\n  if ('result' in props) {\n    this.result = result;\n  }\n};\n\nPRQuestion.prototype.type2tag = {\n  short_answer: _PVShortAnswer[\"default\"].tag,\n  paragraph: _PRParagraphAnswer[\"default\"].tag,\n  linear_scale: _PVLinearScaleAnswer[\"default\"].tag,\n  multiple_choice: _PVMultipleChoiceAnswer[\"default\"].tag,\n  checkboxes: _PVCheckboxesAnswer[\"default\"].tag\n};\nPRQuestion.eventHandler = {};\n\nPRQuestion.eventHandler.evaluatedChange = function (event) {\n  this.emit('evaluationchange', {\n    type: 'evaluationchange',\n    originalEvent: event,\n    target: this,\n    property: 'evaluatedScore'\n  });\n};\n\nPRQuestion.eventHandler.noteFocus = function () {\n  this._preFeedbackValue = this.$feedback.value;\n};\n\nPRQuestion.eventHandler.noteBlur = function (event) {\n  var currentValue = this.$feedback.value;\n\n  if (this._preFeedbackValue !== currentValue) {\n    this.emit('evaluationchange', {\n      type: 'evaluationchange',\n      originalEvent: event,\n      property: 'note',\n      target: this\n    }, this);\n  }\n};\n\n_Core[\"default\"].install(PRQuestion);\n\nvar _default = PRQuestion;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./dom/evaluation/PRQuestion.js?");

/***/ }),

/***/ "./dom/install.js":
/*!************************!*\
  !*** ./dom/install.js ***!
  \************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = install;\nexports.publicCreators = void 0;\n\nvar _APEditableQuestion = _interopRequireDefault(__webpack_require__(/*! ./editor/question/APEditableQuestion */ \"./dom/editor/question/APEditableQuestion.js\"));\n\nvar _APEditableSection = _interopRequireDefault(__webpack_require__(/*! ./editor/APEditableSection */ \"./dom/editor/APEditableSection.js\"));\n\nvar _PRQuestion = _interopRequireDefault(__webpack_require__(/*! ./evaluation/PRQuestion */ \"./dom/evaluation/PRQuestion.js\"));\n\nvar _PVQuestion = _interopRequireDefault(__webpack_require__(/*! ./viewer/question/PVQuestion */ \"./dom/viewer/question/PVQuestion.js\"));\n\nvar _PVSection = _interopRequireDefault(__webpack_require__(/*! ./viewer/PVSection */ \"./dom/viewer/PVSection.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar publicCreators = [_APEditableQuestion[\"default\"], _APEditableSection[\"default\"], _PRQuestion[\"default\"], _PVQuestion[\"default\"], _PVSection[\"default\"]];\n/***\r\n *\r\n * @param {Dom} core\r\n */\n\nexports.publicCreators = publicCreators;\n\nfunction install(core) {\n  core.install(publicCreators);\n}\n\n//# sourceURL=webpack://absol-poser/./dom/install.js?");

/***/ }),

/***/ "./dom/printer.js":
/*!************************!*\
  !*** ./dom/printer.js ***!
  \************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.PoserSerializer = exports.PoserPrintSerialHandlers = void 0;\nexports.exportPoserElementAsPDF = exportPoserElementAsPDF;\n\n__webpack_require__(/*! ../css/print.css */ \"./css/print.css\");\n\nvar _FileSaver = __webpack_require__(/*! absol/src/Network/FileSaver */ \"./node_modules/absol/src/Network/FileSaver.js\");\n\nvar _PrintSerializer = _interopRequireDefault(__webpack_require__(/*! absol/src/Print/PrintSerializer */ \"./node_modules/absol/src/Print/PrintSerializer.js\"));\n\nvar _PaperPrinter = _interopRequireDefault(__webpack_require__(/*! absol/src/Print/PaperPrinter */ \"./node_modules/absol/src/Print/PaperPrinter.js\"));\n\nvar _Rectangle = _interopRequireDefault(__webpack_require__(/*! absol/src/Math/Rectangle */ \"./node_modules/absol/src/Math/Rectangle.js\"));\n\nvar _PrintSerialHandlers = __webpack_require__(/*! absol/src/Print/PrintSerialHandlers */ \"./node_modules/absol/src/Print/PrintSerialHandlers.js\");\n\nvar _Vec = _interopRequireDefault(__webpack_require__(/*! absol/src/Math/Vec2 */ \"./node_modules/absol/src/Math/Vec2.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n *\r\n * @type {PSHandler[]}\r\n */\nvar PoserPrintSerialHandlers = [];\nexports.PoserPrintSerialHandlers = PoserPrintSerialHandlers;\nPoserPrintSerialHandlers.push({\n  id: 'RibbonText',\n  match: function match(elt, scope, stack) {\n    return elt.classList && elt.classList.contains('as-ribbon-button-text');\n  },\n  exec: function exec(printer, elt, scope, stack, accept) {\n    var content = elt.getAttribute('data-text');\n    content = content.replace(/^\" |\"$/g, '');\n\n    var rect = _Rectangle[\"default\"].fromClientRect(elt.getBoundingClientRect());\n\n    rect.x -= printer.O.x;\n    rect.y -= printer.O.y;\n    rect.width *= 2;\n    var attr = (0, _PrintSerialHandlers.computePrintAttr)(elt);\n    printer.text(content, rect, attr.style);\n  }\n});\nPoserPrintSerialHandlers.push({\n  id: 'MaterialIcon',\n  match: function match(elt, scope, stack) {\n    return elt.classList && elt.classList.contains('material-icons');\n  },\n  exec: function exec(printer, elt, scope, stack, accept) {\n    var style = getComputedStyle(elt);\n    var font = style.getPropertyValue('font');\n\n    var rect = _Rectangle[\"default\"].fromClientRect(elt.getBoundingClientRect());\n\n    if (rect.width * rect.height === 0) return;\n    var canvas = document.createElement('canvas');\n    canvas.width = rect.width * 3;\n    canvas.height = rect.height * 3;\n    var ctx = canvas.getContext('2d');\n    ctx.font = \"18px \\\"Material Icons\\\"\";\n    ctx.textBaseline = \"top\";\n    rect.x -= printer.O.x;\n    rect.y -= printer.O.y;\n    rect.width *= 3;\n    rect.height *= 3;\n    ctx.fillStyle = style.getPropertyValue('color');\n    ctx.fillText(elt.innerText, 10, 10);\n    printer.image(canvas, rect);\n  }\n}); // ap-editable-short-text-answer-text-field\n\nPoserPrintSerialHandlers.push({\n  id: \"APTextField\",\n  match: function match(elt, scope, stack) {\n    return elt.classList && elt.classList.contains('ap-editable-short-text-answer-text-field') || elt.parentElement && elt.parentElement.classList.contains('ap-editable-long-text-answer-text-field');\n  },\n  exec: function exec(printer, elt, scope, stack, accept) {\n    var rect = _Rectangle[\"default\"].fromClientRect(elt.getBoundingClientRect());\n\n    rect.x -= printer.O.x;\n    rect.y -= printer.O.y;\n    var C = rect.C().sub(new _Vec[\"default\"](0, 5));\n    var D = rect.D().sub(new _Vec[\"default\"](0, 5));\n    printer.line(D, C, {\n      stroke: 'black',\n      strokeWidth: 1\n    });\n  }\n});\nvar PoserSerializer = new _PrintSerializer[\"default\"]();\nexports.PoserSerializer = PoserSerializer;\nPoserSerializer.addHandlers(PoserPrintSerialHandlers);\n\nfunction exportPoserElementAsPDF(elt, opt) {\n  var printer = new _PaperPrinter[\"default\"]();\n  return PoserSerializer.serialize(elt, printer).then(function (printer) {\n    return printer.exportAsPDF();\n  }).then(function (doc) {\n    var blob = doc.output('blob');\n    (0, _FileSaver.saveAs)(blob, (opt.title || 'export') + '.pdf');\n  });\n}\n\n//# sourceURL=webpack://absol-poser/./dom/printer.js?");

/***/ }),

/***/ "./dom/viewer/PVSection.js":
/*!*********************************!*\
  !*** ./dom/viewer/PVSection.js ***!
  \*********************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Core = _interopRequireWildcard(__webpack_require__(/*! ../Core */ \"./dom/Core.js\"));\n\nvar _Attributes = _interopRequireDefault(__webpack_require__(/*! absol/src/AppPattern/Attributes */ \"./node_modules/absol/src/AppPattern/Attributes.js\"));\n\nvar _utils = __webpack_require__(/*! ../../utils */ \"./utils.js\");\n\nvar _utils2 = __webpack_require__(/*! absol-acomp/js/utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction PVSection() {\n  this.$name = (0, _Core.$)('.ap-section-name-ctn > span', this);\n  this.$description = (0, _Core.$)('.ap-section-description', this);\n  this.$imageCtn = (0, _Core.$)('.ap-section-image-ctn', this);\n  this.$idx = (0, _Core.$)('.ap-section-idx', this);\n  this._idx = 1;\n  this.idx = this._idx;\n  this._data = new _Attributes[\"default\"](this);\n\n  this._data.loadAttributeHandlers(this.dataHandlers);\n}\n\nPVSection.tag = 'PVSection'.toLowerCase();\n\nPVSection.render = function () {\n  return (0, _Core._)({\n    \"class\": ['ap-block', 'ap-section'],\n    child: [{\n      \"class\": 'ap-section-header',\n      child: [{\n        child: {\n          \"class\": 'ap-section-idx',\n          child: {\n            text: 1\n          }\n        }\n      }, {\n        \"class\": 'ap-section-name-ctn',\n        child: {\n          tag: 'span',\n          child: {\n            text: ''\n          }\n        }\n      }]\n    }, {\n      \"class\": 'ap-section-body',\n      child: [{\n        \"class\": 'ap-section-description',\n        child: {\n          text: ''\n        }\n      }, {\n        \"class\": 'ap-section-image-ctn'\n      }]\n    }]\n  });\n};\n\nPVSection.property = {};\nPVSection.property.idx = {\n  set: function set(value) {\n    this._idx = value;\n    this.$idx.firstChild.data = value + '';\n  },\n  get: function get() {\n    return this._idx;\n  }\n};\nPVSection.property.data = {\n  set: function set(data) {\n    Object.assign(this._data, data);\n  },\n  get: function get() {\n    return this._data;\n  }\n};\nPVSection.prototype.dataHandlers = {};\nPVSection.prototype.dataHandlers.name = {\n  set: function set(value) {\n    this.$name.firstChild.data = value;\n  },\n  get: function get() {\n    return this.$name.firstChild.data;\n  }\n};\nPVSection.prototype.dataHandlers.description = {\n  set: function set(value) {\n    this.$description.firstChild.data = value;\n  },\n  get: function get() {\n    return this.$description.firstChild.data;\n  }\n};\nPVSection.prototype.dataHandlers.images = {\n  set: function set(images) {\n    images = images || [];\n    this.$imageCtn.clearChild();\n    this.$images = images.map(function (img) {\n      if (img instanceof Blob || img instanceof File) {\n        img = (0, _utils.toImageUrl)(img);\n      }\n\n      return (0, _Core._)({\n        tag: 'img',\n        props: {\n          src: img\n        }\n      });\n    });\n    this.$imageCtn.addChild(this.$images);\n    return images;\n  }\n};\nPVSection.prototype.dataHandlers.ident = {\n  set: function set(value) {\n    if (!(0, _utils2.isRealNumber)(value)) value = 0;\n    this.attr('data-ident', value + '');\n  },\n  get: function get() {\n    var ident = parseInt(this.attr('data-ident'));\n    if (!(0, _utils2.isRealNumber)(ident)) ident = 0;\n    return ident;\n  }\n};\n\n_Core[\"default\"].install(PVSection);\n\nvar _default = PVSection;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./dom/viewer/PVSection.js?");

/***/ }),

/***/ "./dom/viewer/question/PVCheckboxesAnswer.js":
/*!***************************************************!*\
  !*** ./dom/viewer/question/PVCheckboxesAnswer.js ***!
  \***************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Core = _interopRequireWildcard(__webpack_require__(/*! ../../Core */ \"./dom/Core.js\"));\n\nvar _PVMultipleChoiceAnswer = _interopRequireDefault(__webpack_require__(/*! ./PVMultipleChoiceAnswer */ \"./dom/viewer/question/PVMultipleChoiceAnswer.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends PVMultipleChoiceAnswer\r\n * @constructor\r\n */\nfunction PVCheckboxesAnswer() {\n  _PVMultipleChoiceAnswer[\"default\"].call(this);\n}\n\nPVCheckboxesAnswer.tag = 'PVCheckboxesAnswer'.toLowerCase();\nPVCheckboxesAnswer.render = _PVMultipleChoiceAnswer[\"default\"].render;\nPVCheckboxesAnswer.prototype.selectConstruction = {\n  tag: 'checkboxbutton',\n  \"class\": 'ap-checkbox'\n};\nPVCheckboxesAnswer.property = Object.assign({}, _PVMultipleChoiceAnswer[\"default\"].property);\nPVCheckboxesAnswer.eventHandler = Object.assign({}, _PVMultipleChoiceAnswer[\"default\"].eventHandler);\n\nPVCheckboxesAnswer.prototype._updateResult = function () {\n  var result = this._result || [];\n  var dict = result.reduce(function (ac, cr) {\n    ac[cr.idx] = true;\n    if ('other' in cr) ac.other = cr.other;\n    return ac;\n  }, {});\n  var correctDict = (this._correctAnswer || []).reduce(function (ac, cr) {\n    ac[cr] = true;\n    return ac;\n  }, {});\n  this.$answers.forEach(function (ansElt, i) {\n    if (correctDict[i]) {\n      ansElt.addClass('ap-correct-answer');\n    } else {\n      ansElt.removeClass('ap-correct-answer');\n    }\n\n    if (dict[i]) {\n      ansElt.addClass('ap-result-answer');\n    } else {\n      ansElt.removeClass('ap-result-answer');\n    }\n  }); //todo: handle other if need\n\n  this.$checkes.forEach(function (elt, i) {\n    elt.checked = !!dict[i];\n  });\n\n  if (this.$otherText) {\n    this.$otherText.value = dict.other || '';\n  }\n};\n\nPVCheckboxesAnswer.eventHandler.selectChange = function (valueIdx, event) {\n  var checked = this.$checkes[valueIdx].checked;\n  var answer = this._data[valueIdx];\n  var resultIdx = this._result ? this._result.findIndex(function (it) {\n    if (answer === 'other') {\n      return 'other' in it;\n    } else {\n      return it.idx === valueIdx;\n    }\n  }) : -1;\n\n  if (checked) {\n    if (resultIdx >= 0) {\n      if (answer === 'other') {\n        this._result[resultIdx].other = this.$otherText.value;\n      }\n    } else {\n      if (!(this._result instanceof Array)) this._result = [];\n\n      if (answer === 'other') {\n        this._result.push({\n          other: this.$otherText.value\n        });\n      } else {\n        this._result.push({\n          idx: valueIdx\n        });\n      }\n    }\n  } else {\n    if (resultIdx >= 0) {\n      this._result.splice(resultIdx, 1);\n    }\n  }\n\n  function idxOf(it) {\n    if ('other' in it) return 10000;\n    return it.idx;\n  }\n\n  this._result.sort(function (a, b) {\n    return idxOf(a) - idxOf(b);\n  });\n\n  this.emit('resultchange', {\n    type: 'resultchange',\n    target: this,\n    originalEvent: event\n  }, this);\n};\n\nPVCheckboxesAnswer.eventHandler.otherTextChange = function (event) {\n  var resultIdx = this._result ? this._result.findIndex(function (it) {\n    return 'other' in it;\n  }) : -1;\n\n  if (resultIdx >= 0) {\n    this._result[resultIdx].other = this.$otherText.value;\n    this.emit('resultchange', {\n      type: 'resultchange',\n      target: this,\n      originalEvent: event\n    }, this);\n  }\n};\n\n_Core[\"default\"].install(PVCheckboxesAnswer);\n\nvar _default = PVCheckboxesAnswer;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./dom/viewer/question/PVCheckboxesAnswer.js?");

/***/ }),

/***/ "./dom/viewer/question/PVLinearScaleAnswer.js":
/*!****************************************************!*\
  !*** ./dom/viewer/question/PVLinearScaleAnswer.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Core = _interopRequireWildcard(__webpack_require__(/*! ../../Core */ \"./dom/Core.js\"));\n\nvar _Attributes = _interopRequireDefault(__webpack_require__(/*! absol/src/AppPattern/Attributes */ \"./node_modules/absol/src/AppPattern/Attributes.js\"));\n\nvar _stringGenerate = __webpack_require__(/*! absol/src/String/stringGenerate */ \"./node_modules/absol/src/String/stringGenerate.js\");\n\nvar _RadioButton = _interopRequireDefault(__webpack_require__(/*! absol-acomp/js/RadioButton */ \"./node_modules/absol-acomp/js/RadioButton.js\"));\n\nvar _DomSignal = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/DomSignal */ \"./node_modules/absol/src/HTML5/DomSignal.js\"));\n\nvar _utils = __webpack_require__(/*! absol-acomp/js/utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction PVLinearScaleAnswer() {\n  this.$minTitle = (0, _Core.$)('.ap-linear-scale-answer-min-title  span', this);\n  this.$maxTitle = (0, _Core.$)('.ap-linear-scale-answer-max-title span', this);\n  this.$table = (0, _Core.$)('.ap-linear-scale-answer-table', this);\n  this.$firstCol = this.$table.firstChild;\n  this.$lastCol = this.$table.lastChild;\n  this.$radios = [];\n  this.$firstCol.remove();\n  this.$lastCol.remove();\n  this.$domSignal = (0, _Core._)('attachhook').addTo(this);\n  this.domSignal = new _DomSignal[\"default\"](this.$domSignal);\n  this.domSignal.on('requestUpdateSize', this.updateSize.bind(this));\n  this.domSignal.emit('requestUpdateSize');\n  this._result = null;\n  this._data = new _Attributes[\"default\"](this);\n\n  this._data.loadAttributeHandlers(this.dataHandlers);\n\n  this.id = (0, _stringGenerate.randomIdent)(8);\n}\n\nPVLinearScaleAnswer.tag = 'PVLinearScaleAnswer'.toLowerCase();\n\nPVLinearScaleAnswer.render = function () {\n  return (0, _Core._)({\n    extendEvent: ['resultchange'],\n    \"class\": 'ap-linear-scale-answer',\n    child: [{\n      \"class\": 'ap-linear-scale-answer-table',\n      child: [{\n        \"class\": 'ap-linear-scale-answer-table-title-ctn-left',\n        child: [{\n          \"class\": 'ap-linear-scale-answer-min-title',\n          child: {\n            tag: 'span',\n            child: {\n              text: 'Không đồng ý'\n            }\n          }\n        }, {\n          child: {\n            tag: 'span',\n            child: {\n              text: \"Trả lời\"\n            }\n          }\n        }]\n      }, {\n        \"class\": 'ap-linear-scale-answer-table-title-ctn-right',\n        child: [{\n          \"class\": 'ap-linear-scale-answer-min-title',\n          child: {\n            tag: 'span',\n            child: {\n              text: 'Hoàn toàn đồng ý'\n            }\n          }\n        }, {}]\n      }]\n    }]\n  });\n};\n\nPVLinearScaleAnswer.prototype.updateSize = function () {\n  var leftBound = this.$firstCol.getBoundingClientRect();\n  var lastBound = this.$lastCol.getBoundingClientRect();\n  this.$table.addStyle('left', leftBound.width + 'px');\n  this.$table.addStyle('right', lastBound.width + 'px');\n};\n\nPVLinearScaleAnswer.prototype._updateRadios = function () {\n  var min = this._data.min;\n  var value = this._result;\n  if (!(0, _utils.isRealNumber)(min) || !(0, _utils.isRealNumber)(value)) return;\n\n  for (var i = 0; i < this.$radios.length; ++i) {\n    if (i + min === value) {\n      this.$radios[i].checked = true;\n    } else {\n      this.$radios[i].checked = false;\n    }\n  }\n};\n\nPVLinearScaleAnswer.property = {};\nPVLinearScaleAnswer.property.data = {\n  set: function set(value) {\n    value = Object.assign({}, value);\n    this._data.min = value.min;\n    delete value.min;\n    Object.assign(this._data, value);\n  },\n  get: function get() {\n    return this._data;\n  }\n};\nPVLinearScaleAnswer.property.result = {\n  set: function set(value) {\n    if (!(0, _utils.isRealNumber)(value)) value = null;else value = Math.floor(value);\n    this._result = value;\n\n    this._updateRadios();\n  },\n  get: function get() {\n    return this._result;\n  }\n};\nPVLinearScaleAnswer.property.readOnly = {\n  set: function set(value) {\n    if (value) this.addClass('ap-readonly');else this.removeClass('ap-readonly');\n  },\n  get: function get() {\n    return this.containsClass('ap-readonly');\n  }\n};\nPVLinearScaleAnswer.prototype.dataHandlers = {};\nPVLinearScaleAnswer.prototype.dataHandlers.max = {\n  /***\r\n   * @this PVLinearScaleAnswer\r\n   * @param max\r\n   */\n  set: function set(max) {\n    var self = this;\n    var min = this._data.min;\n    var n = max - min + 1;\n    var id = this.id;\n    var colElt;\n    var radio;\n\n    while (this.$table.childNodes.length < n) {\n      colElt = (0, _Core._)({\n        \"class\": 'ap-linear-scale-answer-table-col',\n        child: [{\n          child: {\n            tag: 'span',\n            child: {\n              text: '0'\n            }\n          }\n        }, {\n          child: {\n            tag: _RadioButton[\"default\"].tag,\n            props: {\n              name: this.id + '_radio'\n            },\n            on: {\n              change: function change(event) {\n                self.emit('resultchange', {\n                  type: 'resultchange',\n                  target: self,\n                  originalEvent: event\n                }, self);\n              }\n            }\n          }\n        }]\n      });\n      radio = (0, _Core.$)(_RadioButton[\"default\"].tag, colElt);\n      radio.on('change', this.eventHandler.radioChange.bind(this, radio));\n      this.$radios.push(radio);\n      this.$table.addChild(colElt, this.$lastCol);\n    }\n\n    this.$table.firstChild.addChild(this.$firstCol);\n    this.$table.lastChild.addChild(this.$lastCol);\n\n    while (this.$table.childNodes.length > n) {\n      this.$table.lastChild.remove();\n      this.$radios.pop();\n    }\n\n    for (var i = 0; i < n; ++i) {\n      this.$table.childNodes[i].firstChild.firstChild.firstChild.data = min + i + '';\n      this.$table.childNodes[i].childNodes[1].firstChild.value = i;\n      this.$table.childNodes[i].addStyle('width', Math.floor(1000 / n) / 10 + '%');\n    }\n\n    this._updateRadios();\n\n    this.domSignal.emit('requestUpdateSize');\n  }\n};\nPVLinearScaleAnswer.eventHandler = {};\n\nPVLinearScaleAnswer.eventHandler.radioChange = function (radio, event) {\n  this._result = parseInt(radio.value);\n  this.emit('resultchange', {\n    type: 'resultchange',\n    target: this,\n    originalEvent: event.originalEvent || event.originEvent || event\n  }, this);\n};\n\n_Core[\"default\"].install(PVLinearScaleAnswer);\n\nvar _default = PVLinearScaleAnswer;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./dom/viewer/question/PVLinearScaleAnswer.js?");

/***/ }),

/***/ "./dom/viewer/question/PVMultipleChoiceAnswer.js":
/*!*******************************************************!*\
  !*** ./dom/viewer/question/PVMultipleChoiceAnswer.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Core = _interopRequireWildcard(__webpack_require__(/*! ../../Core */ \"./dom/Core.js\"));\n\nvar _stringGenerate = __webpack_require__(/*! absol/src/String/stringGenerate */ \"./node_modules/absol/src/String/stringGenerate.js\");\n\nvar _PreInput = _interopRequireDefault(__webpack_require__(/*! absol-acomp/js/PreInput */ \"./node_modules/absol-acomp/js/PreInput.js\"));\n\nvar _EventEmitter = __webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction PVMultipleChoiceAnswer() {\n  this._data = [];\n  this._result = null;\n  this._correctAnswer = null;\n  this.$checkes = [];\n  this.$answers = [];\n  this.id = (0, _stringGenerate.randomIdent)(8);\n}\n\nPVMultipleChoiceAnswer.tag = 'PVMultipleChoiceAnswer'.toLowerCase();\n\nPVMultipleChoiceAnswer.render = function () {\n  return (0, _Core._)({\n    extendEvent: ['resultchange'],\n    \"class\": 'ap-multiple-choice-answer',\n    child: []\n  });\n};\n\nPVMultipleChoiceAnswer.prototype.selectConstruction = {\n  tag: 'radiobutton',\n  \"class\": 'ap-radio'\n};\n\nPVMultipleChoiceAnswer.prototype._updateResult = function () {\n  var result = this._result;\n  var correctAnswer = this._correctAnswer;\n  var data = this._data;\n  var self = this;\n  if (!data) return;\n\n  if (!result) {\n    if (this.$otherText) {\n      this.$otherText.value = '';\n      this.$checkes.forEach(function (elt) {\n        elt.checked = false;\n      });\n    }\n  } else {\n    this.$answers.forEach(function (ansElt, i) {\n      if (i === correctAnswer) {\n        ansElt.addClass('ap-correct-answer');\n      } else {\n        ansElt.removeClass('ap-correct-answer');\n      }\n\n      if (i === result.idx) {\n        ansElt.addClass('ap-result-answer');\n      } else if ('other' in result && data[i] === 'other') {\n        ansElt.addClass('ap-result-answer');\n      } else {\n        ansElt.removeClass('ap-result-answer');\n      }\n    });\n    this.$checkes.forEach(function (elt, i) {\n      if (i === result.idx) {\n        elt.checked = true;\n      } else if ('other' in result && data[i] === 'other') {\n        elt.checked = true;\n        if (self.$otherText) self.$otherText.value = true;\n      } else {\n        elt.checked = false;\n      }\n    });\n  }\n};\n\nPVMultipleChoiceAnswer.property = {};\nPVMultipleChoiceAnswer.property.data = {\n  /***\r\n   * @this PVMultipleChoiceAnswer\r\n   * @param value\r\n   */\n  set: function set(value) {\n    var self = this;\n    this.clearChild();\n    this.$checkes = [];\n    this.$answers = [];\n    this._data = value || [];\n\n    this._data.forEach(function (ans, i) {\n      var ansElt, select;\n\n      if (ans === 'other') {\n        ansElt = (0, _Core._)({\n          \"class\": 'ap-choice-answer',\n          child: [{\n            \"class\": 'ap-choice-answer-select',\n            child: [this.selectConstruction, 'span.mdi.mdi-check-bold', 'span.mdi.mdi-close-thick']\n          }, {\n            \"class\": ['ap-choice-answer-content-ctn', 'ap-empty'],\n            style: {\n              position: 'relative'\n            },\n            child: [{\n              tag: _PreInput[\"default\"].tag,\n              \"class\": ['ap-choice-answer-content', 'ap-input'],\n              on: {\n                focus: function focus(event) {\n                  this.parentElement.removeClass('ap-empty');\n                  this._prevResult = this.value;\n                  var preCheck = select.checked;\n\n                  if (!preCheck) {\n                    select.checked = true;\n                    self.eventHandler.selectChange(i, event);\n                  }\n                },\n                blur: function blur(event) {\n                  var value = this.value;\n\n                  if (value.trim().length === 0) {\n                    this.parentElement.addClass('ap-empty');\n                  }\n\n                  if (value !== this._prevResult) self.eventHandler.otherTextChange(event);\n                }\n              }\n            }, {\n              \"class\": 'ap-choice-answer-content-placeholder',\n              child: {\n                child: {\n                  text: 'Khác...'\n                }\n              }\n            }]\n          }]\n        });\n        this.$otherText = (0, _Core.$)('preinput', ansElt);\n      } else {\n        ansElt = (0, _Core._)({\n          \"class\": ['ap-choice-answer'].concat(ans.images && ans.images.length > 0 ? ['ap-has-image'] : []),\n          child: [{\n            \"class\": 'ap-choice-answer-select',\n            child: [this.selectConstruction, 'span.mdi.mdi-check-bold', 'span.mdi.mdi-close-thick']\n          }, {\n            \"class\": 'ap-choice-answer-content-ctn',\n            child: [{\n              \"class\": 'ap-choice-answer-content',\n              child: {\n                tag: 'span',\n                child: {\n                  text: ans.text\n                }\n              }\n            }, {\n              \"class\": 'ap-choice-answer-image-ctn',\n              child: (ans.images || []).map(function (img) {\n                if (img instanceof Blob || img instanceof File) img = URL.createObjectURL(img);\n                return {\n                  tag: 'img',\n                  props: {\n                    src: img\n                  }\n                };\n              })\n            }]\n          }]\n        });\n      }\n\n      select = (0, _Core.$)('.ap-choice-answer-select', ansElt).firstChild;\n      select.name = this.id + '_select';\n      select.value = i + '';\n      select.on('change', self.eventHandler.selectChange.bind(self, i));\n      ansElt.on('click', function (event) {\n        if (!self.readOnly && !(0, _EventEmitter.hitElement)(select, event)) {\n          if (self.selectConstruction.tag === 'radiobutton') {\n            if (!select.checked) {\n              select.checked = true;\n              select.emit('change', {});\n            }\n          } else {\n            select.checked = !select.checked;\n            select.emit('change', {});\n          }\n        }\n      });\n      this.$checkes.push(select);\n      this.$answers.push(ansElt);\n      this.addChild(ansElt);\n    }.bind(this));\n\n    this._updateResult();\n  },\n  get: function get() {\n    return this._data;\n  }\n};\nPVMultipleChoiceAnswer.property.correctAnswer = {\n  set: function set(value) {\n    this._correctAnswer = value;\n\n    this._updateResult();\n  },\n  get: function get() {\n    return this._value;\n  }\n};\nPVMultipleChoiceAnswer.property.result = {\n  set: function set(value) {\n    this._result = value || null;\n\n    this._updateResult();\n  },\n  get: function get() {\n    return this._result;\n  }\n};\nPVMultipleChoiceAnswer.property.readOnly = {\n  set: function set(value) {\n    if (value) this.addClass('ap-readonly');else this.removeClass('ap-readonly');\n  },\n  get: function get() {\n    return this.containsClass('ap-readonly');\n  }\n};\nPVMultipleChoiceAnswer.eventHandler = {};\n\nPVMultipleChoiceAnswer.eventHandler.selectChange = function (valueIdx, event) {\n  var answer = this._data[valueIdx];\n\n  if (answer === 'other') {\n    this._result = {\n      other: this.$otherText.value\n    };\n  } else {\n    this._result = {\n      idx: valueIdx\n    };\n  }\n\n  this.emit('resultchange', {\n    type: 'resultchange',\n    target: this,\n    originalEvent: event\n  }, this);\n};\n\nPVMultipleChoiceAnswer.eventHandler.otherTextChange = function (event) {\n  if (this._result && 'other' in this._result) {\n    this._result.other = this.$otherText.value;\n    this.emit('resultchange', {\n      type: 'resultchange',\n      target: this,\n      originalEvent: event\n    }, this);\n  }\n};\n\n_Core[\"default\"].install(PVMultipleChoiceAnswer);\n\nvar _default = PVMultipleChoiceAnswer;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./dom/viewer/question/PVMultipleChoiceAnswer.js?");

/***/ }),

/***/ "./dom/viewer/question/PVParagraphAnswer.js":
/*!**************************************************!*\
  !*** ./dom/viewer/question/PVParagraphAnswer.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Core = _interopRequireWildcard(__webpack_require__(/*! ../../Core */ \"./dom/Core.js\"));\n\nvar _PreInput = _interopRequireDefault(__webpack_require__(/*! absol-acomp/js/PreInput */ \"./node_modules/absol-acomp/js/PreInput.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends PreInput\r\n * @constructor\r\n */\nfunction PVParagraphAnswer() {\n  this.on('focus', this.eventHandler.inputFocus).on('blur', this.eventHandler.inputBlur);\n}\n\nPVParagraphAnswer.tag = 'PVParagraphAnswer'.toLowerCase();\n\nPVParagraphAnswer.render = function () {\n  return (0, _Core._)({\n    tag: _PreInput[\"default\"].tag,\n    extendEvent: ['resultchange'],\n    \"class\": ['ap-input', 'ap-paragraph-answer']\n  });\n};\n\nPVParagraphAnswer.property = {};\nPVParagraphAnswer.property.result = {\n  set: function set(value) {\n    this.value = (value || '') + '';\n  },\n  get: function get() {\n    return this.value;\n  }\n};\nPVParagraphAnswer.eventHandler = {};\n\nPVParagraphAnswer.eventHandler.inputFocus = function () {\n  this._prevResult = this.value;\n};\n\nPVParagraphAnswer.eventHandler.inputBlur = function (event) {\n  var value = this.value;\n\n  if (this._prevResult !== value) {\n    this.emit('resultchange', {\n      originalEvent: event,\n      type: 'resultchange',\n      target: this\n    }, this);\n  }\n};\n\n_Core[\"default\"].install(PVParagraphAnswer);\n\nvar _default = PVParagraphAnswer;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./dom/viewer/question/PVParagraphAnswer.js?");

/***/ }),

/***/ "./dom/viewer/question/PVQuestion.js":
/*!*******************************************!*\
  !*** ./dom/viewer/question/PVQuestion.js ***!
  \*******************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Core = _interopRequireWildcard(__webpack_require__(/*! ../../Core */ \"./dom/Core.js\"));\n\nvar _Attributes = _interopRequireDefault(__webpack_require__(/*! absol/src/AppPattern/Attributes */ \"./node_modules/absol/src/AppPattern/Attributes.js\"));\n\nvar _PVShortAnswer = _interopRequireDefault(__webpack_require__(/*! ./PVShortAnswer */ \"./dom/viewer/question/PVShortAnswer.js\"));\n\nvar _PVParagraphAnswer = _interopRequireDefault(__webpack_require__(/*! ./PVParagraphAnswer */ \"./dom/viewer/question/PVParagraphAnswer.js\"));\n\nvar _PVLinearScaleAnswer = _interopRequireDefault(__webpack_require__(/*! ./PVLinearScaleAnswer */ \"./dom/viewer/question/PVLinearScaleAnswer.js\"));\n\nvar _PVMultipleChoiceAnswer = _interopRequireDefault(__webpack_require__(/*! ./PVMultipleChoiceAnswer */ \"./dom/viewer/question/PVMultipleChoiceAnswer.js\"));\n\nvar _PVCheckboxesAnswer = _interopRequireDefault(__webpack_require__(/*! ./PVCheckboxesAnswer */ \"./dom/viewer/question/PVCheckboxesAnswer.js\"));\n\nvar _PVSection = _interopRequireDefault(__webpack_require__(/*! ../PVSection */ \"./dom/viewer/PVSection.js\"));\n\nvar _utils = __webpack_require__(/*! absol-acomp/js/utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction PVQuestion() {\n  this.$idx = (0, _Core.$)('.ap-question-idx > span', this);\n  this.$content = (0, _Core.$)('.ap-question-content-ctn > span', this);\n  this.$description = (0, _Core.$)('.ap-question-description > span', this);\n  this.$imageCtn = (0, _Core.$)('.ap-question-image-ctn', this);\n  this.$body = (0, _Core.$)('.ap-question-body', this);\n  this.$answer = null;\n  this._data = new _Attributes[\"default\"](this);\n\n  this._data.loadAttributeHandlers(this.dataHandlers);\n}\n\nPVQuestion.tag = 'PVQuestion'.toLowerCase();\n\nPVQuestion.render = function () {\n  return (0, _Core._)({\n    extendEvent: ['resultchange'],\n    \"class\": ['ap-block', 'ap-question'],\n    child: [{\n      \"class\": 'ap-question-header',\n      child: [{\n        child: {\n          \"class\": 'ap-question-idx',\n          child: {\n            tag: 'span',\n            child: {\n              text: '1'\n            }\n          }\n        }\n      }, {\n        \"class\": 'ap-question-content-ctn',\n        child: [{\n          tag: 'span',\n          child: {\n            text: ''\n          }\n        }]\n      }]\n    }, {\n      \"class\": 'ap-question-description',\n      child: {\n        tag: 'span',\n        child: {\n          text: ''\n        }\n      }\n    }, {\n      \"class\": 'ap-question-image-ctn'\n    }, {\n      \"class\": 'ap-question-body'\n    }]\n  });\n};\n\nPVQuestion.prototype.init = function (props) {\n  var cProps = Object.assign({}, props);\n  var result = props.result;\n  delete cProps.result;\n  Object.assign(this, cProps);\n\n  if ('result' in props) {\n    this.result = result;\n  }\n};\n\nPVQuestion.property = {};\nPVQuestion.property.data = {\n  set: function set(value) {\n    value = Object.assign({}, value);\n    this._data.type = value.type;\n    this._data.answer = value.answer;\n    this._data.correct_answer = value.correct_answer;\n    delete value.type;\n    delete value.answer;\n    delete value.answer;\n    delete value.correct_answer;\n    Object.assign(this._data, value);\n    this.$answer.correctAnswer = this._data.correct_answer;\n    this.$answer.result = this._result;\n  },\n  get: function get() {\n    return this._data;\n  }\n};\nPVQuestion.property.result = {\n  set: function set(result) {\n    this._result = result;\n    if (this.$answer) this.$answer.result = this._result;\n  },\n  get: function get() {\n    if (this.$answer) return this.$answer.result;\n    return this._result;\n  }\n};\nPVQuestion.property.resultIdent = {\n  set: function set(value) {\n    if (!(0, _utils.isRealNumber)(value)) value = null;\n\n    if (value === null) {\n      this.attr('data-result-ident', undefined);\n    } else {\n      this.attr('data-result-ident', value + '');\n    }\n  },\n  get: function get() {\n    var res = parseInt(this.attr('data-result-ident'));\n    if (isNaN(res)) res = 0;\n    return res;\n  }\n};\nPVQuestion.property.idx = {\n  set: function set(value) {\n    this._idx = value;\n    this.$idx.firstChild.data = value + '';\n  },\n  get: function get() {\n    return this._idx;\n  }\n};\nPVQuestion.property.readOnly = {\n  set: function set(value) {\n    if (value) this.addClass('ap-read-only');else this.removeClass('ap-read-only');\n    if (this.$answer) this.$answer.readOnly = !!value;\n  },\n  get: function get() {\n    return this.hasClass('ap-read-only');\n  }\n};\nPVQuestion.prototype.dataHandlers = {};\nPVQuestion.prototype.dataHandlers.content = {\n  set: function set(value) {\n    this.$content.firstChild.data = value;\n  },\n  get: function get() {\n    return this.$content.firstChild.data;\n  }\n};\nPVQuestion.prototype.dataHandlers.description = {\n  set: function set(value) {\n    this.$description.firstChild.data = value;\n  },\n  get: function get() {\n    return this.$description.firstChild.data;\n  }\n};\nPVQuestion.prototype.dataHandlers.type = {\n  set: function set(value) {\n    var tag = this.type2tag[value];\n    this.$body.clearChild();\n\n    if (tag) {\n      this.$answer = (0, _Core._)({\n        tag: tag,\n        on: {\n          resultchange: this.eventHandler.answerResultChange\n        }\n      });\n      this.$answer.readOnly = this.readOnly;\n    } else {\n      this.$answer = (0, _Core._)('pre');\n    }\n\n    this.$body.addChild(this.$answer);\n    return value;\n  }\n};\nPVQuestion.prototype.dataHandlers.answer = {\n  set: function set(value) {\n    var tag = this.type2tag[this._data.type];\n\n    if (tag) {\n      this.$answer.data = value;\n    } else {\n      this.$answer.clearChild().addChild((0, _Core._)({\n        text: JSON.stringify(value, null, 4)\n      }));\n    }\n  },\n  get: function get() {\n    return this.$answer.data;\n  }\n};\nPVQuestion.prototype.dataHandlers.ident = {\n  set: function set(value) {\n    if (!(0, _utils.isRealNumber)(value)) value = 0;\n    this.attr('data-ident', value + '');\n  },\n  get: function get() {\n    var ident = parseInt(this.attr('data-ident'));\n    if (!(0, _utils.isRealNumber)(ident)) ident = 0;\n    return ident;\n  }\n};\nPVQuestion.prototype.dataHandlers.images = _PVSection[\"default\"].prototype.dataHandlers.images;\nPVQuestion.eventHandler = {};\n\nPVQuestion.eventHandler.answerResultChange = function () {\n  this.emit('resultchange', {\n    type: 'resultchange',\n    target: this\n  }, this);\n};\n\nPVQuestion.prototype.type2tag = {\n  short_answer: _PVShortAnswer[\"default\"].tag,\n  paragraph: _PVParagraphAnswer[\"default\"].tag,\n  linear_scale: _PVLinearScaleAnswer[\"default\"].tag,\n  multiple_choice: _PVMultipleChoiceAnswer[\"default\"].tag,\n  checkboxes: _PVCheckboxesAnswer[\"default\"].tag\n};\n\n_Core[\"default\"].install(PVQuestion);\n\nvar _default = PVQuestion;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./dom/viewer/question/PVQuestion.js?");

/***/ }),

/***/ "./dom/viewer/question/PVShortAnswer.js":
/*!**********************************************!*\
  !*** ./dom/viewer/question/PVShortAnswer.js ***!
  \**********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Core = _interopRequireWildcard(__webpack_require__(/*! ../../Core */ \"./dom/Core.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction PVShortAnswer() {\n  this.addEventListener('change', this.eventHandler.textChange);\n}\n\nPVShortAnswer.tag = 'PVShortAnswer'.toLowerCase();\n\nPVShortAnswer.render = function () {\n  return (0, _Core._)({\n    tag: 'input',\n    extendEvent: ['resultchange'],\n    \"class\": ['ap-input', 'ap-short-answer'],\n    attr: {\n      type: 'text'\n    }\n  });\n};\n\nPVShortAnswer.property = {};\nPVShortAnswer.property.result = {\n  set: function set(value) {\n    this.value = (value || '') + '';\n  },\n  get: function get() {\n    return this.value;\n  }\n};\nPVShortAnswer.property.readOnly = {\n  set: function set(value) {\n    if (value) {\n      this.attr('readonly', true);\n      this.addClass('ap-readonly');\n    } else {\n      this.attr('readonly', undefined);\n    }\n  },\n  get: function get() {\n    return this.containsClass('ap-readonly');\n  }\n};\nPVShortAnswer.eventHandler = {};\n\nPVShortAnswer.eventHandler.textChange = function (event) {\n  this.emit('resultchange', {\n    originalEvent: event,\n    type: 'resultchange',\n    target: this\n  }, this);\n};\n\n_Core[\"default\"].install(PVShortAnswer);\n\nvar _default = PVShortAnswer;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./dom/viewer/question/PVShortAnswer.js?");

/***/ }),

/***/ "./fragment/PoserEditor.js":
/*!*********************************!*\
  !*** ./fragment/PoserEditor.js ***!
  \*********************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Fragment = _interopRequireDefault(__webpack_require__(/*! absol/src/AppPattern/Fragment */ \"./node_modules/absol/src/AppPattern/Fragment.js\"));\n\nvar _Core = __webpack_require__(/*! ../dom/Core */ \"./dom/Core.js\");\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\n__webpack_require__(/*! ../css/posereditor.css */ \"./css/posereditor.css\");\n\nvar _APEditableSection = _interopRequireDefault(__webpack_require__(/*! ../dom/editor/APEditableSection */ \"./dom/editor/APEditableSection.js\"));\n\nvar _APEditableQuestion = _interopRequireDefault(__webpack_require__(/*! ../dom/editor/question/APEditableQuestion */ \"./dom/editor/question/APEditableQuestion.js\"));\n\nvar _ResizeSystem = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/ResizeSystem */ \"./node_modules/absol/src/HTML5/ResizeSystem.js\"));\n\nvar _EventEmitter = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nvar _ContextMenu = _interopRequireDefault(__webpack_require__(/*! absol-acomp/js/ContextMenu */ \"./node_modules/absol-acomp/js/ContextMenu.js\"));\n\nvar _utils = __webpack_require__(/*! absol-acomp/js/utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _BoardTable = _interopRequireDefault(__webpack_require__(/*! absol-acomp/js/BoardTable */ \"./node_modules/absol-acomp/js/BoardTable.js\"));\n\nvar _PoserQuestionTreeEditor = _interopRequireDefault(__webpack_require__(/*! ./PoserQuestionTreeEditor */ \"./fragment/PoserQuestionTreeEditor.js\"));\n\nvar _FileSaver = __webpack_require__(/*! absol/src/Network/FileSaver */ \"./node_modules/absol/src/Network/FileSaver.js\");\n\nvar _YesNoQuestionDialog = _interopRequireDefault(__webpack_require__(/*! absol-acomp/js/YesNoQuestionDialog */ \"./node_modules/absol-acomp/js/YesNoQuestionDialog.js\"));\n\nvar _Modal = _interopRequireDefault(__webpack_require__(/*! absol-acomp/js/Modal */ \"./node_modules/absol-acomp/js/Modal.js\"));\n\nvar _utils2 = __webpack_require__(/*! ../utils */ \"./utils.js\");\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _LoadingCubeModal = _interopRequireDefault(__webpack_require__(/*! absol-acomp/js/LoadingCubeModal */ \"./node_modules/absol-acomp/js/LoadingCubeModal.js\"));\n\nvar _printer = __webpack_require__(/*! ../dom/printer */ \"./dom/printer.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @augments Fragment\r\n * @augments EventEmitter\r\n * @param {{}=} opt\r\n * @constructor\r\n */\nfunction PoserEditor(opt) {\n  this.opt = Object.assign({\n    hasScroller: true,\n    hasTool: true,\n    hasSection: true,\n    questionTypes: null\n  }, opt);\n\n  _Fragment[\"default\"].call(this);\n\n  _EventEmitter[\"default\"].call(this);\n\n  this.treeEditor = new _PoserQuestionTreeEditor[\"default\"](this);\n}\n\n_OOP[\"default\"].mixClass(PoserEditor, _Fragment[\"default\"], _EventEmitter[\"default\"]);\n\nPoserEditor.prototype.createView = function () {\n  this.$view = (0, _Core._)({\n    \"class\": 'ap-poser-editor',\n    child: [{\n      \"class\": 'ap-poser-editor-header',\n      child: {\n        \"class\": ['as-form-cmd-tool'],\n        child: [{\n          \"class\": 'as-from-tool-group-buttons',\n          child: [{\n            tag: 'button',\n            \"class\": 'as-from-tool-button',\n            child: 'span.mdi.mdi-file-tree-outline',\n            attr: {\n              title: 'Edit Tree',\n              'data-cmd': 'edit_tree'\n            }\n          }, {\n            tag: 'button',\n            \"class\": 'as-from-tool-button',\n            child: 'span.mdi.mdi-code-json',\n            attr: {\n              title: 'Edit Tree',\n              'data-cmd': 'export_js'\n            }\n          }]\n        }, {\n          \"class\": 'as-from-tool-group-buttons',\n          child: [{\n            tag: 'button',\n            \"class\": 'as-from-tool-button',\n            child: 'span.mdi.mdi-format-section',\n            attr: {\n              title: 'New Section',\n              'data-cmd': 'new_section'\n            }\n          }, {\n            tag: 'button',\n            \"class\": 'as-from-tool-button',\n            child: 'span.mdi.mdi-comment-question-outline',\n            attr: {\n              title: 'New Question',\n              'data-cmd': 'new_question'\n            }\n          }, {\n            tag: 'button',\n            \"class\": 'as-from-tool-button',\n            style: {\n              color: 'rgba(222, 30, 30)'\n            },\n            child: 'span.mdi.mdi-delete-forever',\n            attr: {\n              title: 'New Question',\n              'data-cmd': 'delete'\n            },\n            props: {\n              disabled: true\n            }\n          }, // {\n          //     tag: 'button',\n          //     class: 'as-from-tool-button',\n          //     style: { color: 'rgba(50, 50, 222)' },\n          //     child: 'span.mdi.mdi-printer',\n          //     attr: {\n          //         title: 'Print',\n          //         'data-cmd': 'print'\n          //     }\n          // },\n          {\n            tag: 'button',\n            \"class\": 'as-from-tool-button',\n            style: {\n              color: 'rgba(50, 200, 222)'\n            },\n            child: 'span.mdi.mdi-download',\n            attr: {\n              title: 'Download',\n              'data-cmd': 'download'\n            }\n          }]\n        }]\n      }\n    }, {\n      \"class\": 'ap-poser-editor-body',\n      child: [{\n        \"class\": 'ap-poser-editor-data'\n      }, {\n        \"class\": 'ap-poser-editor-tree-editor-ctn',\n        child: this.treeEditor.getView()\n      }]\n    }, {\n      \"class\": 'ap-poser-editor-footer'\n    }]\n  });\n  var self = this;\n  this.$view.poserEditor = this;\n  this.$body = (0, _Core.$)('.ap-poser-editor-body', this.$view);\n  this.$data = (0, _Core.$)('.ap-poser-editor-data', this.$view);\n  this.$cmdButtons = (0, _Core.$$)('.as-form-cmd-tool button', this.$view).reduce(function (ac, btn) {\n    var name = btn.attr('data-cmd');\n    ac[name] = btn;\n    return ac;\n  }, {});\n  this.$cmdButtons['edit_tree'].on('click', this.toggleTreeEditor.bind(this));\n  this.$cmdButtons['export_js'].on('click', this.exportJS.bind(this));\n  this.$cmdButtons['new_section'].on('click', this.addNewSection.bind(this));\n  this.$cmdButtons['new_question'].on('click', this.addNewQuestion.bind(this));\n  this.$cmdButtons['delete'].on('click', this.deleteFocusBlock.bind(this)); // this.$cmdButtons['print'].on('click', this.print.bind(this));\n\n  this.$cmdButtons['download'].on('click', this.downloadAsPdf.bind(this));\n  this.$attachhook = (0, _Core._)('attachhook').addTo(this.$view);\n  this.$attachhook.requestUpdateSize = this.updateSize.bind(this);\n  this.$attachhook.on('attached', function () {\n    self.start();\n\n    _ResizeSystem[\"default\"].add(this);\n\n    this.requestUpdateSize();\n  });\n\n  _ContextMenu[\"default\"].auto();\n\n  if (!this.opt.hasScroller) {\n    this.$view.addClass('ap-without-scroller');\n  }\n\n  if (!this.opt.hasTool) {\n    this.$view.addClass('ap-without-tool');\n  }\n\n  if (!this.opt.hasSection) {\n    this.$view.addClass('ap-without-section');\n  }\n\n  if (this.opt.readOnly) {\n    this.$view.addClass('ap-read-only');\n  }\n};\n\nPoserEditor.prototype.onResume = function () {\n  if (this.$view) {\n    (0, _utils2.autoThemeVariable)(this.$view);\n\n    _ResizeSystem[\"default\"].add(this.$attachhook);\n  }\n};\n\nPoserEditor.prototype.setData = function (data) {\n  this._originalData = data || [];\n  this._sections = data instanceof Array ? data : [data];\n\n  if (!this.opt.hasSection) {\n    this._sections = this._sections.reduce(function (ac, cr) {\n      var questions = cr.questions;\n      if (questions && questions.length > 0) ac[0].questions.push.apply(ac[0].questions, questions);\n      return ac;\n    }, [{\n      questions: [],\n      section: data[0] && data[0].section || {\n        name: \"Câu hỏi\",\n        description: \"\",\n        images: [],\n        ident: 1\n      }\n    }]);\n  }\n\n  this.$data.clearChild();\n\n  this._sections.forEach(function (stn) {\n    var section = this._makeSection({\n      data: stn.section\n    });\n\n    var questions = stn.questions.map(function (qData) {\n      return this._makeQuestion({\n        data: qData\n      });\n    }.bind(this));\n    this.$data.addChild([section].concat(questions));\n  }.bind(this));\n\n  this.updateIdx();\n  this.treeEditor.reload();\n};\n\nPoserEditor.prototype.getData = function () {\n  var _this = this;\n\n  var count = 1;\n  var dict = {\n    \"0\": true\n  };\n\n  var getOnce = function getOnce() {\n    while (dict[count]) {\n      ++count;\n    }\n\n    dict[count] = true;\n    return count;\n  };\n\n  var cleanObject = function cleanObject(o) {\n    for (var key in o) {\n      if (o[key] === null || o[key] === undefined || typeof o[key] === \"number\" && isNaN(o[key])) {\n        delete o[key];\n      }\n    }\n\n    return o;\n  };\n\n  var result = Array.prototype.reduce.call(this.$data.childNodes, function (ac, node) {\n    var nodeData;\n\n    if (node.apBlockType === \"section\") {\n      ac.stn = {\n        questions: []\n      };\n\n      if (_this.opt.hasSection) {\n        ac.stn.section = cleanObject(Object.assign({}, node.data));\n      }\n\n      ac.result.push(ac.stn);\n    } else if (node.apBlockType === 'question') {\n      nodeData = cleanObject(Object.assign({}, node.data));\n\n      if (!(0, _utils.isNaturalNumber)(nodeData.ident) || dict[nodeData.ident] || nodeData.ident === 0) {\n        nodeData.ident = getOnce();\n      } else {\n        dict[nodeData.ident] = true;\n      }\n\n      ac.stn.questions.push(nodeData);\n    }\n\n    return ac;\n  }, {\n    result: [],\n    stn: null\n  }).result;\n  return result;\n};\n\nPoserEditor.prototype._getSectionGroupData = function (sectionGroupElt) {\n  var sectionElt = sectionGroupElt.firstChild;\n  var questionEltArr = Array.prototype.slice.call(sectionGroupElt.childNodes, 1);\n  return {\n    section: sectionElt.data[\"export\"](),\n    questions: questionEltArr.map(function (cNode) {\n      return cNode.data[\"export\"]();\n    })\n  };\n};\n/***\r\n *\r\n * @param {AElement} elt\r\n * @private\r\n */\n\n\nPoserEditor.prototype._findQuestionElt = function (elt) {\n  while (elt && elt !== this.$view) {\n    if (elt.classList.contains('ap-block') && elt.classList.contains('ap-editable-question')) {\n      return elt;\n    }\n\n    elt = elt.parentElement;\n  }\n};\n/***\r\n *\r\n * @param {AElement} elt\r\n * @private\r\n */\n\n\nPoserEditor.prototype._findSectionGroupElt = function (elt) {\n  while (elt && elt !== this.$view) {\n    if (elt.classList.contains('ap-section-group')) {\n      return elt;\n    }\n\n    elt = elt.parentElement;\n  }\n};\n\nPoserEditor.prototype._makeSection = function (props) {\n  var thisE = this;\n  return (0, _Core._)({\n    tag: _APEditableSection[\"default\"].tag,\n    props: props,\n    on: {\n      change: function change(event) {\n        this.bindingTreeNode.name = this.data.name || \"[unset]\";\n        thisE.notifyChange();\n      },\n      click: function click() {\n        thisE.focusBlock(this, false);\n      },\n      action: function action(event) {\n        switch (event.action) {\n          case 'merge_with_above':\n            thisE.deleteBlock(this);\n            break;\n\n          case 'delete':\n            thisE.requestDeleteSection(this);\n            break;\n\n          default:\n            console.log(\"TODO\", event.action);\n        }\n      }\n    }\n  });\n};\n\nPoserEditor.prototype._makeQuestion = function (props) {\n  var thisE = this;\n  return (0, _Core._)({\n    tag: _APEditableQuestion[\"default\"].tag,\n    props: Object.assign({\n      acceptQuestionTypes: this.opt.questionTypes,\n      readOnly: this.opt.readOnly\n    }, props),\n    on: {\n      change: function change(event) {\n        this.bindingTreeNode.name = this.data.content || \"[unset]\";\n\n        if (event.fieldName === 'type') {\n          thisE.treeEditor.reload();\n        }\n\n        thisE.emit('change', {\n          type: 'change',\n          target: thisE\n        }, thisE);\n      },\n      click: function click() {\n        thisE.focusBlock(this, false);\n      },\n      action: function action(event) {\n        switch (event.action) {\n          case 'delete':\n            thisE.requestDeleteQuestion(this);\n            break;\n\n          case 'duplicate':\n            thisE.duplicateQuestion(this);\n            thisE.notifyChange();\n            break;\n\n          default:\n            console.log(\"TODO: action\", event.action);\n        }\n      }\n    }\n  });\n};\n\nPoserEditor.prototype.updateSize = function () {\n  var width = this.$view.getBoundingClientRect().width;\n\n  if (!this._prevWidth || this._prevWidth < 500 !== width < 500) {\n    if (width < 500) {\n      this.$view.addClass('ap-width-s');\n    } else {\n      this.$view.removeClass('ap-width-s');\n    }\n  }\n\n  if (!this._prevWidth || this._prevWidth < 390 !== width < 390) {\n    if (width < 390) {\n      this.$view.addClass('ap-width-xs');\n    } else {\n      this.$view.removeClass('ap-width-xs');\n    }\n  }\n\n  this._prevWidth = width;\n};\n\nPoserEditor.prototype._updateCmdButtons = function () {\n  if (this._currentFocusBlock && this.$data.firstChild !== this._currentFocusBlock && this._currentFocusBlock.parentElement) {\n    this.$cmdButtons[\"delete\"].disabled = false;\n  } else {\n    this.$cmdButtons[\"delete\"].disabled = true;\n  }\n};\n\nPoserEditor.prototype.updateIdx = function () {\n  var qIdx = 1;\n  var sIdx = 1;\n  var elt;\n  var next;\n\n  for (var i = 0; i < this.$data.childNodes.length; ++i) {\n    elt = this.$data.childNodes[i];\n    next = this.$data.childNodes[i + 1];\n\n    if (elt.apBlockType === \"section\") {\n      elt.idx = sIdx++;\n    } else if (elt.apBlockType === \"question\") {\n      elt.idx = qIdx++;\n\n      if (!next || next.apBlockType === \"section\") {\n        elt.addClass('ap-last-question');\n      } else {\n        elt.removeClass('ap-last-question');\n      }\n    }\n  }\n};\n\nPoserEditor.prototype.moveSectionGroupUp = function (sectionGroup) {\n  var parent = sectionGroup.parentElement;\n  var prevElt = parent.findChildBefore();\n  if (!prevElt || prevElt === parent.firstChild) return;\n  sectionGroup.selfRemove();\n  parent.addChildBefore(sectionGroup, prevElt);\n  this.updateIdx();\n  (0, _utils.vScrollIntoView)(sectionGroup.firstChild);\n};\n\nPoserEditor.prototype.requestDeleteSection = function (sectionElt) {\n  var _this2 = this;\n\n  this.openYesNoQuestionDialog('Xóa section', \"Bạn muốn xóa section \" + sectionElt.idx + '. ' + (sectionElt.data.name || '')).then(function (result) {\n    if (result) {\n      _this2.deleteSection(sectionElt);\n\n      _this2.notifyChange();\n    }\n  });\n};\n\nPoserEditor.prototype.requestDeleteQuestion = function (questionElt) {\n  var _this3 = this;\n\n  var previewText = questionElt.data.content || '';\n  if (previewText.length > 30) previewText = previewText.substring(0, 27) + '...';\n  this.openYesNoQuestionDialog('Xóa câu hỏi', \"Bạn muốn xóa câu  hỏi số \" + questionElt.idx + '. ' + previewText).then(function (result) {\n    if (result) {\n      _this3.deleteQuestion(questionElt);\n\n      _this3.notifyChange();\n    }\n  });\n};\n\nPoserEditor.prototype.deleteQuestion = function (questionElt) {\n  this.deleteBlock(questionElt);\n};\n\nPoserEditor.prototype.deleteSection = function (sectionElt) {\n  if (!sectionElt.isDescendantOf(this.$data)) return false;\n  var blocks = [];\n  var curSectionElt, blockElt;\n\n  for (var i = 0; i < this.$data.childNodes.length; ++i) {\n    blockElt = this.$data.childNodes[i];\n    if (blockElt.hasClass('ap-editable-section')) curSectionElt = blockElt;\n\n    if (curSectionElt === sectionElt) {\n      blocks.push(blockElt);\n    }\n  }\n\n  blocks.forEach(function (blk) {\n    return blk.selfRemove();\n  });\n  this.updateIdx();\n  this.treeEditor.reload();\n};\n\nPoserEditor.prototype.duplicateQuestion = function (questionElt) {\n  var _this4 = this;\n\n  var parent = questionElt.parentElement;\n  var data = questionElt.data[\"export\"]();\n\n  var newQuestion = this._makeQuestion({\n    data: data\n  });\n\n  parent.addChildAfter(newQuestion, questionElt);\n  this.updateIdx(parent);\n  this.treeEditor.reload();\n  setTimeout(function () {\n    _this4.focusBlock(newQuestion, true);\n  }, 100);\n};\n\nPoserEditor.prototype.toggleTreeEditor = function () {\n  if (this.$view.containsClass('ap-open-tree-editor')) {\n    this.$view.removeClass('ap-open-tree-editor');\n  } else {\n    this.$view.addClass('ap-open-tree-editor');\n  }\n};\n\nPoserEditor.prototype.exportJS = function () {\n  var jsCode = 'module.exports = ' + JSON.stringify(this.getData(), null, 4).replace(/\"([^\"]+)\":/g, function (all, g1) {\n    return g1 + ':';\n  }) + ';';\n  (0, _FileSaver.saveTextAs)(jsCode, 'question_data.js');\n};\n\nPoserEditor.prototype.focusBlock = function (block, scrollInto) {\n  if (this._currentFocusBlock) {\n    this._currentFocusBlock.removeClass('ap-focus');\n\n    this._currentFocusBlock.bindingTreeNode.removeClass('ap-focus');\n\n    this._currentFocusBlock = null;\n  }\n\n  this._currentFocusBlock = block;\n\n  if (this._currentFocusBlock) {\n    this._currentFocusBlock.addClass('ap-focus');\n\n    this._currentFocusBlock.bindingTreeNode.addClass('ap-focus');\n\n    if (scrollInto) (0, _utils.vScrollIntoView)(this._currentFocusBlock);\n    if (this._currentFocusBlock.bindingTreeNode.getBoundingClientRect().height > 10) (0, _utils.vScrollIntoView)(this._currentFocusBlock.bindingTreeNode);\n  }\n\n  this._updateCmdButtons();\n};\n\nPoserEditor.prototype.deleteBlock = function (blockElt) {\n  if (blockElt === this.$data.firstChild) return false;\n  if (!blockElt.isDescendantOf(this.$data)) return false;\n  if (this._currentFocusBlock === blockElt) this._currentFocusBlock = null;\n  blockElt.selfRemove();\n  this.updateIdx();\n\n  this._updateCmdButtons();\n\n  this.treeEditor.reload();\n};\n\nPoserEditor.prototype.deleteFocusBlock = function () {\n  if (this._currentFocusBlock) this.deleteBlock(this._currentFocusBlock);\n};\n\nPoserEditor.prototype.notifyChange = function () {\n  this.emit('change', {\n    type: 'change',\n    target: this\n  }, this);\n};\n\nPoserEditor.prototype.ev_contextMenu = function (event) {\n  var thisE = this;\n  event.stopPropagation();\n  var target = event.target;\n  var temp = target;\n\n  while (temp) {\n    if (temp.classList && temp.classList.contains(_BoardTable[\"default\"].DRAG_ZONE_CLASS_NAME)) return;\n    temp = temp.parentElement;\n  }\n\n  var questionElt = this._findQuestionElt(target);\n\n  var sectionGroupElt = this._findSectionGroupElt(target);\n\n  var menuItems = [{\n    text: 'Thêm section',\n    cmd: 'delele_section',\n    icon: 'span.mdi.mdi-playlist-plus'\n  }];\n\n  if (sectionGroupElt) {\n    menuItems.push({\n      text: 'Nhân bản section',\n      cmd: 'duplicate_section',\n      icon: 'span.mdi.mdi-content-duplicate'\n    });\n  }\n\n  if (questionElt) {\n    menuItems.push(\"-----------\", {\n      text: \"Thêm câu hỏi\",\n      cmd: 'new_question',\n      icon: 'span.mdi.mdi-comment-plus-outline'\n    }, {\n      text: \"Nhân bản câu hỏi\",\n      cmd: \"duplicate_question\",\n      icon: 'span.mdi.mdi-comment-multiple-outline'\n    });\n  }\n\n  event.showContextMenu({\n    items: menuItems\n  }, function (event) {\n    var item = event.menuItem;\n\n    switch (item.cmd) {\n      case 'duplicate_section':\n        break;\n    }\n  });\n};\n\nPoserEditor.prototype.addNewSection = function (props) {\n  var userAction = props && props.target && props.type;\n  if (userAction) props = {};\n\n  var newSection = this._makeSection(props || {});\n\n  if (this._currentFocusBlock && this._currentFocusBlock.parentElement === this.$data) {\n    this.$data.addChildAfter(newSection, this._currentFocusBlock);\n  } else {\n    this.$data.addChild(newSection);\n  }\n\n  this.treeEditor.reload();\n  this.focusBlock(newSection, true);\n  this.updateIdx();\n  if (userAction) this.notifyChange();\n};\n\nPoserEditor.prototype.addNewQuestion = function (props) {\n  var userAction = props && props.target && props.type;\n  if (userAction) props = {};\n\n  if (this.$data.childNodes.length === 0) {\n    this.addNewSection();\n  }\n\n  var newQuestion = this._makeQuestion(props || {});\n\n  if (this._currentFocusBlock && this._currentFocusBlock.parentElement === this.$data) {\n    this.$data.addChildAfter(newQuestion, this._currentFocusBlock);\n  } else {\n    this.$data.addChild(newQuestion);\n  }\n\n  this.treeEditor.reload();\n  this.focusBlock(newQuestion, true);\n  this.updateIdx();\n  if (userAction) this.notifyChange();\n};\n\nPoserEditor.prototype.openYesNoQuestionDialog = function (title, message) {\n  return new Promise(function (resolve) {\n    if (window.ModalElement && window.ModalElement.question) {\n      window.ModalElement.question({\n        title: title,\n        message: message,\n        onclick: function onclick(sel) {\n          if (sel === 0) {\n            resolve(true);\n          } else {\n            resolve(false);\n          }\n        }\n      });\n    } else {\n      var modal = (0, _Core._)({\n        tag: _Modal[\"default\"].tag,\n        child: {\n          tag: _YesNoQuestionDialog[\"default\"].tag,\n          props: {\n            textYes: 'Có',\n            textNo: 'Không',\n            message: message,\n            dialogTitle: title\n          },\n          on: {\n            action: function action(event) {\n              modal.remove();\n              resolve(event.action.name === 'yes');\n            }\n          }\n        }\n      }).addTo(document.body);\n    }\n  });\n};\n/***\r\n *\r\n * @param {Object=} opt\r\n */\n\n\nPoserEditor.prototype.print = function (opt) {\n  _Dom[\"default\"].printElement(Object.assign({\n    elt: this.getView(),\n    keepBackgroundColor: false\n  }, opt || {}));\n};\n/***\r\n *\r\n * @param {Object=} opt\r\n */\n\n\nPoserEditor.prototype.downloadAsPdf = function (opt) {\n  var _this5 = this;\n\n  opt = opt || {};\n\n  if (window.ModalElement && window.ModalElement.show_loading) {\n    window.ModalElement.show_loading();\n  } else {\n    this._loadingToken = _LoadingCubeModal[\"default\"].show();\n  }\n\n  (0, _printer.exportPoserElementAsPDF)(this.getView(), opt).then(function () {\n    if (window.ModalElement && window.ModalElement.close) {\n      window.ModalElement.close();\n    } else {\n      _LoadingCubeModal[\"default\"].close(_this5._loadingToken);\n    }\n  });\n};\n\nvar _default = PoserEditor;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./fragment/PoserEditor.js?");

/***/ }),

/***/ "./fragment/PoserEvaluation.js":
/*!*************************************!*\
  !*** ./fragment/PoserEvaluation.js ***!
  \*************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Fragment = _interopRequireDefault(__webpack_require__(/*! absol/src/AppPattern/Fragment */ \"./node_modules/absol/src/AppPattern/Fragment.js\"));\n\nvar _EventEmitter = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _Core = __webpack_require__(/*! ../dom/Core */ \"./dom/Core.js\");\n\n__webpack_require__(/*! ../css/poserevaluation.css */ \"./css/poserevaluation.css\");\n\nvar _PVSection = _interopRequireDefault(__webpack_require__(/*! ../dom/viewer/PVSection */ \"./dom/viewer/PVSection.js\"));\n\nvar _utils = __webpack_require__(/*! absol-acomp/js/utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _utils2 = __webpack_require__(/*! ../utils */ \"./utils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @augments Fragment\r\n * @augments EventEmitter\r\n * @param {{readOnly: boolean}=} opt\r\n * @constructor\r\n */\nfunction PoserEvaluation(opt) {\n  this.opt = Object.assign({\n    readOnly: false,\n    hasScroller: true,\n    hasSection: true,\n    autoEvaluate: true\n  }, opt || {});\n\n  _Fragment[\"default\"].call(this);\n\n  _EventEmitter[\"default\"].call(this);\n}\n\n_OOP[\"default\"].mixClass(PoserEvaluation, _Fragment[\"default\"], _EventEmitter[\"default\"]);\n\nPoserEvaluation.prototype.createView = function () {\n  var _this = this;\n\n  this.$view = (0, _Core._)({\n    \"class\": 'ap-evaluation'\n  });\n  this.$view.afterAttached().then(function () {\n    return _this.start();\n  });\n\n  if (this.opt.readOnly) {\n    this.$view.addClass('ap-read-only');\n  }\n\n  if (!this.opt.hasScroller) {\n    this.$view.addClass('ap-without-scroller');\n  }\n\n  if (!this.opt.hasSection) {\n    this.$view.addClass('ap-without-section');\n  }\n};\n\nPoserEvaluation.prototype.onResume = function () {\n  if (this.$view) (0, _utils2.autoThemeVariable)(this.$view);\n};\n/***\r\n *\r\n * @param {{sections:[], result:[], order?:[]}}data\r\n */\n\n\nPoserEvaluation.prototype.setData = function (data) {\n  var _this2 = this;\n\n  var self = this;\n  var view = this.getView();\n  this._data = data;\n  view.clearChild();\n  var count = 0;\n  var id2order = null;\n  if (data.order) id2order = data.order.reduce(function (ac, cr, i) {\n    ac[cr] = i;\n    return ac;\n  }, {});\n\n  if (data.sections) {\n    data.sections.forEach(function (st, stIdx) {\n      var stn = (0, _Core._)({\n        tag: _PVSection[\"default\"].tag,\n        props: {\n          data: st.section,\n          idx: stIdx + 1\n        }\n      });\n      view.addChild(stn);\n      var sortedQuestion = st.questions.slice();\n      if (id2order) sortedQuestion.sort(function (a, b) {\n        return id2order[a.ident] - id2order[b.ident];\n      });\n      sortedQuestion.forEach(function (oqt, index, array) {\n        var qt = Object.assign({}, oqt);\n        var designedScore = qt.score;\n        delete qt.score;\n        var qtElt = (0, _Core._)({\n          tag: 'PRQuestion'.toLowerCase(),\n          props: {\n            idx: count + 1,\n            data: qt,\n            designedScore: designedScore || 1,\n            // evaluatedScore: evaluatedScore,\n            note: qt.note,\n            readOnly: _this2.opt.readOnly\n          },\n          on: {\n            evaluationchange: function evaluationchange(event) {\n              self.emit('evaluationchange', {\n                type: 'evaluationchange',\n                originalEvent: event.originalEvent || event,\n                target: self,\n                question: qt,\n                questionElt: qtElt,\n                property: event.property\n              });\n            }\n          }\n        });\n        if (index + 1 === array.length) qtElt.addClass('ap-last-question');\n        var questionIdent = qt.ident;\n\n        if (data.result && data.result[questionIdent]) {\n          qtElt.result = data.result[questionIdent].value;\n          qtElt.resultIdent = data.result[questionIdent].ident;\n        }\n\n        var evaluatedScore = _this2._evaluateScore(oqt, data.result[questionIdent]);\n\n        if (_this2.opt.autoEvaluate) {\n          qtElt.evaluatedScore = evaluatedScore;\n          qtElt.autoEvaluatedScore = evaluatedScore;\n          qtElt.attr('data-evaluated-score', evaluatedScore + '');\n        }\n\n        view.addChild(qtElt);\n        count++;\n      });\n    });\n  }\n};\n\nPoserEvaluation.prototype.evaluators = {\n  multiple_choice: function multiple_choice(question, result) {\n    if (result && result.value && result.value.idx === question.correct_answer) {\n      return question.score;\n    } else {\n      return 0;\n    }\n  },\n  checkboxes: function checkboxes(question, result) {\n    var spw;\n    var rightAns = 0,\n        wrongAns = 0;\n\n    if (result && result.value && question.correct_answer && question.correct_answer.length) {\n      spw = question.score / question.correct_answer.length;\n      result.value.forEach(function (ans) {\n        if (question.correct_answer.indexOf(ans.idx) >= 0) {\n          rightAns++;\n        } else {\n          wrongAns++;\n        }\n      });\n      if (rightAns <= wrongAns) return 0;\n      return spw * (rightAns - wrongAns);\n    } else {\n      return 0;\n    }\n  }\n};\n\nPoserEvaluation.prototype._evaluateScore = function (question, result) {\n  if (!result) return 0;\n  var evaluator = this.evaluators[question.type];\n  if (!evaluator) return 0;\n  return evaluator(question, result);\n};\n\nPoserEvaluation.prototype.getData = function () {\n  return this._data;\n};\n\nPoserEvaluation.prototype.getEvaluation = function () {\n  var count = 1;\n  var dict = {\n    \"0\": true\n  };\n\n  var getOnce = function getOnce() {\n    while (dict[count]) {\n      ++count;\n    }\n\n    dict[count] = true;\n    return count;\n  };\n\n  this.getView();\n  return Array.prototype.filter.call(this.$view.childNodes, function (elt) {\n    return elt.containsClass && elt.containsClass('ap-question');\n  }).reduce(function (ac, elt) {\n    var questionIdent = elt.data.ident;\n    var evaluatedScore = elt.evaluatedScore;\n    if (!(0, _utils.isRealNumber)(evaluatedScore)) evaluatedScore = elt.designedScore;\n    var ident = elt.evaluationIdent;\n\n    if (!(0, _utils.isNaturalNumber)(ident) || ident === 0 || dict[ident]) {\n      ident = getOnce();\n    } else {\n      dict[ident] = true;\n    }\n\n    ac[questionIdent] = {\n      ident: ident,\n      score: evaluatedScore,\n      feedback: elt.feedback\n    };\n    return ac;\n  }, {});\n};\n\nPoserEvaluation.prototype.setEvaluation = function (evaluationData) {\n  var _this3 = this;\n\n  evaluationData = evaluationData || {};\n  this.getView();\n  return Array.prototype.filter.call(this.$view.childNodes, function (elt) {\n    return elt.containsClass && elt.containsClass('ap-question');\n  }).forEach(function (elt) {\n    var questionIdent = elt.data.ident;\n    var evaluation = evaluationData[questionIdent] || {};\n    elt.evaluationIdent = evaluation.ident || 0;\n\n    if ('score' in evaluation && !isNaN(evaluation.score)) {\n      elt.evaluatedScore = evaluation.score;\n    } else if (!_this3.opt.autoEvaluate) {\n      elt.evaluatedScore = evaluation.score || 0;\n    }\n\n    elt.feedback = evaluation.feedback || '';\n  }, {});\n};\n\nvar _default = PoserEvaluation;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./fragment/PoserEvaluation.js?");

/***/ }),

/***/ "./fragment/PoserQuestionTreeEditor.js":
/*!*********************************************!*\
  !*** ./fragment/PoserQuestionTreeEditor.js ***!
  \*********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Fragment = _interopRequireDefault(__webpack_require__(/*! absol/src/AppPattern/Fragment */ \"./node_modules/absol/src/AppPattern/Fragment.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _Core = __webpack_require__(/*! ../dom/Core */ \"./dom/Core.js\");\n\n__webpack_require__(/*! absol-form/css/cmdtool.css */ \"./node_modules/absol-form/css/cmdtool.css\");\n\nvar _ExpTree = _interopRequireWildcard(__webpack_require__(/*! absol-acomp/js/ExpTree */ \"./node_modules/absol-acomp/js/ExpTree.js\"));\n\n__webpack_require__(/*! ../css/questiontreeeditor.css */ \"./css/questiontreeeditor.css\");\n\nvar _QuestionTypeItems = __webpack_require__(/*! ../contants/QuestionTypeItems */ \"./contants/QuestionTypeItems.js\");\n\nvar _Hanger = _interopRequireDefault(__webpack_require__(/*! absol-acomp/js/Hanger */ \"./node_modules/absol-acomp/js/Hanger.js\"));\n\nvar _Vec = _interopRequireDefault(__webpack_require__(/*! absol/src/Math/Vec2 */ \"./node_modules/absol/src/Math/Vec2.js\"));\n\nvar _Rectangle = _interopRequireDefault(__webpack_require__(/*! absol/src/Math/Rectangle */ \"./node_modules/absol/src/Math/Rectangle.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends Fragment\r\n * @param poserEditor\r\n * @constructor\r\n */\nfunction PoserQuestionTreeEditor(poserEditor) {\n  _Fragment[\"default\"].call(this);\n\n  this.poserEditor = poserEditor;\n\n  for (var key in this) {\n    if (key.startsWith('ev_')) {\n      this[key] = this[key].bind(this);\n    }\n  }\n\n  this._dragData = {\n    tree: null\n  };\n}\n\n_OOP[\"default\"].mixClass(PoserQuestionTreeEditor, _Fragment[\"default\"]);\n\nPoserQuestionTreeEditor.prototype.createView = function () {\n  this.$view = (0, _Core._)({\n    \"class\": 'ap-question-tree-editor',\n    child: [{\n      \"class\": 'ap-question-tree-exp-scroller'\n    }]\n  });\n  this.$scroller = (0, _Core.$)('.ap-question-tree-exp-scroller', this.$view);\n\n  if (!this.poserEditor.opt.hasSection) {\n    this.$view.addClass('ap-without-section');\n  }\n};\n\nPoserQuestionTreeEditor.prototype.reload = function () {\n  var thisE = this;\n  this.$scroller.clearChild();\n  this.$root = (0, _Core._)({\n    tag: _ExpTree.ExpGroup.tag\n  });\n  var readOnly = this.poserEditor.opt.readOnly;\n  (0, _Core._)({\n    tag: readOnly ? 'div' : _Hanger[\"default\"].tag,\n    elt: this.$root,\n    on: {\n      predrag: this.ev_predrag,\n      dragstart: this.ev_dragstart,\n      dragend: this.ev_dragend,\n      drag: this.ev_drag\n    },\n    props: {\n      hangOn: 5\n    }\n  });\n  this.$scroller.addChild(this.$root);\n  Array.prototype.reduce.call(this.poserEditor.$data.childNodes, function (ac, elt) {\n    if (elt.apBlockType === 'section') {\n      ac.section = (0, _Core._)({\n        tag: _ExpTree[\"default\"].tag,\n        props: {\n          name: elt.data.name,\n          icon: 'span.mdi.mdi-format-section',\n          bindingBlock: elt,\n          bindingBlockType: 'section'\n        }\n      });\n      elt.bindingTreeNode = ac.section;\n      ac.root.addChild(ac.section);\n      ac.section.on('press', thisE.ev_press.bind(thisE, ac.section));\n    } else if (elt.apBlockType === 'question') {\n      var qt = (0, _Core._)({\n        tag: _ExpTree[\"default\"].tag,\n        props: {\n          name: elt.data.content,\n          icon: _QuestionTypeItems.QuestionType2Icon[elt.data.type],\n          bindingBlock: elt,\n          bindingBlockType: 'question'\n        }\n      });\n      if (elt.hasClass('ap-focus')) qt.addClass('ap-focus');\n      elt.bindingTreeNode = qt;\n      ac.section.addChild(qt);\n      qt.on('press', thisE.ev_press.bind(thisE, qt));\n    }\n\n    return ac;\n  }, {\n    root: this.$root,\n    section: null\n  });\n};\n\nPoserQuestionTreeEditor.prototype._findTree = function (elt) {\n  while (elt && elt !== this.$root) {\n    if (elt.classList && elt.classList.contains('absol-exp-tree')) {\n      return elt;\n    }\n\n    elt = elt.parentElement;\n  }\n\n  return null;\n};\n\nPoserQuestionTreeEditor.prototype.ev_dragstart = function (event) {\n  this.$view.addClass('ap-dragging');\n  var dData = this._dragData;\n  dData.initTreeBound = dData.tree.getBoundingClientRect();\n  var crRootBound = this.$root.getBoundingClientRect();\n  dData.initRootBound = crRootBound;\n  dData.mouseOffset = event.currentPoint.sub(new _Vec[\"default\"](dData.initTreeBound.left, dData.initTreeBound.top));\n  dData.clonedTree = (0, _Core.$)(dData.tree.cloneNode(true)).addClass('ap-question-tree-editor-cloned-node').addStyle('width', dData.initTreeBound.width + 'px');\n  dData.nextTree = dData.tree.parentElement.findChildAfter(dData.tree);\n  dData.tree.addClass('ap-moving');\n  dData.initY = dData.initTreeBound.top - dData.initRootBound.top;\n\n  if (dData.type === 'section') {\n    dData.positions = dData.positions || Array.prototype.map.call(this.$root.childNodes, function (node) {\n      return {\n        bfr: node,\n        y: node.getBoundingClientRect().top - crRootBound.top\n      };\n    }).concat({\n      bfr: null,\n      //last\n      y: crRootBound.height\n    });\n  } else {\n    dData.positions = dData.positions || Array.prototype.reduce.call(this.$root.childNodes, function (ac, sectionTree) {\n      var questionNodes = sectionTree.getChildren();\n      var sPositions = questionNodes.map(function (qNode) {\n        return {\n          bfr: qNode,\n          parent: sectionTree,\n          y: qNode.getBoundingClientRect().top - crRootBound.top\n        };\n      });\n      sPositions.push({\n        bfr: null,\n        parent: sectionTree,\n        y: sectionTree.getBoundingClientRect().bottom - crRootBound.top\n      });\n      ac = ac.concat(sPositions);\n      return ac;\n    }, []);\n  }\n\n  var eBoundRect = _Rectangle[\"default\"].fromClientRect(this.$view.getBoundingClientRect());\n\n  dData.clonedTree.addStyle('top', event.currentPoint.sub(eBoundRect.A()).sub(dData.mouseOffset).y + 'px');\n  this.$view.appendChild(dData.clonedTree);\n};\n\nPoserQuestionTreeEditor.prototype.ev_drag = function (event) {\n  event.preventDefault();\n  var dData = this._dragData;\n  var crRootBound = this.$root.getBoundingClientRect();\n  var dy = crRootBound.top - dData.initRootBound.top + event.currentPoint.sub(event.startingPoint).y;\n  var y = dData.initY + dy;\n\n  var eBoundRect = _Rectangle[\"default\"].fromClientRect(this.$view.getBoundingClientRect());\n\n  dData.clonedTree.addStyle('top', event.currentPoint.sub(eBoundRect.A()).sub(dData.mouseOffset).y + 'px');\n  dData.nearestPosition = dData.positions.reduce(function (ac, cr) {\n    var d = Math.abs(y + 15 - cr.y);\n\n    if (d < ac.minDist) {\n      ac.nearest = cr;\n      ac.minDist = d;\n    }\n\n    return ac;\n  }, {\n    nearest: null,\n    minDist: Infinity\n  }).nearest;\n  this.$view.addStyle('--new-pos-y', dData.nearestPosition.y + 'px');\n\n  if (dData.nearestPosition.bfr === dData.tree || dData.nearestPosition.bfr === dData.nextTree) {\n    this.$view.removeClass('ap-changed');\n    dData.changed = false;\n  } else {\n    this.$view.addClass('ap-changed');\n    dData.changed = true;\n  }\n};\n\nPoserQuestionTreeEditor.prototype.ev_dragend = function () {\n  clearInterval(this._scrollAutoInv);\n  var dData = this._dragData;\n  dData.clonedTree.remove();\n  dData.tree.removeClass('ap-moving');\n  var blockCtn, bf, af;\n\n  if (dData.changed) {\n    blockCtn = dData.tree.bindingBlock.parentElement;\n    dData.tree.selfRemove();\n\n    if (dData.type === 'section') {\n      var sectionElementList = Array.prototype.reduce.call(blockCtn.childNodes, function (ac, cr) {\n        if (ac.end) return ac;\n\n        if (cr === dData.tree.bindingBlock) {\n          ac.start = true;\n          ac.result.push(cr);\n        } else if (ac.start) {\n          if (cr.apBlockType === 'section') {\n            ac.end = true;\n          } else {\n            ac.result.push(cr);\n          }\n        }\n\n        return ac;\n      }, {\n        start: false,\n        end: false,\n        result: []\n      }).result;\n      sectionElementList.forEach(function (elt) {\n        elt.selfRemove();\n      });\n\n      if (dData.nearestPosition.bfr) {\n        this.$root.addChildBefore(dData.tree, dData.nearestPosition.bfr);\n        bf = dData.nearestPosition.bfr.bindingBlock;\n        sectionElementList.forEach(function (elt) {\n          blockCtn.addChildBefore(elt, bf);\n        });\n\n        this._focusDelay(sectionElementList[0]);\n      } else {\n        this.$root.addChild(dData.tree);\n        sectionElementList.forEach(function (elt) {\n          blockCtn.addChild(elt);\n        });\n\n        this._focusDelay(sectionElementList[0]);\n      }\n    } else {\n      dData.tree.bindingBlock.selfRemove();\n\n      if (dData.nearestPosition.bfr) {\n        dData.nearestPosition.parent.addChildBefore(dData.tree, dData.nearestPosition.bfr);\n        blockCtn.addChildBefore(dData.tree.bindingBlock, dData.nearestPosition.bfr.bindingBlock);\n      } else {\n        dData.nearestPosition.parent.addChild(dData.tree);\n        bf = dData.nearestPosition.parent.parentElement.findChildAfter(dData.nearestPosition.parent);\n\n        if (bf) {\n          blockCtn.addChildBefore(dData.tree.bindingBlock, bf.bindingBlock);\n        } else {\n          blockCtn.addChild(dData.tree.bindingBlock);\n        }\n      }\n\n      this._focusDelay(dData.tree.bindingBlock);\n    }\n\n    this.poserEditor.updateIdx();\n    this.poserEditor.notifyChange();\n  }\n\n  this._dragData = {};\n  this.$view.removeClass('ap-dragging');\n  this.$view.removeClass('ap-changed');\n};\n\nPoserQuestionTreeEditor.prototype.ev_predrag = function (event) {\n  var tree = this._findTree(event.target);\n\n  if (!tree) event.cancel(); // event.cancel();\n  // Snackbar.show(\"Chức năng kéo thả hiện đang được xử lý.\");\n  // return;\n\n  this._dragData.tree = tree;\n  this._dragData.type = tree.bindingBlockType;\n  event.preventDefault();\n};\n\nPoserQuestionTreeEditor.prototype.ev_press = function (tree, event) {\n  this.poserEditor.focusBlock(tree.bindingBlock, true);\n};\n\nPoserQuestionTreeEditor.prototype._focusDelay = function (elt) {\n  setTimeout(function () {\n    this.poserEditor.focusBlock(elt, true);\n  }.bind(this), 100);\n};\n\nvar _default = PoserQuestionTreeEditor;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./fragment/PoserQuestionTreeEditor.js?");

/***/ }),

/***/ "./fragment/PoserViewer.js":
/*!*********************************!*\
  !*** ./fragment/PoserViewer.js ***!
  \*********************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Fragment = _interopRequireDefault(__webpack_require__(/*! absol/src/AppPattern/Fragment */ \"./node_modules/absol/src/AppPattern/Fragment.js\"));\n\nvar _Core = __webpack_require__(/*! ../dom/Core */ \"./dom/Core.js\");\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\n__webpack_require__(/*! ../css/posereditor.css */ \"./css/posereditor.css\");\n\nvar _APEditableSection = _interopRequireDefault(__webpack_require__(/*! ../dom/editor/APEditableSection */ \"./dom/editor/APEditableSection.js\"));\n\nvar _APEditableQuestion = _interopRequireDefault(__webpack_require__(/*! ../dom/editor/question/APEditableQuestion */ \"./dom/editor/question/APEditableQuestion.js\"));\n\nvar _PVSection = _interopRequireDefault(__webpack_require__(/*! ../dom/viewer/PVSection */ \"./dom/viewer/PVSection.js\"));\n\nvar _PVQuestion = _interopRequireDefault(__webpack_require__(/*! ../dom/viewer/question/PVQuestion */ \"./dom/viewer/question/PVQuestion.js\"));\n\nvar _ContextMenu = _interopRequireDefault(__webpack_require__(/*! absol-acomp/js/ContextMenu */ \"./node_modules/absol-acomp/js/ContextMenu.js\"));\n\nvar _ResizeSystem = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/ResizeSystem */ \"./node_modules/absol/src/HTML5/ResizeSystem.js\"));\n\nvar _PoserQuestionTreeEditor = _interopRequireDefault(__webpack_require__(/*! ./PoserQuestionTreeEditor */ \"./fragment/PoserQuestionTreeEditor.js\"));\n\n__webpack_require__(/*! ../css/poserviewer.css */ \"./css/poserviewer.css\");\n\nvar _EventEmitter = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nvar _utils = __webpack_require__(/*! absol-acomp/js/utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _utils2 = __webpack_require__(/*! ../utils */ \"./utils.js\");\n\nvar _Array = __webpack_require__(/*! absol/src/DataStructure/Array */ \"./node_modules/absol/src/DataStructure/Array.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/***\r\n * @extends Fragment\r\n * @param {*=} opt\r\n * @constructor\r\n */\nfunction PoserViewer(opt) {\n  this.opt = Object.assign({\n    hasScroller: true,\n    hasSection: true,\n    shuffleQuestion: false\n  }, opt);\n\n  _Fragment[\"default\"].call(this);\n\n  _EventEmitter[\"default\"].call(this);\n}\n\n_OOP[\"default\"].mixClass(PoserViewer, _Fragment[\"default\"], _EventEmitter[\"default\"]);\n\nPoserViewer.prototype.createView = function () {\n  this.$view = (0, _Core._)({\n    \"class\": 'ap-poser-viewer',\n    child: [{\n      \"class\": 'ap-poser-viewer-header'\n    }, {\n      \"class\": 'ap-poser-viewer-body'\n    }, {\n      \"class\": 'ap-poser-viewer-footer'\n    }],\n    on: {\n      contextmenu: this.ev_contextMenu.bind(this)\n    }\n  });\n  this.$view.poserViewer = this;\n  this.$body = (0, _Core.$)('.ap-poser-viewer-body', this.$view);\n  this.$attachhook = (0, _Core._)('attachhook').addTo(this.$view);\n  this.$attachhook.requestUpdateSize = this.updateSize.bind(this);\n  var self = this;\n  this.$attachhook.on('attached', function () {\n    _ResizeSystem[\"default\"].add(this);\n\n    this.requestUpdateSize();\n    self.start();\n  });\n\n  if (!this.opt.hasScroller) {\n    this.$view.addClass('ap-without-scroller');\n  }\n\n  if (!this.opt.hasSection) {\n    this.$view.addClass('ap-without-section');\n  }\n\n  if (this.opt.readOnly) {\n    this.$view.addClass('ap-read-only');\n  }\n};\n/***\r\n *\r\n * @param {Array<APSectionData>} data\r\n * @param {Array<number>=} order\r\n */\n\n\nPoserViewer.prototype.setData = function (data, order) {\n  var _this = this;\n\n  this._originalData = this.normalizeData(data);\n  this._sections = this._originalData;\n  this._orders = [];\n\n  if (order) {\n    this._orders = order.slice();\n  } else {\n    this._sections.forEach(function (stn) {\n      var idArr = stn.questions.map(function (qt) {\n        return qt.ident;\n      });\n\n      if (_this.opt.shuffleQuestion) {\n        (0, _Array.arrayShuffle)(idArr);\n      }\n\n      _this._orders.push.apply(_this._orders, idArr);\n    });\n  }\n\n  this._id2order = this._orders.reduce(function (ac, cr, i) {\n    ac[cr] = i;\n    return ac;\n  }, {});\n  this.$body.clearChild();\n  var qtCount = 0;\n\n  this._sections.forEach(function (stn, i) {\n    var gElt = this._makeSectionGroup(stn, i + 1, qtCount + 1);\n\n    qtCount += stn.questions.length;\n    this.$body.addChild(gElt);\n  }.bind(this));\n\n  setTimeout(function () {\n    console.log(_this.getOrder());\n  }, 1000);\n};\n\nPoserViewer.prototype.normalizeData = function (data) {\n  var dict = {};\n  var count = 1;\n  var needIdent = [];\n  data = data || [];\n  data = data instanceof Array ? data : [data];\n  data = data.map(function (oGroup) {\n    var group = Object.assign({}, oGroup);\n    group.section = Object.assign({}, oGroup.section);\n\n    if (!group.section.ident || !(group.section.ident > 0)) {\n      needIdent.push(group.section);\n    } else {\n      dict[group.section.ident] = true;\n    }\n\n    group.questions = (oGroup.questions || []).map(function (oQuestion) {\n      var question = Object.assign({}, oQuestion);\n      delete question.correct_answer;\n\n      if (!question.ident || !(question.ident > 0)) {\n        needIdent.push(question);\n      } else {\n        dict[question.ident] = true;\n      }\n\n      if (question.answer && question.answer instanceof Array) {\n        question.answer = oQuestion.answer.map(function (ans) {\n          if (_typeof(ans) === 'object') {\n            ans = Object.assign({}, ans);\n\n            if (!ans.ident || !(ans.ident > 0)) {\n              needIdent.push(ans);\n            } else {\n              dict[ans.ident] = true;\n            }\n\n            return ans;\n          } else return ans;\n        });\n      }\n\n      return question;\n    });\n    return group;\n  });\n  needIdent.forEach(function (it) {\n    while (dict[count]) {\n      count++;\n    }\n\n    it.ident = count;\n    count++;\n  });\n  return data;\n};\n\nPoserViewer.prototype.getData = function () {\n  return this._originalData;\n};\n\nPoserViewer.prototype.getOrder = function () {\n  if (!this._originalData) return null;\n\n  var originOrders = this._originalData.reduce(function (ac, cr) {\n    return ac.concat(cr.questions.map(function (qt) {\n      return qt.ident + '';\n    }));\n  }, []);\n\n  var cOrder = this._orders.map(function (x) {\n    return x + '';\n  });\n\n  if (!this.opt.shuffleQuestion && (0, _Array.arrayCompare)(originOrders, cOrder, true)) {\n    return null;\n  } else return this._orders.slice();\n};\n\nPoserViewer.prototype._makeSectionGroup = function (stnData, stnIdx, qtIdx0) {\n  var _this2 = this;\n\n  var self = this;\n  var stn = {\n    tag: _PVSection[\"default\"].tag,\n    props: {\n      data: stnData.section,\n      idx: stnIdx\n    }\n  };\n  var sortedQuestions = stnData.questions.slice();\n  sortedQuestions.sort(function (a, b) {\n    return _this2._id2order[a.ident] - _this2._id2order[b.ident];\n  });\n  var questions = sortedQuestions.map(function (qt, i) {\n    return {\n      tag: _PVQuestion[\"default\"].tag,\n      attr: {\n        'data-order': _this2._id2order[qt.ident]\n      },\n      props: {\n        data: qt,\n        idx: qtIdx0 + i,\n        readOnly: !!_this2.opt.readOnly\n      },\n      on: {\n        resultchange: function resultchange(event) {\n          self.ev_questionResultChange(this, event);\n        }\n      }\n    };\n  });\n  return (0, _Core._)({\n    \"class\": 'ap-section-group',\n    child: [stn].concat(questions)\n  });\n};\n\nPoserViewer.prototype.getResult = function () {\n  var count = 1;\n  var dict = {\n    \"0\": true\n  };\n\n  var getOnce = function getOnce() {\n    while (dict[count]) {\n      ++count;\n    }\n\n    dict[count] = true;\n    return count;\n  };\n\n  var questions = Array.prototype.reduce.call(this.$body.childNodes, function (ac, cr) {\n    ac.push.apply(ac, Array.prototype.slice.call(cr.childNodes, 1));\n    return ac;\n  }, []);\n  return questions.reduce(function (ac, qt) {\n    var ident = qt.resultIdent;\n\n    if (ident === 0 || !(0, _utils.isNaturalNumber)(ident) || dict[ident]) {\n      ident = getOnce();\n    } else {\n      dict[ident] = true;\n    }\n\n    ac[qt.data.ident] = {\n      ident: ident,\n      value: qt.result\n    };\n    return ac;\n  }, {});\n};\n\nPoserViewer.prototype.setResult = function (resultDict) {\n  resultDict = resultDict || {};\n  var questions = Array.prototype.reduce.call(this.$body.childNodes, function (ac, cr) {\n    ac.push.apply(ac, Array.prototype.slice.call(cr.childNodes, 1));\n    return ac;\n  }, []);\n  questions.forEach(function (qt) {\n    var questionIdent = qt.data.ident;\n    var resultProp = resultDict[questionIdent];\n\n    if (resultProp) {\n      qt.result = resultProp.value;\n      qt.resultIdent = resultProp.ident;\n    }\n  });\n};\n\nPoserViewer.prototype.ev_contextMenu = function (event) {\n  console.log(event.target);\n};\n\nPoserViewer.prototype.updateSize = function () {\n  var width = this.$view.getBoundingClientRect().width;\n\n  if (!this._prevWidth || this._prevWidth < 500 !== width < 500) {\n    if (width < 500) {\n      this.$view.addClass('ap-width-s');\n    } else {\n      this.$view.removeClass('ap-width-s');\n    }\n  }\n\n  if (!this._prevWidth || this._prevWidth < 390 !== width < 390) {\n    if (width < 390) {\n      this.$view.addClass('ap-width-xs');\n    } else {\n      this.$view.removeClass('ap-width-xs');\n    }\n  }\n\n  this._prevWidth = width;\n};\n\nPoserViewer.prototype.ev_questionResultChange = function (questionElt, event) {\n  this.emit('resultchange', {\n    target: this,\n    type: 'resultchange',\n    originalEvent: event.originalEvent || event,\n    questionResult: questionElt.result,\n    questionData: questionElt.data[\"export\"](),\n    questionIdent: questionElt.data.ident\n  }, this);\n};\n\nPoserViewer.prototype.onResume = function () {\n  if (this.$view) (0, _utils2.autoThemeVariable)(this.$view);\n};\n\nvar _default = PoserViewer;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./fragment/PoserViewer.js?");

/***/ }),

/***/ "./index.js":
/*!******************!*\
  !*** ./index.js ***!
  \******************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _install = _interopRequireDefault(__webpack_require__(/*! ./dom/install */ \"./dom/install.js\"));\n\nvar _PoserEditor = _interopRequireDefault(__webpack_require__(/*! ./fragment/PoserEditor */ \"./fragment/PoserEditor.js\"));\n\nvar _PoserViewer = _interopRequireDefault(__webpack_require__(/*! ./fragment/PoserViewer */ \"./fragment/PoserViewer.js\"));\n\nvar _APEditableQuestion = _interopRequireDefault(__webpack_require__(/*! ./dom/editor/question/APEditableQuestion */ \"./dom/editor/question/APEditableQuestion.js\"));\n\nvar _PoserEvaluation = _interopRequireDefault(__webpack_require__(/*! ./fragment/PoserEvaluation */ \"./fragment/PoserEvaluation.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = {\n  install: _install[\"default\"],\n  PoserEditor: _PoserEditor[\"default\"],\n  PoserViewer: _PoserViewer[\"default\"],\n  PoserEvaluation: _PoserEvaluation[\"default\"],\n  APEditableQuestion: _APEditableQuestion[\"default\"]\n};\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./index.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/AComp.js":
/*!*******************************************!*\
  !*** ./node_modules/absol-acomp/AComp.js ***!
  \*******************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ./ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\n__webpack_require__(/*! ./js/MultiLanguageCSS */ \"./node_modules/absol-acomp/js/MultiLanguageCSS.js\");\n\nvar _DebugTask = _interopRequireDefault(__webpack_require__(/*! ./js/DebugTask */ \"./node_modules/absol-acomp/js/DebugTask.js\"));\n\n__webpack_require__(/*! ./css/debugtask.css */ \"./node_modules/absol-acomp/css/debugtask.css\");\n\n__webpack_require__(/*! ./css/common.css */ \"./node_modules/absol-acomp/css/common.css\");\n\nvar _Draggable = _interopRequireDefault(__webpack_require__(/*! ./js/Draggable */ \"./node_modules/absol-acomp/js/Draggable.js\"));\n\nvar _EmojiChars = _interopRequireDefault(__webpack_require__(/*! ./js/EmojiChars */ \"./node_modules/absol-acomp/js/EmojiChars.js\"));\n\nvar _EmojiAnims = _interopRequireDefault(__webpack_require__(/*! ./js/EmojiAnims */ \"./node_modules/absol-acomp/js/EmojiAnims.js\"));\n\nvar _install = _interopRequireDefault(__webpack_require__(/*! ./js/dom/install */ \"./node_modules/absol-acomp/js/dom/install.js\"));\n\nvar _BlurTrigger = _interopRequireDefault(__webpack_require__(/*! ./js/tool/BlurTrigger */ \"./node_modules/absol-acomp/js/tool/BlurTrigger.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar AComp = {\n  core: _ACore[\"default\"],\n  $: _ACore[\"default\"].$,\n  _: _ACore[\"default\"]._,\n  creator: _ACore[\"default\"].creator,\n  buildDom: _ACore[\"default\"].buildDom,\n  runDebugTask: _DebugTask[\"default\"].start.bind(_DebugTask[\"default\"]),\n  Draggable: _Draggable[\"default\"],\n  EmojiChars: _EmojiChars[\"default\"],\n  EmojiAnims: _EmojiAnims[\"default\"],\n  install: _install[\"default\"],\n  BlurTrigger: _BlurTrigger[\"default\"]\n};\nwindow.runDebugTask = _DebugTask[\"default\"].start.bind(_DebugTask[\"default\"]);\nvar _default = AComp;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/AComp.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/ACore.js":
/*!*******************************************!*\
  !*** ./node_modules/absol-acomp/ACore.js ***!
  \*******************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = exports._ = exports.$$ = exports.$ = void 0;\n\n__webpack_require__(/*! ./css/default.css */ \"./node_modules/absol-acomp/css/default.css\");\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar ACore = new _Dom[\"default\"]({\n  creator: Object.assign({}, _Dom[\"default\"].ShareInstance.creator)\n});\nvar _ = ACore._;\nexports._ = _;\nvar $ = ACore.$;\nexports.$ = $;\nvar $$ = ACore.$$;\nexports.$$ = $$;\nvar _default = ACore;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/ACore.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/dev.js":
/*!*****************************************!*\
  !*** ./node_modules/absol-acomp/dev.js ***!
  \*****************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n__webpack_require__(/*! absol/src/polyfill */ \"./node_modules/absol/src/polyfill.js\");\n\n__webpack_require__(/*! absol/src/absol */ \"./node_modules/absol/src/absol.js\");\n\nvar _MaterialDesignIconsAdapter = __webpack_require__(/*! ./js/adapter/MaterialDesignIconsAdapter */ \"./node_modules/absol-acomp/js/adapter/MaterialDesignIconsAdapter.js\");\n\nvar _AComp = _interopRequireDefault(__webpack_require__(/*! ./AComp */ \"./node_modules/absol-acomp/AComp.js\"));\n\nvar string = _interopRequireWildcard(__webpack_require__(/*! absol/src/String/stringMatching */ \"./node_modules/absol/src/String/stringMatching.js\"));\n\n__webpack_require__(/*! ./css/keeview.css */ \"./node_modules/absol-acomp/css/keeview.css\");\n\nvar _QuickMenu = _interopRequireDefault(__webpack_require__(/*! ./js/QuickMenu */ \"./node_modules/absol-acomp/js/QuickMenu.js\"));\n\nvar _ChromeCalendar = _interopRequireDefault(__webpack_require__(/*! ./js/ChromeCalendar */ \"./node_modules/absol-acomp/js/ChromeCalendar.js\"));\n\nvar _Radio = _interopRequireDefault(__webpack_require__(/*! ./js/Radio */ \"./node_modules/absol-acomp/js/Radio.js\"));\n\nvar _EmojiChars = _interopRequireDefault(__webpack_require__(/*! ./js/EmojiChars */ \"./node_modules/absol-acomp/js/EmojiChars.js\"));\n\nvar _EmojiAnims = _interopRequireDefault(__webpack_require__(/*! ./js/EmojiAnims */ \"./node_modules/absol-acomp/js/EmojiAnims.js\"));\n\nvar _MessageInput = _interopRequireWildcard(__webpack_require__(/*! ./js/messageinput/MessageInput */ \"./node_modules/absol-acomp/js/messageinput/MessageInput.js\"));\n\nvar _EmojiPicker = _interopRequireDefault(__webpack_require__(/*! ./js/EmojiPicker */ \"./node_modules/absol-acomp/js/EmojiPicker.js\"));\n\nvar _ContextMenu = _interopRequireDefault(__webpack_require__(/*! ./js/ContextMenu */ \"./node_modules/absol-acomp/js/ContextMenu.js\"));\n\nvar _install = _interopRequireDefault(__webpack_require__(/*! ./js/dom/install */ \"./node_modules/absol-acomp/js/dom/install.js\"));\n\nvar _Searcher = _interopRequireDefault(__webpack_require__(/*! ./js/Searcher */ \"./node_modules/absol-acomp/js/Searcher.js\"));\n\nvar utils = _interopRequireWildcard(__webpack_require__(/*! ./js/utils */ \"./node_modules/absol-acomp/js/utils.js\"));\n\nvar _materializeIconTrigger = _interopRequireDefault(__webpack_require__(/*! ./js/materializeIconTrigger */ \"./node_modules/absol-acomp/js/materializeIconTrigger.js\"));\n\nvar _VariantColors = _interopRequireDefault(__webpack_require__(/*! ./js/VariantColors */ \"./node_modules/absol-acomp/js/VariantColors.js\"));\n\nvar _Tooltip = _interopRequireDefault(__webpack_require__(/*! ./js/Tooltip */ \"./node_modules/absol-acomp/js/Tooltip.js\"));\n\nvar _TextMeasure = _interopRequireDefault(__webpack_require__(/*! ./js/TextMeasure */ \"./node_modules/absol-acomp/js/TextMeasure.js\"));\n\nvar _BContextCapture = _interopRequireDefault(__webpack_require__(/*! ./js/BContextCapture */ \"./node_modules/absol-acomp/js/BContextCapture.js\"));\n\nvar _BrowserDetector = _interopRequireDefault(__webpack_require__(/*! absol/src/Detector/BrowserDetector */ \"./node_modules/absol/src/Detector/BrowserDetector.js\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _CPUViewer = _interopRequireDefault(__webpack_require__(/*! ./js/CPUViewer */ \"./node_modules/absol-acomp/js/CPUViewer.js\"));\n\nvar _ListDictionary = _interopRequireDefault(__webpack_require__(/*! ./js/list/ListDictionary */ \"./node_modules/absol-acomp/js/list/ListDictionary.js\"));\n\nvar _OverviewWidget = _interopRequireDefault(__webpack_require__(/*! ./js/keeview/OverviewWidget */ \"./node_modules/absol-acomp/js/keeview/OverviewWidget.js\"));\n\nvar _OverviewPage = _interopRequireDefault(__webpack_require__(/*! ./js/keeview/OverviewPage */ \"./node_modules/absol-acomp/js/keeview/OverviewPage.js\"));\n\nvar _DynamicCSS = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/DynamicCSS */ \"./node_modules/absol/src/HTML5/DynamicCSS.js\"));\n\nvar _Finder = __webpack_require__(/*! ./js/finder/Finder */ \"./node_modules/absol-acomp/js/finder/Finder.js\");\n\nvar _printer = __webpack_require__(/*! ./js/printer */ \"./node_modules/absol-acomp/js/printer.js\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nabsol.VariantColors = _VariantColors[\"default\"];\nabsol.parseMessage = _MessageInput.parseMessage;\nabsol.vScrollIntoView = utils.vScrollIntoView; //for export to window\n\nabsol.Tooltip = _Tooltip[\"default\"];\nabsol.QuickMenu = _QuickMenu[\"default\"];\nabsol.AComp = _AComp[\"default\"];\nabsol.Radio = _Radio[\"default\"];\nabsol.EmojiChars = _EmojiChars[\"default\"];\nabsol.EmojiAnims = _EmojiAnims[\"default\"];\nabsol.ChromeCalendar = _ChromeCalendar[\"default\"];\n(0, _install[\"default\"])(absol.coreDom); //old module\n\nabsol.coreDom.install('searchcrosstextinput', _Searcher[\"default\"]);\nObject.assign(absol.string, string);\nabsol.MessageInput = _MessageInput[\"default\"];\nabsol.EmojiPicker = _EmojiPicker[\"default\"];\nabsol.ContextCaptor = _ContextMenu[\"default\"];\nabsol.ListDictionary = _ListDictionary[\"default\"];\nabsol.FinderFileSystem = _Finder.FinderFileSystem;\nwindow.AComp = absol.AComp;\nabsol.TextMeasure = _TextMeasure[\"default\"];\nabsol.printer.silentDownloadAsPdf = _printer.silentDownloadAsPdf;\n\n_Dom[\"default\"].documentReady.then(function () {\n  var mdiLink = absol.$('link', document.head, function (e) {\n    if (e.href && e.href.toLowerCase().indexOf('materialdesignicons') >= 0) return true;\n  });\n\n  if (!mdiLink) {\n    mdiLink = absol._({\n      tag: 'link',\n      attr: {\n        rel: 'stylesheet',\n        href: 'https://absol.cf/vendor/materialdesignicons/materialdesignicons.css'\n      }\n    }).addTo(document.head);\n  }\n});\n\nObject.assign(absol.$, utils); // materializeIconTrigger();\n\nabsol.MaterialDesignIconsNameMap = _MaterialDesignIconsAdapter.MaterialDesignIconsNameMap;\nabsol.openFileDialog = utils.openFileDialog;\nabsol.CPUViewer = _CPUViewer[\"default\"];\nabsol.OverviewWidget = _OverviewWidget[\"default\"];\nabsol.OverviewPage = _OverviewPage[\"default\"];\n\n_Dom[\"default\"].documentReady.then(function () {\n  _ContextMenu[\"default\"].auto();\n});\n\nfunction testFont() {\n  var dynamicCSs = new _DynamicCSS[\"default\"]();\n  var value = parseInt(localStorage.getItem('as_test_font_size')) || 14;\n\n  var fontSizeInput = absol._({\n    tag: 'numberinput',\n    props: {\n      step: 1,\n      min: 5,\n      value: value\n    },\n    on: {\n      change: function change() {\n        localStorage.setItem('as_test_font_size', fontSizeInput.value + '');\n        dynamicCSs.setProperty(':root', 'font-size', fontSizeInput.value + 'px').commit();\n        window.dispatchEvent(new Event('resize'));\n      }\n    }\n  });\n\n  dynamicCSs.setProperty(':root', 'font-size', fontSizeInput.value + 'px').commit();\n  window.dispatchEvent(new Event('resize'));\n\n  var modal = absol._({\n    style: {\n      background: 'white',\n      position: 'fixed',\n      top: '5px',\n      right: '5px',\n      padding: '5px',\n      border: '1px solid #ddd',\n      zIndex: 1e9\n    },\n    child: ['<label>font-size </label>', fontSizeInput]\n  }).addTo(document.body);\n}\n\nif (location.href.indexOf('localhost') >= 0) {// Dom.documentReady.then(testFont);\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/dev.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/AutoCompleteInput.js":
/*!**********************************************************!*\
  !*** ./node_modules/absol-acomp/js/AutoCompleteInput.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/autocompleteinput.css */ \"./node_modules/absol-acomp/css/autocompleteinput.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _SearchStringArrayAdapter = _interopRequireDefault(__webpack_require__(/*! ./adapter/SearchStringArrayAdapter */ \"./node_modules/absol-acomp/js/adapter/SearchStringArrayAdapter.js\"));\n\nvar _SearchObjectArrayAdapter = _interopRequireDefault(__webpack_require__(/*! ./adapter/SearchObjectArrayAdapter */ \"./node_modules/absol-acomp/js/adapter/SearchObjectArrayAdapter.js\"));\n\nvar _EventEmitter = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n *\r\n * @extends {AElement}\r\n * @constructor\r\n */\n\nfunction AutoCompleteInput() {\n  this.$input = $('input', this).on('keyup', this.eventHandler.keyup).on('keydown', this.eventHandler.keydown).on('focus', this.eventHandler.focus).on('blur', this.eventHandler.blur);\n  this.$dropdown = $('.absol-autocomplete-input-dropdown', this);\n  this.$vscroller = $('bscroller', this).on('click', this.eventHandler.vscrollerClick);\n  this.$poolItems = [];\n  this._currentData = [];\n  this._sessionIndex = 0;\n  this._updatedSession = -1;\n  this._cache = {};\n\n  _OOP[\"default\"].drillProperty(this, this.$input, 'value');\n}\n\nAutoCompleteInput.tag = 'AutoCompleteInput'.toLowerCase();\n\nAutoCompleteInput.render = function () {\n  return _({\n    extendEvent: 'change',\n    \"class\": 'absol-autocomplete-input',\n    child: ['input[type=\"text\"].absol-autocomplete-input-text', {\n      \"class\": 'absol-autocomplete-input-dropdown',\n      style: {\n        display: 'none'\n      },\n      child: {\n        tag: 'bscroller',\n        style: {\n          'max-height': '500px'\n        }\n      }\n    }]\n  });\n};\n\nAutoCompleteInput.eventHandler = {};\n\nAutoCompleteInput.eventHandler.keyup = function (event) {\n  if (this._keyTimeout) {\n    clearTimeout(this._keyTimeout);\n    this._keyTimeout = 0;\n  }\n\n  var cTimeout = setTimeout(function () {\n    clearTimeout(cTimeout);\n    this.find();\n  }.bind(this), 300);\n\n  if (this._cacheTimeout) {\n    clearTimeout(this._cacheTimeout);\n    this._cacheTimeout = 0;\n  }\n\n  var cacheTimeout = setTimeout(function () {\n    clearTimeout(cacheTimeout);\n    this.clearCache();\n  }.bind(this), 300);\n  this._cacheTimeout = cacheTimeout;\n  this._keyTimeout = cTimeout;\n};\n\nAutoCompleteInput.eventHandler.blur = function () {\n  if (!this.hasClass('focus')) return;\n  this.removeClass('focus');\n  $(document.body).off('mousedown', this.eventHandler.clickOut);\n};\n\nAutoCompleteInput.eventHandler.focus = function () {\n  if (this.hasClass('focus')) return;\n  this.addClass('focus');\n  $(document.body).on('mousedown', this.eventHandler.clickOut);\n};\n\nAutoCompleteInput.eventHandler.clickOut = function (event) {\n  if (_EventEmitter[\"default\"].hitElement(this, event)) return;\n  $(document.body).off('mousedown', this.eventHandler.clickOut);\n  var text = this.$input.value;\n\n  if (this._lastValue != text) {\n    this._lastValue = text;\n    this.$dropdown.addStyle('display', 'none');\n    this._lastValue = text;\n    this.emit('change', {\n      target: this,\n      value: text\n    }, this);\n  }\n};\n\nAutoCompleteInput.eventHandler.vscrollerClick = function (event) {\n  var current = event.target;\n\n  while (current && !current.hasClass('absol-autocomplete-input-item') && current != this.$vscroller) {\n    current = current.parentElement;\n  }\n\n  if (current && current._holderItem) {\n    var text = this.getItemText(current._holderItem);\n    this.$input.value = text;\n    this._lastQuery = text;\n    this._selectedIndex = current._holderIndex;\n    this.$dropdown.addStyle('display', 'none');\n    this._lastValue = text;\n    this.emit('change', {\n      target: this,\n      value: text\n    }, this);\n  }\n};\n\nAutoCompleteInput.eventHandler.keydown = function (event) {\n  var key = event.key;\n\n  if (key === 'ArrowDown') {\n    if (this._selectedIndex + 1 < this._currentData.length) {\n      if (this.$poolItems[this._selectedIndex]) {\n        this.$poolItems[this._selectedIndex].removeClass('active');\n      }\n\n      this._selectedIndex += 1;\n\n      if (this.$poolItems[this._selectedIndex]) {\n        this.$poolItems[this._selectedIndex].addClass('active');\n\n        this.$vscroller.scrollInto(this.$poolItems[this._selectedIndex]);\n      }\n    }\n\n    event.preventDefault();\n  } else if (key === 'ArrowUp') {\n    if (this._selectedIndex - 1 >= 0) {\n      if (this.$poolItems[this._selectedIndex]) {\n        this.$poolItems[this._selectedIndex].removeClass('active');\n      }\n\n      this._selectedIndex -= 1;\n\n      if (this.$poolItems[this._selectedIndex]) {\n        this.$poolItems[this._selectedIndex].addClass('active');\n\n        this.$vscroller.scrollInto(this.$poolItems[this._selectedIndex]);\n      }\n    }\n\n    event.preventDefault();\n  } else if (key === 'Enter') {\n    var text;\n\n    if (this._currentData[this._selectedIndex] === undefined) {\n      text = this.$input.value;\n    } else {\n      text = this.getItemText(this._currentData[this._selectedIndex]);\n      this.$input.value = text;\n    }\n\n    this._lastQuery = text;\n    this.$dropdown.addStyle('display', 'none');\n    this._lastValue = text;\n    this.emit('change', {\n      target: this,\n      value: text\n    }, this);\n  }\n};\n\nAutoCompleteInput.prototype.focus = function () {\n  if (this.disabled) return;\n  this.$input.focus.apply(this.$input, arguments);\n};\n\nAutoCompleteInput.prototype.blur = function () {\n  this.$input.blur.apply(this.$input, arguments);\n};\n\nAutoCompleteInput.prototype.select = function () {\n  this.$input.select.apply(this.$input, arguments);\n};\n\nAutoCompleteInput.prototype.find = function () {\n  var query = this.$input.value;\n  if (query == this._lastQuery) return;\n  this._lastQuery = query;\n  var currentSession = ++this._sessionIndex;\n\n  if (!query) {\n    this.pushData([], currentSession, query);\n    return;\n  }\n\n  if (this.disableCache) {\n    var onReciveData = function (data) {\n      cacheHolder.data = data;\n      this.pushData(data, currentSession, query); //sessionIndex may be change\n    }.bind(this);\n\n    var result = this.queryItems(query);\n    if (typeof result.then == 'function') result.then(onReciveData);else onReciveData(result);\n  } else {\n    if (this._cache[query]) {\n      this._cache[query].sessionIndex = currentSession;\n\n      if (!this._cache[query].pending) {\n        var data = this._cache[query].data;\n        this.pushData(data, currentSession);\n      }\n    } else {\n      var cacheHolder = {\n        pending: true,\n        sessionIndex: currentSession\n      };\n\n      var onReciveData = function (data) {\n        cacheHolder.data = data;\n        cacheHolder.pending = false;\n        this.pushData(data, cacheHolder.sessionIndex, query); //sessionIndex may be change\n      }.bind(this);\n\n      var result = this.queryItems(query);\n      if (typeof result.then == 'function') result.then(onReciveData);else onReciveData(result);\n      this._cache[query] = cacheHolder;\n    }\n  }\n};\n\nAutoCompleteInput.prototype.pushData = function (data, sessionIndex, query) {\n  if (sessionIndex > this._updatedSession) {\n    this._updatedSession = sessionIndex;\n    this.$vscroller.clearChild();\n    this._currentData = data;\n\n    if (data && data.length > 0) {\n      this.$dropdown.removeStyle('display');\n    } else {\n      this.$dropdown.addStyle('display', 'none');\n    }\n\n    var maxHeight = this.getComputedStyleValue('max-height');\n\n    if (maxHeight == 'none' || !maxHeight) {\n      maxHeight = 10000;\n    } else {\n      maxHeight = parseFloat(maxHeight.replace('px', ''));\n    }\n\n    var outBound = _Dom[\"default\"].traceOutBoundingClientRect(this);\n\n    var bound = this.$input.getBoundingClientRect();\n    var aTop = bound.top - outBound.top;\n    var aBotom = outBound.bottom - bound.bottom;\n    this.$dropdown.removeClass('top');\n\n    if (aTop > aBotom) {\n      maxHeight = Math.min(maxHeight, aTop - 10);\n    } else {\n      maxHeight = Math.min(maxHeight, aBotom - 10);\n    }\n\n    this.$vscroller.addStyle('max-height', maxHeight + 'px');\n    this._selectedIndex = -1;\n    data.reduce(function (sync, item, i, arr) {\n      return sync.then(function () {\n        if (this._updatedSession != sessionIndex) return;\n        return new Promise(function (rs) {\n          if (this._updatedSession != sessionIndex) return;\n          var reuseItem = this.$poolItems.length > i ? this.$poolItems[i] : undefined;\n\n          if (reuseItem) {\n            reuseItem.removeClass('active');\n          }\n\n          var newView = this.getItemView(item, i, _, $, query, reuseItem, this);\n          newView.addClass('absol-autocomplete-input-item');\n          newView._holderItem = item;\n          newView._holderIndex = i;\n          if (i == this._selectedIndex) newView.addClass('active');\n\n          if (this.$poolItems.length <= i) {\n            this.$poolItems.push(newView);\n          } else {\n            this.$poolItems[i] = newView;\n          }\n\n          this.$vscroller.addChild(newView);\n\n          if (i == 0) {\n            var estimateHeight = newView.getBoundingClientRect().height * arr.length;\n\n            if (aTop > aBotom && estimateHeight > aBotom) {\n              this.$dropdown.addClass('top');\n            }\n          }\n\n          if (i >= 50 && i % 50 == 0) setTimeout(rs, 0);else rs();\n        }.bind(this));\n      }.bind(this));\n    }.bind(this), Promise.resolve());\n  }\n};\n\nAutoCompleteInput.prototype.getItemText = function (item) {\n  if (this.adapter && this.adapter.getItemText) {\n    return this.adapter.getItemText(item, this);\n  } else if (typeof item == 'string') {\n    return item;\n  } else {\n    throw Error('You need adapter.getItemText(item, mAutoCompleteInput) to handle your item text!');\n  }\n};\n\nAutoCompleteInput.prototype.getItemView = function (item, index, _, $, query, reuseItem, refParent) {\n  if (this.adapter && this.adapter.getItemView) {\n    return this.adapter.getItemView(item, index, _, $, query, reuseItem, refParent, this);\n  } else {\n    var text = this.getItemText(item);\n\n    if (reuseItem) {\n      reuseItem.childNodes[0].innerHTML = text;\n      return reuseItem;\n    }\n\n    return _({\n      child: {\n        tag: 'span',\n        \"class\": 'absol-autocomplete-input-item-text',\n        child: {\n          text: text\n        }\n      }\n    });\n  }\n};\n/**\r\n * @param {String} query\r\n * @returns {Array}\r\n */\n\n\nAutoCompleteInput.prototype.queryItems = function (query) {\n  if (this.adapter && this.adapter.queryItems) {\n    return this.adapter.queryItems(query, this);\n  } else {\n    throw new Error('Invalid adapter: queryItems(query, mAutoCompleteInput) not found!');\n  }\n};\n\nAutoCompleteInput.prototype.clearCache = function (old) {\n  if (typeof old != \"number\") old = 30;\n\n  for (var key in this._cache) {\n    var cacheHolder = this._cache[key];\n\n    if (this._sessionIndex - cacheHolder.sessionIndex > old) {\n      delete this._cache[key];\n    }\n  }\n};\n\nAutoCompleteInput.property = {};\nAutoCompleteInput.property.adapter = {\n  set: function set(value) {\n    if (value instanceof Array) {\n      if (value[0] == 'SearchStringArray') {\n        this._adapter = new _SearchStringArrayAdapter[\"default\"](value[1], value[2]);\n      } else if (value[0] == 'SearchObjectArray') {\n        this._adapter = new _SearchObjectArrayAdapter[\"default\"](value[1], value[2]);\n      } else {\n        throw new Error(\"Unknown adapter type name\");\n      }\n    } else {\n      this._adapter = value;\n    }\n\n    if (this.adapter && this.adapter.onAttached) {\n      this.adapter.onAttached(this);\n    }\n  },\n  get: function get() {\n    return this._adapter;\n  }\n};\nAutoCompleteInput.property.selectedItem = {\n  get: function get() {\n    return this._currentData && this._currentData[this._selectedIndex] || null;\n  }\n};\nAutoCompleteInput.property.disabled = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('absol-disabled');\n    } else {\n      this.removeClass('absol-disabled');\n    }\n  },\n  get: function get() {\n    return this.hasClass('absol-disabled');\n  }\n};\nAutoCompleteInput.attribute = {};\nAutoCompleteInput.attribute.disabled = {\n  set: function set(value) {\n    if (value === true || value === 'true' || value === null) {\n      this.disabled = true;\n    } else {\n      this.disabled = false;\n    }\n  },\n  get: function get() {\n    return this.disabled ? 'true' : 'false';\n  },\n  remove: function remove() {\n    this.disabled = false;\n  }\n};\n\n_ACore[\"default\"].install(AutoCompleteInput);\n\nvar _default = AutoCompleteInput;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/AutoCompleteInput.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/BContextCapture.js":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/js/BContextCapture.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _ContextMenu = _interopRequireDefault(__webpack_require__(/*! ./ContextMenu */ \"./node_modules/absol-acomp/js/ContextMenu.js\"));\n\nvar _Vec = _interopRequireDefault(__webpack_require__(/*! absol/src/Math/Vec2 */ \"./node_modules/absol/src/Math/Vec2.js\"));\n\nvar _EventEmitter = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _BrowserDetector = _interopRequireDefault(__webpack_require__(/*! absol/src/Detector/BrowserDetector */ \"./node_modules/absol/src/Detector/BrowserDetector.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * simple way, to replace old ContextCapture version\r\n ***/\nfunction BContextCapture() {\n  _EventEmitter[\"default\"].call(this);\n\n  this.sync = Promise.resolve();\n  this.$root = null;\n  this._pointerSession = 0;\n  this.ev_contextMenu = this.ev_contextMenu.bind(this);\n}\n\n_OOP[\"default\"].mixClass(BContextCapture, _EventEmitter[\"default\"]);\n\nBContextCapture.prototype.attachTo = function (elt) {\n  if (this.$root) this.$root.removeEventListener('contextmenu', this.ev_contextMenu, false);\n  this.$root = elt;\n  if (this.$root) this.$root.addEventListener('contextmenu', this.ev_contextMenu, false);\n};\n\nBContextCapture.prototype.auto = function () {\n  _Dom[\"default\"].documentReady.then(function () {\n    this.attachTo(document.body);\n  }.bind(this));\n};\n\nBContextCapture.prototype.showContextMenu = _ContextMenu[\"default\"].prototype.showContextMenu;\nBContextCapture.prototype._fireContextMenuEvent = _ContextMenu[\"default\"].prototype._fireContextMenuEvent;\nBContextCapture.prototype._checkNeedHandle = _ContextMenu[\"default\"].prototype._checkNeedHandle;\n/***\r\n *\r\n * @param {PointerEvent} event\r\n */\n\nBContextCapture.prototype.ev_contextMenu = function (event) {\n  this._pointerSession++;\n  this._posCurrent = new _Vec[\"default\"](event.clientX, event.clientY);\n  this.$target = event.target;\n\n  if (this._checkNeedHandle(event.target)) {\n    if (this._fireContextMenuEvent()) {\n      event.preventDefault();\n    }\n  }\n};\n\nvar instance = new BContextCapture();\n\nif ((!_BrowserDetector[\"default\"].isMobile || !_BrowserDetector[\"default\"].isSafari) && _BrowserDetector[\"default\"].os.type !== 'ios') {\n  _BrowserDetector[\"default\"].nativeContextMenuSupport = true;\n  _ContextMenu[\"default\"].auto = instance.auto.bind(instance); //override old version\n} else {\n  _BrowserDetector[\"default\"].nativeContextMenuSupport = false;\n}\n\nvar _default = instance;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/BContextCapture.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/BScroller.js":
/*!**************************************************!*\
  !*** ./node_modules/absol-acomp/js/BScroller.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/bscroller.css */ \"./node_modules/absol-acomp/css/bscroller.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Element = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Element */ \"./node_modules/absol/src/HTML5/Element.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction BScroller() {\n  this.addClass('as-bscroller');\n}\n\nBScroller.tag = \"bscroller\";\n\nBScroller.render = function (data) {\n  if (data && data.elt) {\n    return $(data.elt);\n  } else return _('div');\n};\n\nBScroller.prototype.scrollInto = function (element) {\n  if (_Element[\"default\"].prototype.isDescendantOf.call(element, this)) {\n    var elementBound = element.getBoundingClientRect();\n    var viewportBound = this.getBoundingClientRect();\n    var currentScrollTop = this.scrollTop;\n    var newScrollTop = currentScrollTop;\n\n    if (elementBound.bottom > viewportBound.bottom) {\n      newScrollTop = currentScrollTop + (elementBound.bottom - viewportBound.bottom);\n    }\n\n    if (elementBound.top < viewportBound.top) {\n      newScrollTop = currentScrollTop - (viewportBound.top - elementBound.top);\n    }\n\n    if (newScrollTop != currentScrollTop) {\n      this.scrollTop = newScrollTop;\n    }\n\n    var currentScrollLeft = this.scrollLeft;\n    var newScrollLeft = currentScrollLeft;\n\n    if (elementBound.right > viewportBound.right) {\n      newScrollLeft = currentScrollLeft + (elementBound.right - viewportBound.right);\n    }\n\n    if (elementBound.left < viewportBound.left) {\n      newScrollLeft = currentScrollLeft - (viewportBound.left - elementBound.left);\n    }\n\n    if (newScrollLeft != currentScrollLeft) {\n      this.scrollLeft = newScrollLeft;\n    }\n  }\n};\n\n_ACore[\"default\"].install(BScroller);\n\nvar _default = BScroller;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/BScroller.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/Board.js":
/*!**********************************************!*\
  !*** ./node_modules/absol-acomp/js/Board.js ***!
  \**********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/boardtable.css */ \"./node_modules/absol-acomp/css/boardtable.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction Board() {}\n\nBoard.tag = \"board\";\n\nBoard.render = function () {\n  return _({\n    \"class\": 'as-board',\n    extendEvent: ['sizechange', 'changeposition']\n  });\n};\n\nBoard.prototype.getParent = function () {\n  var parent = this.parentElement;\n\n  while (parent) {\n    if (parent.classList.contains('ac-board-table')) return parent;\n    parent = parent.parentElement;\n  }\n\n  return null;\n};\n\n_ACore[\"default\"].install(Board);\n\nvar _default = Board;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/Board.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/BoardTable.js":
/*!***************************************************!*\
  !*** ./node_modules/absol-acomp/js/BoardTable.js ***!
  \***************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = exports.FREE_ZONE_CLASS_NAME = exports.EFFECT_ZONE_CLASS_NAME = exports.DRAG_ZONE_CLASS_NAME = void 0;\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\n__webpack_require__(/*! ../css/boardtable.css */ \"./node_modules/absol-acomp/css/boardtable.css\");\n\n__webpack_require__(/*! ./Board */ \"./node_modules/absol-acomp/js/Board.js\");\n\nvar _Vec = _interopRequireDefault(__webpack_require__(/*! absol/src/Math/Vec2 */ \"./node_modules/absol/src/Math/Vec2.js\"));\n\nvar _Element = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Element */ \"./node_modules/absol/src/HTML5/Element.js\"));\n\nvar _Rectangle = _interopRequireDefault(__webpack_require__(/*! absol/src/Math/Rectangle */ \"./node_modules/absol/src/Math/Rectangle.js\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _EventEmitter = _interopRequireWildcard(__webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _Hanger = _interopRequireDefault(__webpack_require__(/*! ./Hanger */ \"./node_modules/absol-acomp/js/Hanger.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction BoardTable() {\n  var events = {\n    touchstart: this.eventHandler.mousedown,\n    mousedown: this.eventHandler.mousedown\n  };\n\n  _Hanger[\"default\"].prototype.on2.call(this, events);\n\n  this._childHolders = [];\n  this._dragEventData = null;\n  this._friends = [];\n  this._longPressEventData = null;\n}\n\nBoardTable.tag = 'boardtable';\n\nBoardTable.render = function () {\n  return _({\n    \"class\": 'as-board-table',\n    extendEvent: ['sizechange', 'orderchange', 'itemleave', 'itementer', 'dragitemstart', 'dragitemend']\n  });\n};\n\nvar EFFECT_ZONE_CLASS_NAME = 'as-board-table-effect-zone';\nexports.EFFECT_ZONE_CLASS_NAME = EFFECT_ZONE_CLASS_NAME;\nvar DRAG_ZONE_CLASS_NAME = 'as-board-drag-zone';\nexports.DRAG_ZONE_CLASS_NAME = DRAG_ZONE_CLASS_NAME;\nvar FREE_ZONE_CLASS_NAME = 'as-board-free-zone';\nexports.FREE_ZONE_CLASS_NAME = FREE_ZONE_CLASS_NAME;\nBoardTable.EFFECT_ZONE_CLASS_NAME = EFFECT_ZONE_CLASS_NAME;\nBoardTable.DRAG_ZONE_CLASS_NAME = DRAG_ZONE_CLASS_NAME;\nBoardTable.FREE_ZONE_CLASS_NAME = FREE_ZONE_CLASS_NAME;\nBoardTable.prototype.$preventContext = _({\n  tag: 'textarea',\n  \"class\": 'as-board-table-prevent-context',\n  props: {\n    readOnly: true\n  }\n});\nBoardTable.prototype.maxScrollSpeed = 300;\n\nBoardTable.prototype.findDomChildBefore = function (elt) {\n  var nodes = this.childNodes;\n\n  for (var i = 0; i < nodes.length; ++i) {\n    if (nodes[i] == elt) return nodes[i - 1];\n  }\n\n  return null;\n};\n\nBoardTable.prototype.findDomChildAfter = function (elt) {\n  var nodes = this.childNodes;\n\n  for (var i = 0; i < nodes.length; ++i) {\n    if (nodes[i] == elt) return nodes[i + 1];\n  }\n\n  return null;\n};\n\nBoardTable.prototype.addChild = function (elt) {\n  if (elt.classList.contains('as-board')) {\n    elt.selfRemove();\n    var atElt;\n\n    if (this._childHolders.length > 0) {\n      atElt = this.findDomChildAfter(this._childHolders[this._childHolders.length - 1].elt);\n\n      if (atElt) {\n        if (atElt != -1) this.insertBefore(elt, atElt);else throw new Error(\"Violation data!\");\n      } else {\n        this.appendChild(elt);\n      }\n    } else {\n      this.appendChild(elt);\n    }\n\n    var holder = {\n      elt: elt\n    }; // elt.on('sizechange', holder.onsizechange);\n\n    this._childHolders.push(holder);\n  } else {\n    this.appendChild(elt);\n  }\n\n  return this;\n};\n\nBoardTable.prototype.removeChild = function (elt) {\n  var holderIndex = this.findChildHolderIndex(elt);\n\n  if (holderIndex >= 0) {\n    var holder = this._childHolders[holderIndex]; // holder.elt.off('sizechange', holder.onsizechange);\n\n    this._childHolders.splice(holderIndex, 1);\n\n    holder.elt.remove();\n  } else {\n    this[\"super\"](elt);\n  }\n};\n\nBoardTable.prototype.findChildBefore = function (elt) {\n  var holderIndex = this.findChildHolderIndex(elt);\n  if (holderIndex < 0) return holderIndex;\n  if (holderIndex < 1) return null;\n  return this._childHolders[holderIndex - 1];\n};\n\nBoardTable.prototype.findChildAfter = function (elt) {\n  var holderIndex = this.findChildHolderIndex(elt);\n  if (holderIndex < 0) return holderIndex;\n  if (holderIndex <= this._childHolders.length) return null;\n  return this._childHolders[holderIndex + 1];\n};\n\nBoardTable.prototype.addChildBefore = function (elt, at) {\n  elt.selfRemove();\n  var atIndex = this.findChildHolderIndex(at);\n\n  if (elt.classList.contains('as-board')) {\n    if (atIndex < 0) {\n      if (this._childHolders.length > 0) {\n        if (this.findDomChildAfter(this._childHolders[this._childHolders.length - 1].elt) == at) {\n          atIndex = this._childHolders.length;\n        } else {\n          throw new Error(\"Invalid position, you must insert board next to other board!\");\n        }\n      }\n    }\n\n    this.insertBefore(elt, at);\n    var holder = {\n      elt: elt\n    };\n\n    this._childHolders.splice(atIndex, 0, holder);\n  } else {\n    if (atIndex > 0) {\n      throw new Error(\"Invalid position, you can not insert othert type between two board!\");\n    } else {\n      this.insertBefore(elt, at);\n    }\n  }\n\n  return this;\n};\n\nBoardTable.prototype.addChildAfter = function (elt, at) {\n  elt.selfRemove();\n  var atIndex = this.findChildHolderIndex(at);\n  var afterAt = this.findDomChildAfter(at);\n\n  if (elt.classList.contains('as-board')) {\n    if (atIndex < 0) {\n      if (this._childHolders.length > 0) {\n        if (this.findDomChildBefore(this._childHolders[0].elt) == at) {\n          atIndex = -1;\n        } else throw new Error(\"Invalid position,  you must insert board next to other board!\");\n      }\n    }\n\n    var holder = {\n      elt: elt\n    };\n\n    if (!afterAt) {\n      this.appendChild(elt);\n    } else {\n      this.insertBefore(elt, afterAt);\n    }\n\n    this._childHolders.splice(atIndex + 1, 0, holder);\n  } else {\n    if (this._childHolders.length > 1 && atIndex >= 0 && atIndex + 1 < this._childHolders.length) {\n      throw new Error(\"Invalid position, you can not insert othert type between two board!\");\n    } else {\n      if (!afterAt) {\n        this.appendChild(elt);\n      } else {\n        this.insertBefore(elt, afterAt);\n      }\n    }\n  }\n\n  return this;\n};\n\nBoardTable.prototype.clearChild = function () {\n  this._childHolders = [];\n  return _Element[\"default\"].prototype.clearChild.call(this);\n};\n\nBoardTable.prototype.findChildHolder = function (elt) {\n  return this._childHolders[this.findChildHolderIndex(elt)];\n};\n\nBoardTable.prototype.findChildHolderIndex = function (elt) {\n  for (var i = 0; i < this._childHolders.length; ++i) {\n    if (this._childHolders[i].elt == elt) return i;\n  }\n\n  return -1;\n};\n\nBoardTable.prototype.getEffectZone = function () {\n  var ez = this;\n\n  while (ez) {\n    if (ez.classList.contains(EFFECT_ZONE_CLASS_NAME)) {\n      return ez;\n    }\n\n    ez = ez.parentElement;\n  }\n\n  return this;\n};\n\nBoardTable.prototype._findDragZone = function (elt) {\n  var res = null;\n\n  while (elt != this && elt) {\n    if (elt.classList.contains('as-board-table')) return null; //maybe in other\n\n    if (!res && elt.classList.contains(DRAG_ZONE_CLASS_NAME)) {\n      res = elt;\n    }\n\n    if (!res && elt.classList.contains(FREE_ZONE_CLASS_NAME)) return null; // do not drag\n\n    elt = elt.parentElement;\n  }\n\n  return res;\n};\n\nBoardTable.prototype._findBoard = function (elt) {\n  while (elt != this && elt) {\n    if (elt.classList.contains('as-board')) return elt;\n    elt = elt.parentElement;\n  }\n\n  return null;\n};\n\nBoardTable.prototype.getAllFriends = function () {\n  var thisBT = this;\n  var res = [];\n  var friendQR;\n\n  for (var i = 0; i < this._friends.length; ++i) {\n    friendQR = this._friends[i];\n\n    if (friendQR != this && friendQR && friendQR.classList && friendQR.classList.contains('as-board-table')) {\n      res.push(friendQR);\n    } else if (typeof friendQR == 'string') {\n      // query\n      $(friendQR, false, function (elt) {\n        if (thisBT != elt && elt.classList && elt.classList.contains('as-board-table')) {\n          res.push(elt);\n        }\n\n        return false;\n      });\n    }\n  }\n\n  return res;\n};\n\nBoardTable.prototype._findHoverBoardIndex = function (clientX, clientY, excludes) {\n  var cli = new _Vec[\"default\"](clientX, clientY);\n  var bound;\n\n  for (var i = 0; i < this._childHolders.length; ++i) {\n    // holder =\n    if (excludes && excludes.indexOf(this._childHolders[i].elt) >= 0) continue;\n    bound = _Rectangle[\"default\"].fromClientRect(this._childHolders[i].elt.getBoundingClientRect());\n    if (bound.containsPoint(cli)) return i;\n  }\n\n  return -1;\n};\n/**\r\n * @type {BoardTable}\r\n */\n\n\nBoardTable.eventHandler = {};\n\nBoardTable.eventHandler.mousedown = function (event) {\n  if (this._dragEventData) return;\n  var mousePos;\n  var pointerIdent = -1;\n  var target;\n  var isTouch = event.type === 'touchstart';\n\n  if (isTouch) {\n    var touch = event.changedTouches[0];\n    target = touch.target;\n    pointerIdent = touch.identifier;\n    mousePos = new _Vec[\"default\"](touch.clientX, touch.clientY);\n  } else {\n    mousePos = new _Vec[\"default\"](event.clientX, event.clientY);\n    target = event.target;\n  }\n\n  var dragzone = this._findDragZone(target);\n\n  if (dragzone) {\n    var boardElt = this._findBoard(dragzone);\n\n    var holderIndex = this.findChildHolderIndex(boardElt);\n    if (holderIndex < 0) return; // can not move\n\n    var cBound = boardElt.getBoundingClientRect();\n    var mouseBoardOffset = mousePos.sub(new _Vec[\"default\"](cBound.left, cBound.top));\n    this._dragEventData = {\n      boardElt: boardElt,\n      state: 'WAIT',\n      mouseStartPos: mousePos,\n      mousePos: mousePos,\n      mouseBoardOffset: mouseBoardOffset,\n      holderIndex: holderIndex,\n      boardBound: cBound,\n      isTouch: isTouch,\n      pointerIdent: pointerIdent\n    };\n\n    var cEvent = _EventEmitter[\"default\"].copyEvent(event);\n\n    if (isTouch) {\n      _Hanger[\"default\"].prototype.on2.call(document.body, {\n        touchend: this.eventHandler.touchFinishBeforeReadyDrag,\n        touchcancel: this.eventHandler.touchFinishBeforeReadyDrag,\n        touchmove: this.eventHandler.touchMoveBeforeReadyDrag\n      });\n\n      this.$preventContext.off('contextmenu', this.eventHandler.contextMenu); //event maybe not remove because of double click\n\n      this.$preventContext.on('contextmenu', this.eventHandler.contextMenu);\n      var thisBT = this;\n      this._dragEventData._longPressTimeout = setTimeout(function () {\n        thisBT._longPressEventData = -1;\n        thisBT.$preventContext.addStyle({\n          '--x': mousePos.x + 'px',\n          '--y': mousePos.y + 'px'\n        }).addTo(document.body);\n        thisBT.eventHandler.readyDrag(cEvent);\n      }, 400);\n    } else {\n      this.eventHandler.readyDrag(event);\n    }\n  }\n};\n\nBoardTable.eventHandler.touchFinishBeforeReadyDrag = function (event) {\n  var thisBT = this;\n  var dragEventData = this._dragEventData;\n  if (!dragEventData) return;\n\n  _Hanger[\"default\"].prototype.off2.call(document.body, {\n    touchend: this.eventHandler.touchFinishBeforeReadyDrag,\n    touchcancel: this.eventHandler.touchFinishBeforeReadyDrag,\n    touchmove: this.eventHandler.touchMoveBeforeReadyDrag\n  });\n\n  if (this._dragEventData._longPressTimeout > 0) {\n    clearTimeout(this._dragEventData._longPressTimeout);\n  }\n\n  if (dragEventData.state === 'WAIT') {\n    this._dragEventData = null; // canceled\n  } else {\n    setTimeout(function () {\n      thisBT.$preventContext.off('contextmenu', thisBT.eventHandler.contextMenu);\n      thisBT.$preventContext.remove();\n    }, 60);\n  }\n};\n\nBoardTable.eventHandler.contextMenu = function (event) {\n  event.preventDefault();\n  this.$preventContext.off('contextmenu', this.eventHandler.contextMenu);\n  this.$preventContext.remove();\n  this.eventHandler.touchFinishBeforeReadyDrag(event);\n};\n\nBoardTable.eventHandler.touchMoveBeforeReadyDrag = function (event) {\n  var dragEventData = this._dragEventData;\n  var touch = (0, _EventEmitter.findChangedTouchByIdent)(event, dragEventData.pointerIdent);\n  if (!touch) return;\n  var mousePos = new _Vec[\"default\"](touch.clientX, touch.clientY);\n\n  if (dragEventData.state === 'WAIT') {\n    var dv = mousePos.sub(dragEventData.mouseStartPos);\n\n    if (dv.abs() > 8) {\n      this.eventHandler.touchFinishBeforeReadyDrag(event);\n      this._dragEventData = null; // cancel\n    }\n  } else {\n    this.$preventContext.addStyle({\n      '--x': mousePos.x + 'px',\n      '--y': mousePos.y + 'px'\n    });\n  }\n};\n\nBoardTable.eventHandler.readyDrag = function (event) {\n  var dragEventData = this._dragEventData;\n  dragEventData.state = \"PRE_DRAG\";\n  var bodyEvents = {};\n\n  if (dragEventData.isTouch) {\n    bodyEvents.touchmove = this.eventHandler.mousemove;\n    bodyEvents.touchcancel = this.eventHandler.mousefinish;\n    bodyEvents.touchend = this.eventHandler.mousefinish;\n  } else {\n    bodyEvents.mousemove = this.eventHandler.mousemove;\n    bodyEvents.mouseup = this.eventHandler.mousefinish;\n    bodyEvents.mouseleave = this.eventHandler.mousefinish;\n  }\n\n  _Hanger[\"default\"].prototype.on2.call(document.body, bodyEvents);\n\n  if (dragEventData.isTouch) {\n    this.eventHandler.mousemove(event);\n  }\n};\n\nBoardTable.eventHandler.mousemovePredrag = function (event) {\n  var dragEventData = this._dragEventData;\n  var mousePos = dragEventData.mousePos;\n  var thisBT = this;\n  event.preventDefault();\n  var cBound = dragEventData.boardElt.getBoundingClientRect();\n\n  if (mousePos.sub(dragEventData.mouseStartPos).abs() > 8 || dragEventData.isTouch) {\n    dragEventData.placeHolderElt = $(dragEventData.boardElt.cloneNode(false)).addClass('as-board-place-holder').addStyle({\n      width: cBound.width + 'px',\n      height: cBound.height + 'px'\n    });\n    dragEventData.friendHolders = this.getAllFriends().concat([this]).map(function (elt) {\n      //include itself\n      var effectZone = elt.getEffectZone();\n      var res = {\n        elt: elt,\n        effectZone: effectZone\n      };\n\n      if (!dragEventData.isTouch) {\n        var enterEvent = thisBT.eventHandler.enterFriendEffectZone.bind(thisBT, elt);\n\n        _Hanger[\"default\"].prototype.on2.call(effectZone, dragEventData.isTouch ? 'touchmove' : 'mouseenter', enterEvent);\n\n        res.enterEvent = enterEvent;\n      } else {// use move event to detect\n      }\n\n      return res;\n    });\n    dragEventData.inEffectZoneOf = this;\n    dragEventData.cardStyle = {\n      width: dragEventData.boardElt.style.width,\n      height: dragEventData.boardElt.style.height\n    };\n    dragEventData.boardElt.addStyle({\n      width: cBound.width + 'px',\n      height: cBound.height + 'px'\n    });\n    this.insertBefore(dragEventData.placeHolderElt, dragEventData.boardElt);\n    dragEventData.state = \"DRAG\";\n    $(document.body).addClass('as-has-board-table-drag');\n    dragEventData.boardElt.addClass('as-board-moving');\n    dragEventData.boardAt = dragEventData.holderIndex;\n    dragEventData.boardIn = thisBT;\n    this.emit('dragitemstart', {\n      type: 'dragitemstart',\n      target: this,\n      boardElt: this._dragEventData.boardElt\n    }, this);\n  }\n};\n\nBoardTable.eventHandler.mousemoveDragInSelf = function (event) {\n  var dragEventData = this._dragEventData;\n  var mousePos = dragEventData.mousePos;\n\n  if (this._childHolders.length < 2) {\n    if (dragEventData.boardIn != this) {\n      this.insertBefore(dragEventData.placeHolderElt, this._childHolders[0].elt);\n      dragEventData.boardIn = this;\n      dragEventData.boardAt = 0;\n    }\n  } else {\n    // bản thân chỉ có 1, hoặc nhiều hơn\n    var i = this._findHoverBoardIndex(mousePos.x, mousePos.y, [dragEventData.boardElt]);\n\n    if (i >= 0) {\n      if (dragEventData.boardIn != this) {\n        dragEventData.boardIn = this;\n      }\n\n      var viewIndex;\n\n      if (i < dragEventData.holderIndex && i < dragEventData.boardAt || i > dragEventData.holderIndex && i > dragEventData.boardAt || dragEventData.holderIndex == dragEventData.boardAt) {\n        viewIndex = i;\n      } else {\n        if (dragEventData.holderIndex > dragEventData.boardAt) {\n          viewIndex = i + 1;\n        } else {\n          viewIndex = i - 1;\n        }\n      }\n\n      var fbound = this._childHolders[i].elt.getBoundingClientRect();\n\n      var displayStyple = this._childHolders[i].elt.getComputedStyleValue('display');\n\n      if (mousePos.x > fbound.left && mousePos.x < fbound.right && mousePos.y > fbound.top && mousePos.y < fbound.bottom) {\n        if (displayStyple.startsWith('inline')) {\n          if (dragEventData.boardBound.width < fbound.width) {\n            if (dragEventData.boardAt > viewIndex && mousePos.x > fbound.left + dragEventData.boardBound.width) {\n              viewIndex += 1;\n            } else if (dragEventData.boardAt < viewIndex && mousePos.x < fbound.left + fbound.width - dragEventData.boardBound.width) {\n              viewIndex -= 1;\n            }\n          }\n        } else {\n          if (dragEventData.boardBound.height < fbound.height) {\n            if (dragEventData.boardAt > viewIndex && mousePos.y >= fbound.top + dragEventData.boardBound.height) {\n              viewIndex += 1;\n            } else if (dragEventData.boardAt < viewIndex && mousePos.y <= fbound.top + fbound.height - dragEventData.boardBound.height) {\n              viewIndex -= 1;\n            }\n          }\n        }\n\n        viewIndex = Math.max(0, Math.min(this._childHolders.length, viewIndex));\n\n        if (viewIndex != dragEventData.boardAt) {\n          dragEventData.boardAt = viewIndex;\n\n          if (dragEventData.holderIndex >= viewIndex) {\n            this.insertBefore(dragEventData.placeHolderElt, this._childHolders[viewIndex].elt);\n          } else {\n            var bf = _Element[\"default\"].prototype.findChildAfter.call(this, this._childHolders[viewIndex].elt);\n\n            if (bf) this.insertBefore(dragEventData.placeHolderElt, bf);else {\n              this.appendChild(dragEventData.placeHolderElt);\n            }\n          }\n        }\n      }\n    }\n  }\n};\n\nBoardTable.eventHandler.mousemoveDragInOther = function (event) {\n  var dragEventData = this._dragEventData;\n  var mousePos = dragEventData.mousePos;\n  var other = dragEventData.inEffectZoneOf;\n\n  if (other._childHolders.length == 0) {\n    if (dragEventData.boardIn != other) {\n      dragEventData.boardIn = other;\n      dragEventData.boardAt = 0;\n      other.appendChild(dragEventData.placeHolderElt);\n    }\n  } else {\n    var i = other._findHoverBoardIndex(mousePos.x, mousePos.y);\n\n    if (i >= 0) {\n      if (dragEventData.boardIn != other) {\n        dragEventData.boardIn = other;\n      }\n\n      var displayStyple = other._childHolders[i].elt.getComputedStyleValue('display');\n\n      var di = 0;\n\n      var bbound = other._childHolders[i].elt.getBoundingClientRect();\n\n      if (displayStyple.startsWith('inline')) {\n        if (mousePos.x > bbound.left + bbound.width / 2) di++;\n      } else {\n        if (mousePos.y > bbound.top + bbound.height / 2) di++;\n      }\n\n      i += di;\n\n      if (i < other._childHolders.length) {\n        other.insertBefore(dragEventData.placeHolderElt, other._childHolders[i].elt);\n      } else {\n        var bf = other.findChildAfter(other._childHolders[other._childHolders.length - 1].elt);\n\n        if (bf) {\n          other.insertBefore(dragEventData.placeHolderElt, bf);\n        } else {\n          other.appendChild(dragEventData.placeHolderElt);\n        }\n      }\n\n      dragEventData.boardAt = i;\n    }\n  }\n};\n\nBoardTable.eventHandler.mousemoveDrag = function (event) {\n  var dragEventData = this._dragEventData;\n\n  if (dragEventData.inEffectZoneOf == this) {\n    this.eventHandler.mousemoveDragInSelf(event);\n  } else {\n    this.eventHandler.mousemoveDragInOther(event);\n  }\n};\n\nBoardTable.eventHandler.boarDrag = function (event) {\n  var dragEventData = this._dragEventData;\n  var mousePos = dragEventData.mousePos;\n  var boardPos = mousePos.sub(dragEventData.mouseBoardOffset);\n  dragEventData.boardElt.addStyle({\n    left: boardPos.x + 'px',\n    top: boardPos.y + 'px'\n  });\n};\n\nBoardTable.eventHandler.dragOnEffectZone = function (event) {\n  var dragEventData = this._dragEventData;\n  var mousePos = dragEventData.mousePos;\n  var friendHolders = dragEventData.friendHolders;\n  var bound;\n\n  for (var i = 0; i < friendHolders.length; ++i) {\n    bound = _Rectangle[\"default\"].fromClientRect(friendHolders[i].effectZone.getBoundingClientRect());\n\n    if (bound.containsPoint(mousePos)) {\n      dragEventData.inEffectZoneOf = friendHolders[i].elt;\n      break;\n    }\n  }\n};\n\nBoardTable.eventHandler.mousemoveOverflow = function (event) {\n  if (!this._dragEventData) return;\n  var dragEventData = this._dragEventData;\n  var scrollerX = this._dragEventData.boardIn;\n  var overflowStyle;\n\n  while (scrollerX) {\n    overflowStyle = window.getComputedStyle(scrollerX)['overflow'];\n    if ((overflowStyle === 'auto' || overflowStyle === 'auto hidden' || overflowStyle === 'scroll' || scrollerX.tagName === 'HTML') && scrollerX.clientWidth < scrollerX.scrollWidth) break;\n    scrollerX = scrollerX.parentElement;\n  }\n\n  var scrollerY = this._dragEventData.boardIn;\n\n  while (scrollerY) {\n    overflowStyle = window.getComputedStyle(scrollerY)['overflow'];\n    if ((overflowStyle === 'auto' || overflowStyle === 'hidden auto' || overflowStyle === 'scroll' || scrollerY.tagName === 'HTML') && scrollerY.clientHeight < scrollerY.scrollHeight) break;\n    scrollerY = scrollerY.parentElement;\n  }\n\n  var outBound;\n  var bBound;\n\n  var screenSize = _Dom[\"default\"].getScreenSize();\n\n  var vx = 0;\n  var vy = 0;\n  bBound = this._dragEventData.boardElt.getBoundingClientRect();\n\n  if (scrollerX) {\n    if (dragEventData.$scrollerX !== scrollerX) {\n      dragEventData.scrollerXValue = scrollerX.scrollLeft;\n      dragEventData.$scrollerX = scrollerX;\n    }\n\n    outBound = scrollerX.getBoundingClientRect();\n    outBound = {\n      left: Math.max(outBound.left, 0),\n      top: Math.max(outBound.top, 0),\n      bottom: Math.min(outBound.bottom, screenSize.height),\n      right: Math.min(outBound.right, screenSize.width)\n    };\n\n    if (bBound.left < outBound.left) {\n      vx = bBound.left - outBound.left;\n    } else if (bBound.right > outBound.right) {\n      vx = bBound.right - outBound.right;\n    }\n  } else {\n    dragEventData.$scrollerX = null;\n  }\n\n  if (scrollerY) {\n    if (dragEventData.$scrollerY !== scrollerY) {\n      dragEventData.scrollerYValue = scrollerY.scrollTop;\n      dragEventData.$scrollerY = scrollerY;\n    }\n\n    outBound = scrollerY.getBoundingClientRect();\n    outBound = {\n      left: Math.max(outBound.left, 0),\n      top: Math.max(outBound.top, 0),\n      bottom: Math.min(outBound.bottom, screenSize.height),\n      right: Math.min(outBound.right, screenSize.width)\n    };\n\n    if (bBound.top < outBound.top) {\n      vy = bBound.top - outBound.top;\n    } else if (bBound.bottom > outBound.bottom) {\n      vy = bBound.bottom - outBound.bottom;\n    }\n  } else {\n    dragEventData.$scrollerY = null;\n  }\n\n  vx = Math.max(-this.maxScrollSpeed, Math.min(this.maxScrollSpeed, vx * Math.sqrt(Math.abs(vx))));\n  vy = Math.max(-this.maxScrollSpeed, Math.min(this.maxScrollSpeed, vy * Math.sqrt(Math.abs(vy))));\n\n  if (vx !== 0 || vy !== 0) {\n    var copyEvent = {\n      type: event.type,\n      preventDefault: function preventDefault() {\n        /* noop */\n      },\n      target: event.target\n    };\n\n    if (event.type === 'touchmove') {\n      copyEvent.changedTouches = Array.prototype.map.call(event.changedTouches, function (it) {\n        return {\n          identifier: it.identifier,\n          clientX: it.clientX,\n          clientY: it.clientY,\n          target: it.target\n        };\n      });\n      copyEvent.touches = Array.prototype.map.call(event.touches, function (it) {\n        return {\n          identifier: it.identifier,\n          clientX: it.clientX,\n          clientY: it.clientY,\n          target: it.target\n        };\n      });\n    } else {\n      copyEvent.clientX = event.clientX;\n      copyEvent.clientY = event.clientY;\n    }\n\n    var thisBT = this;\n    var now = new Date().getTime();\n\n    if (dragEventData.requestAnimationFrameId >= 0) {\n      cancelAnimationFrame(dragEventData.requestAnimationFrameId);\n    }\n\n    dragEventData.requestAnimationFrameId = requestAnimationFrame(function () {\n      dragEventData.requestAnimationFrameId = -1;\n      var dt = (new Date().getTime() - now) / 1000;\n\n      if (dragEventData.$scrollerY) {\n        dragEventData.scrollerYValue += vy * dt;\n        dragEventData.scrollerYValue = Math.max(0, Math.min(dragEventData.$scrollerY.scrollHeight - dragEventData.$scrollerY.clientHeight, dragEventData.scrollerYValue));\n        dragEventData.$scrollerY.scrollTop = dragEventData.scrollerYValue;\n      }\n\n      if (dragEventData.$scrollerX) {\n        dragEventData.scrollerXValue += vx * dt;\n        dragEventData.scrollerXValue = Math.max(0, Math.min(dragEventData.$scrollerX.scrollWidth - dragEventData.$scrollerX.clientWidth, dragEventData.scrollerXValue));\n        dragEventData.$scrollerX.scrollLeft = dragEventData.scrollerXValue;\n      }\n\n      if (thisBT._dragEventData && thisBT._dragEventData.state === \"DRAG\") {\n        thisBT.eventHandler.mousemoveOverflow(copyEvent);\n      }\n    });\n  }\n};\n\nBoardTable.eventHandler.mousemove = function (event) {\n  var dragEventData = this._dragEventData;\n  var isTouch = event.type === 'touchmove' || event.type === 'touchstart'; // call from timeout\n\n  if (dragEventData.isTouch !== isTouch) return;\n  var mousePos;\n  var pointerIdent;\n  var touch = -2;\n\n  if (isTouch) {\n    touch = (0, _EventEmitter.findChangedTouchByIdent)(event, dragEventData.pointerIdent);\n\n    if (touch) {\n      pointerIdent = touch.identifier;\n      mousePos = new _Vec[\"default\"](touch.clientX, touch.clientY);\n    }\n  } else {\n    pointerIdent = -1;\n    mousePos = new _Vec[\"default\"](event.clientX, event.clientY);\n  }\n\n  if (dragEventData.pointerIdent !== pointerIdent) return;\n  dragEventData.mousePos = mousePos;\n  event.preventDefault();\n\n  if (dragEventData.isTouch && dragEventData.state === 'DRAG') {\n    this.eventHandler.dragOnEffectZone(event); //because touch not have mouseenter event\n  }\n\n  if (dragEventData.state === 'PRE_DRAG') {\n    this.eventHandler.mousemovePredrag(event);\n  }\n\n  if (dragEventData.state === 'DRAG') {\n    this.eventHandler.mousemoveDrag(event);\n    this.eventHandler.boarDrag(event);\n    this.eventHandler.mousemoveOverflow(event);\n  }\n};\n\nBoardTable.eventHandler.mousefinish = function (event) {\n  var dragEventData = this._dragEventData;\n  var isTouch = event.type === 'touchend';\n  if (dragEventData.isTouch !== isTouch) return;\n  var mousePos;\n  var pointerIdent;\n  var touch = -2;\n\n  if (isTouch) {\n    touch = (0, _EventEmitter.findChangedTouchByIdent)(event, dragEventData.pointerIdent);\n\n    if (touch) {\n      pointerIdent = touch.identifier;\n      mousePos = new _Vec[\"default\"](touch.clientX, touch.clientY);\n    }\n  } else {\n    pointerIdent = -1;\n    mousePos = new _Vec[\"default\"](event.clientX, event.clientY);\n  }\n\n  if (dragEventData.pointerIdent !== pointerIdent) return;\n  dragEventData.mousePos = mousePos;\n  var changed;\n\n  if (dragEventData.state == 'DRAG') {\n    setTimeout(function () {\n      $(document.body).removeClass('as-has-board-table-drag');\n    }, 1);\n    dragEventData.boardElt.removeClass('as-board-moving').removeStyle('left').removeStyle('top');\n    dragEventData.boardElt.addStyle(dragEventData.cardStyle);\n    dragEventData.placeHolderElt.remove();\n    dragEventData.state = \"FINISH\";\n    if (!dragEventData.isTouch) dragEventData.friendHolders.forEach(function (holder) {\n      _Hanger[\"default\"].prototype.off2.call(holder.effectZone, 'mouseenter', holder.enterEvent);\n    });\n\n    if (dragEventData.boardIn == this) {\n      if (dragEventData.holderIndex != dragEventData.boardAt) {\n        if (dragEventData.holderIndex > dragEventData.boardAt) {\n          this.insertBefore(dragEventData.boardElt, this._childHolders[dragEventData.boardAt].elt);\n        } else if (dragEventData.holderIndex < dragEventData.boardAt) {\n          var bf = _Element[\"default\"].prototype.findChildAfter.call(this, this._childHolders[dragEventData.boardAt].elt);\n\n          if (bf) this.insertBefore(dragEventData.boardElt, bf);else {\n            this.appendChild(dragEventData.boardElt);\n          }\n        }\n\n        var holder = this._childHolders.splice(dragEventData.holderIndex, 1)[0];\n\n        this._childHolders.splice(dragEventData.boardAt, 0, holder);\n\n        changed = 'orderchange';\n        this.emit('orderchange', {\n          type: 'orderchange',\n          boardElt: holder.elt,\n          action: 'move',\n          from: dragEventData.holderIndex,\n          to: dragEventData.boardAt,\n          target: this\n        }, this);\n      }\n    } else {\n      var holder = this._childHolders.splice(dragEventData.holderIndex, 1)[0];\n\n      holder.elt.remove(); ///remove all event\n\n      var other = dragEventData.boardIn;\n      changed = 'itemleave';\n      this.emit('itemleave', {\n        type: 'itemleave',\n        item: holder.elt,\n        from: {\n          index: dragEventData.holderIndex,\n          table: this\n        },\n        to: {\n          index: dragEventData.boardAt,\n          table: other\n        },\n        target: this\n      }, this);\n\n      if (other._childHolders.length == 0) {\n        other.appendChild(holder.elt);\n\n        other._childHolders.push(holder);\n      } else {\n        if (dragEventData.boardAt < other._childHolders.length) {\n          other.insertBefore(holder.elt, other._childHolders[dragEventData.boardAt].elt);\n\n          other._childHolders.splice(dragEventData.boardAt, 0, holder);\n        } else {\n          var bf = other.findDomChildAfter(other._childHolders.elt);\n\n          if (bf) {\n            other.insertBefore(holder.elt, bf);\n          } else {\n            other.appendChild(holder.elt);\n          }\n\n          other._childHolders.push(holder);\n        }\n      }\n\n      other.emit('itementer', {\n        type: 'itementer',\n        item: holder.elt,\n        target: other,\n        from: {\n          index: dragEventData.holderIndex,\n          table: this\n        },\n        to: {\n          index: dragEventData.boardAt,\n          table: other\n        }\n      }, other);\n    }\n\n    this.emit('dragitemend', {\n      type: 'dragitemend',\n      target: this,\n      changed: changed,\n      boardElt: this._dragEventData.boardElt\n    }, this);\n  }\n\n  var bodyEvents = {};\n\n  if (dragEventData.isTouch) {\n    bodyEvents.touchmove = this.eventHandler.mousemove;\n    bodyEvents.touchcancel = this.eventHandler.mousefinish;\n    bodyEvents.touchend = this.eventHandler.mousefinish;\n  } else {\n    bodyEvents.mousemove = this.eventHandler.mousemove;\n    bodyEvents.mouseup = this.eventHandler.mousefinish;\n    bodyEvents.mouseleave = this.eventHandler.mousefinish;\n  }\n\n  _Hanger[\"default\"].prototype.off2.call(document.body, bodyEvents);\n\n  this._dragEventData = null;\n};\n\nBoardTable.eventHandler.enterFriendEffectZone = function (friendElt, event) {\n  this._dragEventData.inEffectZoneOf = friendElt;\n};\n\nBoardTable.prototype.getAllBoards = function () {\n  return this._childHolders.map(function (holder) {\n    return holder.elt;\n  });\n};\n\nBoardTable.property = {};\nBoardTable.property.friends = {\n  set: function set(value) {\n    value = value || [];\n    if (!(value instanceof Array)) value = [value];\n    this._friends = value;\n  },\n  get: function get() {\n    return this._friends;\n  }\n};\n\n_ACore[\"default\"].install(BoardTable);\n\nvar _default = BoardTable;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/BoardTable.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/ButtonArray.js":
/*!****************************************************!*\
  !*** ./node_modules/absol-acomp/js/ButtonArray.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/buttonarray.css */ \"./node_modules/absol-acomp/css/buttonarray.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction ButtonArray() {\n  this._dict = {};\n  this._pool = [];\n  this._items = [];\n  this.$lastActiveBtn = null;\n  this._value = undefined;\n  this._lastValue = this._value;\n}\n\nButtonArray.tag = 'buttonarray';\n\nButtonArray.render = function () {\n  return _({\n    extendEvent: ['change'],\n    \"class\": 'as-button-array'\n  });\n};\n\nButtonArray.prototype._newButton = function () {\n  var button = _({\n    tag: 'button',\n    \"class\": 'as-button-array-item',\n    child: {\n      text: 'null'\n    }\n  });\n\n  button.on('click', this.eventHandler.clickItem.bind(this, button));\n  return button;\n};\n\nButtonArray.prototype._requestButton = function (items) {\n  var button;\n\n  if (this._pool.length > 0) {\n    button = this._pool.pop();\n  } else {\n    button = this._newButton();\n  }\n\n  return button;\n};\n\nButtonArray.prototype._assignButton = function (button, data) {\n  button._data = data;\n  button.childNodes[0].data = data.text;\n};\n\nButtonArray.prototype._releaseButton = function (button) {\n  this._pool.push(button);\n};\n\nButtonArray.prototype._getFullFormat = function (item) {\n  var res = {};\n\n  if (typeof item == 'string' || typeof item == 'number' || typeof item == 'boolean' || item === null || item === undefined) {\n    res.ident = item;\n    res.value = item;\n    res.text = item + '';\n  } else if (item && _typeof(item) == 'object') {\n    res.value = item.value;\n    res.ident = res.value + '';\n    res.text = item.text;\n  }\n\n  return res;\n};\n\nButtonArray.property = {};\n/**\r\n * @type {ButtonArray}\r\n */\n\nButtonArray.property.items = {\n  set: function set(items) {\n    items = items || [];\n    this._items = items;\n    var child;\n\n    while (this.childNodes.length > items.length) {\n      child = this.lastChild;\n\n      this._releaseButton(child);\n\n      this.removeChild(child);\n    }\n\n    while (this.childNodes.length < items.length) {\n      this.addChild(this._requestButton());\n    }\n\n    var item;\n\n    for (var i = 0; i < items.length; ++i) {\n      item = this._getFullFormat(items[i]);\n\n      this._assignButton(this.childNodes[i], item);\n\n      this._dict[item.ident] = {\n        elt: this.childNodes[i],\n        data: item\n      };\n    }\n\n    if (items.length > 0) {\n      if (!this._dict[this._value + '']) {\n        this._value = this._getFullFormat(items[0]).value;\n      }\n    }\n\n    this.value = this._value;\n  },\n  get: function get() {\n    return this._items;\n  }\n};\nButtonArray.property.value = {\n  set: function set(value) {\n    this._value = value;\n    this._lastValue = this._value;\n\n    if (this.$lastActiveBtn) {\n      this.$lastActiveBtn.removeClass('as-active');\n      this.$lastActiveBtn = null;\n    }\n\n    var hodler = this._dict[value + ''];\n\n    if (hodler) {\n      hodler.elt.addClass('as-active');\n      this.$lastActiveBtn = hodler.elt;\n    }\n  },\n  get: function get() {\n    return this._value;\n  }\n};\nButtonArray.eventHandler = {};\n\nButtonArray.eventHandler.clickItem = function (item, event) {\n  if (this._lastValue != item._data.value) {\n    this.value = item._data.value;\n    this.emit('change', {\n      target: this,\n      value: this.value,\n      type: 'change'\n    }, this);\n  }\n};\n\n_ACore[\"default\"].install(ButtonArray);\n\nvar _default = ButtonArray;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/ButtonArray.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/ButtonRange.js":
/*!****************************************************!*\
  !*** ./node_modules/absol-acomp/js/ButtonRange.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/buttonrange.css */ \"./node_modules/absol-acomp/css/buttonrange.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _ButtonArray = _interopRequireDefault(__webpack_require__(/*! ./ButtonArray */ \"./node_modules/absol-acomp/js/ButtonArray.js\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\nvar ChevronLeft = '<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" id=\"Layer_1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 410.258 410.258\" style=\"enable-background:new 0 0 410.258 410.258;\" xml:space=\"preserve\">\\n' + '<polygon points=\"298.052,24 266.052,0 112.206,205.129 266.052,410.258 298.052,386.258 162.206,205.129 \"/>\\n' + '</svg>';\nvar ChevronRight = '<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\\n' + '\\t viewBox=\"0 0 410.258 410.258\" style=\"enable-background:new 0 0 410.258 410.258;\" xml:space=\"preserve\">\\n' + '<polygon points=\"144.206,0 112.206,24 248.052,205.129 112.206,386.258 144.206,410.258 298.052,205.129 \"/>\\n' + '</svg>';\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction ButtonRange() {\n  this._dict = {};\n  this._pool = [];\n  this._items = [];\n  this.$lastActiveBtn = null;\n  this._value = undefined;\n  this._lastValue = this._value;\n  this.$scroller = $('.as-button-range-scroller', this).on('wheel', this.eventHandler.wheel);\n  this.$prevBtn = $('.as-button-range-left-btn', this).on('click', this.prevValue.bind(this));\n  this.$nextBtn = $('.as-button-range-right-btn', this).on('click', this.nextValue.bind(this));\n  this._scrollTimeout = -1;\n  this._scrollToSelected = this._scrollToSelected.bind(this);\n  this.$attachhook = $('attachhook', this).on('error', this.eventHandler.attached);\n  this.autoWidth = false;\n}\n\nButtonRange.tag = 'buttonrange';\n\nButtonRange.render = function () {\n  return _({\n    extendEvent: ['change'],\n    \"class\": 'as-button-range',\n    child: [{\n      \"class\": 'as-button-range-scroller'\n    }, {\n      \"class\": 'as-button-range-left-ctn',\n      child: {\n        tag: 'button',\n        \"class\": 'as-button-range-left-btn',\n        child: ChevronLeft\n      }\n    }, {\n      \"class\": 'as-button-range-right-ctn',\n      child: {\n        tag: 'button',\n        \"class\": 'as-button-range-right-btn',\n        child: ChevronRight\n      }\n    }, 'attachhook']\n  });\n};\n\nButtonRange.prototype._updateUnderlinePosition = function () {\n  if (!this.$lastActiveBtn) return;\n  var scrollerFirstBound = this.$scroller.firstChild.getBoundingClientRect();\n  if (scrollerFirstBound.width === 0) return;\n  var activeBound = this.$lastActiveBtn.getBoundingClientRect();\n  this.addStyle({\n    '--underline-left': activeBound.left - scrollerFirstBound.left + 'px',\n    '--underline-width': activeBound.width + 'px'\n  });\n};\n\nButtonRange.prototype.updateSize = function () {\n  if (this.autoWidth) {\n    if (this.$scroller.childNodes.length > 0) {\n      var left = this.$scroller.firstChild.getBoundingClientRect().left;\n      var right = this.$scroller.lastChild.getBoundingClientRect().right;\n\n      if (left < right) {\n        var fontSize = this.getFontSize() || 14;\n        this.addStyle('width', (right - left + 2) / fontSize + 2 + 'em');\n      }\n    }\n  }\n\n  this._updateUnderlinePosition();\n\n  this._scrollToSelected();\n};\n\nButtonRange.prototype._newButton = function () {\n  var button = _({\n    tag: 'button',\n    \"class\": 'as-button-range-item',\n    child: {\n      text: 'null'\n    }\n  });\n\n  button.on('click', this.eventHandler.clickItem.bind(this, button));\n  return button;\n};\n\nButtonRange.prototype._requestButton = function (items) {\n  var button;\n\n  if (this._pool.length > 0) {\n    button = this._pool.pop();\n  } else {\n    button = this._newButton();\n  }\n\n  return button;\n};\n\nButtonRange.prototype._assignButton = function (button, data) {\n  button._data = data;\n  button.childNodes[0].data = data.text;\n};\n\nButtonRange.prototype._releaseButton = function (button) {\n  this._pool.push(button);\n};\n\nButtonRange.prototype._requireButton = function (n) {\n  var child;\n\n  while (this.$scroller.childNodes.length > n) {\n    child = this.$scroller.lastChild;\n\n    this._releaseButton(child);\n\n    this.$scroller.removeChild(child);\n  }\n\n  while (this.$scroller.childNodes.length < n) {\n    this.$scroller.addChild(this._requestButton());\n  }\n};\n\nButtonRange.prototype._assignButtonList = function (items) {\n  var item;\n\n  for (var i = 0; i < items.length; ++i) {\n    item = this._getFullFormat(items[i]);\n\n    this._assignButton(this.$scroller.childNodes[i], item);\n\n    this._dict[item.ident] = {\n      elt: this.$scroller.childNodes[i],\n      data: item\n    };\n  }\n};\n\nButtonRange.prototype._scrollToSelected = function () {\n  if (this._scrollTimeout >= 0) return;\n  if (!this.$lastActiveBtn) return;\n  var scrollerBound = this.$scroller.getBoundingClientRect();\n  if (scrollerBound.width === 0) return;\n  var activeBound = this.$lastActiveBtn.getBoundingClientRect();\n  var dx, speed;\n\n  if (activeBound.left < scrollerBound.left - 1) {\n    dx = activeBound.left - scrollerBound.left;\n    if (dx < -500) dx = -500;\n    speed = Math.sqrt(-dx * 2 + 4);\n    this.$scroller.scrollLeft -= speed;\n  } else if (activeBound.right - 1 > scrollerBound.right) {\n    dx = activeBound.right - scrollerBound.right;\n    if (dx > 500) dx = 500;\n    speed = Math.sqrt(dx * 2 + 4);\n    this.$scroller.scrollLeft += speed;\n  } else {\n    return;\n  }\n\n  var thisBR = this;\n  this._scrollTimeout = setTimeout(function () {\n    thisBR._scrollTimeout = -1;\n\n    thisBR._scrollToSelected();\n  }, 20);\n};\n\nButtonRange.prototype.nextValue = function (userAction) {\n  var currentIndex = this._findActiveIndex();\n\n  var nextIndex;\n  var nextValue;\n\n  if (currentIndex < 0) {\n    nextIndex = 0;\n  } else {\n    nextIndex = Math.min(this._items.length - 1, currentIndex + 1);\n  }\n\n  if (nextIndex >= 0) {\n    nextValue = this._getFullFormat(this._items[nextIndex]).value;\n    this.value = nextValue;\n    if (userAction) this.notifyChange();\n  }\n};\n\nButtonRange.prototype.prevValue = function (userAction) {\n  var currentIndex = this._findActiveIndex();\n\n  var prevIndex;\n  var prevValue;\n\n  if (currentIndex < 0) {\n    prevIndex = 0;\n  } else {\n    prevIndex = Math.max(0, currentIndex - 1);\n  }\n\n  if (prevIndex >= 0 && prevIndex < this._items.length && prevIndex != currentIndex) {\n    prevValue = this._getFullFormat(this._items[prevIndex]).value;\n    this.value = prevValue;\n    if (userAction) this.notifyChange();\n  }\n};\n\nButtonRange.prototype._findActiveIndex = function () {\n  var item;\n  var value = this._value;\n\n  for (var i = 0; i < this._items.length; ++i) {\n    item = this._items[i];\n    if (item === value || item && item.value === value) return i;\n  }\n\n  return -1;\n};\n\nButtonRange.prototype._getFullFormat = function (item) {\n  var res = {};\n\n  if (typeof item == 'string' || typeof item == 'number' || typeof item == 'boolean' || item === null || item === undefined) {\n    res.ident = item + '';\n    res.value = item;\n    res.text = item + '';\n  } else if (item && _typeof(item) == 'object') {\n    res.value = item.value;\n    res.ident = res.value + '';\n    res.text = item.text;\n  }\n\n  return res;\n};\n\nButtonRange.prototype.notifyChange = function () {\n  this.emit('change', {\n    target: this,\n    value: this.value,\n    type: 'change'\n  }, this);\n};\n\nButtonRange.property = {};\n/**\r\n * @type {ButtonRange}\r\n */\n\nButtonRange.property.items = {\n  set: function set(items) {\n    items = items || [];\n    this._items = items;\n\n    this._requireButton(items.length);\n\n    this._assignButtonList(items);\n\n    if (items.length > 0) {\n      if (!this._dict[this._value + '']) {\n        this._value = this._getFullFormat(items[0]).value;\n      }\n    }\n\n    this.value = this._value;\n    this.updateSize();\n  },\n  get: function get() {\n    return this._items;\n  }\n};\nButtonRange.property.value = {\n  set: function set(value) {\n    this._value = value;\n    this._lastValue = this._value;\n\n    if (this.$lastActiveBtn) {\n      this.$lastActiveBtn.removeClass('as-active');\n      this.$lastActiveBtn = null;\n    }\n\n    var hodler = this._dict[value + ''];\n\n    if (hodler) {\n      hodler.elt.addClass('as-active');\n      this.$lastActiveBtn = hodler.elt;\n    }\n\n    var activeIndex = this._findActiveIndex();\n\n    this.$prevBtn.disabled = activeIndex === 0;\n    this.$nextBtn.disabled = activeIndex === this._items.length - 1;\n\n    this._updateUnderlinePosition();\n\n    this._scrollToSelected();\n  },\n  get: function get() {\n    return this._value;\n  }\n};\nButtonRange.eventHandler = {};\n\nButtonRange.eventHandler.clickItem = function (item, event) {\n  if (this._lastValue != item._data.value) {\n    this.value = item._data.value;\n    this.notifyChange();\n  }\n};\n\nButtonRange.eventHandler.attached = function () {\n  if (this.style.width === 'auto') this.autoWidth = true;\n\n  _Dom[\"default\"].addToResizeSystem(this.$attachHook);\n\n  this.updateSize();\n};\n\nButtonRange.eventHandler.wheel = function (event) {\n  var prevLeft = this.$scroller.scrollLeft;\n\n  if (event.deltaY < 0) {\n    this.$scroller.scrollLeft -= 100;\n  } else if (event.deltaY > 0) {\n    this.$scroller.scrollLeft += 100;\n  }\n\n  if (prevLeft !== this.$scroller.scrollLeft) event.preventDefault();\n};\n\n_ACore[\"default\"].install(ButtonRange);\n\nvar _default = ButtonRange;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/ButtonRange.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/CPUViewer.js":
/*!**************************************************!*\
  !*** ./node_modules/absol-acomp/js/CPUViewer.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\n__webpack_require__(/*! ../css/cpuviewer.css */ \"./node_modules/absol-acomp/css/cpuviewer.css\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction CPUViewer() {\n  /***\r\n   *\r\n   * @type {HTMLCanvasElement}\r\n   */\n  this.$canvas = (0, _ACore.$)('canvas', this);\n  this.ctx = this.$canvas.getContext('2d');\n  this.offsetTime = 0;\n  this.inv = -1;\n  this.usage = Array(120).fill(0);\n  this.holdStart = 0;\n  this.holdTime = 0;\n  this.logOffset = 0;\n  this.counter = 0;\n  this['tick'] = this.tick.bind(this);\n}\n\nCPUViewer.tag = 'CPUViewer'.toLowerCase();\n\nCPUViewer.render = function () {\n  return (0, _ACore._)({\n    \"class\": 'as-cpu-viewer',\n    child: {\n      tag: 'canvas',\n      attr: {\n        width: '120px',\n        height: '50px'\n      }\n    }\n  });\n};\n\nCPUViewer.prototype.start = function () {\n  if (this.inv < 0) {\n    this.offsetTime = new Date().getTime();\n    setInterval(this.tick, 250);\n  }\n};\n\nCPUViewer.prototype.stop = function () {\n  if (this.inv > 0) {\n    clearInterval(this.inv);\n    this.inv = -1;\n  }\n};\n\nCPUViewer.prototype.tick = function () {\n  while (this.holdTime > 250) {\n    this.holdTime -= 250;\n    this.usage.push(100);\n  }\n\n  this.usage.push(this.holdTime * 100 / 250);\n\n  while (this.usage.length > 120) {\n    this.usage.shift();\n  }\n\n  this.ctx.fillStyle = 'black';\n  this.ctx.fillRect(0, 0, 120, 50);\n  var y;\n  this.ctx.fillStyle = 'yellow';\n\n  for (var x = 0; x < this.usage.length; ++x) {\n    y = this.usage[x] / 2;\n    this.ctx.fillRect(x, 50 - y, 1, y);\n  }\n\n  var now = new Date().getTime();\n  this.logOffset = now;\n  this.holdStart = now;\n  this.holdTime = 0;\n};\n\nCPUViewer.prototype.hold = function () {\n  if (this.counter === 0) {\n    this.holdStart = new Date().getTime();\n  }\n\n  this.counter++;\n};\n\nCPUViewer.prototype.release = function () {\n  if (this.counter <= 0) return;\n  this.counter--;\n\n  if (this.counter === 0) {\n    this.holdTime += new Date().getTime() - this.holdStart;\n  }\n};\n/***\r\n *\r\n * @type {CPUViewer}\r\n */\n\n\nCPUViewer.instance = null;\nCPUViewer.state = 'NOT_INIT';\n\nCPUViewer.start = function () {\n  if (!this.instance) {\n    this.instance = (0, _ACore._)('cpuviewer');\n    this.state = \"NOT_ATTACHED\";\n  }\n\n  if (this.state === \"NOT_ATTACHED\") {\n    this.state = \"RUNNING\";\n\n    _Dom[\"default\"].documentReady.then(function () {\n      document.body.appendChild(this.instance);\n    }.bind(this));\n  }\n\n  this.instance.start();\n\n  CPUViewer.hold = function () {\n    this.instance.hold();\n  };\n\n  CPUViewer.release = function () {\n    this.instance.release();\n  };\n};\n\nCPUViewer.stop = function () {\n  if (!this.instance) return;\n  if (this.state !== \"RUNNING\") return;\n  this.instance.stop();\n  this.instance.remove();\n  this.state = 'NOT_ATTACHED';\n};\n\nCPUViewer.hold = function () {};\n\nCPUViewer.release = function () {};\n\n_ACore[\"default\"].install(CPUViewer);\n\nvar _default = CPUViewer;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/CPUViewer.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/CalendarInput.js":
/*!******************************************************!*\
  !*** ./node_modules/absol-acomp/js/CalendarInput.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.OldCalendarInput = OldCalendarInput;\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/calendarinput.css */ \"./node_modules/absol-acomp/css/calendarinput.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _datetime = __webpack_require__(/*! absol/src/Time/datetime */ \"./node_modules/absol/src/Time/datetime.js\");\n\nvar _ChromeCalendar = _interopRequireDefault(__webpack_require__(/*! ./ChromeCalendar */ \"./node_modules/absol-acomp/js/ChromeCalendar.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/**\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction CalendarInput() {\n  var thisCI = this;\n  this.$input = $('input', this);\n  this._value = null;\n  this._quickOption = _ChromeCalendar[\"default\"].showWhenClick(this, {\n    minLimitDate: this.minLimitDate || this.minDateLimit,\n    maxLimitDate: this.maxLimitDate || this.maxDateLimit,\n    selectedDates: [new Date()]\n  }, 'auto', function (value) {\n    thisCI._value = value;\n    thisCI.$input.value = thisCI.formatDateString(value);\n    thisCI._quickOption.calendarProps.selectedDates = [value]; //change new option\n\n    thisCI.emit('change', {\n      target: thisCI,\n      value: value\n    }, thisCI);\n  });\n\n  _OOP[\"default\"].drillProperty(this, this._quickOption.calendarProps, {\n    minLimitDate: 'minLimitDate',\n    maxLimitDate: 'maxLimitDate',\n    minDateLimit: 'minLimitDate',\n    maxDateLimit: 'maxLimitDate'\n  });\n}\n\nCalendarInput.tag = 'CalendarInput'.toLowerCase();\n\nCalendarInput.render = function () {\n  return _({\n    extendEvent: ['change'],\n    \"class\": 'absol-calendar-input',\n    child: 'input[type=\"text\"][readonly=\"true\"][value=\"dd/mm/yyyy\"]'\n  });\n};\n\nCalendarInput.property = {};\nCalendarInput.property.value = {\n  set: function set(value) {\n    if (value === null || value === undefined) {\n      this.$input.value = this.formatDateString(value);\n      this._quickOption.calendarProps.selectedDates = [];\n      this._value = value;\n      this._quickOption.calendarProps.selectedDates = [new Date()];\n    } else {\n      if (typeof value == 'number') value = new Date(value);\n      this._value = value;\n      this.$input.value = this.formatDateString(value);\n      this._quickOption.calendarProps.selectedDates = [value];\n    }\n  },\n  get: function get() {\n    return this._value;\n  }\n};\nCalendarInput.property.disabled = {\n  set: function set(value) {\n    this.$input.disabled = !!value;\n\n    if (value) {\n      this.addClass('absol-disabled');\n    } else {\n      this.removeClass('absol-disabled');\n    }\n  },\n  get: function get() {\n    return this.$input.disabled;\n  }\n};\nCalendarInput.property.readOnly = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-read-only');\n    } else {\n      this.removeClass('as-read-only');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-read-only');\n  }\n};\nCalendarInput.attribute = {\n  disabled: {\n    set: function set(value) {\n      this.$input.attr('disabled', value);\n      if (this.$input.disabled) this.addClass('absol-disabled');\n    },\n    get: function get() {\n      return this.$input.attr('disabled');\n    },\n    remove: function remove() {\n      this.$input.attr('disabled', undefined);\n      this.removeClass('absol-disabled');\n    }\n  }\n};\nCalendarInput.property.dateToString = {\n  set: function set(value) {\n    this._dateToString = value;\n    this.$input.value = this.formatDateString(this.value);\n  },\n  get: function get() {\n    return this._dateToString;\n  }\n};\n\nCalendarInput.prototype.formatDateString = function (date) {\n  if (!date) {\n    return {\n      'undefined': 'dd/mm/yyyy',\n      'function': '--/--/--',\n      'object': 'dd/mm/yyyy',\n      'string': _typeof(this.dateToString)\n    }[_typeof(this.dateToString)] || '--/--/--';\n  }\n\n  if (!this.dateToString) {\n    return (0, _datetime.formatDateString)(date);\n  } else if (typeof this.dateToString == 'string') {\n    return (0, _datetime.formatDateString)(date, this.dateToString);\n  } else if (typeof this.dateToString == 'function') {\n    return this.dateToString(date);\n  }\n};\n\n_ACore[\"default\"].install(CalendarInput);\n\nfunction OldCalendarInput() {}\n\nOldCalendarInput.tag = 'calendar-input';\n\nOldCalendarInput.render = function (data) {\n  return _({\n    tag: 'calendarinput',\n    extendEvent: 'changed',\n    props: data,\n    on: {\n      change: function change(ev) {\n        this.emit('changed', ev.value);\n      }\n    }\n  });\n};\n\n_ACore[\"default\"].install(OldCalendarInput);\n\nvar _default = CalendarInput;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/CalendarInput.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/CheckBox.js":
/*!*************************************************!*\
  !*** ./node_modules/absol-acomp/js/CheckBox.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/checkbox.css */ \"./node_modules/absol-acomp/css/checkbox.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nvar _CheckBoxInput = _interopRequireDefault(__webpack_require__(/*! ./CheckBoxInput */ \"./node_modules/absol-acomp/js/CheckBoxInput.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _EventEmitter = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\nvar $$ = _ACore[\"default\"].$$;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction CheckBox() {\n  this.defineEvent('change');\n  /***\r\n   *\r\n   * @type {CheckboxInput}\r\n   */\n\n  this.$input = $('checkboxinput', this).on('change', this.notifyChange.bind(this));\n  this.$labels = $$('span', this);\n  this.on('click', this.eventHandler.click);\n\n  _OOP[\"default\"].drillProperty(this, this.$input, ['checked']);\n\n  _OOP[\"default\"].drillProperty(this, this.$input, ['minus']);\n  /***\r\n   * @type {boolean}\r\n   * @name checked\r\n   * @memberOf CheckBox#\r\n   */\n\n  /***\r\n   * @type {boolean}\r\n   * @name minus\r\n   * @memberOf CheckBox#\r\n   */\n\n}\n\nCheckBox.tag = 'checkbox';\n\nCheckBox.render = function () {\n  return _({\n    \"class\": ['absol-checkbox', 'as-no-label'],\n    child: [{\n      tag: 'span',\n      \"class\": ['absol-checkbox-label', 'as-left'],\n      child: {\n        text: ''\n      }\n    }, 'checkboxinput', {\n      tag: 'span',\n      \"class\": ['absol-checkbox-label', 'as-right'],\n      child: {\n        text: ''\n      }\n    }]\n  });\n};\n\nCheckBox.prototype.notifyChange = function () {\n  this.emit('change', {\n    type: 'change',\n    checked: this.checked,\n    target: this\n  }, this);\n}; //v, labelText, checked\n\n\nCheckBox.attribute = {\n  checked: {\n    set: function set(value) {\n      if (value === 'false' || value == null) {\n        this.checked = false;\n      } else {\n        this.checked = true;\n      }\n    },\n    get: function get() {\n      return this.checked ? 'true' : 'false';\n    },\n    remove: function remove() {\n      this.checked = false;\n    }\n  },\n  disabled: {\n    set: function set(value) {\n      this.disabled = !(value === 'false' || value === null);\n    },\n    get: function get() {\n      return this.disabled ? 'true' : 'false';\n    },\n    remove: function remove() {\n      this.disabled = false;\n    }\n  },\n  readonly: {\n    set: function set(value) {\n      this.readOnly = !(value === 'false' || value === null);\n    },\n    get: function get() {\n      return this.readOnly ? 'true' : 'false';\n    }\n  }\n};\nCheckBox.property = {};\nCheckBox.property.text = {\n  get: function get() {\n    return this._text;\n  },\n  set: function set(value) {\n    value = value || '';\n\n    if (value.length === 0) {\n      this.addClass('as-no-label');\n    } else {\n      this.removeClass('as-no-label');\n    }\n\n    this._text = value;\n    this.$labels[0].firstChild.data = value;\n    this.$labels[1].firstChild.data = value;\n  }\n};\nCheckBox.property.disabled = {\n  get: function get() {\n    return this.$input.disabled;\n  },\n  set: function set(value) {\n    value = !!value;\n    this.$input.disabled = value;\n\n    if (value) {\n      this.addClass('as-disabled');\n    } else {\n      this.removeClass('as-disabled');\n    }\n  }\n};\nCheckBox.property.readOnly = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-read-only');\n      this.$input.readOnly = true;\n    } else {\n      this.addClass('as-read-only');\n      this.$input.readOnly = false;\n    }\n  },\n  get: function get() {\n    return this.$input.readOnly;\n  }\n};\n/***\r\n *\r\n * @type {{}|CheckBox}\r\n */\n\nCheckBox.eventHandler = {};\n\nCheckBox.eventHandler.click = function (event) {\n  if (!_EventEmitter[\"default\"].hitElement(this.$input, event) && !this.readOnly) {\n    this.$input.click();\n  }\n};\n\n_ACore[\"default\"].install(CheckBox);\n\nvar _default = CheckBox;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/CheckBox.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/CheckBoxInput.js":
/*!******************************************************!*\
  !*** ./node_modules/absol-acomp/js/CheckBoxInput.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/checkboxinput.css */ \"./node_modules/absol-acomp/css/checkboxinput.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n\nvar tickIcon = _(['<svg class=\"as-checkbox-input-check-icon\" width=\"18px\" height=\"18px\" version=\"1.1\" viewBox=\"0 0 18 18\" xmlns=\"http://www.w3.org/2000/svg\" >', ' <g transform=\"translate(0 -279)\">', '  <path class=\"bound\" d=\"m3 279.69h12c1.3434 0.0111 2.3298 1.5259 2.3131 2.4775v11.836c0.05005 0.89373-1.1834 2.2964-2.3131 2.3131h-12c-0.82692 0.0166-2.3131-1.1834-2.3131-2.3131v-12.237c0.0022374-1.171 0.3775-2.0759 2.3131-2.0759z\" style=\"stroke-linejoin:round; stroke-width: 1\"/>', '  <path class=\"tick\" d=\"m3.1656 288.66c-0.10159 0.0612-0.11743 0.12506-0.12993 0.18899l3.7473 4.3467c0.066638 0.0459 0.11813 0.0263 0.16832 1e-3 0 0 1.7699-4.2166 4.7251-7.4568 1.4783-1.6208 3.2406-3.3659 3.2406-3.3659 0.0054-0.14125-0.10946-0.15807-0.1754-0.22551 0 0-2.5832 1.6364-4.7524 3.8336-1.8697 1.8939-3.6666 4.4016-3.6666 4.4016z\"/>', '  <path class=\"minus\" d=\"m4 287 h10 v2 h-10z\"/>', ' </g>', '</svg>'].join(''));\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\n\nfunction CheckboxInput() {\n  this.$input = $('input', this).on('change', this.notifyChange.bind(this));\n  this.checked = false;\n  this.disabled = false;\n  this.readOnly = false;\n  this.on('click', this.eventHandler.click);\n  this.onchange = null;\n}\n\nCheckboxInput.tag = \"CheckboxInput\".toLowerCase();\n\nCheckboxInput.render = function (data) {\n  return _({\n    tag: 'label',\n    extendEvent: 'change',\n    \"class\": 'as-checkbox-input',\n    child: [{\n      elt: data && data.$input,\n      tag: 'input',\n      \"class\": 'as-checkbox-input-value',\n      attr: {\n        type: 'checkbox'\n      }\n    }, tickIcon.cloneNode(true)]\n  });\n};\n/***\r\n * as normal, change event will be fired when checkbox change by system\r\n */\n\n\nCheckboxInput.prototype.notifyChange = function () {\n  var event = {\n    checked: this.checked\n  };\n  this.emit('change', event, this);\n};\n\nCheckboxInput.prototype._updateCheckedClass = function () {\n  if (this.checked) {\n    this.addClass('as-checked');\n  } else {\n    this.removeClass('as-checked');\n  }\n};\n\nCheckboxInput.property = {};\nCheckboxInput.property.disabled = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-disabled');\n    } else {\n      this.removeClass('as-disabled');\n    }\n\n    this.$input.disabled = !!value;\n  },\n  get: function get() {\n    return this.$input.disabled;\n  }\n};\nCheckboxInput.property.readOnly = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-read-only');\n    } else {\n      this.removeClass('as-read-only');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-read-only');\n  }\n};\n/***\r\n *\r\n * @type {CheckboxInput}\r\n */\n\nCheckboxInput.property.checked = {\n  set: function set(value) {\n    this.$input.checked = !!value;\n\n    this._updateCheckedClass();\n  },\n  get: function get() {\n    return this.$input.checked;\n  }\n};\n/***\r\n *\r\n * @type {CheckboxInput}\r\n */\n\nCheckboxInput.property.minus = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-has-minus');\n    } else {\n      this.removeClass('as-has-minus');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-has-minus');\n  }\n};\nCheckboxInput.attribute = {\n  checked: {\n    set: function set(value) {\n      if (value === 'false' || value === null) {\n        this.checked = false;\n      } else {\n        this.checked = true;\n      }\n    },\n    get: function get() {\n      return this.checked ? 'true' : 'false';\n    },\n    remove: function remove() {\n      this.checked = false;\n    }\n  },\n  disabled: {\n    set: function set(value) {\n      if (value === 'false' || value === null) {\n        this.disabled = false;\n      } else {\n        this.disabled = true;\n      }\n    },\n    get: function get() {\n      return this.disabled ? 'true' : 'false';\n    },\n    remove: function remove() {\n      this.disabled = false;\n    }\n  }\n};\n/***\r\n *\r\n * @type {CheckboxInput}\r\n */\n\nCheckboxInput.eventHandler = {};\n\nCheckboxInput.eventHandler.click = function (event) {\n  if (this.readOnly) {\n    event.preventDefault();\n  }\n\n  this._updateCheckedClass();\n};\n\n_ACore[\"default\"].install(CheckboxInput);\n\nCheckboxInput.autoReplace = function () {\n  var placeHolders = Array.prototype.slice.call(document.getElementsByTagName(this.tag));\n  var ph;\n  var attOfPH;\n  var attrs;\n  var style;\n  var classList;\n  var attNode;\n  var attrName, attrValue;\n  var props;\n\n  for (var i = 0; i < placeHolders.length; ++i) {\n    ph = placeHolders[i];\n    attOfPH = ph.attributes;\n    classList = [];\n    style = {};\n    attrs = {};\n    props = {};\n\n    for (var j = 0; j < attOfPH.length; ++j) {\n      attNode = attOfPH[j];\n      attrName = attNode.nodeName;\n      attrValue = attNode.nodeValue;\n\n      if (attrName == 'style') {\n        attrValue.trim().split(';').reduce(function (style, prop) {\n          var p = prop.split(':');\n\n          if (p.length == 2) {\n            style[p[0].trim()] = p[1].trim();\n          }\n\n          return style;\n        }, style);\n      } else if (attrName == 'class') {\n        classList = attrValue.trim().split(/\\s+/);\n      } else if (attrName == 'onchange') {\n        props.onchange = new Function('event', 'sender', attrValue);\n      } else {\n        attrs[attrName] = attrValue;\n      }\n    }\n\n    var newElt = _({\n      tag: this.tag,\n      attr: attrs,\n      \"class\": classList,\n      style: style,\n      props: props\n    });\n\n    $(ph).selfReplace(newElt);\n  }\n};\n\nCheckboxInput.initAfterLoad = function () {\n  _Dom[\"default\"].documentReady.then(function () {\n    CheckboxInput.autoReplace();\n  });\n};\n\nvar _default = CheckboxInput;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/CheckBoxInput.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/CheckListBox.js":
/*!*****************************************************!*\
  !*** ./node_modules/absol-acomp/js/CheckListBox.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.CheckListBox = CheckListBox;\nexports[\"default\"] = void 0;\nexports.makeItem = makeItem;\nexports.releaseItem = releaseItem;\nexports.requireItem = requireItem;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Follower = _interopRequireDefault(__webpack_require__(/*! ./Follower */ \"./node_modules/absol-acomp/js/Follower.js\"));\n\nvar _SelectListBox = _interopRequireWildcard(__webpack_require__(/*! ./SelectListBox */ \"./node_modules/absol-acomp/js/SelectListBox.js\"));\n\nvar _CheckListItem = _interopRequireDefault(__webpack_require__(/*! ./CheckListItem */ \"./node_modules/absol-acomp/js/CheckListItem.js\"));\n\n__webpack_require__(/*! ../css/checklistbox.css */ \"./node_modules/absol-acomp/css/checklistbox.css\");\n\nvar _noop = _interopRequireDefault(__webpack_require__(/*! absol/src/Code/noop */ \"./node_modules/absol/src/Code/noop.js\"));\n\nvar _LanguageSystem = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/LanguageSystem */ \"./node_modules/absol/src/HTML5/LanguageSystem.js\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _Dom = __webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\");\n\nvar _stringGenerate = __webpack_require__(/*! absol/src/String/stringGenerate */ \"./node_modules/absol/src/String/stringGenerate.js\");\n\nvar _ListSearchMaster = _interopRequireDefault(__webpack_require__(/*! ./list/ListSearchMaster */ \"./node_modules/absol-acomp/js/list/ListSearchMaster.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _DomSignal = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/DomSignal */ \"./node_modules/absol/src/HTML5/DomSignal.js\"));\n\nvar _TextMeasurement = _interopRequireDefault(__webpack_require__(/*! ./tool/TextMeasurement */ \"./node_modules/absol-acomp/js/tool/TextMeasurement.js\"));\n\nvar _ResizeSystem = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/ResizeSystem */ \"./node_modules/absol/src/HTML5/ResizeSystem.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar itemPool = [];\n\nfunction makeItem() {\n  return (0, _ACore._)({\n    tag: _CheckListItem[\"default\"],\n    on: {\n      select: function select(event) {\n        this.$parent.eventHandler.itemSelect(this, event);\n      }\n    }\n  });\n}\n\nfunction requireItem($parent) {\n  var item;\n\n  if (itemPool.length > 0) {\n    item = itemPool.pop();\n  } else {\n    item = makeItem();\n  }\n\n  item.$parent = $parent;\n  return item;\n}\n\nfunction releaseItem(item) {\n  item.$parent = null;\n  item.selected = false;\n  itemPool.push(item);\n}\n\nfunction fillItemToPage($parent, $page, n) {\n  while ($page.childNodes.length > n) {\n    releaseItem($page.lastChild);\n    $page.removeChild($page.lastChild);\n  }\n\n  while ($page.childNodes.length < n) {\n    $page.addChild(requireItem($parent));\n  }\n}\n\nvar mTextMeasurement = null;\n\nvar measureTextWidth = function measureTextWidth(text) {\n  if (!mTextMeasurement) {\n    mTextMeasurement = new _TextMeasurement[\"default\"]();\n    mTextMeasurement.compute('14px arial');\n  }\n\n  return mTextMeasurement.measureTextWidth(text, '14px arial');\n};\n/***\r\n * @extends SelectListBox\r\n * @constructor\r\n */\n\n\nfunction CheckListBox() {\n  this._items = [];\n  this._valueDict = {};\n  this.itemHolders = [];\n  this._holderDict = {};\n  this._estimateWidth = 100;\n  this.$scroller = (0, _ACore.$)('.as-select-list-box-scroller', this);\n  this.$content = (0, _ACore.$)('.as-select-list-box-content', this);\n  this.$pages = (0, _ACore.$$)('.as-select-list-box-page', this);\n  this.$searchInput = (0, _ACore.$)('searchtextinput', this).on('stoptyping', this.eventHandler.searchModify);\n  this.pagingCtrl = new CLPagingController(this);\n  this.searchMaster = new _ListSearchMaster[\"default\"]();\n\n  this._initDomHook();\n\n  this._initFooter();\n\n  this.domSignal.on('viewListAtValue', this.viewListAtValue.bind(this));\n  /***\r\n   * @name selectedAll\r\n   * @type {boolean}\r\n   * @memberOf CheckListBox#\r\n   */\n}\n\nCheckListBox.tag = 'CheckListBox'.toLowerCase();\n\nCheckListBox.render = function () {\n  return (0, _ACore._)({\n    tag: _Follower[\"default\"].tag,\n    extendEvent: ['change', 'cancel', 'close'],\n    attr: {\n      tabindex: 0\n    },\n    \"class\": ['as-select-list-box', 'as-check-list-box'],\n    child: [{\n      \"class\": 'as-select-list-box-search-ctn',\n      child: 'searchtextinput'\n    }, {\n      \"class\": ['as-bscroller', 'as-select-list-box-scroller'],\n      child: [{\n        \"class\": 'as-select-list-box-content',\n        child: Array(3).fill('.as-select-list-box-page')\n      }]\n    }, {\n      \"class\": 'as-dropdown-box-footer',\n      child: [{\n        tag: 'checkbox',\n        \"class\": 'as-select-list-box-check-all',\n        props: {\n          checked: false,\n          text: _LanguageSystem[\"default\"].getText('txt_check_all') || _LanguageSystem[\"default\"].getText('txt_all') || 'Check All'\n        }\n      }, {\n        \"class\": 'as-dropdown-box-footer-right',\n        child: [{\n          tag: 'a',\n          \"class\": 'as-select-list-box-cancel-btn',\n          attr: {\n            'data-ml-key': 'txt_cancel'\n          }\n        }, {\n          tag: 'a',\n          \"class\": 'as-select-list-box-close-btn',\n          attr: {\n            'data-ml-key': 'txt_close'\n          }\n        }]\n      }]\n    }, 'attachhook.as-dom-signal'],\n    props: {\n      anchor: [1, 6, 2, 5]\n    }\n  });\n};\n\nObject.assign(CheckListBox.prototype, _SelectListBox[\"default\"].prototype);\nCheckListBox.property = {};\nCheckListBox.eventHandler = {};\nCheckListBox.prototype.footerMinWidth = 110;\n\nCheckListBox.prototype._initDomHook = function () {\n  var _this = this;\n\n  this.$domSignal = (0, _ACore.$)('attachhook.as-dom-signal', this);\n  this.domSignal = new _DomSignal[\"default\"](this.$domSignal);\n  this.domSignal.on('viewListAt', this.viewListAt.bind(this));\n  this.domSignal.on('viewListAtFirstSelected', this.viewListAtFirstSelected.bind(this));\n  this.domSignal.on('viewListAtCurrentScrollTop', this.viewListAtCurrentScrollTop.bind(this));\n  this.domSignal.on('updateCheckedAll', function () {\n    _this.$checkAll.checked = _this.selectedAll;\n  });\n};\n\nCheckListBox.prototype._initFooter = function () {\n  this.$checkAll = (0, _ACore.$)('.as-select-list-box-check-all', this).on('change', this.eventHandler.checkAllChange);\n  this.$cancelBtn = (0, _ACore.$)('.as-select-list-box-cancel-btn', this).on('click', this.eventHandler.clickCancelBtn);\n  this.$closeBtn = (0, _ACore.$)('.as-select-list-box-close-btn', this);\n  if (this.$closeBtn) //mobile ref\n    this.$closeBtn.on('click', this.eventHandler.clickCloseBtn);\n};\n\nCheckListBox.prototype.viewListAtFirstSelected = _noop[\"default\"];\n\nCheckListBox.prototype.viewListAtValue = function (value) {\n  if (!this.isDescendantOf(document.body)) {\n    this.domSignal.emit('viewListAtValue', value);\n  }\n\n  this.pagingCtrl.viewListAtValue(value);\n};\n\nCheckListBox.prototype.findItemsByValue = function (value) {\n  return this._holderDict[(0, _utils.keyStringOf)(value)];\n};\n\nCheckListBox.prototype.notifyChange = function (data) {\n  this.emit('change', Object.assign({\n    target: this,\n    type: 'change'\n  }, data), this);\n};\n\nCheckListBox.prototype.focus = _SelectListBox[\"default\"].prototype.focus;\nCheckListBox.property.values = {\n  set: function set(values) {\n    values = values || [];\n    var dict = values.reduce(function (ac, cr) {\n      var key = (0, _utils.keyStringOf)(cr);\n      ac[key] = cr;\n      return ac;\n    }, {});\n    this._valueDict = dict;\n    this.itemHolders.forEach(function visit(holder) {\n      holder.selected = holder.valueKey in dict;\n      if (holder.children) holder.children.forEach(visit);\n    });\n    this.pagingCtrl.updateSelected();\n    this.domSignal.emit('updateCheckedAll');\n  },\n  get: function get() {\n    return this.itemHolders.reduce(function visit(ac, holder) {\n      if (holder.selected && !holder.data.noSelect) ac.push(holder.data.value);\n      if (holder.children) holder.children.reduce(visit, ac);\n      return ac;\n    }, []);\n  }\n};\n\nCheckListBox.prototype.resetSearchState = function () {\n  this.$searchInput.value = '';\n  this.pagingCtrl.viewArr(this.itemHolders);\n};\n\nCheckListBox.property.enableSearch = _SelectListBox[\"default\"].property.enableSearch;\nCheckListBox.property.items = {\n  set: function set(items) {\n    var _this2 = this;\n\n    items = items || [];\n    items = (0, _utils.copySelectionItemArray)(items, {\n      removeNoView: true\n    });\n    this._items = items;\n    this.itemHolders = items.map(function (it) {\n      return new CLHolder(_this2, it);\n    });\n    var res = this.itemHolders.reduce(function visit(ac, cr) {\n      var textWidth = 3.5 * 14 + 1.75 * 14 * cr.level + 14 + measureTextWidth(cr.data.text + '') + 7 + 17;\n      if (cr.data.icon) textWidth += 32;\n      ac.textWidth = Math.max(ac.textWidth, textWidth);\n\n      if (cr.data.desc) {\n        ac.descWidth = Math.max(ac.descWidth, measureTextWidth(cr.data.desc + ''));\n      }\n\n      ac.dict[cr.valueKey] = ac.dict[cr.valueKey] || [];\n      ac.dict[cr.valueKey].push({\n        idx: ac.idx++,\n        item: cr.data,\n        holder: cr\n      });\n      if (cr.children) cr.children.reduce(visit, ac);\n      return ac;\n    }, {\n      idx: 0,\n      dict: {},\n      textWidth: 50,\n      descWidth: 0\n    });\n    this._holderDict = res.dict;\n    this._estimateWidth = res.textWidth + (res.descWidth ? res.descWidth + 30 : 0);\n    this.$scroller.scrollTop = 0;\n    this.pagingCtrl.viewArr(this.itemHolders);\n    this.searchMaster.transfer(this.itemHolders.map(function (it) {\n      return it.getSearchItem();\n    }));\n    this.domSignal.emit('updateCheckedAll');\n  },\n  get: function get() {\n    return (0, _utils.copySelectionItemArray)(this._items);\n  }\n};\nCheckListBox.property.selectedAll = {\n  get: function get() {\n    return this.itemHolders.length > 0 && this.itemHolders.every(function visit(holder) {\n      var res = holder.selected || holder.data.noSelect;\n\n      if (res && holder.children) {\n        res = holder.children.every(visit);\n      }\n\n      return res;\n    });\n  }\n};\n/***\r\n * @this CheckListBox\r\n * @param event\r\n */\n\nCheckListBox.eventHandler.checkAllChange = function (event) {\n  var _this3 = this;\n\n  var checked = this.$checkAll.checked;\n  var changed = false;\n\n  var visit = function visit(holder) {\n    var canCheck = checked && !holder.data.noSelect;\n\n    if (holder.selected !== canCheck) {\n      changed = true;\n      holder.selected = canCheck;\n    }\n\n    if (canCheck) {\n      _this3._valueDict[holder.valueKey] = holder.data.value;\n    } else {\n      delete _this3._valueDict[holder.valueKey];\n    }\n\n    if (holder.children) holder.children.forEach(visit);\n  };\n\n  this.itemHolders.forEach(visit);\n  this.pagingCtrl.updateSelected();\n\n  if (changed) {\n    this.notifyChange({\n      originalEvent: event.originalEvent || event.originEvent || event,\n      action: checked ? 'check_all' : \"uncheck_all\"\n    }, this);\n  }\n};\n/***\r\n * @this CheckListBox\r\n * @param itemElt\r\n * @param event\r\n */\n\n\nCheckListBox.eventHandler.itemSelect = function (itemElt, event) {\n  var selected = itemElt.selected;\n  var holder = itemElt.clHolder;\n  holder.selected = selected;\n\n  if (selected) {\n    this._valueDict[holder.valueKey] = holder.data.value;\n  } else {\n    delete this._valueDict[holder.valueKey];\n  }\n\n  this.notifyChange({\n    originalEvent: event.originalEvent || event.originEvent || event,\n    action: selected ? 'check' : 'uncheck',\n    value: holder.data.value,\n    itemData: holder.data\n  });\n  this.domSignal.emit('updateCheckedAll');\n};\n/***\r\n * @this CheckListBox\r\n * @param event\r\n */\n\n\nCheckListBox.eventHandler.clickCancelBtn = function (event) {\n  this.emit('cancel', {\n    type: 'cancel',\n    target: this,\n    originalEvent: event\n  }, this);\n};\n/***\r\n * @this CheckListBox\r\n * @param event\r\n */\n\n\nCheckListBox.eventHandler.clickCloseBtn = function (event) {\n  this.emit('close', {\n    type: 'close',\n    target: this,\n    originalEvent: event\n  }, this);\n};\n/**\r\n * @this {CheckListBox}\r\n */\n\n\nCheckListBox.eventHandler.searchModify = function () {\n  var _this4 = this;\n\n  var text = this.$searchInput.value;\n\n  if (text) {\n    this.searchMaster.query({\n      text: text\n    }).then(function (result) {\n      if (text !== _this4.$searchInput.value) return;\n\n      var arr = _this4.itemHolders.filter(function (it) {\n        return !!result[it.id];\n      });\n\n      arr.sort(function (a, b) {\n        return result[b.id][1] - result[a.id][1];\n      });\n      var searchHolders = arr.map(function (holder) {\n        return new CLHolderRef(_this4, holder, null, result);\n      });\n      _this4.$scroller.scrollTop = 0;\n\n      _this4.pagingCtrl.viewArr(searchHolders);\n\n      _ResizeSystem[\"default\"].update();\n    });\n  } else {\n    this.pagingCtrl.viewArr(this.itemHolders.reduce(function (ac, holder) {\n      return holder.toArray(ac);\n    }, []));\n\n    _ResizeSystem[\"default\"].update();\n  }\n};\n\n_ACore[\"default\"].install(CheckListBox);\n\nfunction CLHolder(boxElt, data, parent) {\n  var _this5 = this;\n\n  this.id = (0, _stringGenerate.randomIdent)(8);\n  this.parent = parent;\n  this.level = parent ? parent.level + 1 : 0;\n  this.boxElt = boxElt;\n  this.data = data;\n  this.valueKey = (0, _utils.keyStringOf)(data.value);\n  this.itemElt = null;\n  this.children = null;\n  this.selected = this.valueKey in boxElt._valueDict;\n\n  if (data.items && data.items.length > 0) {\n    this.children = data.items.map(function (it) {\n      return new CLHolder(boxElt, it, _this5);\n    });\n  }\n}\n\nCLHolder.prototype.toArray = function (ac) {\n  ac = ac || [];\n  ac.push(this);\n  if (this.children) this.children.reduce(function (ac, holder) {\n    return holder.toArray(ac);\n  }, ac);\n  return ac;\n};\n\nCLHolder.prototype.attachView = function (itemElt) {\n  if (itemElt.clHolder) itemElt.clHolder.detachView();\n  itemElt.clHolder = this;\n  this.itemElt = itemElt;\n  itemElt.data = this.data;\n  itemElt.level = this.level;\n  itemElt.selected = this.selected;\n};\n\nCLHolder.prototype.detachView = function () {\n  if (this.itemElt) {\n    this.itemElt.clHolder = null;\n    this.itemElt = null;\n  }\n};\n\nCLHolder.prototype.getSearchItem = function () {\n  var res = {\n    value: this.id\n  };\n  res.text = this.data.text + '';\n  if (this.data.desc) res.text += '/' + this.data.desc;\n  if (this.children) res.items = this.children.map(function (c) {\n    return c.getSearchItem();\n  });\n  return res;\n};\n\nfunction CLHolderRef(boxElt, origin, parent, result) {\n  var _this6 = this;\n\n  this.origin = origin;\n  this.data = origin.data;\n  this.parent = parent;\n  this.level = origin.level;\n\n  _OOP[\"default\"].drillProperty(this, origin, 'selected');\n\n  var arr, children;\n\n  if (origin.children) {\n    arr = origin.children.filter(function (it) {\n      return !!result[it.id];\n    });\n    arr.sort(function (a, b) {\n      return result[b.id][1] - result[a.id][1];\n    });\n    children = arr.map(function (holder) {\n      return new CLHolderRef(boxElt, holder, _this6, result);\n    });\n    if (children.length > 0) this.children = children;\n  }\n}\n\n_OOP[\"default\"].mixClass(CLHolderRef, CLHolder);\n/***\r\n *\r\n * @param {CheckListBox} boxElt\r\n * @constructor\r\n */\n\n\nfunction CLPagingController(boxElt) {\n  this.boxElt = boxElt;\n  this.$pages = boxElt.$pages;\n  this.$content = boxElt.$content;\n  this.$scroller = boxElt.$scroller.on('scroll', this.ev_scroll.bind(this));\n  this.itemPerPage = Math.ceil((0, _Dom.getScreenSize)().height / this.itemHeight * 2);\n  this.holderArr = [];\n  this.holderDict = {};\n}\n\nCLPagingController.prototype.itemHeight = 30;\n\nCLPagingController.prototype.ev_scroll = function (event) {\n  var _this7 = this;\n\n  if (this.pageN <= 2) return;\n  var top = this.$scroller.scrollTop;\n  var pageIdx = Math.min(this.pageN - 1, Math.max(0, Math.floor(top / this.itemHeight / this.itemPerPage)));\n  if (pageIdx === this.pageIdx) return;\n\n  if (pageIdx === this.pageIdx - 1) {\n    this.pageIdx = pageIdx;\n    this.$pages.unshift(this.$pages.pop());\n\n    if (pageIdx > 0) {\n      this.$pages[0].removeStyle('display').addStyle('top', (pageIdx - 1) * this.itemPerPage * this.itemHeight + 'px');\n      fillItemToPage(this.boxElt, this.$pages[0], this.itemPerPage);\n      Array.prototype.forEach.call(this.$pages[0].childNodes, function (elt, i) {\n        return _this7.holderArr[(pageIdx - 1) * _this7.itemPerPage + i].attachView(elt);\n      });\n    } else {\n      this.$pages[0].addStyle('display', 'none');\n    }\n  } else if (pageIdx === this.pageIdx + 1) {\n    this.pageIdx = pageIdx;\n    this.$pages.push(this.$pages.shift());\n\n    if (pageIdx + 1 < this.pageN) {\n      this.$pages[2].removeStyle('display').addStyle('top', (pageIdx + 1) * this.itemPerPage * this.itemHeight + 'px');\n      fillItemToPage(this.boxElt, this.$pages[2], Math.min(this.itemPerPage, this.holderArr.length - this.itemPerPage * (pageIdx + 1)));\n      Array.prototype.forEach.call(this.$pages[2].childNodes, function (elt, i) {\n        return _this7.holderArr[(pageIdx + 1) * _this7.itemPerPage + i].attachView(elt);\n      });\n    } else {\n      this.$pages[2].addStyle('display', 'none');\n    }\n  } else {\n    this.update();\n  }\n};\n\nCLPagingController.prototype.update = function () {\n  var _this8 = this;\n\n  var top = this.$content.scrollTop;\n  var pageIdx = Math.floor(top / this.itemHeight / this.itemPerPage);\n  this.pageIdx = pageIdx;\n  var ii = (pageIdx - 1) * this.itemPerPage;\n  var pageElt;\n  var itemInPage;\n\n  for (var pi = 0; pi < 3; ++pi) {\n    pageElt = this.$pages[pi];\n\n    if (ii < 0 || ii >= this.holderArr.length) {\n      ii += this.itemPerPage;\n      pageElt.addStyle('display', 'none');\n    } else {\n      itemInPage = Math.min(this.itemPerPage, this.holderArr.length - ii);\n      fillItemToPage(this.boxElt, pageElt, itemInPage);\n      pageElt.removeStyle('display').addStyle('top', this.itemHeight * ii + 'px');\n      Array.prototype.forEach.call(pageElt.childNodes, function (child, i) {\n        _this8.holderArr[ii].attachView(child);\n\n        ii++;\n      });\n    }\n  }\n};\n\nCLPagingController.prototype.viewListAtValue = function (value) {\n  var idx = this.holderDict[(0, _utils.keyStringOf)(value)];\n  if (idx === undefined) return;\n  var bound = this.$scroller.getBoundingClientRect();\n  var y = idx * this.itemHeight;\n  var maxY = this.holderArr.length * this.itemHeight - bound.height;\n  this.$scroller.scrollTop = Math.min(maxY, y);\n};\n\nCLPagingController.prototype.viewArr = function (itemHolders) {\n  this.holderArr = itemHolders.reduce(function (ac, holder) {\n    return holder.toArray(ac);\n  }, []);\n  this.holderDict = this.holderArr.reduce(function (ac, cr, idx) {\n    ac[cr.valueKey] = idx;\n    return ac;\n  }, {});\n  this.pageN = Math.ceil(this.holderArr.length / this.itemPerPage);\n  this.$content.addStyle('height', this.holderArr.length * this.itemHeight + 'px');\n  this.update();\n};\n\nCLPagingController.prototype.updateSelected = function () {\n  this.$pages.forEach(function (pageElt) {\n    Array.prototype.forEach.call(pageElt.childNodes, function (itemElt) {\n      if (itemElt.clHolder) itemElt.selected = itemElt.clHolder.selected;\n    });\n  });\n};\n/**********************************************************************************************************************/\n\n/***\r\n * @extends SelectListBox\r\n * @constructor\r\n */\n\n\nfunction CheckListBoxV1() {\n  this._initDomHook();\n\n  this._initControl();\n\n  this._initScroller();\n\n  this._initFooter();\n\n  this._initProperty();\n\n  this.domSignal.on('viewListAtValue', this.viewListAtValue.bind(this));\n}\n\nCheckListBoxV1.tag = 'CheckListBox'.toLowerCase();\n\nCheckListBoxV1.render = function () {\n  return (0, _ACore._)({\n    tag: _Follower[\"default\"].tag,\n    extendEvent: ['change', 'cancel', 'close'],\n    attr: {\n      tabindex: 0\n    },\n    \"class\": ['as-select-list-box', 'as-check-list-box'],\n    child: [{\n      \"class\": 'as-select-list-box-search-ctn',\n      child: 'searchtextinput'\n    }, {\n      \"class\": ['as-bscroller', 'as-select-list-box-scroller'],\n      child: [{\n        \"class\": 'as-select-list-box-content',\n        child: Array(this.prototype.preLoadN).fill('.as-select-list-box-page')\n      }]\n    }, {\n      \"class\": 'as-dropdown-box-footer',\n      child: [{\n        tag: 'checkbox',\n        \"class\": 'as-select-list-box-check-all',\n        props: {\n          checked: false,\n          text: _LanguageSystem[\"default\"].getText('txt_check_all') || _LanguageSystem[\"default\"].getText('txt_all') || 'Check All'\n        }\n      }, {\n        \"class\": 'as-dropdown-box-footer-right',\n        child: [{\n          tag: 'a',\n          \"class\": 'as-select-list-box-cancel-btn',\n          attr: {\n            'data-ml-key': 'txt_cancel'\n          }\n        }, {\n          tag: 'a',\n          \"class\": 'as-select-list-box-close-btn',\n          attr: {\n            'data-ml-key': 'txt_close'\n          }\n        }]\n      }]\n    }, 'attachhook.as-dom-signal'],\n    props: {\n      anchor: [1, 6, 2, 5]\n    }\n  });\n};\n\nObject.assign(CheckListBoxV1.prototype, _SelectListBox[\"default\"].prototype);\nCheckListBoxV1.property = Object.assign({}, _SelectListBox[\"default\"].property);\nCheckListBoxV1.eventHandler = Object.assign({}, _SelectListBox[\"default\"].eventHandler);\nCheckListBoxV1.prototype.itemHeightMode = [25, 30];\nCheckListBoxV1.prototype.itemHeight = 25;\nCheckListBoxV1.prototype.footerMinWidth = 110;\n\nCheckListBoxV1.prototype._initFooter = function () {\n  this.$checkAll = (0, _ACore.$)('.as-select-list-box-check-all', this).on('change', this.eventHandler.checkAllChange);\n  this.$cancelBtn = (0, _ACore.$)('.as-select-list-box-cancel-btn', this).on('click', this.eventHandler.clickCancelBtn);\n  this.$closeBtn = (0, _ACore.$)('.as-select-list-box-close-btn', this);\n  if (this.$closeBtn) //mobile ref\n    this.$closeBtn.on('click', this.eventHandler.clickCloseBtn);\n};\n\nCheckListBoxV1.prototype._requireItem = function (pageElt, n) {\n  var itemElt;\n\n  while (pageElt.childNodes.length > n) {\n    itemElt = pageElt.lastChild;\n    itemElt.selfRemove();\n    releaseItem(itemElt);\n  }\n\n  while (pageElt.childNodes.length < n) {\n    itemElt = requireItem(this);\n    pageElt.addChild(itemElt);\n  }\n};\n\nCheckListBoxV1.prototype.viewListAtFirstSelected = _noop[\"default\"];\n\nCheckListBoxV1.prototype.viewListAtValue = function (value) {\n  if (!this.isDescendantOf(document.body)) {\n    this.domSignal.emit('viewListAtValue', value);\n    return;\n  }\n\n  if (this._displayValue == _SelectListBox.VALUE_HIDDEN) {\n    return false;\n  }\n\n  var itemHolders = this._displayItemHolderByValue[value + ''];\n\n  if (itemHolders) {\n    this.domSignal.once('scrollIntoValue', function () {\n      var holder = itemHolders[0];\n      this.viewListAt(holder.idx);\n      var itemElt = (0, _ACore.$)('.as-check-list-item', this.$listScroller, function (elt) {\n        return elt.value === value;\n      });\n\n      if (itemElt) {\n        var scrollBound = this.$listScroller.getBoundingClientRect();\n        var itemBound = itemElt.getBoundingClientRect();\n        this.$listScroller.scrollTop += itemBound.top - scrollBound.top;\n      }\n    }.bind(this));\n    this.domSignal.emit('scrollIntoValue');\n    return true;\n  } else return false;\n};\n\nCheckListBoxV1.prototype.focus = _SelectListBox[\"default\"].prototype.focus;\nCheckListBoxV1.property.values = {\n  set: function set(value) {\n    _SelectListBox[\"default\"].property.values.set.apply(this, arguments);\n\n    this.$checkAll.checked = this._values.length === this.items.length;\n  },\n  get: _SelectListBox[\"default\"].property.values.get\n};\n/***\r\n * @this CheckListBoxV1\r\n * @param event\r\n */\n\nCheckListBoxV1.eventHandler.checkAllChange = function (event) {\n  var checked = this.$checkAll.checked;\n\n  if (checked) {\n    this._values = this.items.map(function (cr) {\n      return _typeof(cr) === \"object\" ? cr.value : cr;\n    });\n    this._valueDict = this._values.reduce(function (ac, value) {\n      ac[value + ''] = true;\n      return ac;\n    }, {});\n  } else {\n    this._values = [];\n    this._valueDict = {};\n  }\n\n  this._updateSelectedItem();\n\n  this.emit('change', {\n    target: this,\n    type: 'change',\n    originalEvent: event.originalEvent || event.originEvent || event,\n    action: checked ? 'check_all' : \"uncheck_all\"\n  }, this);\n};\n/***\r\n * @this CheckListBoxV1\r\n * @param itemElt\r\n * @param event\r\n */\n\n\nCheckListBoxV1.eventHandler.itemSelect = function (itemElt, event) {\n  var selected = itemElt.selected;\n  var value = itemElt.value;\n  var itemData = itemElt.data;\n  var idx;\n\n  if (selected) {\n    this._values.push(value);\n\n    this._valueDict[value + ''] = true;\n  } else {\n    idx = this._values.indexOf(value);\n    delete this._valueDict[value + ''];\n\n    if (idx >= 0) {\n      this._values.splice(idx, 1);\n    } else {\n      console.error(\"Violation data\");\n    }\n  }\n\n  this.emit('change', {\n    target: this,\n    type: 'change',\n    originalEvent: event.originalEvent || event.originEvent || event,\n    action: selected ? 'check' : 'uncheck',\n    value: value,\n    itemData: itemData\n  }, this);\n};\n/***\r\n * @this CheckListBoxV1\r\n * @param event\r\n */\n\n\nCheckListBoxV1.eventHandler.clickCancelBtn = function (event) {\n  this.emit('cancel', {\n    type: 'cancel',\n    target: this,\n    originalEvent: event\n  }, this);\n};\n/***\r\n * @this CheckListBoxV1\r\n * @param event\r\n */\n\n\nCheckListBoxV1.eventHandler.clickCloseBtn = function (event) {\n  this.emit('close', {\n    type: 'close',\n    target: this,\n    originalEvent: event\n  }, this);\n};\n\n_ACore[\"default\"].install(CheckListBoxV1);\n\nvar _default = CheckListBoxV1;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/CheckListBox.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/CheckListItem.js":
/*!******************************************************!*\
  !*** ./node_modules/absol-acomp/js/CheckListItem.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\nexports.measureCheckListHeight = measureCheckListHeight;\nexports.measureCheckListSize = measureCheckListSize;\nexports.measureMaxCheckboxTextWidth = measureMaxCheckboxTextWidth;\n\n__webpack_require__(/*! ../css/checklistitem.css */ \"./node_modules/absol-acomp/css/checklistitem.css\");\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _CheckboxButton = _interopRequireDefault(__webpack_require__(/*! ./CheckboxButton */ \"./node_modules/absol-acomp/js/CheckboxButton.js\"));\n\nvar _Attributes = _interopRequireDefault(__webpack_require__(/*! absol/src/AppPattern/Attributes */ \"./node_modules/absol/src/AppPattern/Attributes.js\"));\n\nvar _SelectListItem = _interopRequireDefault(__webpack_require__(/*! ./SelectListItem */ \"./node_modules/absol-acomp/js/SelectListItem.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _SelectList = __webpack_require__(/*! ./SelectList */ \"./node_modules/absol-acomp/js/SelectList.js\");\n\nvar _EventEmitter = __webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction measureMaxCheckboxTextWidth(items) {\n  var maxTextWidth = 0;\n  var maxText = 0;\n  var maxEst = 0;\n  var maxLv = 0;\n  var est;\n  var text;\n  var item;\n\n  for (var i = 0; i < items.length; ++i) {\n    item = items[i];\n\n    if (item.text) {\n      text = item.text;\n      est = (0, _utils.estimateWidth14)(text) + 14 * 1.25 * (item.level || 0);\n\n      if (est > maxEst) {\n        maxEst = est;\n        maxText = text;\n        maxLv = item.level || 0;\n      }\n    }\n  }\n\n  if (maxText) maxTextWidth = 18 + 14 * (1.25 + 0.35) * maxLv + (0, _utils.measureText)(maxText, '14px Arial, Helvetica, sans-serif').width + 14; //padding left, right 7px, checkbox 18px\n\n  return maxTextWidth;\n}\n\nfunction measureCheckListHeight(items) {\n  var border = 0;\n  var n = items.length - 1;\n  return items.length * 25 + border;\n}\n\nfunction measureCheckListSize(items) {\n  var descWidth = (0, _SelectList.measureMaxDescriptionWidth)(items);\n  var textWidth = measureMaxCheckboxTextWidth(items);\n  var width = textWidth;\n\n  if (descWidth > 0) {\n    width += descWidth + 14;\n  }\n\n  var height = measureCheckListHeight(items);\n  return {\n    width: width,\n    height: height,\n    descWidth: descWidth,\n    textWidth: textWidth\n  };\n}\n/***\r\n * @extends SelectListItem\r\n * @constructor\r\n */\n\n\nfunction CheckListItem() {\n  this.$text = (0, _ACore.$)('span.absol-selectlist-item-text', this);\n  this.$textValue = this.$text.childNodes[0];\n  this.$descCtn = (0, _ACore.$)('.absol-selectlist-item-desc-container', this);\n  this.$desc = (0, _ACore.$)('span.absol-selectlist-item-desc', this.$descCtn);\n  this.$descValue = this.$desc.childNodes[0];\n  this.$checkbox = (0, _ACore.$)(_CheckboxButton[\"default\"].tag, this).on('change', this.eventHandler.checkboxChange);\n  this.$icon = null;\n  this._icon = null;\n  this._viewData = new _Attributes[\"default\"](this);\n\n  this._viewData.loadAttributeHandlers(this.viewHandlers);\n\n  _OOP[\"default\"].drillProperty(this, this._viewData, 'extendClasses');\n\n  _OOP[\"default\"].drillProperty(this, this._viewData, 'extendStyle');\n\n  this.level = 0;\n  this.selected = false;\n  this.on('click', this.eventHandler.clickText);\n}\n\nCheckListItem.tag = 'CheckListItem'.toLowerCase();\n\nCheckListItem.render = function () {\n  return (0, _ACore._)({\n    extendEvent: ['select'],\n    \"class\": ['as-check-list-item', \"absol-selectlist-item\"],\n    child: [{\n      tag: _CheckboxButton[\"default\"].tag,\n      \"class\": 'as-check-list-item-checkbox'\n    }, {\n      tag: 'span',\n      \"class\": 'absol-selectlist-item-text',\n      child: {\n        text: ''\n      }\n    }, {\n      \"class\": 'absol-selectlist-item-desc-container',\n      child: {\n        tag: 'span',\n        \"class\": 'absol-selectlist-item-desc',\n        child: {\n          text: ''\n        }\n      }\n    }]\n  });\n};\n\nCheckListItem.property = {\n  text: _SelectListItem[\"default\"].property.text,\n  value: _SelectListItem[\"default\"].property.value,\n  icon: _SelectListItem[\"default\"].property.icon\n};\nCheckListItem.property.data = {\n  set: function set(value) {\n    this._data = value;\n    var viewData = {\n      text: '',\n      desc: '',\n      noSelect: false,\n      extendStyle: null,\n      extendClasses: null,\n      icon: null\n    };\n\n    if (typeof value === 'string') {\n      viewData.text = value;\n    } else {\n      Object.assign(viewData, value);\n    }\n\n    Object.assign(this._viewData, viewData);\n  },\n  get: function get() {\n    return this._data;\n  }\n};\nCheckListItem.property.selected = {\n  set: function set(value) {\n    this.$checkbox.checked = !!value;\n  },\n  get: function get() {\n    return this.$checkbox.checked;\n  }\n};\nCheckListItem.property.level = {\n  set: function set(value) {\n    value = value || 0;\n    this._level = value;\n    this.$checkbox.addStyle('margin-left', value * 1.75 + 'em');\n  },\n  get: function get() {\n    return this._level;\n  }\n};\nCheckListItem.prototype.viewHandlers = {};\nCheckListItem.prototype.viewHandlers.text = {\n  set: function set(value) {\n    this.$textValue.data = value;\n  },\n  get: function get() {\n    return this.$textValue.data;\n  }\n};\nCheckListItem.prototype.viewHandlers.desc = {\n  set: function set(value) {\n    this.$descValue.data = value;\n  },\n  get: function get() {\n    return this.$descValue.data;\n  }\n};\nCheckListItem.prototype.viewHandlers.extendClasses = {\n  set: function set(value, ref) {\n    var prevVal = ref.get() || [];\n    var i;\n\n    for (i = 0; i < prevVal.length; ++i) {\n      this.removeClass(prevVal[i]);\n    }\n\n    var newVal = [];\n    if (typeof value == 'string') value = value.trim().split(/\\s+/);\n    value = value || [];\n\n    for (i = 0; i < value.length; ++i) {\n      newVal.push(value[i]);\n      this.addClass(value[i]);\n    }\n\n    return newVal;\n  }\n};\nCheckListItem.prototype.viewHandlers.extendStyle = {\n  /***\r\n   *\r\n   * @param value\r\n   * @param {Ref} ref\r\n   */\n  set: function set(value, ref) {\n    this.removeStyle(ref.get() || {});\n    this._extendStyle = Object.assign({}, value || {});\n    this.addStyle(this._extendStyle);\n  },\n  get: function get() {\n    return this._extendClasses;\n  }\n};\nCheckListItem.prototype.viewHandlers.noSelect = {\n  set: function set(value) {\n    if (value) this.addClass('as-no-select');else this.removeClass('as-no-select');\n    return value;\n  }\n};\nCheckListItem.prototype.viewHandlers.icon = {\n  set: function set(icon) {\n    this.icon = icon;\n  },\n  get: function get() {\n    return this.icon;\n  }\n};\nCheckListItem.eventHandler = {};\n\nCheckListItem.eventHandler.clickText = function (event) {\n  if ((0, _EventEmitter.hitElement)(this.$checkbox, event)) return;\n  this.$checkbox.checked = !this.$checkbox.checked;\n  this.emit('select', {\n    target: this,\n    type: 'select',\n    originalEvent: event.originalEvent || event.originEvent || event,\n    selected: this.selected\n  });\n};\n\nCheckListItem.eventHandler.checkboxChange = function (event) {\n  this.emit('select', {\n    target: this,\n    type: 'select',\n    originalEvent: event.originalEvent || event.originEvent || event,\n    selected: this.selected\n  });\n};\n\n_ACore[\"default\"].install(CheckListItem);\n\nvar _default = CheckListItem;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/CheckListItem.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/CheckTreeBox.js":
/*!*****************************************************!*\
  !*** ./node_modules/absol-acomp/js/CheckTreeBox.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.TreeNodeHolder = TreeNodeHolder;\nexports.TreeRootHolder = TreeRootHolder;\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _DomSignal = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/DomSignal */ \"./node_modules/absol/src/HTML5/DomSignal.js\"));\n\nvar _Dom = __webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\");\n\nvar _CheckTreeItem = _interopRequireDefault(__webpack_require__(/*! ./CheckTreeItem */ \"./node_modules/absol-acomp/js/CheckTreeItem.js\"));\n\n__webpack_require__(/*! ../css/checktreebox.css */ \"./node_modules/absol-acomp/css/checktreebox.css\");\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _search = __webpack_require__(/*! ./list/search */ \"./node_modules/absol-acomp/js/list/search.js\");\n\nvar _SelectListBox = _interopRequireDefault(__webpack_require__(/*! ./SelectListBox */ \"./node_modules/absol-acomp/js/SelectListBox.js\"));\n\nvar _LanguageSystem = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/LanguageSystem */ \"./node_modules/absol/src/HTML5/LanguageSystem.js\"));\n\nvar _Array = __webpack_require__(/*! absol/src/DataStructure/Array */ \"./node_modules/absol/src/DataStructure/Array.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends Follower\r\n * @constructor\r\n */\nfunction CheckTreeBox() {\n  this._initControl();\n\n  this._initScroller();\n\n  this._initDomHook();\n\n  this._initProperty();\n\n  this._initFooter();\n  /***\r\n   * @name strictValue\r\n   * @memberOf CheckTreeBox#\r\n   * @type {boolean}\r\n   */\n\n}\n\nCheckTreeBox.tag = 'CheckTreeBox'.toLowerCase();\nCheckTreeBox.prototype.preLoadN = 3;\nCheckTreeBox.prototype.itemHeight = 28;\nCheckTreeBox.prototype.itemInPage = 36;\n\nCheckTreeBox.prototype._initScroller = function () {\n  this.$scroller = (0, _ACore.$)('.as-check-tree-box-scroller', this).on('scroll', this.eventHandler.scroll);\n  this.itemInPage = Math.max(36, Math.ceil((0, _Dom.getScreenSize)().height / this.itemHeight));\n  this.$content = (0, _ACore.$)('.as-check-tree-box-content', this);\n  this.$pages = (0, _ACore.$$)('.as-select-list-box-page', this);\n  this.$pages.forEach(function (p) {\n    p.__viewOffset__ = -1;\n  });\n};\n\nCheckTreeBox.prototype._initDomHook = function () {\n  this.$domSignal = (0, _ACore._)('attachhook');\n  this.appendChild(this.$domSignal);\n  this.domSignal = new _DomSignal[\"default\"](this.$domSignal);\n  this.domSignal.on('viewListAt', this.viewListAt.bind(this));\n};\n\nCheckTreeBox.prototype._initProperty = function () {\n  this.scale14 = (0, _ACore.$)(document.body).getFontSize() / 14;\n  this._items = [];\n  this._values = [];\n  this.itemHolderByValue = {};\n  this.rootHolder = null;\n  /***\r\n   *\r\n   * @type {TreeNodeHolder[]}\r\n   */\n  // this.rootHolders = [];\n\n  /***\r\n   *\r\n   * @type {TreeRootHolder}\r\n   */\n\n  this.rootViewHolder = null;\n  /***\r\n   *\r\n   * @type {TreeNodeHolder[]}\r\n   */\n\n  this.viewHolders = []; //toArray\n\n  this.enableSearch = true;\n};\n\nCheckTreeBox.prototype._initControl = function () {\n  this.cache = {};\n  this.$searchInput = (0, _ACore.$)('searchtextinput', this).on('stoptyping', this.eventHandler.searchModify);\n};\n\nCheckTreeBox.prototype._initFooter = function () {\n  this.$checkAll = (0, _ACore.$)('.as-select-list-box-check-all', this).on('change', this.eventHandler.checkAllChange);\n  this.$cancelBtn = (0, _ACore.$)('.as-select-list-box-cancel-btn', this).on('click', this.eventHandler.clickCancelBtn);\n  this.$closeBtn = (0, _ACore.$)('.as-select-list-box-close-btn', this).on('click', this.eventHandler.clickCloseBtn);\n};\n\nCheckTreeBox.prototype.focus = _SelectListBox[\"default\"].prototype.focus;\n\nCheckTreeBox.render = function () {\n  return (0, _ACore._)({\n    tag: 'follower',\n    extendEvent: ['change', 'toggleitem', 'cancel', 'close'],\n    \"class\": ['as-check-tree-box', 'as-select-list-box', 'as-anchor-1'],\n    child: [{\n      \"class\": 'as-select-list-box-search-ctn',\n      child: 'searchtextinput'\n    }, {\n      \"class\": ['as-check-tree-box-scroller', 'as-bscroller', 'as-select-list-box-scroller'],\n      child: {\n        \"class\": ['as-check-tree-box-content', 'as-select-list-box-content'],\n        child: Array(this.prototype.preLoadN).fill('.as-select-list-box-page')\n      }\n    }, {\n      \"class\": 'as-dropdown-box-footer',\n      child: [{\n        tag: 'checkbox',\n        \"class\": 'as-select-list-box-check-all',\n        props: {\n          checked: false,\n          text: _LanguageSystem[\"default\"].getText('txt_check_all') || _LanguageSystem[\"default\"].getText('txt_all') || 'Check All'\n        }\n      }, {\n        \"class\": 'as-dropdown-box-footer-right',\n        child: [{\n          tag: 'a',\n          \"class\": 'as-select-list-box-cancel-btn',\n          attr: {\n            \"data-ml-key\": 'txt_cancel'\n          }\n        }, {\n          tag: 'a',\n          \"class\": 'as-select-list-box-close-btn',\n          attr: {\n            \"data-ml-key\": 'txt_close'\n          }\n        }]\n      }]\n    }],\n    props: {\n      anchor: [1, 6, 2, 5]\n    }\n  });\n};\n\nCheckTreeBox.prototype.HolderClass = TreeNodeHolder;\n\nCheckTreeBox.prototype.findItemHoldersByValue = function (value) {\n  return (this.itemHolderByValue[(0, _utils.keyStringOf)(value)] || []).slice();\n};\n\nCheckTreeBox.prototype.viewListAt = function (offset) {\n  offset = offset || 0;\n\n  if (!this.isDescendantOf(document.body)) {\n    this.domSignal.emit('viewListAt', offset);\n    return;\n  }\n\n  this.noTransition();\n  var midPage = this.$pages.length >> 1;\n  var startOffset = Math.max(0, offset - midPage * this.itemInPage);\n  var cOffset;\n  var itemN = this.viewHolders.length;\n\n  for (var i = 0; i < this.$pages.length; ++i) {\n    cOffset = startOffset + i * this.itemInPage;\n\n    if (cOffset < itemN) {\n      this.$pages[i].__viewOffset__ = cOffset;\n      this.$pages[i].removeStyle('display').addStyle('top', cOffset * this.itemHeight / 14 + 'em');\n\n      this._fillPage(this.$pages[i], Math.min(this.itemInPage, itemN - cOffset));\n\n      this._assignItems(this.$pages[i], cOffset);\n    } else {\n      this.$pages[i].__viewOffset__ = -1;\n      this.$pages[i].addStyle('display', 'none');\n    }\n  }\n};\n\nCheckTreeBox.prototype.noTransition = function () {\n  if (this.hasClass('as-no-transition')) return;\n  this.addClass('as-no-transition');\n  setTimeout(function () {\n    this.removeClass('as-no-transition');\n  }.bind(this), 100);\n};\n\nCheckTreeBox.prototype._pool = [];\n\nCheckTreeBox.prototype._releaseItem = function (item) {\n  if (item.nodeHolder && item.nodeHolder.itemElt === item) {\n    item.nodeHolder.itemElt = null;\n  }\n\n  this._pool.push(item);\n};\n\nCheckTreeBox.prototype._requestItem = function () {\n  var res = this._pool.pop() || (0, _ACore._)({\n    tag: _CheckTreeItem[\"default\"].tag,\n    props: {\n      menuElt: this\n    },\n    on: {\n      presstoggle: function presstoggle(event) {\n        this.menuElt.eventHandler.toggleItem(this, event);\n      },\n      select: function select(event) {\n        this.menuElt.eventHandler.selectItem(this, event);\n      }\n    }\n  });\n  res.menuElt = this;\n  return res;\n};\n\nCheckTreeBox.prototype._fillPage = function (pageElt, n) {\n  while (pageElt.childNodes.length > n) {\n    this._releaseItem(pageElt.lastChild);\n\n    pageElt.removeChild(pageElt.lastChild);\n  }\n\n  while (pageElt.childNodes.length < n) {\n    pageElt.addChild(this._requestItem());\n  }\n};\n\nCheckTreeBox.prototype._assignItems = function (pageElt, offset) {\n  for (var i = 0; i < pageElt.childNodes.length; ++i) {\n    this.viewHolders[offset + i].itemElt = pageElt.childNodes[i];\n  }\n};\n\nCheckTreeBox.prototype._resetView = function () {\n  this.$searchInput.value = '';\n  this.viewHolders = this.rootHolder.toArray();\n  this.rootViewHolder = this.rootHolder;\n  this.updateContentSize();\n  this.viewListAt(0);\n};\n\nCheckTreeBox.prototype.resetSearchState = function () {\n  this._resetView();\n};\n\nCheckTreeBox.prototype.updateContentSize = function () {\n  this.$content.addStyle('height', this.viewHolders.length * this.itemHeight / 14 + 'em');\n};\n\nCheckTreeBox.prototype.updateCheckedAll = function () {\n  return;\n};\n\nCheckTreeBox.prototype._implicit = function (values) {\n  return values || [];\n};\n\nCheckTreeBox.property = {};\nCheckTreeBox.property.items = {\n  /***\r\n   * @this CheckTreeBox\r\n   * @param items\r\n   */\n  set: function set(items) {\n    this.cache = {};\n    items = items || [];\n    this._items = items;\n    (0, _search.prepareSearchForList)(items);\n    var RootHolderClass = this.RootHolderClass;\n    this.rootHolder = new RootHolderClass(this, items);\n    this.itemHolderByValue = this.rootHolder.depthIndexing();\n    this.estimateSize = this.rootHolder.calcEstimateSize();\n    this.addStyle('--select-list-estimate-width', this.estimateSize.width + 'px');\n\n    this._resetView();\n\n    this.rootHolder.setValues(this._values);\n  },\n  get: function get() {\n    return this._items;\n  }\n};\nCheckTreeBox.property.values = {\n  /***\r\n   * @this CheckTreeBox\r\n   * @param values\r\n   */\n  set: function set(values) {\n    this._values = values || [];\n    if (this.rootHolder) this.rootHolder.setValues(this._values);\n  },\n  get: function get() {\n    if (this.rootHolder) return this.rootHolder.getValues();\n    return this._values;\n  }\n};\nCheckTreeBox.property.viewValues = {\n  get: function get() {\n    return this._values;\n  }\n};\nCheckTreeBox.property.enableSearch = {\n  set: function set(value) {\n    if (value) this.addClass('as-enable-search');else this.removeClass('as-enable-search');\n  },\n  get: function get() {\n    return this.hasClass('as-enable-search');\n  }\n};\nCheckTreeBox.eventHandler = {};\n\nCheckTreeBox.eventHandler.toggleItem = function (item, event) {\n  this.noTransition();\n  var nodeHolder = item.nodeHolder;\n\n  if (!nodeHolder) {\n    console.error(\"Load error, item was not assigned TreeNodeHolder!\");\n  } else nodeHolder.toggle();\n};\n\nCheckTreeBox.eventHandler.selectItem = function (item, event) {\n  var nodeHolder = item.nodeHolder;\n\n  if (!nodeHolder) {\n    console.error(\"Load error, item was not assigned TreeNodeHolder!\");\n    return;\n  }\n\n  this.noTransition();\n  var ref = nodeHolder.findReferenceNode();\n  var targetNode = ref || nodeHolder;\n  var selected = item.selected;\n\n  if (selected === 'all' && (targetNode.canSelectAll || targetNode.selected === 'none')) {\n    targetNode.selectAll();\n  } else {\n    targetNode.unselectAll();\n  }\n\n  if (ref) {\n    nodeHolder.getRoot().updateSelectedFromRef();\n  }\n\n  this.emit('change', {\n    type: 'change',\n    target: this\n  }, this);\n};\n/***\r\n * @this CheckTreeBox\r\n */\n\n\nCheckTreeBox.eventHandler.scroll = function () {\n  var itemHeight = this.itemHeight * this.getFontSize() / 14;\n  var scrollTop = this.$scroller.scrollTop;\n  var scrollBottom = scrollTop + this.$scroller.clientHeight;\n  var startOffset = this.$pages[0].__viewOffset__;\n  var endOffset = this.$pages[this.$pages.length - 1].__viewOffset__;\n\n  if (endOffset === -1) {\n    endOffset = this.viewHolders.length;\n  } else {\n    endOffset += this.$pages[this.$pages.length - 1].childNodes.length;\n  }\n\n  var needLoad = 0;\n  if (startOffset > 0 && startOffset * itemHeight + 200 > scrollTop) needLoad = -1;\n\n  if (needLoad === 0 && this.viewHolders.length > endOffset && endOffset * itemHeight - 200 < scrollBottom) {\n    needLoad = 1;\n  }\n\n  var page2Load;\n\n  if (needLoad < 0) {\n    page2Load = this.$pages.pop();\n    this.$pages.unshift(page2Load);\n    page2Load.__viewOffset__ = Math.max(0, startOffset - this.itemInPage);\n\n    this._fillPage(page2Load, startOffset - page2Load.__viewOffset__);\n\n    this._assignItems(page2Load, page2Load.__viewOffset__);\n\n    page2Load.removeStyle('display');\n    page2Load.addStyle('top', page2Load.__viewOffset__ * itemHeight + 'px');\n  } else if (needLoad > 0) {\n    for (var i = 0; i < this.$pages.length; ++i) {\n      if (this.$pages[i].__viewOffset__ === -1) {\n        page2Load = this.$pages[i];\n        break;\n      }\n    }\n\n    if (!page2Load) {\n      page2Load = this.$pages.shift();\n      this.$pages.push(page2Load);\n    }\n\n    page2Load.__viewOffset__ = endOffset;\n\n    this._fillPage(page2Load, Math.min(this.itemInPage, this.viewHolders.length - endOffset));\n\n    this._assignItems(page2Load, page2Load.__viewOffset__);\n\n    page2Load.removeStyle('display');\n    page2Load.addStyle('top', page2Load.__viewOffset__ * itemHeight + 'px');\n  }\n};\n/***\r\n * @this CheckTreeBox\r\n */\n\n\nCheckTreeBox.eventHandler.searchModify = function () {\n  var self = this;\n  var text = this.$searchInput.value.trim();\n\n  if (text.length === 0) {\n    this._resetView();\n\n    return;\n  }\n\n  var searchData;\n\n  if (this.cache[text]) {\n    searchData = this.cache[text];\n  } else {\n    searchData = {};\n    searchData.items = (0, _search.searchTreeListByText)(text, this._items);\n    searchData.rootViewHolder = new TreeRootHolder(this, searchData.items);\n    searchData.items.forEach(function visit(it) {\n      if (it.ref.items && it.ref.items.length > 0 && (!it.items || it.items.length === 0)) {\n        it.items = it.ref.items;\n        it.doNotInitOpen = true;\n      } else if (it.items && it.items.length > 0) {\n        it.items.forEach(visit);\n      }\n    });\n  }\n\n  searchData.rootViewHolder.traverse(function (hd) {\n    if (hd.status === 'close') {\n      if (!hd.item.doNotInitOpen) hd.status = 'open';\n    }\n  });\n  this.rootViewHolder = searchData.rootViewHolder;\n  this.viewHolders = this.rootViewHolder.toArray();\n  this.rootViewHolder.updateSelectedFromRef();\n  this.updateContentSize();\n  this.viewListAt(0);\n  this.updatePosition();\n};\n\nCheckTreeBox.prototype.updateSelectedInViewIfNeed = function () {\n  if (this.rootViewHolder !== this.rootHolder) {\n    this.rootViewHolder.updateSelectedFromRef();\n  }\n};\n\nCheckTreeBox.eventHandler.checkAllChange = function (event) {\n  var selected = this.rootHolder.selected;\n  var preValues = this.values;\n\n  switch (selected) {\n    case 'all':\n      this.rootHolder.unselectAll();\n      break;\n\n    case 'child':\n      if (this.rootHolder.canSelectAll) {\n        this.rootHolder.selectAll();\n      } else {\n        this.rootHolder.unselectAll();\n      }\n\n      break;\n\n    case 'none':\n      this.rootHolder.selectAll();\n      break;\n  }\n\n  if (this.rootViewHolder !== this.rootHolder) {\n    this.rootViewHolder.updateSelectedFromRef();\n  }\n\n  var newValues = this.values;\n\n  if (!(0, _Array.arrayCompare)(preValues, newValues)) {\n    this.emit('change', {\n      type: 'change',\n      target: this\n    }, this);\n  }\n};\n\nCheckTreeBox.eventHandler.clickCancelBtn = function (event) {\n  this.emit('cancel', {\n    type: 'cancel',\n    target: this,\n    originalEvent: event\n  }, this);\n};\n\nCheckTreeBox.eventHandler.clickCloseBtn = function (event) {\n  this.emit('close', {\n    type: 'close',\n    target: this,\n    originalEvent: event\n  }, this);\n};\n\n_ACore[\"default\"].install(CheckTreeBox);\n\nvar _default = CheckTreeBox;\n/***\r\n *\r\n * @param {CheckTreeBox} boxElt\r\n * @param items\r\n * @constructor\r\n */\n\nexports[\"default\"] = _default;\n\nfunction TreeRootHolder(boxElt, items) {\n  var _this = this;\n\n  this.boxElt = boxElt;\n  this.items = items;\n  this.selected = 'none';\n  var Clazz = this.SubHolderClass;\n  this.child = [];\n  this.idx = -1; //root\n\n  this.tailIdx = this.idx;\n\n  if (items && items.length > 0) {\n    items.reduce(function (ac, it) {\n      var child = new Clazz(boxElt, it, ac.idx + 1, _this);\n      ac.idx = child.tailIdx;\n      ac.arr.push(child);\n      return ac;\n    }, {\n      idx: this.idx,\n      arr: this.child\n    });\n    this.tailIdx = this.child[this.child.length - 1].tailIdx;\n  }\n\n  this.canSelectAll = this.child.every(function (c) {\n    return c.canSelectAll;\n  });\n  this.canSelect = this.child.length === 0 || this.child.some(function (c) {\n    return c.canSelect;\n  });\n}\n\nCheckTreeBox.prototype.RootHolderClass = TreeRootHolder;\nTreeRootHolder.prototype.level = -1;\n/***\r\n *\r\n * @param {Array=} ac\r\n */\n\nTreeRootHolder.prototype.toArray = function (ac) {\n  ac = ac || [];\n  this.child.forEach(function (c) {\n    return c.toArray(ac);\n  });\n  return ac;\n};\n\nTreeRootHolder.prototype.updateFromChild = function () {\n  var childSelectAll = 0;\n  var childSelectChild = 0;\n  var isCheckAll = true;\n  this.traverse(function (hd) {\n    if (hd.selected === 'none' && !hd.item.noSelect) {\n      isCheckAll = false;\n    }\n  });\n\n  if (this.canSelectAll) {\n    this.boxElt.$checkAll.checked = isCheckAll;\n    this.boxElt.$checkAll.minus = false;\n    this.selected = isCheckAll ? 'all' : 'none';\n  } else {\n    this.boxElt.$checkAll.checked = false;\n    this.boxElt.$checkAll.minus = isCheckAll;\n    this.selected = isCheckAll ? 'child' : 'none';\n  }\n};\n\nTreeRootHolder.prototype.updateUp = function () {\n  this.updateFromChild();\n};\n/***\r\n *\r\n * @param {Array=} ac\r\n */\n\n\nTreeRootHolder.prototype.getValues = function (ac) {\n  ac = ac || [];\n  this.child.forEach(function (c) {\n    return c.getValues(ac);\n  });\n  return ac;\n};\n/***\r\n *\r\n * @param {Array} values\r\n */\n\n\nTreeRootHolder.prototype.setValues = function (values) {\n  values = values.reduce(function (ac, cr) {\n    ac[(0, _utils.keyStringOf)(cr)] = true;\n    return ac;\n  }, values.slice());\n  this.child.forEach(function (c) {\n    return c.setValues(values);\n  });\n};\n\nTreeRootHolder.prototype.calcEstimateSize = function () {\n  var res = {\n    width: 0,\n    height: this.boxElt.itemHeight + (this.tailIdx + 1)\n  };\n  var holders = this.child;\n  var n = holders.length;\n  var holder;\n  var longestHolder = null;\n  var longest = 0;\n  var w;\n\n  for (var i = 0; i < n; ++i) {\n    holder = holders[i];\n    holder.traverse(function (hd) {\n      w = hd.calcEstimateWidth();\n\n      if (w > longest) {\n        longest = w;\n        longestHolder = hd;\n      }\n    });\n  }\n\n  if (longestHolder) {\n    res.width = longestHolder.calcWidth() * this.boxElt.scale14;\n  }\n\n  return res;\n};\n\nTreeRootHolder.prototype.selectAll = function () {\n  this.child.forEach(function (c) {\n    return c.selectAll();\n  });\n};\n\nTreeRootHolder.prototype.unselectAll = function () {\n  this.child.forEach(function (c) {\n    return c.unselectAll();\n  });\n};\n\nTreeRootHolder.prototype.findReferenceNode = function () {\n  if (this.boxElt.rootHolder === this) return null;\n  return this.boxElt.rootHolder;\n};\n\nTreeRootHolder.prototype.updateSelectedFromRef = function () {\n  if (this.boxElt.rootHolder === this) return;\n  this.child.forEach(function (c) {\n    return c.updateSelectedFromRef();\n  });\n};\n\nTreeRootHolder.prototype.traverse = function (cb) {\n  this.child.forEach(function (c) {\n    return c.traverse(cb);\n  });\n};\n\nTreeRootHolder.prototype.getRoot = function () {\n  return this;\n};\n/***\r\n *\r\n * @param {Object<string, TreeNodeHolder>|{}=}ac\r\n * @returns {Object<string, TreeNodeHolder>|{}}\r\n */\n\n\nTreeRootHolder.prototype.depthIndexing = function (ac) {\n  ac = ac || {};\n  this.child.forEach(function (c) {\n    return c.depthIndexing(ac);\n  });\n  return ac;\n};\n/***\r\n *\r\n * @param {CheckTreeBox} boxElt\r\n * @param {SelectionItem} item\r\n * @param {number} idx\r\n * @param {TreeNodeHolder | TreeRootHolder} parent\r\n * @constructor\r\n */\n\n\nfunction TreeNodeHolder(boxElt, item, idx, parent) {\n  var _this2 = this;\n\n  this.boxElt = boxElt;\n  this.item = item;\n  this.idx = idx;\n  this.tailIdx = idx; //last child index\n\n  this.parent = parent;\n  this.status = item.items && item.items.length > 0 ? 'close' : 'none';\n  this.selected = 'none';\n  this.level = parent ? parent.level + 1 : 0;\n  this._elt = null;\n  var Clazz = this.constructor;\n  /***\r\n   *\r\n   * @type {this[]}\r\n   */\n\n  this.child = [];\n\n  if (item.items && item.items.length > 0) {\n    item.items.reduce(function (ac, it) {\n      var child = new Clazz(boxElt, it, ac.idx + 1, _this2);\n      ac.idx = child.tailIdx;\n      ac.arr.push(child);\n      return ac;\n    }, {\n      idx: this.idx,\n      arr: this.child\n    });\n    this.tailIdx = this.child[this.child.length - 1].tailIdx;\n  }\n\n  this.canSelectAll = !this.item.noSelect && this.child.every(function (c) {\n    return c.canSelectAll;\n  });\n  this.canSelect = !this.item.noSelect && (this.child.length === 0 || this.child.some(function (c) {\n    return c.canSelect;\n  }));\n}\n\nTreeRootHolder.prototype.SubHolderClass = TreeNodeHolder;\n/***\r\n *\r\n * @param {Object<string, TreeNodeHolder>|{}}ac\r\n * @returns {Object<string, TreeNodeHolder>|{}}\r\n */\n\nTreeNodeHolder.prototype.depthIndexing = function (ac) {\n  ac = ac || {};\n  var key = (0, _utils.keyStringOf)(this.item.value);\n  if (!ac[key]) ac[key] = [];\n  ac[key].push(this);\n\n  if (ac[key].length === 2) {\n    console.warn(\"Duplicate value\", ac[key]);\n  }\n\n  this.child.forEach(function (c) {\n    return c.depthIndexing(ac);\n  });\n  return ac;\n};\n\nTreeNodeHolder.prototype.findIdxInView = function () {\n  var holders = this.boxElt.viewHolders;\n  var start = 0;\n  var end = holders.length - 1;\n  var mid;\n  var idx = this.idx;\n  var holderIdx;\n\n  while (start < end) {\n    mid = start + end >> 1;\n    holderIdx = holders[mid].idx;\n\n    if (holderIdx < idx) {\n      start = mid + 1;\n    } else if (holderIdx > idx) {\n      end = mid - 1;\n    } else {\n      return mid;\n    }\n  }\n\n  holderIdx = holders[start].idx;\n  if (holderIdx === idx) return start;\n  return -1;\n};\n\nTreeNodeHolder.prototype.getValues = function (ac) {\n  ac = ac || [];\n\n  if (this.selected === 'all') {\n    ac.push(this.item.value);\n  } else if (this.selected === 'child') {\n    this.child.forEach(function (c) {\n      return c.getValues(ac);\n    });\n  }\n\n  return ac;\n};\n\nTreeNodeHolder.prototype.setValues = function (values) {\n  if (values[(0, _utils.keyStringOf)(this.item.value)]) {\n    this.selectAll(true);\n  } else {\n    this.child.forEach(function (c) {\n      return c.setValues(values);\n    });\n  }\n\n  this.updateFromChild();\n};\n\nTreeNodeHolder.prototype.toggle = function () {\n  var idx = this.findIdxInView();\n  var status = this.status;\n\n  if (status === 'close') {\n    this.itemElt.status = 'open';\n    this.status = 'open';\n    var arr = this.toArray();\n    arr.shift();\n    this.boxElt.viewHolders.splice.apply(this.boxElt.viewHolders, [idx + 1, 0].concat(arr));\n    this.boxElt.updateContentSize();\n    this.boxElt.viewListAt(idx);\n    this.boxElt.emit('toggleitem', {\n      type: 'toggleiteion',\n      target: this.boxElt,\n      nodeHolder: this,\n      status: 'open'\n    }, this.boxElt);\n  } else if (status === 'open') {\n    this.itemElt.status = 'close';\n    this.status = 'close';\n    var l = 0;\n\n    while (this.boxElt.viewHolders[idx + 1 + l] && this.boxElt.viewHolders[idx + 1 + l].isDescendantOf(this)) {\n      ++l;\n    }\n\n    this.boxElt.viewHolders.splice(idx + 1, l);\n    this.boxElt.updateContentSize();\n    this.boxElt.viewListAt(idx);\n    this.boxElt.emit('toggleitem', {\n      type: 'toggleiteion',\n      target: this.boxElt,\n      nodeHolder: this,\n      status: 'close'\n    }, this.boxElt);\n  }\n};\n/***\r\n *\r\n * @param {boolean=} isDownUpdate\r\n */\n\n\nTreeNodeHolder.prototype.selectAll = function (isDownUpdate) {\n  if (this.selected === 'all') return;\n  if (!this.canSelect) return;\n  if (this.canSelectAll) this.selected = 'all';else this.selected = 'child';\n  if (this.itemElt) this.itemElt.selected = this.selected;\n  this.child.forEach(function (child) {\n    child.selectAll(true);\n  });\n\n  if (!isDownUpdate) {\n    if (this.parent) this.parent.updateUp();\n  }\n};\n/***\r\n *\r\n * @param {boolean=} isDownUpdate\r\n */\n\n\nTreeNodeHolder.prototype.unselectAll = function (isDownUpdate) {\n  if (this.selected === 'none') return;\n  this.selected = 'none';\n  if (this.itemElt) this.itemElt.selected = this.selected;\n  this.child.forEach(function (child) {\n    child.unselectAll(true);\n  });\n\n  if (!isDownUpdate) {\n    if (this.parent) this.parent.updateUp();\n  }\n};\n\nTreeNodeHolder.prototype.updateFromChild = function () {\n  if (this.child.length === 0) return;\n  var childSelectAll = 0;\n  var childSelectChild = 0;\n\n  for (var i = 0; i < this.child.length; ++i) {\n    if (this.child[i].selected === 'all') {\n      childSelectAll++;\n    } else if (this.child[i].selected === 'child') {\n      childSelectChild++;\n    }\n  }\n\n  if (childSelectAll === this.child.length) {\n    this.selected = 'all';\n  } else if (childSelectChild + childSelectAll > 0) {\n    this.selected = 'child';\n  } else {\n    this.selected = 'none';\n  }\n\n  if (this.itemElt) {\n    this.itemElt.selected = this.selected;\n  }\n};\n\nTreeNodeHolder.prototype.updateUp = function () {\n  this.updateFromChild();\n  if (this.parent) this.parent.updateUp();\n};\n\nTreeNodeHolder.prototype.calcEstimateWidth = function () {\n  var width = 12; //padding\n\n  width += 23 * this.level;\n  width += 14.7 + 5; //toggle icon\n\n  width += 16; //checkbox\n\n  if (this.item.icon) width += 21; //icon\n\n  width += 7 + (0, _utils.estimateWidth14)(this.item.text); //margin-text\n\n  if (this.item.desc) width += 6 + (0, _utils.estimateWidth14)(this.item.desc) * 0.85;\n  return width;\n};\n\nTreeNodeHolder.prototype.calcWidth = function () {\n  var width = 12; //padding\n\n  width += 23 * this.level;\n  width += 14.7 + 5; //toggle icon\n\n  width += 16; //checkbox\n\n  if (this.item.icon) width += 21; //icon\n\n  width += 7 + (0, _utils.measureText)(this.item.text, '14px arial').width; //margin-text\n\n  if (this.item.desc) width += 6 + (0, _utils.measureText)(this.item.desc, '11.9px arial').width * 0.85;\n  return width;\n};\n\nTreeNodeHolder.prototype.isDescendantOf = function (parent) {\n  var cr = this.parent;\n\n  while (cr) {\n    if (parent === cr) return true;\n    cr = cr.parent;\n  }\n\n  return false;\n};\n/***\r\n *\r\n * @param {TreeNodeHolder[]=} ac\r\n * @return {TreeNodeHolder[]}\r\n */\n\n\nTreeNodeHolder.prototype.toArray = function (ac) {\n  ac = ac || [];\n  ac.push(this);\n\n  if (this.status === 'open') {\n    for (var i = 0; i < this.child.length; ++i) {\n      this.child[i].toArray(ac);\n    }\n  }\n\n  return ac;\n};\n\nTreeNodeHolder.prototype.traverse = function (cb) {\n  cb(this);\n  this.child.forEach(function (c) {\n    return c.traverse(cb);\n  });\n};\n\nObject.defineProperty(TreeNodeHolder.prototype, 'itemElt', {\n  set: function set(elt) {\n    if (this._elt === elt) return;\n\n    if (this._elt) {\n      if (this._elt.nodeHolder === this) {\n        this._elt.nodeHolder = null;\n      }\n    }\n\n    if (elt) {\n      if (elt.nodeHolder) {\n        elt.nodeHolder.itemElt = null;\n      }\n\n      elt.nodeHolder = this;\n      this._elt = elt;\n      elt.data = this.item;\n      elt.level = this.level;\n      elt.status = this.status;\n      elt.selected = this.selected;\n    } else {\n      this._elt = null;\n    }\n  },\n  get: function get() {\n    return this._elt;\n  }\n});\n\nTreeNodeHolder.prototype.findReferenceNode = function () {\n  var value = this.item.value;\n  var holders = this.boxElt.findItemHoldersByValue(value);\n  var holder;\n\n  for (var i = 0; i < holders.length; ++i) {\n    holder = holders[i];\n    if ((holder.item === this.item.ref || holder.item === this.item) && holder !== this) return holder;\n  }\n\n  return null;\n};\n\nTreeNodeHolder.prototype.getRoot = function () {\n  if (!this.parent) return this;\n  return this.parent.getRoot();\n};\n\nTreeNodeHolder.prototype.updateSelectedFromRef = function () {\n  var ref = this.findReferenceNode();\n  if (!ref) return;\n  var selected = ref.selected;\n  this.selected = selected;\n  if (this.itemElt) this.itemElt.selected = selected;\n  this.child.forEach(function (c) {\n    c.updateSelectedFromRef();\n  });\n};\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/CheckTreeBox.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/CheckTreeItem.js":
/*!******************************************************!*\
  !*** ./node_modules/absol-acomp/js/CheckTreeItem.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _ExpTree = __webpack_require__(/*! ./ExpTree */ \"./node_modules/absol-acomp/js/ExpTree.js\");\n\nvar _SelectListItem = __webpack_require__(/*! ./SelectListItem */ \"./node_modules/absol-acomp/js/SelectListItem.js\");\n\n__webpack_require__(/*! ../css/checktreeitem.css */ \"./node_modules/absol-acomp/css/checktreeitem.css\");\n\nvar _EventEmitter = __webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends ExpNode\r\n * @constructor\r\n */\nfunction CheckTreeItem() {\n  this._itemData = null;\n  this.$name = (0, _ACore.$)('span.absol-exp-node-name', this);\n  this.$desc = (0, _ACore.$)('span.absol-exp-node-desc', this);\n  this.$iconCtn = (0, _ACore.$)('div.absol-exp-node-ext-icon', this);\n  this.$level = (0, _ACore.$)('.absol-exp-node-level', this);\n  this.$checkbox = (0, _ACore.$)('checkboxbutton', this).on('change', this.eventHandler.checkboxChange);\n  this.$toggleIcon = (0, _ACore.$)('toggler-ico', this);\n  this.on('click', this.eventHandler.click);\n}\n\nCheckTreeItem.tag = 'CheckTreeItem'.toLowerCase();\n\nCheckTreeItem.render = function () {\n  return (0, _ACore._)({\n    tag: 'button',\n    extendEvent: ['select', 'presstoggle'],\n    \"class\": ['as-check-tree-item', 'absol-exp-node'],\n    child: ['.absol-exp-node-level', 'toggler-ico', 'checkboxbutton', 'img.absol-exp-node-ext-icon', 'div.absol-exp-node-ext-icon', 'span.absol-exp-node-name', 'span.absol-exp-node-desc']\n  });\n};\n\nCheckTreeItem.property = {};\nCheckTreeItem.property.icon = _ExpTree.ExpNode.property.icon;\nCheckTreeItem.property.text = _ExpTree.ExpNode.property.name;\nCheckTreeItem.property.level = _ExpTree.ExpNode.property.level;\nCheckTreeItem.property.desc = _ExpTree.ExpNode.property.desc;\nCheckTreeItem.property.status = _ExpTree.ExpNode.property.status;\nCheckTreeItem.property.data = {\n  set: function set(itemData) {\n    this._itemData = itemData;\n    var text = (0, _SelectListItem.getTextOfListItem)(itemData);\n    this.text = text;\n    this.attr('title', itemData.value + '');\n    var desc = (0, _SelectListItem.getDescriptionOfListItem)(itemData);\n    this.desc = desc;\n\n    if (itemData && itemData.icon) {\n      this.icon = itemData.icon;\n    } else {\n      this.icon = null;\n    }\n\n    this.noSelect = itemData.noSelect;\n  },\n  get: function get() {\n    return this._itemData;\n  }\n};\nCheckTreeItem.property.selected = {\n  set: function set(value) {\n    this._selected = value;\n    this.$checkbox.disabled = value === 'empty';\n\n    if (value === 'all') {\n      this.$checkbox.minus = false;\n      this.$checkbox.checked = true;\n    } else if (value === 'child') {\n      this.$checkbox.checked = false;\n      this.$checkbox.minus = true;\n    } else if (value === 'empty') {\n      this.$checkbox.minus = false;\n      this.$checkbox.checked = false;\n    } else {\n      this.$checkbox.minus = false;\n      this.$checkbox.checked = false;\n    }\n  },\n  get: function get() {\n    if (this.$checkbox.disabled) return 'empty';\n    if (this.$checkbox.checked) return 'all';else if (this.$checkbox.minus) return 'child';\n    return 'none';\n  }\n};\nCheckTreeItem.property.noSelect = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-no-select');\n    } else {\n      this.removeClass('as-no-select');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-no-select');\n  }\n};\nCheckTreeItem.eventHandler = {};\n\nCheckTreeItem.eventHandler.checkboxChange = function (event) {\n  this.emit('select', {\n    type: 'select',\n    target: this,\n    originalEvent: event.originalEvent || event.originEvent || event\n  });\n};\n\nCheckTreeItem.eventHandler.click = function (event) {\n  var tBound;\n\n  if (this.status === 'open' || this.status === 'close') {\n    tBound = this.$toggleIcon.getBoundingClientRect();\n\n    if (event.clientX <= tBound.right || this.noSelect) {\n      this.emit('presstoggle', {\n        type: 'presstoggle',\n        target: this,\n        originalEvent: event\n      }, this);\n    } else if (!(0, _EventEmitter.hitElement)(this.$checkbox, event) && !this.$checkbox.disabled) {\n      this.$checkbox.checked = !this.$checkbox.checked;\n      this.eventHandler.checkboxChange(event);\n    }\n  } else {\n    if (!(0, _EventEmitter.hitElement)(this.$checkbox, event) && !this.noSelect && !this.$checkbox.disabled) {\n      this.$checkbox.checked = !this.$checkbox.checked;\n      this.eventHandler.checkboxChange(event);\n    }\n  }\n};\n\n_ACore[\"default\"].install(CheckTreeItem);\n\nvar _default = CheckTreeItem;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/CheckTreeItem.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/CheckTreeLeafOnlyBox.js":
/*!*************************************************************!*\
  !*** ./node_modules/absol-acomp/js/CheckTreeLeafOnlyBox.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.TreeLeafOnlyNodeHolder = TreeLeafOnlyNodeHolder;\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _CheckTreeBox = _interopRequireWildcard(__webpack_require__(/*! ./CheckTreeBox */ \"./node_modules/absol-acomp/js/CheckTreeBox.js\"));\n\nvar _CheckTreeItem = _interopRequireDefault(__webpack_require__(/*! ./CheckTreeItem */ \"./node_modules/absol-acomp/js/CheckTreeItem.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _LanguageSystem = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/LanguageSystem */ \"./node_modules/absol/src/HTML5/LanguageSystem.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar normalizeItem = function normalizeItem(item) {\n  var nItem = Object.assign({}, item);\n\n  if (!nItem.isLeaf && nItem.noSelect) {\n    delete nItem.noSelect;\n  }\n\n  if (nItem.items && nItem.items.map) nItem.items = normalizeItems(nItem.items);\n  return nItem;\n};\n\nvar normalizeItems = function normalizeItems(items) {\n  return items.map(function (it) {\n    return normalizeItem(it);\n  });\n};\n/***\r\n * Only tree has leaf can be selected\r\n * @extends CheckTreeBox\r\n * @constructor\r\n */\n\n\nfunction CheckTreeLeafOnlyBox() {\n  _CheckTreeBox[\"default\"].apply(this, arguments);\n}\n\nCheckTreeLeafOnlyBox.tag = 'CheckTreeLeafOnlyBox'.toLowerCase();\n\nCheckTreeLeafOnlyBox.render = function () {\n  return (0, _ACore._)({\n    tag: 'follower',\n    extendEvent: ['change', 'toggleitem', 'cancel', 'close'],\n    \"class\": ['as-check-tree-leaf-only-box', 'as-check-tree-box', 'as-select-list-box', 'as-anchor-1'],\n    child: [{\n      \"class\": 'as-select-list-box-search-ctn',\n      child: 'searchtextinput'\n    }, {\n      \"class\": ['as-check-tree-box-scroller', 'as-bscroller', 'as-select-list-box-scroller'],\n      child: {\n        \"class\": ['as-check-tree-box-content', 'as-select-list-box-content'],\n        child: Array(this.prototype.preLoadN).fill('.as-select-list-box-page')\n      }\n    }, {\n      \"class\": 'as-dropdown-box-footer',\n      child: [{\n        tag: 'checkbox',\n        \"class\": 'as-select-list-box-check-all',\n        props: {\n          checked: false,\n          text: _LanguageSystem[\"default\"].getText('txt_check_all') || _LanguageSystem[\"default\"].getText('txt_all') || 'Check All'\n        }\n      }, {\n        \"class\": 'as-dropdown-box-footer-right',\n        child: [{\n          tag: 'a',\n          \"class\": 'as-select-list-box-cancel-btn',\n          attr: {\n            \"data-ml-key\": 'txt_cancel'\n          }\n        }, {\n          tag: 'a',\n          \"class\": 'as-select-list-box-close-btn',\n          attr: {\n            \"data-ml-key\": 'txt_close'\n          }\n        }]\n      }]\n    }],\n    props: {\n      anchor: [1, 6, 2, 5]\n    }\n  });\n};\n\nObject.assign(CheckTreeLeafOnlyBox.prototype, _CheckTreeBox[\"default\"].prototype);\nCheckTreeLeafOnlyBox.property = Object.assign({}, _CheckTreeBox[\"default\"].property);\nCheckTreeLeafOnlyBox.eventHandler = Object.assign({}, _CheckTreeBox[\"default\"].eventHandler);\nCheckTreeLeafOnlyBox.prototype._pool = [];\nCheckTreeLeafOnlyBox.property.items = {\n  get: _CheckTreeBox[\"default\"].property.items.get,\n  set: function set(items) {\n    items = normalizeItems(items || []);\n\n    _CheckTreeBox[\"default\"].property.items.set.call(this, items);\n  }\n};\n\nCheckTreeLeafOnlyBox.prototype._requestItem = function () {\n  var res = this._pool.pop() || (0, _ACore._)({\n    tag: _CheckTreeItem[\"default\"].tag,\n    \"class\": 'as-check-tree-leaf-only-item',\n    props: {\n      menuElt: this\n    },\n    on: {\n      presstoggle: function presstoggle(event) {\n        this.menuElt.eventHandler.toggleItem(this, event);\n      },\n      select: function select(event) {\n        this.menuElt.eventHandler.selectItem(this, event);\n      }\n    }\n  });\n  res.menuElt = this;\n  return res;\n};\n\nCheckTreeLeafOnlyBox.prototype.HolderClass = TreeLeafOnlyNodeHolder;\n\n_ACore[\"default\"].install(CheckTreeLeafOnlyBox);\n\nvar _default = CheckTreeLeafOnlyBox;\n/***\r\n * @extends TreeRootHolder\r\n * @param {CheckTreeLeafOnlyBox} boxElt\r\n * @param items\r\n * @constructor\r\n */\n\nexports[\"default\"] = _default;\n\nfunction TreeLeafOnlyRootHolder(boxElt, items) {\n  _CheckTreeBox.TreeRootHolder.apply(this, arguments);\n}\n\nCheckTreeLeafOnlyBox.prototype.RootHolderClass = TreeLeafOnlyRootHolder;\n\n_OOP[\"default\"].mixClass(TreeLeafOnlyRootHolder, _CheckTreeBox.TreeRootHolder);\n/***\r\n * @extends TreeNodeHolder\r\n * @constructor\r\n */\n\n\nfunction TreeLeafOnlyNodeHolder() {\n  _CheckTreeBox.TreeNodeHolder.apply(this, arguments);\n  /***\r\n   * @memberOf  TreeLeafOnlyNodeHolder#\r\n   * @type {number}\r\n   */\n\n\n  this.leafCount = 0;\n\n  if (this.item.isLeaf) {\n    this.leafCount = 1;\n  } else {\n    this.leafCount = this.child.reduce(function (ac, c) {\n      return ac + c.leafCount;\n    }, 0);\n  }\n\n  if (this.child.length > 0) {\n    this.item.noSelect = this.child.every(function (c) {\n      return c.item.noSelect;\n    }); //all child is noSelect=> noSelect\n  }\n\n  this.canSelect = this.canSelect && this.leafCount > 0;\n  this.canSelectAll = this.canSelect && !this.item.noSelect && this.child.every(function (c) {\n    return c.canSelectAll || c.leafCount === 0;\n  });\n  if (this.leafCount === 0) this.selected = 'empty';\n}\n\n_OOP[\"default\"].mixClass(TreeLeafOnlyNodeHolder, _CheckTreeBox.TreeNodeHolder);\n\nTreeLeafOnlyRootHolder.prototype.SubHolderClass = TreeLeafOnlyNodeHolder;\n/***\r\n *\r\n * @param {boolean=} isDownUpdate\r\n */\n\nTreeLeafOnlyNodeHolder.prototype.selectAll = function (isDownUpdate) {\n  if (this.selected === 'empty') return;\n  return _CheckTreeBox.TreeNodeHolder.prototype.selectAll.apply(this, arguments);\n};\n\nTreeLeafOnlyNodeHolder.prototype.unselectAll = function (isDownUpdate) {\n  if (this.selected === 'empty') return;\n  return _CheckTreeBox.TreeNodeHolder.prototype.unselectAll.apply(this, arguments);\n};\n\nTreeLeafOnlyNodeHolder.prototype.updateFromChild = function () {\n  if (this.child.length === 0) return;\n  var count = this.child.reduce(function (ac, cr) {\n    ac[cr.selected]++;\n    return ac;\n  }, {\n    all: 0,\n    child: 0,\n    none: 0,\n    empty: 0\n  });\n\n  if (count.empty === this.child.length) {\n    this.selected = 'empty';\n  } else if (count.empty + count.all === this.child.length) {\n    this.selected = 'all';\n  } else if (count.all + count.child > 0) {\n    this.selected = 'child';\n  } else {\n    this.selected = 'none';\n  }\n\n  if (this.itemElt) {\n    this.itemElt.selected = this.selected;\n  }\n};\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/CheckTreeLeafOnlyBox.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/CheckboxButton.js":
/*!*******************************************************!*\
  !*** ./node_modules/absol-acomp/js/CheckboxButton.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/checkboxbutton.css */ \"./node_modules/absol-acomp/css/checkboxbutton.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _CheckBoxInput = _interopRequireDefault(__webpack_require__(/*! ./CheckBoxInput */ \"./node_modules/absol-acomp/js/CheckBoxInput.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n_ACore[\"default\"].install('checkboxbutton', _CheckBoxInput[\"default\"]);\n\nvar _default = _CheckBoxInput[\"default\"];\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/CheckboxButton.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/ChromeCalendar.js":
/*!*******************************************************!*\
  !*** ./node_modules/absol-acomp/js/ChromeCalendar.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/chromecalendar.css */ \"./node_modules/absol-acomp/css/chromecalendar.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar datetime = _interopRequireWildcard(__webpack_require__(/*! absol/src/Time/datetime */ \"./node_modules/absol/src/Time/datetime.js\"));\n\nvar _EventEmitter = _interopRequireWildcard(__webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _Scroller = __webpack_require__(/*! ./Scroller */ \"./node_modules/absol-acomp/js/Scroller.js\");\n\nvar _DomSignal = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/DomSignal */ \"./node_modules/absol/src/HTML5/DomSignal.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/**\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction ChromeCalendar() {\n  var thisCal = this;\n  this._startDayOfWeek = 0; // getDefaultFirstDayOfWeek();\n\n  this._level = \"day\";\n  this.$years = $('.absol-chrome-calendar-years', this);\n\n  this._fillYearList(this.$years);\n\n  this.$title = $('.absol-chrome-calendar-title', this).on('click', this.eventHandler.clickTitle);\n  this.$titleTime = $('.title-time', this.$title);\n  this.$instance = $('.absol-chrome-calendar-instance', this);\n  this.$era = $('.absol-chrome-calendar-era', this).on('scroll', this.eventHandler.eraScroll).on('click', this.eventHandler.clickEra);\n\n  this._fillEra();\n\n  this.$month = $('.absol-chrome-calendar-month', this);\n  this.$dayOfWeek = $('.absol-chrome-calendar-dayofweek', this);\n  this._min = new Date(1890, 0, 1);\n  this._max = new Date(2090, 0, 1);\n  this._selectedDates = [datetime.beginOfDay(new Date())];\n  this._viewDate = new Date();\n  this.$prevBtn = $('.absol-chrome-calendar-header-buttons > button.prev-btn', this).on('click', this.eventHandler.clickPrev);\n  this.$todayBtn = $('.absol-chrome-calendar-header-buttons > button.today-btn', this).on('click', this.eventHandler.clickToday);\n  this.$nextBtn = $('.absol-chrome-calendar-header-buttons > button.next-btn', this).on('click', this.eventHandler.clickNext);\n  /***\r\n   *\r\n   * @type {VScroller}\r\n   */\n\n  this.$yearScroller = $('vscroller.absol-chrome-calendar-years', this);\n  this.$yearItems = [];\n  $('.absol-chrome-calendar-year', this.$yearScroller, function (e) {\n    thisCal.$yearItems.push(e);\n  });\n  this.$attachHook = _('attachhook').addTo(this);\n  this.domSignal = new _DomSignal[\"default\"](this.$attachHook).on('level_change', this.eventHandler.levelChange).on('request_update_buttons', this._updateButtons.bind(this)).on('request_update_month', this._updateMonth.bind(this, this.$month)).on('request_update_open_year', this._updateOpenYear.bind(this)).on('request_update_disabled_year_in_era', this._updateDisabledYearInEra.bind(this)).on('request_update_picked_years', this._updatePickedYears.bind(this));\n  this.sync = new Promise(function (rs) {\n    thisCal.$attachHook.on('attached', rs);\n  });\n  this.domSignal.emit('level_change');\n  this.sync.then('attached', function () {\n    thisCal.$yearScroller.requestUpdateSize();\n    thisCal.expandYear(thisCal._viewDate.getFullYear());\n\n    thisCal._updateYearInEra();\n  });\n\n  _OOP[\"default\"].drillProperty(this, this, 'minLimitDate', 'min');\n\n  _OOP[\"default\"].drillProperty(this, this, 'minDateLimit', 'min');\n\n  _OOP[\"default\"].drillProperty(this, this, 'maxLimitDate', 'max');\n\n  _OOP[\"default\"].drillProperty(this, this, 'maxDateLimit', 'max');\n\n  this.startDayOfWeek = (0, datetime.getDefaultFirstDayOfWeek)();\n}\n\nChromeCalendar.tag = 'ChromeCalendar'.toLowerCase();\n\nChromeCalendar.render = function () {\n  return _({\n    \"class\": ['absol-chrome-calendar'],\n    attr: {\n      'data-level': 'day'\n    },\n    extendEvent: 'pick',\n    child: [{\n      \"class\": 'absol-chrome-calendar-header',\n      child: [{\n        \"class\": 'absol-chrome-calendar-title',\n        child: [{\n          tag: 'span',\n          \"class\": 'title-time',\n          child: {\n            text: 'Septemper, 2019'\n          }\n        }]\n      }, {\n        \"class\": 'absol-chrome-calendar-header-buttons',\n        child: [{\n          tag: 'button',\n          \"class\": 'prev-btn',\n          child: 'span.mdi.mdi-menu-left',\n          attr: {\n            title: 'Previous Month'\n          }\n        }, {\n          tag: 'button',\n          \"class\": 'today-btn',\n          child: 'span.mdi.mdi-circle-medium',\n          attr: {\n            title: 'Today'\n          }\n        }, {\n          tag: 'button',\n          \"class\": 'next-btn',\n          child: 'span.mdi.mdi-menu-right',\n          attr: {\n            title: 'Next Month'\n          }\n        }]\n      }]\n    }, {\n      \"class\": 'absol-chrome-calendar-instance',\n      child: [{\n        \"class\": 'absol-chrome-calendar-dayofweek',\n        child: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'].map(function (text) {\n          return {\n            child: {\n              text: text\n            }\n          };\n        })\n      }, {\n        \"class\": 'absol-chrome-calendar-month',\n        child: Array(6).fill(0).map(function (u, i) {\n          return {\n            \"class\": 'absol-chrome-calendar-week-in-month',\n            child: Array(7).fill(0).map(function (v, j) {\n              return {\n                child: {\n                  text: i * 7 + j + ''\n                }\n              };\n            })\n          };\n        })\n      }, {\n        tag: 'vscroller',\n        \"class\": 'absol-chrome-calendar-years',\n        child: {}\n      }, {\n        \"class\": \"absol-chrome-calendar-era\"\n      }]\n    }]\n  });\n};\n/**\r\n * @param {Date} date\r\n * @returns {Boolean}\r\n */\n\n\nChromeCalendar.prototype._isSelectedDate = function (date) {\n  for (var i = 0; i < this._selectedDates.length; ++i) {\n    if ((0, datetime.compareDate)(date, this._selectedDates[i]) === 0) return true;\n  }\n\n  return false;\n};\n/**\r\n * @param {Date} date\r\n * @returns {Boolean}\r\n */\n\n\nChromeCalendar.prototype._isSelectedMonth = function (date) {\n  for (var i = 0; i < this._selectedDates.length; ++i) {\n    if ((0, datetime.compareMonth)(date, this._selectedDates[i]) === 0) return true;\n  }\n\n  return false;\n};\n/**\r\n * @param {Date} date\r\n * @returns {Boolean}\r\n */\n\n\nChromeCalendar.prototype._isSelectedQuarter = function (date) {\n  for (var i = 0; i < this._selectedDates.length; ++i) {\n    if ((0, datetime.compareMonth)((0, datetime.beginOfQuarter)(date), (0, datetime.beginOfQuarter)(this._selectedDates[i])) === 0) return true;\n  }\n\n  return false;\n};\n/**\r\n * @param {Date} date\r\n * @returns {Boolean}\r\n */\n\n\nChromeCalendar.prototype._isSelectedYear = function (date) {\n  for (var i = 0; i < this._selectedDates.length; ++i) {\n    if (date.getFullYear() === this._selectedDates[i].getFullYear()) return true;\n  }\n\n  return false;\n};\n\nChromeCalendar.prototype._dayCmpLimit = function (date) {\n  if ((0, datetime.compareDate)(date, this._min) < 0) return -1;\n  if ((0, datetime.compareDate)(date, this._max) > 0) return 1;\n  return 0;\n};\n\nChromeCalendar.prototype._monthCmpLimit = function (date) {\n  var startOfMonth = (0, datetime.beginOfMonth)(date);\n  var endOfMonth = (0, datetime.nextMonth)(date);\n  var minMil = Math.max(startOfMonth.getTime(), this._min.getTime());\n  var maxMil = Math.min(endOfMonth.getTime(), (0, datetime.nextDate)(this._max).getTime());\n  if (minMil < maxMil) return 0;\n  return this._dayCmpLimit(date);\n};\n\nChromeCalendar.prototype._yearCmpLimit = function (date) {\n  var startOfYear = (0, datetime.beginOfYear)(date);\n  var endOfYear = new Date(date.getFullYear() + 1, 0, 1);\n  var minMil = Math.max(startOfYear.getTime(), this._min.getTime());\n  var maxMil = Math.min(endOfYear.getTime(), (0, datetime.nextDate)(this._max).getTime());\n  if (minMil < maxMil) return 0;\n  return this._dayCmpLimit(date);\n};\n/***\r\n *\r\n * @param {Date} date\r\n * @param event\r\n */\n\n\nChromeCalendar.prototype.pickDate = function (date, event) {\n  date = (0, datetime.beginOfDay)(date);\n  this._selectedDates = [date];\n\n  this._updateMonth(this.$month);\n\n  if (this.$lastOpenYearItem) this.$lastOpenYearItem.$months.updateActiveMonth();\n  this.emit('pick', {\n    type: 'pick',\n    value: date,\n    isTrusted: event && event.isTrusted,\n    originEvent: event,\n    selectedDates: this.selectedDates\n  });\n};\n/***\r\n *\r\n * @param {Date} date\r\n * @param event\r\n */\n\n\nChromeCalendar.prototype.pickMonth = function (date, event) {\n  date = (0, datetime.beginOfMonth)(date);\n  this._selectedDates = [date];\n  if (this.$lastOpenYearItem) this.$lastOpenYearItem.$months.updateActiveMonth();\n  this.emit('pick', {\n    type: 'pick',\n    value: date,\n    isTrusted: event && event.isTrusted,\n    originEvent: event,\n    selectedDates: this.selectedDates\n  });\n};\n\nChromeCalendar.prototype._updatePickedYears = function () {\n  var yearElt;\n  var self = this;\n\n  while (this.$lastPickYears && this.$lastPickYears.length > 0) {\n    yearElt = this.$lastPickYears.pop();\n    yearElt.removeClass('absol-chrome-calendar-selected');\n  }\n\n  this.$lastPickYears = this._selectedDates.map(function (date) {\n    var yearElt = self._yearInAre(date.getFullYear());\n\n    yearElt.addClass('absol-chrome-calendar-selected');\n    return yearElt;\n  });\n};\n\nChromeCalendar.prototype.pickYear = function (year, event) {\n  var date = new Date(year, 0, 1, 0, 0, 0, 0);\n  this._selectedDates = [date];\n  this.domSignal.emit('request_update_picked_years');\n  this.scrollIntoDecade(Math.floor(year / 10) * 10, true);\n  this.emit('pick', {\n    type: 'pick',\n    value: date,\n    isTrusted: event && event.isTrusted,\n    originEvent: event\n  });\n};\n/**\r\n * @param {Element} monthElt\r\n * @param {Date} date\r\n */\n\n\nChromeCalendar.prototype._fillMonth = function (monthElt, date) {\n  var self = this;\n\n  if (monthElt.$cells === undefined) {\n    //for faster, attach event to element\n    monthElt.$cells = [];\n    Array.prototype.forEach.call(monthElt.childNodes, function (row) {\n      row.on('click', function (event) {\n        if (event.target !== this) return;\n        var pickedElt = this.firstChild;\n        var pickDate = this.firstChild.__date__;\n        self.pickDate(pickDate, event);\n\n        if (pickedElt.hasClass('absol-chrome-calendar-not-in-month')) {\n          if (pickDate.getDate() < 15) {\n            self.viewNexMonth();\n          } else {\n            self.viewPrevMonth();\n          }\n        }\n      });\n    });\n    $('.absol-chrome-calendar-week-in-month > div', this.$month, function (elt) {\n      monthElt.$cells.push(elt);\n      elt.on('click', function (event) {\n        var pickedElt = elt;\n        var pickDate = this.__date__;\n\n        if (self._level === 'week') {\n          pickDate = (0, datetime.beginOfWeek)(pickDate, false, self._startDayOfWeek);\n          pickedElt = elt.parentElement.firstChild;\n        }\n\n        self.pickDate(pickDate, event);\n\n        if (pickedElt.hasClass('absol-chrome-calendar-not-in-month')) {\n          if (pickDate.getDate() < 15) {\n            self.viewNexMonth();\n          } else {\n            self.viewPrevMonth();\n          }\n        }\n      });\n    });\n  }\n\n  var currentDate = datetime.beginOfWeek(datetime.beginOfMonth(date), false, this._startDayOfWeek);\n  var d;\n  var cell;\n\n  for (var i = 0; i < monthElt.$cells.length; ++i) {\n    cell = monthElt.$cells[i];\n    d = currentDate.getDate();\n    cell.innerHTML = '' + d;\n    cell.__date__ = datetime.beginOfDay(currentDate);\n    currentDate = datetime.nextDate(currentDate);\n  }\n\n  Array.prototype.forEach.call(monthElt.childNodes, function (row) {\n    var weekIdx = (0, datetime.weekIndexOf)(row.firstChild.__date__, false, self._startDayOfWeek);\n    row.attr('data-week-idx-text', (0, _utils.zeroPadding)(1 + weekIdx, 2) + '');\n  });\n};\n\nChromeCalendar.prototype._updateMonth = function (monthElt) {\n  if (!monthElt.$cells) return; // days weren't filled\n\n  var now = new Date();\n\n  var viewM = this._viewDate.getMonth();\n\n  var m;\n  var cell;\n  var currentDate;\n  var selectedWeeks = {};\n\n  for (var i = 0; i < monthElt.$cells.length; ++i) {\n    cell = monthElt.$cells[i];\n    currentDate = cell.__date__;\n    m = currentDate.getMonth();\n    if (m != viewM) cell.addClass('absol-chrome-calendar-not-in-month');else cell.removeClass('absol-chrome-calendar-not-in-month');\n    if (datetime.compareDate(currentDate, now) === 0) cell.addClass('absol-chrome-calendar-today');else cell.removeClass('absol-chrome-calendar-today');\n\n    if (this._isSelectedDate(currentDate)) {\n      cell.addClass('absol-chrome-calendar-selected');\n      selectedWeeks[(0, datetime.weekIndexOf)(currentDate, false, this._startDayOfWeek)] = true;\n    } else cell.removeClass('absol-chrome-calendar-selected');\n\n    if (datetime.compareDate(this._min, currentDate) > 0 || datetime.compareDate(currentDate, this._max) > 0) {\n      cell.addClass('absol-chrome-calendar-date-disabled');\n    } else {\n      cell.removeClass('absol-chrome-calendar-date-disabled');\n    }\n  }\n\n  Array.prototype.forEach.call(monthElt.childNodes, function (row) {\n    var weekIdx = (0, datetime.weekIndexOf)(row.firstChild.__date__, false, this._startDayOfWeek);\n\n    if (selectedWeeks[weekIdx]) {\n      row.addClass('as-week-selected');\n    } else {\n      row.removeClass('as-week-selected');\n    }\n  }.bind(this));\n};\n\nChromeCalendar.prototype._fillYearList = function (ctn) {\n  var thisCal = this;\n\n  _({\n    child: Array(200).fill(0).map(function (u, i) {\n      return {\n        \"class\": 'absol-chrome-calendar-year',\n        child: [{\n          \"class\": 'absol-chrome-calendar-year-head',\n          child: {\n            text: i + 1890 + ''\n          }\n        }],\n        props: {\n          __year__: i + 1890\n        },\n        on: {\n          click: function click() {\n            thisCal.expandYear(this.__year__);\n          }\n        }\n      };\n    })\n  }).addTo(ctn);\n};\n\nChromeCalendar.prototype._fillEra = function () {\n  var now = new Date();\n  var cYear = now.getFullYear();\n  var rows = Array(50).fill(0).map(function (u, i) {\n    return _({\n      \"class\": 'absol-chrome-calendar-era-row',\n      child: Array(4).fill(0).map(function (u1, j) {\n        var classList = ['absol-chrome-calendar-era-year'];\n        var year = 1890 + i * 4 + j;\n\n        if (cYear === year) {\n          classList.push('absol-chrome-calendar-today');\n        }\n\n        return {\n          \"class\": classList,\n          child: {\n            text: year + ''\n          },\n          props: {\n            __year__: year\n          }\n        };\n      })\n    });\n  });\n  this.$era.addChild(rows);\n};\n\nChromeCalendar.prototype.viewNexMonth = function () {\n  var self = this;\n  this.sync = this.sync.then(function () {\n    return new Promise(function (rs) {\n      var oldBound = self.$month.getBoundingClientRect();\n      var oldMonth = self.$month.cloneNode(true);\n      var instanceBound = self.$instance.getBoundingClientRect();\n\n      if (self.$lastAnimationCtn) {\n        self.$lastAnimationCtn.removeClass('new').addClass('old');\n      }\n\n      var oldMonthCnt = _({\n        \"class\": ['absol-chrome-calendar-month-animation-container', 'old'],\n        style: {\n          top: oldBound.top - instanceBound.top + 'px',\n          height: oldBound.height + 'px',\n          width: oldBound.width + 'px'\n        },\n        child: oldMonth\n      }).addTo(self.$instance);\n\n      self._viewDate = datetime.nextMonth(self._viewDate);\n      self.viewMonth();\n      var newMonth = self.$month.cloneNode(true);\n      var overlap = 0;\n      var j = 41;\n\n      while (j >= 0 && self.$month.$cells[j].hasClass('absol-chrome-calendar-not-in-month')) {\n        overlap += oldBound.height / 6;\n        j -= 7;\n      }\n\n      var newMonthCtn = _({\n        \"class\": ['absol-chrome-calendar-month-animation-container', 'new'],\n        style: {\n          top: oldBound.top + oldBound.height - instanceBound.top - overlap + 'px',\n          height: oldBound.height + 'px',\n          width: oldBound.width + 'px'\n        },\n        child: newMonth\n      }).addTo(self.$instance);\n\n      self.$lastAnimationCtn = newMonthCtn;\n      setTimeout(function () {\n        oldMonthCnt.addStyle('top', oldBound.top - oldBound.height + overlap - instanceBound.top + 'px');\n        newMonthCtn.addStyle('top', oldBound.top - instanceBound.top + 'px');\n      }, 20);\n      setTimeout(function () {\n        self.$lastAnimationCtn = undefined;\n        oldMonthCnt.remove();\n        newMonthCtn.remove();\n      }, 220);\n      setTimeout(rs, 22);\n    });\n  });\n  return this.sync;\n};\n\nChromeCalendar.prototype.viewPrevMonth = function () {\n  var self = this;\n  this.sync = this.sync.then(function () {\n    return new Promise(function (rs) {\n      var oldBound = self.$month.getBoundingClientRect();\n      var oldMonth = self.$month.cloneNode(true);\n      var instanceBound = self.$instance.getBoundingClientRect();\n\n      if (self.$lastAnimationCtn) {\n        self.$lastAnimationCtn.removeClass('new').addClass('old');\n      }\n\n      var oldMonthCnt = _({\n        \"class\": ['absol-chrome-calendar-month-animation-container', 'old'],\n        style: {\n          top: oldBound.top - instanceBound.top + 'px',\n          height: oldBound.height + 'px',\n          width: oldBound.width + 'px'\n        },\n        child: oldMonth\n      }).addTo(self.$instance);\n\n      self._viewDate = datetime.prevMonth(self._viewDate);\n      self.viewMonth();\n      var newMonth = self.$month.cloneNode(true);\n      var overlap = 0;\n      var j = 0;\n\n      while (j < 42 && self.$month.$cells[j].hasClass('absol-chrome-calendar-not-in-month')) {\n        overlap += oldBound.height / 6;\n        j += 7;\n      }\n\n      var newMonthCtn = _({\n        \"class\": ['absol-chrome-calendar-month-animation-container', 'new'],\n        style: {\n          top: oldBound.top - oldBound.height + overlap - instanceBound.top + 'px',\n          height: oldBound.height + 'px',\n          width: oldBound.width + 'px'\n        },\n        child: newMonth\n      }).addTo(self.$instance);\n\n      self.$lastAnimationCtn = newMonthCtn;\n      setTimeout(function () {\n        oldMonthCnt.addStyle('top', oldBound.top + oldBound.height - overlap - instanceBound.top + 'px');\n        newMonthCtn.addStyle('top', oldBound.top - instanceBound.top + 'px');\n      }, 20);\n      setTimeout(function () {\n        self.$lastAnimationCtn = undefined;\n        oldMonthCnt.remove();\n        newMonthCtn.remove();\n      }, 220);\n      setTimeout(rs, 22);\n    });\n  });\n  return this.sync;\n};\n\nChromeCalendar.prototype.viewToday = function () {\n  this._viewDate = new Date();\n\n  switch (this._level) {\n    case \"day\":\n    case 'week':\n      this.viewMonth();\n      break;\n\n    case \"month\":\n    case \"quarter\":\n      this.viewYear();\n      break;\n\n    case \"year\":\n      this.viewEra(true);\n      break;\n  }\n};\n\nChromeCalendar.prototype.viewMonth = function () {\n  this._updateButtons();\n\n  this.attr('data-view', 'month');\n\n  this._fillMonth(this.$month, this._viewDate);\n\n  this._updateMonth(this.$month);\n\n  this.$titleTime.innerHTML = datetime.formatDateString(this._viewDate, 'mmmm, yyyy');\n};\n\nChromeCalendar.prototype.viewYear = function () {\n  this.attr('data-view', 'year');\n  this.removeClass('view-month').removeClass('view-era').addClass('view-year');\n  this.expandYear(this._viewDate.getFullYear());\n  this.$yearScroller.requestUpdateSize();\n\n  if (this._level === 'month' || this._level === 'quarter') {\n    this.$titleTime.innerHTML = datetime.formatDateString(this._viewDate, 'yyyy');\n  }\n};\n\nChromeCalendar.prototype.viewEra = function (animation) {\n  this.attr('data-view', 'era');\n  this.removeClass('view-month').removeClass('view-year').addClass('view-era');\n  this.scrollIntoDecade(Math.floor(this._viewDate.getFullYear() / 10) * 10, animation);\n};\n\nChromeCalendar.prototype.viewNextDecade = function (animation) {\n  this._viewDate = new Date(Math.min(2080, Math.floor(this._viewDate.getFullYear() / 10) * 10 + 10), 0, 1);\n  this._viewDate = new Date(Math.min(this._viewDate.getTime(), (0, datetime.prevDate)(this._max).getTime()));\n  this.viewEra(animation);\n};\n\nChromeCalendar.prototype.viewPrevDecade = function (animation) {\n  this._viewDate = new Date(Math.max(1890, Math.floor(this._viewDate.getFullYear() / 10) * 10 - 10), 0, 1);\n  this._viewDate = new Date(Math.max(this._viewDate.getTime(), this._min.getTime()));\n  this.viewEra(animation);\n};\n\nChromeCalendar.prototype.expandYear = function (year) {\n  if (this._level === 'month' || this._level === 'quarter') {\n    this._viewDate = new Date(year, 0, 1);\n    this.$titleTime.innerHTML = (0, datetime.formatDateString)(this._viewDate, 'yyyy');\n    this.domSignal.emit('request_update_buttons');\n  }\n\n  var fontSize = this.getFontSize();\n  var self = this;\n  var lastItemElt = this.$lastOpenYearItem;\n  var itemElt = this.$yearItems[year - 1890];\n  var lastYear = 100000000;\n\n  if (lastItemElt && lastItemElt.__year__ !== year) {\n    lastYear = lastItemElt.__year__;\n    lastItemElt.addClass('start-closing');\n    setTimeout(function () {\n      lastItemElt.removeClass('start-closing').addClass('closing');\n    }, 0);\n    setTimeout(function () {\n      lastItemElt.removeClass('closing');\n      lastItemElt.$months.remove();\n      lastItemElt.$months = undefined;\n    }, 100);\n  }\n\n  if (lastItemElt !== itemElt) {\n    if (!itemElt.$months) {\n      itemElt.$months = this._createMonths(year).addTo(itemElt);\n      itemElt.addClass('start-opening');\n      setTimeout(function () {\n        itemElt.removeClass('start-opening').addClass('opening');\n      }, 1);\n      setTimeout(function () {\n        itemElt.removeClass('opening');\n      }, 100);\n    }\n  }\n\n  var dy = itemElt.getBoundingClientRect().top - self.$yearScroller.getBoundingClientRect().top - fontSize * 0.45;\n\n  if (itemElt.__year__ > lastYear) {\n    dy -= 6 * fontSize;\n  }\n\n  self.$yearScroller.scrollBy(dy, 100);\n  this.$lastOpenYearItem = itemElt;\n  itemElt.$months.updateActiveMonth();\n};\n\nChromeCalendar.prototype.scrollIntoDecade = function (startYear, animation) {\n  if (!this.isDescendantOf(document.body)) {\n    return this;\n  }\n\n  var thisCal = this;\n  return new Promise(function (resolve) {\n    var eraBound = thisCal.$era.getBoundingClientRect();\n    var rowIdx = Math.floor((startYear - 1890) / 4);\n\n    if (thisCal._decadeScrollTimeout > 0) {\n      clearTimeout(thisCal._decadeScrollTimeout);\n      thisCal._decadeScrollTimeout = -1;\n    }\n\n    if (thisCal.scrollIntoDecadeResolve) {\n      thisCal.scrollIntoDecadeResolve();\n      thisCal.scrollIntoDecadeResolve = null;\n    }\n\n    thisCal.scrollIntoDecadeResolve = resolve;\n    var t0 = new Date().getTime();\n    var t1 = t0 + 250;\n    var y0 = thisCal.$era.scrollTop;\n    var y1 = rowIdx * eraBound.height / 4;\n\n    if (animation) {\n      thisCal._decadeScrollTimeout = setTimeout(function tick() {\n        var tc = new Date().getTime();\n        var yc = Math.min(1, Math.pow((tc - t0) / (t1 - t0), 2)) * (y1 - y0) + y0;\n        thisCal.$era.scrollTop = yc;\n        console.log(yc);\n\n        if (tc < t1) {\n          thisCal._decadeScrollTimeout = setTimeout(tick, 500);\n        } else {\n          thisCal._decadeScrollTimeout = -1;\n          thisCal.scrollIntoDecadeResolve = null;\n          resolve();\n        }\n      }, 500);\n    } else {\n      thisCal.$era.scrollTop = y1;\n    }\n  });\n};\n\nChromeCalendar.prototype._updateButtons_day = function () {\n  if (this._monthCmpLimit((0, datetime.prevMonth)(this._viewDate)) < 0) {\n    this.$prevBtn.addClass('absol-chrome-calendar-button-disabled');\n  } else {\n    this.$prevBtn.removeClass('absol-chrome-calendar-button-disabled');\n  }\n\n  if (this._monthCmpLimit((0, datetime.nextMonth)(this._viewDate)) > 0) {\n    this.$nextBtn.addClass('absol-chrome-calendar-button-disabled');\n  } else {\n    this.$nextBtn.removeClass('absol-chrome-calendar-button-disabled');\n  }\n\n  var now = new Date();\n\n  if (this._monthCmpLimit(now) === 0) {\n    this.$todayBtn.removeClass('absol-chrome-calendar-button-disabled');\n  } else {\n    this.$todayBtn.addClass('absol-chrome-calendar-button-disabled');\n  }\n};\n\nChromeCalendar.prototype._updateButtons_week = ChromeCalendar.prototype._updateButtons_day;\n\nChromeCalendar.prototype._updateButtons_year = function () {\n  if (!this._viewDate) return;\n  var year = Math.floor(this._viewDate.getFullYear() / 10) * 10;\n\n  if (this._yearCmpLimit(new Date(year - 1, 0, 1)) < 0) {\n    this.$prevBtn.addClass('absol-chrome-calendar-button-disabled');\n  } else {\n    this.$prevBtn.removeClass('absol-chrome-calendar-button-disabled');\n  }\n\n  if (this._yearCmpLimit(new Date(year + 10, 0, 1)) > 0) {\n    this.$nextBtn.addClass('absol-chrome-calendar-button-disabled');\n  } else {\n    this.$nextBtn.removeClass('absol-chrome-calendar-button-disabled');\n  }\n\n  var now = new Date();\n\n  if (this._yearCmpLimit(now) === 0) {\n    this.$todayBtn.removeClass('absol-chrome-calendar-button-disabled');\n  } else {\n    this.$todayBtn.addClass('absol-chrome-calendar-button-disabled');\n  }\n};\n\nChromeCalendar.prototype._updateButtons_month = function () {\n  if (this._yearCmpLimit(new Date(this._viewDate.getFullYear() + 1, 0, 1)) > 0) {\n    this.$nextBtn.addClass('absol-chrome-calendar-button-disabled');\n  } else {\n    this.$nextBtn.removeClass('absol-chrome-calendar-button-disabled');\n  }\n\n  if (this._yearCmpLimit(new Date(this._viewDate.getFullYear() - 1, 0, 1)) < 0) {\n    this.$prevBtn.addClass('absol-chrome-calendar-button-disabled');\n  } else {\n    this.$prevBtn.removeClass('absol-chrome-calendar-button-disabled');\n  }\n};\n\nChromeCalendar.prototype._updateButtons = function () {\n  var fName = '_updateButtons_' + this._level;\n  this[fName] && this[fName]();\n};\n\nChromeCalendar.prototype._createMonths = function (year) {\n  var now = new Date();\n  var self = this;\n\n  var res = _({\n    \"class\": 'absol-chrome-calendar-year-months',\n    child: Array(3).fill('').map(function (u, i) {\n      return {\n        \"class\": 'absol-chrome-calendar-year-row-months',\n        child: Array(4).fill(0).map(function (v, j) {\n          var date = new Date(year, i * 4 + j, 1, 0, 0, 0, 0, 0);\n          var quarter = Math.floor((i * 4 + j) / 3);\n          return {\n            \"class\": ['absol-chrome-calendar-year-month'].concat(year == now.getFullYear() && now.getMonth() == i * 4 + j ? ['absol-chrome-calendar-today'] : []).concat(self._isSelectedMonth(date) ? ['absol-chrome-calendar-selected'] : []),\n            attr: {\n              'data-quarter': quarter + ''\n            },\n            child: {\n              text: datetime.monthNames[i * 4 + j].substr(0, 3)\n            },\n            on: {\n              click: function click() {}\n            },\n            props: {\n              __date__: date,\n              __quarter__: quarter\n            }\n          };\n        })\n      };\n    }),\n    on: {\n      click: this.eventHandler.clickMonthsInYear\n    }\n  });\n\n  res.$monthList = [];\n  $('.absol-chrome-calendar-year-month', res, function (e) {\n    res.$monthList.push(e);\n  });\n\n  function onMouseEnter(event) {\n    document.addEventListener('mousemove', onMouseMove);\n  }\n\n  function onMouseMove(event) {\n    if (!(0, _EventEmitter.hitElement)(res, event)) {\n      document.removeEventListener('mousemove', onMouseMove);\n      res.attr('data-hover-quarter', undefined);\n      return;\n    }\n\n    if (typeof event.target.__quarter__ === \"number\") {\n      if (res.attr('data-hover-quarter') !== event.target.__quarter__ + '') res.attr('data-hover-quarter', event.target.__quarter__ + '');\n    } else {\n      res.attr('data-hover-quarter', undefined);\n    }\n  }\n\n  res.on('mouseenter', onMouseEnter);\n\n  res.updateActiveMonth = function () {\n    res.$monthList.forEach(function (e) {\n      now = new Date();\n\n      if (datetime.compareMonth(e.__date__, now) == 0) {\n        e.addClass('absol-chrome-calendar-today');\n      } else {\n        e.removeClass('absol-chrome-calendar-today');\n      }\n\n      if (self._isSelectedMonth(e.__date__)) {\n        e.addClass('absol-chrome-calendar-selected');\n      } else {\n        e.removeClass('absol-chrome-calendar-selected');\n      }\n\n      if (self._isSelectedQuarter(e.__date__)) {\n        e.addClass('as-quarter-selected');\n      } else {\n        e.removeClass('as-quarter-selected');\n      }\n\n      var beginOfMonth = datetime.beginOfMonth(e.__date__);\n      var endOfMonth = datetime.prevDate(datetime.nextMonth(e.__date__));\n\n      if (datetime.compareDate(self._min, endOfMonth) > 0 || datetime.compareDate(beginOfMonth, self._max) > 0) {\n        e.addClass('absol-chrome-calendar-date-disabled');\n      } else {\n        e.removeClass('absol-chrome-calendar-date-disabled');\n      }\n    });\n  };\n\n  return res;\n};\n\nChromeCalendar.prototype._yearInAre = function (year) {\n  var d = year - 1890;\n  var rowIdx = Math.floor(d / 4);\n  var colIdx = d % 4;\n  return this.$era.childNodes[rowIdx] && this.$era.childNodes[rowIdx].childNodes[colIdx];\n};\n\nChromeCalendar.prototype._clearYearInAre = function (startYear) {\n  var cellElt;\n\n  for (var i = 0; i < 10; ++i) {\n    cellElt = this._yearInAre(startYear + i);\n    if (cellElt) cellElt.removeClass('absol-chrome-calendar-in-decade');\n  }\n};\n\nChromeCalendar.prototype._activeYearInAre = function (startYear) {\n  var cellElt;\n\n  for (var i = 0; i < 10; ++i) {\n    cellElt = this._yearInAre(startYear + i);\n    if (cellElt) cellElt.addClass('absol-chrome-calendar-in-decade');\n  }\n};\n\nChromeCalendar.prototype._updateYearInEra = function () {\n  var eraBound = this.$era.getBoundingClientRect();\n  var startYear = 1890 + 4 * Math.ceil((this.$era.scrollTop - eraBound.height / 16) * 4 / eraBound.height);\n  var startDecade = Math.floor(startYear / 10) * 10;\n  if (startDecade + 10 - startYear < 8) startDecade += 10;\n\n  if (this._lastStartDecade !== startDecade) {\n    if (this._lastStartDecade > 0) {\n      this._clearYearInAre(this._lastStartDecade);\n    }\n\n    this._lastStartDecade = startDecade;\n\n    this._activeYearInAre(startDecade);\n\n    if (this._level === 'year') {\n      this.$titleTime.innerHTML = startDecade + '-' + (startDecade + 10);\n\n      if (!this._decadeScrollTimeout || this._decadeScrollTimeout < 0) {\n        if (this._yearCmpLimit(new Date(startDecade, 0, 1)) === 0) this._viewDate = new Date(startDecade, 0, 1);\n      }\n    }\n\n    this.domSignal.emit('request_update_buttons');\n  }\n};\n\nChromeCalendar.prototype._updateDisabledYearInEra = function () {\n  var self = this;\n  Array.prototype.forEach.call(this.$era.childNodes, function (rowElt) {\n    Array.prototype.forEach.call(rowElt.childNodes, function (cellElt) {\n      if (cellElt.__year__) {\n        if (self._yearCmpLimit(new Date(cellElt.__year__, 0, 1)) === 0) {\n          cellElt.removeClass('absol-chrome-calendar-date-disabled');\n        } else {\n          cellElt.addClass('absol-chrome-calendar-date-disabled');\n        }\n      }\n    });\n  });\n};\n\nChromeCalendar.prototype._updateOpenYear = function () {\n  if (this.$lastOpenYearItem) {\n    this.$lastOpenYearItem.$months.updateActiveMonth();\n  }\n};\n\nChromeCalendar.property = {};\nChromeCalendar.property.selectedDates = {\n  set: function set(value) {\n    value = value || [];\n    if (!(value instanceof Array)) value = [value];\n    value = value.map(function (d) {\n      return (0, datetime.implicitDate)(d);\n    }).filter(function (d) {\n      return !!d;\n    });\n    this._selectedDates = value;\n    this._viewDate = this._selectedDates[0] || new Date();\n    this.domSignal.emit('level_change');\n    if (this._level === 'year') this.domSignal.emit('request_update_picked_years');\n  },\n  get: function get() {\n    var level = this._level;\n\n    var res = this._selectedDates.map(function (d) {\n      switch (level) {\n        case 'day':\n          return (0, datetime.beginOfDay)(d);\n\n        case 'week':\n          return (0, datetime.beginOfWeek)(d);\n\n        case 'month':\n          return (0, datetime.beginOfMonth)(d);\n\n        case 'quarter':\n          return (0, datetime.beginOfQuarter)(d);\n\n        case 'year':\n          return (0, datetime.beginOfYear)(d);\n      }\n    });\n\n    res = res.reduce(function (ac, d) {\n      var key = (0, _utils.keyStringOf)(d);\n      if (ac.has[key]) return ac;\n      ac.has[key] = d;\n      ac.arr.push(d);\n      return ac;\n    }, {\n      has: {},\n      arr: []\n    }).arr;\n    res.sort(function (a, b) {\n      return a.getTime() - b.getTime();\n    });\n    return res;\n  }\n};\nChromeCalendar.property.min = {\n  set: function set(value) {\n    if (!value) value = new Date(1890, 0, 1);\n    if (typeof value == 'number') value = new Date(value);\n    value = (0, datetime.beginOfDay)(value);\n    value = new Date(Math.max(new Date(1890, 0, 1).getTime(), value.getTime()));\n    this._min = value;\n    this.domSignal.emit('request_update_buttons');\n    this.domSignal.emit('request_update_month');\n    this.domSignal.emit('request_update_open_year');\n    this.domSignal.emit('request_update_disabled_year_in_era');\n  },\n  get: function get() {\n    return this._min;\n  }\n}; //include maxLimitDate\n\nChromeCalendar.property.max = {\n  set: function set(value) {\n    if (!value) value = new Date(2090, 0, 1);\n    if (typeof value == 'number') value = new Date(value);\n    if (value.getTime() > (0, datetime.beginOfDay)(value).getTime()) value = (0, datetime.nextDate)((0, datetime.beginOfDay)(value));\n    value = new Date(Math.min(new Date(2090, 0, 1).getTime(), value.getTime()));\n    this._max = value;\n    this.domSignal.emit('request_update_buttons');\n    this.domSignal.emit('request_update_month');\n    this.domSignal.emit('request_update_open_year');\n    this.domSignal.emit('request_update_disabled_year_in_era');\n  },\n  get: function get() {\n    return this._max;\n  }\n};\nChromeCalendar.property.multiSelect = {\n  set: function set(value) {\n    throw new Error('Not support yet!');\n    var lastValue = this.multiSelect;\n    value = !!value;\n\n    if (lastValue != value) {\n      if (value) {\n        this.addClass('multi-select');\n      } else {\n        this.removeClass('multi-select');\n      }\n\n      this._updateMonth(this.$month);\n    }\n  },\n  get: function get() {\n    return this.hasClass('multi-select');\n  }\n};\nChromeCalendar.property.level = {\n  set: function set(value) {\n    value = (value || '') + '';\n    value = value.toLowerCase();\n    if (['day', 'week', 'quarter', 'month', 'year'].indexOf(value) < 0) value = 'day';\n    if (this._level === value) return;\n    this.attr('data-level', value);\n    this._level = value;\n    this.domSignal.emit('level_change');\n    if (this._level === 'year') this.domSignal.emit('request_update_picked_years');\n  },\n  get: function get() {\n    return this._level;\n  }\n};\nChromeCalendar.prototype.dayInWeekTexts = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\nChromeCalendar.property.startDayOfWeek = {\n  set: function set(value) {\n    value = Math.max(0, Math.min(Math.floor(value || 0), 6));\n\n    if (this._startDayOfWeek !== value) {\n      this._startDayOfWeek = value;\n      Array.prototype.forEach.call(this.$dayOfWeek.childNodes, function (e, i) {\n        e.firstChild.data = this.dayInWeekTexts[(i + value) % 7];\n      }.bind(this));\n    }\n\n    this._updateMonth(this.$month);\n  },\n  get: function get() {\n    return this._startDayOfWeek;\n  }\n};\nChromeCalendar.property.viewDate = {\n  set: function set(date) {\n    this._viewDate = date;\n    this.domSignal.emit('level_change');\n  },\n  get: function get() {\n    return this._viewDate;\n  }\n};\nChromeCalendar.eventHandler = {};\n\nChromeCalendar.eventHandler.eraScroll = function () {\n  this._updateYearInEra();\n};\n\nChromeCalendar.eventHandler.clickEra = function (event) {\n  var yearElt = event.target;\n  var year = yearElt.__year__;\n  if (typeof year !== \"number\") return;\n  this.pickYear(year, event);\n};\n\nChromeCalendar.eventHandler.clickPrev = function () {\n  switch (this._level) {\n    case \"day\":\n    case 'week':\n      this.viewPrevMonth();\n      break;\n\n    case \"month\":\n      this.expandYear(Math.min(this._max.getFullYear(), this._viewDate.getFullYear() - 1));\n      break;\n\n    case \"year\":\n      if (!this._decadeScrollTimeout || this._decadeScrollTimeout < 0) this.viewPrevDecade(true);\n      break;\n  }\n};\n\nChromeCalendar.eventHandler.clickNext = function () {\n  switch (this._level) {\n    case \"day\":\n    case 'week':\n      this.viewNexMonth();\n      break;\n\n    case \"month\":\n      this.expandYear(Math.max((0, datetime.prevDate)(this._min).getFullYear(), this._viewDate.getFullYear() + 1));\n      break;\n\n    case \"year\":\n      if (!this._decadeScrollTimeout || this._decadeScrollTimeout < 0) this.viewNextDecade(true);\n      break;\n  }\n};\n\nChromeCalendar.eventHandler.clickToday = function (event) {\n  this.viewToday();\n\n  switch (this._level) {\n    case \"day\":\n      this.pickDate(new Date(), event);\n      break;\n\n    case 'week':\n      this.pickDate((0, datetime.beginOfWeek)(new Date(), false, this.startDayOfWeek), event);\n      break;\n\n    case \"month\":\n      this.expandYear(new Date().getFullYear());\n      this.pickMonth((0, datetime.beginOfMonth)(new Date()), event);\n      break;\n\n    case \"year\":\n      this.pickYear(new Date().getFullYear());\n      this._viewDate = new Date(new Date().getFullYear(), 0, 1);\n      this.viewEra(true);\n      break;\n  }\n};\n\nChromeCalendar.eventHandler.clickTitle = function (event) {\n  switch (this._level) {\n    case \"day\":\n    case \"week\":\n      this.viewYear();\n      break;\n\n    case \"month\":\n      break;\n\n    case \"year\":\n      break;\n  }\n};\n\nChromeCalendar.eventHandler.clickMonthsInYear = function (event) {\n  var monthElt = event.target;\n  var date = monthElt.__date__;\n  if (!date) return;\n\n  switch (this._level) {\n    case \"day\":\n    case \"week\":\n      this._viewDate = date;\n      this.viewMonth();\n      break;\n\n    case \"month\":\n    case \"quarter\":\n      this.pickMonth(date, event);\n      break;\n\n    case \"year\":\n      break;\n  }\n};\n\nChromeCalendar.eventHandler.levelChange = function () {\n  switch (this._level) {\n    case \"day\":\n    case \"week\":\n      this.viewMonth();\n      break;\n\n    case \"month\":\n    case \"quarter\":\n      this.viewYear();\n      break;\n\n    case \"year\":\n      this.viewEra();\n      break;\n  }\n};\n\n_ACore[\"default\"].install(ChromeCalendar);\n\nChromeCalendar._session = Math.random() * 10000000000 >> 0;\nChromeCalendar._listener = undefined;\n\nChromeCalendar.showWhenClick = function (element, calendarProps, anchor, calendarPickListener, darkTheme) {\n  var res = {\n    calendarProps: Object.assign({\n      maxDateLimit: null,\n      minDateLimit: null\n    }, calendarProps),\n    anchor: anchor,\n    currentSession: undefined,\n    element: element,\n    calendarPickListener: calendarPickListener,\n    darkTheme: darkTheme,\n    setDateValue: function setDateValue(value) {\n      if (this.currentSession == ChromeCalendar._session) {\n        ChromeCalendar.$calendar.selectedDates = [value];\n      }\n    },\n    cancel: function cancel() {}\n  };\n\n  var clickHandler = function clickHandler() {\n    if (element.hasClass('as-read-only')) return;\n    if (ChromeCalendar._session == res.currentSession) return;\n    res.currentSession = ChromeCalendar.show(res.element, res.calendarProps, res.anchor, res.calendarPickListener, res.darkTheme);\n\n    var finish = function finish(event) {\n      if (event && event.target && _EventEmitter[\"default\"].hitElement(ChromeCalendar.$calendar, event)) return;\n      document.body.removeEventListener('click', finish, false);\n      ChromeCalendar.close(res.currentSession);\n      ChromeCalendar.$calendar.off('pick', finish);\n      res.currentSession = undefined;\n\n      res.cancel = function () {};\n    };\n\n    setTimeout(function () {\n      document.body.addEventListener('click', finish, false);\n      ChromeCalendar.$calendar.on('pick', finish);\n      res.cancel = finish;\n    }, 10);\n  };\n\n  res.remove = function () {\n    element.removeEventListener('click', clickHandler, false);\n  };\n\n  element.addEventListener('click', clickHandler, false);\n  return res;\n};\n\nChromeCalendar.show = function (element, calendarProps, anchor, calendarPickListener, darkTheme) {\n  ChromeCalendar._session = Math.random() * 10000000000 >> 0;\n\n  function exec() {\n    if (!ChromeCalendar.$ctn) {\n      ChromeCalendar.$ctn = _('.absol-context-hinge-fixed-container');\n      ChromeCalendar.$follower = _('follower').addTo(ChromeCalendar.$ctn);\n      ChromeCalendar.$calendar = _('chromecalendar.as-dropdown-box-common-style').on('pick', function (event) {\n        if (typeof ChromeCalendar._listener == 'function') {\n          ChromeCalendar._listener(event.value);\n        }\n      }).addTo(ChromeCalendar.$follower);\n    }\n\n    ChromeCalendar.$ctn.addTo(document.body); // only one value need\n\n    if (calendarProps instanceof Date) calendarProps = {\n      selectedDates: [calendarProps]\n    };\n    if (calendarProps instanceof Array) calendarProps = {\n      selectedDates: calendarProps\n    };\n    Object.assign(ChromeCalendar.$calendar, calendarProps);\n    if (darkTheme) ChromeCalendar.$ctn.addClass('dark');else ChromeCalendar.$ctn.removeClass('dark');\n    ChromeCalendar.$follower.followTarget = element;\n    ChromeCalendar.$follower.anchor = anchor;\n    ChromeCalendar.$calendar.addStyle('visibility', 'hidden'); //for prevent size change blink\n\n    ChromeCalendar._listener = calendarPickListener;\n    setTimeout(function () {\n      ChromeCalendar.$follower.updatePosition();\n      ChromeCalendar.$calendar.removeStyle('visibility');\n    }, 2);\n  }\n\n  if (document.body) exec();else _Dom[\"default\"].documentReady.then(exec);\n  return ChromeCalendar._session;\n};\n\nChromeCalendar.close = function (session) {\n  if (session !== true && session != ChromeCalendar._session) return;\n\n  function exec() {\n    ChromeCalendar.followTarget = undefined;\n    ChromeCalendar._listener = undefined;\n    ChromeCalendar.$ctn.remove();\n  }\n\n  if (document.body) exec();else _Dom[\"default\"].documentReady.then(exec);\n};\n\nvar _default = ChromeCalendar;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/ChromeCalendar.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/ChromeTime24Picker.js":
/*!***********************************************************!*\
  !*** ./node_modules/absol-acomp/js/ChromeTime24Picker.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\n__webpack_require__(/*! ../css/chrometimepicker.css */ \"./node_modules/absol-acomp/css/chrometimepicker.css\");\n\n__webpack_require__(/*! ../css/chrometime24picker.css */ \"./node_modules/absol-acomp/css/chrometime24picker.css\");\n\nvar _ChromeTimePicker = _interopRequireDefault(__webpack_require__(/*! ./ChromeTimePicker */ \"./node_modules/absol-acomp/js/ChromeTimePicker.js\"));\n\nvar _datetime = __webpack_require__(/*! absol/src/Time/datetime */ \"./node_modules/absol/src/Time/datetime.js\");\n\nvar _DomSignal = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/DomSignal */ \"./node_modules/absol/src/HTML5/DomSignal.js\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/**\r\n *\r\n * @param {number} leftOffset\r\n */\nfunction calcMinHMTime(leftOffset) {\n  var h = Math.floor(leftOffset / _datetime.MILLIS_PER_HOUR);\n  var m = Math.floor(leftOffset / _datetime.MILLIS_PER_MINUTE) % 60;\n\n  if (leftOffset % _datetime.MILLIS_PER_MINUTE > 0) {\n    if (m === 59) {\n      h++;\n      m = 0;\n    } else {\n      m++;\n    }\n  }\n\n  var offset = h * _datetime.MILLIS_PER_HOUR + m * _datetime.MILLIS_PER_MINUTE;\n  return {\n    m: m,\n    h: h,\n    offset: offset\n  };\n}\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\n\nfunction ChromeTime24Picker() {\n  this.$lists = (0, _ACore.$$)('.as-chrome-time-picker-list', this);\n  (0, _ACore.$$)('.as-chrome-time-picker-scroller', this).forEach(_ChromeTimePicker[\"default\"].prototype._makeScroller.bind(this));\n  this.$hours = (0, _ACore.$$)('.as-chrome-time-picker-h24 .as-chrome-time-picker-btn', this);\n  this.$minutes = (0, _ACore.$$)('.as-chrome-time-picker-m60 .as-chrome-time-picker-btn', this);\n  this.$lists[0].on('click', this.eventHandler.clickHour24List);\n  this.$lists[1].on('click', this.eventHandler.clickMinList);\n  this.$domSignal = (0, _ACore._)('attachhook').addTo(this);\n  this.domSignal = new _DomSignal[\"default\"](this.$attachhook);\n  this.domSignal.on('scrollToSelectedMinute', this._scrollToSelectedMinute.bind(this)).on('scrollToSelectedHour', this._scrollToSelectedHour.bind(this));\n  this._dayOffset = 0;\n  this._value = 0;\n  this.dayOffset = new Date();\n  this.value = 2 * _datetime.MILLIS_PER_MINUTE;\n}\n\nChromeTime24Picker.tag = 'ChromeTime24Picker'.toLowerCase();\n\nChromeTime24Picker.render = function () {\n  return (0, _ACore._)({\n    extendEvent: 'change',\n    \"class\": ['as-chrome-time-24-picker', 'as-chrome-time-picker'],\n    child: [{\n      \"class\": ['as-chrome-time-picker-scroller', 'as-chrome-time-24-picker-hour'],\n      child: [{\n        tag: 'button',\n        \"class\": 'as-chrome-time-picker-scroller-up',\n        child: 'span.mdi.mdi-chevron-up'\n      }, {\n        tag: 'button',\n        \"class\": 'as-chrome-time-picker-scroller-down',\n        child: 'span.mdi.mdi-chevron-down'\n      }, {\n        \"class\": ['as-chrome-time-picker-viewport', 'as-chrome-time-picker-h24'],\n        child: {\n          \"class\": 'as-chrome-time-picker-list',\n          child: Array(24).fill(0).map(function (u, i) {\n            return {\n              tag: 'button',\n              \"class\": 'as-chrome-time-picker-btn',\n              child: [{\n                tag: 'span',\n                child: {\n                  text: i + ''\n                }\n              }, {\n                tag: 'span',\n                \"class\": 'as-chrome-time-24-picker-tomorrow-text',\n                child: {\n                  text: ' (Hôm sau)'\n                }\n              }],\n              props: {\n                __hour__: i\n              }\n            };\n          })\n        }\n      }]\n    }, {\n      \"class\": 'as-chrome-time-picker-scroller',\n      child: [{\n        tag: 'button',\n        \"class\": 'as-chrome-time-picker-scroller-up',\n        child: 'span.mdi.mdi-chevron-up'\n      }, {\n        tag: 'button',\n        \"class\": 'as-chrome-time-picker-scroller-down',\n        child: 'span.mdi.mdi-chevron-down'\n      }, {\n        \"class\": ['as-chrome-time-picker-viewport', 'as-chrome-time-picker-m60'],\n        child: {\n          \"class\": 'as-chrome-time-picker-list',\n          child: Array(60).fill(0).map(function (u, i) {\n            return {\n              tag: 'button',\n              \"class\": 'as-chrome-time-picker-btn',\n              child: {\n                tag: 'span',\n                child: {\n                  text: i + ''\n                }\n              },\n              props: {\n                __min__: i\n              }\n            };\n          })\n        }\n      }]\n    }]\n  });\n};\n\nChromeTime24Picker.prototype._updateHourNumbers = function () {\n  var mH = calcMinHMTime(this.dayOffset).h;\n\n  for (var i = 0; i < this.$hours.length; ++i) {\n    this.$hours[i].firstChild.firstChild.data = (mH + i) % 24;\n\n    if (mH + i >= 24) {\n      this.$hours[i].addClass('as-in-tomorrow');\n    } else {\n      this.$hours[i].removeClass('as-in-tomorrow');\n    }\n  }\n};\n\nChromeTime24Picker.prototype._updateMinuteNumbers = function () {\n  var minHM = calcMinHMTime(this.dayOffset);\n  var h = minHM.h;\n  var m = minHM.m;\n  var vH = Math.floor((this.dayOffset + this.value) / _datetime.MILLIS_PER_HOUR);\n\n  for (var i = 0; i < this.$minutes.length; ++i) {\n    if (vH === h && i < m) {\n      this.$minutes[i].disabled = true;\n    } else {\n      this.$minutes[i].disabled = false;\n    }\n  }\n};\n\nChromeTime24Picker.prototype._updateSelectedHour = function () {\n  var h = Math.floor(this.dayOffset / _datetime.MILLIS_PER_HOUR);\n  var vH = Math.floor((this.dayOffset + this.value) / _datetime.MILLIS_PER_HOUR);\n  var d = vH - h;\n\n  for (var i = 0; i < this.$hours.length; ++i) {\n    if (i === d) {\n      this.$hours[i].addClass('as-selected');\n      this.$selectedHour = this.$hours[i];\n    } else {\n      this.$hours[i].removeClass('as-selected');\n    }\n  }\n\n  this._scrollToSelectedHour();\n};\n\nChromeTime24Picker.prototype._updateSelectedMinute = function () {\n  var vM = Math.floor((this.dayOffset + this.value) / _datetime.MILLIS_PER_MINUTE) % 60;\n\n  for (var i = 0; i < this.$minutes.length; ++i) {\n    if (vM === i) {\n      this.$minutes[i].addClass('as-selected');\n      this.$selectedMinute = this.$minutes[i];\n    } else {\n      this.$minutes[i].removeClass('as-selected');\n    }\n  }\n\n  this._scrollToSelectedMinute();\n};\n\nChromeTime24Picker.prototype._update = function () {\n  this._updateHourNumbers();\n\n  this._updateMinuteNumbers();\n\n  this._updateSelectedHour();\n\n  this._updateSelectedMinute();\n};\n\nChromeTime24Picker.prototype._scrollToSelectedHour = function () {\n  if (this.isDescendantOf(document.body)) {\n    if (this.$selectedHour) {\n      (0, _utils.vScrollIntoView)(this.$selectedHour);\n    }\n  } else {\n    this.domSignal.emit('scrollToSelectedHour');\n  }\n};\n\nChromeTime24Picker.prototype._scrollToSelectedMinute = function () {\n  if (this.isDescendantOf(document.body)) {\n    if (this.$selectedMinute) {\n      (0, _utils.vScrollIntoView)(this.$selectedMinute);\n    }\n  } else {\n    this.domSignal.emit('scrollToSelectedMinute');\n  }\n};\n\nChromeTime24Picker.prototype.notifyChange = function () {\n  this.emit('change', {\n    type: 'change'\n  }, this);\n};\n\nChromeTime24Picker.property = {};\nChromeTime24Picker.property.dayOffset = {\n  /***\r\n   *\r\n   * @param {number|Date} value\r\n   */\n  set: function set(value) {\n    if (typeof value === \"number\") {\n      value = Math.max(0, value % _datetime.MILLIS_PER_DAY); //10p\n    } else if (value instanceof Date) {\n      value = Math.max(0, (value.getTime() - (0, _datetime.beginOfDay)(value).getTime()) % _datetime.MILLIS_PER_DAY);\n    } else value = 0;\n\n    this._dayOffset = value;\n\n    this._update();\n  },\n  get: function get() {\n    return this._dayOffset;\n  }\n};\nChromeTime24Picker.property.value = {\n  /***\r\n   * @this ChromeTime24Picker\r\n   * @param value\r\n   */\n  set: function set(value) {\n    this._value = value;\n\n    this._update();\n  },\n  get: function get() {\n    return this._value;\n  }\n};\nChromeTime24Picker.property.hour = {\n  get: function get() {\n    return Math.floor((this.dayOffset + this.value) / _datetime.MILLIS_PER_HOUR);\n  }\n};\nChromeTime24Picker.property.minute = {\n  get: function get() {\n    return Math.floor((this.dayOffset + this.value) / _datetime.MILLIS_PER_MINUTE) % 60;\n  }\n};\nChromeTime24Picker.eventHandler = {};\n\nChromeTime24Picker.eventHandler.clickHour24List = function (event) {\n  var minHM = calcMinHMTime(this.dayOffset);\n  var h = minHM.h;\n  var vM = Math.floor((this.dayOffset + this.value) / _datetime.MILLIS_PER_MINUTE) % 60;\n  var hour;\n  var minChanged = false;\n  var prevValue = this._value;\n  if ('__hour__' in event.target) hour = event.target.__hour__;\n  if ('__hour__' in event.target.parentElement) hour = event.target.parentElement.__hour__;\n\n  if (hour !== undefined) {\n    if (hour === 0 && minHM.m > vM) {\n      vM = minHM.m;\n      minChanged = true;\n    }\n\n    this._value = (h + hour) * _datetime.MILLIS_PER_HOUR + vM * _datetime.MILLIS_PER_MINUTE - this.dayOffset;\n\n    this._updateSelectedHour();\n\n    this._updateMinuteNumbers();\n\n    if (minChanged) this._updateSelectedMinute();\n    if (prevValue !== this._value) this.notifyChange(event);\n  }\n};\n\nChromeTime24Picker.eventHandler.clickMinList = function (event) {\n  var vH = Math.floor((this.dayOffset + this.value) / _datetime.MILLIS_PER_HOUR);\n  var min;\n  var prevValue = this._value;\n  if ('__min__' in event.target) min = event.target.__min__;\n  if ('__min__' in event.target.parentElement) min = event.target.parentElement.__min__;\n\n  if (min !== undefined) {\n    this._value = vH * _datetime.MILLIS_PER_HOUR + min * _datetime.MILLIS_PER_MINUTE - this.dayOffset;\n\n    this._updateSelectedMinute();\n\n    this.notifyChange(event);\n    if (prevValue !== this._value) this.notifyChange(event);\n  }\n};\n\n_ACore[\"default\"].install(ChromeTime24Picker);\n\nvar _default = ChromeTime24Picker;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/ChromeTime24Picker.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/ChromeTimePicker.js":
/*!*********************************************************!*\
  !*** ./node_modules/absol-acomp/js/ChromeTimePicker.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\n__webpack_require__(/*! ../css/chrometimepicker.css */ \"./node_modules/absol-acomp/css/chrometimepicker.css\");\n\nvar _DomSignal = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/DomSignal */ \"./node_modules/absol/src/HTML5/DomSignal.js\"));\n\nvar _datetime = __webpack_require__(/*! absol/src/Time/datetime */ \"./node_modules/absol/src/Time/datetime.js\");\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction ChromeTimePicker() {\n  this._hour = null;\n  this._minute = null;\n\n  _OOP[\"default\"].drillProperty(this, this, 'dayOffset', 'value');\n\n  this.$lists = (0, _ACore.$$)('.as-chrome-time-picker-list', this);\n  this.$hourList = this.$lists[0];\n  this.$hourList.on('scroll', this.eventHandler.hourScroll).on('click', this.eventHandler.clickHourList);\n  this.$hour24List = this.$lists[1];\n  this.$hour24List.on('scroll', this.eventHandler.hour24Scroll).on('click', this.eventHandler.clickHour24List);\n  this.$minList = this.$lists[2];\n  this.$minList.on('scroll', this.eventHandler.minScroll).on('click', this.eventHandler.clickMinList);\n  this.$attachhook = (0, _ACore._)('attachhook').addTo(this);\n  this.domSignal = new _DomSignal[\"default\"](this.$attachhook).on('request_scroll_into_selected', this._scrollIntoSelected.bind(this));\n  this.$amBtn = (0, _ACore.$)('.as-chrome-time-picker-btn[data-value=\"AM\"]', this).on('click', this.eventHandler.clickAM);\n  this.$pmBtn = (0, _ACore.$)('.as-chrome-time-picker-btn[data-value=\"PM\"]', this).on('click', this.eventHandler.clickPM);\n  this.scrollIntoSelected();\n  this.hour = null;\n  this.minute = null;\n  this.s24 = false;\n  (0, _ACore.$$)('.as-chrome-time-picker-scroller', this).forEach(this._makeScroller.bind(this));\n  /***\r\n   * @memberOf ChromeTimePicker#\r\n   * @type {number}\r\n   * @name min\r\n   */\n}\n\nChromeTimePicker.tag = 'ChromeTimePicker'.toLowerCase();\n\nChromeTimePicker.render = function () {\n  return (0, _ACore._)({\n    \"class\": 'as-chrome-time-picker',\n    extendEvent: ['change'],\n    child: [{\n      \"class\": ['as-chrome-time-picker-scroller', 'as-chrome-time-picker-scroller-h12'],\n      child: [{\n        tag: 'button',\n        \"class\": 'as-chrome-time-picker-scroller-up',\n        child: 'span.mdi.mdi-chevron-up'\n      }, {\n        tag: 'button',\n        \"class\": 'as-chrome-time-picker-scroller-down',\n        child: 'span.mdi.mdi-chevron-down'\n      }, {\n        \"class\": ['as-chrome-time-picker-viewport', 'as-chrome-time-picker-h12'],\n        child: {\n          \"class\": 'as-chrome-time-picker-list',\n          child: Array(36).fill(0).map(function (u, i) {\n            return {\n              tag: 'button',\n              \"class\": 'as-chrome-time-picker-btn',\n              child: {\n                tag: 'span',\n                child: {\n                  text: i % 12 + 1 + ''\n                }\n              },\n              props: {\n                __hour__: i % 12 + 1\n              }\n            };\n          })\n        }\n      }]\n    }, {\n      \"class\": ['as-chrome-time-picker-scroller', 'as-chrome-time-picker-scroller-h24'],\n      child: [{\n        tag: 'button',\n        \"class\": 'as-chrome-time-picker-scroller-up',\n        child: 'span.mdi.mdi-chevron-up'\n      }, {\n        tag: 'button',\n        \"class\": 'as-chrome-time-picker-scroller-down',\n        child: 'span.mdi.mdi-chevron-down'\n      }, {\n        \"class\": ['as-chrome-time-picker-viewport', 'as-chrome-time-picker-h24'],\n        child: {\n          \"class\": 'as-chrome-time-picker-list',\n          child: Array(24 * 3).fill(0).map(function (u, i) {\n            return {\n              tag: 'button',\n              \"class\": 'as-chrome-time-picker-btn',\n              child: {\n                tag: 'span',\n                child: {\n                  text: i % 24 + ''\n                }\n              },\n              props: {\n                __hour__: i % 24\n              }\n            };\n          })\n        }\n      }]\n    }, {\n      \"class\": 'as-chrome-time-picker-scroller',\n      child: [{\n        tag: 'button',\n        \"class\": 'as-chrome-time-picker-scroller-up',\n        child: 'span.mdi.mdi-chevron-up'\n      }, {\n        tag: 'button',\n        \"class\": 'as-chrome-time-picker-scroller-down',\n        child: 'span.mdi.mdi-chevron-down'\n      }, {\n        \"class\": 'as-chrome-time-picker-viewport',\n        child: {\n          \"class\": 'as-chrome-time-picker-list',\n          child: Array(180).fill(0).map(function (u, i) {\n            return {\n              tag: 'button',\n              \"class\": 'as-chrome-time-picker-btn',\n              child: {\n                tag: 'span',\n                child: {\n                  text: i % 60 + ''\n                }\n              },\n              props: {\n                __min__: i % 60\n              }\n            };\n          })\n        }\n      }]\n    }, {\n      \"class\": ['as-chrome-time-picker-viewport', 'as-chrome-time-picker-period'],\n      child: ['AM', 'PM'].map(function (u) {\n        return {\n          tag: 'button',\n          \"class\": 'as-chrome-time-picker-btn',\n          attr: {\n            'data-value': u\n          },\n          child: {\n            tag: 'span',\n            child: {\n              text: u\n            }\n          },\n          props: {\n            __APM__: u\n          }\n        };\n      })\n    }]\n  });\n};\n\nChromeTimePicker.prototype._makeScroller = function (rootElt) {\n  var upBtn = (0, _ACore.$)('.as-chrome-time-picker-scroller-up', rootElt);\n  var downBtn = (0, _ACore.$)('.as-chrome-time-picker-scroller-down', rootElt);\n  var listElt = (0, _ACore.$)('.as-chrome-time-picker-list', rootElt);\n  var delta = 0;\n\n  function tick() {\n    if (delta === 0) return;\n    listElt.scrollTop -= delta;\n    requestAnimationFrame(tick);\n  }\n\n  function cancel() {\n    delta = 0;\n    document.body.removeEventListener('mouseup', cancel);\n    document.body.removeEventListener('mouseleave', cancel);\n  }\n\n  upBtn.on('mousedown', function () {\n    delta = 5;\n    document.body.addEventListener('mouseup', cancel);\n    document.body.addEventListener('mouseleave', cancel);\n    tick();\n  });\n  downBtn.on('mousedown', function () {\n    delta = -5;\n    document.body.addEventListener('mouseup', cancel);\n    document.body.addEventListener('mouseleave', cancel);\n    tick();\n  });\n};\n\nChromeTimePicker.prototype.scrollIntoSelected = function () {\n  this.domSignal.emit('request_scroll_into_selected');\n};\n\nChromeTimePicker.prototype._scrollIntoSelected = function () {\n  var hour = this._hour;\n  this.$hour24List.scrollTop = (hour + 24) * 28;\n  hour = this._hour % 12;\n  if (hour === 0) hour = 12;\n  this.$hourList.scrollTop = (hour + 11) * 28;\n  this.$minList.scrollTop = (this._minute + 60) * 28;\n};\n\nChromeTimePicker.prototype.notifyChange = function (event) {\n  this.emit('change', {\n    type: 'change',\n    originEvent: event,\n    dayOffset: this.dayOffset,\n    hour: this.hour,\n    minute: this.minute,\n    target: this\n  }, this);\n};\n\nChromeTimePicker.property = {};\nChromeTimePicker.property.hour = {\n  set: function set(value) {\n    if ((0, _utils.isRealNumber)(value)) {\n      value = Math.min(23, Math.max(0, Math.floor(value) % 24));\n    } else {\n      value = null;\n    }\n\n    var prevVal = this._hour;\n\n    if (prevVal !== null) {\n      this.$hour24List.childNodes[prevVal].removeClass('as-selected');\n      this.$hour24List.childNodes[prevVal + 24].removeClass('as-selected');\n      this.$hour24List.childNodes[prevVal + 48].removeClass('as-selected');\n      prevVal = this._hour % 12;\n      if (prevVal === 0) prevVal = 12;\n      this.$hourList.childNodes[prevVal - 1].removeClass('as-selected');\n      this.$hourList.childNodes[prevVal - 1 + 12].removeClass('as-selected');\n      this.$hourList.childNodes[prevVal - 1 + 24].removeClass('as-selected');\n    }\n\n    this._hour = value;\n    prevVal = this._hour;\n\n    if (prevVal !== null) {\n      this.$hour24List.childNodes[prevVal].addClass('as-selected');\n      this.$hour24List.childNodes[prevVal + 24].addClass('as-selected');\n      this.$hour24List.childNodes[prevVal + 48].addClass('as-selected');\n      prevVal = this._hour % 12;\n      if (prevVal === 0) prevVal = 12;\n      this.$hourList.childNodes[prevVal - 1].addClass('as-selected');\n      this.$hourList.childNodes[prevVal - 1 + 12].addClass('as-selected');\n      this.$hourList.childNodes[prevVal - 1 + 24].addClass('as-selected');\n\n      if (this._hour >= 12) {\n        this.$pmBtn.addClass('as-selected');\n        this.$amBtn.removeClass('as-selected');\n      } else {\n        this.$amBtn.addClass('as-selected');\n        this.$pmBtn.removeClass('as-selected');\n      }\n    } else {\n      this.$pmBtn.removeClass('as-selected');\n      this.$amBtn.removeClass('as-selected');\n    }\n  },\n  get: function get() {\n    return this._hour;\n  }\n};\nChromeTimePicker.property.minute = {\n  set: function set(value) {\n    if ((0, _utils.isRealNumber)(value)) {\n      value = Math.min(59, Math.max(0, Math.floor(value) % 60));\n    } else {\n      value = null;\n    }\n\n    var prevVal = this._minute;\n\n    if (prevVal !== null) {\n      this.$minList.childNodes[prevVal].removeClass('as-selected');\n      this.$minList.childNodes[prevVal + 60].removeClass('as-selected');\n      this.$minList.childNodes[prevVal + 120].removeClass('as-selected');\n    }\n\n    this._minute = value;\n    prevVal = this._minute;\n\n    if (prevVal !== null) {\n      this.$minList.childNodes[prevVal].addClass('as-selected');\n      this.$minList.childNodes[prevVal + 60].addClass('as-selected');\n      this.$minList.childNodes[prevVal + 120].addClass('as-selected');\n    }\n  },\n  get: function get() {\n    return this._minute;\n  }\n};\nChromeTimePicker.property.value = {\n  set: function set(value) {\n    if (!(0, _utils.isRealNumber)(value) && !(value instanceof Date)) {\n      value = null;\n    }\n\n    if (value && value.getTime) {\n      value = value.getTime() - (0, _datetime.beginOfDay)(value).getTime();\n      if (!(0, _utils.isRealNumber)(value)) value = null;\n    } else if ((0, _utils.isRealNumber)(value)) {\n      value = Math.min(_datetime.MILLIS_PER_DAY - 1, Math.max(0, value % _datetime.MILLIS_PER_DAY));\n    }\n\n    if ((0, _utils.isRealNumber)(value)) {\n      this.hour = Math.floor(value / _datetime.MILLIS_PER_HOUR);\n      this.minute = Math.floor(value % _datetime.MILLIS_PER_HOUR / _datetime.MILLIS_PER_MINUTE);\n    } else {\n      this.hour = null;\n      this.minute = null;\n    }\n\n    this.domSignal.emit('request_scroll_into_selected');\n  },\n  get: function get() {\n    var res = this._hour * _datetime.MILLIS_PER_HOUR + this._minute * _datetime.MILLIS_PER_MINUTE;\n    return (0, _utils.isRealNumber)(res) ? res : null;\n  }\n};\nChromeTimePicker.property.min = {\n  set: function set(value) {},\n  get: function get() {}\n};\nChromeTimePicker.property.s24 = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-24h-clock');\n    } else {\n      this.removeClass('as-24h-clock');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-24h-clock');\n  }\n};\nChromeTimePicker.eventHandler = {};\n\nChromeTimePicker.eventHandler.hourScroll = function () {\n  var y = this.$hourList.scrollTop;\n  var dy = 0;\n  if (y < 28 * 12) dy = 28 * 12;else if (y > 28 * 24) {\n    dy = -28 * 12;\n  }\n\n  if (dy !== 0) {\n    this.$hourList.scrollTop += dy;\n  }\n};\n\nChromeTimePicker.eventHandler.hour24Scroll = function () {\n  var y = this.$hour24List.scrollTop;\n  var dy = 0;\n  if (y < 28 * 24) dy = 28 * 24;else if (y > 28 * 48) {\n    dy = -28 * 24;\n  }\n\n  if (dy !== 0) {\n    this.$hour24List.scrollTop += dy;\n  }\n};\n\nChromeTimePicker.eventHandler.minScroll = function () {\n  var y = this.$minList.scrollTop;\n  var dy = 0;\n  if (y < 28 * 60) dy = 28 * 60;else if (y > 28 * 120) {\n    dy = -28 * 60;\n  }\n\n  if (dy !== 0) {\n    this.$minList.scrollTop += dy;\n  }\n};\n\nChromeTimePicker.eventHandler.clickHourList = function (event) {\n  var hour;\n  if ('__hour__' in event.target) hour = event.target.__hour__;\n  if ('__hour__' in event.target.parentElement) hour = event.target.parentElement.__hour__;\n\n  if (hour !== undefined) {\n    if (this.hour >= 12) {\n      this.hour = hour === 12 ? hour : hour + 12;\n    } else {\n      this.hour = hour === 12 ? 0 : hour;\n    }\n\n    if ((hour - 1 + 12) * 28 < this.$hourList.scrollTop) {\n      this.$hourList.scrollTop = (hour - 1 + 12) * 28;\n    } else if ((hour - 1 + 13) * 28 > this.$hourList.scrollTop + this.$hourList.clientHeight) {\n      this.$hourList.scrollTop = (hour - 1 + 13) * 28 - this.$hourList.clientHeight;\n    }\n\n    this.notifyChange(event);\n  }\n};\n\nChromeTimePicker.eventHandler.clickHour24List = function (event) {\n  var hour;\n  if ('__hour__' in event.target) hour = event.target.__hour__;\n  if ('__hour__' in event.target.parentElement) hour = event.target.parentElement.__hour__;\n\n  if (hour !== undefined) {\n    this.hour = hour;\n\n    if ((hour + 24) * 28 < this.$hourList.scrollTop) {\n      this.$hourList.scrollTop = (hour + 24) * 28;\n    } else if ((hour + 24) * 28 > this.$hourList.scrollTop + this.$hourList.clientHeight) {\n      this.$hourList.scrollTop = (hour + 24) * 28 - this.$hourList.clientHeight;\n    }\n\n    this.notifyChange(event);\n  }\n};\n\nChromeTimePicker.eventHandler.clickMinList = function (event) {\n  var min;\n  if ('__min__' in event.target) min = event.target.__min__;\n  if ('__min__' in event.target.parentElement) min = event.target.parentElement.__min__;\n\n  if (min !== undefined) {\n    this.minute = min;\n\n    if ((min + 60) * 28 < this.$minList.scrollTop) {\n      this.$minList.scrollTop = (min + 60) * 28;\n    } else if ((min + 61) * 28 > this.$minList.scrollTop + this.$minList.clientHeight) {\n      this.$minList.scrollTop = (min + 61) * 28 - this.$minList.clientHeight;\n    }\n\n    this.notifyChange(event);\n  }\n};\n\nChromeTimePicker.eventHandler.clickPM = function (event) {\n  if ((0, _utils.isRealNumber)(this.hour)) {\n    if (this.hour < 12) this.hour += 12;\n  } else {\n    this.hour = 12;\n  }\n\n  this.notifyChange(event);\n};\n\nChromeTimePicker.eventHandler.clickAM = function (event) {\n  if ((0, _utils.isRealNumber)(this.hour)) {\n    if (this.hour >= 12) this.hour -= 12;\n  } else {\n    this.hour = 0;\n  }\n\n  this.notifyChange(event);\n};\n\n_ACore[\"default\"].install(ChromeTimePicker);\n\nvar _default = ChromeTimePicker;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/ChromeTimePicker.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/CircleSectionLabel.js":
/*!***********************************************************!*\
  !*** ./node_modules/absol-acomp/js/CircleSectionLabel.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/circlesectionlabel.css */ \"./node_modules/absol-acomp/css/circlesectionlabel.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Svg = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Svg */ \"./node_modules/absol/src/HTML5/Svg.js\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\nvar _g = _Svg[\"default\"].ShareInstance._;\nvar $g = _Svg[\"default\"].ShareInstance.$;\nvar Design = {\n  circleHeight: 218 - 36,\n  borderWidth: 36,\n  textBoxHeight: 146,\n  textHeight: 48,\n  indexHeight: 54,\n  textBoxPaddingLeft: 80,\n  indexArrowRadius: (172 - 18) / 2,\n  indexArrowStrokeWidth: 18,\n  indexArrowStartAngle: -Math.PI / 6,\n  indexArrowEndAngle: -7 * Math.PI / 12\n};\nvar StyleSheet = {\n  '.as-circle-section-label-text': {\n    height: Design.textBoxHeight / Design.textHeight + 'em',\n    'padding-left': Design.textBoxPaddingLeft / Design.textHeight + 'em',\n    'line-height': Design.textBoxHeight / Design.textHeight + 'em'\n  },\n  '.as-circle-section-label-index': {\n    'font-size': Design.indexHeight / Design.textHeight + 'em',\n    height: (Design.circleHeight + Design.borderWidth) / Design.indexHeight + 'em',\n    'line-height': (Design.circleHeight + Design.borderWidth) / Design.indexHeight + 'em',\n    width: (Design.circleHeight + Design.borderWidth) / Design.indexHeight + 'em'\n  }\n};\n\n_({\n  tag: 'style',\n  id: 'circle-section-label-style',\n  props: {\n    innerHTML: Object.keys(StyleSheet).map(function (key) {\n      var style = StyleSheet[key];\n      return key + ' {\\n' + Object.keys(style).map(function (propName) {\n        return propName + ': ' + style[propName] + ';';\n      }).join('\\n') + '}';\n    }).join('\\n')\n  }\n}).addTo(document.head);\n/**\r\n * @extends AElement\r\n * @constructor\r\n */\n\n\nfunction CircleSectionLabel() {\n  this._ident = (Math.random() + '').replace(/[^0-9]/g, '_');\n  this.$background = $('.as-circle-section-label-background', this);\n  this.$index = $('.as-circle-section-label-index', this);\n  this.$text = $('.as-circle-section-label-text', this);\n  this.$attachhook = _('attachhook').addTo(this).on('error', function () {\n    _Dom[\"default\"].addToResizeSystem(this);\n\n    this.requestUpdateSize();\n  });\n  this.$attachhook.requestUpdateSize = this.redrawBackground.bind(this);\n  this.$svg = _g({\n    tag: 'svg',\n    attr: {\n      width: '0',\n      height: '0'\n    },\n    child: [{\n      tag: 'defs',\n      child: [{\n        tag: 'marker',\n        id: 'marker_' + this._ident,\n        attr: {\n          markerWidth: \"4\",\n          markerHeight: \"4\",\n          refX: \"0\",\n          refY: \"1\",\n          orient: \"auto\",\n          markerUnits: \"strokeWidth\",\n          viewBox: \"0 0 4 4\"\n        },\n        child: {\n          tag: 'path',\n          \"class\": 'as-circle-section-label-arrow-marker-path',\n          attr: {\n            d: 'M0,0 L0,2 L2,1 z'\n          }\n        }\n      }]\n    }, 'rect.as-circle-section-label-text-box', 'circle.as-circle-section-label-index-box', 'path.as-circle-section-label-arrow']\n  }).addTo(this.$background);\n  this.$indexBox = $g('circle.as-circle-section-label-index-box', this.$svg);\n  this.$textBox = $g('rect.as-circle-section-label-text-box', this.$svg); // this.$marker = $g('defs marker', this.$svg);\n  // this.$markerPath = $g(' path', this.$marker);\n\n  this.$arrow = $g('path.as-circle-section-label-arrow', this.$svg).attr({\n    'marker-end': \"url(\" + '#marker_' + this._ident + \")\"\n  });\n}\n\n;\n\nCircleSectionLabel.prototype.redrawBackground = function () {\n  var indexBound = this.$index.getBoundingClientRect();\n  var textBound = this.$text.getBoundingClientRect();\n  var cHeight = indexBound.height;\n  var cWidth = textBound.right - indexBound.left;\n  this.$svg.attr({\n    height: cHeight + '',\n    width: cWidth + '',\n    viewBox: [0, 0, cWidth, cHeight].join(' ')\n  });\n  var borderWidth = cHeight * Design.borderWidth / (Design.circleHeight + Design.borderWidth);\n  var radius = cHeight * Design.circleHeight / (Design.circleHeight + Design.borderWidth) / 2;\n  var x0 = indexBound.width / 2;\n  var y0 = cHeight / 2;\n  this.$indexBox.attr({\n    r: radius + '',\n    cx: x0,\n    cy: y0\n  }).addStyle({\n    strokeWidth: borderWidth + ''\n  });\n  var textBoxHeight = textBound.height;\n  this.$textBox.attr({\n    x: x0 / 2,\n    y: (cHeight - textBoxHeight) / 2,\n    width: cWidth - x0 - 1,\n    height: textBoxHeight,\n    rx: textBoxHeight / 2,\n    ry: textBoxHeight / 2\n  });\n  var arrowRadius = cHeight * Design.indexArrowRadius / (Design.circleHeight + Design.borderWidth);\n  this.$arrow.attr({\n    d: ['M', x0 + arrowRadius * Math.cos(Design.indexArrowStartAngle), y0 + arrowRadius * Math.sin(Design.indexArrowStartAngle), 'A', arrowRadius, arrowRadius, 0, 1, 1, x0 + arrowRadius * Math.cos(Design.indexArrowEndAngle), y0 + arrowRadius * Math.sin(Design.indexArrowEndAngle)].join(' ')\n  }).addStyle('stroke-width', cHeight * Design.indexArrowStrokeWidth / (Design.circleHeight + Design.borderWidth));\n};\n\nCircleSectionLabel.tag = 'CircleSectionLabel'.toLowerCase();\n\nCircleSectionLabel.render = function () {\n  return _({\n    \"class\": 'as-circle-section-label',\n    child: [{\n      \"class\": 'as-circle-section-label-background'\n    }, '.as-circle-section-label-index', '.as-circle-section-label-text']\n  });\n};\n\nCircleSectionLabel.property = {};\nCircleSectionLabel.property.index = {\n  set: function set(value) {\n    this._index = value;\n    this.$index.clearChild().addChild(_({\n      text: value + ''\n    }));\n  },\n  get: function get() {\n    return this._index;\n  }\n};\nCircleSectionLabel.property.text = {\n  set: function set(value) {\n    this._text = value;\n    this.$text.clearChild().addChild(_({\n      text: value + ''\n    }));\n  },\n  get: function get() {\n    return this._text;\n  }\n};\n\n_ACore[\"default\"].install(CircleSectionLabel);\n\nvar _default = CircleSectionLabel;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/CircleSectionLabel.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/ContextMenu.js":
/*!****************************************************!*\
  !*** ./node_modules/absol-acomp/js/ContextMenu.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.ContextCaptor = ContextCaptor;\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/contextmenu.css */ \"./node_modules/absol-acomp/css/contextmenu.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _EventEmitter = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _Vec = _interopRequireDefault(__webpack_require__(/*! absol/src/Math/Vec2 */ \"./node_modules/absol/src/Math/Vec2.js\"));\n\n__webpack_require__(/*! ./Menu */ \"./node_modules/absol-acomp/js/Menu.js\");\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nvar _BoardTable = _interopRequireDefault(__webpack_require__(/*! ./BoardTable */ \"./node_modules/absol-acomp/js/BoardTable.js\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _BrowserDetector = _interopRequireDefault(__webpack_require__(/*! absol/src/Detector/BrowserDetector */ \"./node_modules/absol/src/Detector/BrowserDetector.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\nvar supportContextEvent = false;\nvar isMobile = _BrowserDetector[\"default\"].isMobile;\n/**\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction ContextCaptor() {\n  this.attachedElt = null;\n  this.$textarea = $('textarea', this).attr('readonly', 'true').on('contextmenu', this.eventHandler.contextmenu, true);\n  this._ss = 0;\n  this._isTouch = false;\n  /**\r\n   this._target = null;\r\n   * @type {Vec2}\r\n   */\n\n  this._posStart = null;\n  /**\r\n   * @type {Vec2}\r\n   */\n\n  this._posCurrent = null;\n  this._touchId = -100;\n  this._longPressTimeout = -1;\n  this._removeTimeout = -1;\n  this._fireContextMenuTimeout = -1;\n  this.$target = null;\n  this._pointerSession = 0;\n  this._lastContextSession = 0;\n  this.mousedownEvent = null;\n  this.sync = Promise.resolve();\n}\n\n;\n\nContextCaptor.prototype.attachTo = function (elt) {\n  if (this.attachedElt) {\n    this.attachedElt.removeEventListener('mousedown', this.eventHandler.mousedown);\n    this.attachedElt.removeEventListener('touchstart', this.eventHandler.mousedown);\n    this.attachedElt = null;\n  }\n\n  this.attachedElt = elt;\n\n  if (this.attachedElt) {\n    this.attachedElt.addEventListener('mousedown', this.eventHandler.mousedown);\n    this.attachedElt.addEventListener('touchstart', this.eventHandler.mousedown);\n  }\n\n  return this;\n};\n\nContextCaptor.tag = 'ContextCaptor'.toLowerCase();\n\nContextCaptor.render = function () {\n  return _({\n    \"class\": ['absol-context-menu-anchor'],\n    extendEvent: 'requestcontextmenu',\n    child: ['textarea']\n  });\n};\n\nContextCaptor.prototype.showContextMenu = function (x, y, props, onSelectItem) {\n  var self = this;\n\n  var anchor = _('.as-context-menu-ctn.absol-context-menu-anchor' + (isMobile ? '.as-anchor-modal' : '')).addTo(document.body);\n\n  var finish = function finish(event) {\n    document.removeEventListener('click', finish);\n    document.removeEventListener('touchcancel', finish);\n    document.removeEventListener('touchend', finish);\n    document.removeEventListener('contextmenu', finish);\n    anchor.off('click', touchModal);\n    self.off('requestcontextmenu', finish);\n    setTimeout(function () {\n      anchor.selfRemove(); //\n    }, 10);\n  };\n\n  function touchModal(event) {\n    if (event.target.classList && event.target.classList.contains('as-anchor-modal')) {\n      finish(event);\n    }\n  }\n\n  var vmenu = _({\n    tag: 'vmenu',\n    props: props,\n    on: {\n      press: onSelectItem || function () {}\n    }\n  }).addTo(anchor);\n\n  setTimeout(function () {\n    if (!isMobile) {\n      var screenSize = _Dom[\"default\"].getScreenSize();\n\n      var menuBound = vmenu.getBoundingClientRect();\n\n      if (x + menuBound.width > screenSize.width - 17) {\n        x -= menuBound.width;\n      }\n\n      if (y + menuBound.height > screenSize.height - 17) {\n        y -= menuBound.height;\n      }\n\n      anchor.addStyle({\n        left: x + 'px',\n        top: y + 'px'\n      });\n    }\n\n    anchor.addClass('absol-active');\n  }, 30);\n  setTimeout(function () {\n    document.addEventListener('click', finish);\n    document.addEventListener('contextmenu', finish);\n    self.on('requestcontextmenu', finish);\n    anchor.on('click', touchModal);\n  }, 10);\n};\n\nContextCaptor.prototype._checkNeedHandle = function (target) {\n  var current = target;\n  var needHandle = false;\n\n  while (current && !needHandle && !current.classList.contains('as-system-context-menu')) {\n    if (current.isSupportedEvent && current.isSupportedEvent('contextmenu')) needHandle = true;\n    current = current.parentElement;\n  }\n\n  return needHandle;\n};\n\nContextCaptor.prototype._fireContextMenuEvent = function () {\n  if (this._lastContextSession >= this._pointerSession) return false; // prevent fire multi-times in a pointer session\n\n  var showed = false;\n  this._lastContextSession = this._pointerSession;\n  var baseEventData = {\n    clientX: this._posCurrent.x,\n    clientY: this._posCurrent.y,\n    target: this.$target\n  };\n  this.emit('requestcontextmenu', baseEventData, this);\n  var self = this;\n  var propagation = true;\n  var localEvent = Object.assign({\n    clientX: this._posCurrent.x,\n    clientY: this._posCurrent.y,\n    target: this.$target,\n    showContextMenu: function showContextMenu(props, onSelectItem) {\n      showed = true;\n      self.sync = self.sync.then(function () {\n        return new Promise(function (rs) {\n          setTimeout(function () {\n            self.showContextMenu(self._posCurrent.x, self._posCurrent.y, props, onSelectItem);\n            rs();\n          }, 30);\n        });\n      });\n    },\n    stopPropagation: function stopPropagation() {\n      propagation = false;\n    }\n  }, baseEventData);\n  Object.defineProperty(localEvent, 'selectedText', {\n    get: function get() {\n      return (0, _utils.getSelectionText)();\n    }\n  });\n  var current = this.$target;\n\n  while (current && propagation) {\n    if (current.isSupportedEvent && current.isSupportedEvent('contextmenu')) {\n      current.emit('contextmenu', localEvent, current, this);\n    }\n\n    current = current.parentElement;\n  }\n\n  return showed;\n};\n/**\r\n * @type {ContextCaptor}\r\n */\n\n\nContextCaptor.eventHandler = {};\n\nContextCaptor.eventHandler.mousedown = function (event) {\n  if (this._touchId != -100) return;\n  this._pointerSession++;\n  var target;\n  var isTouch;\n  var touchId;\n  var posCurrent;\n  var pointer;\n\n  if (event.type == 'touchstart') {\n    isTouch = true;\n    pointer = event.changedTouches[0];\n    touchId = pointer.identifier;\n  } else {\n    isTouch = false;\n    touchId = -1;\n    pointer = event;\n  }\n\n  target = pointer.target;\n  posCurrent = new _Vec[\"default\"](pointer.clientX, pointer.clientY);\n\n  if (isTouch) {\n    var dragzone = _BoardTable[\"default\"].prototype._findDragZone(target);\n\n    if (dragzone) return;\n    var thisCT = this;\n    this._longPressTimeout = setTimeout(function () {\n      if (!thisCT._checkNeedHandle(target)) return;\n\n      if (thisCT._removeTimeout > 0) {\n        clearTimeout(thisCT._removeTimeout);\n        thisCT._removeTimeout = -1;\n      }\n\n      thisCT._ss++;\n      thisCT.moveTo(thisCT._posCurrent);\n      thisCT.active(true);\n      thisCT._longPressTimeout = -1;\n\n      if (thisCT._fireContextMenuTimeout >= 0) {\n        clearTimeout(thisCT._fireContextMenuTimeout);\n      } // show if device not support contextmenu event (after 700ms)\n\n\n      thisCT._fireContextMenuTimeout = setTimeout(function () {\n        if (!supportContextEvent) {\n          thisCT._fireContextMenuEvent();\n        }\n      }, 300);\n    }, 400);\n    this.$target = target;\n    this._isTouch = isTouch;\n    this._touchId = touchId;\n    this._posCurrent = posCurrent;\n    this._posStart = posCurrent;\n    document.addEventListener('touchmove', thisCT.eventHandler.mousemove);\n    document.addEventListener('touchend', thisCT.eventHandler.mousefinish);\n    document.addEventListener('touchcancel', thisCT.eventHandler.mousefinish);\n  } else {\n    if (_EventEmitter[\"default\"].isMouseRight(event) && this._checkNeedHandle(target)) {\n      if (this._removeTimeout > 0) {\n        clearTimeout(this._removeTimeout);\n        this._removeTimeout = -1;\n      }\n\n      this.$target = target;\n      this._isTouch = isTouch;\n      this._posCurrent = posCurrent;\n      this._posStart = posCurrent;\n      this._touchId = touchId;\n      this._ss++;\n      this.moveTo(this._posCurrent);\n      this.active(true);\n      document.addEventListener('mousemove', this.eventHandler.mousemove);\n      document.addEventListener('mouseup', this.eventHandler.mousefinish);\n      document.addEventListener('mouseleave', this.eventHandler.mousefinish);\n    }\n  }\n};\n/**\r\n * @param {Vec2} pos\r\n */\n\n\nContextCaptor.prototype.moveTo = function (pos) {\n  this.addStyle({\n    left: pos.x - 80 + 'px',\n    top: pos.y - 80 + 'px'\n  });\n};\n\nContextCaptor.prototype.active = function (flag) {\n  if (flag) this.addClass('absol-active');else this.removeClass('absol-active');\n};\n\nContextCaptor.eventHandler.mousemove = function (event) {\n  var isTouch = this._isTouch;\n  var touchId;\n  var pointer;\n  var posCurrent;\n\n  if (isTouch) {\n    pointer = event.changedTouches[0];\n    touchId = pointer.identifier;\n  } else {\n    isTouch = false;\n    touchId = -1;\n    pointer = event;\n  }\n\n  if (touchId != this._touchId) return;\n  posCurrent = new _Vec[\"default\"](pointer.clientX, pointer.clientY);\n  this._posCurrent = posCurrent;\n\n  if (isTouch) {\n    if (this._posStart.sub(posCurrent).abs() > 10) this.eventHandler.mousefinish(event);\n  }\n\n  this.moveTo(posCurrent);\n};\n\nContextCaptor.eventHandler.mousefinish = function (event) {\n  var isTouch = this._isTouch;\n  var touchId;\n  var pointer;\n\n  if (isTouch) {\n    pointer = event.changedTouches[0];\n    touchId = pointer.identifier;\n  } else {\n    isTouch = false;\n    touchId = -1;\n    pointer = event;\n  }\n\n  if (touchId != this._touchId) return;\n\n  if (isTouch) {\n    document.removeEventListener('touchmove', this.eventHandler.mousemove);\n    document.removeEventListener('touchend', this.eventHandler.mousefinish);\n    document.removeEventListener('touchcancel', this.eventHandler.mousefinish);\n\n    if (this._longPressTimeout > 0) {\n      clearTimeout(this._longPressTimeout);\n      this._longPressTimeout = -1;\n    }\n  } else {\n    document.removeEventListener('mousemove', this.eventHandler.mousemove);\n    document.removeEventListener('mouseup', this.eventHandler.mousefinish);\n    document.removeEventListener('mouseleave', this.eventHandler.mousefinish);\n  }\n\n  this._touchId = -100;\n\n  if (this._fireContextMenuTimeout >= 0) {\n    clearTimeout(this._fireContextMenuTimeout);\n  }\n\n  var thisCT = this;\n  this._removeTimeout = setTimeout(function () {\n    thisCT.active(false);\n    thisCT._removeTimeout = -1;\n  }, 1);\n};\n\nContextCaptor.eventHandler.contextmenu = function (event) {\n  supportContextEvent = true;\n  event.preventDefault();\n\n  this._fireContextMenuEvent();\n};\n\nContextCaptor.auto = function () {\n  if (ContextCaptor.$elt) return;\n  ContextCaptor.$elt = _('contextcaptor');\n\n  _Dom[\"default\"].documentReady.then(function () {\n    ContextCaptor.$elt.addTo(document.body);\n    ContextCaptor.$elt.attachTo(document.body);\n  });\n};\n\n_ACore[\"default\"].install(ContextCaptor);\n\nvar _default = ContextCaptor;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/ContextMenu.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/CopyableIconTooltip.js":
/*!************************************************************!*\
  !*** ./node_modules/absol-acomp/js/CopyableIconTooltip.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Dom = __webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\");\n\nvar _Tooltip = _interopRequireDefault(__webpack_require__(/*! ./Tooltip */ \"./node_modules/absol-acomp/js/Tooltip.js\"));\n\nvar _Clipboard = __webpack_require__(/*! absol/src/HTML5/Clipboard */ \"./node_modules/absol/src/HTML5/Clipboard.js\");\n\nvar _Snackbar = _interopRequireDefault(__webpack_require__(/*! ./Snackbar */ \"./node_modules/absol-acomp/js/Snackbar.js\"));\n\nvar _MultiLanguageText = _interopRequireDefault(__webpack_require__(/*! ./MultiLanguageText */ \"./node_modules/absol-acomp/js/MultiLanguageText.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/***\r\n * @extends {AElement}\r\n * @constructor\r\n */\nfunction CopyableIconTooltip() {\n  this._content = '';\n  this.$content = null;\n  this._value = '';\n  this._icon = 'span.mdi.mdi-information-outline';\n  this.$icon = (0, _ACore.$)('.as-cit-icon', this);\n  this.tooltip = new TooltipController(this);\n}\n\nCopyableIconTooltip.tag = 'CopyableIconTooltip'.toLowerCase();\n\nCopyableIconTooltip.render = function () {\n  return (0, _ACore._)({\n    tag: 'button',\n    \"class\": 'as-copyable-icon-tooltip',\n    child: 'span.mdi.mdi-information-outline.as-cit-icon'\n  });\n};\n\nCopyableIconTooltip.property = {};\nCopyableIconTooltip.property.content = {\n  set: function set(value) {\n    this._content = value || '';\n\n    if (_typeof(this._content) === \"object\") {\n      this.$content = (0, _ACore._)(this._content);\n    } else if (typeof this._content === \"string\") {\n      this.$content = (0, _ACore._)({\n        tag: 'span',\n        style: {\n          'white-space': 'pre-wrap'\n        },\n        props: {\n          innerHTML: this._content\n        }\n      });\n\n      _MultiLanguageText[\"default\"].replaceAll(this.$content);\n    }\n  },\n  get: function get() {\n    return this._content;\n  }\n};\nCopyableIconTooltip.property.icon = {\n  set: function set(value) {\n    value = value || '';\n    this._icon = value;\n    this.clearChild();\n    this.$icon = null;\n\n    if (value) {\n      if ((0, _Dom.isDomNode)(value)) {\n        if (value.parentElement) value = value.cloneNode(true);\n      } else value = (0, _ACore._)(value);\n\n      this.$icon = (0, _ACore.$)(value).addClass('as-cit-icon');\n      this.addChild(this.$icon);\n    }\n  },\n  get: function get() {\n    return this._icon;\n  }\n};\nCopyableIconTooltip.property.value = {\n  set: function set(value) {\n    this._value = value;\n  },\n  get: function get() {\n    return this._value;\n  }\n};\n/***\r\n *\r\n * @param {CopyableIconTooltip} elt\r\n * @constructor\r\n */\n\nfunction TooltipController(elt) {\n  /***\r\n   *\r\n   * @type {CopyableIconTooltip}\r\n   */\n  this.elt = elt;\n  this.elt.on('mouseenter', this.ev_mouseEnter.bind(this));\n  this.elt.on('mouseleave', this.ev_mouseLeave.bind(this));\n  this.elt.on('click', this.ev_click.bind(this));\n  this.session = -2;\n  this.timeout = -1;\n}\n\nTooltipController.prototype.ev_mouseEnter = function () {\n  clearTimeout(this.timeout);\n  if (this.elt.$content) this.session = _Tooltip[\"default\"].show(this.elt, this.elt.$content, 'auto');\n};\n\nTooltipController.prototype.ev_mouseLeave = function () {\n  var _this = this;\n\n  this.timeout = setTimeout(function () {\n    _Tooltip[\"default\"].close(_this.session);\n  }, 500);\n};\n\nTooltipController.prototype.ev_click = function () {\n  var text;\n\n  if (this.elt._value !== null && this.elt._value !== undefined) {\n    text = this.elt._value + '';\n  } else if (typeof this.elt._content === \"string\") {\n    text = this.elt._content;\n  } else {\n    text = this.elt.$content.innerText;\n  }\n\n  (0, _Clipboard.copyText)(text);\n\n  _Snackbar[\"default\"].show('Copied: ' + text);\n};\n\nvar _default = CopyableIconTooltip;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/CopyableIconTooltip.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/CountdownClock.js":
/*!*******************************************************!*\
  !*** ./node_modules/absol-acomp/js/CountdownClock.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Element = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Element */ \"./node_modules/absol/src/HTML5/Element.js\"));\n\n__webpack_require__(/*! ../css/countdownclock.css */ \"./node_modules/absol-acomp/css/countdownclock.css\");\n\nvar _ResizeSystem = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/ResizeSystem */ \"./node_modules/absol/src/HTML5/ResizeSystem.js\"));\n\nvar _int = __webpack_require__(/*! absol/src/Math/int */ \"./node_modules/absol/src/Math/int.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction CountdownClock() {\n  var thisC = this;\n  this.$attachhook = _('attachhook').addTo(this).on('attached', function () {\n    _ResizeSystem[\"default\"].add(this);\n\n    this.requestUpdateSize();\n\n    if (thisC.autoStart) {\n      thisC.start();\n    }\n  });\n  this.$attachhook.requestUpdateSize = this._updateBorder.bind(this);\n  this._tick = this._tick.bind(this);\n  this.$border = $(\".as-countdown-clock-border\", this);\n  this.$min = $(\".as-countdown-clock-min\", this);\n  this.$sec = $(\".as-countdown-clock-sec\", this);\n  this._prevText = -1;\n  this._startTime = new Date().getTime();\n  this._totalSecond = 60;\n  this._remainSecond = 0;\n  this.totalSecond = 60;\n  this.remainSecond = 0;\n  this._intvId = -1;\n}\n\nCountdownClock.tag = 'CountdownClock'.toLowerCase();\n\nCountdownClock.render = function () {\n  return _({\n    extendEvent: ['finish', 'update'],\n    \"class\": 'as-countdown-clock',\n    child: [{\n      \"class\": 'as-countdown-clock-text',\n      child: [{\n        tag: 'span',\n        \"class\": 'as-countdown-clock-min',\n        child: {\n          text: 0\n        }\n      }, {\n        text: ':'\n      }, {\n        tag: 'span',\n        \"class\": 'as-countdown-clock-sec',\n        child: {\n          text: '60'\n        }\n      }]\n    }, {\n      \"class\": 'as-countdown-clock-border-wrapper',\n      child: {\n        \"class\": 'as-countdown-clock-border'\n      }\n    }]\n  });\n};\n\nCountdownClock.prototype._makePolygon = function (end) {\n  var n = Math.ceil(Math.max(end / 0.2, 2));\n  var fan = Array(n).fill(0).map(function (u, i) {\n    var angle = -Math.PI / 2 + end * i / n;\n    return [(0, _int.numberAutoFixed)(50 + 60 * Math.cos(angle), 5) + '%', (0, _int.numberAutoFixed)(50 + 60 * Math.sin(angle), 5) + '%'].join(' ');\n  });\n  fan.push('50% 50%');\n  return 'polygon(' + fan.join(', ') + ')';\n};\n\nCountdownClock.prototype._setBorderValue = function (val) {\n  if (val >= 1 || !isFinite(val)) {\n    this.$border.removeStyle(\"clip-path\");\n    return;\n  }\n\n  var bound = this.$border.getBoundingClientRect();\n  var angle = val * Math.PI * 2;\n  this.$border.addStyle(\"-webkit-clip-path\", this._makePolygon(angle));\n  this.$border.addStyle(\"clip-path\", this._makePolygon(angle));\n};\n\nCountdownClock.prototype._updateBorder = function () {\n  this._setBorderValue(this._remainSecond / Math.max(0.001, this._totalSecond));\n};\n\nCountdownClock.prototype._updateText = function () {\n  if (this._prevText === this.remainSecond) return;\n  var remainSecond = this.remainSecond;\n  var min = Math.floor(remainSecond / 60);\n  var sec = remainSecond % 60;\n  this.$sec.innerHTML = (sec < 10 ? \"0\" : \"\") + sec;\n  this.$min.innerHTML = min;\n};\n\nCountdownClock.prototype._tick = function () {\n  var now = new Date().getTime();\n  var prevSec = this.remainSecond;\n  this.remainSecond = Math.max(0, Math.ceil(this.totalSecond - (now - this._startTime) / 1000));\n\n  if (prevSec !== this.remainSecond) {\n    this._updateText();\n\n    this.emit('update', {\n      target: this,\n      type: 'update'\n    }, this);\n\n    if (this.remainSecond === 0) {\n      clearInterval(this._intvId);\n      this._intvId = -1;\n      this.emit('finish', {\n        target: this,\n        type: 'finish'\n      }, this);\n    }\n  }\n};\n\nCountdownClock.prototype.start = function () {\n  if (this.remainSecond == 0) this.remainSecond = this.totalSecond;\n  this._startTime = new Date().getTime() - (this.totalSecond - this.remainSecond) * 1000;\n  this.resume();\n};\n\nCountdownClock.prototype.resume = function () {\n  if (this._intvId > 0) return;\n  this._intvId = setInterval(this._tick, 200);\n};\n\nCountdownClock.prototype.pause = function () {\n  if (this._intvId > 0) {\n    clearInterval(this._intvId);\n    this._intvId = -1;\n  }\n};\n\nCountdownClock.prototype.stop = function () {\n  this.pause();\n  this.remainSecond = 0;\n};\n\nCountdownClock.prototype.reset = function () {\n  this.remainSecond = this.totalSecond;\n  this._startTime = new Date().getTime();\n};\n\nCountdownClock.property = {};\nCountdownClock.property.totalSecond = {\n  set: function set(value) {\n    if (!(value >= 0)) {\n      value = 0;\n    }\n\n    this._totalSecond = value;\n\n    this._updateBorder();\n  },\n  get: function get() {\n    return this._totalSecond;\n  }\n};\nCountdownClock.property.remainSecond = {\n  set: function set(value) {\n    if (!(value >= 0)) {\n      value = 0;\n    }\n\n    this._remainSecond = value;\n\n    this._updateBorder();\n\n    this._updateText();\n  },\n  get: function get() {\n    return this._remainSecond;\n  }\n};\n\n_ACore[\"default\"].install(CountdownClock);\n\nvar _default = CountdownClock;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/CountdownClock.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/CountdownText.js":
/*!******************************************************!*\
  !*** ./node_modules/absol-acomp/js/CountdownText.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\nexports.remainSecondToText = remainSecondToText;\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\n__webpack_require__(/*! ../css/countdownclock.css */ \"./node_modules/absol-acomp/css/countdownclock.css\");\n\n__webpack_require__(/*! ../css/countdowntext.css */ \"./node_modules/absol-acomp/css/countdowntext.css\");\n\nvar _datetime = __webpack_require__(/*! absol/src/Time/datetime */ \"./node_modules/absol/src/Time/datetime.js\");\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\nvar tokenCache = {};\n\nfunction remainSecondToText(remainSecond, format) {\n  var tokens = tokenCache[format];\n\n  if (!tokens) {\n    tokens = (format.match(new RegExp(_datetime.DATE_TIME_TOKEN_RGX.source, 'g')) || []).reduce(function (ac, cr) {\n      ac[cr] = true;\n      return ac;\n    }, {});\n    tokenCache[format] = tokens;\n  }\n\n  var newText;\n  var sec, min, hour;\n  sec = Math[tokens['ms'] || tokens['mss'] ? 'floor' : 'ceil'](remainSecond);\n  min = Math.floor(remainSecond / 60);\n  hour = Math.floor(remainSecond / 60 / 60);\n  newText = format.replace(new RegExp(_datetime.DATE_TIME_TOKEN_RGX.source, 'g'), function (all) {\n    switch (all) {\n      case 'D':\n        return Math.floor(remainSecond / 60 / 60 / 24) + '';\n\n      case 'HH':\n      case 'H':\n      case 'hh':\n        if (tokens['D']) {\n          return (0, _utils.zeroPadding)(hour % 24, all.length);\n        } else {\n          return (0, _utils.zeroPadding)(hour, all.length);\n        }\n\n      case 'mm':\n      case 'M':\n      case 'MM':\n        if (tokens['HH'] || tokens['hh']) {\n          return (0, _utils.zeroPadding)(min % 60, all.length);\n        } else {\n          return (0, _utils.zeroPadding)(min, all.length);\n        }\n\n      case 'ss':\n      case 'S':\n      case 'SS':\n        if (tokens['m'] || tokens['mm']) {\n          return (0, _utils.zeroPadding)(sec % 60, all.length);\n        } else {\n          return (0, _utils.zeroPadding)(sec, all.length);\n        }\n\n      case 'cs':\n        return (0, _utils.zeroPadding)(Math.ceil(remainSecond * 100) % 100, 2);\n\n      case 'ms':\n        return (0, _utils.zeroPadding)(Math.ceil(remainSecond * 1000) % 1000, 3);\n\n      default:\n        return all;\n    }\n  });\n  return newText;\n}\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\n\nfunction CountdownText() {\n  this.addClass('as-countdown-text');\n  this.defineEvent('update');\n  this.defineEvent('finish');\n  this.text = '';\n  this._format = 'HH:mm';\n  this.format = 'HH:mm';\n  this.fps = 5;\n  this._finishTime = null;\n  this.finishTime = null;\n  this['_tick'] = this._tick.bind(this);\n  setTimeout(this.start.bind(this), 0); //auto start\n\n  /***\r\n   * @type {number}\r\n   * @name remainSecond\r\n   * @memberOf CountdownText#\r\n   */\n\n  /***\r\n   * @type {Date}\r\n   * @name finishTime\r\n   * @memberOf CountdownText#\r\n   */\n\n  /***\r\n   * @type {string}\r\n   * @name format\r\n   * @memberOf CountdownText#\r\n   */\n}\n\nCountdownText.tag = 'CountdownText'.toLowerCase();\n\nCountdownText.render = function () {\n  return _('span');\n};\n\nCountdownText.prototype.buildinFormat = {\n  'standard': function standard(remainSecond) {\n    if (remainSecond >= 24 * 3600) {\n      return remainSecondToText(remainSecond, 'D ngày HH:mm:ss');\n    } else {\n      return remainSecondToText(remainSecond, 'HH:mm:ss');\n    }\n  }\n};\n\nCountdownText.prototype._tick = function () {\n  var remainSecond = this.remainSecond;\n  var prevText = this.text;\n  var newText;\n  var format = this._format;\n  if (this.buildinFormat[format]) format = this.buildinFormat[format];\n\n  if (typeof format === \"function\") {\n    newText = format.call(this, remainSecond);\n  } else if (typeof format === \"string\") {\n    newText = remainSecondToText(remainSecond, format);\n  }\n\n  if (prevText !== newText) {\n    this.text = newText;\n    this.innerHTML = newText;\n    this.emit('update', {\n      target: this,\n      type: 'update'\n    }, this);\n  }\n\n  if (remainSecond <= 0) {\n    this.stop();\n    this.emit('finish', {\n      target: this,\n      type: 'update'\n    }, this);\n  }\n};\n\nCountdownText.prototype.start = function () {\n  this.resume();\n};\n\nCountdownText.prototype.resume = function () {\n  if (this._intvId > 0) return;\n  this._intvId = setInterval(this._tick, 1000 / this.fps);\n};\n\nCountdownText.prototype.pause = function () {\n  if (this._intvId > 0) {\n    clearInterval(this._intvId);\n    this._intvId = -1;\n  }\n};\n\nCountdownText.prototype.stop = function () {\n  this.pause();\n};\n\nCountdownText.property = {};\nCountdownText.property.format = {\n  set: function set(value) {\n    if (typeof value === \"string\" || typeof value === 'function') {\n      this._format = value || 'HH:mm';\n    } else {\n      this._format = 'HH:mm';\n    }\n  },\n  get: function get() {\n    return this._format;\n  }\n};\nCountdownText.property.remainSecond = {\n  set: function set(value) {\n    if (!(value >= 0)) {\n      value = 0;\n    }\n\n    this.finishTime = new Date(new Date().getTime() + value);\n  },\n  get: function get() {\n    if (this.finishTime !== null) {\n      return Math.max(0, (this.finishTime.getTime() - new Date().getTime()) / 1000);\n    } else return null;\n  }\n};\nCountdownText.property.finishTime = {\n  set: function set(value) {\n    if (typeof value === \"number\" || typeof value === 'string') {\n      value = new Date(value);\n    }\n\n    if (!value || !value.getTime) value = null;\n    if (value && value.getTime && isNaN(value.getTime())) value = null;\n    this._finishTime = value;\n  },\n  get: function get() {\n    return this._finishTime;\n  }\n};\nCountdownText.property.fps = {\n  set: function set(value) {\n    this._fps = (0, _utils.isRealNumber)(value) ? value : 200;\n\n    if (this._intvId > 0) {\n      clearInterval(this._intvId);\n      this._intvId = setInterval(this._tick, 1000 / this._fps);\n    }\n  },\n  get: function get() {\n    return this._fps;\n  }\n};\n\n_ACore[\"default\"].install(CountdownText);\n\nvar _default = CountdownText;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/CountdownText.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/DVExpTree.js":
/*!**************************************************!*\
  !*** ./node_modules/absol-acomp/js/DVExpTree.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ExpTree = _interopRequireDefault(__webpack_require__(/*! ./ExpTree */ \"./node_modules/absol-acomp/js/ExpTree.js\"));\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\n__webpack_require__(/*! ../css/dvexptree.css */ \"./node_modules/absol-acomp/css/dvexptree.css\");\n\nvar _EventEmitter = __webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends ExpTree\r\n * @constructor\r\n */\nfunction DVExpTree() {\n  this.injectInput();\n}\n\nDVExpTree.tag = 'DVExpTree'.toLowerCase();\n\nDVExpTree.render = function () {\n  return (0, _ACore._)({\n    tag: _ExpTree[\"default\"].tag,\n    extendEvent: ['radiochange', 'indexclick'],\n    \"class\": 'as-dv-exp-tree'\n  }, true);\n};\n\nDVExpTree.prototype.injectInput = function () {\n  this.$radio = (0, _ACore._)({\n    tag: 'radiobutton',\n    on: {\n      change: this.eventHandler.radioChange\n    }\n  });\n  this.$node.insertBefore(this.$radio, this.$node.$extIcon);\n  this.$index = (0, _ACore._)({\n    tag: 'span',\n    \"class\": 'as-dv-exp-tree-index',\n    on: {\n      click: this.eventHandler.indexClick\n    }\n  });\n  this.$node.insertBefore(this.$index, this.$node.$desc);\n  this.$node.on('click', this.eventHandler.clickInNode);\n};\n\nDVExpTree.property = {};\nDVExpTree.property.radioName = {\n  enumerable: true,\n  set: function set(value) {\n    if (!value) {\n      this.removeClass('as-has-radio');\n      this.$radio.name = undefined;\n    } else {\n      this.addClass('as-has-radio');\n      this.$radio.name = value + '';\n    }\n  },\n  get: function get() {\n    return this.$radio.name;\n  }\n};\nDVExpTree.property.radioValue = {\n  enumerable: true,\n  set: function set(value) {\n    this.$radio.value = value;\n  },\n  get: function get() {\n    return this.$radio.value;\n  }\n};\nDVExpTree.property.radioChecked = {\n  enumerable: true,\n  set: function set(value) {\n    this.$radio.checked = value;\n  },\n  get: function get() {\n    return this.$radio.checked;\n  }\n};\nDVExpTree.property.hasIndex = {\n  enumerable: true,\n  set: function set(value) {\n    if (value) this.addClass('as-has-index-input');else this.removeClass('as-has-index-input');\n  },\n  get: function get() {\n    return this.hasClass('as-has-index-input');\n  }\n};\nDVExpTree.property.indexValue = {\n  enumerable: true,\n  set: function set(value) {\n    this.$index.innerHTML = value;\n  },\n  get: function get() {\n    return this.$index.innerHTML;\n  }\n};\nDVExpTree.eventHandler = {};\n\nDVExpTree.eventHandler.radioChange = function (event) {\n  this.emit('radiochange', Object.assign({}, event, {\n    target: this,\n    radioElt: this.$radio\n  }), this);\n};\n\nDVExpTree.eventHandler.indexClick = function (event) {\n  this.emit('indexclick', Object.assign({}, event, {\n    target: this,\n    indexInput: this.$index\n  }), this);\n};\n\nDVExpTree.eventHandler.clickInNode = function (event) {\n  if ((0, _EventEmitter.hitElement)(this.$index, event) || (0, _EventEmitter.hitElement)(this.$radio, event) || (0, _EventEmitter.hitElement)(this.$node.$toggleIcon, event)) return;\n  if ((0, _EventEmitter.hitElement)(this.$node, event) && this.radioName) this.$radio.click();\n};\n\n_ACore[\"default\"].install(DVExpTree);\n\nvar _default = DVExpTree;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/DVExpTree.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/DateInYearInput.js":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/js/DateInYearInput.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _DateInYearPicker = _interopRequireDefault(__webpack_require__(/*! ./DateInYearPicker */ \"./node_modules/absol-acomp/js/DateInYearPicker.js\"));\n\nvar _Follower = _interopRequireDefault(__webpack_require__(/*! ./Follower */ \"./node_modules/absol-acomp/js/Follower.js\"));\n\nvar _EventEmitter = __webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\");\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _datetime = __webpack_require__(/*! absol/src/Time/datetime */ \"./node_modules/absol/src/Time/datetime.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction DateInYearInput() {\n  this._format = 'dd/MM';\n  this._value = null;\n  this.$clearBtn = (0, _ACore.$)('.as-time-input-clear-btn', this).on('click', this.clear.bind(this, true));\n  this.$input = (0, _ACore.$)('input', this);\n  this.on('click', this.eventHandler.click);\n}\n\nDateInYearInput.tag = 'DateInYearInput'.toLowerCase();\n\nDateInYearInput.render = function () {\n  return (0, _ACore._)({\n    extendEvent: ['change'],\n    \"class\": ['as-date-time-input', 'as-date-in-year-input', 'as-empty'],\n    child: [{\n      tag: 'input',\n      \"class\": 'as-date-time-input-text',\n      attr: {\n        ondrop: \"return false;\",\n        readOnly: true\n      },\n      props: {\n        value: 'dd/MM'\n      }\n    }, {\n      tag: 'button',\n      \"class\": 'as-time-input-clear-btn',\n      child: 'span.mdi.mdi-close-circle'\n    }, {\n      tag: 'button',\n      \"class\": 'as-date-time-input-icon-btn',\n      child: 'span.mdi.mdi-calendar-today'\n    }]\n  });\n};\n\nDateInYearInput.prototype.share = {\n  $follower: null,\n  $picker: null,\n  $input: null\n};\n\nDateInYearInput.prototype._preparePicker = function () {\n  if (this.share.$picker) return;\n  this.share.$picker = (0, _ACore._)({\n    tag: _DateInYearPicker[\"default\"].tag,\n    \"class\": 'as-dropdown-box-common-style'\n  });\n  this.share.$follower = (0, _ACore._)({\n    tag: _Follower[\"default\"].tag,\n    \"class\": 'as-date-in-year-follower',\n    child: this.share.$picker\n  });\n};\n\nDateInYearInput.prototype.clear = function (userAction, event) {\n  var pValue = this.value;\n  this.value = null;\n\n  if (pValue) {\n    this.emit('change', {\n      type: 'change',\n      action: 'clear',\n      target: this,\n      originalEvent: event\n    }, this);\n  }\n};\n\nDateInYearInput.prototype._attachPicker = function () {\n  this._preparePicker();\n\n  if (this.share.$input === this) return;\n  if (this.share.$input) this.share.$input._releasePicker();\n  this.share.$input = this;\n  this.share.$follower.addTo(document.body);\n  this.share.$follower.followTarget = this;\n  this.share.$picker.value = this._value;\n  this.share.$picker.on('change', this.eventHandler.pickerChange);\n  setTimeout(function () {\n    document.addEventListener('click', this.eventHandler.clickOut);\n  }.bind(this), 0);\n};\n\nDateInYearInput.prototype._releasePicker = function () {\n  if (this.share.$input !== this) return;\n  var cValue = this._value;\n  var value = this.share.$picker.value;\n\n  var nValue = this._normalizeValue(value);\n\n  this.share.$input = null;\n  this.share.$picker.followTarget = null;\n  this.share.$follower.remove();\n  this.share.$picker.off('change', this.eventHandler.pickerChange);\n  document.removeEventListener('click', this.eventHandler.clickOut);\n  var changed = !cValue !== !nValue;\n\n  if (nValue && !changed) {\n    changed = cValue.date === nValue.date && cValue.month === nValue.month;\n  }\n\n  if (changed) {\n    this._value = value;\n    this.emit('change', {\n      type: 'change',\n      value: nValue,\n      target: this\n    }, this);\n  }\n};\n\nDateInYearInput.prototype._normalizeValue = function (value) {\n  if (!value) return null;\n  var m = Math.min(11, Math.max(0, Math.floor(value.month)));\n  if (isNaN(m)) return null;\n  var dim = (0, _datetime.compareDate)((0, _datetime.nextMonth)(new Date(2000, m, 1)), new Date(2000, m, 1));\n  var d = Math.min(dim, Math.max(1, Math.floor(value.date)));\n  if (isNaN(d)) return null;\n  return {\n    date: d,\n    month: m\n  };\n};\n\nDateInYearInput.prototype._updateValueText = function () {\n  var value = this._value;\n\n  if (value) {\n    this.$input.value = this._format.replace(new RegExp(_datetime.DATE_TIME_TOKEN_RGX.source, 'g'), function (full) {\n      switch (full) {\n        case 'dd':\n        case 'd':\n          if ((0, _utils.isRealNumber)(value.date)) {\n            return (0, _utils.zeroPadding)(value.date, full.length);\n          }\n\n          return full;\n\n        case 'M':\n        case 'MM':\n          if ((0, _utils.isRealNumber)(value.month)) {\n            return (0, _utils.zeroPadding)(value.month + 1, full.length);\n          }\n\n          return full;\n\n        default:\n          return full;\n      }\n    });\n  } else {\n    this.$input.value = this._format;\n  }\n\n  if (this.$input.value === this._format) {\n    this.addClass('as-empty');\n  } else {\n    this.removeClass('as-empty');\n  }\n};\n\nDateInYearInput.property = {};\nDateInYearInput.property.value = {\n  set: function set(value) {\n    value = this._normalizeValue(value);\n    this._value = value;\n\n    this._updateValueText();\n  },\n  get: function get() {\n    return this._normalizeValue(this._value);\n  }\n};\nDateInYearInput.property.notNull = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-must-not-null');\n    } else {\n      this.removeClass('as-must-not-null');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-must-not-null');\n  }\n};\nDateInYearInput.property.disabled = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-disabled');\n      this.$input.disabled = true;\n    } else {\n      this.removeClass('as-disabled');\n      this.$input.disabled = false;\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-disabled');\n  }\n};\nDateInYearInput.property.readOnly = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-read-only');\n      this.$input.readOnly = true;\n    } else {\n      this.removeClass('as-read-only');\n      this.$input.readOnly = false;\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-read-only');\n  }\n};\n/***\r\n * @memberOf DateInYearInput#\r\n * @type {{}}\r\n */\n\nDateInYearInput.eventHandler = {};\n/***\r\n * @this DateInYearInput\r\n * @param event\r\n */\n\nDateInYearInput.eventHandler.click = function (event) {\n  if (this.readOnly || (0, _EventEmitter.hitElement)(this.$clearBtn, event)) return;\n\n  this._attachPicker();\n};\n/***\r\n * @this DateInYearInput\r\n * @param event\r\n */\n\n\nDateInYearInput.eventHandler.clickOut = function (event) {\n  if ((0, _EventEmitter.hitElement)(this.share.$follower, event)) return;\n\n  this._releasePicker();\n};\n\nDateInYearInput.eventHandler.pickerChange = function () {\n  this._value = this.share.$picker.value;\n\n  this._updateValueText();\n};\n\n_ACore[\"default\"].install(DateInYearInput);\n\nvar _default = DateInYearInput;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/DateInYearInput.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/DateInYearPicker.js":
/*!*********************************************************!*\
  !*** ./node_modules/absol-acomp/js/DateInYearPicker.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/dateinyearinput.css */ \"./node_modules/absol-acomp/css/dateinyearinput.css\");\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _DomSignal = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/DomSignal */ \"./node_modules/absol/src/HTML5/DomSignal.js\"));\n\nvar _datetime = __webpack_require__(/*! absol/src/Time/datetime */ \"./node_modules/absol/src/Time/datetime.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction DateInYearPicker() {\n  this._month = null;\n  this._date = null;\n  this.$domSignal = (0, _ACore._)('attachhook').addTo(this);\n  this.domSignal = new _DomSignal[\"default\"](this.$domSignal);\n\n  this._setupMonth();\n\n  this._setupDate();\n}\n\nDateInYearPicker.tag = 'DateInYearPicker'.toLowerCase();\n\nDateInYearPicker.render = function () {\n  return (0, _ACore._)({\n    extendEvent: ['change'],\n    \"class\": 'as-date-in-year-picker',\n    child: [{\n      \"class\": 'as-date-in-year-picker-table',\n      child: [{\n        \"class\": 'as-date-in-year-picker-row',\n        child: [{\n          \"class\": 'as-date-in-year-picker-cell',\n          child: {\n            tag: 'span',\n            child: {\n              text: 'Month'\n            }\n          }\n        }, {\n          \"class\": 'as-date-in-year-picker-cell',\n          child: {\n            tag: 'span',\n            child: {\n              text: 'Date'\n            }\n          }\n        }]\n      }, {\n        \"class\": 'as-date-in-year-picker-row',\n        child: [{\n          \"class\": 'as-date-in-year-picker-cell',\n          child: {\n            \"class\": 'as-date-in-year-picker-month-col',\n            child: [{\n              \"class\": 'as-date-in-year-picker-month-viewport',\n              child: [{\n                \"class\": 'as-date-in-year-picker-month-scroller',\n                child: Array(36).fill(null).map(function (u, i) {\n                  return {\n                    tag: 'button',\n                    \"class\": 'as-date-in-year-picker-month',\n                    child: {\n                      tag: 'span',\n                      child: {\n                        text: 1 + i % 12 + ''\n                      }\n                    },\n                    props: {\n                      monthL: i % 12\n                    }\n                  };\n                })\n              }]\n            }, {\n              tag: 'button',\n              \"class\": ['as-date-in-year-picker-month-btn', 'as-up'],\n              child: 'span.mdi.mdi-chevron-up'\n            }, {\n              tag: 'button',\n              \"class\": ['as-date-in-year-picker-month-btn', 'as-down'],\n              child: 'span.mdi.mdi-chevron-down'\n            }]\n          }\n        }, {\n          \"class\": 'as-date-in-year-picker-cell',\n          child: {\n            \"class\": 'as-date-in-year-picker-days',\n            child: Array(5).fill(null).map(function (u, i) {\n              return {\n                \"class\": 'as-date-in-year-picker-week',\n                child: Array(7).fill(null).map(function (u1, j) {\n                  return {\n                    \"class\": 'as-date-in-year-picker-day',\n                    child: {\n                      tag: 'span',\n                      child: {\n                        text: i * 7 + j + 1 + ''\n                      }\n                    }\n                  };\n                })\n              };\n            })\n          }\n        }]\n      }]\n    }]\n  });\n};\n\nDateInYearPicker.prototype._setupMonth = function () {\n  this._monthScrollDy = 0;\n  this.$monthScroller = (0, _ACore.$)('.as-date-in-year-picker-month-scroller', this).on('scroll', this.eventHandler.monthScroll).once('wheel', this.eventHandler.monthScroll);\n  this.$monthUpBtn = (0, _ACore.$)('.as-date-in-year-picker-month-btn.as-up', this).on('pointerdown', this.eventHandler.monthPressDown);\n  this.$monthDownBtn = (0, _ACore.$)('.as-date-in-year-picker-month-btn.as-down', this).on('pointerdown', this.eventHandler.monthPressUp);\n  this.$months = (0, _ACore.$$)('.as-date-in-year-picker-month', this);\n\n  for (var i = 0; i < 36; ++i) {\n    this.$months[i].on('click', this.eventHandler.clickMonth.bind(this, i % 12));\n  }\n};\n\nDateInYearPicker.prototype._setupDate = function () {\n  this.$days = (0, _ACore.$$)('.as-date-in-year-picker-day', this);\n  var i;\n\n  for (i = 31; i < 35; ++i) {\n    this.$days[i].addStyle('visibility', 'hidden');\n  }\n\n  for (i = 0; i < 31; ++i) {\n    this.$days[i].on('click', this.eventHandler.clickDate.bind(this, i + 1));\n  }\n};\n\nDateInYearPicker.prototype.scrollIntoSelected = function () {\n  if (!this.isDescendantOf(document.body)) {\n    this.domSignal.emit('scrollIntoSelected');\n    return;\n  }\n\n  var d = Infinity;\n  var dy;\n  var y;\n  var ly, hy;\n  var lineHeight = this.getFontSize() * 2;\n\n  if (this._month !== null) {\n    for (var k = 0; k < 3; ++k) {\n      y = this._month * lineHeight + lineHeight * 12 * k;\n      ly = this.$monthScroller.scrollTop;\n      hy = ly + lineHeight * 4 - lineHeight;\n\n      if (ly <= y && hy >= y) {\n        dy = 0;\n        break;\n      }\n\n      if (y < ly && ly - y < d) {\n        d = ly - y;\n        dy = y - ly;\n      }\n\n      if (y > hy && y - hy < d) {\n        d = y - hy;\n        dy = y - hy;\n      }\n    }\n\n    this.$monthScroller.scrollTop += dy;\n  }\n};\n/***\r\n * @memberOf DateInYearPicker#\r\n * @type {{}}\r\n */\n\n\nDateInYearPicker.eventHandler = {};\n/***\r\n * @this DateInYearPicker\r\n */\n\nDateInYearPicker.eventHandler.monthPressDown = function () {\n  document.addEventListener('pointerup', this.eventHandler.monthRelease);\n  this._monthScrollDy = -8;\n  this.eventHandler.monthTick();\n};\n/**\r\n * @this DateInYearPicker\r\n */\n\n\nDateInYearPicker.eventHandler.monthPressUp = function () {\n  document.addEventListener('pointerup', this.eventHandler.monthRelease);\n  this._monthScrollDy = 8;\n  this.eventHandler.monthTick();\n};\n/**\r\n * @this DateInYearPicker\r\n */\n\n\nDateInYearPicker.eventHandler.monthTick = function () {\n  if (!this._monthScrollDy) return;\n  var d = this._monthScrollDy;\n  var fontSize = this.getFontSize();\n  if (this.$monthScroller.scrollTop + d < 0) d += fontSize * 2 * 12;\n  this.$monthScroller.scrollTop += d;\n  setTimeout(this.eventHandler.monthTick, 30);\n};\n\nDateInYearPicker.eventHandler.monthRelease = function () {\n  document.removeEventListener('pointerup', this.eventHandler.monthRelease);\n  this._monthScrollDy = 0;\n};\n/**\r\n * @this DateInYearPicker\r\n */\n\n\nDateInYearPicker.eventHandler.monthScroll = function () {\n  var scrollTop = this.$monthScroller.scrollTop;\n  var fontSize = this.getFontSize();\n\n  if (scrollTop < fontSize * 2 * 12) {\n    this.$monthScroller.scrollTop += fontSize * 2 * 12;\n  } else if (scrollTop > fontSize * 2 * 12 * 2) {\n    this.$monthScroller.scrollTop -= fontSize * 2 * 12;\n  }\n};\n/**\r\n * @this DateInYearPicker\r\n */\n\n\nDateInYearPicker.eventHandler.clickMonth = function (month, event) {\n  var pDate = this.date;\n  if (this.month === month) return;\n  this.month = month;\n  this.emit('change', {\n    type: 'change',\n    originalEvent: event,\n    target: this\n  }, this);\n};\n/**\r\n * @this DateInYearPicker\r\n */\n\n\nDateInYearPicker.eventHandler.clickDate = function (date, event) {\n  if (this.date === date) return;\n  this.date = date;\n  this.emit('change', {\n    type: 'change',\n    originalEvent: event,\n    target: this\n  }, this);\n};\n\nDateInYearPicker.property = {};\nDateInYearPicker.property.date = {\n  set: function set(value) {\n    if (typeof value !== 'number') value = null;\n    var cM, dim;\n\n    if (this._month === null) {\n      dim = 31;\n    } else {\n      cM = new Date(2000, this._month, 1);\n      dim = (0, _datetime.compareDate)((0, _datetime.nextMonth)(cM), cM);\n    }\n\n    if (typeof value === \"number\") value = Math.max(1, Math.min(dim, Math.floor(value)));\n    if (isNaN(value)) value = null;\n    if (this._date === value) return;\n\n    if (this._date !== null) {\n      this.$days[this._date - 1].removeClass('as-selected');\n    }\n\n    this._date = value;\n\n    if (this._date !== null) {\n      this.$days[this._date - 1].addClass('as-selected');\n    }\n  },\n  get: function get() {\n    return this._date;\n  }\n};\nDateInYearPicker.property.month = {\n  /***\r\n   * @this DateInYearPicker\r\n   * @param value\r\n   */\n  set: function set(value) {\n    if (typeof value == 'number') {\n      value = Math.max(0, Math.min(11, Math.floor(value)));\n    } else value = null;\n\n    if (isNaN(value)) value = null;\n    if (this._month === value) return;\n\n    if (this._month !== null) {\n      this.$months[this._month].removeClass('as-selected');\n\n      this.$months[this._month + 12].removeClass('as-selected');\n      this.$months[this._month + 24].removeClass('as-selected');\n    }\n\n    this._month = value;\n    var cM, dim;\n\n    if (this._month !== null) {\n      this.$months[this._month].addClass('as-selected');\n\n      this.$months[this._month + 12].addClass('as-selected');\n      this.$months[this._month + 24].addClass('as-selected');\n      this.scrollIntoSelected();\n      cM = new Date(2000, this._month, 1);\n      dim = (0, _datetime.compareDate)((0, _datetime.nextMonth)(cM), cM);\n    } else {\n      dim = 31;\n    }\n\n    for (var i = 29; i < 31; ++i) {\n      if (i < dim) {\n        this.$days[i].removeStyle('visibility');\n      } else {\n        this.$days[i].addStyle('visibility', 'hidden');\n      }\n    }\n\n    this.date = Math.min(this.date, dim);\n  },\n  get: function get() {\n    return this._month;\n  }\n};\nDateInYearPicker.property.value = {\n  set: function set(value) {\n    value = value || {\n      month: null,\n      date: null\n    };\n    this.month = value.month;\n    this.date = value.date;\n  },\n  get: function get() {\n    return {\n      month: this.month,\n      date: this.date\n    };\n  }\n};\n\n_ACore[\"default\"].install(DateInYearPicker);\n\nvar _default = DateInYearPicker;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/DateInYearPicker.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/DateInput.js":
/*!**************************************************!*\
  !*** ./node_modules/absol-acomp/js/DateInput.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/dateinput.css */ \"./node_modules/absol-acomp/css/dateinput.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _datetime = __webpack_require__(/*! absol/src/Time/datetime */ \"./node_modules/absol/src/Time/datetime.js\");\n\nvar _ChromeCalendar = _interopRequireDefault(__webpack_require__(/*! ./ChromeCalendar */ \"./node_modules/absol-acomp/js/ChromeCalendar.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/**\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction DateInput() {\n  this._lastValue = null;\n  this._value = null;\n  this._format = 'dd/mm/yyyy';\n  this.$input = $('input', this).on('mouseup', this.eventHandler.mouseup).on('keydown', this.eventHandler.keydown).on('paste', this.eventHandler.paste).on('cut', this.eventHandler.cut).on('focus', this.eventHandler.focus);\n  this._minLimitDate = new Date(1890, 0, 1, 0, 0, 0, 0);\n  this._maxLimitDate = new Date(2090, 0, 1, 0, 0, 0, 0);\n  this.$calendarBtn = $('.as-date-input-icon-ctn', this).on('mousedown', this.eventHandler.mousedownCalendarBtn);\n  this._calendarHolder = _ChromeCalendar[\"default\"].showWhenClick(this.$calendarBtn, {\n    minLimitDate: this._minLimitDate,\n    maxLimitDate: this._maxLimitDate,\n    selectedDates: [new Date()]\n  }, 'auto', this.eventHandler.calendarSelect);\n  this._calendarHolder.element = this;\n  this._formater = DateInput.formaters[this._format];\n\n  _OOP[\"default\"].drillProperty(this, this._calendarHolder.calendarProps, ['minLimitDate', 'maxLimitDate']);\n\n  this.value = null;\n}\n\nDateInput.formaters = {\n  'dd/mm/yyyy': {\n    separator: '/',\n    nan: ['dd', 'mm', 'yyyy'],\n    dayIdx: 0,\n    monthIdx: 1,\n    yearIdx: 2\n  },\n  'dd-mm-yyyy': {\n    separator: '-',\n    nan: ['dd', 'mm', 'yyyy'],\n    dayIdx: 0,\n    monthIdx: 1,\n    yearIdx: 2\n  },\n  'dd.mm.yyyy': {\n    separator: '.',\n    nan: ['dd', 'mm', 'yyyy'],\n    dayIdx: 0,\n    monthIdx: 1,\n    yearIdx: 2\n  },\n  'yyyy/mm/dd': {\n    separator: '/',\n    nan: ['yyyy', 'mm', 'dd'],\n    dayIdx: 2,\n    monthIdx: 1,\n    yearIdx: 0\n  },\n  'yyyy-mm-dd': {\n    separator: '-',\n    nan: ['yyyy', 'mm', 'dd'],\n    dayIdx: 2,\n    monthIdx: 1,\n    yearIdx: 0\n  },\n  'mm/dd/yyyy': {\n    separator: '/',\n    nan: ['mm', 'dd', 'yyyy'],\n    dayIdx: 1,\n    monthIdx: 0,\n    yearIdx: 2\n  }\n};\nDateInput.tag = 'dateinput';\n\nDateInput.render = function () {\n  //only support dd/mm/yyyy\n  return _({\n    \"class\": 'as-date-input',\n    extendEvent: ['change'],\n    child: [{\n      tag: 'input',\n      props: {\n        value: '__/__/____'\n      }\n    }, {\n      tag: 'button',\n      \"class\": 'as-date-input-icon-ctn',\n      child: 'span.mdi.mdi-calendar'\n    }]\n  });\n};\n\nDateInput.prototype._autoSelect = function () {\n  var slEnd = this.$input.selectionEnd;\n  var slStart = this.$input.selectionStart;\n  var texts = this.$input.value.split(this._formater.separator);\n  var lTexts = texts.reduce(function (ac, cr) {\n    ac.push(ac[ac.length - 1] + cr.length + 1);\n    return ac;\n  }, [0]);\n\n  function indexOf(offset) {\n    var l;\n\n    for (var i = 0; i < lTexts.length; ++i) {\n      l = lTexts[i];\n      if (l > offset) return i;\n    }\n\n    return texts.length;\n  }\n\n  var i0 = indexOf(slStart);\n  var i1 = indexOf(slEnd);\n\n  if (i0 == i1) {\n    this.$input.selectionStart = lTexts[i0 - 1];\n    this.$input.selectionEnd = lTexts[i0] - 1;\n  } else {\n    this.$input.selectionStart = 0;\n    this.$input.selectionEnd = lTexts[lTexts.length - 1];\n  }\n};\n\nDateInput.prototype.notifyChange = function () {\n  this.emit('change', {\n    type: 'change',\n    target: this,\n    value: this._value\n  }, this);\n};\n\nDateInput.prototype._countSeparator = function (text) {\n  return text.replace(new RegExp('[^\\\\' + this._formater.separator + ']', 'g'), '').length;\n};\n\nDateInput.prototype._cleanCharacter = function (text) {\n  return text.replace(new RegExp('[^0-9\\\\' + this._formater.separator + ']', 'g'), '');\n};\n\nDateInput.prototype._splitBySeparator = function (text) {\n  return text.split(this._formater.separator);\n};\n\nDateInput.prototype._onlySeparator = function (text) {\n  return text.replace(new RegExp('[^\\\\' + this._formater.separator + ']', 'g'), '');\n};\n\nDateInput.prototype._isAcceptKey = function (key) {\n  return !!key.match(new RegExp('[0-9\\\\' + this._formater.separator + ']', 'i'));\n};\n/**\r\n * @type {DateInput}\r\n */\n\n\nDateInput.eventHandler = {};\n\nDateInput.eventHandler.paste = function (event) {\n  var paste = (event.clipboardData || window.clipboardData).getData('text');\n  event.preventDefault();\n  paste = this._cleanCharacter(paste);\n  var slEnd = this.$input.selectionEnd;\n  var slStart = this.$input.selectionStart;\n  var sStart = Math.min(slStart, slEnd);\n  var sEnd = Math.max(slEnd, slStart);\n  var value = this.$input.value;\n\n  var slashPasteCount = this._countSeparator(paste);\n\n  var slashSelectedCount = this._countSeparator(value.substr(sStart, sEnd - sStart));\n\n  if (slashPasteCount < 2) {\n    if (slashPasteCount > slashSelectedCount) {\n      paste = this._splitBySeparator(paste).slice(0, slashSelectedCount + 1).join(this._formater.separator);\n    } else if (slashPasteCount < slashSelectedCount) {\n      paste += this._formater.separator.repeat(slashSelectedCount - slashPasteCount);\n    }\n\n    slStart = (value.substr(0, sStart) + paste).length;\n    slEnd = slStart;\n    value = value.substr(0, sStart) + paste + value.substr(sEnd);\n  } else {\n    value = this._splitBySeparator(paste).slice(0, 3).join(this._formater.separator);\n    slStart = value.length;\n    slEnd = value.length;\n  }\n\n  this.$input.value = value;\n  this.$input.selectionStart = slStart;\n  this.$input.selectionEnd = slEnd;\n};\n\nDateInput.eventHandler.cut = function (event) {\n  event.preventDefault();\n  var slEnd = this.$input.selectionEnd;\n  var slStart = this.$input.selectionStart;\n  var sStart = Math.min(slStart, slEnd);\n  var sEnd = Math.max(slEnd, slStart);\n  var value = this.$input.value;\n  this.$input.value = value.substr(0, sStart) + this._onlySeparator(value.substr(sStart, sEnd - sStart)) + value.substr(sEnd);\n  this.$input.selectionStart = slStart;\n  this.$input.selectionEnd = slStart;\n};\n\nDateInput.eventHandler.mouseup = function () {\n  setTimeout(this._autoSelect.bind(this), 1);\n};\n\nDateInput.eventHandler.focus = function () {\n  this.$input.on('blur', this.eventHandler.blur);\n};\n\nDateInput.eventHandler.blur = function () {\n  var thisIp = this;\n  this.$input.off('blur', this.eventHandler.blur);\n  var value = this.$input.value;\n\n  var slashValueCount = this._countSeparator(value).length;\n\n  for (var i = slashValueCount; i < 2; ++i) {\n    value += this._formater.separator;\n  }\n\n  var texts = value.split(this._formater.separator).slice(0, 3);\n  var day = parseInt(texts[this._formater.dayIdx]);\n  var month = parseInt(texts[this._formater.monthIdx]);\n  var year = parseInt(texts[this._formater.yearIdx]);\n  if (!isNaN(year)) year = Math.min(2090, Math.max(year, 1890));\n  if (!isNaN(month)) month = Math.max(1, Math.min(12, month));\n\n  if (!isNaN(day)) {\n    day = Math.max(1, Math.min(31, day));\n\n    if (!isNaN(month)) {\n      day = Math.min((0, _datetime.daysInMonth)(2000, month), day);\n      if (!isNaN(year)) day = Math.min((0, _datetime.daysInMonth)(year, month), day);\n    }\n  }\n\n  if (!isNaN(year) && !isNaN(month) && !isNaN(day)) {\n    var dateValue = new Date(year, month - 1, day, 0, 0, 0, 0);\n\n    if (this._lastValue == null || (0, _datetime.compareDate)(dateValue, this._lastValue) != 0) {\n      this.value = dateValue;\n      this.notifyChange();\n    }\n  } else {\n    var values = this._formater.nan.slice();\n\n    values[this._formater.dayIdx] = day;\n    values[this._formater.monthIdx] = month;\n    values[this._formater.yearIdx] = year;\n    this.$input.value = values.map(function (e, i) {\n      if (isNaN(e)) return thisIp._formater.nan[i];\n      e = e + '';\n\n      while (e.length < thisIp._formater.nan[i].length) {\n        e = '0' + e;\n      }\n\n      return e;\n    }).join(this._formater.separator);\n\n    if (this._lastValue != null) {\n      this._value = null;\n      this.notifyChange();\n    }\n  }\n};\n\nDateInput.eventHandler.calendarSelect = function (value) {\n  this.value = value;\n  this.notifyChange();\n};\n\nDateInput.eventHandler.keydown = function (event) {\n  var slEnd = this.$input.selectionEnd;\n  var slStart = this.$input.selectionStart;\n  var value = this.$input.value;\n  var sStart = Math.min(slStart, slEnd);\n  var sEnd = Math.max(slEnd, slStart);\n  var selectedValue = value.substr(sStart, sEnd - sStart);\n\n  var slashValueCount = this._countSeparator(value);\n\n  var slashSelectedCount = this._countSeparator(selectedValue);\n\n  var texts = this._splitBySeparator(value);\n\n  var lTexts = texts.reduce(function (ac, cr) {\n    ac.push(ac[ac.length - 1] + cr.length + 1);\n    return ac;\n  }, [0]);\n\n  function indexOf(offset) {\n    var l;\n\n    for (var i = 0; i < lTexts.length; ++i) {\n      l = lTexts[i];\n      if (l > offset) return i;\n    }\n\n    return texts.length;\n  }\n\n  var i0 = indexOf(slStart);\n  var i1 = indexOf(slEnd);\n\n  if (event.key == 'Enter') {\n    event.preventDefault();\n    this.$input.blur();\n  } else if (event.key == 'Meta') {\n    event.preventDefault();\n  } else if (event.key == 'Backspace') {\n    if (slStart == slEnd) {\n      if (slStart > 0) {\n        if (value.charAt(slStart - 1) == this._formater.separator) {\n          event.preventDefault();\n          this.$input.value = value;\n          this.$input.selectionStart = slStart - 1;\n          this.$input.selectionEnd = slStart - 1;\n        }\n      }\n    } else if (i0 != i1) {\n      event.preventDefault();\n      this.$input.value = value.substr(0, sStart) + this._onlySeparator(selectedValue) + value.substr(sEnd);\n      this.$input.selectionStart = slStart;\n      this.$input.selectionEnd = slStart;\n    }\n  } else if (event.key == 'Delete') {\n    if (slStart == slEnd) {\n      if (slStart < value.length) {\n        if (value.charAt(slStart) == this._formater.separator) {\n          event.preventDefault();\n          this.$input.value = value;\n          this.$input.selectionStart = slStart + 1;\n          this.$input.selectionEnd = slStart + 1;\n        }\n      }\n    } else if (i0 != i1) {\n      event.preventDefault();\n      this.$input.value = value.substr(0, sStart) + this._onlySeparator(selectedValue) + value.substr(sEnd);\n      this.$input.selectionStart = slStart;\n      this.$input.selectionEnd = slStart;\n    }\n  } else if (!event.ctrlKey && !event.altKey && event.key && event.key.length == 1) {\n    if (this._isAcceptKey(event.key)) {\n      if (event.key == this._formater.separator) {\n        if (slashSelectedCount == 0 && slashValueCount >= 2 && value.charAt(slEnd) != this._formater.separator) {\n          event.preventDefault();\n        } else if (value.charAt(slEnd) == this._formater.separator) {\n          event.preventDefault();\n          this.$input.selectionStart = lTexts[i1];\n          this.$input.selectionEnd = lTexts[i1 + 1] - 1;\n        }\n      }\n    } else {\n      event.preventDefault();\n    }\n  } else if (!event.ctrlKey && !event.altKey && event.key == \"Tab\") {\n    if (event.shiftKey) {\n      if (i0 > 1) {\n        event.preventDefault();\n        this.$input.selectionStart = lTexts[i1 - 2];\n        this.$input.selectionEnd = lTexts[i1 - 1] - 1;\n      }\n    } else {\n      if (i1 < texts.length) {\n        event.preventDefault();\n        this.$input.selectionStart = lTexts[i1];\n        this.$input.selectionEnd = lTexts[i1 + 1] - 1;\n      }\n    }\n  }\n};\n\nDateInput.property = {};\nDateInput.property.value = {\n  set: function set(value) {\n    if (value === false || value === null || value === undefined) {\n      this.$input.value = this._format;\n      this._value = null;\n    } else if (typeof value == 'string' || typeof value == 'number') {\n      this._value = (0, _datetime.beginOfDay)(new Date(value));\n      this.$input.value = (0, _datetime.formatDateString)(this._value, this._format);\n    } else if (value.getTime) {\n      this._value = (0, _datetime.beginOfDay)(value);\n      this.$input.value = (0, _datetime.formatDateString)(this._value, this._format);\n    }\n\n    this._lastValue = this._value;\n    this._calendarHolder.calendarProps.selectedDates = [this._value || new Date()];\n  },\n  get: function get() {\n    return this._value;\n  }\n};\nDateInput.property.format = {\n  set: function set(value) {\n    value = value || 'dd/mm/yyyy';\n    if (value == this._format) return;\n\n    if (DateInput.formaters[value]) {\n      this._formater = DateInput.formaters[value];\n      this._format = value;\n      this.value = this.value;\n    } else {\n      throw new Error(\"Not support format \" + value);\n    }\n  },\n  get: function get() {\n    return this._format;\n  }\n};\nDateInput.property.disabled = {\n  set: function set(value) {\n    value = !!value;\n    this.$input.disabled = value;\n    if (value) this.addClass('as-disabled');else this.removeClass('as-disabled');\n  },\n  get: function get() {\n    return this.$input.disabled;\n  }\n};\n\n_ACore[\"default\"].install(DateInput);\n\nvar _default = DateInput;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/DateInput.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/DateInput2.js":
/*!***************************************************!*\
  !*** ./node_modules/absol-acomp/js/DateInput2.js ***!
  \***************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/dateinput.css */ \"./node_modules/absol-acomp/css/dateinput.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _datetime = __webpack_require__(/*! absol/src/Time/datetime */ \"./node_modules/absol/src/Time/datetime.js\");\n\nvar _ChromeCalendar = _interopRequireDefault(__webpack_require__(/*! ./ChromeCalendar */ \"./node_modules/absol-acomp/js/ChromeCalendar.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _DateInput = _interopRequireDefault(__webpack_require__(/*! ./DateInput */ \"./node_modules/absol-acomp/js/DateInput.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nvar _DomSignal = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/DomSignal */ \"./node_modules/absol/src/HTML5/DomSignal.js\"));\n\nvar _DateTimeInput = _interopRequireDefault(__webpack_require__(/*! ./DateTimeInput */ \"./node_modules/absol-acomp/js/DateTimeInput.js\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _EventEmitter = __webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar STATE_NEW = 1;\nvar STATE_EDITED = 2;\nvar STATE_NONE = 0;\n/***\r\n *\r\n * @param {Date} date\r\n * @param level\r\n * @returns {Date|null}\r\n */\n\nvar dateByLevel = function dateByLevel(date, level) {\n  if (!date) return null;\n\n  switch (level) {\n    case 'week':\n      return (0, _datetime.beginOfWeek)(date);\n\n    case 'month':\n      return (0, _datetime.beginOfMonth)(date);\n\n    case 'quarter':\n      return (0, _datetime.beginOfQuarter)(date);\n\n    case 'year':\n      return (0, _datetime.beginOfYear)(date);\n\n    case 'date':\n    default:\n      return (0, _datetime.beginOfDay)(date);\n  }\n};\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/**\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction DateInput2() {\n  this._lastValue = null;\n  this._value = null;\n  this._format = 'dd/MM/yyyy';\n  this.$input = $('input', this);\n  this._editingData = {};\n  this.startDayOfWeek = (0, _datetime.getDefaultFirstDayOfWeek)();\n  this.$text = this.$input;\n  this.$text.on('mousedown', this.eventHandler.mouseDownInput).on('mouseup', this.eventHandler.mouseUpInput).on('dblclick', this.eventHandler.dblclickInput).on('keydown', this.eventHandler.keydown).on('blur', this.eventHandler.inputBlur).on('contextmenu', function (event) {\n    event.preventDefault();\n  });\n  this.$domSignal = _('attachhook').addTo(this);\n  this.domSignal = new _DomSignal[\"default\"](this.$domSignal);\n  this.domSignal.on('request_auto_select', this._autoSelect.bind(this));\n  this._min = new Date(1890, 0, 1, 0, 0, 0, 0);\n  this._max = new Date(2090, 0, 1, 0, 0, 0, 0);\n  this.$calendarBtn = $('.as-date-input-icon-ctn', this).on('click', this.eventHandler.clickCalendarBtn);\n  this.$clearBtn = $('button.as-date-input-clear-btn', this).on('click', this.clear.bind(this));\n  this.value = this._value;\n  this.format = this._format;\n  this.notNull = false;\n\n  _OOP[\"default\"].drillProperty(this, this, 'minLimitDate', 'min');\n\n  _OOP[\"default\"].drillProperty(this, this, 'minDateLimit', 'min');\n\n  _OOP[\"default\"].drillProperty(this, this, 'maxLimitDate', 'max');\n\n  _OOP[\"default\"].drillProperty(this, this, 'maxDateLimit', 'max');\n}\n\nDateInput2.tag = 'dateinput';\n\nDateInput2.render = function () {\n  //only support dd/mm/yyyy\n  return _({\n    \"class\": 'as-date-input',\n    extendEvent: ['change'],\n    child: [{\n      tag: 'input',\n      \"class\": 'as-date-input-text',\n      props: {\n        value: '__/__/____'\n      }\n    }, {\n      tag: 'button',\n      \"class\": 'as-date-input-clear-btn',\n      child: 'span.mdi.mdi-close-circle'\n    }, {\n      tag: 'button',\n      \"class\": 'as-date-input-icon-ctn',\n      child: 'span.mdi.mdi-calendar'\n    }]\n  });\n};\n/**\r\n * @param {String} text\r\n */\n\n\nDateInput2.prototype._verifyFormat = function (text) {\n  var regex = new RegExp(_datetime.DATE_TIME_TOKEN_RGX.source, 'g');\n  var tokens = text.match(regex);\n  var map = {\n    d: ['dd', 'd'],\n    M: ['M', 'MM'],\n    y: ['yy', 'yyyy'],\n    Q: ['Q', 'QQ'],\n    w: ['w', 'ww']\n  };\n  var rules = ['dMy', 'My', 'y', 'wy', 'Qy'].map(function (r) {\n    r = r.split('');\n    r.sort();\n    return r.join('');\n  });\n  var matched = tokens.reduce(function (ac, cr) {\n    Object.keys(map).some(function (key) {\n      if (map[key].indexOf(cr) >= 0) {\n        ac.push(key);\n        return true;\n      }\n\n      return false;\n    });\n    return ac;\n  }, []);\n  matched.sort();\n  matched = matched.join('');\n  return rules.indexOf(matched) >= 0;\n};\n\nDateInput2.prototype._notifyIfChange = function (event) {\n  var oldV = this._explicit(this._lastValue);\n\n  var newV = this._explicit(this._value);\n\n  if (!oldV !== !newV || oldV && newV && (0, _datetime.compareDate)(oldV, newV) !== 0) {\n    this._lastValue = this._value;\n    this.emit('change', {\n      type: 'change',\n      target: this,\n      value: this._value,\n      originEvent: event\n    }, this);\n  }\n};\n\nDateInput2.prototype.notifyChange = function () {\n  this._lastValue = this._value;\n  this.emit('change', {\n    type: 'change',\n    target: this,\n    value: this._value\n  }, this);\n};\n\nDateInput2.prototype.focus = function () {\n  this.$input.focus();\n};\n\nDateInput2.prototype.blur = function () {\n  this.$input.blur();\n};\n\nDateInput2.prototype.clear = function () {\n  this._applyValue(null);\n\n  this._notifyIfChange();\n};\n/***\r\n *\r\n * @param {Date|null} value\r\n */\n\n\nDateInput2.prototype._applyValue = function (value) {\n  this._value = value;\n\n  if (!value) {\n    this.$input.value = this.format;\n  } else {\n    this.$input.value = (0, _datetime.formatDateTime)(this._value, this._format);\n  }\n\n  this._updateNullClass();\n};\n\nDateInput2.prototype._updateNullClass = function () {\n  var value = this._value;\n\n  if (!value) {\n    this.addClass('as-value-null');\n  } else {\n    this.removeClass('as-value-null');\n  }\n};\n\nDateInput2.prototype.tokenRegex = _DateTimeInput[\"default\"].prototype.tokenRegex;\nDateInput2.prototype._autoSelect = _DateTimeInput[\"default\"].prototype._autoSelect;\nDateInput2.prototype._tokenAt = _DateTimeInput[\"default\"].prototype._tokenAt;\nDateInput2.prototype._editNextToken = _DateTimeInput[\"default\"].prototype._editNextToken;\nDateInput2.prototype._editPrevToken = _DateTimeInput[\"default\"].prototype._editPrevToken;\nDateInput2.prototype._makeTokenDict = _DateTimeInput[\"default\"].prototype._makeTokenDict;\n\nDateInput2.prototype._correctingInput = function () {\n  var tkDict = this._makeTokenDict(this.$text.value);\n\n  var min = this._min;\n  var max = this._max;\n  var equalMin;\n  var equalMax;\n\n  if (!isNaN(tkDict.y.value)) {\n    tkDict.y.value = Math.max(min.getFullYear(), Math.min(max.getFullYear(), tkDict.y.value));\n    equalMin = tkDict.y.value === min.getFullYear();\n    equalMax = tkDict.y.value === max.getFullYear();\n  } else {\n    equalMin = false;\n    equalMax = false;\n  }\n\n  if (tkDict.M && !isNaN(tkDict.M.value)) {\n    tkDict.M.value = Math.max(1, Math.min(12, tkDict.M.value));\n\n    if (equalMin) {\n      tkDict.M.value = Math.max(min.getMonth() + 1, tkDict.M.value);\n      equalMin = tkDict.M.value === min.getMonth() + 1;\n    }\n\n    if (equalMax) {\n      tkDict.M.value = Math.min(max.getMonth() + 1, tkDict.M.value);\n      equalMax = max.getMonth() + 1;\n    }\n  } else {\n    equalMin = false;\n    equalMax = false;\n  }\n\n  if (tkDict.d && !isNaN(tkDict.d.value)) {\n    tkDict.d.value = Math.max(1, Math.min(31, tkDict.d.value));\n\n    if (!isNaN(tkDict.M.value)) {\n      tkDict.d.value = Math.min(tkDict.d.value, (0, _datetime.daysInMonth)(isNaN(tkDict.y.value) ? 2020 : tkDict.y.value, tkDict.M.value - 1));\n    }\n\n    if (equalMin) {\n      tkDict.d.value = Math.max(min.getDate(), tkDict.d.value);\n    }\n\n    if (equalMax) {\n      tkDict.d.value = Math.min(max.getDate(), tkDict.d.value);\n    }\n  }\n\n  if (tkDict.w && !isNaN(tkDict.w.value)) {\n    if (!isNaN(tkDict.y.value)) {\n      tkDict.w.value = Math.max(1, Math.min(tkDict.w.value, 1 + (0, _datetime.weekIndexOf)((0, _datetime.prevDate)(new Date(tkDict.y.value + 1, 0, 1)), false, this._startDayOfWeek)));\n    }\n  }\n\n  this.$text.value = this._applyTokenDict(this._format, tkDict);\n};\n\nDateInput2.prototype._correctingCurrentToken = function () {\n  var token = this._tokenAt(this.$text.selectionStart);\n\n  if (!token) return;\n  var value;\n  value = parseInt(token.text);\n  var rqMin = {\n    d: 1,\n    dd: 1,\n    M: 1,\n    MM: 1,\n    y: 1890,\n    yyyy: 1890,\n    w: 1,\n    ww: 1,\n    Q: 1,\n    QQ: 1\n  }[token.ident];\n  var rqMax = {\n    d: 31,\n    dd: 31,\n    M: 12,\n    MM: 12,\n    y: 2089,\n    yyyy: 2089,\n    w: 54,\n    ww: 54,\n    Q: 4,\n    QQ: 4\n  }[token.ident];\n\n  if (rqMin !== undefined) {\n    if (!isNaN(value)) {\n      if (value < rqMin || value > rqMin) {\n        value = Math.max(rqMin, Math.min(rqMax, value));\n        token.replace((0, _utils.zeroPadding)(value, token.ident.length), false);\n      }\n    } else if (this.notNull) {\n      if (token.ident.startsWith('y')) {\n        value = new Date().getFullYear();\n      } else {\n        value = rqMin;\n      }\n\n      token.replace((0, _utils.zeroPadding)(value, token.ident.length), false);\n    } else if (token.text !== token.ident) {\n      token.replace(token.ident, false);\n    }\n  }\n};\n/***\r\n *\r\n * @param {Date|string|null}date\r\n * @return {Date|null}\r\n */\n\n\nDateInput2.prototype._normalizeValue = function (date) {\n  var temp;\n\n  if (date === null || date === undefined || date === false) {\n    return null;\n  }\n\n  if (typeof date === 'string') {\n    temp = new Date(date);\n\n    if (isNaN(temp.getTime())) {\n      temp = (0, _datetime.parseDateTime)(date, this._format);\n    }\n\n    date = temp;\n  } else if (typeof date === 'number') {\n    date = new Date(date);\n  }\n\n  if (date.getTime && date.getHours) {\n    if (isNaN(date.getTime())) {\n      return null;\n    } else {\n      return (0, _datetime.beginOfDay)(date);\n    }\n  } else {\n    return null;\n  }\n};\n\nDateInput2.prototype._loadValueFromInput = function () {\n  var tkDict = this._makeTokenDict(this.$text.value);\n\n  var y = tkDict.y ? tkDict.y.value : new Date().getFullYear();\n  var m = tkDict.M ? tkDict.M.value - 1 : 0;\n  var d = tkDict.d ? tkDict.d.value : 1;\n  var date;\n\n  if (tkDict.w && tkDict.y) {\n    if ((0, _utils.isRealNumber)(tkDict.w.value) && (0, _utils.isRealNumber)(tkDict.y.value)) date = (0, _datetime.weekInYear)(y, tkDict.w.value - 1);\n  } else if (tkDict.Q && tkDict.y) {\n    if ((0, _utils.isRealNumber)(tkDict.Q.value) && (0, _utils.isRealNumber)(tkDict.y.value)) date = new Date(y, (tkDict.Q.value - 1) * 3, 1);\n  } else {\n    date = new Date(y, m, d);\n  }\n\n  if (!date || isNaN(date.getTime())) {\n    this._value = null;\n  } else {\n    this._value = date;\n  }\n\n  this._updateNullClass();\n};\n\nDateInput2.prototype._explicit = function (value) {\n  value = value || null;\n\n  if (this.notNull) {\n    value = value || new Date();\n  } else if (!value) return null;\n\n  var time = value.getTime();\n  time = Math.max(this._min.getTime(), time);\n  time = Math.min(this._max.getTime(), time);\n  return dateByLevel(new Date(time), this.calendarLevel);\n};\n\nDateInput2.prototype._applyTokenDict = function (format, dict, debug) {\n  var rgx = new RegExp(this.tokenRegex.source, 'g');\n  var tokenMap = this.tokenMap;\n  var res = format.replace(rgx, function (full, g1, g2, sourceText) {\n    if (g1 && tokenMap[g1]) {\n      var ident = tokenMap[g1];\n\n      if (dict[ident] && !isNaN(dict[ident].value)) {\n        return (0, _utils.zeroPadding)(dict[ident].value, g1.length);\n      } else {\n        return full;\n      }\n    } else return full;\n  });\n  return res;\n};\n\nDateInput2.prototype.focus = function () {\n  this.$text.focus();\n  this.$text.select();\n};\n\nDateInput2.prototype.tokenMap = {\n  d: 'd',\n  dd: 'd',\n  M: 'M',\n  MM: 'M',\n  y: 'y',\n  yyyy: 'y',\n  ww: 'w',\n  Q: 'Q',\n  QQ: 'Q'\n};\n/**\r\n * @type {DateInput2}\r\n */\n\nDateInput2.eventHandler = {};\n\nDateInput2.eventHandler.keydown = function (event) {\n  if (this.readOnly) {\n    if (!event.ctrlKey || event.key !== 'c') {\n      event.preventDefault();\n    }\n\n    return;\n  }\n\n  var token = this._tokenAt(this.$text.selectionStart);\n\n  var endToken = this._tokenAt(this.$text.selectionEnd);\n\n  if (!token) {\n    if (event.key === 'Enter') {\n      this._correctingInput();\n\n      this._loadValueFromInput();\n\n      this._notifyIfChange(event);\n    }\n\n    return;\n  }\n\n  var newTokenText;\n  var value;\n\n  if (event.key.startsWith('Arrow') || event.key.match(/^[\\-/,\\s]$/)) {\n    event.preventDefault();\n\n    switch (event.key) {\n      case 'ArrowLeft':\n        this._editPrevToken();\n\n        break;\n\n      case 'ArrowRight':\n      case '-':\n      case ',':\n      case '/':\n      case ' ':\n        this._editNextToken();\n\n        break;\n\n      case 'ArrowUp':\n      case 'ArrowDown':\n        switch (token.ident) {\n          case 'dd':\n          case 'd':\n            value = parseInt(token.text);\n\n            if (isNaN(value)) {\n              this._editingData.d = event.key === 'ArrowUp' ? 1 : 31;\n            } else {\n              this._editingData.d = 1 + (value + (event.key === 'ArrowUp' ? 0 : 29)) % 31;\n            }\n\n            newTokenText = '' + this._editingData.d;\n\n            while (newTokenText.length < token.ident.length) {\n              newTokenText = '0' + newTokenText;\n            }\n\n            token.replace(newTokenText, true);\n            break;\n\n          case 'w':\n          case 'ww':\n            value = parseInt(token.text);\n\n            if (isNaN(value)) {\n              this._editingData.w = event.key === 'ArrowUp' ? 1 : 54;\n            } else {\n              this._editingData.w = 1 + (value + (event.key === 'ArrowUp' ? 0 : 52)) % 54;\n            }\n\n            newTokenText = (0, _utils.zeroPadding)(this._editingData.w, token.ident.length);\n            token.replace(newTokenText, true);\n            break;\n\n          case 'Q':\n          case 'QQ':\n            value = parseInt(token.text);\n\n            if (isNaN(value)) {\n              this._editingData.Q = event.key === 'ArrowUp' ? 1 : 4;\n            } else {\n              this._editingData.Q = 1 + (value + (event.key === 'ArrowUp' ? 0 : 2)) % 4;\n            }\n\n            newTokenText = (0, _utils.zeroPadding)(this._editingData.Q, token.ident.length);\n            token.replace(newTokenText, true);\n            break;\n\n          case 'MM':\n          case 'M':\n            value = parseInt(token.text) - 1;\n\n            if (isNaN(value)) {\n              this._editingData.M = event.key === 'ArrowUp' ? 0 : 11;\n            } else {\n              this._editingData.M = (value + (event.key === 'ArrowUp' ? 1 : 11)) % 12;\n            }\n\n            newTokenText = '' + (this._editingData.M + 1);\n\n            while (newTokenText.length < token.ident.length) {\n              newTokenText = '0' + newTokenText;\n            }\n\n            token.replace(newTokenText, true);\n            break;\n\n          case 'yyyy':\n            value = parseInt(token.text);\n\n            if (isNaN(value)) {\n              this._editingData.y = new Date().getFullYear();\n            } else {\n              this._editingData.y = Math.max(1890, Math.min(2089, value + (event.key === 'ArrowUp' ? 1 : -1)));\n            }\n\n            newTokenText = this._editingData.y + '';\n\n            while (newTokenText.length < token.ident.length) {\n              newTokenText = '0' + newTokenText;\n            }\n\n            token.replace(newTokenText, true);\n            break;\n        }\n\n    }\n  } else if (event.key === \"Delete\" || event.key === 'Backspace') {\n    event.preventDefault();\n\n    if (endToken.idx !== token.idx) {\n      if (this.notNull) {\n        this.$text.value = (0, _datetime.formatDateTime)(new Date(Math.min(this.max.getTime(), Math.max(this.min.getTime(), new Date().getTime()))), this._format);\n      } else {\n        this.$text.value = this._format;\n      }\n\n      this.$text.select();\n    } else {\n      if (this.notNull) {\n        switch (token.ident) {\n          case 'y':\n          case 'yyyy':\n            token.replace((0, _utils.zeroPadding)(new Date().getFullYear(), token.ident.length), true);\n            break;\n\n          case 'w':\n          case 'ww':\n          case 'Q':\n          case 'QQ':\n            token.replace((0, _utils.zeroPadding)(1, token.ident.length), true);\n            break;\n\n          case 'M':\n          case 'MM':\n          case 'd':\n          case 'dd':\n            token.replace((0, _utils.zeroPadding)(1, token.ident.length), true);\n            break;\n\n          default:\n            token.replace(token.ident, true);\n        }\n      } else {\n        token.replace(token.ident, true);\n      }\n\n      if (event.key === \"Delete\") this._editNextToken();else this._editPrevToken();\n    }\n  } else if (event.key === \"Enter\" || event.key === 'Tab') {\n    this._correctingInput();\n\n    this._loadValueFromInput();\n\n    this._notifyIfChange(event);\n  } else if (event.ctrlKey) {\n    switch (event.key) {\n      case 'a':\n      case 'A':\n        break;\n\n      case 'c':\n      case 'C':\n        break;\n\n      case 'x':\n      case 'X':\n        this.domSignal.once('clear_value', function () {\n          this.$text.value = this._format;\n          this.$text.select();\n        }.bind(this));\n        this.domSignal.emit('clear_value');\n        break;\n\n      default:\n        event.preventDefault();\n    }\n  } else if (event.key.match(/^[0-9]$/g)) {\n    event.preventDefault();\n    var dVal = parseInt(event.key);\n\n    if (this._editingData.state === STATE_NEW) {\n      switch (token.ident) {\n        case 'dd':\n        case 'd':\n          token.replace((0, _utils.zeroPadding)(dVal, token.ident.length), true);\n          this._editingData.state = STATE_EDITED;\n          this._editingData.d = dVal;\n\n          if (dVal > 3) {\n            this._editNextToken();\n          }\n\n          break;\n\n        case 'w':\n        case 'ww':\n          token.replace((0, _utils.zeroPadding)(dVal, token.ident.length), true);\n          this._editingData.state = STATE_EDITED;\n          this._editingData.d = dVal;\n\n          if (dVal > 6) {\n            this._editNextToken();\n          }\n\n          break;\n\n        case 'Q':\n        case 'QQ':\n          dVal = Math.max(1, Math.min(dVal, 4));\n          token.replace((0, _utils.zeroPadding)(dVal, token.ident.length), true);\n          this._editingData.state = STATE_EDITED;\n          this._editingData.Q = dVal;\n\n          this._editNextToken();\n\n          break;\n\n        case 'MM':\n        case 'M':\n          token.replace((0, _utils.zeroPadding)(dVal, token.ident.length), true);\n          this._editingData.state = STATE_EDITED;\n          this._editingData.M = dVal;\n\n          if (dVal > 1) {\n            this._editNextToken();\n          }\n\n          break;\n\n        case 'yyyy':\n        case 'y':\n          token.replace((0, _utils.zeroPadding)(dVal, token.ident.length), true);\n          this._editingData.state = STATE_EDITED;\n          this._editingData.state_num = 1;\n          break;\n      }\n    } else {\n      switch (token.ident) {\n        case 'dd':\n        case 'd':\n          dVal = (parseInt(token.text.split('').pop()) || 0) * 10 + dVal;\n          dVal = Math.max(1, Math.min(31, dVal));\n          this._editingData.d = dVal;\n          token.replace((0, _utils.zeroPadding)(dVal, token.ident.length), true);\n\n          this._editNextToken();\n\n          break;\n\n        case 'ww':\n        case 'w':\n          dVal = (parseInt(token.text.split('').pop()) || 0) * 10 + dVal;\n          dVal = Math.max(1, Math.min(54, dVal));\n          this._editingData.d = dVal;\n          token.replace((0, _utils.zeroPadding)(dVal, token.ident.length), true);\n\n          this._editNextToken();\n\n          break;\n\n        case 'Q':\n        case 'QQ':\n          dVal = Math.max(1, Math.min(dVal, 4));\n          token.replace((0, _utils.zeroPadding)(dVal, token.ident.length), true);\n          this._editingData.Q = dVal;\n\n          this._editNextToken();\n\n          break;\n\n        case 'MM':\n        case 'M':\n          dVal = (parseInt(token.text.split('').pop()) || 0) * 10 + dVal;\n          dVal = Math.max(1, Math.min(12, dVal));\n          this._editingData.M = dVal - 1;\n          token.replace((0, _utils.zeroPadding)(dVal, token.ident.length), true);\n\n          this._editNextToken();\n\n          break;\n\n        case 'yyyy':\n        case 'y':\n          dVal = (parseInt(token.text.replace(/^./, '')) || 0) * 10 + dVal;\n          this._editingData.state_num++;\n\n          if (this._editingData.state_num >= 4) {\n            // dVal = Math.max(1890, Math.min(2089, dVal));\n            token.replace((0, _utils.zeroPadding)(dVal, token.ident.length), true);\n\n            this._editNextToken();\n          } else {\n            token.replace((0, _utils.zeroPadding)(dVal, token.ident.length), true);\n          }\n\n          break;\n      }\n    }\n  } else {\n    event.preventDefault();\n  }\n};\n\nDateInput2.eventHandler.mouseUpInput = _DateTimeInput[\"default\"].eventHandler.mouseUpInput;\nDateInput2.eventHandler.mouseDownInput = _DateTimeInput[\"default\"].eventHandler.mouseDownInput;\nDateInput2.eventHandler.dblclickInput = _DateTimeInput[\"default\"].eventHandler.dblclickInput;\nDateInput2.eventHandler.inputBlur = _DateTimeInput[\"default\"].eventHandler.inputBlur;\n\nDateInput2.eventHandler.calendarSelect = function (value) {\n  var oldV = this._explicit(this._lastValue);\n\n  this.value = value;\n\n  var newV = this._explicit(this._value);\n\n  if (!oldV !== !newV || oldV && newV && (0, _datetime.compareDate)(oldV, newV) !== 0) {\n    this.emit('change', {\n      type: 'change',\n      target: this,\n      value: this._value\n    }, this);\n  }\n};\n\nDateInput2.eventHandler.clickCalendarBtn = function () {\n  if (this.readOnly) return;\n\n  this._attachCalendar();\n};\n\nDateInput2.eventHandler.clickOut = function (event) {\n  if ((0, _EventEmitter.hitElement)(this.share.$calendar, event)) return;\n\n  this._releaseCalendar();\n};\n\nDateInput2.eventHandler.calendarPick = function (event) {\n  this._applyValue(event.value);\n\n  this._notifyIfChange(event.originEvent || event);\n\n  this._releaseCalendar();\n};\n\nDateInput2.property = {};\nDateInput2.property.value = {\n  set: function set(value) {\n    value = this._normalizeValue(value);\n    if (!value && this.notNull) value = (0, _datetime.beginOfDay)(new Date());\n    this._lastValue = value;\n\n    this._applyValue(value);\n  },\n  get: function get() {\n    return this._explicit(this._value);\n  }\n};\n/**\r\n * not support MMM, MMMM, support number only\r\n * @type {DateInput2}\r\n */\n\nDateInput2.property.format = {\n  set: function set(value) {\n    value = value || 'dd/MM/yyyy';\n    value = value.replace(new RegExp(_datetime.DATE_TIME_TOKEN_RGX.source, 'g'), function (full) {\n      if (full === 'mm' || full === 'MMM' || full === 'MMMM' || full === 'mmm' || full === 'mmmm') return 'MM';\n      if (full === 'm') return 'M';\n      return full;\n    });\n\n    if (!this._verifyFormat(value)) {\n      value = 'dd/MM/yyyy';\n      console.error(\"Invalid date format: \" + value);\n    }\n\n    this._format = value;\n    this._formatTokens = this._format.match(new RegExp(_datetime.DATE_TIME_TOKEN_RGX.source, 'g')) || [];\n    this.value = this.value; //update\n  },\n  get: function get() {\n    return this._format;\n  }\n};\nDateInput2.property.disabled = {\n  set: function set(value) {\n    value = !!value;\n    this.$input.disabled = value;\n    if (value) this.addClass('as-disabled');else this.removeClass('as-disabled');\n    this.$text.disabled = value;\n  },\n  get: function get() {\n    return this.$input.disabled;\n  }\n};\nDateInput2.property.readOnly = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-read-only');\n      this.$input.readOnly = true;\n    } else {\n      this.removeClass('as-read-only');\n      this.$input.readOnly = false;\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-read-only');\n  }\n};\nDateInput2.property.text = {\n  get: function get() {\n    return this.$input.value;\n  }\n};\nDateInput2.property.calendarLevel = {\n  /***\r\n   * @memberOf DateInput2\r\n   * @name calendarLevel\r\n   * @type {number}\r\n   */\n  get: function get() {\n    if (this._formatTokens.indexOf('d') >= 0 || this._formatTokens.indexOf('dd') >= 0) return 'day';\n    if (this._formatTokens.indexOf('w') >= 0 || this._formatTokens.indexOf('ww') >= 0) return 'week';\n    if (this._formatTokens.indexOf('M') >= 0 || this._formatTokens.indexOf('MM') >= 0) return 'month';\n    if (this._formatTokens.indexOf('Q') >= 0 || this._formatTokens.indexOf('QQ') >= 0) return 'quarter';\n    return 'year';\n  }\n};\nDateInput2.property.min = {\n  set: function set(value) {\n    this._min = this._normalizeValue(value) || new Date(1890, 0, 1);\n  },\n  get: function get() {\n    return this._min;\n  }\n};\nDateInput2.property.max = {\n  set: function set(value) {\n    this._max = this._normalizeValue(value) || new Date(2090, 0, 1);\n  },\n  get: function get() {\n    return this._max;\n  }\n};\nDateInput2.property.notNull = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-must-not-null');\n      if (!this.value) this.value = new Date();\n    } else {\n      this.removeClass('as-must-not-null');\n    }\n\n    this.value = this.value; //update\n  },\n  get: function get() {\n    return this.hasClass('as-must-not-null');\n  }\n};\nDateInput2.prototype.share = {\n  /***\r\n   * @type {ChromeCalendar}\r\n   */\n  $calendar: null,\n\n  /***\r\n   * @type {Follower}\r\n   */\n  $follower: null,\n\n  /***\r\n   * @type {DateInput2}\r\n   */\n  $holdingInput: null\n};\n\nDateInput2.prototype._prepareCalendar = function () {\n  if (this.share.$calendar) return;\n  this.share.$calendar = _({\n    tag: 'chromecalendar',\n    \"class\": ['as-date-input-calendar', 'as-dropdown-box-common-style']\n  });\n  this.share.$follower = _({\n    tag: 'follower',\n    \"class\": 'as-date-input-follower',\n    child: this.share.$calendar\n  });\n};\n\nDateInput2.prototype._attachCalendar = function () {\n  this._prepareCalendar();\n\n  if (this.share.$holdingInput) this.share.$holdingInput._releaseCalendar();\n  this.share.$follower.addTo(document.body);\n  this.share.$follower.addStyle('visibility', 'hidden');\n  this.share.$holdingInput = this;\n  this.share.$follower.followTarget = this;\n  this.share.$calendar.level = this.calendarLevel;\n  this.share.$calendar.startDayOfWeek = this.startDayOfWeek || 0;\n  this.share.$calendar.min = this._min;\n  this.share.$calendar.max = this._max;\n  this.share.$calendar.on('pick', this.eventHandler.calendarPick);\n  this.share.$calendar.selectedDates = this.value ? [this.value] : [];\n  this.share.$calendar.viewDate = this.value ? this.value : new Date(Math.max(this._min.getTime(), Math.min(this._max.getTime(), new Date().getTime())));\n  setTimeout(function () {\n    document.body.addEventListener('click', this.eventHandler.clickOut);\n    this.share.$follower.removeStyle('visibility');\n  }.bind(this), 5);\n  this.$calendarBtn.off('click', this.eventHandler.clickCalendarBtn);\n};\n\nDateInput2.prototype._releaseCalendar = function () {\n  if (this.share.$holdingInput !== this) return;\n  this.share.$calendar.off('pick', this.eventHandler.calendarPick);\n  this.share.$follower.remove();\n  document.body.removeEventListener('click', this.eventHandler.clickOut);\n  setTimeout(function () {\n    this.$calendarBtn.on('click', this.eventHandler.clickCalendarBtn);\n  }.bind(this), 5);\n  this.share.$holdingInput = null;\n};\n\n_ACore[\"default\"].install(DateInput2);\n\nvar _default = DateInput2;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/DateInput2.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/DateTimeInput.js":
/*!******************************************************!*\
  !*** ./node_modules/absol-acomp/js/DateTimeInput.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\n__webpack_require__(/*! ../css/datetimeinput.css */ \"./node_modules/absol-acomp/css/datetimeinput.css\");\n\nvar _DomSignal = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/DomSignal */ \"./node_modules/absol/src/HTML5/DomSignal.js\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _datetime = __webpack_require__(/*! absol/src/Time/datetime */ \"./node_modules/absol/src/Time/datetime.js\");\n\nvar _ChromeTimePicker = _interopRequireDefault(__webpack_require__(/*! ./ChromeTimePicker */ \"./node_modules/absol-acomp/js/ChromeTimePicker.js\"));\n\nvar _ChromeCalendar = _interopRequireDefault(__webpack_require__(/*! ./ChromeCalendar */ \"./node_modules/absol-acomp/js/ChromeCalendar.js\"));\n\nvar _Follower = _interopRequireDefault(__webpack_require__(/*! ./Follower */ \"./node_modules/absol-acomp/js/Follower.js\"));\n\nvar _EventEmitter = __webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\");\n\nvar _keyboard = __webpack_require__(/*! absol/src/Input/keyboard */ \"./node_modules/absol/src/Input/keyboard.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar STATE_NEW = 1;\nvar STATE_EDITED = 2;\nvar STATE_NONE = 0;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction DateTimeInput() {\n  this._editingData = {};\n  this._value = null;\n  this._min = new Date(1890, 0, 1);\n  this._max = new Date(new Date(2090, 0, 1).getTime() - 1);\n  this._format = 'dd/MM/yyyy hh:mm a';\n  this.$attachhook = (0, _ACore._)('attachhook').addTo(this);\n  this.domSignal = new _DomSignal[\"default\"](this.$attachhook);\n  this.domSignal.on('request_auto_select', this._autoSelect.bind(this));\n  /***\r\n   *\r\n   * @type {HTMLInputElement | AElement}\r\n   */\n\n  this.$text = (0, _ACore.$)('.as-date-time-input-text', this).on('mousedown', this.eventHandler.mouseDownInput).on('mouseup', this.eventHandler.mouseUpInput).on('dblclick', this.eventHandler.dblclickInput).on('keydown', this.eventHandler.keydown).on('blur', this.eventHandler.inputBlur).on('contextmenu', function (event) {\n    event.preventDefault();\n  });\n  this.$pickerBtn = (0, _ACore.$)('.as-date-time-input-icon-btn', this).on('click', this.eventHandler.clickPickerBtn);\n  this.$clearBtn = (0, _ACore.$)('button.as-time-input-clear-btn', this).on('click', this.clear.bind(this));\n  this.notNull = false;\n  this.min = this._min;\n  this.max = this._max;\n}\n\nDateTimeInput.tag = 'DateTimeInput'.toLowerCase(); //calendar-clock\n\nDateTimeInput.render = function () {\n  return (0, _ACore._)({\n    extendEvent: ['change'],\n    \"class\": 'as-date-time-input',\n    child: [{\n      tag: 'input',\n      \"class\": 'as-date-time-input-text',\n      attr: {\n        ondrop: \"return false;\"\n      },\n      props: {\n        value: 'dd/MM/yyyy hh:mm a'\n      }\n    }, {\n      tag: 'button',\n      \"class\": 'as-time-input-clear-btn',\n      child: 'span.mdi.mdi-close-circle'\n    }, {\n      tag: 'button',\n      \"class\": 'as-date-time-input-icon-btn',\n      child: 'span.mdi.mdi-calendar-clock'\n    }]\n  });\n};\n\nDateTimeInput.prototype.tokenRegex = /([^.\\/:\\-,\\\\\\s]+)|([.\\/:\\-,\\\\]+)/i;\n/***\r\n *\r\n * @param start\r\n * @returns {null|{ident: string, length: number, sourceText: string, replace: function(s: string, selecting:boolean):void, text: string, idx: number, elt: (HTMLInputElement|absol.AElement)}}\r\n */\n\nDateTimeInput.prototype._tokenAt = function (start) {\n  var rgx = new RegExp(this.tokenRegex.source, 'g');\n  var rgxFormat = new RegExp(this.tokenRegex.source, 'g');\n  var s = this.$text.value;\n  var format = this._format;\n  var tokenMatched = rgx.exec(s);\n  var formatToken = rgxFormat.exec(format);\n  var tokenMatchedList = [];\n  var formatTokenList = [];\n  var text, ident;\n  var idx;\n\n  while (tokenMatched && formatToken) {\n    text = tokenMatched[1];\n    ident = formatToken[1];\n\n    if (text && (0, _utils.isDateTimeFormatToken)(ident)) {\n      tokenMatchedList.push(tokenMatched);\n      formatTokenList.push(formatToken);\n    }\n\n    tokenMatched = rgx.exec(s);\n    formatToken = rgxFormat.exec(format);\n  }\n\n  var bestI = -1;\n  var bestD = Infinity;\n  var d;\n\n  for (var i = 0; i < tokenMatchedList.length; ++i) {\n    tokenMatched = tokenMatchedList[i];\n    formatToken = formatTokenList[i];\n    text = tokenMatched[1];\n    idx = tokenMatched.index;\n    d = Math.min(Math.abs(start - idx), Math.abs(start - (idx + text.length)));\n\n    if (d < bestD) {\n      bestD = d;\n      bestI = i;\n    }\n  }\n\n  if (bestI >= 0) {\n    tokenMatched = tokenMatchedList[bestI];\n    formatToken = formatTokenList[bestI];\n    text = tokenMatched[1];\n    ident = formatToken[1];\n    idx = tokenMatched.index;\n    return {\n      idx: idx,\n      text: text,\n      length: text.length,\n      ident: ident,\n      elt: this.$text,\n      sourceText: s,\n      replace: function replace(newText, selecting) {\n        var left = this.sourceText.substr(0, this.idx);\n        var right = this.sourceText.substr(this.idx + this.length);\n        this.text = newText;\n        this.length = newText.length;\n        this.sourceText = left + this.text + right;\n        this.elt.value = this.sourceText;\n\n        if (selecting) {\n          this.elt.setSelectionRange(this.idx, this.idx + this.length);\n        }\n      }\n    };\n  }\n\n  return null;\n};\n\nDateTimeInput.prototype._autoSelect = function () {\n  var token = this._tokenAt(this.$text.selectionStart);\n\n  var tokenEnd = this._tokenAt(this.$text.selectionEnd);\n\n  if (token) {\n    if (tokenEnd.idx === token.idx) {\n      this.$text.setSelectionRange(token.idx, token.idx + token.length);\n      this._editingData.state = STATE_NEW;\n    } else {\n      this.$text.select();\n      this._editingData.state = STATE_NONE;\n    }\n  }\n};\n\nDateTimeInput.prototype._editNextToken = function () {\n  var token = this._tokenAt(this.$text.selectionStart);\n\n  if (!token) return false;\n  var cIdx = token.idx;\n  var l = this.$text.value.length;\n\n  for (var i = token.idx + token.length; i < l; ++i) {\n    token = this._tokenAt(i);\n\n    if (token && token.idx !== cIdx) {\n      this.$text.setSelectionRange(token.idx, token.idx + token.length);\n      this._editingData.state = STATE_NEW;\n      break;\n    }\n  }\n};\n\nDateTimeInput.prototype._editPrevToken = function () {\n  var token = this._tokenAt(this.$text.selectionStart);\n\n  if (!token) return false;\n  var cIdx = token.idx;\n  var l = this.$text.value.length;\n\n  for (var i = token.idx - 1; i >= 0; --i) {\n    token = this._tokenAt(i);\n\n    if (token && token.idx !== cIdx) {\n      this.$text.setSelectionRange(token.idx, token.idx + token.length);\n      this._editingData.state = STATE_NEW;\n      break;\n    }\n  }\n};\n\nDateTimeInput.prototype.tokenMap = {\n  d: 'd',\n  dd: 'd',\n  M: 'M',\n  MM: 'M',\n  y: 'y',\n  yyyy: 'y',\n  hh: 'h',\n  h: 'h',\n  mm: 'm',\n  m: 'm',\n  a: 'a',\n  HH: 'H',\n  H: 'H'\n};\n/***\r\n *\r\n * @param {string} s\r\n * @returns {{}}\r\n * @private\r\n */\n\nDateTimeInput.prototype._makeTokenDict = function (s) {\n  var rgx = new RegExp(this.tokenRegex.source, 'g');\n  var rgxFormat = new RegExp(this.tokenRegex.source, 'g');\n  var format = this._format;\n  var tokenMap = this.tokenMap;\n  var tokenMatched = rgx.exec(s);\n  var formatToken = rgxFormat.exec(format);\n  var text, ident;\n  var idx;\n  var res = {};\n\n  while (tokenMatched && formatToken) {\n    text = tokenMatched[1];\n    ident = formatToken[1];\n\n    if (text) {\n      if (tokenMap[ident]) {\n        idx = tokenMatched.index;\n        res[tokenMap[ident]] = {\n          text: text,\n          idx: idx,\n          length: text.length,\n          sourceText: s,\n          value: ident === 'a' ? text : parseInt(text)\n        };\n      }\n    }\n\n    tokenMatched = rgx.exec(s);\n    formatToken = rgxFormat.exec(format);\n  }\n\n  return res;\n};\n/***\r\n *\r\n * @param {Date} date\r\n * @private\r\n */\n\n\nDateTimeInput.prototype._makeValueDict = function (date) {\n  var res = {};\n  res.d = {\n    value: date.getDate()\n  };\n  res.y = {\n    value: date.getFullYear()\n  };\n  res.M = {\n    value: date.getMonth() + 1\n  };\n  res.m = {\n    value: date.getMinutes()\n  };\n  res.h = {\n    value: date.getHours()\n  };\n  res.H = {\n    value: date.getHours()\n  };\n\n  if (res.h.value < 12) {\n    if (res.h.value === 0) res.h.value = 12;\n    res.a = {\n      value: \"AM\"\n    };\n  } else {\n    if (res.h.value > 12) res.h.value -= 12;\n    res.a = {\n      value: \"PM\"\n    };\n  }\n\n  return res;\n};\n\nDateTimeInput.prototype._applyTokenDict = function (format, dict, debug) {\n  var rgx = new RegExp(this.tokenRegex.source, 'g');\n  var tokenMap = this.tokenMap;\n  return format.replace(rgx, function (full, g1, g2, sourceText) {\n    if (g1 && tokenMap[g1]) {\n      var ident = tokenMap[g1];\n\n      if (ident === 'a') {\n        return dict.a && dict.a.value || 'a';\n      } else {\n        if (dict[ident] && !isNaN(dict[ident].value)) {\n          var numberText = dict[ident].value + '';\n\n          while (numberText.length < g1.length) {\n            numberText = '0' + numberText;\n          }\n\n          return numberText;\n        } else {\n          return full;\n        }\n      }\n    } else return full;\n  });\n};\n\nDateTimeInput.prototype._loadValueFromInput = function () {\n  var tkDict = this._makeTokenDict(this.$text.value);\n\n  var H = NaN;\n\n  if (tkDict.H && (0, _utils.isRealNumber)(tkDict.H.value)) {\n    H = tkDict.H.value;\n  } else if (tkDict.a.value === 'AM') {\n    H = tkDict.h.value % 12;\n  } else if (tkDict.a.value === 'PM') {\n    H = tkDict.h.value + (tkDict.h.value === 12 ? 0 : 12);\n  }\n\n  var date = new Date(tkDict.y.value, tkDict.M.value - 1, tkDict.d.value, H, tkDict.m.value);\n\n  if (isNaN(date.getTime())) {\n    this._value = null;\n  } else {\n    this._value = date;\n  }\n};\n\nDateTimeInput.prototype.clear = function () {\n  var lev = this._lastEmitValue;\n\n  if (this.notNull) {\n    this.value = (0, _datetime.formatDateTime)(new Date(Math.max(this.min.getTime(), Math.min(this.max.getTime(), new Date().getTime()))), this.format);\n  } else {\n    this.value = null;\n  }\n\n  this._lastEmitValue = lev;\n\n  this._notifyIfChange();\n};\n\nDateTimeInput.prototype._notifyIfChange = function (event) {\n  if (!this._lastEmitValue && !this._value) return;\n  if (this._lastEmitValue && this._value && this._lastEmitValue.getTime() === this._value.getTime()) return;\n  this.emit('change', {\n    type: 'change',\n    target: this,\n    value: this._value,\n    originEvent: event\n  }, this);\n  this._lastEmitValue = this._value;\n};\n\nDateTimeInput.prototype._correctingInput = function () {\n  var tkDict = this._makeTokenDict(this.$text.value);\n\n  var equalMin = true;\n  var equalMax = true;\n\n  if (!isNaN(tkDict.y.value)) {\n    tkDict.y.value = Math.max(this._min.getFullYear(), Math.min(this._max.getFullYear(), tkDict.y.value));\n    equalMin = tkDict.y.value === this._min.getFullYear();\n    equalMax = tkDict.y.value === this._max.getFullYear();\n  } else {\n    equalMin = false;\n    equalMax = false;\n  }\n\n  if (!isNaN(tkDict.M.value)) {\n    tkDict.M.value = Math.max(1, Math.min(12, tkDict.M.value));\n\n    if (equalMin) {\n      tkDict.M.value = Math.max(this._min.getMonth() + 1, tkDict.M.value);\n      equalMin = tkDict.M.value === this._min.getMonth() + 1;\n    }\n\n    if (equalMax) {\n      tkDict.M.value = Math.min(this._max.getMonth() + 1, tkDict.M.value);\n      equalMax = this._max.getMonth() + 1;\n    }\n  } else {\n    equalMin = false;\n    equalMax = false;\n  }\n\n  if (!isNaN(tkDict.d.value)) {\n    tkDict.d.value = Math.max(1, Math.min(31, tkDict.d.value));\n\n    if (!isNaN(tkDict.M.value)) {\n      tkDict.d.value = Math.min(tkDict.d.value, (0, _datetime.daysInMonth)(isNaN(tkDict.y.value) ? 2020 : tkDict.y.value, tkDict.M.value - 1));\n    }\n\n    if (equalMin) {\n      tkDict.d.value = Math.max(this._min.getDate(), tkDict.d.value);\n      equalMin = tkDict.d.value === this._min.getDate();\n    }\n\n    if (equalMax) {\n      tkDict.d.value = Math.min(this._max.getDate(), tkDict.d.value);\n      equalMax = tkDict.d.value === this._max.getDate();\n    }\n  } else {\n    equalMin = false;\n    equalMax = false;\n  } //todo: min max\n\n\n  if (tkDict.a && (tkDict.a.value === 'AM' || tkDict.a.value === 'PM')) {\n    if (equalMin) {}\n  } else {\n    equalMin = false;\n    equalMax = false;\n  }\n\n  this.$text.value = this._applyTokenDict(this._format, tkDict);\n};\n\nDateTimeInput.prototype._correctingCurrentToken = function () {\n  var token = this._tokenAt(this.$text.selectionStart);\n\n  if (!token) return;\n  var value;\n\n  if (token.ident === 'a') {\n    if (token.text !== 'a' && token.text !== 'AM' && token.text !== 'PM') {\n      token.replace('a', false);\n    }\n  } else {\n    value = parseInt(token.text);\n    var rqMin = {\n      d: 1,\n      dd: 1,\n      M: 1,\n      MM: 1,\n      y: 1890,\n      yyyy: 1890,\n      h: 1,\n      hh: 1,\n      HH: 0,\n      H: 0,\n      m: 0,\n      mm: 0\n    }[token.ident];\n    var rqMax = {\n      d: 31,\n      dd: 31,\n      M: 12,\n      MM: 12,\n      y: 2089,\n      yyyy: 2089,\n      h: 12,\n      hh: 12,\n      HH: 23,\n      H: 23,\n      m: 59,\n      mm: 59\n    }[token.ident];\n\n    if (rqMin !== undefined) {\n      if (!isNaN(value)) {\n        if (value < rqMin || value > rqMin) {\n          value = Math.max(rqMin, Math.min(rqMax, value));\n          token.replace((0, _utils.zeroPadding)(value, token.ident.length), false);\n          this._editingData.d = value;\n        }\n      } else if (token.text !== token.ident) {\n        token.replace(token.ident, false);\n      }\n    }\n  }\n};\n\nDateTimeInput.prototype._dateFrom = function (value) {\n  var typeV = _typeof(value);\n\n  if (typeV === 'string' || typeV === 'number') {\n    value = new Date(value);\n  }\n\n  if (!value || !value.getTime) value = null;\n\n  if (value) {\n    value = new Date(value.getTime());\n    value.setSeconds(0, 0);\n  }\n\n  return value || null;\n};\n\nDateTimeInput.property = {};\nDateTimeInput.property.disabled = {\n  set: function set(value) {\n    this.$text.disabled = !!value;\n\n    if (value) {\n      this.addClass('as-disabled');\n    } else {\n      this.removeClass('as-disabled');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-disabled');\n  }\n};\nDateTimeInput.property.notNull = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-must-not-null');\n      if (!this.value) this.value = new Date();\n    } else {\n      this.removeClass('as-must-not-null');\n    }\n\n    this.value = this.value; //update\n  },\n  get: function get() {\n    return this.hasClass('as-must-not-null');\n  }\n};\nDateTimeInput.property.format = {\n  set: function set(value) {\n    value = value || 'dd/MM/yyyy hh:mm a';\n    var dict;\n\n    if (this._value) {\n      dict = this._makeValueDict(this._value);\n    } else {\n      dict = this._makeTokenDict(this.$text.value);\n    }\n\n    this._format = value;\n    this.$text.value = this._applyTokenDict(value, dict);\n  },\n  get: function get() {\n    return this._format;\n  }\n};\nDateTimeInput.property.value = {\n  set: function set(value) {\n    this._value = this._dateFrom(value);\n    var dict;\n\n    if (this._value) {\n      dict = this._makeValueDict(this._value);\n    } else {\n      dict = this._makeTokenDict(this.$text.value);\n    }\n\n    if (value) {\n      this.$text.value = this._applyTokenDict(this._format, dict, true);\n    } else {\n      this.$text.value = this.format;\n    }\n\n    this._lastEmitValue = this._value;\n  },\n  get: function get() {\n    return this._value;\n  }\n};\nDateTimeInput.property.min = {\n  set: function set(value) {\n    this._min = this._dateFrom(value) || new Date(1890, 0, 1);\n  },\n  get: function get() {\n    return this._min;\n  }\n};\nDateTimeInput.property.max = {\n  set: function set(value) {\n    this._max = this._dateFrom(value) || new Date(new Date(2090, 0, 1).getTime() - 1);\n  },\n  get: function get() {\n    return this._max;\n  }\n};\nDateTimeInput.property.readOnly = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-read-only');\n    } else {\n      this.removeClass('as-read-only');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-read-only');\n  }\n};\nDateTimeInput.property.text = {\n  get: function get() {\n    return this.$text.value;\n  }\n};\nDateTimeInput.eventHandler = {};\n\nDateTimeInput.eventHandler.mouseUpInput = function () {\n  if (!this.readOnly) {\n    this.domSignal.emit('request_auto_select');\n  }\n};\n\nDateTimeInput.eventHandler.mouseDownInput = function () {\n  if (!this.readOnly && document.activeElement === this.$text) {\n    this._correctingCurrentToken();\n  }\n};\n\nDateTimeInput.eventHandler.dblclickInput = function (event) {\n  event.preventDefault();\n};\n/***\r\n *\r\n * @param {KeyboardEvent} event\r\n */\n\n\nDateTimeInput.eventHandler.keydown = function (event) {\n  var kbId = (0, _keyboard.keyboardEventToKeyBindingIdent)(event);\n\n  if (this.readOnly) {\n    if (!kbId.match(/^arrow/) && !kbId.match(/^ctrl-[ca]/)) {\n      event.preventDefault();\n    }\n\n    return;\n  }\n\n  var token = this._tokenAt(this.$text.selectionStart);\n\n  var endToken = this._tokenAt(this.$text.selectionEnd);\n\n  if (!token) {\n    if (event.key === 'Enter') {\n      this._correctingInput();\n\n      this._loadValueFromInput();\n\n      this._notifyIfChange(event);\n    }\n\n    return;\n  }\n\n  var newTokenText;\n  var value;\n\n  if (event.key.startsWith('Arrow') || [' ', ':', '/', '-'].indexOf(event.key) >= 0) {\n    event.preventDefault();\n\n    switch (event.key) {\n      case 'ArrowLeft':\n        this._editPrevToken();\n\n        break;\n\n      case 'ArrowRight':\n      case ' ':\n      case ':':\n      case '/':\n      case '-':\n        this._editNextToken();\n\n        break;\n\n      case 'ArrowUp':\n      case 'ArrowDown':\n        switch (token.ident) {\n          case 'dd':\n          case 'd':\n            value = parseInt(token.text);\n\n            if (isNaN(value)) {\n              this._editingData.d = event.key === 'ArrowUp' ? 1 : 31;\n            } else {\n              this._editingData.d = 1 + (value + (event.key === 'ArrowUp' ? 0 : 29)) % 31;\n            }\n\n            newTokenText = '' + this._editingData.d;\n\n            while (newTokenText.length < token.ident.length) {\n              newTokenText = '0' + newTokenText;\n            }\n\n            token.replace(newTokenText, true);\n            break;\n\n          case 'MM':\n          case 'M':\n            value = parseInt(token.text) - 1;\n\n            if (isNaN(value)) {\n              this._editingData.M = event.key === 'ArrowUp' ? 0 : 11;\n            } else {\n              this._editingData.M = (value + (event.key === 'ArrowUp' ? 1 : 11)) % 12;\n            }\n\n            newTokenText = '' + (this._editingData.M + 1);\n\n            while (newTokenText.length < token.ident.length) {\n              newTokenText = '0' + newTokenText;\n            }\n\n            token.replace(newTokenText, true);\n            break;\n\n          case 'yyyy':\n            value = parseInt(token.text);\n\n            if (isNaN(value)) {\n              this._editingData.y = new Date().getFullYear();\n            } else {\n              this._editingData.y = Math.max(1890, Math.min(2089, value + (event.key === 'ArrowUp' ? 1 : -1)));\n            }\n\n            newTokenText = this._editingData.y + '';\n\n            while (newTokenText.length < token.ident.length) {\n              newTokenText = '0' + newTokenText;\n            }\n\n            token.replace(newTokenText, true);\n            break;\n\n          case \"hh\":\n          case 'h':\n            value = parseInt(token.text);\n\n            if (isNaN(value)) {\n              this._editingData.h = event.key === 'ArrowUp' ? 1 : 12;\n            } else {\n              this._editingData.h = 1 + (value + (event.key === 'ArrowUp' ? 0 : 10)) % 12;\n            }\n\n            newTokenText = this._editingData.h + '';\n\n            while (newTokenText.length < token.ident.length) {\n              newTokenText = '0' + newTokenText;\n            }\n\n            token.replace(newTokenText, true);\n            break;\n\n          case \"HH\":\n          case 'H':\n            value = parseInt(token.text);\n\n            if (isNaN(value)) {\n              this._editingData.H = event.key === 'ArrowUp' ? 1 : 12;\n            } else {\n              this._editingData.H = (value + (event.key === 'ArrowUp' ? 1 : 23)) % 24;\n            }\n\n            newTokenText = this._editingData.H + '';\n\n            while (newTokenText.length < token.ident.length) {\n              newTokenText = '0' + newTokenText;\n            }\n\n            token.replace(newTokenText, true);\n            break;\n\n          case \"mm\":\n          case 'm':\n            value = parseInt(token.text);\n\n            if (isNaN(value)) {\n              this._editingData.m = event.key === 'ArrowUp' ? 0 : 59;\n            } else {\n              this._editingData.m = (value + (event.key === 'ArrowUp' ? 1 : 59)) % 60;\n            }\n\n            newTokenText = this._editingData.m + '';\n\n            while (newTokenText.length < token.ident.length) {\n              newTokenText = '0' + newTokenText;\n            }\n\n            token.replace(newTokenText, true);\n            break;\n\n          case 'a':\n            value = token.text;\n            this._editingData.a = value === 'PM' ? \"AM\" : \"PM\";\n            newTokenText = this._editingData.a;\n            token.replace(newTokenText, true);\n            break;\n        }\n\n        break;\n    }\n  } else if (event.key === \"Delete\" || event.key === 'Backspace') {\n    event.preventDefault();\n\n    if (endToken.idx !== token.idx) {\n      if (this.notNull) {\n        this.$text.value = (0, _datetime.formatDateTime)(new Date(Math.max(this.min.getTime(), Math.min(this.max.getTime(), new Date().getTime()))), this.format);\n      } else {\n        this.$text.value = this._format;\n      }\n\n      this.$text.select();\n    } else {\n      if (this.notNull) {\n        switch (token.ident) {\n          case 'HH':\n          case 'mm':\n          case 'H':\n          case 'm':\n            token.replace((0, _utils.zeroPadding)(0, token.ident.length), true);\n            break;\n\n          case 'h':\n          case 'hh':\n            token.replace('12', true);\n            break;\n\n          case 'M':\n          case 'MM':\n          case 'dd':\n          case 'd':\n            token.replace((0, _utils.zeroPadding)(1, token.ident.length), true);\n            break;\n\n          case 'y':\n          case 'yyyy':\n            token.replace((0, _utils.zeroPadding)(Math.max(this.min.getFullYear(), Math.min(this.max.getFullYear(), new Date().getFullYear())), token.ident.length), true);\n            break;\n\n          case 'a':\n            token.replace('AM', true);\n            break;\n        }\n      } else {\n        token.replace(token.ident, true);\n      }\n\n      if (event.key === \"Delete\") this._editNextToken();else this._editPrevToken();\n    }\n  } else if (event.key === \"Enter\" || event.key === 'Tab') {\n    this._correctingInput();\n\n    this._loadValueFromInput();\n\n    this._notifyIfChange(event);\n  } else if (event.ctrlKey) {\n    switch (event.key) {\n      case 'a':\n      case 'A':\n        break;\n\n      case 'c':\n      case 'C':\n        break;\n\n      case 'x':\n      case 'X':\n        this.domSignal.once('clear_value', function () {\n          this.$text.value = this._format;\n          this.$text.select();\n        }.bind(this));\n        this.domSignal.emit('clear_value');\n        break;\n\n      default:\n        event.preventDefault();\n    }\n  } else if (event.key.match(/^[0-9]$/g)) {\n    event.preventDefault();\n    var dVal = parseInt(event.key);\n\n    if (this._editingData.state === STATE_NEW) {\n      switch (token.ident) {\n        case 'dd':\n        case 'd':\n          token.replace((0, _utils.zeroPadding)(dVal, token.ident.length), true);\n          this._editingData.state = STATE_EDITED;\n          this._editingData.d = dVal;\n\n          if (dVal > 3) {\n            this._editNextToken();\n          }\n\n          break;\n\n        case 'MM':\n        case 'M':\n          token.replace((0, _utils.zeroPadding)(dVal, token.ident.length), true);\n          this._editingData.state = STATE_EDITED;\n          this._editingData.M = dVal;\n\n          if (dVal > 1) {\n            this._editNextToken();\n          }\n\n          break;\n\n        case 'yyyy':\n        case 'y':\n          token.replace((0, _utils.zeroPadding)(dVal, token.ident.length), true);\n          this._editingData.state = STATE_EDITED;\n          this._editingData.state_num = 1;\n          break;\n\n        case 'm':\n        case 'mm':\n          token.replace((0, _utils.zeroPadding)(dVal, token.ident.length), true);\n          this._editingData.state = STATE_EDITED;\n\n          if (dVal > 5) {\n            this._editNextToken();\n          }\n\n          break;\n\n        case 'h':\n        case 'hh':\n          token.replace((0, _utils.zeroPadding)(dVal, token.ident.length), true);\n          this._editingData.state = STATE_EDITED;\n\n          if (dVal > 1) {\n            this._editNextToken();\n          }\n\n          break;\n\n        case 'HH':\n        case 'H':\n          token.replace((0, _utils.zeroPadding)(dVal, token.ident.length), true);\n          this._editingData.state = STATE_EDITED;\n\n          if (dVal > 2) {\n            this._editNextToken();\n          }\n\n          break;\n      }\n    } else {\n      switch (token.ident) {\n        case 'dd':\n        case 'd':\n          dVal = (parseInt(token.text.split('').pop()) || 0) * 10 + dVal;\n          dVal = Math.max(1, Math.min(31, dVal));\n          this._editingData.d = dVal;\n          token.replace((0, _utils.zeroPadding)(dVal, token.ident.length), true);\n\n          this._editNextToken();\n\n          break;\n\n        case 'MM':\n        case 'M':\n          dVal = (parseInt(token.text.split('').pop()) || 0) * 10 + dVal;\n          dVal = Math.max(1, Math.min(12, dVal));\n          this._editingData.M = dVal - 1;\n          token.replace((0, _utils.zeroPadding)(dVal, token.ident.length), true);\n\n          this._editNextToken();\n\n          break;\n\n        case 'yyyy':\n        case 'y':\n          dVal = (parseInt(token.text.replace(/^./, '')) || 0) * 10 + dVal;\n          this._editingData.state_num++;\n\n          if (this._editingData.state_num >= 4) {\n            // dVal = Math.max(1890, Math.min(2089, dVal));\n            token.replace((0, _utils.zeroPadding)(dVal, token.ident.length), true);\n\n            this._editNextToken();\n          } else {\n            token.replace((0, _utils.zeroPadding)(dVal, token.ident.length), true);\n          }\n\n          break;\n\n        case 'm':\n        case 'mm':\n          dVal = (parseInt(token.text.split('').pop()) || 0) * 10 + dVal;\n          dVal = Math.max(0, Math.min(59, dVal));\n          this._editingData.m = dVal;\n          token.replace((0, _utils.zeroPadding)(dVal, token.ident.length), true);\n\n          this._editNextToken();\n\n          break;\n\n        case 'h':\n        case 'hh':\n          dVal = (parseInt(token.text.split('').pop()) || 0) * 10 + dVal;\n          dVal = Math.max(1, Math.min(12, dVal));\n          this._editingData.h = dVal;\n          token.replace((0, _utils.zeroPadding)(dVal, token.ident.length), true);\n\n          this._editNextToken();\n\n          break;\n\n        case 'H':\n        case 'HH':\n          dVal = (parseInt(token.text.split('').pop()) || 0) * 10 + dVal;\n          dVal = Math.max(0, Math.min(23, dVal));\n          this._editingData.h = dVal;\n          token.replace((0, _utils.zeroPadding)(dVal, token.ident.length), true);\n\n          this._editNextToken();\n\n          break;\n      }\n    }\n  } else if (event.key.match(/^[aApPSCsc]$/) && token.ident === 'a') {\n    event.preventDefault();\n\n    if (event.key.match(/^[aAsS]$/)) {\n      token.replace('AM', true);\n      this._editingData.a = \"AM\";\n    } else {\n      token.replace('PM', true);\n      this._editingData.a = \"PM\";\n    }\n\n    this._editNextToken();\n  } else {\n    event.preventDefault();\n  }\n};\n\nDateTimeInput.eventHandler.inputBlur = function () {\n  this._correctingInput();\n\n  this._loadValueFromInput();\n\n  this._notifyIfChange();\n};\n\nDateTimeInput.eventHandler.clickPickerBtn = function () {\n  this._attachPicker();\n};\n\nDateTimeInput.eventHandler.clickOut = function (event) {\n  if ((0, _EventEmitter.hitElement)(this.share.$follower, event)) return;\n\n  this._releasePicker();\n};\n\nDateTimeInput.eventHandler.clickCancelBtn = function () {\n  this._releasePicker();\n};\n\nDateTimeInput.eventHandler.calendarPick = function (event) {\n  var value = event.value;\n\n  var tkDict = this._makeTokenDict(this.share.pickedValeText);\n\n  if (tkDict.y) {\n    tkDict.y.value = value.getFullYear();\n  }\n\n  if (tkDict.M) {\n    tkDict.M.value = value.getMonth() + 1;\n  }\n\n  if (tkDict.d) {\n    tkDict.d.value = value.getDate();\n  }\n\n  this.share.pickedValeText = this._applyTokenDict(this._format, tkDict);\n};\n\nDateTimeInput.eventHandler.clickOKBtn = function (event) {\n  this.$text.value = this.share.pickedValeText;\n\n  this._correctingInput();\n\n  this._loadValueFromInput();\n\n  this._notifyIfChange(event);\n\n  this._releasePicker();\n};\n\nDateTimeInput.eventHandler.timePick = function (event) {\n  var hour = event.hour;\n  var minute = event.minute;\n\n  var tkDict = this._makeTokenDict(this.share.pickedValeText);\n\n  if (tkDict.h) {\n    tkDict.h.value = 1 + (hour + 11) % 12;\n\n    if (tkDict.a) {\n      tkDict.a.value = hour >= 12 ? \"PM\" : 'AM';\n    }\n  }\n\n  if (tkDict.H) {\n    tkDict.H.value = hour;\n  }\n\n  if (tkDict.m) {\n    tkDict.m.value = minute;\n  }\n\n  this.share.pickedValeText = this._applyTokenDict(this._format, tkDict);\n};\n\nDateTimeInput.prototype.share = {\n  $follower: null,\n  $calendar: null,\n  $timePicker: null,\n  $holdingInput: null\n};\n\nDateTimeInput.prototype._preparePicker = function () {\n  if (!this.share.$follower) {\n    this.share.$timePicker = (0, _ACore._)({\n      tag: _ChromeTimePicker[\"default\"].tag,\n      \"class\": 'as-date-time-input-time-picker'\n    });\n    this.share.$calendar = (0, _ACore._)({\n      tag: _ChromeCalendar[\"default\"].tag,\n      \"class\": 'as-date-time-input-date-picker'\n    });\n    this.share.$cancelBtn = (0, _ACore._)({\n      tag: 'a',\n      \"class\": 'as-select-list-box-cancel-btn',\n      attr: {\n        \"data-ml-key\": 'txt_cancel'\n      }\n    });\n    this.share.$okBtn = (0, _ACore._)({\n      tag: 'a',\n      \"class\": 'as-select-list-box-ok-btn',\n      attr: {\n        \"data-ml-key\": 'txt_ok'\n      }\n    });\n    this.share.$follower = (0, _ACore._)({\n      tag: _Follower[\"default\"].tag,\n      \"class\": ['as-date-time-input-follower', 'as-dropdown-box-common-style'],\n      child: [{\n        \"class\": 'as-date-time-input-picker-ctn',\n        child: [this.share.$calendar, this.share.$timePicker]\n      }, {\n        \"class\": 'as-dropdown-box-footer',\n        child: [{\n          \"class\": 'as-dropdown-box-footer-right',\n          child: [this.share.$okBtn, this.share.$cancelBtn]\n        }]\n      }]\n    });\n  }\n};\n\nDateTimeInput.prototype._attachPicker = function () {\n  this._preparePicker();\n\n  if (this.share.$holdingInput) this.share.$holdingInput._releasePicker();\n  this.share.pickedValeText = this.$text.value;\n  this.share.$holdingInput = this;\n  this.share.$follower.addStyle('visibility', 'hidden');\n  this.share.$follower.addTo(document.body);\n  this.share.$follower.followTarget = this;\n  this.$pickerBtn.off('click', this.eventHandler.clickPickerBtn);\n  this.share.$calendar.on('pick', this.eventHandler.calendarPick);\n  this.share.$timePicker.on('change', this.eventHandler.timePick);\n  this.share.$okBtn.on('click', this.eventHandler.clickOKBtn);\n  this.share.$cancelBtn.on('click', this.eventHandler.clickCancelBtn);\n\n  var tkDict = this._makeTokenDict(this.$text.value);\n\n  if (tkDict.h && !isNaN(tkDict.h.value)) {\n    if (tkDict.a && tkDict.a.value === 'PM') {\n      this.share.$timePicker.hour = 12 + tkDict.h.value % 12;\n    } else {\n      this.share.$timePicker.hour = tkDict.h.value % 12;\n    }\n  } else if (tkDict.H && (0, _utils.isRealNumber)(tkDict.H.value)) {\n    this.share.$timePicker.hour = tkDict.H.value;\n  } else {\n    this.share.$timePicker.hour = null;\n  }\n\n  this.share.$timePicker.s24 = !!tkDict.H;\n\n  if (tkDict.m && !isNaN(tkDict.m.value)) {\n    this.share.$timePicker.minute = tkDict.m.value;\n  } else {\n    this.share.$timePicker.minute = null;\n  }\n\n  this.share.$timePicker.scrollIntoSelected();\n  var date = null;\n\n  if (tkDict.d && !isNaN(tkDict.d.value) && tkDict.M && !isNaN(tkDict.M.value) && tkDict.y && !isNaN(tkDict.y.value)) {\n    date = new Date(tkDict.y.value, tkDict.M.value - 1, tkDict.d.value);\n    if (isNaN(date.getTime())) date = null;\n  }\n\n  if (date) {\n    this.share.$calendar.selectedDates = [date];\n    this.share.$calendar.viewDate = date;\n  } else {\n    this.share.$calendar.selectedDates = [];\n    var viewDate = null;\n\n    if (tkDict.y && !isNaN(tkDict.y.value)) {\n      if (tkDict.M && !isNaN(tkDict.M.value)) {\n        if (tkDict.d && !isNaN(tkDict.d.value)) {\n          viewDate = new Date(tkDict.y.value, tkDict.M.value - 1, tkDict.d.value);\n        } else {\n          viewDate = new Date(tkDict.y.value, tkDict.M.value - 1, 1);\n        }\n      } else {\n        viewDate = new Date(tkDict.y.value, 0, 1);\n      }\n    } else {\n      viewDate = new Date();\n    }\n\n    if (viewDate && !isNaN(viewDate.getTime())) {\n      this.share.$calendar.viewDate = viewDate;\n    } else {\n      this.share.$calendar.viewDate = new Date();\n    }\n  }\n\n  setTimeout(function () {\n    this.share.$follower.removeStyle('visibility');\n    document.addEventListener('click', this.eventHandler.clickOut);\n  }.bind(this), 5);\n};\n\nDateTimeInput.prototype._releasePicker = function () {\n  if (this.share.$holdingInput !== this) return;\n  this.share.$follower.remove();\n  this.share.$holdingInput = null;\n  this.share.$calendar.off('pick', this.eventHandler.calendarPick);\n  this.share.$timePicker.off('change', this.eventHandler.timePick);\n  this.share.$okBtn.off('click', this.eventHandler.clickOKBtn);\n  this.share.$cancelBtn.off('click', this.eventHandler.clickCancelBtn);\n  document.removeEventListener('click', this.eventHandler.clickOut);\n  setTimeout(function () {\n    this.$pickerBtn.on('click', this.eventHandler.clickPickerBtn);\n  }.bind(this));\n};\n\n_ACore[\"default\"].install(DateTimeInput);\n\nvar _default = DateTimeInput;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/DateTimeInput.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/DebugTask.js":
/*!**************************************************!*\
  !*** ./node_modules/absol-acomp/js/DebugTask.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\nvar originSetTimeout = setTimeout;\nvar originClearTimeout = clearTimeout;\nvar originSetInterval = setInterval;\nvar originClearInterval = clearInterval;\nvar pendingTimeout = 0;\nvar pendingInterval = 0;\nvar timeoutDict = {};\nvar intervalDict = {};\n\nfunction DebugTask() {\n  var res = _({\n    \"class\": 'absol-debug-task',\n    child: [{\n      child: [{\n        tag: 'span',\n        \"class\": 'absol-debug-task-name',\n        child: {\n          text: 'settimeout '\n        }\n      }, {\n        tag: 'span',\n        \"class\": ['absol-debug-task-value', 'settimeout'],\n        child: {\n          text: '0'\n        }\n      }]\n    }, {\n      child: [{\n        tag: 'span',\n        \"class\": 'absol-debug-task-name',\n        child: {\n          text: 'setintervel '\n        }\n      }, {\n        tag: 'span',\n        \"class\": ['absol-debug-task-value', 'setinterval'],\n        child: {\n          text: '0'\n        }\n      }]\n    }, {\n      child: [{\n        tag: 'span',\n        \"class\": 'absol-debug-task-name',\n        child: {\n          text: 'Work '\n        }\n      }, {\n        tag: 'span',\n        \"class\": ['absol-debug-task-value', 'work'],\n        child: {\n          text: '0%'\n        }\n      }]\n    }]\n  });\n\n  res._timeout = 0;\n  res._interval = 0;\n  res._work = 0;\n  res.$setTimeOutValue = $('.absol-debug-task-value.settimeout', res);\n  res.$setIntervalValue = $('.absol-debug-task-value.setinterval', res);\n  res.$setWorkValue = $('.absol-debug-task-value.work', res);\n  return res;\n}\n\nDebugTask.property = {};\nDebugTask.property.timeout = {\n  set: function set(value) {\n    this._timeout = value;\n    this.$setTimeOutValue.innerHTML = value + '';\n  },\n  get: function get() {\n    return this._timeout;\n  }\n};\nDebugTask.property.interval = {\n  set: function set(value) {\n    this._interval = value;\n    this.$setIntervalValue.innerHTML = value + '';\n  },\n  get: function get() {\n    return this._interval;\n  }\n};\nDebugTask.property.work = {\n  set: function set(value) {\n    this._work = value;\n    value = (value * 100).toFixed(1);\n    this.$setWorkValue.innerHTML = value + '%';\n  },\n  get: function get() {\n    return this._work;\n  }\n};\n\nDebugTask.start = function () {\n  if (DebugTask.started) return;\n\n  if (!DebugTask.$view) {\n    DebugTask.$view = _('debugtask');\n  }\n\n  var times = [];\n  originSetInterval(function () {\n    var now = performance.now();\n\n    while (times.length > 0 && times[0].end < now - 2000) {\n      times.shift();\n    }\n\n    if (times.length == 0) DebugTask.$view.work = 0;\n  }, 3000);\n\n  __webpack_require__.g.setTimeout = function () {\n    var args = Array.prototype.map.call(arguments, function (x) {\n      return x;\n    });\n    var originCallback = arguments[0];\n    if (typeof originCallback == 'undefined') return;\n\n    if (typeof originCallback == 'string') {\n      originCallback = new Function(originCallback);\n    }\n\n    args[0] = function () {\n      var ret;\n\n      try {\n        var now = performance.now();\n\n        while (times.length > 0 && times[0].end < now - 1000) {\n          times.shift();\n        }\n\n        ret = originCallback.apply(null, arguments);\n        var now1 = performance.now();\n\n        var _long = now1 - now;\n\n        times.push({\n          \"long\": _long,\n          start: now,\n          end: now1\n        });\n        var sTime = 0;\n\n        for (var i = 0; i < times.length; ++i) {\n          sTime += times[i][\"long\"];\n        }\n\n        DebugTask.$view.work = sTime / Math.max(now1 - times[0].start, 1000);\n      } catch (e) {\n        console.error(e);\n      }\n\n      if (timeoutDict[timeoutId]) {\n        pendingTimeout--;\n        delete timeoutDict[timeoutId];\n        DebugTask.$view.timeout = pendingTimeout;\n      }\n\n      return ret;\n    };\n\n    var timeoutId = originSetTimeout.apply(__webpack_require__.g, args);\n    pendingTimeout++;\n    timeoutDict[timeoutId] = true;\n    DebugTask.$view.timeout = pendingTimeout;\n    return timeoutId;\n  };\n\n  __webpack_require__.g.clearTimeout = function (timeoutId) {\n    if (timeoutDict[timeoutId]) {\n      pendingTimeout--;\n      delete timeoutDict[timeoutId];\n      DebugTask.$view.timeout = pendingTimeout;\n    }\n\n    return originClearTimeout.apply(__webpack_require__.g, arguments);\n  };\n\n  __webpack_require__.g.setInterval = function () {\n    var args = Array.prototype.map.call(arguments, function (x) {\n      return x;\n    });\n    var originCallback = arguments[0];\n    if (typeof originCallback == 'undefined') return;\n\n    if (typeof originCallback == 'string') {\n      originCallback = new Function(originCallback);\n    }\n\n    args[0] = function () {\n      var ret;\n\n      try {\n        var now = performance.now();\n\n        while (times.length > 0 && times[0].end < now - 1000) {\n          times.shift();\n        }\n\n        ret = originCallback.apply(null, arguments);\n        var now1 = performance.now();\n\n        var _long2 = now1 - now;\n\n        times.push({\n          \"long\": _long2,\n          start: now,\n          end: now1\n        });\n        var sTime = 0;\n\n        for (var i = 0; i < times.length; ++i) {\n          sTime += times[i][\"long\"];\n        }\n\n        DebugTask.$view.work = sTime / Math.max(now1 - times[0].start, 1000);\n      } catch (e) {\n        console.error(e);\n      }\n\n      return ret;\n    };\n\n    var intervalId = originSetInterval.apply(__webpack_require__.g, args);\n    pendingInterval++;\n    intervalDict[intervalId] = true;\n    DebugTask.$view.interval = pendingInterval;\n    return intervalId;\n  };\n\n  __webpack_require__.g.clearInterval = function (intervalId) {\n    var args = Array.prototype.map.call(arguments, function (x) {\n      return x;\n    });\n\n    if (intervalDict[intervalId]) {\n      pendingInterval--;\n      delete intervalDict[intervalId];\n      DebugTask.$view.interval = pendingInterval;\n    }\n\n    return originClearInterval.apply(__webpack_require__.g, args);\n  };\n\n  _Dom[\"default\"].documentReady.then(function () {\n    DebugTask.$view.addTo(document.body);\n  });\n};\n\n_ACore[\"default\"].install('debugtask', DebugTask);\n\nvar _default = DebugTask;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/DebugTask.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/Draggable.js":
/*!**************************************************!*\
  !*** ./node_modules/absol-acomp/js/Draggable.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction Draggable(element) {\n  if (!element) element = _ACore[\"default\"]._('div');else _ACore[\"default\"].$(element);\n  element.defineEvent(['predrag', 'drag', 'begindrag', 'enddrag']);\n\n  var body = _ACore[\"default\"].$('body');\n\n  var isMoving = false;\n  var firstMove = false;\n  var offsetX;\n  var offsetY;\n  var fontSize;\n  var left0em, top0em, left0, top0;\n\n  var finishMoving = function finishMoving(event) {\n    if (isMoving) {\n      isMoving = false;\n      body.off('mousemove', mouseMoveEventHandler);\n      event.moveDX = event.clientX - offsetX;\n      event.moveDY = event.clientY - offsetY;\n      event.moveDXem = event.moveDX / fontSize;\n      event.moveDYem = event.moveDY / fontSize;\n      event.moveToX = left0 + event.moveDX;\n      event.moveToY = top0 + event.moveDY;\n      element.emit('enddrag', event);\n    }\n  };\n\n  var mouseUpEventHandler = function mouseUpEventHandler(event) {\n    finishMoving(event);\n  };\n\n  var mouseMoveEventHandler = function mouseMoveEventHandler(event) {\n    event.preventDefault();\n    event.moveDX = event.clientX - offsetX;\n    event.moveDY = event.clientY - offsetY;\n    event.moveDXem = event.moveDX / fontSize;\n    event.moveDYem = event.moveDY / fontSize;\n    event.moveToX = left0 + event.moveDX;\n    event.moveToY = top0 + event.moveDY;\n    event.moveToXem = left0em + event.moveDXem;\n    event.moveToYem = top0em + event.moveDYem;\n\n    if (firstMove) {\n      firstMove = false;\n      element.emit('begindrag', event);\n    }\n\n    element.emit('drag', event);\n  };\n\n  var mouseOutEventHandler = function mouseOutEventHandler(event) {\n    finishMoving(event);\n  };\n\n  var mouseDownEventHandler = function mouseDownEventHandler(event) {\n    isMoving = true;\n    firstMove = true;\n    body.on('mousemove', mouseMoveEventHandler);\n    body.once('mouseleave', mouseOutEventHandler);\n    body.once('mouseup', mouseUpEventHandler);\n    fontSize = this.getFontSize();\n    offsetX = event.clientX;\n    offsetY = event.clientY;\n    left0 = parseFloat(element.getComputedStyleValue('left').replace('px', ''));\n    top0 = parseFloat(element.getComputedStyleValue('top').replace('px', ''));\n    left0em = left0 / fontSize;\n    top0em = top0 / fontSize;\n    event.x0 = left0;\n    event.y0 = top0;\n    event.y0em = left0em;\n    event.y0em = top0em;\n    element.emit('predrag', event);\n  };\n\n  element.on('mousedown', mouseDownEventHandler);\n  return element;\n}\n\n;\nvar _default = Draggable;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/Draggable.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/DraggableHStack.js":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/js/DraggableHStack.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\n__webpack_require__(/*! ../css/draggablestack.css */ \"./node_modules/absol-acomp/css/draggablestack.css\");\n\nvar _DraggableVStack = _interopRequireDefault(__webpack_require__(/*! ./DraggableVStack */ \"./node_modules/absol-acomp/js/DraggableVStack.js\"));\n\nvar _Vec = _interopRequireDefault(__webpack_require__(/*! absol/src/Math/Vec2 */ \"./node_modules/absol/src/Math/Vec2.js\"));\n\nvar _Rectangle = _interopRequireDefault(__webpack_require__(/*! absol/src/Math/Rectangle */ \"./node_modules/absol/src/Math/Rectangle.js\"));\n\nvar _PositionTracker = _interopRequireDefault(__webpack_require__(/*! ./PositionTracker */ \"./node_modules/absol-acomp/js/PositionTracker.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @augments DraggableVStack\r\n * @augments PositionTracker\r\n * @constructor\r\n */\n\nfunction DraggableHStack() {\n  this._dragData = null;\n  this.$cloneContainer = _('.absol-draggable-stack-clone-container');\n  this.on('predrag', this.eventHandler.predrag).on('dragstart', this.eventHandler.dragstart).on('drag', this.eventHandler.drag).on('dragend', this.eventHandler.dragend);\n\n  _({\n    elt: this,\n    tag: _PositionTracker[\"default\"]\n  }).on('positionchange', this._updateDraggingPosition.bind(this));\n}\n\nDraggableHStack.tag = \"DraggableHStack\".toLowerCase();\n\nDraggableHStack.render = function () {\n  return _({\n    tag: 'hanger',\n    extendEvent: 'change',\n    \"class\": ['absol-draggable-stack', 'absol-draggable-hstack']\n  });\n};\n/***\r\n *\r\n * @param {Rectangle} rect\r\n * @returns {number}\r\n * @private\r\n */\n\n\nDraggableHStack.prototype._findDropIdx = function (rect) {\n  if (!this._dragData) return -1;\n  var centerX = rect.x + rect.width / 2;\n\n  var currentBound = _Rectangle[\"default\"].fromClientRect(this.getBoundingClientRect());\n\n  var nearestDistance = Math.abs(centerX - currentBound.width); //end of stack\n\n  var cDist;\n  var nearestIndex = this._dragData.childBounds.length;\n  var childX;\n\n  for (var i = 0; i < this._dragData.childBounds.length; ++i) {\n    childX = this._dragData.childBounds[i].x + currentBound.x - this._dragData.bound.x;\n    cDist = Math.abs(centerX - childX);\n\n    if (cDist < nearestDistance) {\n      nearestDistance = cDist;\n      nearestIndex = i;\n    }\n  }\n\n  return nearestIndex;\n};\n/***\r\n *\r\n * @type {DraggableHStack|{}}\r\n */\n\n\nDraggableHStack.eventHandler = {};\nDraggableHStack.eventHandler.predrag = _DraggableVStack[\"default\"].eventHandler.predrag;\n\nDraggableHStack.eventHandler.dragstart = function (event) {\n  this.addClass('as-has-dragging');\n  this.startTrackPosition();\n  var mousePos = new _Vec[\"default\"](event.clientX, event.clientY);\n\n  var elt = this._findDirectChild(event.target);\n\n  var childBounds = Array.prototype.map.call(this.childNodes, function (e) {\n    return _Rectangle[\"default\"].fromClientRect(e.getBoundingClientRect());\n  });\n  var eltIdx = Array.prototype.indexOf.call(this.childNodes, elt);\n  var eltBound = childBounds[eltIdx];\n  var eltMouseOffset = mousePos.sub(new _Vec[\"default\"](eltBound.x, eltBound.y));\n  this._dragData = {\n    mouseStartPos: mousePos,\n    mousePos: mousePos,\n    bound: _Rectangle[\"default\"].fromClientRect(this.getBoundingClientRect()),\n    childBounds: childBounds,\n    elt: elt,\n    eltIdx: eltIdx,\n    eltBound: eltBound,\n    eltMouseOffset: eltMouseOffset\n  };\n  this.$cloneContainer.addStyle({\n    left: eltBound.x + 'px',\n    top: eltBound.y + 'px',\n    width: eltBound.width + 'px',\n    height: eltBound.height + 'px'\n  }).clearChild().addChild($(elt.cloneNode(true))).addTo(document.body);\n  elt.addClass('as-dragging');\n\n  this._updateDraggingPosition();\n};\n\nDraggableHStack.eventHandler.drag = function (event) {\n  event.preventDefault();\n  this._dragData.mousePos = new _Vec[\"default\"](event.clientX, event.clientY);\n\n  this._updateDraggingPosition();\n};\n\nDraggableHStack.eventHandler.dragend = function (event) {\n  var thisS = this;\n  this.stopTrackPosition();\n  this.removeClass('as-has-dragging');\n\n  this._dragData.elt.removeClass('as-dragging');\n\n  if (this._dragData.destIdx == this._dragData.eltIdx || this._dragData.destIdx == this._dragData.eltIdx + 1) {\n    this.$cloneContainer.addClass('as-home-going');\n\n    this._updateDraggingPosition();\n\n    setTimeout(function () {\n      thisS.$cloneContainer.selfRemove().removeClass('as-home-going');\n    }, 100);\n  } else {\n    if (this._dragData.destIdx === this._dragData.childBounds.length) {\n      this._dragData.elt.remove();\n\n      this.addChild(this._dragData.elt);\n      this.emit('change', {\n        type: 'change',\n        elt: this._dragData.elt,\n        sourceIndex: this._dragData.eltIdx,\n        destIndex: this._dragData.childBounds.length,\n        oldIdx: this._dragData.eltIdx,\n        newIdx: this._dragData.childBounds.length - 1,\n        desc: \"Move element to end of stack.\"\n      }, this);\n    } else {\n      var beforeElt = this.childNodes[this._dragData.destIdx];\n\n      this._dragData.elt.remove();\n\n      this.addChildBefore(this._dragData.elt, beforeElt);\n      this.emit('change', {\n        type: 'change',\n        elt: this._dragData.elt,\n        sourceIndex: this._dragData.eltIdx,\n        destIndex: this._dragData.destIdx,\n        oldIdx: this._dragData.eltIdx,\n        newIdx: this._dragData.destIdx > this._dragData.eltIdx ? this._dragData.destIdx - 1 : this._dragData.destIdx,\n        desc: \"Move element to before  this.childNodes[\" + this._dragData.destIdx + \"]\"\n      }, this);\n    }\n\n    this.$cloneContainer.selfRemove().removeClass('as-home-going');\n  }\n\n  this.removeClass('as-no-change');\n};\n\nDraggableHStack.prototype._findDragzone = _DraggableVStack[\"default\"].prototype._findDragzone;\nDraggableHStack.prototype._findDirectChild = _DraggableVStack[\"default\"].prototype._findDirectChild;\n\nDraggableHStack.prototype._updateDraggingPosition = function () {\n  var bound = this.getBoundingClientRect();\n  var x, y;\n\n  if (this.$cloneContainer.hasClass('as-home-going')) {\n    x = this._dragData.eltBound.x - this._dragData.bound.x + bound.left;\n    y = this._dragData.eltBound.y - this._dragData.bound.y + bound.top;\n  } else {\n    y = bound.top + (this._dragData.eltBound.y - this._dragData.bound.y);\n\n    var newPos = this._dragData.mousePos.sub(this._dragData.eltMouseOffset);\n\n    x = newPos.x;\n  }\n\n  this.$cloneContainer.addStyle({\n    left: x + 'px',\n    top: y + 'px'\n  });\n\n  var cBound = this._dragData.eltBound.clone();\n\n  cBound.x = x;\n  cBound.y = y;\n\n  var destIdx = this._findDropIdx(cBound);\n\n  this._dragData.destIdx = destIdx;\n  var destX;\n\n  if (destIdx >= this._dragData.childBounds.length) {\n    var lastRect = this._dragData.childBounds[this._dragData.childBounds.length - 1];\n    destX = lastRect.x + lastRect.width - this._dragData.bound.x;\n  } else {\n    destX = this._dragData.childBounds[destIdx].x - this._dragData.bound.x;\n  }\n\n  this.addStyle('--dest-x', destX + 'px');\n\n  if (destIdx == this._dragData.eltIdx || destIdx == this._dragData.eltIdx + 1) {\n    this.addClass('as-no-change');\n  } else {\n    this.removeClass('as-no-change');\n  }\n};\n\n_ACore[\"default\"].install(DraggableHStack);\n\nvar _default = DraggableHStack;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/DraggableHStack.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/DraggableVStack.js":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/js/DraggableVStack.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\n__webpack_require__(/*! ../css/draggablestack.css */ \"./node_modules/absol-acomp/css/draggablestack.css\");\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _Hanger = _interopRequireDefault(__webpack_require__(/*! ./Hanger */ \"./node_modules/absol-acomp/js/Hanger.js\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _stringGenerate = __webpack_require__(/*! absol/src/String/stringGenerate */ \"./node_modules/absol/src/String/stringGenerate.js\");\n\nvar _Vec = _interopRequireDefault(__webpack_require__(/*! absol/src/Math/Vec2 */ \"./node_modules/absol/src/Math/Vec2.js\"));\n\nvar _PositionTracker = _interopRequireDefault(__webpack_require__(/*! ./PositionTracker */ \"./node_modules/absol-acomp/js/PositionTracker.js\"));\n\nvar _Rectangle = _interopRequireDefault(__webpack_require__(/*! absol/src/Math/Rectangle */ \"./node_modules/absol/src/Math/Rectangle.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @augments Hanger\r\n * @augments PositionTracker\r\n * @constructor\r\n */\n\nfunction DraggableVStack() {\n  _({\n    tag: 'PositionTracker'.toLowerCase(),\n    elt: this\n  });\n\n  this.$cloneContainer = _('.absol-draggable-stack-clone-container');\n  this.on('predrag', this.eventHandler.predrag).on('dragstart', this.eventHandler.dragstart).on('drag', this.eventHandler.drag).on('dragend', this.eventHandler.dragend);\n  this._state = 0;\n  this.friends = [];\n  this.$friends = [];\n  this._privateDraggableVStackIdent = (0, _stringGenerate.randomIdent)(35);\n  this._dragData = null;\n  this.on('positionchange', this.eventHandler.scroll);\n}\n\nDraggableVStack.tag = 'DraggableVStack'.toLowerCase();\n\nDraggableVStack.render = function () {\n  return _({\n    tag: 'hanger',\n    extendEvent: ['change', 'orderchange', 'itemleave', 'itementer'],\n    \"class\": ['absol-draggable-stack', 'absol-draggable-vstack']\n  });\n};\n\nDraggableVStack.prototype._updateFriends = function () {\n  var dict = {};\n  dict[this._privateDraggableVStackIdent] = this;\n  this.$friends = this.friends.reduce(function (ac, cr) {\n    if (_Dom[\"default\"].isDomNode(cr)) {\n      if (cr._privateDraggableVStackIdent) {\n        ac.result.push(cr);\n        ac.dict[cr._privateDraggableVStackIdent] = cr;\n      }\n    } else if (typeof cr === 'string') {\n      $(cr, false, function (elt) {\n        if (elt._privateDraggableVStackIdent) {\n          if (!ac.dict[elt._privateDraggableVStackIdent]) {\n            ac.result.push(elt);\n            ac.dict[elt._privateDraggableVStackIdent] = elt;\n          }\n        }\n      });\n    }\n\n    return ac;\n  }, {\n    dict: dict,\n    result: []\n  }).result;\n};\n\nDraggableVStack.prototype._findIndex = function (clientY) {\n  var childBounds = Array.prototype.map.call(this.childNodes, function (elt) {\n    return elt.getBoundingClientRect();\n  });\n  var childTops = childBounds.map(function (b) {\n    return b.top;\n  });\n  childTops.push((childBounds[childBounds.length - 1] || this.getBoundingClientRect()).bottom);\n  var nearestIdx = 0;\n  var nearestVal = 10000000;\n  var val;\n\n  for (var i = 0; i < childTops.length; ++i) {\n    val = Math.abs(clientY - childTops[i]);\n\n    if (val < nearestVal) {\n      nearestVal = val;\n      nearestIdx = i;\n    }\n  }\n\n  return nearestIdx;\n};\n/***\r\n *\r\n * @type {DraggableVStack|{}}\r\n */\n\n\nDraggableVStack.eventHandler = {};\n\nDraggableVStack.eventHandler.predrag = function (event) {\n  var dragzone = this._findDragzone(event.target);\n\n  if (!dragzone) {\n    event.cancel();\n  }\n};\n\nDraggableVStack.eventHandler.dragstart = function (event) {\n  this.startTrackPosition();\n  event.preventDefault();\n\n  this._updateFriends();\n\n  this._state = 1;\n  this.addClass('as-state-drag');\n  this._dragData = {\n    mouseStartPos: new _Vec[\"default\"](event.clientX, event.clientY),\n    elt: this._findDirectChild(event.target),\n    rootBound: this.getBoundingClientRect(),\n    dest: this\n  };\n  this._dragData.mouseCurrentPos = this._dragData.mouseStartPos;\n\n  this._updateDestChildrenBound();\n\n  this._dragData.idx = Array.prototype.indexOf.call(this.childNodes, this._dragData.elt);\n  this._dragData.eltBound = this._dragData.destChildBounds[this._dragData.idx];\n  this._dragData.offsetPos = this._dragData.mouseStartPos.sub(new _Vec[\"default\"](this._dragData.eltBound.left, this._dragData.eltBound.top));\n  this._dragData.eltRelative = new _Vec[\"default\"](this._dragData.eltBound.left, this._dragData.eltBound.top).sub(new _Vec[\"default\"](this._dragData.rootBound.left, this._dragData.rootBound.top));\n  this.$cloneContainer.addTo(document.body);\n  this.$cloneContainer.clearChild().addChild($(this._dragData.elt.cloneNode(true)).addStyle({\n    boxSizing: 'border-box',\n    width: this._dragData.eltBound.width + 'px',\n    height: this._dragData.eltBound.height + 'px'\n  }));\n  this.$cloneContainer.addStyle({\n    left: this._dragData.eltBound.left + 'px',\n    top: this._dragData.eltBound.top + 'px'\n  });\n\n  this._dragData.elt.addClass('dragging');\n};\n\nDraggableVStack.eventHandler.drag = function (event) {\n  event.preventDefault();\n  this._dragData.mouseCurrentPos = new _Vec[\"default\"](event.clientX, event.clientY);\n\n  this._updateHoverDest();\n\n  this._updateDraggingPosition();\n\n  this.eventHandler.dragOverflow(event);\n};\n\nDraggableVStack.prototype.getClientY = function () {\n  var top = 1000000;\n  var bottom = -10000000;\n  var child;\n  var childBound;\n\n  for (var i = 0; i < this.childNodes.length; ++i) {\n    child = this.childNodes[i];\n    if (child === this.$cloneContainer) continue;\n\n    if (child.getBoundingClientRect) {\n      childBound = child.getBoundingClientRect();\n      top = Math.min(top, childBound.top);\n      bottom = Math.max(bottom, childBound.bottom);\n    }\n  }\n\n  return {\n    top: top,\n    bottom: bottom\n  };\n};\n\nDraggableVStack.eventHandler.dragOverflow = function (event) {\n  var scroller = this;\n\n  while (scroller) {\n    var overflowStyle = window.getComputedStyle(scroller)['overflow'];\n    if ((overflowStyle === 'auto' || overflowStyle === 'scroll' || scroller.tagName === 'HTML') && scroller.clientHeight < scroller.scrollHeight) break;\n    scroller = scroller.parentElement;\n  }\n\n  if (!scroller) return;\n  var outBound = scroller.getBoundingClientRect();\n  var bBound = this.$cloneContainer.getBoundingClientRect();\n\n  var screenSize = _Dom[\"default\"].getScreenSize();\n\n  if (scroller.tagName !== \"HTML\") {\n    outBound = {\n      top: Math.max(outBound.top, 0),\n      bottom: Math.min(outBound.bottom, screenSize.height)\n    };\n  } else {\n    outBound = {\n      top: 0,\n      bottom: screenSize.height\n    };\n  }\n\n  var vy = 0;\n\n  if (bBound.top < outBound.top) {\n    vy = bBound.top - outBound.top;\n  } else if (bBound.bottom > outBound.bottom) {\n    vy = bBound.bottom - outBound.bottom;\n  }\n\n  var dt = 1 / 30;\n\n  if (vy !== 0) {\n    var copyEvent = {\n      type: event.type,\n      preventDefault: function preventDefault() {\n        /* noop */\n      },\n      target: event.target\n    };\n    copyEvent.clientX = event.clientX;\n    copyEvent.clientY = event.clientY;\n    var thisBT = this;\n    setTimeout(function () {\n      if (scroller.scrollHeight > scroller.clientHeight) {\n        scroller.scrollTop += (0, _utils.absCeil)(vy * dt);\n      }\n\n      if (thisBT._state === 1) {\n        thisBT.eventHandler.dragOverflow(copyEvent);\n      }\n    }, dt * 1000);\n  }\n};\n\nDraggableVStack.eventHandler.scroll = function (event) {\n  this._updateDraggingPosition();\n};\n\nDraggableVStack.eventHandler.dragend = function (event) {\n  this.stopTrackPosition();\n  event.preventDefault();\n\n  this._dragData.dest.removeClass('as-state-drag');\n\n  this.$cloneContainer.remove();\n\n  this._dragData.elt.removeClass('dragging');\n\n  this.removeClass('as-state-no-change');\n  this._state = 0;\n  var beforeElt;\n\n  if (this._dragData.dest === this) {\n    if (this._dragData.idx === this._dragData.destIdx || this._dragData.idx + 1 === this._dragData.destIdx) {//todo\n    } else {\n      if (this._dragData.destIdx === this.childNodes.length) {\n        this._dragData.elt.remove();\n\n        this.addChild(this._dragData.elt);\n        this.emit('change', {\n          type: 'change',\n          fromStack: this,\n          toStack: this,\n          elt: this._dragData.elt,\n          sourceIndex: this._dragData.idx,\n          destIndex: this.childNodes.length,\n          oldIdx: this._dragData.idx,\n          newIdx: this.childNodes.length - 1,\n          desc: \"Move element to end of stack.\"\n        }, this);\n        this.emit('orderchange', {\n          type: 'orderchange',\n          fromStack: this,\n          toStack: this,\n          elt: this._dragData.elt,\n          oldIdx: this._dragData.idx,\n          newIdx: this.childNodes.length - 1,\n          desc: \"Move element to end of stack.\"\n        }, this);\n      } else {\n        beforeElt = this.childNodes[this._dragData.destIdx];\n\n        this._dragData.elt.remove();\n\n        this.addChildBefore(this._dragData.elt, beforeElt);\n        this.emit('change', {\n          type: 'change',\n          fromStack: this,\n          toStack: this,\n          elt: this._dragData.elt,\n          sourceIndex: this._dragData.idx,\n          destIndex: this._dragData.destIdx,\n          oldIdx: this._dragData.idx,\n          newIdx: this._dragData.destIdx > this._dragData.idx ? this._dragData.destIdx - 1 : this._dragData.destIdx,\n          desc: \"Move element to before  this.childNodes[\" + this._dragData.destIdx + \"]\"\n        }, this);\n        this.emit('orderchange', {\n          type: 'orderchange',\n          fromStack: this,\n          toStack: this,\n          elt: this._dragData.elt,\n          oldIdx: this._dragData.idx,\n          newIdx: this._dragData.destIdx > this._dragData.idx ? this._dragData.destIdx - 1 : this._dragData.destIdx,\n          desc: \"Move element to before  this.childNodes[\" + this._dragData.destIdx + \"]\"\n        }, this);\n      }\n    }\n  } else {\n    if (this._dragData.destIdx === this._dragData.dest.childNodes.length) {\n      this.emit('orderchange', {\n        type: 'itemleave',\n        fromStack: this,\n        toStack: this._dragData.dest,\n        oldIdx: this._dragData.idx,\n        newIdx: this.childNodes.length - 1,\n        desc: \"Move element to end of friend stack.\"\n      }, this);\n\n      this._dragData.elt.remove();\n\n      this._dragData.dest.addChild(this._dragData.elt);\n\n      this._dragData.dest.emit('orderchange', {\n        type: 'itementer',\n        fromStack: this,\n        toStack: this._dragData.dest,\n        oldIdx: this._dragData.idx,\n        newIdx: this.childNodes.length - 1,\n        desc: \"Move element to end of friend stack.\"\n      }, this._dragData.dest);\n\n      this.emit('change', {\n        type: 'change',\n        fromStack: this,\n        toStack: this._dragData.dest,\n        elt: this._dragData.elt,\n        sourceIndex: this._dragData.idx,\n        destIndex: this.childNodes.length,\n        oldIdx: this._dragData.idx,\n        newIdx: this.childNodes.length - 1,\n        desc: \"Move element to end of friend stack.\"\n      });\n    } else {\n      beforeElt = this._dragData.dest.childNodes[this._dragData.destIdx];\n\n      this._dragData.elt.remove();\n\n      this.emit('itemleave', {\n        type: 'itemleave',\n        fromStack: this,\n        toStack: this._dragData.dest,\n        elt: this._dragData.elt,\n        oldIdx: this._dragData.idx,\n        newIdx: this._dragData.destIdx,\n        desc: \"Move element to before friend.childNodes[\" + this._dragData.destIdx + \"]\"\n      }, this);\n\n      this._dragData.dest.addChildBefore(this._dragData.elt, beforeElt);\n\n      this._dragData.dest.emit('itementer', {\n        type: 'itementer',\n        fromStack: this,\n        toStack: this._dragData.dest,\n        elt: this._dragData.elt,\n        oldIdx: this._dragData.idx,\n        newIdx: this._dragData.destIdx,\n        desc: \"Move element to before friend.childNodes[\" + this._dragData.destIdx + \"]\"\n      }, this._dragData.dest);\n\n      this.emit('change', {\n        type: 'change',\n        fromStack: this,\n        toStack: this._dragData.dest,\n        elt: this._dragData.elt,\n        sourceIndex: this._dragData.idx,\n        destIndex: this._dragData.destIdx,\n        oldIdx: this._dragData.idx,\n        newIdx: this._dragData.destIdx,\n        desc: \"Move element to before friend.childNodes[\" + this._dragData.destIdx + \"]\"\n      }, this);\n    }\n  }\n};\n\nDraggableVStack.prototype._updateDestChildrenBound = function () {\n  var top0 = this._dragData.dest.getBoundingClientRect().top;\n\n  this._dragData.destChildBounds = Array.prototype.map.call(this._dragData.dest.childNodes, function (elt) {\n    return elt.getBoundingClientRect();\n  });\n  this._dragData.destChildTops = this._dragData.destChildBounds.map(function (bound) {\n    return bound.top - top0;\n  }).concat([(this._dragData.destChildBounds[this._dragData.destChildBounds.length - 1] || this.getBoundingClientRect()).bottom - top0]);\n};\n\nDraggableVStack.prototype._updateHoverDest = function () {\n  var bound;\n  var newDest;\n  var friendElt;\n  var friendList = this.$friends.concat([this]);\n  var top0;\n\n  for (var i = 0; i < friendList.length; ++i) {\n    friendElt = friendList[i];\n    bound = _Rectangle[\"default\"].fromClientRect(friendElt.getBoundingClientRect());\n\n    if (bound.containsPoint(this._dragData.mouseCurrentPos)) {\n      top0 = bound.y;\n      newDest = friendElt;\n      break;\n    }\n  }\n\n  if (newDest && this._dragData.dest !== newDest) {\n    this._dragData.dest.removeClass('as-state-drag');\n\n    this._dragData.dest = newDest;\n\n    this._dragData.dest.addClass('as-state-drag');\n\n    this._dragData.dest.addStyle('--dest-y', 'unset');\n\n    this._updateDestChildrenBound();\n  }\n};\n\nDraggableVStack.prototype._updateDraggingPosition = function () {\n  var bound = this.getBoundingClientRect();\n\n  var clonePos = this._dragData.mouseCurrentPos.sub(this._dragData.offsetPos);\n\n  this.$cloneContainer.addStyle({\n    top: clonePos.y + 'px',\n    left: bound.left + 'px'\n  });\n  this._dragData.destIdx = this._dragData.dest._findIndex(clonePos.y + this._dragData.eltBound.height / 2);\n\n  this._dragData.dest.addStyle('--dest-y', this._dragData.destChildTops[this._dragData.destIdx] + 'px');\n\n  if (this._dragData.dest === this) {\n    if (this._dragData.idx === this._dragData.destIdx || this._dragData.idx + 1 === this._dragData.destIdx) {\n      this.addClass('as-state-no-change');\n    } else {\n      this.removeClass('as-state-no-change');\n    }\n  }\n};\n\nDraggableVStack.prototype._autoScrollParentIfNeed = function (delta) {\n  //todo: choose which element should be scroll\n  if (!(delta > 0)) delta = 10000;\n  var bound = this.getBoundingClientRect();\n  var cloneBound = this.$cloneContainer.getBoundingClientRect();\n\n  var outBound = _Dom[\"default\"].traceOutBoundingClientRect(this.$cloneContainer);\n\n  if (outBound.bottom >= cloneBound.bottom && outBound.top <= cloneBound.top) return;\n  var scrollables = [];\n  var current = this;\n\n  while (current) {\n    var oy = window.getComputedStyle(current);\n    oy = oy['overflow-y'] || oy['overflowY'];\n\n    if (oy == 'auto' || oy == 'scroll') {\n      scrollables.push(current);\n    }\n\n    current = current.parentElement;\n  }\n\n  scrollables.push(document.body.parentElement);\n};\n\nDraggableVStack.prototype._findDragzone = function (elt) {\n  var result = null;\n\n  while (elt && elt != this) {\n    if (elt.classList && elt.classList.contains('drag-zone')) {\n      result = elt;\n      break;\n    }\n\n    elt = elt.parentNode;\n  }\n\n  if (result) {\n    elt = result;\n\n    while (elt && elt != this) {\n      if (elt.classList && elt.classList.contains('absol-draggable-stack')) {\n        result = null;\n        break;\n      }\n\n      elt = elt.parentNode;\n    }\n  }\n\n  return result;\n};\n\nDraggableVStack.prototype._findDirectChild = function (elt) {\n  while (elt && elt != this) {\n    if (elt.parentNode == this) return elt;\n    elt = elt.parentNode;\n  }\n\n  return undefined;\n};\n\nDraggableVStack.property = {};\nDraggableVStack.property.friends = {\n  set: function set(value) {\n    if (!(value instanceof Array)) value = [value];\n    this._friends = value;\n  },\n  get: function get() {\n    return this._friends;\n  }\n};\n\n_ACore[\"default\"].install(DraggableVStack);\n\nvar _default = DraggableVStack;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/DraggableVStack.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/DropPanel.js":
/*!**************************************************!*\
  !*** ./node_modules/absol-acomp/js/DropPanel.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/droppanel.css */ \"./node_modules/absol-acomp/css/droppanel.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nvar _ExpTree = __webpack_require__(/*! ./ExpTree */ \"./node_modules/absol-acomp/js/ExpTree.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/**\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction DropPanel() {\n  var thisDP = this;\n  /***\r\n   *\r\n   * @type {ExpGroup}\r\n   */\n\n  this.$body = $('.absol-drop-panel-body', this);\n  this.$head = $('.absol-drop-panel-head', this).on('click', thisDP.eventHandler.clickHead);\n  this.$name = $('.absol-drop-panel-name', thisDP);\n\n  _OOP[\"default\"].drillProperty(this, this.$name, 'name', 'innerHTML');\n\n  return thisDP;\n}\n\nDropPanel.tag = 'DropPanel'.toLowerCase();\n\nDropPanel.render = function () {\n  return _({\n    \"class\": 'absol-drop-panel',\n    extendEvent: ['toggle'],\n    child: [{\n      \"class\": 'absol-drop-panel-head',\n      child: ['toggler-ico', {\n        tag: 'span',\n        \"class\": \"absol-drop-panel-name\"\n      }]\n    }, {\n      tag: 'expgroup',\n      \"class\": ['absol-drop-panel-body', 'absol-bscroller']\n    }]\n  });\n};\n\nDropPanel.eventHandler = {};\n\nDropPanel.eventHandler.clickHead = function (event) {\n  if (!this._childOfButton(event.target)) {\n    var event = {\n      target: this,\n      isShowed: this.show,\n      preventDefault: function preventDefault() {\n        this.prevented = true;\n      }\n    };\n    this.emit('toggle', event, this);\n\n    if (!event.prevented) {\n      this.toggle();\n    }\n  }\n};\n\n['findChildBefore', 'findChildAfter', 'removeChild', 'clearChild', 'addChild'].forEach(function (key) {\n  DropPanel.prototype[key] = function () {\n    this.$body[key].apply(this.$body, arguments);\n  };\n});\n\nDropPanel.prototype._childOfButton = function (elt) {\n  while (elt && elt != this) {\n    if (elt.tagName == \"BUTTON\") {\n      return true;\n    }\n\n    elt = elt.parentElement;\n  }\n\n  return false;\n};\n\nDropPanel.prototype.toggle = function () {\n  this.show = !this.show;\n};\n\nDropPanel.property = {};\nDropPanel.property.show = {\n  set: function set(value) {\n    if (value) {\n      var maxHeight = parseFloat(this.getComputedStyleValue('max-height').replace('px', ''));\n      var headBound = this.$head.getBoundingClientRect();\n\n      if (maxHeight != 'none' && maxHeight != 'auto') {\n        this.$body.addStyle('max-height', maxHeight - headBound.height + 'px');\n      }\n\n      this.$body.addStyle('height', this.$body.scrollHeight + 'px');\n      setTimeout(function () {\n        this.$body.removeStyle('height');\n        window.dispatchEvent(new Event('resize'));\n      }.bind(this), 200);\n      this.addClass('show');\n    } else {\n      this.$body.addStyle('height', this.$body.scrollHeight + 'px');\n      setTimeout(function () {\n        this.$body.addStyle('height', '0');\n      }.bind(this), 0);\n      setTimeout(function () {\n        this.$body.removeStyle('height');\n        window.dispatchEvent(new Event('resize'));\n      }.bind(this), 200);\n      this.removeClass('show');\n    }\n  },\n  get: function get() {\n    return this.hasClass('show');\n  }\n};\n\n_ACore[\"default\"].install(DropPanel);\n\nvar _default = DropPanel;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/DropPanel.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/DropPanelStack.js":
/*!*******************************************************!*\
  !*** ./node_modules/absol-acomp/js/DropPanelStack.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/droppanel.css */ \"./node_modules/absol-acomp/css/droppanel.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/**\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction DropPanelStack() {\n  var res = this;\n  this.$attachHook = _('attachhook').on('error', function () {\n    _Dom[\"default\"].addToResizeSystem(this);\n\n    this.updateSize = res.updateSize.bind(res);\n  });\n  this.sync = new Promise(function (rs) {\n    res.$attachHook.once('error', rs);\n  });\n}\n\nDropPanelStack.tag = 'DropPanelStack'.toLowerCase();\n\nDropPanelStack.render = function () {\n  return _({\n    \"class\": 'absol-drop-panel-stack',\n    child: ['attachhook']\n  });\n};\n\nDropPanelStack.prototype.updateSize = function () {};\n\nDropPanelStack.prototype.getFreeHeight = function () {\n  var childNodes = this.childNodes;\n  var sumHeight = 0;\n  var bound = this.getBoundingClientRect();\n  var childBound;\n\n  for (var i = 0; i < childNodes.length; ++i) {\n    var child = childNodes[i];\n\n    if (child.hasClass && child.hasClass('absol-drop-panel')) {\n      childBound = child.getBoundingClientRect();\n      sumHeight += childBound.height;\n    }\n  }\n\n  return bound.height - sumHeight;\n};\n\nDropPanelStack.prototype.addChild = function (child) {\n  var self = this;\n\n  if (child.hasClass('absol-drop-panel')) {\n    //remove last event listener off other parent\n    if (child.__drop_panel_toggle_listener__) {\n      child.off('toggle', child.__drop_panel_toggle_listener__);\n    }\n\n    child.__drop_panel_toggle_listener__ = function (event) {\n      event.preventDefault();\n      self.sync = self.sync.then(function () {\n        if (event.isShowed) {\n          setTimeout(function () {\n            child.removeStyle('max-height');\n          }, 200);\n          child.toggle();\n        } else {\n          var headBound = child.$head.getBoundingClientRect();\n          var vailableHeight = self.getFreeHeight();\n\n          if (vailableHeight > 3) {\n            child.addStyle('max-height', self.getFreeHeight() + headBound.height + 'px');\n            child.toggle();\n          }\n        }\n\n        return new Promise(function (rs) {\n          setTimeout(rs, 200);\n        });\n      });\n    };\n\n    child.on('toggle', child.__drop_panel_toggle_listener__);\n    this[\"super\"](child);\n  } else {\n    throw new Error('Child element must be a DropPanel');\n  }\n};\n\n_ACore[\"default\"].install('droppanelstack', DropPanelStack);\n\nvar _default = DropPanelStack;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/DropPanelStack.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/DropZone.js":
/*!*************************************************!*\
  !*** ./node_modules/absol-acomp/js/DropZone.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/dropzone.css */ \"./node_modules/absol-acomp/css/dropzone.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nvar _EventEmitter = __webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction DropZone() {\n  this.defineEvent(['fileenter', 'fileleave', 'filedrop']);\n  this.addClass('as-drop-zone');\n  this.on('dragover', this.eventHandler.dragZoneFileOver).on('drop', this.eventHandler.dropZoneFileDrop);\n  this._fileOverTimeout = -1;\n}\n\nDropZone.tag = 'dropzone';\n\nDropZone.render = function () {\n  return _('div');\n};\n\nDropZone.eventHandler = {};\n\nDropZone.eventHandler.dragZoneFileOver = function (event) {\n  event.preventDefault();\n\n  if (this._fileOverTimeout > 0) {\n    clearTimeout(this._fileOverTimeout);\n  } else {\n    this.addClass('as-drag-over');\n    this.emit('fileenter', event, this);\n  }\n\n  this._fileOverTimeout = setTimeout(this.eventHandler.dragZoneFileOverEnd, 200);\n};\n/***\r\n *\r\n * @param {DragEvent} event\r\n */\n\n\nDropZone.eventHandler.dropZoneFileDrop = function (event) {\n  if (this._fileOverTimeout > 0) {\n    clearTimeout(this._fileOverTimeout);\n    this._fileOverTimeout = -1;\n  }\n\n  event.preventDefault();\n  this.removeClass('as-drag-over');\n  event._files = null;\n  if (!event.hasOwnProperty('files')) Object.defineProperty(event, 'files', {\n    get: function get() {\n      if (this._files) return this._files;\n      var files = [];\n      var file;\n\n      if (event.dataTransfer.items) {\n        for (var i = 0; i < event.dataTransfer.items.length; i++) {\n          if (event.dataTransfer.items[i].kind === 'file') {\n            file = event.dataTransfer.items[i].getAsFile();\n            files.push(file);\n          }\n        }\n      } else {\n        // Use DataTransfer interface to access the file(s)\n        for (var i = 0; i < event.dataTransfer.files.length; i++) {\n          files.push(event.dataTransfer.files[i]);\n        }\n      }\n\n      this._files = files;\n      return this._files;\n    }\n  });\n  this.emit('filedrop', event, this);\n};\n\nDropZone.eventHandler.dragZoneFileOverEnd = function () {\n  this._fileOverTimeout = -1;\n  this.removeClass('as-drag-over');\n  this.emit('fileleave', {\n    type: 'fileleave'\n  }, this);\n};\n\n_ACore[\"default\"].install(DropZone);\n\nvar _default = DropZone;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/DropZone.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/DualSelectBox.js":
/*!******************************************************!*\
  !*** ./node_modules/absol-acomp/js/DualSelectBox.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Follower = _interopRequireDefault(__webpack_require__(/*! ./Follower */ \"./node_modules/absol-acomp/js/Follower.js\"));\n\n__webpack_require__(/*! ../css/dualselectmenu.css */ \"./node_modules/absol-acomp/css/dualselectmenu.css\");\n\nvar _search = _interopRequireWildcard(__webpack_require__(/*! ./list/search */ \"./node_modules/absol-acomp/js/list/search.js\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _DomSignal = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/DomSignal */ \"./node_modules/absol/src/HTML5/DomSignal.js\"));\n\nvar _SelectListBox = _interopRequireDefault(__webpack_require__(/*! ./SelectListBox */ \"./node_modules/absol-acomp/js/SelectListBox.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends Follower\r\n * @constructor\r\n */\nfunction DualSelectBox() {\n  this.$domSignal = (0, _ACore._)('attachhook').addTo(this);\n  this.domSignal = new _DomSignal[\"default\"](this.$domSignal);\n  this.domSignal.on('scrollIntoSelected', this.scrollIntoSelected.bind(this));\n  this._items = [];\n  this._value = [null, null];\n  this.holderByValue = {};\n  this.$lists = (0, _ACore.$$)('.as-dual-select-box-list', this);\n  this.$searcTextInput = (0, _ACore.$)('searchtextinput', this).on('stoptyping', this.eventHandler.searchTextInputModify);\n  this.$closeBtn = (0, _ACore.$)('.as-select-list-box-close-btn', this).on('click', this.eventHandler.clickCloseBtn);\n  this.cView = new DualSelectView(this, this._items);\n  this.searchedView = {\n    '*': this.cView\n  };\n  this.estimateSize = {\n    width: 0,\n    height: 0\n  };\n  this._emittedValue = [null, null];\n  /***\r\n   * @name strictValue\r\n   * @type {boolean}\r\n   * @memberOf DualSelectBox#\r\n   */\n\n  /***\r\n   * @name enableSearch\r\n   * @type {boolean}\r\n   * @memberOf DualSelectBox#\r\n   */\n\n  /***\r\n   * @name value\r\n   * @type {Array}\r\n   * @memberOf DualSelectBox#\r\n   */\n\n  /***\r\n   * @name items\r\n   * @type {Array}\r\n   * @memberOf DualSelectBox#\r\n   */\n}\n\nDualSelectBox.tag = 'DualSelectBox'.toLowerCase();\n\nDualSelectBox.render = function () {\n  return (0, _ACore._)({\n    tag: _Follower[\"default\"].tag,\n    \"class\": 'as-dual-select-box',\n    extendEvent: ['change', 'close'],\n    child: [{\n      \"class\": 'as-dual-select-box-search-ctn',\n      child: {\n        tag: 'searchtextinput'\n      }\n    }, {\n      \"class\": 'as-dual-select-box-list-ctn',\n      child: [{\n        \"class\": ['as-dual-select-box-list', 'absol-selectlist', 'as-bscroller']\n      }, {\n        \"class\": 'as-dual-select-box-arrow-ctn',\n        child: 'span.mdi.mdi-menu-right'\n      }, {\n        \"class\": ['as-dual-select-box-list', 'absol-selectlist', 'as-bscroller']\n      }]\n    }, {\n      \"class\": 'as-dropdown-box-footer',\n      child: [{\n        \"class\": 'as-dropdown-box-footer-right',\n        child: [{\n          tag: 'a',\n          \"class\": 'as-select-list-box-close-btn',\n          child: {\n            text: 'Close'\n          }\n        }]\n      }]\n    }]\n  });\n};\n\nDualSelectBox.prototype._implicit = function (value) {\n  if (value instanceof Array) {\n    if (value.length > 2) value = value.slice(0, 2);else {\n      value.push.apply(value, Array(2 - value.length).fill(null));\n    }\n  } else {\n    value = [null, null];\n  }\n\n  return value;\n};\n\nDualSelectBox.prototype._explicit = function (value) {\n  value = value.slice();\n  var strictValue = this.strictValue;\n\n  if (!this.holderByValue[value[0]]) {\n    if (this._items.length > 0 && strictValue) {\n      value[0] = this._items[0].value;\n    } else {\n      return null;\n    }\n  }\n\n  if (!this.holderByValue[value[0]].child[value[1]]) {\n    if (strictValue && this.holderByValue[value[0]].item.items && this.holderByValue[value[0]].item.items.length > 0) {\n      value[1] = this.holderByValue[value[0]].item.items[0].value;\n    } else {\n      return null;\n    }\n  }\n\n  if (value[0] === null || value[1] === null) {\n    return null;\n  }\n\n  return value;\n};\n\nDualSelectBox.prototype._notifyIfChange = function (event) {\n  var value = this._explicit(this._value);\n\n  if (value === this._emittedValue) return;\n\n  if (!value !== !this._emittedValue || value[0] !== this._emittedValue[0] || value[1] !== this._emittedValue[1]) {\n    this.emit('change', {\n      type: 'change',\n      target: this,\n      originalEvent: event\n    }, this);\n  }\n};\n\nDualSelectBox.prototype._makeLeftItem = function (item) {\n  var itemElt = (0, _ACore._)({\n    \"class\": 'absol-selectlist-item',\n    child: {\n      tag: 'span',\n      \"class\": 'absol-selectlist-item-text',\n      child: {\n        text: item.text\n      }\n    }\n  });\n  itemElt.itemData = item;\n  itemElt.on('click', this.eventHandler.clickLeftItem.bind(this, itemElt));\n  return itemElt;\n};\n\nDualSelectBox.prototype.makeRightItem = function (item) {\n  var itemElt = (0, _ACore._)({\n    \"class\": 'absol-selectlist-item',\n    child: {\n      tag: 'span',\n      \"class\": 'absol-selectlist-item-text',\n      child: {\n        text: item.text\n      }\n    }\n  });\n  itemElt.itemData = item;\n  itemElt.on('click', this.eventHandler.clickRightItem.bind(this, itemElt));\n  return itemElt;\n};\n\nDualSelectBox.prototype._calcEstimateSize = function (items) {\n  var fontSize = (0, _ACore.$)(document.body).getFontSize();\n  var longestItem = null;\n  var longestE14 = 0;\n  var e14, i, j;\n  var item, subItem;\n\n  for (i = 0; i < items.length; ++i) {\n    item = items[i];\n    e14 = (0, _utils.estimateWidth14)(item.text);\n\n    if (e14 > longestE14) {\n      longestItem = item;\n      longestE14 = e14;\n    }\n  }\n\n  var leftTextWidth = longestItem ? (0, _utils.measureText)(longestItem.text, '14px arial').width : 0;\n  var maxN = items.length;\n\n  for (i = 0; i < items.length; ++i) {\n    item = items[i];\n    if (!item.items || item.items.length === 0) continue;\n    maxN = Math.max(maxN, item.items.length);\n\n    for (j = 0; j < item.items.length; ++j) {\n      subItem = item.items[j];\n      e14 = (0, _utils.estimateWidth14)(subItem.text);\n\n      if (e14 > longestE14) {\n        longestItem = subItem;\n        longestE14 = e14;\n      }\n    }\n  }\n\n  var rightTextWidth = longestItem ? (0, _utils.measureText)(longestItem.text, '14px arial').width : 0;\n  return {\n    width: (7 + leftTextWidth + 7 + 5 + 7 + 1 + 17 + 1 + 7 + rightTextWidth + 7 + 5 + 7 + 20) * fontSize / 14,\n    height: maxN * 20 * fontSize / 14,\n    textWidth: (leftTextWidth + rightTextWidth + 12) * fontSize / 14\n  };\n};\n\nDualSelectBox.prototype.scrollIntoSelected = function () {\n  if (!this.isDescendantOf(document.body)) {\n    this.domSignal.emit('scrollIntoSelected');\n    return;\n  }\n\n  if (this.cView && this.cView.$leftSelectedItem && this.cView.$leftSelectedItem.isDescendantOf(this.$lists[0])) {\n    this.cView.$leftSelectedItem.scrollIntoView();\n  }\n\n  if (this.cView && this.cView.$rightSelectedItem && this.cView.$rightSelectedItem.isDescendantOf(this.$lists[1])) {\n    this.cView.$rightSelectedItem.scrollIntoView();\n  }\n};\n\nDualSelectBox.prototype.focus = _SelectListBox[\"default\"].prototype.focus;\nDualSelectBox.property = {};\nDualSelectBox.property.items = {\n  /***\r\n   * @this DualSelectBox\r\n   * @param items\r\n   */\n  set: function set(items) {\n    var self = this;\n    items = items || [];\n    (0, _search.prepareSearchForList)(items);\n    this._items = items;\n    this.holderByValue = items.reduce(function (ac, cr) {\n      ac[cr.value] = {\n        item: cr,\n        child: (cr.items || []).reduce(function (ac1, cr1) {\n          ac1[cr1.value] = {\n            item: cr1\n          };\n          return ac1;\n        }, {})\n      };\n      return ac;\n    }, {});\n    this.estimateSize = this._calcEstimateSize(items);\n    this.addStyle('--dual-list-estimate-width', this.estimateSize.width + 'px');\n    this.searchedView = {};\n    this.cView = new DualSelectView(this, items);\n    this.searchedView['*'] = this.cView;\n    this.cView.toView();\n  },\n  get: function get() {\n    return this._items;\n  }\n};\nDualSelectBox.property.enableSearch = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-enable-search');\n    } else {\n      this.removeClass('as-enable-search');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-enable-search');\n  }\n};\nDualSelectBox.property.strictValue = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-strict-value');\n    } else {\n      this.removeClass('as-strict-value');\n    }\n\n    if (this.cView) this.cView.updateViewByValue();\n  },\n  get: function get() {\n    return this.hasClass('as-strict-value');\n  }\n};\nDualSelectBox.property.value = {\n  /***\r\n   * @this DualSelectBox\r\n   * @param value\r\n   */\n  set: function set(value) {\n    this._value = this._implicit(value);\n\n    if (this.cView) {\n      this.cView.updateViewByValue();\n      this.cView.toRightList();\n    }\n\n    this.scrollIntoSelected();\n  },\n  get: function get() {\n    return this._explicit(this._value);\n  }\n};\n/***\r\n * @memberOf DualSelectBox#\r\n * @type {{}}\r\n */\n\nDualSelectBox.eventHandler = {};\n/***\r\n * @this DualSelectBox\r\n * @param itemElt\r\n * @param event\r\n */\n\nDualSelectBox.eventHandler.clickLeftItem = function (itemElt, event) {\n  var item = itemElt.itemData;\n  this._value[0] = item.value;\n  this.cView.updateLeftSelectedItem();\n  this.cView.updateRightList();\n  this.cView.toRightList();\n\n  if (this.cView.$leftItemByValue[item.value] && this.cView.$leftItemByValue[item.value].itemData && this.cView.$leftItemByValue[item.value].itemData.items && this.cView.$leftItemByValue[item.value].itemData.items.length > 0) {\n    this._value[1] = this.cView.$leftItemByValue[item.value].itemData.items[0].value;\n    this.cView.updateRightSelectedItem();\n  }\n\n  if (this.cView.$rightSelectedItem) {\n    this.cView.$rightSelectedItem.scrollIntoView();\n  }\n\n  this._notifyIfChange(event);\n};\n/***\r\n * @this DualSelectBox\r\n * @param itemElt\r\n * @param event\r\n */\n\n\nDualSelectBox.eventHandler.clickRightItem = function (itemElt, event) {\n  var item = itemElt.itemData;\n  this._value[1] = item.value;\n  this.cView.updateRightSelectedItem();\n\n  this._notifyIfChange(event);\n};\n\nDualSelectBox.prototype.searchItemByText = function (text) {\n  var items = this._items;\n  var queryItem = (0, _search[\"default\"])({\n    text: text\n  });\n  var maxScore = 0;\n  var holders = items.map(function (item) {\n    var h = {\n      item: item,\n      itemScore: (0, _search.calcItemMatchScore)(queryItem, item)\n    };\n    maxScore = Math.max(maxScore, h.itemScore);\n    var childMaxScore = 0;\n\n    if (item.items && item.items.length > 0) {\n      h.child = item.items.map(function (cItem) {\n        var cItemScore = (0, _search.calcItemMatchScore)(queryItem, cItem);\n        maxScore = Math.max(maxScore, cItemScore);\n        childMaxScore = Math.max(childMaxScore, cItemScore);\n        return {\n          item: cItem,\n          itemScore: cItemScore\n        };\n      });\n      h.childScore = childMaxScore;\n    }\n\n    return h;\n  });\n  holders.sort(function (a, b) {\n    return -Math.max(a.itemScore, a.childScore) + Math.max(b.itemScore, b.childScore);\n  });\n  var midScore = maxScore / 2;\n  holders = holders.filter(function (holder) {\n    return Math.max(holder.itemScore, holder.childScore) >= midScore;\n  });\n  return holders.map(function (holder) {\n    var oldItem = holder.item;\n    var item = {\n      text: oldItem.text,\n      value: oldItem.value\n    };\n    var childHolders;\n\n    if (holder.child) {\n      childHolders = holder.child.slice();\n      childHolders.sort(function (a, b) {\n        return -a.itemScore + b.itemScore;\n      });\n      item.items = childHolders.map(function (cHolder) {\n        return cHolder.item;\n      });\n      item.isSearchItem = true;\n    }\n\n    return item;\n  });\n};\n\nDualSelectBox.prototype.focus = function () {\n  if (this.enableSearch) {\n    this.$searcTextInput.focus();\n  }\n};\n\nDualSelectBox.prototype.resetSearchState = function () {\n  if (this.$searcTextInput.value.length === 0) return;\n  this.$searcTextInput.value = '';\n  this.eventHandler.searchTextInputModify();\n};\n/***\r\n * @this DualSelectBox\r\n */\n\n\nDualSelectBox.eventHandler.searchTextInputModify = function () {\n  var query = this.$searcTextInput.value.trim().replace(/\\s+/, ' ');\n  if (query.length === 0) query = '*';\n  var view = this.searchedView[query];\n\n  if (!view) {\n    view = new DualSelectView(this, this.searchItemByText(query));\n    this.searchedView[query] = view;\n  }\n\n  this.cView = view;\n  this.cView.updateLeftSelectedItem();\n  this.cView.updateRightSelectedItem();\n  view.toView();\n  this.$lists[0].scrollTop = 0;\n  this.$lists[1].scrollTop = 0;\n  if (query === '*') this.scrollIntoSelected();\n};\n\nDualSelectBox.eventHandler.clickCloseBtn = function (event) {\n  this.emit('close', {\n    type: 'close',\n    target: this,\n    originalEvent: event\n  }, this);\n};\n\n_ACore[\"default\"].install(DualSelectBox);\n\nvar _default = DualSelectBox;\n/***\r\n *\r\n * @param {DualSelectBox} box\r\n * @param items\r\n * @constructor\r\n */\n\nexports[\"default\"] = _default;\n\nfunction DualSelectView(box, items) {\n  var self = this;\n  this.box = box;\n  this.items = items;\n  this.$leftItems = items.map(function (item) {\n    return self.box._makeLeftItem(item);\n  });\n  this.$leftItemByValue = this.$leftItems.reduce(function (ac, cr) {\n    ac[cr.itemData.value] = cr;\n    return ac;\n  }, {});\n  this.$rightItems = [];\n  this.$rightItemByValue = {};\n  this.$leftSelectedItem = null;\n  this.$rightSelectedItem = null;\n  this.updateViewByValue();\n}\n\nDualSelectView.prototype.toView = function () {\n  this.box.$lists[0].clearChild();\n  this.box.$lists[0].addChild(this.$leftItems);\n  this.updateLeftSelectedItem();\n  this.toRightList();\n};\n\nDualSelectView.prototype.toRightList = function () {\n  this.box.$lists[1].clearChild();\n  this.box.$lists[1].addChild(this.$rightItems);\n  this.updateLeftSelectedItem();\n};\n\nDualSelectView.prototype.updateViewByValue = function () {\n  this.updateLeftSelectedItem();\n  this.updateRightList();\n};\n\nDualSelectView.prototype.updateRightList = function () {\n  var self = this;\n  var leftValue = this.box._value[0];\n  var items = this.$leftItemByValue[leftValue] && this.$leftItemByValue[leftValue].itemData.items;\n\n  if (items && items.length > 0) {\n    this.$rightItems = items.map(function (item) {\n      return self.box.makeRightItem(item);\n    });\n  } else {\n    this.$rightItems = [];\n  }\n\n  this.$rightItemByValue = this.$rightItems.reduce(function (ac, cr) {\n    ac[cr.itemData.value] = cr;\n    return ac;\n  }, {});\n  this.updateRightSelectedItem();\n};\n\nDualSelectView.prototype.updateLeftSelectedItem = function () {\n  if (this.$leftSelectedItem) {\n    this.$leftSelectedItem.removeClass('as-selected');\n  }\n\n  this.$leftSelectedItem = this.$leftItemByValue[this.box._value[0]] || null;\n\n  if (this.$leftSelectedItem) {\n    this.$leftSelectedItem.addClass('as-selected');\n  }\n};\n\nDualSelectView.prototype.updateRightSelectedItem = function () {\n  if (this.$rightSelectedItem) {\n    this.$rightSelectedItem.removeClass('as-selected');\n  }\n\n  this.$rightSelectedItem = this.$rightItemByValue[this.box._value[1]] || null;\n\n  if (this.$rightSelectedItem) {\n    this.$rightSelectedItem.addClass('as-selected');\n  }\n};\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/DualSelectBox.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/DualSelectMenu.js":
/*!*******************************************************!*\
  !*** ./node_modules/absol-acomp/js/DualSelectMenu.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _DualSelectBox = _interopRequireDefault(__webpack_require__(/*! ./DualSelectBox */ \"./node_modules/absol-acomp/js/DualSelectBox.js\"));\n\nvar _Dom = __webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\");\n\nvar _EventEmitter = __webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\");\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction DualSelectMenu() {\n  this._format = '$0, $1';\n  /***\r\n   * @type {DualSelectBox}\r\n   */\n\n  this.$box = (0, _ACore._)({\n    tag: _DualSelectBox[\"default\"].tag,\n    props: {\n      anchor: [1, 6, 2, 5]\n    },\n    on: {\n      preupdateposition: this.eventHandler.preUpdatePosition,\n      change: this.eventHandler.boxChange,\n      close: this.eventHandler.boxClose\n    }\n  });\n  this.$item = (0, _ACore.$)('.absol-selectlist-item', this);\n  this.on('click', this.eventHandler.click);\n\n  _OOP[\"default\"].drillProperty(this, this.$box, 'enableSearch');\n  /***\r\n   * @name strictValue\r\n   * @type {boolean}\r\n   * @memberOf DualSelectMenu#\r\n   */\n\n  /***\r\n   * @name readOnly\r\n   * @type {boolean}\r\n   * @memberOf DualSelectMenu#\r\n   */\n\n  /***\r\n   * @name disabled\r\n   * @type {boolean}\r\n   * @memberOf DualSelectMenu#\r\n   */\n\n}\n\nDualSelectMenu.tag = 'DualSelectMenu'.toLowerCase();\n\nDualSelectMenu.render = function () {\n  return (0, _ACore._)({\n    \"class\": ['absol-selectmenu', 'as-dual-select-menu'],\n    extendEvent: ['change'],\n    attr: {\n      tabindex: '1'\n    },\n    child: [{\n      \"class\": 'absol-selectmenu-holder-item',\n      child: '.absol-selectlist-item'\n    }, {\n      tag: 'button',\n      \"class\": 'absol-selectmenu-btn',\n      child: ['dropdown-ico']\n    }, 'attachhook']\n  });\n};\n\nDualSelectMenu.prototype._updateViewValue = function () {\n  var format = this._format;\n  var value = this.$box.value || [null, null];\n  var strictValue = this.strictValue;\n  var hbv = this.$box.holderByValue;\n  var firstToken = '__';\n  var secToken = '__';\n  var firstHolder = hbv[value[0]];\n  var sectHolder;\n\n  if (firstHolder) {\n    firstToken = firstHolder.item.text;\n    sectHolder = firstHolder.child[value[1]];\n    if (sectHolder) secToken = sectHolder.item.text;\n  }\n\n  var text = format.replace('$0', firstToken).replace('$1', secToken);\n  this.$item.clearChild().addChild((0, _ACore._)({\n    tag: 'span',\n    \"class\": ['as-selectlist-item-text', 'absol-selectlist-item-text'],\n    child: {\n      text: text\n    }\n  }));\n};\n\nDualSelectMenu.property = {};\nDualSelectMenu.property.isFocus = {\n  /***\r\n   * @this DualSelectMenu\r\n   * @param value\r\n   */\n  set: function set(value) {\n    var self = this;\n    value = !!value;\n    if (value && (this.disabled || this.readOnly)) return;\n    if (this.hasClass('as-focus') === value) return;\n\n    if (value) {\n      this._prevValue = (this.$box.value || [null, null]).join('//');\n      this.addClass('as-focus');\n      this.off('click', this.eventHandler.click);\n      this.$box.followTarget = this;\n      this.$box.addTo(document.body);\n      this.$box.updatePosition();\n      this.$box.scrollIntoSelected();\n      setTimeout(function () {\n        self.$box.focus();\n        document.addEventListener('click', self.eventHandler.clickOut);\n      }, 10);\n    } else {\n      this.removeClass('as-focus');\n      this.$box.remove();\n      this.$box.resetSearchState();\n      document.removeEventListener('click', self.eventHandler.clickOut);\n      setTimeout(function () {\n        self.on('click', self.eventHandler.click);\n      }, 10);\n\n      if ((this.$box.value || [null, null]).join('//') !== this._prevValue) {\n        this._updateViewValue();\n\n        this.emit('change', {\n          type: 'change',\n          target: this\n        }, this);\n      }\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-focus');\n  }\n};\n/****\r\n * @memberOf DualSelectMenu#\r\n * @type {{}}\r\n */\n\nDualSelectMenu.eventHandler = {};\nDualSelectMenu.property.items = {\n  /***\r\n   * @this DualSelectMenu\r\n   * @param items\r\n   */\n  set: function set(items) {\n    this.$box.items = items;\n    this.addStyle('--dual-list-estimate-text-width', this.$box.estimateSize.textWidth + 'px');\n\n    this._updateViewValue();\n  },\n  get: function get() {\n    return this.$box.items;\n  }\n};\nDualSelectMenu.property.value = {\n  set: function set(value) {\n    this.$box.value = value;\n\n    this._updateViewValue();\n  },\n  get: function get() {\n    return this.$box.value;\n  }\n};\nDualSelectMenu.property.strictValue = {\n  set: function set(value) {\n    this.$box.strictValue = value;\n\n    this._updateViewValue();\n  },\n  get: function get() {\n    return this.$box.strictValue;\n  }\n};\nDualSelectMenu.property.format = {\n  set: function set(value) {\n    this._format = value || '$0, $1';\n\n    this._updateViewValue();\n  },\n  get: function get() {\n    return this._format;\n  }\n};\nDualSelectMenu.property.readOnly = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-read-only');\n    } else {\n      this.removeClass('as-read-only');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-read-only');\n  }\n};\nDualSelectMenu.property.disabled = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-disabled');\n    } else {\n      this.removeClass('as-disabled');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-disabled');\n  }\n};\n/**\r\n * @this DualSelectMenu\r\n */\n\nDualSelectMenu.eventHandler.click = function () {\n  if (this.readOnly) return;\n  this.isFocus = true;\n};\n/**\r\n * @this DualSelectMenu\r\n */\n\n\nDualSelectMenu.eventHandler.clickOut = function (event) {\n  if ((0, _EventEmitter.hitElement)(this.$box, event)) return;\n  this.isFocus = false;\n};\n/***\r\n * @this DualSelectMenu\r\n */\n\n\nDualSelectMenu.eventHandler.preUpdatePosition = function () {\n  var bound = this.getBoundingClientRect();\n  var screenSize = (0, _Dom.getScreenSize)();\n  var availableTop = bound.top - 5;\n  var availableBot = screenSize.height - 5 - bound.bottom;\n  this.$box.addStyle('--max-height', Math.max(availableBot, availableTop) + 'px');\n  var outBound = (0, _Dom.traceOutBoundingClientRect)(this);\n\n  if (bound.bottom < outBound.top || bound.top > outBound.bottom || bound.right < outBound.left || bound.left > outBound.right) {\n    this.isFocus = false;\n  }\n};\n\nDualSelectMenu.eventHandler.boxChange = function () {\n  this._updateViewValue();\n};\n\nDualSelectMenu.eventHandler.boxClose = function () {\n  this.isFocus = false;\n};\n\n_ACore[\"default\"].install(DualSelectMenu);\n\nvar _default = DualSelectMenu;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/DualSelectMenu.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/EditableText.js":
/*!*****************************************************!*\
  !*** ./node_modules/absol-acomp/js/EditableText.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/editabletext.css */ \"./node_modules/absol-acomp/css/editabletext.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction EditableText() {\n  var thisET = this;\n  this.$span = $('span', this);\n  this.$text = document.createTextNode('');\n  this.$span.addChild(this.$text);\n  this.$higne = $('.absol-editabe-text-higne', this);\n  this.$input = $('input', this);\n\n  _OOP[\"default\"].drillProperty(this, this.$input, ['selectionStart', 'selectionEnd']);\n\n  this.sync = new Promise(function (rs) {\n    _('attachhook').addTo(thisET).once('error', rs);\n  });\n  this.$input.on('keydown', this.eventHandler.inputKeyDown, true);\n  this.$input.on('change', this.eventHandler.inputChange);\n  this.$input.on('blur', this.eventHandler.inputBlur);\n}\n\n;\nEditableText.tag = 'EditableText'.toLowerCase();\n\nEditableText.render = function () {\n  return _({\n    \"class\": 'absol-editabe-text',\n    extendEvent: ['blur', 'focus', 'change', 'modify'],\n    child: [{\n      \"class\": 'absol-editabe-text-higne',\n      child: '<input type=\"text\">'\n    }, 'span']\n  });\n};\n\nEditableText.prototype.focus = function () {\n  this.$input.focus();\n};\n\nEditableText.prototype.blur = function () {\n  this.$input.blur();\n};\n\nEditableText.prototype.select = function () {\n  this.$input.select();\n};\n\nEditableText.prototype.edit = function (flag, select) {\n  this.editing = !!flag;\n  this.sync = this.sync.then(function () {\n    if (flag) {\n      this.focus();\n      if (select) this.select();\n    } else this.blur();\n  }.bind(this));\n  return this.sync;\n};\n\nEditableText.prototype._update = function () {\n  this.sync = this.sync.then(function () {\n    return new Promise(function (rs) {\n      // setTimeout(function () {\n      var bound = this.getBoundingClientRect();\n      var higneBound = this.$higne.getBoundingClientRect();\n      var fsize = this.getFontSize();\n      this.$input.addStyle('width', bound.width + 4 + fsize * 0 + 'px');\n      this.$input.addStyle('height', bound.height + 4 + 'px');\n      this.$input.addStyle('left', bound.left - higneBound.left - 2 + 'px');\n      this.$input.addStyle('top', bound.top - higneBound.top + 'px');\n      rs();\n    }.bind(this));\n  }.bind(this));\n};\n\nEditableText.property = {};\nEditableText.property.text = {\n  set: function set(value) {\n    this.$text.textContent = value;\n    this.$input.value = value;\n  },\n  get: function get() {\n    return this.$text.textContent;\n  }\n};\nEditableText.property.editing = {\n  set: function set(value) {\n    if (this._editting === value) return;\n    this._editting = !!value;\n\n    if (value) {\n      this.$input.value = this.text;\n\n      this._update();\n\n      this.sync = this.sync.then(function () {\n        this.addClass('editing');\n        this.$input.value = this.text;\n        this.$input.addStyle('font', this.$span.getComputedStyleValue('font'));\n        this.$input.addStyle('font-style', this.$span.getComputedStyleValue('font-style'));\n        this.$input.addStyle('color', this.$span.getComputedStyleValue('color'));\n      }.bind(this));\n    } else {\n      this.removeClass('editing');\n    }\n  },\n  get: function get() {\n    return !!this._editting;\n  }\n};\nEditableText.eventHandler = {};\n\nEditableText.eventHandler.inputKeyDown = function (event) {\n  requestAnimationFrame(function () {\n    this.text = this.$input.value;\n\n    this._update();\n\n    event.text = this.text;\n    this.emit('modify', event);\n  }.bind(this));\n};\n\nEditableText.eventHandler.inputChange = function (event) {\n  this.editing = false;\n  this.emit('change', event);\n};\n\nEditableText.eventHandler.inputBlur = function (event) {\n  this.editing = false;\n  this.emit('blur', event);\n};\n\n_ACore[\"default\"].install(EditableText);\n\nvar _default = EditableText;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/EditableText.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/EmojiAnims.js":
/*!***************************************************!*\
  !*** ./node_modules/absol-acomp/js/EmojiAnims.js ***!
  \***************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = exports.EmojiAnimByIdent = void 0;\nvar EmojiAnims = [[\"(heart)\", \"heart.png\", \"Heart\"], [\"(cool)\", \"cool.png\", \"Cool\"], [\"(hearteyes)\", \"hearteyes.png\", \"Heart eyes\"], [\"(stareyes)\", \"stareyes.png\", \"Star eyes\"], [\"(like)\", \"like.png\", \"Like\"], [\"(unamused)\", \"unamused.png\", \"Unamused\"], [\"(cwl)\", \"cwl.png\", \"Crying with laughter\"], [\"(xd)\", \"xd.png\", \"XD smiley\"], [\":)\", \"smile.png\", \"Smile\"], [\":(\", \"sad.png\", \"Sad\"], [\":D\", \"laugh.png\", \"Laugh\"], [\":O\", \"surprised.png\", \"Surprised\"], [\";)\", \"wink.png\", \"Wink\"], [\";(\", \"cry.png\", \"Crying\"], [\"(shivering)\", \"shivering.png\", \"Cold shivering\"], [\"(:|\", \"sweat.png\", \"Sweating\"], [\":|\", \"speechless.png\", \"Speechless\"], [\":P\", \"tongueout.png\", \"Cheeky\"], [\":$\", \"blush.png\", \"Blushing\"], [\"(inlove)\", \"inlove.png\", \"In love\"], [\"(kiss)\", \"kiss.png\", \"Kiss\"], [\":^)\", \"wonder.png\", \"Wondering\"], [\"|-)\", \"sleepy.png\", \"Sleepy\"], [\"|-(\", \"dull.png\", \"Dull\"], [\"(yawn)\", \"yawn.png\", \"Yawn\"], [\"(puke)\", \"puke.png\", \"Vomiting\"], [\"(doh)\", \"doh.png\", \"Doh!\"], [\"(angry)\", \"angry.png\", \"Angry\"], [\"(wasntme)\", \"wasntme.png\", \"It wasn't me!\"], [\"(worry)\", \"worry.png\", \"Worried\"], [\"(mm)\", \"mmm.png\", \"Mmmmm…\"], [\"(nerd)\", \"nerdy.png\", \"Nerdy\"], [\"(rainbowsmile)\", \"rainbowsmile.png\", \"Rainbow smile\"], [\":x\", \"lipssealed.png\", \"My lips are sealed\"], [\"(devil)\", \"devil.png\", \"Devil\"], [\"(angel)\", \"angel.png\", \"Angel\"], [\"(envy)\", \"envy.png\", \"Envy\"], [\"(makeup)\", \"makeup.png\", \"Make-up\"], [\"(think)\", \"think.png\", \"Thinking\"], [\"(rofl)\", \"rofl.png\", \"Rolling on the floor laughing\"], [\"(happy)\", \"happy.png\", \"Happy\"], [\"(smirk)\", \"smirk.png\", \"Smirking\"], [\"(nod)\", \"nod.png\", \"Nodding\"], [\"(shake)\", \"shake.png\", \"Shake\"], [\"(waiting)\", \"waiting.png\", \"Waiting\"], [\"(emo)\", \"emo.png\", \"Emo\"], [\"(donttalk)\", \"donttalktome.png\", \"Don't talk to me\"], [\"(idea)\", \"idea.png\", \"Idea\"], [\"(talk)\", \"talk.png\", \"Talking\"], [\"(swear)\", \"swear.png\", \"Swearing\"], [\"]:)\", \"evilgrin.png\", \"Evil grin\"], [\"(headbang)\", \"headbang.png\", \"Banging head on wall\"], [\"(learn)\", \"learn.png\", \"Global Learning\"], [\"(headphones)\", \"headphones.png\", \"Listening to headphones\"], [\"(morningafter)\", \"hungover.png\", \"Morning after party\"], [\"(selfie)\", \"selfie.png\", \"Selfie\"], [\"(shock)\", \"shock.png\", \"Spoiler alert\"], [\"(llsshock)\", \"llsshock.png\", \"Spoiler alert\"], [\"(ttm)\", \"ttm.png\", \"Talking too much\"], [\"(dream)\", \"dream.png\", \"Dreaming\"], [\"(ill)\", \"ill.png\", \"Ill\"], [\"(tired)\", \"tired.png\", \"Tired\"], [\"(party)\", \"party.png\", \"Party\"], [\"(bandit)\", \"bandit.png\", \"Bandit\"], [\"(tauri)\", \"tauri.png\", \"Bald man with glasses\"], [\"(nazar)\", \"nazar.png\", \"Blessing\"], [\"(movember)\", \"movember.png\", \"Movember\"], [\"(mysteryskype)\", \"mysteryskype.png\", \"Mystery Skype\"], [\"(dotdfemale)\", \"dotdfemale.png\", \"Day of the dead\"], [\"(dotdmale)\", \"dotdmale.png\", \"Day of the dead\"], [\"(selfiediwali)\", \"selfiediwali.png\", \"Selfie Diwali\"], [\"(diwaliselfie)\", \"diwaliselfie.png\", \"Diwali selfie\"], [\"(steveaoki)\", \"steveaoki.png\", \"Steve Aoki\"], [\"(aokijump)\", \"aokijump.png\", \"Aoki jump\"], [\"(cakethrow)\", \"cakethrow.png\", \"Cake throw\"], [\"(kolony)\", \"kolony.png\", \"Kolony\"], [\"(joy)\", \"joy.png\", \"Joy\"], [\"(anger)\", \"anger.png\", \"Anger\"], [\"(sadness)\", \"sadness.png\", \"Sadness\"], [\"(disgust)\", \"disgust.png\", \"Disgust\"], [\"(fear)\", \"fear.png\", \"Fear\"], [\"(hestonfacepalm)\", \"hestonfacepalm.png\", \"Heston facepalm\"], [\"(heston)\", \"heston.png\", \"Heston Blumenthal\"], [\"(stormtrooper)\", \"stormtrooper.png\", \"Storm trooper\"], [\"(kyloren)\", \"kyloren.png\", \"Kylo Ren\"], [\"(captainphasma)\", \"captainphasma.png\", \"Captain Phasma\"], [\"(malthe)\", \"malthe.png\", \"Smiling man with glasses\"], [\"(ladyvamp)\", \"ladyvampire.png\", \"Lady vampire\"], [\"(vampire)\", \"vampire.png\", \"Vampire\"], [\"(ghost)\", \"ghost.png\", \"Ghost\"], [\"(skull)\", \"skull.png\", \"Skull\"], [\"(pumpkin)\", \"pumpkin.png\", \"Pumpkin\"], [\"(santa)\", \"santa.png\", \"Santa\"], [\"(xmascwl)\", \"xmascwl.png\", \"Xmas crying with laughter\"], [\"(festiveparty)\", \"festiveparty.png\", \"Festive party\"], [\"(holidayspirit)\", \"holidayspirit.png\", \"Holiday spirit\"], [\"(rudolfsurprise)\", \"rudolfsurprise.png\", \"Surprised Rudolf\"], [\"(rudolfidea)\", \"rudolfidea.png\", \"Rudolf idea\"], [\"(wtf)\", \"wtf.png\", \"WTF…\"], [\"(smoking)\", \"smoke.png\", \"Smoking\"], [\"(drunk)\", \"drunk.png\", \"Drunk\"], [\"(finger)\", \"finger.png\", \"Finger\"], [\"(oliver)\", \"oliver.png\", \"Man saying come on\"], [\"(xmassarcastic)\", \"xmassarcastic.png\", \"Xmas sarcastic\"], [\"(xmascry)\", \"xmascry.png\", \"Xmas cry\"], [\"(wave)\", \"hi.png\", \"Hi\"], [\"(highfive)\", \"highfive.png\", \"High five\"], [\"(clap)\", \"clap.png\", \"Clapping\"], [\"(sarcastic)\", \"sarcastic.png\", \"Sarcastic\"], [\"(chuckle)\", \"giggle.png\", \"Giggle\"], [\"(facepalm)\", \"facepalm.png\", \"Facepalm\"], [\"(rock)\", \"rock.png\", \"Rock\"], [\"(yn)\", \"fingerscrossed.png\", \"Fingers crossed\"], [\"(listening)\", \"listening.png\", \"Listening\"], [\"(wait)\", \"wait.png\", \"Wait\"], [\"(whew)\", \"whew.png\", \"Relieved\"], [\"(tmi)\", \"tmi.png\", \"Too much information\"], [\"(call)\", \"call.png\", \"Call\"], [\"(punch)\", \"punch.png\", \"Punch\"], [\"(talktothehand)\", \"talktothehand.png\", \"Talk to the hand\"], [\"(whistle)\", \"whistle.png\", \"Whistle\"], [\"(slap)\", \"slap.png\", \"Slap\"], [\"(lalala)\", \"lalala.png\", \"Lalala\"], [\"(y)\", \"yes.png\", \"Yes\"], [\"(n)\", \"no.png\", \"No\"], [\"(handshake)\", \"handshake.png\", \"Handshake\"], [\"(fistbump)\", \"fistbump.png\", \"Fist bump\"], [\"(poke)\", \"poke.png\", \"Poke\"], [\"(celebrate)\", \"handsinair.png\", \"Hands celebrating\"], [\"(hearthands)\", \"hearthands.png\", \"Heart hands\"], [\"(victory)\", \"victory.png\", \"Victory sign\"], [\"(noworries)\", \"noworries.png\", \"No worries\"], [\"(ok)\", \"ok.png\", \"OK\"], [\"(pray)\", \"praying.png\", \"Praying\"], [\"(flex)\", \"muscle.png\", \"Muscle\"], [\"(ek)\", \"naturescall.png\", \"Nature's call\"], [\"(woty)\", \"woty.png\", \"Woman of the year\"], [\"(glassceiling)\", \"glassceiling.png\", \"Glass ceiling\"], [\"(deadyes)\", \"deadyes.png\", \"Dead yes\"], [\"(xmasyes)\", \"xmasyes.png\", \"Xmas yes\"], [\"(dropthemic)\", \"dropthemic.png\", \"Drop the mic\"]];\nvar _default = EmojiAnims;\nexports[\"default\"] = _default;\nvar EmojiAnimByIdent = EmojiAnims.reduce(function (ac, cr) {\n  ac[cr[0]] = cr;\n  return ac;\n}, {});\nexports.EmojiAnimByIdent = EmojiAnimByIdent;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/EmojiAnims.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/EmojiChars.js":
/*!***************************************************!*\
  !*** ./node_modules/absol-acomp/js/EmojiChars.js ***!
  \***************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\nvar EmojiChars = [[\"Smileys & Emotion\", [[\"face-smiling\", [[[\"U+1F600\"], \"😀\", \"grinning face\"], [[\"U+1F603\"], \"😃\", \"grinning face with big eyes\"], [[\"U+1F604\"], \"😄\", \"grinning face with smiling eyes\"], [[\"U+1F601\"], \"😁\", \"beaming face with smiling eyes\"], [[\"U+1F606\"], \"😆\", \"grinning squinting face\"], [[\"U+1F605\"], \"😅\", \"grinning face with sweat\"], [[\"U+1F923\"], \"🤣\", \"rolling on the floor laughing\"], [[\"U+1F602\"], \"😂\", \"face with tears of joy\"], [[\"U+1F642\"], \"🙂\", \"slightly smiling face\"], [[\"U+1F643\"], \"🙃\", \"upside-down face\"], [[\"U+1F609\"], \"😉\", \"winking face\"], [[\"U+1F60A\"], \"😊\", \"smiling face with smiling eyes\"], [[\"U+1F607\"], \"😇\", \"smiling face with halo\"]]], [\"face-affection\", [[[\"U+1F970\"], \"🥰\", \"smiling face with hearts\"], [[\"U+1F60D\"], \"😍\", \"smiling face with heart-eyes\"], [[\"U+1F929\"], \"🤩\", \"star-struck\"], [[\"U+1F618\"], \"😘\", \"face blowing a kiss\"], [[\"U+1F617\"], \"😗\", \"kissing face\"], [[\"U+263A\"], \"☺\", \"smiling face\"], [[\"U+1F61A\"], \"😚\", \"kissing face with closed eyes\"], [[\"U+1F619\"], \"😙\", \"kissing face with smiling eyes\"], [[\"U+1F972\"], \"🥲\", \"⊛ smiling face with tear\"]]], [\"face-tongue\", [[[\"U+1F60B\"], \"😋\", \"face savoring food\"], [[\"U+1F61B\"], \"😛\", \"face with tongue\"], [[\"U+1F61C\"], \"😜\", \"winking face with tongue\"], [[\"U+1F92A\"], \"🤪\", \"zany face\"], [[\"U+1F61D\"], \"😝\", \"squinting face with tongue\"], [[\"U+1F911\"], \"🤑\", \"money-mouth face\"]]], [\"face-hand\", [[[\"U+1F917\"], \"🤗\", \"hugging face\"], [[\"U+1F92D\"], \"🤭\", \"face with hand over mouth\"], [[\"U+1F92B\"], \"🤫\", \"shushing face\"], [[\"U+1F914\"], \"🤔\", \"thinking face\"]]], [\"face-neutral-skeptical\", [[[\"U+1F910\"], \"🤐\", \"zipper-mouth face\"], [[\"U+1F928\"], \"🤨\", \"face with raised eyebrow\"], [[\"U+1F610\"], \"😐\", \"neutral face\"], [[\"U+1F611\"], \"😑\", \"expressionless face\"], [[\"U+1F636\"], \"😶\", \"face without mouth\"], [[\"U+1F60F\"], \"😏\", \"smirking face\"], [[\"U+1F612\"], \"😒\", \"unamused face\"], [[\"U+1F644\"], \"🙄\", \"face with rolling eyes\"], [[\"U+1F62C\"], \"😬\", \"grimacing face\"], [[\"U+1F925\"], \"🤥\", \"lying face\"]]], [\"face-sleepy\", [[[\"U+1F60C\"], \"😌\", \"relieved face\"], [[\"U+1F614\"], \"😔\", \"pensive face\"], [[\"U+1F62A\"], \"😪\", \"sleepy face\"], [[\"U+1F924\"], \"🤤\", \"drooling face\"], [[\"U+1F634\"], \"😴\", \"sleeping face\"]]], [\"face-unwell\", [[[\"U+1F637\"], \"😷\", \"face with medical mask\"], [[\"U+1F912\"], \"🤒\", \"face with thermometer\"], [[\"U+1F915\"], \"🤕\", \"face with head-bandage\"], [[\"U+1F922\"], \"🤢\", \"nauseated face\"], [[\"U+1F92E\"], \"🤮\", \"face vomiting\"], [[\"U+1F927\"], \"🤧\", \"sneezing face\"], [[\"U+1F975\"], \"🥵\", \"hot face\"], [[\"U+1F976\"], \"🥶\", \"cold face\"], [[\"U+1F974\"], \"🥴\", \"woozy face\"], [[\"U+1F635\"], \"😵\", \"dizzy face\"], [[\"U+1F92F\"], \"🤯\", \"exploding head\"]]], [\"face-hat\", [[[\"U+1F920\"], \"🤠\", \"cowboy hat face\"], [[\"U+1F973\"], \"🥳\", \"partying face\"], [[\"U+1F978\"], \"🥸\", \"⊛ disguised face\"]]], [\"face-glasses\", [[[\"U+1F60E\"], \"😎\", \"smiling face with sunglasses\"], [[\"U+1F913\"], \"🤓\", \"nerd face\"], [[\"U+1F9D0\"], \"🧐\", \"face with monocle\"]]], [\"face-concerned\", [[[\"U+1F615\"], \"😕\", \"confused face\"], [[\"U+1F61F\"], \"😟\", \"worried face\"], [[\"U+1F641\"], \"🙁\", \"slightly frowning face\"], [[\"U+2639\"], \"☹\", \"frowning face\"], [[\"U+1F62E\"], \"😮\", \"face with open mouth\"], [[\"U+1F62F\"], \"😯\", \"hushed face\"], [[\"U+1F632\"], \"😲\", \"astonished face\"], [[\"U+1F633\"], \"😳\", \"flushed face\"], [[\"U+1F97A\"], \"🥺\", \"pleading face\"], [[\"U+1F626\"], \"😦\", \"frowning face with open mouth\"], [[\"U+1F627\"], \"😧\", \"anguished face\"], [[\"U+1F628\"], \"😨\", \"fearful face\"], [[\"U+1F630\"], \"😰\", \"anxious face with sweat\"], [[\"U+1F625\"], \"😥\", \"sad but relieved face\"], [[\"U+1F622\"], \"😢\", \"crying face\"], [[\"U+1F62D\"], \"😭\", \"loudly crying face\"], [[\"U+1F631\"], \"😱\", \"face screaming in fear\"], [[\"U+1F616\"], \"😖\", \"confounded face\"], [[\"U+1F623\"], \"😣\", \"persevering face\"], [[\"U+1F61E\"], \"😞\", \"disappointed face\"], [[\"U+1F613\"], \"😓\", \"downcast face with sweat\"], [[\"U+1F629\"], \"😩\", \"weary face\"], [[\"U+1F62B\"], \"😫\", \"tired face\"], [[\"U+1F971\"], \"🥱\", \"yawning face\"]]], [\"face-negative\", [[[\"U+1F624\"], \"😤\", \"face with steam from nose\"], [[\"U+1F621\"], \"😡\", \"pouting face\"], [[\"U+1F620\"], \"😠\", \"angry face\"], [[\"U+1F92C\"], \"🤬\", \"face with symbols on mouth\"], [[\"U+1F608\"], \"😈\", \"smiling face with horns\"], [[\"U+1F47F\"], \"👿\", \"angry face with horns\"], [[\"U+1F480\"], \"💀\", \"skull\"], [[\"U+2620\"], \"☠\", \"skull and crossbones\"]]], [\"face-costume\", [[[\"U+1F4A9\"], \"💩\", \"pile of poo\"], [[\"U+1F921\"], \"🤡\", \"clown face\"], [[\"U+1F479\"], \"👹\", \"ogre\"], [[\"U+1F47A\"], \"👺\", \"goblin\"], [[\"U+1F47B\"], \"👻\", \"ghost\"], [[\"U+1F47D\"], \"👽\", \"alien\"], [[\"U+1F47E\"], \"👾\", \"alien monster\"], [[\"U+1F916\"], \"🤖\", \"robot\"]]], [\"cat-face\", [[[\"U+1F63A\"], \"😺\", \"grinning cat\"], [[\"U+1F638\"], \"😸\", \"grinning cat with smiling eyes\"], [[\"U+1F639\"], \"😹\", \"cat with tears of joy\"], [[\"U+1F63B\"], \"😻\", \"smiling cat with heart-eyes\"], [[\"U+1F63C\"], \"😼\", \"cat with wry smile\"], [[\"U+1F63D\"], \"😽\", \"kissing cat\"], [[\"U+1F640\"], \"🙀\", \"weary cat\"], [[\"U+1F63F\"], \"😿\", \"crying cat\"], [[\"U+1F63E\"], \"😾\", \"pouting cat\"]]], [\"monkey-face\", [[[\"U+1F648\"], \"🙈\", \"see-no-evil monkey\"], [[\"U+1F649\"], \"🙉\", \"hear-no-evil monkey\"], [[\"U+1F64A\"], \"🙊\", \"speak-no-evil monkey\"]]], [\"emotion\", [[[\"U+1F48B\"], \"💋\", \"kiss mark\"], [[\"U+1F48C\"], \"💌\", \"love letter\"], [[\"U+1F498\"], \"💘\", \"heart with arrow\"], [[\"U+1F49D\"], \"💝\", \"heart with ribbon\"], [[\"U+1F496\"], \"💖\", \"sparkling heart\"], [[\"U+1F497\"], \"💗\", \"growing heart\"], [[\"U+1F493\"], \"💓\", \"beating heart\"], [[\"U+1F49E\"], \"💞\", \"revolving hearts\"], [[\"U+1F495\"], \"💕\", \"two hearts\"], [[\"U+1F49F\"], \"💟\", \"heart decoration\"], [[\"U+2763\"], \"❣\", \"heart exclamation\"], [[\"U+1F494\"], \"💔\", \"broken heart\"], [[\"U+2764\"], \"❤\", \"red heart\"], [[\"U+1F9E1\"], \"🧡\", \"orange heart\"], [[\"U+1F49B\"], \"💛\", \"yellow heart\"], [[\"U+1F49A\"], \"💚\", \"green heart\"], [[\"U+1F499\"], \"💙\", \"blue heart\"], [[\"U+1F49C\"], \"💜\", \"purple heart\"], [[\"U+1F90E\"], \"🤎\", \"brown heart\"], [[\"U+1F5A4\"], \"🖤\", \"black heart\"], [[\"U+1F90D\"], \"🤍\", \"white heart\"], [[\"U+1F4AF\"], \"💯\", \"hundred points\"], [[\"U+1F4A2\"], \"💢\", \"anger symbol\"], [[\"U+1F4A5\"], \"💥\", \"collision\"], [[\"U+1F4AB\"], \"💫\", \"dizzy\"], [[\"U+1F4A6\"], \"💦\", \"sweat droplets\"], [[\"U+1F4A8\"], \"💨\", \"dashing away\"], [[\"U+1F573\"], \"🕳\", \"hole\"], [[\"U+1F4A3\"], \"💣\", \"bomb\"], [[\"U+1F4AC\"], \"💬\", \"speech balloon\"], [[\"U+1F441\", \"U+FE0F\", \"U+200D\", \"U+1F5E8\", \"U+FE0F\"], \"👁️‍🗨️\", \"eye in speech bubble\"], [[\"U+1F5E8\"], \"🗨\", \"left speech bubble\"], [[\"U+1F5EF\"], \"🗯\", \"right anger bubble\"], [[\"U+1F4AD\"], \"💭\", \"thought balloon\"], [[\"U+1F4A4\"], \"💤\", \"zzz\"]]]]], [\"People & Body\", [[\"hand-fingers-open\", [[[\"U+1F44B\"], \"👋\", \"waving hand\"], [[\"U+1F91A\"], \"🤚\", \"raised back of hand\"], [[\"U+1F590\"], \"🖐\", \"hand with fingers splayed\"], [[\"U+270B\"], \"✋\", \"raised hand\"], [[\"U+1F596\"], \"🖖\", \"vulcan salute\"]]], [\"hand-fingers-partial\", [[[\"U+1F44C\"], \"👌\", \"OK hand\"], [[\"U+1F90C\"], \"🤌\", \"⊛ pinched fingers\"], [[\"U+1F90F\"], \"🤏\", \"pinching hand\"], [[\"U+270C\"], \"✌\", \"victory hand\"], [[\"U+1F91E\"], \"🤞\", \"crossed fingers\"], [[\"U+1F91F\"], \"🤟\", \"love-you gesture\"], [[\"U+1F918\"], \"🤘\", \"sign of the horns\"], [[\"U+1F919\"], \"🤙\", \"call me hand\"]]], [\"hand-single-finger\", [[[\"U+1F448\"], \"👈\", \"backhand index pointing left\"], [[\"U+1F449\"], \"👉\", \"backhand index pointing right\"], [[\"U+1F446\"], \"👆\", \"backhand index pointing up\"], [[\"U+1F595\"], \"🖕\", \"middle finger\"], [[\"U+1F447\"], \"👇\", \"backhand index pointing down\"], [[\"U+261D\"], \"☝\", \"index pointing up\"]]], [\"hand-fingers-closed\", [[[\"U+1F44D\"], \"👍\", \"thumbs up\"], [[\"U+1F44E\"], \"👎\", \"thumbs down\"], [[\"U+270A\"], \"✊\", \"raised fist\"], [[\"U+1F44A\"], \"👊\", \"oncoming fist\"], [[\"U+1F91B\"], \"🤛\", \"left-facing fist\"], [[\"U+1F91C\"], \"🤜\", \"right-facing fist\"]]], [\"hands\", [[[\"U+1F44F\"], \"👏\", \"clapping hands\"], [[\"U+1F64C\"], \"🙌\", \"raising hands\"], [[\"U+1F450\"], \"👐\", \"open hands\"], [[\"U+1F932\"], \"🤲\", \"palms up together\"], [[\"U+1F91D\"], \"🤝\", \"handshake\"], [[\"U+1F64F\"], \"🙏\", \"folded hands\"]]], [\"hand-prop\", [[[\"U+270D\"], \"✍\", \"writing hand\"], [[\"U+1F485\"], \"💅\", \"nail polish\"], [[\"U+1F933\"], \"🤳\", \"selfie\"]]], [\"body-parts\", [[[\"U+1F4AA\"], \"💪\", \"flexed biceps\"], [[\"U+1F9BE\"], \"🦾\", \"mechanical arm\"], [[\"U+1F9BF\"], \"🦿\", \"mechanical leg\"], [[\"U+1F9B5\"], \"🦵\", \"leg\"], [[\"U+1F9B6\"], \"🦶\", \"foot\"], [[\"U+1F442\"], \"👂\", \"ear\"], [[\"U+1F9BB\"], \"🦻\", \"ear with hearing aid\"], [[\"U+1F443\"], \"👃\", \"nose\"], [[\"U+1F9E0\"], \"🧠\", \"brain\"], [[\"U+1F9B7\"], \"🦷\", \"tooth\"], [[\"U+1F9B4\"], \"🦴\", \"bone\"], [[\"U+1F440\"], \"👀\", \"eyes\"], [[\"U+1F441\"], \"👁\", \"eye\"], [[\"U+1F445\"], \"👅\", \"tongue\"], [[\"U+1F444\"], \"👄\", \"mouth\"]]], [\"person\", [[[\"U+1F476\"], \"👶\", \"baby\"], [[\"U+1F9D2\"], \"🧒\", \"child\"], [[\"U+1F466\"], \"👦\", \"boy\"], [[\"U+1F467\"], \"👧\", \"girl\"], [[\"U+1F9D1\"], \"🧑\", \"person\"], [[\"U+1F471\"], \"👱\", \"person: blond hair\"], [[\"U+1F468\"], \"👨\", \"man\"], [[\"U+1F9D4\"], \"🧔\", \"man: beard\"], [[\"U+1F468\", \"U+200D\", \"U+1F9B0\"], \"👨‍🦰\", \"man: red hair\"], [[\"U+1F468\", \"U+200D\", \"U+1F9B1\"], \"👨‍🦱\", \"man: curly hair\"], [[\"U+1F468\", \"U+200D\", \"U+1F9B3\"], \"👨‍🦳\", \"man: white hair\"], [[\"U+1F468\", \"U+200D\", \"U+1F9B2\"], \"👨‍🦲\", \"man: bald\"], [[\"U+1F469\"], \"👩\", \"woman\"], [[\"U+1F469\", \"U+200D\", \"U+1F9B0\"], \"👩‍🦰\", \"woman: red hair\"], [[\"U+1F9D1\", \"U+200D\", \"U+1F9B0\"], \"🧑‍🦰\", \"person: red hair\"], [[\"U+1F469\", \"U+200D\", \"U+1F9B1\"], \"👩‍🦱\", \"woman: curly hair\"], [[\"U+1F9D1\", \"U+200D\", \"U+1F9B1\"], \"🧑‍🦱\", \"person: curly hair\"], [[\"U+1F469\", \"U+200D\", \"U+1F9B3\"], \"👩‍🦳\", \"woman: white hair\"], [[\"U+1F9D1\", \"U+200D\", \"U+1F9B3\"], \"🧑‍🦳\", \"person: white hair\"], [[\"U+1F469\", \"U+200D\", \"U+1F9B2\"], \"👩‍🦲\", \"woman: bald\"], [[\"U+1F9D1\", \"U+200D\", \"U+1F9B2\"], \"🧑‍🦲\", \"person: bald\"], [[\"U+1F471\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"👱‍♀️\", \"woman: blond hair\"], [[\"U+1F471\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"👱‍♂️\", \"man: blond hair\"], [[\"U+1F9D3\"], \"🧓\", \"older person\"], [[\"U+1F474\"], \"👴\", \"old man\"], [[\"U+1F475\"], \"👵\", \"old woman\"]]], [\"person-gesture\", [[[\"U+1F64D\"], \"🙍\", \"person frowning\"], [[\"U+1F64D\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🙍‍♂️\", \"man frowning\"], [[\"U+1F64D\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🙍‍♀️\", \"woman frowning\"], [[\"U+1F64E\"], \"🙎\", \"person pouting\"], [[\"U+1F64E\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🙎‍♂️\", \"man pouting\"], [[\"U+1F64E\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🙎‍♀️\", \"woman pouting\"], [[\"U+1F645\"], \"🙅\", \"person gesturing NO\"], [[\"U+1F645\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🙅‍♂️\", \"man gesturing NO\"], [[\"U+1F645\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🙅‍♀️\", \"woman gesturing NO\"], [[\"U+1F646\"], \"🙆\", \"person gesturing OK\"], [[\"U+1F646\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🙆‍♂️\", \"man gesturing OK\"], [[\"U+1F646\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🙆‍♀️\", \"woman gesturing OK\"], [[\"U+1F481\"], \"💁\", \"person tipping hand\"], [[\"U+1F481\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"💁‍♂️\", \"man tipping hand\"], [[\"U+1F481\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"💁‍♀️\", \"woman tipping hand\"], [[\"U+1F64B\"], \"🙋\", \"person raising hand\"], [[\"U+1F64B\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🙋‍♂️\", \"man raising hand\"], [[\"U+1F64B\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🙋‍♀️\", \"woman raising hand\"], [[\"U+1F9CF\"], \"🧏\", \"deaf person\"], [[\"U+1F9CF\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🧏‍♂️\", \"deaf man\"], [[\"U+1F9CF\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🧏‍♀️\", \"deaf woman\"], [[\"U+1F647\"], \"🙇\", \"person bowing\"], [[\"U+1F647\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🙇‍♂️\", \"man bowing\"], [[\"U+1F647\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🙇‍♀️\", \"woman bowing\"], [[\"U+1F926\"], \"🤦\", \"person facepalming\"], [[\"U+1F926\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🤦‍♂️\", \"man facepalming\"], [[\"U+1F926\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🤦‍♀️\", \"woman facepalming\"], [[\"U+1F937\"], \"🤷\", \"person shrugging\"], [[\"U+1F937\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🤷‍♂️\", \"man shrugging\"], [[\"U+1F937\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🤷‍♀️\", \"woman shrugging\"]]], [\"person-role\", [[[\"U+1F9D1\", \"U+200D\", \"U+2695\", \"U+FE0F\"], \"🧑‍⚕️\", \"health worker\"], [[\"U+1F468\", \"U+200D\", \"U+2695\", \"U+FE0F\"], \"👨‍⚕️\", \"man health worker\"], [[\"U+1F469\", \"U+200D\", \"U+2695\", \"U+FE0F\"], \"👩‍⚕️\", \"woman health worker\"], [[\"U+1F9D1\", \"U+200D\", \"U+1F393\"], \"🧑‍🎓\", \"student\"], [[\"U+1F468\", \"U+200D\", \"U+1F393\"], \"👨‍🎓\", \"man student\"], [[\"U+1F469\", \"U+200D\", \"U+1F393\"], \"👩‍🎓\", \"woman student\"], [[\"U+1F9D1\", \"U+200D\", \"U+1F3EB\"], \"🧑‍🏫\", \"teacher\"], [[\"U+1F468\", \"U+200D\", \"U+1F3EB\"], \"👨‍🏫\", \"man teacher\"], [[\"U+1F469\", \"U+200D\", \"U+1F3EB\"], \"👩‍🏫\", \"woman teacher\"], [[\"U+1F9D1\", \"U+200D\", \"U+2696\", \"U+FE0F\"], \"🧑‍⚖️\", \"judge\"], [[\"U+1F468\", \"U+200D\", \"U+2696\", \"U+FE0F\"], \"👨‍⚖️\", \"man judge\"], [[\"U+1F469\", \"U+200D\", \"U+2696\", \"U+FE0F\"], \"👩‍⚖️\", \"woman judge\"], [[\"U+1F9D1\", \"U+200D\", \"U+1F33E\"], \"🧑‍🌾\", \"farmer\"], [[\"U+1F468\", \"U+200D\", \"U+1F33E\"], \"👨‍🌾\", \"man farmer\"], [[\"U+1F469\", \"U+200D\", \"U+1F33E\"], \"👩‍🌾\", \"woman farmer\"], [[\"U+1F9D1\", \"U+200D\", \"U+1F373\"], \"🧑‍🍳\", \"cook\"], [[\"U+1F468\", \"U+200D\", \"U+1F373\"], \"👨‍🍳\", \"man cook\"], [[\"U+1F469\", \"U+200D\", \"U+1F373\"], \"👩‍🍳\", \"woman cook\"], [[\"U+1F9D1\", \"U+200D\", \"U+1F527\"], \"🧑‍🔧\", \"mechanic\"], [[\"U+1F468\", \"U+200D\", \"U+1F527\"], \"👨‍🔧\", \"man mechanic\"], [[\"U+1F469\", \"U+200D\", \"U+1F527\"], \"👩‍🔧\", \"woman mechanic\"], [[\"U+1F9D1\", \"U+200D\", \"U+1F3ED\"], \"🧑‍🏭\", \"factory worker\"], [[\"U+1F468\", \"U+200D\", \"U+1F3ED\"], \"👨‍🏭\", \"man factory worker\"], [[\"U+1F469\", \"U+200D\", \"U+1F3ED\"], \"👩‍🏭\", \"woman factory worker\"], [[\"U+1F9D1\", \"U+200D\", \"U+1F4BC\"], \"🧑‍💼\", \"office worker\"], [[\"U+1F468\", \"U+200D\", \"U+1F4BC\"], \"👨‍💼\", \"man office worker\"], [[\"U+1F469\", \"U+200D\", \"U+1F4BC\"], \"👩‍💼\", \"woman office worker\"], [[\"U+1F9D1\", \"U+200D\", \"U+1F52C\"], \"🧑‍🔬\", \"scientist\"], [[\"U+1F468\", \"U+200D\", \"U+1F52C\"], \"👨‍🔬\", \"man scientist\"], [[\"U+1F469\", \"U+200D\", \"U+1F52C\"], \"👩‍🔬\", \"woman scientist\"], [[\"U+1F9D1\", \"U+200D\", \"U+1F4BB\"], \"🧑‍💻\", \"technologist\"], [[\"U+1F468\", \"U+200D\", \"U+1F4BB\"], \"👨‍💻\", \"man technologist\"], [[\"U+1F469\", \"U+200D\", \"U+1F4BB\"], \"👩‍💻\", \"woman technologist\"], [[\"U+1F9D1\", \"U+200D\", \"U+1F3A4\"], \"🧑‍🎤\", \"singer\"], [[\"U+1F468\", \"U+200D\", \"U+1F3A4\"], \"👨‍🎤\", \"man singer\"], [[\"U+1F469\", \"U+200D\", \"U+1F3A4\"], \"👩‍🎤\", \"woman singer\"], [[\"U+1F9D1\", \"U+200D\", \"U+1F3A8\"], \"🧑‍🎨\", \"artist\"], [[\"U+1F468\", \"U+200D\", \"U+1F3A8\"], \"👨‍🎨\", \"man artist\"], [[\"U+1F469\", \"U+200D\", \"U+1F3A8\"], \"👩‍🎨\", \"woman artist\"], [[\"U+1F9D1\", \"U+200D\", \"U+2708\", \"U+FE0F\"], \"🧑‍✈️\", \"pilot\"], [[\"U+1F468\", \"U+200D\", \"U+2708\", \"U+FE0F\"], \"👨‍✈️\", \"man pilot\"], [[\"U+1F469\", \"U+200D\", \"U+2708\", \"U+FE0F\"], \"👩‍✈️\", \"woman pilot\"], [[\"U+1F9D1\", \"U+200D\", \"U+1F680\"], \"🧑‍🚀\", \"astronaut\"], [[\"U+1F468\", \"U+200D\", \"U+1F680\"], \"👨‍🚀\", \"man astronaut\"], [[\"U+1F469\", \"U+200D\", \"U+1F680\"], \"👩‍🚀\", \"woman astronaut\"], [[\"U+1F9D1\", \"U+200D\", \"U+1F692\"], \"🧑‍🚒\", \"firefighter\"], [[\"U+1F468\", \"U+200D\", \"U+1F692\"], \"👨‍🚒\", \"man firefighter\"], [[\"U+1F469\", \"U+200D\", \"U+1F692\"], \"👩‍🚒\", \"woman firefighter\"], [[\"U+1F46E\"], \"👮\", \"police officer\"], [[\"U+1F46E\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"👮‍♂️\", \"man police officer\"], [[\"U+1F46E\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"👮‍♀️\", \"woman police officer\"], [[\"U+1F575\"], \"🕵\", \"detective\"], [[\"U+1F575\", \"U+FE0F\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🕵️‍♂️\", \"man detective\"], [[\"U+1F575\", \"U+FE0F\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🕵️‍♀️\", \"woman detective\"], [[\"U+1F482\"], \"💂\", \"guard\"], [[\"U+1F482\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"💂‍♂️\", \"man guard\"], [[\"U+1F482\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"💂‍♀️\", \"woman guard\"], [[\"U+1F977\"], \"🥷\", \"⊛ ninja\"], [[\"U+1F477\"], \"👷\", \"construction worker\"], [[\"U+1F477\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"👷‍♂️\", \"man construction worker\"], [[\"U+1F477\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"👷‍♀️\", \"woman construction worker\"], [[\"U+1F934\"], \"🤴\", \"prince\"], [[\"U+1F478\"], \"👸\", \"princess\"], [[\"U+1F473\"], \"👳\", \"person wearing turban\"], [[\"U+1F473\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"👳‍♂️\", \"man wearing turban\"], [[\"U+1F473\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"👳‍♀️\", \"woman wearing turban\"], [[\"U+1F472\"], \"👲\", \"person with skullcap\"], [[\"U+1F9D5\"], \"🧕\", \"woman with headscarf\"], [[\"U+1F935\"], \"🤵\", \"person in tuxedo\"], [[\"U+1F935\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🤵‍♂️\", \"⊛ man in tuxedo\"], [[\"U+1F935\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🤵‍♀️\", \"⊛ woman in tuxedo\"], [[\"U+1F470\"], \"👰\", \"person with veil\"], [[\"U+1F930\"], \"🤰\", \"pregnant woman\"], [[\"U+1F931\"], \"🤱\", \"breast-feeding\"]]], [\"person-fantasy\", [[[\"U+1F47C\"], \"👼\", \"baby angel\"], [[\"U+1F385\"], \"🎅\", \"Santa Claus\"], [[\"U+1F936\"], \"🤶\", \"Mrs. Claus\"], [[\"U+1F9B8\"], \"🦸\", \"superhero\"], [[\"U+1F9B8\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🦸‍♂️\", \"man superhero\"], [[\"U+1F9B8\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🦸‍♀️\", \"woman superhero\"], [[\"U+1F9B9\"], \"🦹\", \"supervillain\"], [[\"U+1F9B9\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🦹‍♂️\", \"man supervillain\"], [[\"U+1F9B9\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🦹‍♀️\", \"woman supervillain\"], [[\"U+1F9D9\"], \"🧙\", \"mage\"], [[\"U+1F9D9\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🧙‍♂️\", \"man mage\"], [[\"U+1F9D9\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🧙‍♀️\", \"woman mage\"], [[\"U+1F9DA\"], \"🧚\", \"fairy\"], [[\"U+1F9DA\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🧚‍♂️\", \"man fairy\"], [[\"U+1F9DA\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🧚‍♀️\", \"woman fairy\"], [[\"U+1F9DB\"], \"🧛\", \"vampire\"], [[\"U+1F9DB\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🧛‍♂️\", \"man vampire\"], [[\"U+1F9DB\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🧛‍♀️\", \"woman vampire\"], [[\"U+1F9DC\"], \"🧜\", \"merperson\"], [[\"U+1F9DC\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🧜‍♂️\", \"merman\"], [[\"U+1F9DC\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🧜‍♀️\", \"mermaid\"], [[\"U+1F9DD\"], \"🧝\", \"elf\"], [[\"U+1F9DD\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🧝‍♂️\", \"man elf\"], [[\"U+1F9DD\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🧝‍♀️\", \"woman elf\"], [[\"U+1F9DE\"], \"🧞\", \"genie\"], [[\"U+1F9DE\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🧞‍♂️\", \"man genie\"], [[\"U+1F9DE\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🧞‍♀️\", \"woman genie\"], [[\"U+1F9DF\"], \"🧟\", \"zombie\"], [[\"U+1F9DF\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🧟‍♂️\", \"man zombie\"], [[\"U+1F9DF\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🧟‍♀️\", \"woman zombie\"]]], [\"person-activity\", [[[\"U+1F486\"], \"💆\", \"person getting massage\"], [[\"U+1F486\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"💆‍♂️\", \"man getting massage\"], [[\"U+1F486\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"💆‍♀️\", \"woman getting massage\"], [[\"U+1F487\"], \"💇\", \"person getting haircut\"], [[\"U+1F487\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"💇‍♂️\", \"man getting haircut\"], [[\"U+1F487\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"💇‍♀️\", \"woman getting haircut\"], [[\"U+1F6B6\"], \"🚶\", \"person walking\"], [[\"U+1F6B6\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🚶‍♂️\", \"man walking\"], [[\"U+1F6B6\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🚶‍♀️\", \"woman walking\"], [[\"U+1F9CD\"], \"🧍\", \"person standing\"], [[\"U+1F9CD\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🧍‍♂️\", \"man standing\"], [[\"U+1F9CD\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🧍‍♀️\", \"woman standing\"], [[\"U+1F9CE\"], \"🧎\", \"person kneeling\"], [[\"U+1F9CE\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🧎‍♂️\", \"man kneeling\"], [[\"U+1F9CE\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🧎‍♀️\", \"woman kneeling\"], [[\"U+1F9D1\", \"U+200D\", \"U+1F9AF\"], \"🧑‍🦯\", \"person with white cane\"], [[\"U+1F468\", \"U+200D\", \"U+1F9AF\"], \"👨‍🦯\", \"man with white cane\"], [[\"U+1F469\", \"U+200D\", \"U+1F9AF\"], \"👩‍🦯\", \"woman with white cane\"], [[\"U+1F9D1\", \"U+200D\", \"U+1F9BC\"], \"🧑‍🦼\", \"person in motorized wheelchair\"], [[\"U+1F468\", \"U+200D\", \"U+1F9BC\"], \"👨‍🦼\", \"man in motorized wheelchair\"], [[\"U+1F469\", \"U+200D\", \"U+1F9BC\"], \"👩‍🦼\", \"woman in motorized wheelchair\"], [[\"U+1F9D1\", \"U+200D\", \"U+1F9BD\"], \"🧑‍🦽\", \"person in manual wheelchair\"], [[\"U+1F468\", \"U+200D\", \"U+1F9BD\"], \"👨‍🦽\", \"man in manual wheelchair\"], [[\"U+1F469\", \"U+200D\", \"U+1F9BD\"], \"👩‍🦽\", \"woman in manual wheelchair\"], [[\"U+1F3C3\"], \"🏃\", \"person running\"], [[\"U+1F3C3\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🏃‍♂️\", \"man running\"], [[\"U+1F3C3\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🏃‍♀️\", \"woman running\"], [[\"U+1F483\"], \"💃\", \"woman dancing\"], [[\"U+1F57A\"], \"🕺\", \"man dancing\"], [[\"U+1F574\"], \"🕴\", \"person in suit levitating\"], [[\"U+1F46F\"], \"👯\", \"people with bunny ears\"], [[\"U+1F46F\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"👯‍♂️\", \"men with bunny ears\"], [[\"U+1F46F\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"👯‍♀️\", \"women with bunny ears\"], [[\"U+1F9D6\"], \"🧖\", \"person in steamy room\"], [[\"U+1F9D6\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🧖‍♂️\", \"man in steamy room\"], [[\"U+1F9D6\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🧖‍♀️\", \"woman in steamy room\"], [[\"U+1F9D7\"], \"🧗\", \"person climbing\"], [[\"U+1F9D7\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🧗‍♂️\", \"man climbing\"], [[\"U+1F9D7\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🧗‍♀️\", \"woman climbing\"]]], [\"person-sport\", [[[\"U+1F93A\"], \"🤺\", \"person fencing\"], [[\"U+1F3C7\"], \"🏇\", \"horse racing\"], [[\"U+26F7\"], \"⛷\", \"skier\"], [[\"U+1F3C2\"], \"🏂\", \"snowboarder\"], [[\"U+1F3CC\"], \"🏌\", \"person golfing\"], [[\"U+1F3CC\", \"U+FE0F\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🏌️‍♂️\", \"man golfing\"], [[\"U+1F3CC\", \"U+FE0F\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🏌️‍♀️\", \"woman golfing\"], [[\"U+1F3C4\"], \"🏄\", \"person surfing\"], [[\"U+1F3C4\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🏄‍♂️\", \"man surfing\"], [[\"U+1F3C4\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🏄‍♀️\", \"woman surfing\"], [[\"U+1F6A3\"], \"🚣\", \"person rowing boat\"], [[\"U+1F6A3\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🚣‍♂️\", \"man rowing boat\"], [[\"U+1F6A3\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🚣‍♀️\", \"woman rowing boat\"], [[\"U+1F3CA\"], \"🏊\", \"person swimming\"], [[\"U+1F3CA\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🏊‍♂️\", \"man swimming\"], [[\"U+1F3CA\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🏊‍♀️\", \"woman swimming\"], [[\"U+26F9\"], \"⛹\", \"person bouncing ball\"], [[\"U+26F9\", \"U+FE0F\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"⛹️‍♂️\", \"man bouncing ball\"], [[\"U+26F9\", \"U+FE0F\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"⛹️‍♀️\", \"woman bouncing ball\"], [[\"U+1F3CB\"], \"🏋\", \"person lifting weights\"], [[\"U+1F3CB\", \"U+FE0F\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🏋️‍♂️\", \"man lifting weights\"], [[\"U+1F3CB\", \"U+FE0F\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🏋️‍♀️\", \"woman lifting weights\"], [[\"U+1F6B4\"], \"🚴\", \"person biking\"], [[\"U+1F6B4\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🚴‍♂️\", \"man biking\"], [[\"U+1F6B4\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🚴‍♀️\", \"woman biking\"], [[\"U+1F6B5\"], \"🚵\", \"person mountain biking\"], [[\"U+1F6B5\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🚵‍♂️\", \"man mountain biking\"], [[\"U+1F6B5\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🚵‍♀️\", \"woman mountain biking\"], [[\"U+1F938\"], \"🤸\", \"person cartwheeling\"], [[\"U+1F938\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🤸‍♂️\", \"man cartwheeling\"], [[\"U+1F938\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🤸‍♀️\", \"woman cartwheeling\"], [[\"U+1F93C\"], \"🤼\", \"people wrestling\"], [[\"U+1F93C\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🤼‍♂️\", \"men wrestling\"], [[\"U+1F93C\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🤼‍♀️\", \"women wrestling\"], [[\"U+1F93D\"], \"🤽\", \"person playing water polo\"], [[\"U+1F93D\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🤽‍♂️\", \"man playing water polo\"], [[\"U+1F93D\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🤽‍♀️\", \"woman playing water polo\"], [[\"U+1F93E\"], \"🤾\", \"person playing handball\"], [[\"U+1F93E\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🤾‍♂️\", \"man playing handball\"], [[\"U+1F93E\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🤾‍♀️\", \"woman playing handball\"], [[\"U+1F939\"], \"🤹\", \"person juggling\"], [[\"U+1F939\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🤹‍♂️\", \"man juggling\"], [[\"U+1F939\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🤹‍♀️\", \"woman juggling\"]]], [\"person-resting\", [[[\"U+1F9D8\"], \"🧘\", \"person in lotus position\"], [[\"U+1F9D8\", \"U+200D\", \"U+2642\", \"U+FE0F\"], \"🧘‍♂️\", \"man in lotus position\"], [[\"U+1F9D8\", \"U+200D\", \"U+2640\", \"U+FE0F\"], \"🧘‍♀️\", \"woman in lotus position\"], [[\"U+1F6C0\"], \"🛀\", \"person taking bath\"], [[\"U+1F6CC\"], \"🛌\", \"person in bed\"]]], [\"family\", [[[\"U+1F9D1\", \"U+200D\", \"U+1F91D\", \"U+200D\", \"U+1F9D1\"], \"🧑‍🤝‍🧑\", \"people holding hands\"], [[\"U+1F46D\"], \"👭\", \"women holding hands\"], [[\"U+1F46B\"], \"👫\", \"woman and man holding hands\"], [[\"U+1F46C\"], \"👬\", \"men holding hands\"], [[\"U+1F48F\"], \"💏\", \"kiss\"], [[\"U+1F469\", \"U+200D\", \"U+2764\", \"U+FE0F\", \"U+200D\", \"U+1F48B\", \"U+200D\", \"U+1F468\"], \"👩‍❤️‍💋‍👨\", \"kiss: woman, man\"], [[\"U+1F468\", \"U+200D\", \"U+2764\", \"U+FE0F\", \"U+200D\", \"U+1F48B\", \"U+200D\", \"U+1F468\"], \"👨‍❤️‍💋‍👨\", \"kiss: man, man\"], [[\"U+1F469\", \"U+200D\", \"U+2764\", \"U+FE0F\", \"U+200D\", \"U+1F48B\", \"U+200D\", \"U+1F469\"], \"👩‍❤️‍💋‍👩\", \"kiss: woman, woman\"], [[\"U+1F491\"], \"💑\", \"couple with heart\"], [[\"U+1F469\", \"U+200D\", \"U+2764\", \"U+FE0F\", \"U+200D\", \"U+1F468\"], \"👩‍❤️‍👨\", \"couple with heart: woman, man\"], [[\"U+1F468\", \"U+200D\", \"U+2764\", \"U+FE0F\", \"U+200D\", \"U+1F468\"], \"👨‍❤️‍👨\", \"couple with heart: man, man\"], [[\"U+1F469\", \"U+200D\", \"U+2764\", \"U+FE0F\", \"U+200D\", \"U+1F469\"], \"👩‍❤️‍👩\", \"couple with heart: woman, woman\"], [[\"U+1F46A\"], \"👪\", \"family\"], [[\"U+1F468\", \"U+200D\", \"U+1F469\", \"U+200D\", \"U+1F466\"], \"👨‍👩‍👦\", \"family: man, woman, boy\"], [[\"U+1F468\", \"U+200D\", \"U+1F469\", \"U+200D\", \"U+1F467\"], \"👨‍👩‍👧\", \"family: man, woman, girl\"], [[\"U+1F468\", \"U+200D\", \"U+1F469\", \"U+200D\", \"U+1F467\", \"U+200D\", \"U+1F466\"], \"👨‍👩‍👧‍👦\", \"family: man, woman, girl, boy\"], [[\"U+1F468\", \"U+200D\", \"U+1F469\", \"U+200D\", \"U+1F466\", \"U+200D\", \"U+1F466\"], \"👨‍👩‍👦‍👦\", \"family: man, woman, boy, boy\"], [[\"U+1F468\", \"U+200D\", \"U+1F469\", \"U+200D\", \"U+1F467\", \"U+200D\", \"U+1F467\"], \"👨‍👩‍👧‍👧\", \"family: man, woman, girl, girl\"], [[\"U+1F468\", \"U+200D\", \"U+1F468\", \"U+200D\", \"U+1F466\"], \"👨‍👨‍👦\", \"family: man, man, boy\"], [[\"U+1F468\", \"U+200D\", \"U+1F468\", \"U+200D\", \"U+1F467\"], \"👨‍👨‍👧\", \"family: man, man, girl\"], [[\"U+1F468\", \"U+200D\", \"U+1F468\", \"U+200D\", \"U+1F467\", \"U+200D\", \"U+1F466\"], \"👨‍👨‍👧‍👦\", \"family: man, man, girl, boy\"], [[\"U+1F468\", \"U+200D\", \"U+1F468\", \"U+200D\", \"U+1F466\", \"U+200D\", \"U+1F466\"], \"👨‍👨‍👦‍👦\", \"family: man, man, boy, boy\"], [[\"U+1F468\", \"U+200D\", \"U+1F468\", \"U+200D\", \"U+1F467\", \"U+200D\", \"U+1F467\"], \"👨‍👨‍👧‍👧\", \"family: man, man, girl, girl\"], [[\"U+1F469\", \"U+200D\", \"U+1F469\", \"U+200D\", \"U+1F466\"], \"👩‍👩‍👦\", \"family: woman, woman, boy\"], [[\"U+1F469\", \"U+200D\", \"U+1F469\", \"U+200D\", \"U+1F467\"], \"👩‍👩‍👧\", \"family: woman, woman, girl\"], [[\"U+1F469\", \"U+200D\", \"U+1F469\", \"U+200D\", \"U+1F467\", \"U+200D\", \"U+1F466\"], \"👩‍👩‍👧‍👦\", \"family: woman, woman, girl, boy\"], [[\"U+1F469\", \"U+200D\", \"U+1F469\", \"U+200D\", \"U+1F466\", \"U+200D\", \"U+1F466\"], \"👩‍👩‍👦‍👦\", \"family: woman, woman, boy, boy\"], [[\"U+1F469\", \"U+200D\", \"U+1F469\", \"U+200D\", \"U+1F467\", \"U+200D\", \"U+1F467\"], \"👩‍👩‍👧‍👧\", \"family: woman, woman, girl, girl\"], [[\"U+1F468\", \"U+200D\", \"U+1F466\"], \"👨‍👦\", \"family: man, boy\"], [[\"U+1F468\", \"U+200D\", \"U+1F466\", \"U+200D\", \"U+1F466\"], \"👨‍👦‍👦\", \"family: man, boy, boy\"], [[\"U+1F468\", \"U+200D\", \"U+1F467\"], \"👨‍👧\", \"family: man, girl\"], [[\"U+1F468\", \"U+200D\", \"U+1F467\", \"U+200D\", \"U+1F466\"], \"👨‍👧‍👦\", \"family: man, girl, boy\"], [[\"U+1F468\", \"U+200D\", \"U+1F467\", \"U+200D\", \"U+1F467\"], \"👨‍👧‍👧\", \"family: man, girl, girl\"], [[\"U+1F469\", \"U+200D\", \"U+1F466\"], \"👩‍👦\", \"family: woman, boy\"], [[\"U+1F469\", \"U+200D\", \"U+1F466\", \"U+200D\", \"U+1F466\"], \"👩‍👦‍👦\", \"family: woman, boy, boy\"], [[\"U+1F469\", \"U+200D\", \"U+1F467\"], \"👩‍👧\", \"family: woman, girl\"], [[\"U+1F469\", \"U+200D\", \"U+1F467\", \"U+200D\", \"U+1F466\"], \"👩‍👧‍👦\", \"family: woman, girl, boy\"], [[\"U+1F469\", \"U+200D\", \"U+1F467\", \"U+200D\", \"U+1F467\"], \"👩‍👧‍👧\", \"family: woman, girl, girl\"]]], [\"person-symbol\", [[[\"U+1F5E3\"], \"🗣\", \"speaking head\"], [[\"U+1F464\"], \"👤\", \"bust in silhouette\"], [[\"U+1F465\"], \"👥\", \"busts in silhouette\"], [[\"U+1FAC2\"], \"🫂\", \"⊛ people hugging\"], [[\"U+1F463\"], \"👣\", \"footprints\"]]]]], [\"Component\", [[\"hair-style\", [[[\"U+1F9B0\"], \"🦰\", \"red hair\"], [[\"U+1F9B1\"], \"🦱\", \"curly hair\"], [[\"U+1F9B3\"], \"🦳\", \"white hair\"], [[\"U+1F9B2\"], \"🦲\", \"bald\"]]]]], [\"Animals & Nature\", [[\"animal-mammal\", [[[\"U+1F435\"], \"🐵\", \"monkey face\"], [[\"U+1F412\"], \"🐒\", \"monkey\"], [[\"U+1F98D\"], \"🦍\", \"gorilla\"], [[\"U+1F9A7\"], \"🦧\", \"orangutan\"], [[\"U+1F436\"], \"🐶\", \"dog face\"], [[\"U+1F415\"], \"🐕\", \"dog\"], [[\"U+1F9AE\"], \"🦮\", \"guide dog\"], [[\"U+1F415\", \"U+200D\", \"U+1F9BA\"], \"🐕‍🦺\", \"service dog\"], [[\"U+1F429\"], \"🐩\", \"poodle\"], [[\"U+1F43A\"], \"🐺\", \"wolf\"], [[\"U+1F98A\"], \"🦊\", \"fox\"], [[\"U+1F99D\"], \"🦝\", \"raccoon\"], [[\"U+1F431\"], \"🐱\", \"cat face\"], [[\"U+1F408\"], \"🐈\", \"cat\"], [[\"U+1F981\"], \"🦁\", \"lion\"], [[\"U+1F42F\"], \"🐯\", \"tiger face\"], [[\"U+1F405\"], \"🐅\", \"tiger\"], [[\"U+1F406\"], \"🐆\", \"leopard\"], [[\"U+1F434\"], \"🐴\", \"horse face\"], [[\"U+1F40E\"], \"🐎\", \"horse\"], [[\"U+1F984\"], \"🦄\", \"unicorn\"], [[\"U+1F993\"], \"🦓\", \"zebra\"], [[\"U+1F98C\"], \"🦌\", \"deer\"], [[\"U+1F42E\"], \"🐮\", \"cow face\"], [[\"U+1F402\"], \"🐂\", \"ox\"], [[\"U+1F403\"], \"🐃\", \"water buffalo\"], [[\"U+1F404\"], \"🐄\", \"cow\"], [[\"U+1F437\"], \"🐷\", \"pig face\"], [[\"U+1F416\"], \"🐖\", \"pig\"], [[\"U+1F417\"], \"🐗\", \"boar\"], [[\"U+1F43D\"], \"🐽\", \"pig nose\"], [[\"U+1F40F\"], \"🐏\", \"ram\"], [[\"U+1F411\"], \"🐑\", \"ewe\"], [[\"U+1F410\"], \"🐐\", \"goat\"], [[\"U+1F42A\"], \"🐪\", \"camel\"], [[\"U+1F42B\"], \"🐫\", \"two-hump camel\"], [[\"U+1F999\"], \"🦙\", \"llama\"], [[\"U+1F992\"], \"🦒\", \"giraffe\"], [[\"U+1F418\"], \"🐘\", \"elephant\"], [[\"U+1F98F\"], \"🦏\", \"rhinoceros\"], [[\"U+1F99B\"], \"🦛\", \"hippopotamus\"], [[\"U+1F42D\"], \"🐭\", \"mouse face\"], [[\"U+1F401\"], \"🐁\", \"mouse\"], [[\"U+1F400\"], \"🐀\", \"rat\"], [[\"U+1F439\"], \"🐹\", \"hamster\"], [[\"U+1F430\"], \"🐰\", \"rabbit face\"], [[\"U+1F407\"], \"🐇\", \"rabbit\"], [[\"U+1F43F\"], \"🐿\", \"chipmunk\"], [[\"U+1F994\"], \"🦔\", \"hedgehog\"], [[\"U+1F987\"], \"🦇\", \"bat\"], [[\"U+1F43B\"], \"🐻\", \"bear\"], [[\"U+1F43B\", \"U+200D\", \"U+2744\", \"U+FE0F\"], \"🐻‍❄️\", \"⊛ polar bear\"], [[\"U+1F428\"], \"🐨\", \"koala\"], [[\"U+1F43C\"], \"🐼\", \"panda\"], [[\"U+1F9A5\"], \"🦥\", \"sloth\"], [[\"U+1F9A6\"], \"🦦\", \"otter\"], [[\"U+1F9A8\"], \"🦨\", \"skunk\"], [[\"U+1F998\"], \"🦘\", \"kangaroo\"], [[\"U+1F9A1\"], \"🦡\", \"badger\"], [[\"U+1F43E\"], \"🐾\", \"paw prints\"]]], [\"animal-bird\", [[[\"U+1F983\"], \"🦃\", \"turkey\"], [[\"U+1F414\"], \"🐔\", \"chicken\"], [[\"U+1F413\"], \"🐓\", \"rooster\"], [[\"U+1F423\"], \"🐣\", \"hatching chick\"], [[\"U+1F424\"], \"🐤\", \"baby chick\"], [[\"U+1F425\"], \"🐥\", \"front-facing baby chick\"], [[\"U+1F426\"], \"🐦\", \"bird\"], [[\"U+1F427\"], \"🐧\", \"penguin\"], [[\"U+1F54A\"], \"🕊\", \"dove\"], [[\"U+1F985\"], \"🦅\", \"eagle\"], [[\"U+1F986\"], \"🦆\", \"duck\"], [[\"U+1F9A2\"], \"🦢\", \"swan\"], [[\"U+1F989\"], \"🦉\", \"owl\"], [[\"U+1FAB6\"], \"🪶\", \"⊛ feather\"], [[\"U+1F9A9\"], \"🦩\", \"flamingo\"], [[\"U+1F99A\"], \"🦚\", \"peacock\"], [[\"U+1F99C\"], \"🦜\", \"parrot\"]]], [\"animal-amphibian\", [[[\"U+1F438\"], \"🐸\", \"frog\"]]], [\"animal-reptile\", [[[\"U+1F40A\"], \"🐊\", \"crocodile\"], [[\"U+1F422\"], \"🐢\", \"turtle\"], [[\"U+1F98E\"], \"🦎\", \"lizard\"], [[\"U+1F40D\"], \"🐍\", \"snake\"], [[\"U+1F432\"], \"🐲\", \"dragon face\"], [[\"U+1F409\"], \"🐉\", \"dragon\"], [[\"U+1F995\"], \"🦕\", \"sauropod\"], [[\"U+1F996\"], \"🦖\", \"T-Rex\"]]], [\"animal-marine\", [[[\"U+1F433\"], \"🐳\", \"spouting whale\"], [[\"U+1F40B\"], \"🐋\", \"whale\"], [[\"U+1F42C\"], \"🐬\", \"dolphin\"], [[\"U+1F41F\"], \"🐟\", \"fish\"], [[\"U+1F420\"], \"🐠\", \"tropical fish\"], [[\"U+1F421\"], \"🐡\", \"blowfish\"], [[\"U+1F988\"], \"🦈\", \"shark\"], [[\"U+1F419\"], \"🐙\", \"octopus\"], [[\"U+1F41A\"], \"🐚\", \"spiral shell\"]]], [\"animal-bug\", [[[\"U+1F40C\"], \"🐌\", \"snail\"], [[\"U+1F98B\"], \"🦋\", \"butterfly\"], [[\"U+1F41B\"], \"🐛\", \"bug\"], [[\"U+1F41C\"], \"🐜\", \"ant\"], [[\"U+1F41D\"], \"🐝\", \"honeybee\"], [[\"U+1F41E\"], \"🐞\", \"lady beetle\"], [[\"U+1F997\"], \"🦗\", \"cricket\"], [[\"U+1F577\"], \"🕷\", \"spider\"], [[\"U+1F578\"], \"🕸\", \"spider web\"], [[\"U+1F982\"], \"🦂\", \"scorpion\"], [[\"U+1F99F\"], \"🦟\", \"mosquito\"], [[\"U+1F9A0\"], \"🦠\", \"microbe\"]]], [\"plant-flower\", [[[\"U+1F490\"], \"💐\", \"bouquet\"], [[\"U+1F338\"], \"🌸\", \"cherry blossom\"], [[\"U+1F4AE\"], \"💮\", \"white flower\"], [[\"U+1F3F5\"], \"🏵\", \"rosette\"], [[\"U+1F339\"], \"🌹\", \"rose\"], [[\"U+1F940\"], \"🥀\", \"wilted flower\"], [[\"U+1F33A\"], \"🌺\", \"hibiscus\"], [[\"U+1F33B\"], \"🌻\", \"sunflower\"], [[\"U+1F33C\"], \"🌼\", \"blossom\"], [[\"U+1F337\"], \"🌷\", \"tulip\"]]], [\"plant-other\", [[[\"U+1F331\"], \"🌱\", \"seedling\"], [[\"U+1FAB4\"], \"🪴\", \"⊛ potted plant\"], [[\"U+1F332\"], \"🌲\", \"evergreen tree\"], [[\"U+1F333\"], \"🌳\", \"deciduous tree\"], [[\"U+1F334\"], \"🌴\", \"palm tree\"], [[\"U+1F335\"], \"🌵\", \"cactus\"], [[\"U+1F33E\"], \"🌾\", \"sheaf of rice\"], [[\"U+1F33F\"], \"🌿\", \"herb\"], [[\"U+2618\"], \"☘\", \"shamrock\"], [[\"U+1F340\"], \"🍀\", \"four leaf clover\"], [[\"U+1F341\"], \"🍁\", \"maple leaf\"], [[\"U+1F342\"], \"🍂\", \"fallen leaf\"], [[\"U+1F343\"], \"🍃\", \"leaf fluttering in wind\"]]]]], [\"Food & Drink\", [[\"food-fruit\", [[[\"U+1F347\"], \"🍇\", \"grapes\"], [[\"U+1F348\"], \"🍈\", \"melon\"], [[\"U+1F349\"], \"🍉\", \"watermelon\"], [[\"U+1F34A\"], \"🍊\", \"tangerine\"], [[\"U+1F34B\"], \"🍋\", \"lemon\"], [[\"U+1F34C\"], \"🍌\", \"banana\"], [[\"U+1F34D\"], \"🍍\", \"pineapple\"], [[\"U+1F96D\"], \"🥭\", \"mango\"], [[\"U+1F34E\"], \"🍎\", \"red apple\"], [[\"U+1F34F\"], \"🍏\", \"green apple\"], [[\"U+1F350\"], \"🍐\", \"pear\"], [[\"U+1F351\"], \"🍑\", \"peach\"], [[\"U+1F352\"], \"🍒\", \"cherries\"], [[\"U+1F353\"], \"🍓\", \"strawberry\"], [[\"U+1FAD0\"], \"🫐\", \"⊛ blueberries\"], [[\"U+1F95D\"], \"🥝\", \"kiwi fruit\"], [[\"U+1F345\"], \"🍅\", \"tomato\"], [[\"U+1FAD2\"], \"🫒\", \"⊛ olive\"], [[\"U+1F965\"], \"🥥\", \"coconut\"]]], [\"food-vegetable\", [[[\"U+1F951\"], \"🥑\", \"avocado\"], [[\"U+1F346\"], \"🍆\", \"eggplant\"], [[\"U+1F954\"], \"🥔\", \"potato\"], [[\"U+1F955\"], \"🥕\", \"carrot\"], [[\"U+1F33D\"], \"🌽\", \"ear of corn\"], [[\"U+1F336\"], \"🌶\", \"hot pepper\"], [[\"U+1F952\"], \"🥒\", \"cucumber\"], [[\"U+1F96C\"], \"🥬\", \"leafy green\"], [[\"U+1F966\"], \"🥦\", \"broccoli\"], [[\"U+1F9C4\"], \"🧄\", \"garlic\"], [[\"U+1F9C5\"], \"🧅\", \"onion\"], [[\"U+1F344\"], \"🍄\", \"mushroom\"], [[\"U+1F95C\"], \"🥜\", \"peanuts\"], [[\"U+1F330\"], \"🌰\", \"chestnut\"]]], [\"food-prepared\", [[[\"U+1F35E\"], \"🍞\", \"bread\"], [[\"U+1F950\"], \"🥐\", \"croissant\"], [[\"U+1F956\"], \"🥖\", \"baguette bread\"], [[\"U+1FAD3\"], \"🫓\", \"⊛ flatbread\"], [[\"U+1F968\"], \"🥨\", \"pretzel\"], [[\"U+1F96F\"], \"🥯\", \"bagel\"], [[\"U+1F95E\"], \"🥞\", \"pancakes\"], [[\"U+1F9C7\"], \"🧇\", \"waffle\"], [[\"U+1F9C0\"], \"🧀\", \"cheese wedge\"], [[\"U+1F356\"], \"🍖\", \"meat on bone\"], [[\"U+1F357\"], \"🍗\", \"poultry leg\"], [[\"U+1F969\"], \"🥩\", \"cut of meat\"], [[\"U+1F953\"], \"🥓\", \"bacon\"], [[\"U+1F354\"], \"🍔\", \"hamburger\"], [[\"U+1F35F\"], \"🍟\", \"french fries\"], [[\"U+1F355\"], \"🍕\", \"pizza\"], [[\"U+1F32D\"], \"🌭\", \"hot dog\"], [[\"U+1F96A\"], \"🥪\", \"sandwich\"], [[\"U+1F32E\"], \"🌮\", \"taco\"], [[\"U+1F32F\"], \"🌯\", \"burrito\"], [[\"U+1FAD4\"], \"🫔\", \"⊛ tamale\"], [[\"U+1F959\"], \"🥙\", \"stuffed flatbread\"], [[\"U+1F9C6\"], \"🧆\", \"falafel\"], [[\"U+1F95A\"], \"🥚\", \"egg\"], [[\"U+1F373\"], \"🍳\", \"cooking\"], [[\"U+1F958\"], \"🥘\", \"shallow pan of food\"], [[\"U+1F372\"], \"🍲\", \"pot of food\"], [[\"U+1FAD5\"], \"🫕\", \"⊛ fondue\"], [[\"U+1F963\"], \"🥣\", \"bowl with spoon\"], [[\"U+1F957\"], \"🥗\", \"green salad\"], [[\"U+1F37F\"], \"🍿\", \"popcorn\"], [[\"U+1F9C8\"], \"🧈\", \"butter\"], [[\"U+1F9C2\"], \"🧂\", \"salt\"], [[\"U+1F96B\"], \"🥫\", \"canned food\"]]], [\"food-asian\", [[[\"U+1F371\"], \"🍱\", \"bento box\"], [[\"U+1F358\"], \"🍘\", \"rice cracker\"], [[\"U+1F359\"], \"🍙\", \"rice ball\"], [[\"U+1F35A\"], \"🍚\", \"cooked rice\"], [[\"U+1F35B\"], \"🍛\", \"curry rice\"], [[\"U+1F35C\"], \"🍜\", \"steaming bowl\"], [[\"U+1F35D\"], \"🍝\", \"spaghetti\"], [[\"U+1F360\"], \"🍠\", \"roasted sweet potato\"], [[\"U+1F362\"], \"🍢\", \"oden\"], [[\"U+1F363\"], \"🍣\", \"sushi\"], [[\"U+1F364\"], \"🍤\", \"fried shrimp\"], [[\"U+1F365\"], \"🍥\", \"fish cake with swirl\"], [[\"U+1F96E\"], \"🥮\", \"moon cake\"], [[\"U+1F361\"], \"🍡\", \"dango\"], [[\"U+1F95F\"], \"🥟\", \"dumpling\"], [[\"U+1F960\"], \"🥠\", \"fortune cookie\"], [[\"U+1F961\"], \"🥡\", \"takeout box\"]]], [\"food-marine\", [[[\"U+1F980\"], \"🦀\", \"crab\"], [[\"U+1F99E\"], \"🦞\", \"lobster\"], [[\"U+1F990\"], \"🦐\", \"shrimp\"], [[\"U+1F991\"], \"🦑\", \"squid\"], [[\"U+1F9AA\"], \"🦪\", \"oyster\"]]], [\"food-sweet\", [[[\"U+1F366\"], \"🍦\", \"soft ice cream\"], [[\"U+1F367\"], \"🍧\", \"shaved ice\"], [[\"U+1F368\"], \"🍨\", \"ice cream\"], [[\"U+1F369\"], \"🍩\", \"doughnut\"], [[\"U+1F36A\"], \"🍪\", \"cookie\"], [[\"U+1F382\"], \"🎂\", \"birthday cake\"], [[\"U+1F370\"], \"🍰\", \"shortcake\"], [[\"U+1F9C1\"], \"🧁\", \"cupcake\"], [[\"U+1F967\"], \"🥧\", \"pie\"], [[\"U+1F36B\"], \"🍫\", \"chocolate bar\"], [[\"U+1F36C\"], \"🍬\", \"candy\"], [[\"U+1F36D\"], \"🍭\", \"lollipop\"], [[\"U+1F36E\"], \"🍮\", \"custard\"], [[\"U+1F36F\"], \"🍯\", \"honey pot\"]]], [\"drink\", [[[\"U+1F37C\"], \"🍼\", \"baby bottle\"], [[\"U+1F95B\"], \"🥛\", \"glass of milk\"], [[\"U+2615\"], \"☕\", \"hot beverage\"], [[\"U+1F375\"], \"🍵\", \"teacup without handle\"], [[\"U+1F376\"], \"🍶\", \"sake\"], [[\"U+1F37E\"], \"🍾\", \"bottle with popping cork\"], [[\"U+1F377\"], \"🍷\", \"wine glass\"], [[\"U+1F378\"], \"🍸\", \"cocktail glass\"], [[\"U+1F379\"], \"🍹\", \"tropical drink\"], [[\"U+1F37A\"], \"🍺\", \"beer mug\"], [[\"U+1F37B\"], \"🍻\", \"clinking beer mugs\"], [[\"U+1F942\"], \"🥂\", \"clinking glasses\"], [[\"U+1F943\"], \"🥃\", \"tumbler glass\"], [[\"U+1F964\"], \"🥤\", \"cup with straw\"], [[\"U+1F9CB\"], \"🧋\", \"⊛ bubble tea\"], [[\"U+1F9C3\"], \"🧃\", \"beverage box\"], [[\"U+1F9C9\"], \"🧉\", \"mate\"], [[\"U+1F9CA\"], \"🧊\", \"ice\"]]], [\"dishware\", [[[\"U+1F962\"], \"🥢\", \"chopsticks\"], [[\"U+1F37D\"], \"🍽\", \"fork and knife with plate\"], [[\"U+1F374\"], \"🍴\", \"fork and knife\"], [[\"U+1F944\"], \"🥄\", \"spoon\"], [[\"U+1F52A\"], \"🔪\", \"kitchen knife\"], [[\"U+1F3FA\"], \"🏺\", \"amphora\"]]]]], [\"Travel & Places\", [[\"place-map\", [[[\"U+1F30D\"], \"🌍\", \"globe showing Europe-Africa\"], [[\"U+1F30E\"], \"🌎\", \"globe showing Americas\"], [[\"U+1F30F\"], \"🌏\", \"globe showing Asia-Australia\"], [[\"U+1F310\"], \"🌐\", \"globe with meridians\"], [[\"U+1F5FA\"], \"🗺\", \"world map\"], [[\"U+1F5FE\"], \"🗾\", \"map of Japan\"], [[\"U+1F9ED\"], \"🧭\", \"compass\"]]], [\"place-geographic\", [[[\"U+1F3D4\"], \"🏔\", \"snow-capped mountain\"], [[\"U+26F0\"], \"⛰\", \"mountain\"], [[\"U+1F30B\"], \"🌋\", \"volcano\"], [[\"U+1F5FB\"], \"🗻\", \"mount fuji\"], [[\"U+1F3D5\"], \"🏕\", \"camping\"], [[\"U+1F3D6\"], \"🏖\", \"beach with umbrella\"], [[\"U+1F3DC\"], \"🏜\", \"desert\"], [[\"U+1F3DD\"], \"🏝\", \"desert island\"], [[\"U+1F3DE\"], \"🏞\", \"national park\"]]], [\"place-building\", [[[\"U+1F3DF\"], \"🏟\", \"stadium\"], [[\"U+1F3DB\"], \"🏛\", \"classical building\"], [[\"U+1F3D7\"], \"🏗\", \"building construction\"], [[\"U+1F9F1\"], \"🧱\", \"brick\"], [[\"U+1FAA8\"], \"🪨\", \"⊛ rock\"], [[\"U+1FAB5\"], \"🪵\", \"⊛ wood\"], [[\"U+1F3D8\"], \"🏘\", \"houses\"], [[\"U+1F3DA\"], \"🏚\", \"derelict house\"], [[\"U+1F3E0\"], \"🏠\", \"house\"], [[\"U+1F3E1\"], \"🏡\", \"house with garden\"], [[\"U+1F3E2\"], \"🏢\", \"office building\"], [[\"U+1F3E3\"], \"🏣\", \"Japanese post office\"], [[\"U+1F3E4\"], \"🏤\", \"post office\"], [[\"U+1F3E5\"], \"🏥\", \"hospital\"], [[\"U+1F3E6\"], \"🏦\", \"bank\"], [[\"U+1F3E8\"], \"🏨\", \"hotel\"], [[\"U+1F3E9\"], \"🏩\", \"love hotel\"], [[\"U+1F3EA\"], \"🏪\", \"convenience store\"], [[\"U+1F3EB\"], \"🏫\", \"school\"], [[\"U+1F3EC\"], \"🏬\", \"department store\"], [[\"U+1F3ED\"], \"🏭\", \"factory\"], [[\"U+1F3EF\"], \"🏯\", \"Japanese castle\"], [[\"U+1F3F0\"], \"🏰\", \"castle\"], [[\"U+1F492\"], \"💒\", \"wedding\"], [[\"U+1F5FC\"], \"🗼\", \"Tokyo tower\"], [[\"U+1F5FD\"], \"🗽\", \"Statue of Liberty\"]]], [\"place-religious\", [[[\"U+26EA\"], \"⛪\", \"church\"], [[\"U+1F54C\"], \"🕌\", \"mosque\"], [[\"U+1F6D5\"], \"🛕\", \"hindu temple\"], [[\"U+1F54D\"], \"🕍\", \"synagogue\"], [[\"U+26E9\"], \"⛩\", \"shinto shrine\"], [[\"U+1F54B\"], \"🕋\", \"kaaba\"]]], [\"place-other\", [[[\"U+26F2\"], \"⛲\", \"fountain\"], [[\"U+26FA\"], \"⛺\", \"tent\"], [[\"U+1F301\"], \"🌁\", \"foggy\"], [[\"U+1F303\"], \"🌃\", \"night with stars\"], [[\"U+1F3D9\"], \"🏙\", \"cityscape\"], [[\"U+1F304\"], \"🌄\", \"sunrise over mountains\"], [[\"U+1F305\"], \"🌅\", \"sunrise\"], [[\"U+1F306\"], \"🌆\", \"cityscape at dusk\"], [[\"U+1F307\"], \"🌇\", \"sunset\"], [[\"U+1F309\"], \"🌉\", \"bridge at night\"], [[\"U+2668\"], \"♨\", \"hot springs\"], [[\"U+1F3A0\"], \"🎠\", \"carousel horse\"], [[\"U+1F3A1\"], \"🎡\", \"ferris wheel\"], [[\"U+1F3A2\"], \"🎢\", \"roller coaster\"], [[\"U+1F488\"], \"💈\", \"barber pole\"], [[\"U+1F3AA\"], \"🎪\", \"circus tent\"]]], [\"transport-ground\", [[[\"U+1F682\"], \"🚂\", \"locomotive\"], [[\"U+1F683\"], \"🚃\", \"railway car\"], [[\"U+1F684\"], \"🚄\", \"high-speed train\"], [[\"U+1F685\"], \"🚅\", \"bullet train\"], [[\"U+1F686\"], \"🚆\", \"train\"], [[\"U+1F687\"], \"🚇\", \"metro\"], [[\"U+1F688\"], \"🚈\", \"light rail\"], [[\"U+1F689\"], \"🚉\", \"station\"], [[\"U+1F68A\"], \"🚊\", \"tram\"], [[\"U+1F69D\"], \"🚝\", \"monorail\"], [[\"U+1F69E\"], \"🚞\", \"mountain railway\"], [[\"U+1F68B\"], \"🚋\", \"tram car\"], [[\"U+1F68C\"], \"🚌\", \"bus\"], [[\"U+1F68D\"], \"🚍\", \"oncoming bus\"], [[\"U+1F68E\"], \"🚎\", \"trolleybus\"], [[\"U+1F690\"], \"🚐\", \"minibus\"], [[\"U+1F691\"], \"🚑\", \"ambulance\"], [[\"U+1F692\"], \"🚒\", \"fire engine\"], [[\"U+1F693\"], \"🚓\", \"police car\"], [[\"U+1F694\"], \"🚔\", \"oncoming police car\"], [[\"U+1F695\"], \"🚕\", \"taxi\"], [[\"U+1F696\"], \"🚖\", \"oncoming taxi\"], [[\"U+1F697\"], \"🚗\", \"automobile\"], [[\"U+1F698\"], \"🚘\", \"oncoming automobile\"], [[\"U+1F699\"], \"🚙\", \"sport utility vehicle\"], [[\"U+1F69A\"], \"🚚\", \"delivery truck\"], [[\"U+1F69B\"], \"🚛\", \"articulated lorry\"], [[\"U+1F69C\"], \"🚜\", \"tractor\"], [[\"U+1F3CE\"], \"🏎\", \"racing car\"], [[\"U+1F3CD\"], \"🏍\", \"motorcycle\"], [[\"U+1F6F5\"], \"🛵\", \"motor scooter\"], [[\"U+1F9BD\"], \"🦽\", \"manual wheelchair\"], [[\"U+1F9BC\"], \"🦼\", \"motorized wheelchair\"], [[\"U+1F6FA\"], \"🛺\", \"auto rickshaw\"], [[\"U+1F6B2\"], \"🚲\", \"bicycle\"], [[\"U+1F6F4\"], \"🛴\", \"kick scooter\"], [[\"U+1F6F9\"], \"🛹\", \"skateboard\"], [[\"U+1F6FC\"], \"🛼\", \"⊛ roller skate\"], [[\"U+1F68F\"], \"🚏\", \"bus stop\"], [[\"U+1F6E3\"], \"🛣\", \"motorway\"], [[\"U+1F6E4\"], \"🛤\", \"railway track\"], [[\"U+1F6E2\"], \"🛢\", \"oil drum\"], [[\"U+26FD\"], \"⛽\", \"fuel pump\"], [[\"U+1F6A8\"], \"🚨\", \"police car light\"], [[\"U+1F6A5\"], \"🚥\", \"horizontal traffic light\"], [[\"U+1F6A6\"], \"🚦\", \"vertical traffic light\"], [[\"U+1F6D1\"], \"🛑\", \"stop sign\"], [[\"U+1F6A7\"], \"🚧\", \"construction\"]]], [\"transport-water\", [[[\"U+2693\"], \"⚓\", \"anchor\"], [[\"U+26F5\"], \"⛵\", \"sailboat\"], [[\"U+1F6F6\"], \"🛶\", \"canoe\"], [[\"U+1F6A4\"], \"🚤\", \"speedboat\"], [[\"U+1F6F3\"], \"🛳\", \"passenger ship\"], [[\"U+26F4\"], \"⛴\", \"ferry\"], [[\"U+1F6E5\"], \"🛥\", \"motor boat\"], [[\"U+1F6A2\"], \"🚢\", \"ship\"]]], [\"transport-air\", [[[\"U+2708\"], \"✈\", \"airplane\"], [[\"U+1F6E9\"], \"🛩\", \"small airplane\"], [[\"U+1F6EB\"], \"🛫\", \"airplane departure\"], [[\"U+1F6EC\"], \"🛬\", \"airplane arrival\"], [[\"U+1FA82\"], \"🪂\", \"parachute\"], [[\"U+1F4BA\"], \"💺\", \"seat\"], [[\"U+1F681\"], \"🚁\", \"helicopter\"], [[\"U+1F69F\"], \"🚟\", \"suspension railway\"], [[\"U+1F6A0\"], \"🚠\", \"mountain cableway\"], [[\"U+1F6A1\"], \"🚡\", \"aerial tramway\"], [[\"U+1F6F0\"], \"🛰\", \"satellite\"], [[\"U+1F680\"], \"🚀\", \"rocket\"], [[\"U+1F6F8\"], \"🛸\", \"flying saucer\"]]], [\"hotel\", [[[\"U+1F6CE\"], \"🛎\", \"bellhop bell\"], [[\"U+1F9F3\"], \"🧳\", \"luggage\"]]], [\"time\", [[[\"U+231B\"], \"⌛\", \"hourglass done\"], [[\"U+23F3\"], \"⏳\", \"hourglass not done\"], [[\"U+231A\"], \"⌚\", \"watch\"], [[\"U+23F0\"], \"⏰\", \"alarm clock\"], [[\"U+23F1\"], \"⏱\", \"stopwatch\"], [[\"U+23F2\"], \"⏲\", \"timer clock\"], [[\"U+1F570\"], \"🕰\", \"mantelpiece clock\"], [[\"U+1F55B\"], \"🕛\", \"twelve o’clock\"], [[\"U+1F567\"], \"🕧\", \"twelve-thirty\"], [[\"U+1F550\"], \"🕐\", \"one o’clock\"], [[\"U+1F55C\"], \"🕜\", \"one-thirty\"], [[\"U+1F551\"], \"🕑\", \"two o’clock\"], [[\"U+1F55D\"], \"🕝\", \"two-thirty\"], [[\"U+1F552\"], \"🕒\", \"three o’clock\"], [[\"U+1F55E\"], \"🕞\", \"three-thirty\"], [[\"U+1F553\"], \"🕓\", \"four o’clock\"], [[\"U+1F55F\"], \"🕟\", \"four-thirty\"], [[\"U+1F554\"], \"🕔\", \"five o’clock\"], [[\"U+1F560\"], \"🕠\", \"five-thirty\"], [[\"U+1F555\"], \"🕕\", \"six o’clock\"], [[\"U+1F561\"], \"🕡\", \"six-thirty\"], [[\"U+1F556\"], \"🕖\", \"seven o’clock\"], [[\"U+1F562\"], \"🕢\", \"seven-thirty\"], [[\"U+1F557\"], \"🕗\", \"eight o’clock\"], [[\"U+1F563\"], \"🕣\", \"eight-thirty\"], [[\"U+1F558\"], \"🕘\", \"nine o’clock\"], [[\"U+1F564\"], \"🕤\", \"nine-thirty\"], [[\"U+1F559\"], \"🕙\", \"ten o’clock\"], [[\"U+1F565\"], \"🕥\", \"ten-thirty\"], [[\"U+1F55A\"], \"🕚\", \"eleven o’clock\"], [[\"U+1F566\"], \"🕦\", \"eleven-thirty\"]]], [\"sky & weather\", [[[\"U+1F311\"], \"🌑\", \"new moon\"], [[\"U+1F312\"], \"🌒\", \"waxing crescent moon\"], [[\"U+1F313\"], \"🌓\", \"first quarter moon\"], [[\"U+1F314\"], \"🌔\", \"waxing gibbous moon\"], [[\"U+1F315\"], \"🌕\", \"full moon\"], [[\"U+1F316\"], \"🌖\", \"waning gibbous moon\"], [[\"U+1F317\"], \"🌗\", \"last quarter moon\"], [[\"U+1F318\"], \"🌘\", \"waning crescent moon\"], [[\"U+1F319\"], \"🌙\", \"crescent moon\"], [[\"U+1F31A\"], \"🌚\", \"new moon face\"], [[\"U+1F31B\"], \"🌛\", \"first quarter moon face\"], [[\"U+1F31C\"], \"🌜\", \"last quarter moon face\"], [[\"U+1F321\"], \"🌡\", \"thermometer\"], [[\"U+2600\"], \"☀\", \"sun\"], [[\"U+1F31D\"], \"🌝\", \"full moon face\"], [[\"U+1F31E\"], \"🌞\", \"sun with face\"], [[\"U+1FA90\"], \"🪐\", \"ringed planet\"], [[\"U+2B50\"], \"⭐\", \"star\"], [[\"U+1F31F\"], \"🌟\", \"glowing star\"], [[\"U+1F320\"], \"🌠\", \"shooting star\"], [[\"U+1F30C\"], \"🌌\", \"milky way\"], [[\"U+2601\"], \"☁\", \"cloud\"], [[\"U+26C5\"], \"⛅\", \"sun behind cloud\"], [[\"U+26C8\"], \"⛈\", \"cloud with lightning and rain\"], [[\"U+1F324\"], \"🌤\", \"sun behind small cloud\"], [[\"U+1F325\"], \"🌥\", \"sun behind large cloud\"], [[\"U+1F326\"], \"🌦\", \"sun behind rain cloud\"], [[\"U+1F327\"], \"🌧\", \"cloud with rain\"], [[\"U+1F328\"], \"🌨\", \"cloud with snow\"], [[\"U+1F329\"], \"🌩\", \"cloud with lightning\"], [[\"U+1F32A\"], \"🌪\", \"tornado\"], [[\"U+1F32B\"], \"🌫\", \"fog\"], [[\"U+1F32C\"], \"🌬\", \"wind face\"], [[\"U+1F300\"], \"🌀\", \"cyclone\"], [[\"U+1F308\"], \"🌈\", \"rainbow\"], [[\"U+1F302\"], \"🌂\", \"closed umbrella\"], [[\"U+2602\"], \"☂\", \"umbrella\"], [[\"U+2614\"], \"☔\", \"umbrella with rain drops\"], [[\"U+26F1\"], \"⛱\", \"umbrella on ground\"], [[\"U+26A1\"], \"⚡\", \"high voltage\"], [[\"U+2744\"], \"❄\", \"snowflake\"], [[\"U+2603\"], \"☃\", \"snowman\"], [[\"U+26C4\"], \"⛄\", \"snowman without snow\"], [[\"U+2604\"], \"☄\", \"comet\"], [[\"U+1F525\"], \"🔥\", \"fire\"], [[\"U+1F4A7\"], \"💧\", \"droplet\"], [[\"U+1F30A\"], \"🌊\", \"water wave\"]]]]], [\"Activities\", [[\"event\", [[[\"U+1F383\"], \"🎃\", \"jack-o-lantern\"], [[\"U+1F384\"], \"🎄\", \"Christmas tree\"], [[\"U+1F386\"], \"🎆\", \"fireworks\"], [[\"U+1F387\"], \"🎇\", \"sparkler\"], [[\"U+1F9E8\"], \"🧨\", \"firecracker\"], [[\"U+2728\"], \"✨\", \"sparkles\"], [[\"U+1F388\"], \"🎈\", \"balloon\"], [[\"U+1F389\"], \"🎉\", \"party popper\"], [[\"U+1F38A\"], \"🎊\", \"confetti ball\"], [[\"U+1F38B\"], \"🎋\", \"tanabata tree\"], [[\"U+1F38D\"], \"🎍\", \"pine decoration\"], [[\"U+1F38E\"], \"🎎\", \"Japanese dolls\"], [[\"U+1F38F\"], \"🎏\", \"carp streamer\"], [[\"U+1F390\"], \"🎐\", \"wind chime\"], [[\"U+1F391\"], \"🎑\", \"moon viewing ceremony\"], [[\"U+1F9E7\"], \"🧧\", \"red envelope\"], [[\"U+1F380\"], \"🎀\", \"ribbon\"], [[\"U+1F381\"], \"🎁\", \"wrapped gift\"], [[\"U+1F397\"], \"🎗\", \"reminder ribbon\"], [[\"U+1F39F\"], \"🎟\", \"admission tickets\"], [[\"U+1F3AB\"], \"🎫\", \"ticket\"]]], [\"award-medal\", [[[\"U+1F396\"], \"🎖\", \"military medal\"], [[\"U+1F3C6\"], \"🏆\", \"trophy\"], [[\"U+1F3C5\"], \"🏅\", \"sports medal\"], [[\"U+1F947\"], \"🥇\", \"1st place medal\"], [[\"U+1F948\"], \"🥈\", \"2nd place medal\"], [[\"U+1F949\"], \"🥉\", \"3rd place medal\"]]], [\"sport\", [[[\"U+26BD\"], \"⚽\", \"soccer ball\"], [[\"U+26BE\"], \"⚾\", \"baseball\"], [[\"U+1F94E\"], \"🥎\", \"softball\"], [[\"U+1F3C0\"], \"🏀\", \"basketball\"], [[\"U+1F3D0\"], \"🏐\", \"volleyball\"], [[\"U+1F3C8\"], \"🏈\", \"american football\"], [[\"U+1F3C9\"], \"🏉\", \"rugby football\"], [[\"U+1F3BE\"], \"🎾\", \"tennis\"], [[\"U+1F94F\"], \"🥏\", \"flying disc\"], [[\"U+1F3B3\"], \"🎳\", \"bowling\"], [[\"U+1F3CF\"], \"🏏\", \"cricket game\"], [[\"U+1F3D1\"], \"🏑\", \"field hockey\"], [[\"U+1F3D2\"], \"🏒\", \"ice hockey\"], [[\"U+1F94D\"], \"🥍\", \"lacrosse\"], [[\"U+1F3D3\"], \"🏓\", \"ping pong\"], [[\"U+1F3F8\"], \"🏸\", \"badminton\"], [[\"U+1F94A\"], \"🥊\", \"boxing glove\"], [[\"U+1F94B\"], \"🥋\", \"martial arts uniform\"], [[\"U+1F945\"], \"🥅\", \"goal net\"], [[\"U+26F3\"], \"⛳\", \"flag in hole\"], [[\"U+26F8\"], \"⛸\", \"ice skate\"], [[\"U+1F3A3\"], \"🎣\", \"fishing pole\"], [[\"U+1F93F\"], \"🤿\", \"diving mask\"], [[\"U+1F3BD\"], \"🎽\", \"running shirt\"], [[\"U+1F3BF\"], \"🎿\", \"skis\"], [[\"U+1F6F7\"], \"🛷\", \"sled\"], [[\"U+1F94C\"], \"🥌\", \"curling stone\"]]], [\"game\", [[[\"U+1F3AF\"], \"🎯\", \"direct hit\"], [[\"U+1FA80\"], \"🪀\", \"yo-yo\"], [[\"U+1FA81\"], \"🪁\", \"kite\"], [[\"U+1F3B1\"], \"🎱\", \"pool 8 ball\"], [[\"U+1F52E\"], \"🔮\", \"crystal ball\"], [[\"U+1FA84\"], \"🪄\", \"⊛ magic wand\"], [[\"U+1F9FF\"], \"🧿\", \"nazar amulet\"], [[\"U+1F3AE\"], \"🎮\", \"video game\"], [[\"U+1F579\"], \"🕹\", \"joystick\"], [[\"U+1F3B0\"], \"🎰\", \"slot machine\"], [[\"U+1F3B2\"], \"🎲\", \"game die\"], [[\"U+1F9E9\"], \"🧩\", \"puzzle piece\"], [[\"U+1F9F8\"], \"🧸\", \"teddy bear\"], [[\"U+1FA85\"], \"🪅\", \"⊛ piñata\"], [[\"U+1FA86\"], \"🪆\", \"⊛ nesting dolls\"], [[\"U+2660\"], \"♠\", \"spade suit\"], [[\"U+2665\"], \"♥\", \"heart suit\"], [[\"U+2666\"], \"♦\", \"diamond suit\"], [[\"U+2663\"], \"♣\", \"club suit\"], [[\"U+265F\"], \"♟\", \"chess pawn\"], [[\"U+1F0CF\"], \"🃏\", \"joker\"], [[\"U+1F004\"], \"🀄\", \"mahjong red dragon\"], [[\"U+1F3B4\"], \"🎴\", \"flower playing cards\"]]], [\"arts & crafts\", [[[\"U+1F3AD\"], \"🎭\", \"performing arts\"], [[\"U+1F5BC\"], \"🖼\", \"framed picture\"], [[\"U+1F3A8\"], \"🎨\", \"artist palette\"], [[\"U+1F9F5\"], \"🧵\", \"thread\"], [[\"U+1FAA1\"], \"🪡\", \"⊛ sewing needle\"], [[\"U+1F9F6\"], \"🧶\", \"yarn\"], [[\"U+1FAA2\"], \"🪢\", \"⊛ knot\"]]]]], [\"Objects\", [[\"clothing\", [[[\"U+1F453\"], \"👓\", \"glasses\"], [[\"U+1F576\"], \"🕶\", \"sunglasses\"], [[\"U+1F97D\"], \"🥽\", \"goggles\"], [[\"U+1F97C\"], \"🥼\", \"lab coat\"], [[\"U+1F9BA\"], \"🦺\", \"safety vest\"], [[\"U+1F454\"], \"👔\", \"necktie\"], [[\"U+1F455\"], \"👕\", \"t-shirt\"], [[\"U+1F456\"], \"👖\", \"jeans\"], [[\"U+1F9E3\"], \"🧣\", \"scarf\"], [[\"U+1F9E4\"], \"🧤\", \"gloves\"], [[\"U+1F9E5\"], \"🧥\", \"coat\"], [[\"U+1F9E6\"], \"🧦\", \"socks\"], [[\"U+1F457\"], \"👗\", \"dress\"], [[\"U+1F458\"], \"👘\", \"kimono\"], [[\"U+1F97B\"], \"🥻\", \"sari\"], [[\"U+1FA71\"], \"🩱\", \"one-piece swimsuit\"], [[\"U+1FA72\"], \"🩲\", \"briefs\"], [[\"U+1FA73\"], \"🩳\", \"shorts\"], [[\"U+1F459\"], \"👙\", \"bikini\"], [[\"U+1F45A\"], \"👚\", \"woman’s clothes\"], [[\"U+1F45B\"], \"👛\", \"purse\"], [[\"U+1F45C\"], \"👜\", \"handbag\"], [[\"U+1F45D\"], \"👝\", \"clutch bag\"], [[\"U+1F6CD\"], \"🛍\", \"shopping bags\"], [[\"U+1F392\"], \"🎒\", \"backpack\"], [[\"U+1FA74\"], \"🩴\", \"⊛ thong sandal\"], [[\"U+1F45E\"], \"👞\", \"man’s shoe\"], [[\"U+1F45F\"], \"👟\", \"running shoe\"], [[\"U+1F97E\"], \"🥾\", \"hiking boot\"], [[\"U+1F97F\"], \"🥿\", \"flat shoe\"], [[\"U+1F460\"], \"👠\", \"high-heeled shoe\"], [[\"U+1F461\"], \"👡\", \"woman’s sandal\"], [[\"U+1FA70\"], \"🩰\", \"ballet shoes\"], [[\"U+1F462\"], \"👢\", \"woman’s boot\"], [[\"U+1F451\"], \"👑\", \"crown\"], [[\"U+1F452\"], \"👒\", \"woman’s hat\"], [[\"U+1F3A9\"], \"🎩\", \"top hat\"], [[\"U+1F393\"], \"🎓\", \"graduation cap\"], [[\"U+1F9E2\"], \"🧢\", \"billed cap\"], [[\"U+1FA96\"], \"🪖\", \"⊛ military helmet\"], [[\"U+26D1\"], \"⛑\", \"rescue worker’s helmet\"], [[\"U+1F4FF\"], \"📿\", \"prayer beads\"], [[\"U+1F484\"], \"💄\", \"lipstick\"], [[\"U+1F48D\"], \"💍\", \"ring\"], [[\"U+1F48E\"], \"💎\", \"gem stone\"]]], [\"sound\", [[[\"U+1F507\"], \"🔇\", \"muted speaker\"], [[\"U+1F508\"], \"🔈\", \"speaker low volume\"], [[\"U+1F509\"], \"🔉\", \"speaker medium volume\"], [[\"U+1F50A\"], \"🔊\", \"speaker high volume\"], [[\"U+1F4E2\"], \"📢\", \"loudspeaker\"], [[\"U+1F4E3\"], \"📣\", \"megaphone\"], [[\"U+1F4EF\"], \"📯\", \"postal horn\"], [[\"U+1F514\"], \"🔔\", \"bell\"], [[\"U+1F515\"], \"🔕\", \"bell with slash\"]]], [\"music\", [[[\"U+1F3BC\"], \"🎼\", \"musical score\"], [[\"U+1F3B5\"], \"🎵\", \"musical note\"], [[\"U+1F3B6\"], \"🎶\", \"musical notes\"], [[\"U+1F399\"], \"🎙\", \"studio microphone\"], [[\"U+1F39A\"], \"🎚\", \"level slider\"], [[\"U+1F39B\"], \"🎛\", \"control knobs\"], [[\"U+1F3A4\"], \"🎤\", \"microphone\"], [[\"U+1F3A7\"], \"🎧\", \"headphone\"], [[\"U+1F4FB\"], \"📻\", \"radio\"]]], [\"musical-instrument\", [[[\"U+1F3B7\"], \"🎷\", \"saxophone\"], [[\"U+1FA97\"], \"🪗\", \"⊛ accordion\"], [[\"U+1F3B8\"], \"🎸\", \"guitar\"], [[\"U+1F3B9\"], \"🎹\", \"musical keyboard\"], [[\"U+1F3BA\"], \"🎺\", \"trumpet\"], [[\"U+1F3BB\"], \"🎻\", \"violin\"], [[\"U+1FA95\"], \"🪕\", \"banjo\"], [[\"U+1F941\"], \"🥁\", \"drum\"], [[\"U+1FA98\"], \"🪘\", \"⊛ long drum\"]]], [\"phone\", [[[\"U+1F4F1\"], \"📱\", \"mobile phone\"], [[\"U+1F4F2\"], \"📲\", \"mobile phone with arrow\"], [[\"U+260E\"], \"☎\", \"telephone\"], [[\"U+1F4DE\"], \"📞\", \"telephone receiver\"], [[\"U+1F4DF\"], \"📟\", \"pager\"], [[\"U+1F4E0\"], \"📠\", \"fax machine\"]]], [\"computer\", [[[\"U+1F50B\"], \"🔋\", \"battery\"], [[\"U+1F50C\"], \"🔌\", \"electric plug\"], [[\"U+1F4BB\"], \"💻\", \"laptop\"], [[\"U+1F5A5\"], \"🖥\", \"desktop computer\"], [[\"U+1F5A8\"], \"🖨\", \"printer\"], [[\"U+2328\"], \"⌨\", \"keyboard\"], [[\"U+1F5B1\"], \"🖱\", \"computer mouse\"], [[\"U+1F5B2\"], \"🖲\", \"trackball\"], [[\"U+1F4BD\"], \"💽\", \"computer disk\"], [[\"U+1F4BE\"], \"💾\", \"floppy disk\"], [[\"U+1F4BF\"], \"💿\", \"optical disk\"], [[\"U+1F4C0\"], \"📀\", \"dvd\"], [[\"U+1F9EE\"], \"🧮\", \"abacus\"]]], [\"light & video\", [[[\"U+1F3A5\"], \"🎥\", \"movie camera\"], [[\"U+1F39E\"], \"🎞\", \"film frames\"], [[\"U+1F4FD\"], \"📽\", \"film projector\"], [[\"U+1F3AC\"], \"🎬\", \"clapper board\"], [[\"U+1F4FA\"], \"📺\", \"television\"], [[\"U+1F4F7\"], \"📷\", \"camera\"], [[\"U+1F4F8\"], \"📸\", \"camera with flash\"], [[\"U+1F4F9\"], \"📹\", \"video camera\"], [[\"U+1F4FC\"], \"📼\", \"videocassette\"], [[\"U+1F50D\"], \"🔍\", \"magnifying glass tilted left\"], [[\"U+1F50E\"], \"🔎\", \"magnifying glass tilted right\"], [[\"U+1F56F\"], \"🕯\", \"candle\"], [[\"U+1F4A1\"], \"💡\", \"light bulb\"], [[\"U+1F526\"], \"🔦\", \"flashlight\"], [[\"U+1F3EE\"], \"🏮\", \"red paper lantern\"], [[\"U+1FA94\"], \"🪔\", \"diya lamp\"]]], [\"book-paper\", [[[\"U+1F4D4\"], \"📔\", \"notebook with decorative cover\"], [[\"U+1F4D5\"], \"📕\", \"closed book\"], [[\"U+1F4D6\"], \"📖\", \"open book\"], [[\"U+1F4D7\"], \"📗\", \"green book\"], [[\"U+1F4D8\"], \"📘\", \"blue book\"], [[\"U+1F4D9\"], \"📙\", \"orange book\"], [[\"U+1F4DA\"], \"📚\", \"books\"], [[\"U+1F4D3\"], \"📓\", \"notebook\"], [[\"U+1F4D2\"], \"📒\", \"ledger\"], [[\"U+1F4C3\"], \"📃\", \"page with curl\"], [[\"U+1F4DC\"], \"📜\", \"scroll\"], [[\"U+1F4C4\"], \"📄\", \"page facing up\"], [[\"U+1F4F0\"], \"📰\", \"newspaper\"], [[\"U+1F5DE\"], \"🗞\", \"rolled-up newspaper\"], [[\"U+1F4D1\"], \"📑\", \"bookmark tabs\"], [[\"U+1F516\"], \"🔖\", \"bookmark\"], [[\"U+1F3F7\"], \"🏷\", \"label\"]]], [\"money\", [[[\"U+1F4B0\"], \"💰\", \"money bag\"], [[\"U+1FA99\"], \"🪙\", \"⊛ coin\"], [[\"U+1F4B4\"], \"💴\", \"yen banknote\"], [[\"U+1F4B5\"], \"💵\", \"dollar banknote\"], [[\"U+1F4B6\"], \"💶\", \"euro banknote\"], [[\"U+1F4B7\"], \"💷\", \"pound banknote\"], [[\"U+1F4B8\"], \"💸\", \"money with wings\"], [[\"U+1F4B3\"], \"💳\", \"credit card\"], [[\"U+1F9FE\"], \"🧾\", \"receipt\"], [[\"U+1F4B9\"], \"💹\", \"chart increasing with yen\"]]], [\"mail\", [[[\"U+2709\"], \"✉\", \"envelope\"], [[\"U+1F4E7\"], \"📧\", \"e-mail\"], [[\"U+1F4E8\"], \"📨\", \"incoming envelope\"], [[\"U+1F4E9\"], \"📩\", \"envelope with arrow\"], [[\"U+1F4E4\"], \"📤\", \"outbox tray\"], [[\"U+1F4E5\"], \"📥\", \"inbox tray\"], [[\"U+1F4E6\"], \"📦\", \"package\"], [[\"U+1F4EB\"], \"📫\", \"closed mailbox with raised flag\"], [[\"U+1F4EA\"], \"📪\", \"closed mailbox with lowered flag\"], [[\"U+1F4EC\"], \"📬\", \"open mailbox with raised flag\"], [[\"U+1F4ED\"], \"📭\", \"open mailbox with lowered flag\"], [[\"U+1F4EE\"], \"📮\", \"postbox\"], [[\"U+1F5F3\"], \"🗳\", \"ballot box with ballot\"]]], [\"writing\", [[[\"U+270F\"], \"✏\", \"pencil\"], [[\"U+2712\"], \"✒\", \"black nib\"], [[\"U+1F58B\"], \"🖋\", \"fountain pen\"], [[\"U+1F58A\"], \"🖊\", \"pen\"], [[\"U+1F58C\"], \"🖌\", \"paintbrush\"], [[\"U+1F58D\"], \"🖍\", \"crayon\"], [[\"U+1F4DD\"], \"📝\", \"memo\"]]], [\"office\", [[[\"U+1F4BC\"], \"💼\", \"briefcase\"], [[\"U+1F4C1\"], \"📁\", \"file folder\"], [[\"U+1F4C2\"], \"📂\", \"open file folder\"], [[\"U+1F5C2\"], \"🗂\", \"card index dividers\"], [[\"U+1F4C5\"], \"📅\", \"calendar\"], [[\"U+1F4C6\"], \"📆\", \"tear-off calendar\"], [[\"U+1F5D2\"], \"🗒\", \"spiral notepad\"], [[\"U+1F5D3\"], \"🗓\", \"spiral calendar\"], [[\"U+1F4C7\"], \"📇\", \"card index\"], [[\"U+1F4C8\"], \"📈\", \"chart increasing\"], [[\"U+1F4C9\"], \"📉\", \"chart decreasing\"], [[\"U+1F4CA\"], \"📊\", \"bar chart\"], [[\"U+1F4CB\"], \"📋\", \"clipboard\"], [[\"U+1F4CC\"], \"📌\", \"pushpin\"], [[\"U+1F4CD\"], \"📍\", \"round pushpin\"], [[\"U+1F4CE\"], \"📎\", \"paperclip\"], [[\"U+1F587\"], \"🖇\", \"linked paperclips\"], [[\"U+1F4CF\"], \"📏\", \"straight ruler\"], [[\"U+1F4D0\"], \"📐\", \"triangular ruler\"], [[\"U+2702\"], \"✂\", \"scissors\"], [[\"U+1F5C3\"], \"🗃\", \"card file box\"], [[\"U+1F5C4\"], \"🗄\", \"file cabinet\"], [[\"U+1F5D1\"], \"🗑\", \"wastebasket\"]]], [\"lock\", [[[\"U+1F512\"], \"🔒\", \"locked\"], [[\"U+1F513\"], \"🔓\", \"unlocked\"], [[\"U+1F50F\"], \"🔏\", \"locked with pen\"], [[\"U+1F510\"], \"🔐\", \"locked with key\"], [[\"U+1F511\"], \"🔑\", \"key\"], [[\"U+1F5DD\"], \"🗝\", \"old key\"]]], [\"tool\", [[[\"U+1F528\"], \"🔨\", \"hammer\"], [[\"U+1FA93\"], \"🪓\", \"axe\"], [[\"U+26CF\"], \"⛏\", \"pick\"], [[\"U+2692\"], \"⚒\", \"hammer and pick\"], [[\"U+1F6E0\"], \"🛠\", \"hammer and wrench\"], [[\"U+1F5E1\"], \"🗡\", \"dagger\"], [[\"U+2694\"], \"⚔\", \"crossed swords\"], [[\"U+1F52B\"], \"🔫\", \"pistol\"], [[\"U+1FA83\"], \"🪃\", \"⊛ boomerang\"], [[\"U+1F3F9\"], \"🏹\", \"bow and arrow\"], [[\"U+1F6E1\"], \"🛡\", \"shield\"], [[\"U+1F527\"], \"🔧\", \"wrench\"], [[\"U+1FA9B\"], \"🪛\", \"⊛ screwdriver\"], [[\"U+1F529\"], \"🔩\", \"nut and bolt\"], [[\"U+2699\"], \"⚙\", \"gear\"], [[\"U+1F5DC\"], \"🗜\", \"clamp\"], [[\"U+2696\"], \"⚖\", \"balance scale\"], [[\"U+1F9AF\"], \"🦯\", \"white cane\"], [[\"U+1F517\"], \"🔗\", \"link\"], [[\"U+26D3\"], \"⛓\", \"chains\"], [[\"U+1FA9D\"], \"🪝\", \"⊛ hook\"], [[\"U+1F9F0\"], \"🧰\", \"toolbox\"], [[\"U+1F9F2\"], \"🧲\", \"magnet\"], [[\"U+1FA9C\"], \"🪜\", \"⊛ ladder\"]]], [\"science\", [[[\"U+2697\"], \"⚗\", \"alembic\"], [[\"U+1F9EA\"], \"🧪\", \"test tube\"], [[\"U+1F9EB\"], \"🧫\", \"petri dish\"], [[\"U+1F9EC\"], \"🧬\", \"dna\"], [[\"U+1F52C\"], \"🔬\", \"microscope\"], [[\"U+1F52D\"], \"🔭\", \"telescope\"], [[\"U+1F4E1\"], \"📡\", \"satellite antenna\"]]], [\"medical\", [[[\"U+1F489\"], \"💉\", \"syringe\"], [[\"U+1FA78\"], \"🩸\", \"drop of blood\"], [[\"U+1F48A\"], \"💊\", \"pill\"], [[\"U+1FA79\"], \"🩹\", \"adhesive bandage\"], [[\"U+1FA7A\"], \"🩺\", \"stethoscope\"]]], [\"household\", [[[\"U+1F6AA\"], \"🚪\", \"door\"], [[\"U+1F6D7\"], \"🛗\", \"⊛ elevator\"], [[\"U+1F6CF\"], \"🛏\", \"bed\"], [[\"U+1F6CB\"], \"🛋\", \"couch and lamp\"], [[\"U+1FA91\"], \"🪑\", \"chair\"], [[\"U+1F6BD\"], \"🚽\", \"toilet\"], [[\"U+1FAA0\"], \"🪠\", \"⊛ plunger\"], [[\"U+1F6BF\"], \"🚿\", \"shower\"], [[\"U+1F6C1\"], \"🛁\", \"bathtub\"], [[\"U+1FA92\"], \"🪒\", \"razor\"], [[\"U+1F9F4\"], \"🧴\", \"lotion bottle\"], [[\"U+1F9F7\"], \"🧷\", \"safety pin\"], [[\"U+1F9F9\"], \"🧹\", \"broom\"], [[\"U+1F9FA\"], \"🧺\", \"basket\"], [[\"U+1F9FB\"], \"🧻\", \"roll of paper\"], [[\"U+1FAA3\"], \"🪣\", \"⊛ bucket\"], [[\"U+1F9FC\"], \"🧼\", \"soap\"], [[\"U+1FAA5\"], \"🪥\", \"⊛ toothbrush\"], [[\"U+1F9FD\"], \"🧽\", \"sponge\"], [[\"U+1F9EF\"], \"🧯\", \"fire extinguisher\"], [[\"U+1F6D2\"], \"🛒\", \"shopping cart\"]]], [\"other-object\", [[[\"U+1F6AC\"], \"🚬\", \"cigarette\"], [[\"U+26B0\"], \"⚰\", \"coffin\"], [[\"U+26B1\"], \"⚱\", \"funeral urn\"], [[\"U+1F5FF\"], \"🗿\", \"moai\"], [[\"U+1FAA7\"], \"🪧\", \"⊛ placard\"]]]]], [\"Symbols\", [[\"transport-sign\", [[[\"U+1F3E7\"], \"🏧\", \"ATM sign\"], [[\"U+1F6AE\"], \"🚮\", \"litter in bin sign\"], [[\"U+1F6B0\"], \"🚰\", \"potable water\"], [[\"U+267F\"], \"♿\", \"wheelchair symbol\"], [[\"U+1F6B9\"], \"🚹\", \"men’s room\"], [[\"U+1F6BA\"], \"🚺\", \"women’s room\"], [[\"U+1F6BB\"], \"🚻\", \"restroom\"], [[\"U+1F6BC\"], \"🚼\", \"baby symbol\"], [[\"U+1F6BE\"], \"🚾\", \"water closet\"], [[\"U+1F6C2\"], \"🛂\", \"passport control\"], [[\"U+1F6C3\"], \"🛃\", \"customs\"], [[\"U+1F6C4\"], \"🛄\", \"baggage claim\"], [[\"U+1F6C5\"], \"🛅\", \"left luggage\"]]], [\"warning\", [[[\"U+26A0\"], \"⚠\", \"warning\"], [[\"U+1F6B8\"], \"🚸\", \"children crossing\"], [[\"U+26D4\"], \"⛔\", \"no entry\"], [[\"U+1F6AB\"], \"🚫\", \"prohibited\"], [[\"U+1F6B3\"], \"🚳\", \"no bicycles\"], [[\"U+1F6AD\"], \"🚭\", \"no smoking\"], [[\"U+1F6AF\"], \"🚯\", \"no littering\"], [[\"U+1F6B1\"], \"🚱\", \"non-potable water\"], [[\"U+1F6B7\"], \"🚷\", \"no pedestrians\"], [[\"U+1F4F5\"], \"📵\", \"no mobile phones\"], [[\"U+1F51E\"], \"🔞\", \"no one under eighteen\"], [[\"U+2622\"], \"☢\", \"radioactive\"], [[\"U+2623\"], \"☣\", \"biohazard\"]]], [\"arrow\", [[[\"U+2B06\"], \"⬆\", \"up arrow\"], [[\"U+2197\"], \"↗\", \"up-right arrow\"], [[\"U+27A1\"], \"➡\", \"right arrow\"], [[\"U+2198\"], \"↘\", \"down-right arrow\"], [[\"U+2B07\"], \"⬇\", \"down arrow\"], [[\"U+2199\"], \"↙\", \"down-left arrow\"], [[\"U+2B05\"], \"⬅\", \"left arrow\"], [[\"U+2196\"], \"↖\", \"up-left arrow\"], [[\"U+2195\"], \"↕\", \"up-down arrow\"], [[\"U+2194\"], \"↔\", \"left-right arrow\"], [[\"U+21A9\"], \"↩\", \"right arrow curving left\"], [[\"U+21AA\"], \"↪\", \"left arrow curving right\"], [[\"U+2934\"], \"⤴\", \"right arrow curving up\"], [[\"U+2935\"], \"⤵\", \"right arrow curving down\"], [[\"U+1F503\"], \"🔃\", \"clockwise vertical arrows\"], [[\"U+1F504\"], \"🔄\", \"counterclockwise arrows button\"], [[\"U+1F519\"], \"🔙\", \"BACK arrow\"], [[\"U+1F51A\"], \"🔚\", \"END arrow\"], [[\"U+1F51B\"], \"🔛\", \"ON! arrow\"], [[\"U+1F51C\"], \"🔜\", \"SOON arrow\"], [[\"U+1F51D\"], \"🔝\", \"TOP arrow\"]]], [\"religion\", [[[\"U+1F6D0\"], \"🛐\", \"place of worship\"], [[\"U+269B\"], \"⚛\", \"atom symbol\"], [[\"U+1F549\"], \"🕉\", \"om\"], [[\"U+2721\"], \"✡\", \"star of David\"], [[\"U+2638\"], \"☸\", \"wheel of dharma\"], [[\"U+262F\"], \"☯\", \"yin yang\"], [[\"U+271D\"], \"✝\", \"latin cross\"], [[\"U+2626\"], \"☦\", \"orthodox cross\"], [[\"U+262A\"], \"☪\", \"star and crescent\"], [[\"U+262E\"], \"☮\", \"peace symbol\"], [[\"U+1F54E\"], \"🕎\", \"menorah\"], [[\"U+1F52F\"], \"🔯\", \"dotted six-pointed star\"]]], [\"zodiac\", [[[\"U+2648\"], \"♈\", \"Aries\"], [[\"U+2649\"], \"♉\", \"Taurus\"], [[\"U+264A\"], \"♊\", \"Gemini\"], [[\"U+264B\"], \"♋\", \"Cancer\"], [[\"U+264C\"], \"♌\", \"Leo\"], [[\"U+264D\"], \"♍\", \"Virgo\"], [[\"U+264E\"], \"♎\", \"Libra\"], [[\"U+264F\"], \"♏\", \"Scorpio\"], [[\"U+2650\"], \"♐\", \"Sagittarius\"], [[\"U+2651\"], \"♑\", \"Capricorn\"], [[\"U+2652\"], \"♒\", \"Aquarius\"], [[\"U+2653\"], \"♓\", \"Pisces\"], [[\"U+26CE\"], \"⛎\", \"Ophiuchus\"]]], [\"av-symbol\", [[[\"U+1F500\"], \"🔀\", \"shuffle tracks button\"], [[\"U+1F501\"], \"🔁\", \"repeat button\"], [[\"U+1F502\"], \"🔂\", \"repeat single button\"], [[\"U+25B6\"], \"▶\", \"play button\"], [[\"U+23E9\"], \"⏩\", \"fast-forward button\"], [[\"U+23ED\"], \"⏭\", \"next track button\"], [[\"U+23EF\"], \"⏯\", \"play or pause button\"], [[\"U+25C0\"], \"◀\", \"reverse button\"], [[\"U+23EA\"], \"⏪\", \"fast reverse button\"], [[\"U+23EE\"], \"⏮\", \"last track button\"], [[\"U+1F53C\"], \"🔼\", \"upwards button\"], [[\"U+23EB\"], \"⏫\", \"fast up button\"], [[\"U+1F53D\"], \"🔽\", \"downwards button\"], [[\"U+23EC\"], \"⏬\", \"fast down button\"], [[\"U+23F8\"], \"⏸\", \"pause button\"], [[\"U+23F9\"], \"⏹\", \"stop button\"], [[\"U+23FA\"], \"⏺\", \"record button\"], [[\"U+23CF\"], \"⏏\", \"eject button\"], [[\"U+1F3A6\"], \"🎦\", \"cinema\"], [[\"U+1F505\"], \"🔅\", \"dim button\"], [[\"U+1F506\"], \"🔆\", \"bright button\"], [[\"U+1F4F6\"], \"📶\", \"antenna bars\"], [[\"U+1F4F3\"], \"📳\", \"vibration mode\"], [[\"U+1F4F4\"], \"📴\", \"mobile phone off\"]]], [\"gender\", [[[\"U+2640\"], \"♀\", \"female sign\"], [[\"U+2642\"], \"♂\", \"male sign\"], [[\"U+26A7\"], \"⚧\", \"⊛ transgender symbol\"]]], [\"math\", [[[\"U+2716\"], \"✖\", \"multiply\"], [[\"U+2795\"], \"➕\", \"plus\"], [[\"U+2796\"], \"➖\", \"minus\"], [[\"U+2797\"], \"➗\", \"divide\"], [[\"U+267E\"], \"♾\", \"infinity\"]]], [\"punctuation\", [[[\"U+203C\"], \"‼\", \"double exclamation mark\"], [[\"U+2049\"], \"⁉\", \"exclamation question mark\"], [[\"U+2753\"], \"❓\", \"question mark\"], [[\"U+2754\"], \"❔\", \"white question mark\"], [[\"U+2755\"], \"❕\", \"white exclamation mark\"], [[\"U+2757\"], \"❗\", \"exclamation mark\"], [[\"U+3030\"], \"〰\", \"wavy dash\"]]], [\"currency\", [[[\"U+1F4B1\"], \"💱\", \"currency exchange\"], [[\"U+1F4B2\"], \"💲\", \"heavy dollar sign\"]]], [\"other-symbol\", [[[\"U+2695\"], \"⚕\", \"medical symbol\"], [[\"U+267B\"], \"♻\", \"recycling symbol\"], [[\"U+269C\"], \"⚜\", \"fleur-de-lis\"], [[\"U+1F531\"], \"🔱\", \"trident emblem\"], [[\"U+1F4DB\"], \"📛\", \"name badge\"], [[\"U+1F530\"], \"🔰\", \"Japanese symbol for beginner\"], [[\"U+2B55\"], \"⭕\", \"hollow red circle\"], [[\"U+2705\"], \"✅\", \"check mark button\"], [[\"U+2611\"], \"☑\", \"check box with check\"], [[\"U+2714\"], \"✔\", \"check mark\"], [[\"U+274C\"], \"❌\", \"cross mark\"], [[\"U+274E\"], \"❎\", \"cross mark button\"], [[\"U+27B0\"], \"➰\", \"curly loop\"], [[\"U+27BF\"], \"➿\", \"double curly loop\"], [[\"U+303D\"], \"〽\", \"part alternation mark\"], [[\"U+2733\"], \"✳\", \"eight-spoked asterisk\"], [[\"U+2734\"], \"✴\", \"eight-pointed star\"], [[\"U+2747\"], \"❇\", \"sparkle\"], [[\"U+00A9\"], \"©\", \"copyright\"], [[\"U+00AE\"], \"®\", \"registered\"], [[\"U+2122\"], \"™\", \"trade mark\"]]], [\"keycap\", [[[\"U+0023\", \"U+FE0F\", \"U+20E3\"], \"#️⃣\", \"keycap: #\"], [[\"U+002A\", \"U+FE0F\", \"U+20E3\"], \"*️⃣\", \"keycap: *\"], [[\"U+0030\", \"U+FE0F\", \"U+20E3\"], \"0️⃣\", \"keycap: 0\"], [[\"U+0031\", \"U+FE0F\", \"U+20E3\"], \"1️⃣\", \"keycap: 1\"], [[\"U+0032\", \"U+FE0F\", \"U+20E3\"], \"2️⃣\", \"keycap: 2\"], [[\"U+0033\", \"U+FE0F\", \"U+20E3\"], \"3️⃣\", \"keycap: 3\"], [[\"U+0034\", \"U+FE0F\", \"U+20E3\"], \"4️⃣\", \"keycap: 4\"], [[\"U+0035\", \"U+FE0F\", \"U+20E3\"], \"5️⃣\", \"keycap: 5\"], [[\"U+0036\", \"U+FE0F\", \"U+20E3\"], \"6️⃣\", \"keycap: 6\"], [[\"U+0037\", \"U+FE0F\", \"U+20E3\"], \"7️⃣\", \"keycap: 7\"], [[\"U+0038\", \"U+FE0F\", \"U+20E3\"], \"8️⃣\", \"keycap: 8\"], [[\"U+0039\", \"U+FE0F\", \"U+20E3\"], \"9️⃣\", \"keycap: 9\"], [[\"U+1F51F\"], \"🔟\", \"keycap: 10\"]]], [\"alphanum\", [[[\"U+1F520\"], \"🔠\", \"input latin uppercase\"], [[\"U+1F521\"], \"🔡\", \"input latin lowercase\"], [[\"U+1F522\"], \"🔢\", \"input numbers\"], [[\"U+1F523\"], \"🔣\", \"input symbols\"], [[\"U+1F524\"], \"🔤\", \"input latin letters\"], [[\"U+1F170\"], \"🅰\", \"A button (blood type)\"], [[\"U+1F18E\"], \"🆎\", \"AB button (blood type)\"], [[\"U+1F171\"], \"🅱\", \"B button (blood type)\"], [[\"U+1F191\"], \"🆑\", \"CL button\"], [[\"U+1F192\"], \"🆒\", \"COOL button\"], [[\"U+1F193\"], \"🆓\", \"FREE button\"], [[\"U+2139\"], \"ℹ\", \"information\"], [[\"U+1F194\"], \"🆔\", \"ID button\"], [[\"U+24C2\"], \"Ⓜ\", \"circled M\"], [[\"U+1F195\"], \"🆕\", \"NEW button\"], [[\"U+1F196\"], \"🆖\", \"NG button\"], [[\"U+1F17E\"], \"🅾\", \"O button (blood type)\"], [[\"U+1F197\"], \"🆗\", \"OK button\"], [[\"U+1F17F\"], \"🅿\", \"P button\"], [[\"U+1F198\"], \"🆘\", \"SOS button\"], [[\"U+1F199\"], \"🆙\", \"UP! button\"], [[\"U+1F19A\"], \"🆚\", \"VS button\"], [[\"U+1F201\"], \"🈁\", \"Japanese “here” button\"], [[\"U+1F202\"], \"🈂\", \"Japanese “service charge” button\"], [[\"U+1F237\"], \"🈷\", \"Japanese “monthly amount” button\"], [[\"U+1F236\"], \"🈶\", \"Japanese “not free of charge” button\"], [[\"U+1F22F\"], \"🈯\", \"Japanese “reserved” button\"], [[\"U+1F250\"], \"🉐\", \"Japanese “bargain” button\"], [[\"U+1F239\"], \"🈹\", \"Japanese “discount” button\"], [[\"U+1F21A\"], \"🈚\", \"Japanese “free of charge” button\"], [[\"U+1F232\"], \"🈲\", \"Japanese “prohibited” button\"], [[\"U+1F251\"], \"🉑\", \"Japanese “acceptable” button\"], [[\"U+1F238\"], \"🈸\", \"Japanese “application” button\"], [[\"U+1F234\"], \"🈴\", \"Japanese “passing grade” button\"], [[\"U+1F233\"], \"🈳\", \"Japanese “vacancy” button\"], [[\"U+3297\"], \"㊗\", \"Japanese “congratulations” button\"], [[\"U+3299\"], \"㊙\", \"Japanese “secret” button\"], [[\"U+1F23A\"], \"🈺\", \"Japanese “open for business” button\"], [[\"U+1F235\"], \"🈵\", \"Japanese “no vacancy” button\"]]], [\"geometric\", [[[\"U+1F534\"], \"🔴\", \"red circle\"], [[\"U+1F7E0\"], \"🟠\", \"orange circle\"], [[\"U+1F7E1\"], \"🟡\", \"yellow circle\"], [[\"U+1F7E2\"], \"🟢\", \"green circle\"], [[\"U+1F535\"], \"🔵\", \"blue circle\"], [[\"U+1F7E3\"], \"🟣\", \"purple circle\"], [[\"U+1F7E4\"], \"🟤\", \"brown circle\"], [[\"U+26AB\"], \"⚫\", \"black circle\"], [[\"U+26AA\"], \"⚪\", \"white circle\"], [[\"U+1F7E5\"], \"🟥\", \"red square\"], [[\"U+1F7E7\"], \"🟧\", \"orange square\"], [[\"U+1F7E8\"], \"🟨\", \"yellow square\"], [[\"U+1F7E9\"], \"🟩\", \"green square\"], [[\"U+1F7E6\"], \"🟦\", \"blue square\"], [[\"U+1F7EA\"], \"🟪\", \"purple square\"], [[\"U+1F7EB\"], \"🟫\", \"brown square\"], [[\"U+2B1B\"], \"⬛\", \"black large square\"], [[\"U+2B1C\"], \"⬜\", \"white large square\"], [[\"U+25FC\"], \"◼\", \"black medium square\"], [[\"U+25FB\"], \"◻\", \"white medium square\"], [[\"U+25FE\"], \"◾\", \"black medium-small square\"], [[\"U+25FD\"], \"◽\", \"white medium-small square\"], [[\"U+25AA\"], \"▪\", \"black small square\"], [[\"U+25AB\"], \"▫\", \"white small square\"], [[\"U+1F536\"], \"🔶\", \"large orange diamond\"], [[\"U+1F537\"], \"🔷\", \"large blue diamond\"], [[\"U+1F538\"], \"🔸\", \"small orange diamond\"], [[\"U+1F539\"], \"🔹\", \"small blue diamond\"], [[\"U+1F53A\"], \"🔺\", \"red triangle pointed up\"], [[\"U+1F53B\"], \"🔻\", \"red triangle pointed down\"], [[\"U+1F4A0\"], \"💠\", \"diamond with a dot\"], [[\"U+1F518\"], \"🔘\", \"radio button\"], [[\"U+1F533\"], \"🔳\", \"white square button\"], [[\"U+1F532\"], \"🔲\", \"black square button\"]]]]], [\"Flags\", [[\"flag\", [[[\"U+1F3C1\"], \"🏁\", \"chequered flag\"], [[\"U+1F6A9\"], \"🚩\", \"triangular flag\"], [[\"U+1F38C\"], \"🎌\", \"crossed flags\"], [[\"U+1F3F4\"], \"🏴\", \"black flag\"], [[\"U+1F3F3\"], \"🏳\", \"white flag\"], [[\"U+1F3F3\", \"U+FE0F\", \"U+200D\", \"U+1F308\"], \"🏳️‍🌈\", \"rainbow flag\"], [[\"U+1F3F3\", \"U+FE0F\", \"U+200D\", \"U+26A7\", \"U+FE0F\"], \"🏳️‍⚧️\", \"⊛ transgender flag\"], [[\"U+1F3F4\", \"U+200D\", \"U+2620\", \"U+FE0F\"], \"🏴‍☠️\", \"pirate flag\"]]], [\"country-flag\", [[[\"U+1F1E6\", \"U+1F1E8\"], \"🇦🇨\", \"flag: Ascension Island\"], [[\"U+1F1E6\", \"U+1F1E9\"], \"🇦🇩\", \"flag: Andorra\"], [[\"U+1F1E6\", \"U+1F1EA\"], \"🇦🇪\", \"flag: United Arab Emirates\"], [[\"U+1F1E6\", \"U+1F1EB\"], \"🇦🇫\", \"flag: Afghanistan\"], [[\"U+1F1E6\", \"U+1F1EC\"], \"🇦🇬\", \"flag: Antigua & Barbuda\"], [[\"U+1F1E6\", \"U+1F1EE\"], \"🇦🇮\", \"flag: Anguilla\"], [[\"U+1F1E6\", \"U+1F1F1\"], \"🇦🇱\", \"flag: Albania\"], [[\"U+1F1E6\", \"U+1F1F2\"], \"🇦🇲\", \"flag: Armenia\"], [[\"U+1F1E6\", \"U+1F1F4\"], \"🇦🇴\", \"flag: Angola\"], [[\"U+1F1E6\", \"U+1F1F6\"], \"🇦🇶\", \"flag: Antarctica\"], [[\"U+1F1E6\", \"U+1F1F7\"], \"🇦🇷\", \"flag: Argentina\"], [[\"U+1F1E6\", \"U+1F1F8\"], \"🇦🇸\", \"flag: American Samoa\"], [[\"U+1F1E6\", \"U+1F1F9\"], \"🇦🇹\", \"flag: Austria\"], [[\"U+1F1E6\", \"U+1F1FA\"], \"🇦🇺\", \"flag: Australia\"], [[\"U+1F1E6\", \"U+1F1FC\"], \"🇦🇼\", \"flag: Aruba\"], [[\"U+1F1E6\", \"U+1F1FD\"], \"🇦🇽\", \"flag: Åland Islands\"], [[\"U+1F1E6\", \"U+1F1FF\"], \"🇦🇿\", \"flag: Azerbaijan\"], [[\"U+1F1E7\", \"U+1F1E6\"], \"🇧🇦\", \"flag: Bosnia & Herzegovina\"], [[\"U+1F1E7\", \"U+1F1E7\"], \"🇧🇧\", \"flag: Barbados\"], [[\"U+1F1E7\", \"U+1F1E9\"], \"🇧🇩\", \"flag: Bangladesh\"], [[\"U+1F1E7\", \"U+1F1EA\"], \"🇧🇪\", \"flag: Belgium\"], [[\"U+1F1E7\", \"U+1F1EB\"], \"🇧🇫\", \"flag: Burkina Faso\"], [[\"U+1F1E7\", \"U+1F1EC\"], \"🇧🇬\", \"flag: Bulgaria\"], [[\"U+1F1E7\", \"U+1F1ED\"], \"🇧🇭\", \"flag: Bahrain\"], [[\"U+1F1E7\", \"U+1F1EE\"], \"🇧🇮\", \"flag: Burundi\"], [[\"U+1F1E7\", \"U+1F1EF\"], \"🇧🇯\", \"flag: Benin\"], [[\"U+1F1E7\", \"U+1F1F1\"], \"🇧🇱\", \"flag: St. Barthélemy\"], [[\"U+1F1E7\", \"U+1F1F2\"], \"🇧🇲\", \"flag: Bermuda\"], [[\"U+1F1E7\", \"U+1F1F3\"], \"🇧🇳\", \"flag: Brunei\"], [[\"U+1F1E7\", \"U+1F1F4\"], \"🇧🇴\", \"flag: Bolivia\"], [[\"U+1F1E7\", \"U+1F1F6\"], \"🇧🇶\", \"flag: Caribbean Netherlands\"], [[\"U+1F1E7\", \"U+1F1F7\"], \"🇧🇷\", \"flag: Brazil\"], [[\"U+1F1E7\", \"U+1F1F8\"], \"🇧🇸\", \"flag: Bahamas\"], [[\"U+1F1E7\", \"U+1F1F9\"], \"🇧🇹\", \"flag: Bhutan\"], [[\"U+1F1E7\", \"U+1F1FB\"], \"🇧🇻\", \"flag: Bouvet Island\"], [[\"U+1F1E7\", \"U+1F1FC\"], \"🇧🇼\", \"flag: Botswana\"], [[\"U+1F1E7\", \"U+1F1FE\"], \"🇧🇾\", \"flag: Belarus\"], [[\"U+1F1E7\", \"U+1F1FF\"], \"🇧🇿\", \"flag: Belize\"], [[\"U+1F1E8\", \"U+1F1E6\"], \"🇨🇦\", \"flag: Canada\"], [[\"U+1F1E8\", \"U+1F1E8\"], \"🇨🇨\", \"flag: Cocos (Keeling) Islands\"], [[\"U+1F1E8\", \"U+1F1E9\"], \"🇨🇩\", \"flag: Congo - Kinshasa\"], [[\"U+1F1E8\", \"U+1F1EB\"], \"🇨🇫\", \"flag: Central African Republic\"], [[\"U+1F1E8\", \"U+1F1EC\"], \"🇨🇬\", \"flag: Congo - Brazzaville\"], [[\"U+1F1E8\", \"U+1F1ED\"], \"🇨🇭\", \"flag: Switzerland\"], [[\"U+1F1E8\", \"U+1F1EE\"], \"🇨🇮\", \"flag: Côte d’Ivoire\"], [[\"U+1F1E8\", \"U+1F1F0\"], \"🇨🇰\", \"flag: Cook Islands\"], [[\"U+1F1E8\", \"U+1F1F1\"], \"🇨🇱\", \"flag: Chile\"], [[\"U+1F1E8\", \"U+1F1F2\"], \"🇨🇲\", \"flag: Cameroon\"], [[\"U+1F1E8\", \"U+1F1F3\"], \"🇨🇳\", \"flag: China\"], [[\"U+1F1E8\", \"U+1F1F4\"], \"🇨🇴\", \"flag: Colombia\"], [[\"U+1F1E8\", \"U+1F1F5\"], \"🇨🇵\", \"flag: Clipperton Island\"], [[\"U+1F1E8\", \"U+1F1F7\"], \"🇨🇷\", \"flag: Costa Rica\"], [[\"U+1F1E8\", \"U+1F1FA\"], \"🇨🇺\", \"flag: Cuba\"], [[\"U+1F1E8\", \"U+1F1FB\"], \"🇨🇻\", \"flag: Cape Verde\"], [[\"U+1F1E8\", \"U+1F1FC\"], \"🇨🇼\", \"flag: Curaçao\"], [[\"U+1F1E8\", \"U+1F1FD\"], \"🇨🇽\", \"flag: Christmas Island\"], [[\"U+1F1E8\", \"U+1F1FE\"], \"🇨🇾\", \"flag: Cyprus\"], [[\"U+1F1E8\", \"U+1F1FF\"], \"🇨🇿\", \"flag: Czechia\"], [[\"U+1F1E9\", \"U+1F1EA\"], \"🇩🇪\", \"flag: Germany\"], [[\"U+1F1E9\", \"U+1F1EC\"], \"🇩🇬\", \"flag: Diego Garcia\"], [[\"U+1F1E9\", \"U+1F1EF\"], \"🇩🇯\", \"flag: Djibouti\"], [[\"U+1F1E9\", \"U+1F1F0\"], \"🇩🇰\", \"flag: Denmark\"], [[\"U+1F1E9\", \"U+1F1F2\"], \"🇩🇲\", \"flag: Dominica\"], [[\"U+1F1E9\", \"U+1F1F4\"], \"🇩🇴\", \"flag: Dominican Republic\"], [[\"U+1F1E9\", \"U+1F1FF\"], \"🇩🇿\", \"flag: Algeria\"], [[\"U+1F1EA\", \"U+1F1E6\"], \"🇪🇦\", \"flag: Ceuta & Melilla\"], [[\"U+1F1EA\", \"U+1F1E8\"], \"🇪🇨\", \"flag: Ecuador\"], [[\"U+1F1EA\", \"U+1F1EA\"], \"🇪🇪\", \"flag: Estonia\"], [[\"U+1F1EA\", \"U+1F1EC\"], \"🇪🇬\", \"flag: Egypt\"], [[\"U+1F1EA\", \"U+1F1ED\"], \"🇪🇭\", \"flag: Western Sahara\"], [[\"U+1F1EA\", \"U+1F1F7\"], \"🇪🇷\", \"flag: Eritrea\"], [[\"U+1F1EA\", \"U+1F1F8\"], \"🇪🇸\", \"flag: Spain\"], [[\"U+1F1EA\", \"U+1F1F9\"], \"🇪🇹\", \"flag: Ethiopia\"], [[\"U+1F1EA\", \"U+1F1FA\"], \"🇪🇺\", \"flag: European Union\"], [[\"U+1F1EB\", \"U+1F1EE\"], \"🇫🇮\", \"flag: Finland\"], [[\"U+1F1EB\", \"U+1F1EF\"], \"🇫🇯\", \"flag: Fiji\"], [[\"U+1F1EB\", \"U+1F1F0\"], \"🇫🇰\", \"flag: Falkland Islands\"], [[\"U+1F1EB\", \"U+1F1F2\"], \"🇫🇲\", \"flag: Micronesia\"], [[\"U+1F1EB\", \"U+1F1F4\"], \"🇫🇴\", \"flag: Faroe Islands\"], [[\"U+1F1EB\", \"U+1F1F7\"], \"🇫🇷\", \"flag: France\"], [[\"U+1F1EC\", \"U+1F1E6\"], \"🇬🇦\", \"flag: Gabon\"], [[\"U+1F1EC\", \"U+1F1E7\"], \"🇬🇧\", \"flag: United Kingdom\"], [[\"U+1F1EC\", \"U+1F1E9\"], \"🇬🇩\", \"flag: Grenada\"], [[\"U+1F1EC\", \"U+1F1EA\"], \"🇬🇪\", \"flag: Georgia\"], [[\"U+1F1EC\", \"U+1F1EB\"], \"🇬🇫\", \"flag: French Guiana\"], [[\"U+1F1EC\", \"U+1F1EC\"], \"🇬🇬\", \"flag: Guernsey\"], [[\"U+1F1EC\", \"U+1F1ED\"], \"🇬🇭\", \"flag: Ghana\"], [[\"U+1F1EC\", \"U+1F1EE\"], \"🇬🇮\", \"flag: Gibraltar\"], [[\"U+1F1EC\", \"U+1F1F1\"], \"🇬🇱\", \"flag: Greenland\"], [[\"U+1F1EC\", \"U+1F1F2\"], \"🇬🇲\", \"flag: Gambia\"], [[\"U+1F1EC\", \"U+1F1F3\"], \"🇬🇳\", \"flag: Guinea\"], [[\"U+1F1EC\", \"U+1F1F5\"], \"🇬🇵\", \"flag: Guadeloupe\"], [[\"U+1F1EC\", \"U+1F1F6\"], \"🇬🇶\", \"flag: Equatorial Guinea\"], [[\"U+1F1EC\", \"U+1F1F7\"], \"🇬🇷\", \"flag: Greece\"], [[\"U+1F1EC\", \"U+1F1F8\"], \"🇬🇸\", \"flag: South Georgia & South Sandwich Islands\"], [[\"U+1F1EC\", \"U+1F1F9\"], \"🇬🇹\", \"flag: Guatemala\"], [[\"U+1F1EC\", \"U+1F1FA\"], \"🇬🇺\", \"flag: Guam\"], [[\"U+1F1EC\", \"U+1F1FC\"], \"🇬🇼\", \"flag: Guinea-Bissau\"], [[\"U+1F1EC\", \"U+1F1FE\"], \"🇬🇾\", \"flag: Guyana\"], [[\"U+1F1ED\", \"U+1F1F0\"], \"🇭🇰\", \"flag: Hong Kong SAR China\"], [[\"U+1F1ED\", \"U+1F1F2\"], \"🇭🇲\", \"flag: Heard & McDonald Islands\"], [[\"U+1F1ED\", \"U+1F1F3\"], \"🇭🇳\", \"flag: Honduras\"], [[\"U+1F1ED\", \"U+1F1F7\"], \"🇭🇷\", \"flag: Croatia\"], [[\"U+1F1ED\", \"U+1F1F9\"], \"🇭🇹\", \"flag: Haiti\"], [[\"U+1F1ED\", \"U+1F1FA\"], \"🇭🇺\", \"flag: Hungary\"], [[\"U+1F1EE\", \"U+1F1E8\"], \"🇮🇨\", \"flag: Canary Islands\"], [[\"U+1F1EE\", \"U+1F1E9\"], \"🇮🇩\", \"flag: Indonesia\"], [[\"U+1F1EE\", \"U+1F1EA\"], \"🇮🇪\", \"flag: Ireland\"], [[\"U+1F1EE\", \"U+1F1F1\"], \"🇮🇱\", \"flag: Israel\"], [[\"U+1F1EE\", \"U+1F1F2\"], \"🇮🇲\", \"flag: Isle of Man\"], [[\"U+1F1EE\", \"U+1F1F3\"], \"🇮🇳\", \"flag: India\"], [[\"U+1F1EE\", \"U+1F1F4\"], \"🇮🇴\", \"flag: British Indian Ocean Territory\"], [[\"U+1F1EE\", \"U+1F1F6\"], \"🇮🇶\", \"flag: Iraq\"], [[\"U+1F1EE\", \"U+1F1F7\"], \"🇮🇷\", \"flag: Iran\"], [[\"U+1F1EE\", \"U+1F1F8\"], \"🇮🇸\", \"flag: Iceland\"], [[\"U+1F1EE\", \"U+1F1F9\"], \"🇮🇹\", \"flag: Italy\"], [[\"U+1F1EF\", \"U+1F1EA\"], \"🇯🇪\", \"flag: Jersey\"], [[\"U+1F1EF\", \"U+1F1F2\"], \"🇯🇲\", \"flag: Jamaica\"], [[\"U+1F1EF\", \"U+1F1F4\"], \"🇯🇴\", \"flag: Jordan\"], [[\"U+1F1EF\", \"U+1F1F5\"], \"🇯🇵\", \"flag: Japan\"], [[\"U+1F1F0\", \"U+1F1EA\"], \"🇰🇪\", \"flag: Kenya\"], [[\"U+1F1F0\", \"U+1F1EC\"], \"🇰🇬\", \"flag: Kyrgyzstan\"], [[\"U+1F1F0\", \"U+1F1ED\"], \"🇰🇭\", \"flag: Cambodia\"], [[\"U+1F1F0\", \"U+1F1EE\"], \"🇰🇮\", \"flag: Kiribati\"], [[\"U+1F1F0\", \"U+1F1F2\"], \"🇰🇲\", \"flag: Comoros\"], [[\"U+1F1F0\", \"U+1F1F3\"], \"🇰🇳\", \"flag: St. Kitts & Nevis\"], [[\"U+1F1F0\", \"U+1F1F5\"], \"🇰🇵\", \"flag: North Korea\"], [[\"U+1F1F0\", \"U+1F1F7\"], \"🇰🇷\", \"flag: South Korea\"], [[\"U+1F1F0\", \"U+1F1FC\"], \"🇰🇼\", \"flag: Kuwait\"], [[\"U+1F1F0\", \"U+1F1FE\"], \"🇰🇾\", \"flag: Cayman Islands\"], [[\"U+1F1F0\", \"U+1F1FF\"], \"🇰🇿\", \"flag: Kazakhstan\"], [[\"U+1F1F1\", \"U+1F1E6\"], \"🇱🇦\", \"flag: Laos\"], [[\"U+1F1F1\", \"U+1F1E7\"], \"🇱🇧\", \"flag: Lebanon\"], [[\"U+1F1F1\", \"U+1F1E8\"], \"🇱🇨\", \"flag: St. Lucia\"], [[\"U+1F1F1\", \"U+1F1EE\"], \"🇱🇮\", \"flag: Liechtenstein\"], [[\"U+1F1F1\", \"U+1F1F0\"], \"🇱🇰\", \"flag: Sri Lanka\"], [[\"U+1F1F1\", \"U+1F1F7\"], \"🇱🇷\", \"flag: Liberia\"], [[\"U+1F1F1\", \"U+1F1F8\"], \"🇱🇸\", \"flag: Lesotho\"], [[\"U+1F1F1\", \"U+1F1F9\"], \"🇱🇹\", \"flag: Lithuania\"], [[\"U+1F1F1\", \"U+1F1FA\"], \"🇱🇺\", \"flag: Luxembourg\"], [[\"U+1F1F1\", \"U+1F1FB\"], \"🇱🇻\", \"flag: Latvia\"], [[\"U+1F1F1\", \"U+1F1FE\"], \"🇱🇾\", \"flag: Libya\"], [[\"U+1F1F2\", \"U+1F1E6\"], \"🇲🇦\", \"flag: Morocco\"], [[\"U+1F1F2\", \"U+1F1E8\"], \"🇲🇨\", \"flag: Monaco\"], [[\"U+1F1F2\", \"U+1F1E9\"], \"🇲🇩\", \"flag: Moldova\"], [[\"U+1F1F2\", \"U+1F1EA\"], \"🇲🇪\", \"flag: Montenegro\"], [[\"U+1F1F2\", \"U+1F1EB\"], \"🇲🇫\", \"flag: St. Martin\"], [[\"U+1F1F2\", \"U+1F1EC\"], \"🇲🇬\", \"flag: Madagascar\"], [[\"U+1F1F2\", \"U+1F1ED\"], \"🇲🇭\", \"flag: Marshall Islands\"], [[\"U+1F1F2\", \"U+1F1F0\"], \"🇲🇰\", \"flag: North Macedonia\"], [[\"U+1F1F2\", \"U+1F1F1\"], \"🇲🇱\", \"flag: Mali\"], [[\"U+1F1F2\", \"U+1F1F2\"], \"🇲🇲\", \"flag: Myanmar (Burma)\"], [[\"U+1F1F2\", \"U+1F1F3\"], \"🇲🇳\", \"flag: Mongolia\"], [[\"U+1F1F2\", \"U+1F1F4\"], \"🇲🇴\", \"flag: Macao SAR China\"], [[\"U+1F1F2\", \"U+1F1F5\"], \"🇲🇵\", \"flag: Northern Mariana Islands\"], [[\"U+1F1F2\", \"U+1F1F6\"], \"🇲🇶\", \"flag: Martinique\"], [[\"U+1F1F2\", \"U+1F1F7\"], \"🇲🇷\", \"flag: Mauritania\"], [[\"U+1F1F2\", \"U+1F1F8\"], \"🇲🇸\", \"flag: Montserrat\"], [[\"U+1F1F2\", \"U+1F1F9\"], \"🇲🇹\", \"flag: Malta\"], [[\"U+1F1F2\", \"U+1F1FA\"], \"🇲🇺\", \"flag: Mauritius\"], [[\"U+1F1F2\", \"U+1F1FB\"], \"🇲🇻\", \"flag: Maldives\"], [[\"U+1F1F2\", \"U+1F1FC\"], \"🇲🇼\", \"flag: Malawi\"], [[\"U+1F1F2\", \"U+1F1FD\"], \"🇲🇽\", \"flag: Mexico\"], [[\"U+1F1F2\", \"U+1F1FE\"], \"🇲🇾\", \"flag: Malaysia\"], [[\"U+1F1F2\", \"U+1F1FF\"], \"🇲🇿\", \"flag: Mozambique\"], [[\"U+1F1F3\", \"U+1F1E6\"], \"🇳🇦\", \"flag: Namibia\"], [[\"U+1F1F3\", \"U+1F1E8\"], \"🇳🇨\", \"flag: New Caledonia\"], [[\"U+1F1F3\", \"U+1F1EA\"], \"🇳🇪\", \"flag: Niger\"], [[\"U+1F1F3\", \"U+1F1EB\"], \"🇳🇫\", \"flag: Norfolk Island\"], [[\"U+1F1F3\", \"U+1F1EC\"], \"🇳🇬\", \"flag: Nigeria\"], [[\"U+1F1F3\", \"U+1F1EE\"], \"🇳🇮\", \"flag: Nicaragua\"], [[\"U+1F1F3\", \"U+1F1F1\"], \"🇳🇱\", \"flag: Netherlands\"], [[\"U+1F1F3\", \"U+1F1F4\"], \"🇳🇴\", \"flag: Norway\"], [[\"U+1F1F3\", \"U+1F1F5\"], \"🇳🇵\", \"flag: Nepal\"], [[\"U+1F1F3\", \"U+1F1F7\"], \"🇳🇷\", \"flag: Nauru\"], [[\"U+1F1F3\", \"U+1F1FA\"], \"🇳🇺\", \"flag: Niue\"], [[\"U+1F1F3\", \"U+1F1FF\"], \"🇳🇿\", \"flag: New Zealand\"], [[\"U+1F1F4\", \"U+1F1F2\"], \"🇴🇲\", \"flag: Oman\"], [[\"U+1F1F5\", \"U+1F1E6\"], \"🇵🇦\", \"flag: Panama\"], [[\"U+1F1F5\", \"U+1F1EA\"], \"🇵🇪\", \"flag: Peru\"], [[\"U+1F1F5\", \"U+1F1EB\"], \"🇵🇫\", \"flag: French Polynesia\"], [[\"U+1F1F5\", \"U+1F1EC\"], \"🇵🇬\", \"flag: Papua New Guinea\"], [[\"U+1F1F5\", \"U+1F1ED\"], \"🇵🇭\", \"flag: Philippines\"], [[\"U+1F1F5\", \"U+1F1F0\"], \"🇵🇰\", \"flag: Pakistan\"], [[\"U+1F1F5\", \"U+1F1F1\"], \"🇵🇱\", \"flag: Poland\"], [[\"U+1F1F5\", \"U+1F1F2\"], \"🇵🇲\", \"flag: St. Pierre & Miquelon\"], [[\"U+1F1F5\", \"U+1F1F3\"], \"🇵🇳\", \"flag: Pitcairn Islands\"], [[\"U+1F1F5\", \"U+1F1F7\"], \"🇵🇷\", \"flag: Puerto Rico\"], [[\"U+1F1F5\", \"U+1F1F8\"], \"🇵🇸\", \"flag: Palestinian Territories\"], [[\"U+1F1F5\", \"U+1F1F9\"], \"🇵🇹\", \"flag: Portugal\"], [[\"U+1F1F5\", \"U+1F1FC\"], \"🇵🇼\", \"flag: Palau\"], [[\"U+1F1F5\", \"U+1F1FE\"], \"🇵🇾\", \"flag: Paraguay\"], [[\"U+1F1F6\", \"U+1F1E6\"], \"🇶🇦\", \"flag: Qatar\"], [[\"U+1F1F7\", \"U+1F1EA\"], \"🇷🇪\", \"flag: Réunion\"], [[\"U+1F1F7\", \"U+1F1F4\"], \"🇷🇴\", \"flag: Romania\"], [[\"U+1F1F7\", \"U+1F1F8\"], \"🇷🇸\", \"flag: Serbia\"], [[\"U+1F1F7\", \"U+1F1FA\"], \"🇷🇺\", \"flag: Russia\"], [[\"U+1F1F7\", \"U+1F1FC\"], \"🇷🇼\", \"flag: Rwanda\"], [[\"U+1F1F8\", \"U+1F1E6\"], \"🇸🇦\", \"flag: Saudi Arabia\"], [[\"U+1F1F8\", \"U+1F1E7\"], \"🇸🇧\", \"flag: Solomon Islands\"], [[\"U+1F1F8\", \"U+1F1E8\"], \"🇸🇨\", \"flag: Seychelles\"], [[\"U+1F1F8\", \"U+1F1E9\"], \"🇸🇩\", \"flag: Sudan\"], [[\"U+1F1F8\", \"U+1F1EA\"], \"🇸🇪\", \"flag: Sweden\"], [[\"U+1F1F8\", \"U+1F1EC\"], \"🇸🇬\", \"flag: Singapore\"], [[\"U+1F1F8\", \"U+1F1ED\"], \"🇸🇭\", \"flag: St. Helena\"], [[\"U+1F1F8\", \"U+1F1EE\"], \"🇸🇮\", \"flag: Slovenia\"], [[\"U+1F1F8\", \"U+1F1EF\"], \"🇸🇯\", \"flag: Svalbard & Jan Mayen\"], [[\"U+1F1F8\", \"U+1F1F0\"], \"🇸🇰\", \"flag: Slovakia\"], [[\"U+1F1F8\", \"U+1F1F1\"], \"🇸🇱\", \"flag: Sierra Leone\"], [[\"U+1F1F8\", \"U+1F1F2\"], \"🇸🇲\", \"flag: San Marino\"], [[\"U+1F1F8\", \"U+1F1F3\"], \"🇸🇳\", \"flag: Senegal\"], [[\"U+1F1F8\", \"U+1F1F4\"], \"🇸🇴\", \"flag: Somalia\"], [[\"U+1F1F8\", \"U+1F1F7\"], \"🇸🇷\", \"flag: Suriname\"], [[\"U+1F1F8\", \"U+1F1F8\"], \"🇸🇸\", \"flag: South Sudan\"], [[\"U+1F1F8\", \"U+1F1F9\"], \"🇸🇹\", \"flag: São Tomé & Príncipe\"], [[\"U+1F1F8\", \"U+1F1FB\"], \"🇸🇻\", \"flag: El Salvador\"], [[\"U+1F1F8\", \"U+1F1FD\"], \"🇸🇽\", \"flag: Sint Maarten\"], [[\"U+1F1F8\", \"U+1F1FE\"], \"🇸🇾\", \"flag: Syria\"], [[\"U+1F1F8\", \"U+1F1FF\"], \"🇸🇿\", \"flag: Eswatini\"], [[\"U+1F1F9\", \"U+1F1E6\"], \"🇹🇦\", \"flag: Tristan da Cunha\"], [[\"U+1F1F9\", \"U+1F1E8\"], \"🇹🇨\", \"flag: Turks & Caicos Islands\"], [[\"U+1F1F9\", \"U+1F1E9\"], \"🇹🇩\", \"flag: Chad\"], [[\"U+1F1F9\", \"U+1F1EB\"], \"🇹🇫\", \"flag: French Southern Territories\"], [[\"U+1F1F9\", \"U+1F1EC\"], \"🇹🇬\", \"flag: Togo\"], [[\"U+1F1F9\", \"U+1F1ED\"], \"🇹🇭\", \"flag: Thailand\"], [[\"U+1F1F9\", \"U+1F1EF\"], \"🇹🇯\", \"flag: Tajikistan\"], [[\"U+1F1F9\", \"U+1F1F0\"], \"🇹🇰\", \"flag: Tokelau\"], [[\"U+1F1F9\", \"U+1F1F1\"], \"🇹🇱\", \"flag: Timor-Leste\"], [[\"U+1F1F9\", \"U+1F1F2\"], \"🇹🇲\", \"flag: Turkmenistan\"], [[\"U+1F1F9\", \"U+1F1F3\"], \"🇹🇳\", \"flag: Tunisia\"], [[\"U+1F1F9\", \"U+1F1F4\"], \"🇹🇴\", \"flag: Tonga\"], [[\"U+1F1F9\", \"U+1F1F7\"], \"🇹🇷\", \"flag: Turkey\"], [[\"U+1F1F9\", \"U+1F1F9\"], \"🇹🇹\", \"flag: Trinidad & Tobago\"], [[\"U+1F1F9\", \"U+1F1FB\"], \"🇹🇻\", \"flag: Tuvalu\"], [[\"U+1F1F9\", \"U+1F1FC\"], \"🇹🇼\", \"flag: Taiwan\"], [[\"U+1F1F9\", \"U+1F1FF\"], \"🇹🇿\", \"flag: Tanzania\"], [[\"U+1F1FA\", \"U+1F1E6\"], \"🇺🇦\", \"flag: Ukraine\"], [[\"U+1F1FA\", \"U+1F1EC\"], \"🇺🇬\", \"flag: Uganda\"], [[\"U+1F1FA\", \"U+1F1F2\"], \"🇺🇲\", \"flag: U.S. Outlying Islands\"], [[\"U+1F1FA\", \"U+1F1F3\"], \"🇺🇳\", \"flag: United Nations\"], [[\"U+1F1FA\", \"U+1F1F8\"], \"🇺🇸\", \"flag: United States\"], [[\"U+1F1FA\", \"U+1F1FE\"], \"🇺🇾\", \"flag: Uruguay\"], [[\"U+1F1FA\", \"U+1F1FF\"], \"🇺🇿\", \"flag: Uzbekistan\"], [[\"U+1F1FB\", \"U+1F1E6\"], \"🇻🇦\", \"flag: Vatican City\"], [[\"U+1F1FB\", \"U+1F1E8\"], \"🇻🇨\", \"flag: St. Vincent & Grenadines\"], [[\"U+1F1FB\", \"U+1F1EA\"], \"🇻🇪\", \"flag: Venezuela\"], [[\"U+1F1FB\", \"U+1F1EC\"], \"🇻🇬\", \"flag: British Virgin Islands\"], [[\"U+1F1FB\", \"U+1F1EE\"], \"🇻🇮\", \"flag: U.S. Virgin Islands\"], [[\"U+1F1FB\", \"U+1F1F3\"], \"🇻🇳\", \"flag: Vietnam\"], [[\"U+1F1FB\", \"U+1F1FA\"], \"🇻🇺\", \"flag: Vanuatu\"], [[\"U+1F1FC\", \"U+1F1EB\"], \"🇼🇫\", \"flag: Wallis & Futuna\"], [[\"U+1F1FC\", \"U+1F1F8\"], \"🇼🇸\", \"flag: Samoa\"], [[\"U+1F1FD\", \"U+1F1F0\"], \"🇽🇰\", \"flag: Kosovo\"], [[\"U+1F1FE\", \"U+1F1EA\"], \"🇾🇪\", \"flag: Yemen\"], [[\"U+1F1FE\", \"U+1F1F9\"], \"🇾🇹\", \"flag: Mayotte\"], [[\"U+1F1FF\", \"U+1F1E6\"], \"🇿🇦\", \"flag: South Africa\"], [[\"U+1F1FF\", \"U+1F1F2\"], \"🇿🇲\", \"flag: Zambia\"], [[\"U+1F1FF\", \"U+1F1FC\"], \"🇿🇼\", \"flag: Zimbabwe\"]]], [\"subdivision-flag\", [[[\"U+1F3F4\", \"U+E0067\", \"U+E0062\", \"U+E0065\", \"U+E006E\", \"U+E0067\", \"U+E007F\"], \"🏴󠁧󠁢󠁥󠁮󠁧󠁿\", \"flag: England\"], [[\"U+1F3F4\", \"U+E0067\", \"U+E0062\", \"U+E0073\", \"U+E0063\", \"U+E0074\", \"U+E007F\"], \"🏴󠁧󠁢󠁳󠁣󠁴󠁿\", \"flag: Scotland\"], [[\"U+1F3F4\", \"U+E0067\", \"U+E0062\", \"U+E0077\", \"U+E006C\", \"U+E0073\", \"U+E007F\"], \"🏴󠁧󠁢󠁷󠁬󠁳󠁿\", \"flag: Wales\"]]]]]];\nvar _default = EmojiChars;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/EmojiChars.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/EmojiCounter.js":
/*!*****************************************************!*\
  !*** ./node_modules/absol-acomp/js/EmojiCounter.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/emojicounter.css */ \"./node_modules/absol-acomp/css/emojicounter.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _EmojiPickerTooltip = _interopRequireDefault(__webpack_require__(/*! ./EmojiPickerTooltip */ \"./node_modules/absol-acomp/js/EmojiPickerTooltip.js\"));\n\nvar _EmojiPicker = _interopRequireDefault(__webpack_require__(/*! ./EmojiPicker */ \"./node_modules/absol-acomp/js/EmojiPicker.js\"));\n\nvar _Tooltip = _interopRequireWildcard(__webpack_require__(/*! ./Tooltip */ \"./node_modules/absol-acomp/js/Tooltip.js\"));\n\nvar _Rectangle = _interopRequireDefault(__webpack_require__(/*! absol/src/Math/Rectangle */ \"./node_modules/absol/src/Math/Rectangle.js\"));\n\nvar _Dom = __webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\");\n\nvar _EmojiUserListTooltip = _interopRequireDefault(__webpack_require__(/*! ./EmojiUserListTooltip */ \"./node_modules/absol-acomp/js/EmojiUserListTooltip.js\"));\n\nvar _BrowserDetector = _interopRequireDefault(__webpack_require__(/*! absol/src/Detector/BrowserDetector */ \"./node_modules/absol/src/Detector/BrowserDetector.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar $ = _ACore[\"default\"].$;\nvar _ = _ACore[\"default\"]._;\nvar isMobile = _BrowserDetector[\"default\"].isMobile;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction EmojiCounter() {\n  /***\r\n   *\r\n   * @type {Sprite}\r\n   */\n  this.$sprite = $('sprite', this);\n  this.$num = $('.as-emoji-counter-num', this);\n  this.$numText = this.$num.firstChild;\n  this._text = '(heart)';\n  this.text = this._text;\n  this._count = 0;\n  this.count = 0;\n  this._checkInterval = -1;\n\n  if (isMobile) {\n    this.attr('tabindex', '1');\n    this.on('focus', this.eventHandler.mouseEnter);\n  } else {\n    this.on('mouseenter', this.eventHandler.mouseEnter);\n  }\n\n  this._tooltipSession = null;\n  this._tooltipFinishTimeout = -1;\n}\n\nEmojiCounter.tag = 'EmojiCounter'.toLowerCase();\n\nEmojiCounter.render = function () {\n  var icon = _EmojiPickerTooltip[\"default\"].emojiDict['(heart)'];\n  var url = _EmojiPicker[\"default\"].assetRoot + '/anim/x40/' + icon.imageFileName;\n  return _({\n    \"class\": 'as-emoji-counter',\n    child: [{\n      tag: 'sprite',\n      \"class\": 'as-emoji-counter-sprite',\n      props: {\n        src: url,\n        loop: true,\n        fps: 30,\n        debug: true\n      },\n      on: {\n        ready: function ready() {\n          this.frames = {\n            type: 'grid',\n            col: 1,\n            row: this.texture.naturalHeight / this.texture.naturalWidth\n          };\n          this.frameIndex = 0;\n        }\n      }\n    }, {\n      tag: 'span',\n      \"class\": 'as-emoji-counter-num',\n      child: {\n        text: '0'\n      }\n    }]\n  });\n};\n\nEmojiCounter.property = {};\nEmojiCounter.property.text = {\n  set: function set(value) {\n    var icon = _EmojiPickerTooltip[\"default\"].emojiDict[value];\n    if (!icon) return;\n    if (this._text === value) return;\n    this.$sprite.src = _EmojiPicker[\"default\"].assetRoot + '/anim/x40/' + icon.imageFileName;\n    this._text = value;\n  },\n  get: function get() {\n    return this._text;\n  }\n};\nEmojiCounter.property.count = {\n  set: function set(value) {\n    this.$numText.data = value + '';\n\n    if (value === 1 && this._count != 1) {\n      this.$numText.remove();\n    } else if (value != 1 && this._count == 1) {\n      this.$num.addChild(this.$numText);\n    }\n\n    if (value == 0) this.addClass('as-zero');else this.removeClass('as-zero');\n    this._count = value;\n  },\n  get: function get() {\n    return this._count;\n  }\n};\n\n_ACore[\"default\"].install(EmojiCounter);\n\nEmojiCounter.eventHandler = {};\n\nEmojiCounter.eventHandler.loop = function () {\n  if (!this.isDescendantOf(document.body)) this.eventHandler.finishHover();\n  if (this.getBoundingClientRect().width === 0) this.eventHandler.finishHover();\n};\n\nEmojiCounter.eventHandler.mouseEnter = function () {\n  if (this._tooltipFinishTimeout > 0) {\n    clearTimeout(this._tooltipFinishTimeout);\n  }\n\n  if (this._checkInterval > 0) return;\n  this.$sprite.play();\n  this._checkInterval = setInterval(this.eventHandler.loop, 1000);\n  this.on('mouseleave', this.eventHandler.finishHover);\n\n  if (this.users && this.users.length > 0) {\n    prepare();\n    EmojiCounter._session = Math.random() * 10000000000 >> 0;\n    this._tooltipSession = EmojiCounter._session;\n    EmojiCounter.$element = this;\n    EmojiCounter.$holder.addTo(this);\n    EmojiCounter.$tooltip.text = this.text;\n    EmojiCounter.$tooltip.users = this.users;\n    EmojiCounter.$tooltip.playEmoji();\n    (0, _Tooltip.updateTooltipPosition)(EmojiCounter);\n  }\n};\n\nEmojiCounter.eventHandler.finishHover = function () {\n  if (this._tooltipFinishTimeout > 0) {\n    clearTimeout(this._tooltipFinishTimeout);\n  }\n\n  this._tooltipFinishTimeout = setTimeout(function () {\n    this._tooltipFinishTimeout = -1;\n    this.$sprite.stop();\n    this.off('mouseleave', this.eventHandler.finishHover);\n\n    if (this._checkInterval > 0) {\n      clearInterval(this._checkInterval);\n      this._checkInterval = -1;\n    }\n\n    if (this._tooltipSession === EmojiCounter._session) {\n      EmojiCounter._session = Math.random() * 10000000000 >> 0;\n      EmojiCounter.$holder.remove();\n      EmojiCounter.$tooltip.stopEmoji();\n    }\n  }.bind(this), 500);\n};\n\nfunction prepare() {\n  if (EmojiCounter.$holder) return;\n  EmojiCounter.$holder = _('.absol-tooltip-root-holder');\n  EmojiCounter.$tooltip = _('EmojiUserListTooltip.top'.toLowerCase()).addTo(EmojiCounter.$holder);\n  EmojiCounter._scrollOutListener = undefined;\n  EmojiCounter._orientation = 'top';\n  EmojiCounter._session = Math.random() * 10000000000 >> 0;\n  _EmojiPickerTooltip[\"default\"]._listener = undefined;\n  EmojiCounter.$element = null;\n  EmojiCounter.$tooltip.$arrow.updateSize = EmojiCounter.updatePosition;\n}\n\nEmojiCounter.updatePosition = function () {\n  if (!EmojiCounter.$element) return;\n\n  var outBound = _Rectangle[\"default\"].fromClientRect((0, _Dom.traceOutBoundingClientRect)(EmojiCounter.$element));\n\n  var eBound = _Rectangle[\"default\"].fromClientRect(EmojiCounter.$element.getBoundingClientRect());\n\n  if (!outBound.isCollapse(eBound, 0)) {\n    _EmojiPickerTooltip[\"default\"]._scrollOutListener && EmojiCounter._scrollOutListener();\n  }\n\n  (0, _Tooltip.updateTooltipPosition)(EmojiCounter);\n};\n\nEmojiCounter.updatePosition = EmojiCounter.updatePosition.bind(EmojiCounter);\nvar _default = EmojiCounter;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/EmojiCounter.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/EmojiCounterList.js":
/*!*********************************************************!*\
  !*** ./node_modules/absol-acomp/js/EmojiCounterList.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _EmojiPickerTooltip = _interopRequireDefault(__webpack_require__(/*! ./EmojiPickerTooltip */ \"./node_modules/absol-acomp/js/EmojiPickerTooltip.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction EmojiCounterList() {\n  this._counters = [];\n  this.counters = [];\n}\n\nEmojiCounterList.tag = 'EmojiCounterList'.toLowerCase();\n\nEmojiCounterList.render = function () {\n  return _({\n    \"class\": 'as-emoji-counter-list'\n  });\n};\n\nEmojiCounterList.iconOrdering = _EmojiPickerTooltip[\"default\"].defaultIcons.reduce(function (ac, cr, idx) {\n  ac[cr] = idx + 1;\n  return ac;\n}, {});\n\nEmojiCounterList.prototype._updateCounters = function () {\n  var newCounters = this._counters;\n  var newCounterNameArr = Object.keys(newCounters);\n  newCounterNameArr.sort(function (a, b) {\n    return (EmojiCounterList.iconOrdering[a] || 1000) - (EmojiCounterList.iconOrdering[b] || 1000);\n  });\n  var counterElements = Array.prototype.filter.call(this.childNodes, function (e) {\n    return e.hasClass && e.hasClass('as-emoji-counter');\n  });\n  var newCounterElements = [];\n  var elt, name;\n  var oe, on;\n\n  while (counterElements.length > 0 || newCounterNameArr.length > 0) {\n    elt = counterElements[0];\n    name = newCounterNameArr[0];\n\n    if (elt && name) {\n      if (elt.text === name) {\n        newCounterElements.push(elt);\n        counterElements.shift();\n        newCounterNameArr.shift();\n      } else {\n        oe = EmojiCounterList.iconOrdering[elt.text];\n        on = EmojiCounterList.iconOrdering[name];\n\n        if (oe < on) {\n          newCounterElements.push(elt);\n          counterElements.shift();\n        } else {\n          newCounterElements.push(name);\n          newCounterNameArr.shift();\n        }\n      }\n    } else if (elt) {\n      newCounterElements.push(elt);\n      counterElements.shift();\n    } else {\n      newCounterElements.push(name);\n      newCounterNameArr.shift();\n    }\n  }\n\n  var cElt, prevElt;\n\n  while (newCounterElements.length > 0) {\n    cElt = newCounterElements.pop();\n\n    if (typeof cElt === \"string\") {\n      cElt = _({\n        tag: 'emojicounter',\n        props: {\n          text: cElt,\n          users: newCounters[cElt].users || [],\n          count: newCounters[cElt].count\n        }\n      });\n\n      if (!prevElt) {\n        this.addChild(cElt);\n      } else {\n        this.addChildBefore(cElt, prevElt);\n      }\n\n      prevElt = cElt;\n    } else {\n      if (newCounters[cElt.text]) {\n        cElt.count = newCounters[cElt.text].count;\n        cElt.users = newCounters[cElt.text].users || [];\n        prevElt = cElt;\n      } else {\n        cElt.remove();\n      }\n    }\n  }\n};\n\nEmojiCounterList.property = {};\nEmojiCounterList.property.counters = {\n  set: function set(counters) {\n    this._counters = Object.keys(counters || {}).reduce(function (ac, key) {\n      var counter = counters[key];\n\n      if (_typeof(counter) === \"object\") {\n        if (counter.count > 0 && _EmojiPickerTooltip[\"default\"].emojiDict[key]) {\n          ac[key] = counter;\n        }\n      }\n\n      return ac;\n    }, {});\n\n    this._updateCounters();\n  },\n  get: function get() {\n    return this._counters;\n  }\n};\n\n_ACore[\"default\"].install(EmojiCounterList);\n\nvar _default = EmojiCounterList;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/EmojiCounterList.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/EmojiPicker.js":
/*!****************************************************!*\
  !*** ./node_modules/absol-acomp/js/EmojiPicker.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/emojipicker.css */ \"./node_modules/absol-acomp/css/emojipicker.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _EmojiAnims = _interopRequireDefault(__webpack_require__(/*! ./EmojiAnims */ \"./node_modules/absol-acomp/js/EmojiAnims.js\"));\n\nvar _Sprite = _interopRequireDefault(__webpack_require__(/*! ./Sprite */ \"./node_modules/absol-acomp/js/Sprite.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction EmojiPicker() {\n  var thisPicker = this;\n  this._aliveTimeout = 90;\n  this._assetRoot = this.attr('data-asset-root');\n  /***\r\n   *\r\n   * @type {Sprite}\r\n   */\n\n  this.$previewAnim = $('sprite.as-emoji-picker-preview-anim', this).on('ready', this.eventHandler.previewAnimReady).on('frame', this.eventHandler.previewAnimFrame);\n  this.$previewAnim.loop = true;\n  this.$previewAnim.src = this._assetRoot + '/anim/x120/' + _EmojiAnims[\"default\"][0][1];\n  this.$previewAnim.fps = 30;\n  this.$desc = $('.as-emoji-picker-preview-desc', this);\n  this.$shortcut = $('.as-emoji-picker-preview-shortcut', this);\n  this.$desc.clearChild().addChild(_({\n    text: _EmojiAnims[\"default\"][0][2]\n  }));\n  this.$shortcut.clearChild().addChild(_({\n    text: _EmojiAnims[\"default\"][0][0]\n  }));\n  this.$list = $('.as-emoji-picker-list', this);\n  this.$items = _EmojiAnims[\"default\"].reduce(function (ac, it) {\n    var itemElt = _({\n      tag: 'img',\n      \"class\": 'as-emoji-picker-item',\n      props: {\n        src: thisPicker._assetRoot + '/static/x20/' + it[1]\n      }\n    }).addTo(thisPicker.$list);\n\n    itemElt.on('mouseenter', thisPicker.eventHandler.mouseenterItem.bind(thisPicker, it, itemElt));\n    itemElt.on('click', thisPicker.eventHandler.clickItem.bind(thisPicker, it));\n    ac[it[0]] = itemElt;\n    return ac;\n  }, {});\n  this.$attachook = _('attachhook').addTo(this).on('error', this.eventHandler.attach);\n}\n\nEmojiPicker.assetRoot = function () {\n  if (location.hostname.match(/^.*(\\.?absol\\.cf|absol\\.ddns\\.net)$/) || location.hostname.match(/^localhost$/)) return 'https://absol.cf/emoji';\n  return '/emoji';\n}();\n\nEmojiPicker.tag = 'EmojiPicker'.toLowerCase();\n\nEmojiPicker.render = function (data) {\n  data = data || {};\n  data.assetRoot = data.assetRoot || EmojiPicker.assetRoot;\n  return _({\n    \"class\": 'as-emoji-picker',\n    extendEvent: 'pick',\n    attr: {\n      'data-asset-root': data.assetRoot\n    },\n    child: [{\n      \"class\": 'as-emoji-picker-preview',\n      child: [{\n        \"class\": '.as-emoji-picker-preview-anim-ctn',\n        child: 'sprite.as-emoji-picker-preview-anim'\n      }, '.as-emoji-picker-preview-desc', '.as-emoji-picker-preview-shortcut']\n    }, {\n      tag: 'bscroller',\n      \"class\": 'as-emoji-picker-list'\n    }]\n  });\n};\n/**\r\n * @type {EmojiPicker}\r\n */\n\n\nEmojiPicker.eventHandler = {};\n\nEmojiPicker.eventHandler.attach = function () {\n  this._aliveTimeout = 90;\n  setTimeout(this.$previewAnim.play.bind(this.$previewAnim), 1);\n};\n\nEmojiPicker.eventHandler.previewAnimReady = function () {\n  this.$previewAnim.frames = {\n    type: 'grid',\n    col: 1,\n    row: this.$previewAnim.texture.naturalHeight / this.$previewAnim.texture.naturalWidth\n  };\n  this.$previewAnim.play();\n};\n\nEmojiPicker.eventHandler.previewAnimFrame = function () {\n  if (this._aliveTimeout == 0) {\n    var bound = this.getBoundingClientRect();\n\n    if (bound.width == 0) {\n      this.$previewAnim.stop();\n    } else {\n      this._aliveTimeout = 90;\n    }\n  }\n\n  this._aliveTimeout--;\n};\n\nEmojiPicker.eventHandler.mouseenterItem = function (itemData, itemElt, event) {\n  if (this.$lastHoverItem == itemElt) return;\n  this.$lastHoverItem = itemElt;\n  this.$previewAnim.src = this._assetRoot + '/anim/x120/' + itemData[1];\n  this.$desc.clearChild().addChild(_({\n    text: itemData[2]\n  }));\n  this.$shortcut.clearChild().addChild(_({\n    text: itemData[0]\n  }));\n};\n\nEmojiPicker.eventHandler.clickItem = function (itemData, event) {\n  this.emit('pick', {\n    name: 'pick',\n    key: itemData[0],\n    target: this\n  }, this);\n};\n\n_ACore[\"default\"].install(EmojiPicker);\n\nvar _default = EmojiPicker;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/EmojiPicker.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/EmojiPickerTooltip.js":
/*!***********************************************************!*\
  !*** ./node_modules/absol-acomp/js/EmojiPickerTooltip.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/emojipickertooltip.css */ \"./node_modules/absol-acomp/css/emojipickertooltip.css\");\n\nvar _Tooltip = __webpack_require__(/*! ./Tooltip */ \"./node_modules/absol-acomp/js/Tooltip.js\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _EmojiPicker = _interopRequireDefault(__webpack_require__(/*! ./EmojiPicker */ \"./node_modules/absol-acomp/js/EmojiPicker.js\"));\n\nvar _EmojiAnims = _interopRequireDefault(__webpack_require__(/*! ./EmojiAnims */ \"./node_modules/absol-acomp/js/EmojiAnims.js\"));\n\nvar _PositionTracker = _interopRequireDefault(__webpack_require__(/*! ./PositionTracker */ \"./node_modules/absol-acomp/js/PositionTracker.js\"));\n\nvar _ResizeSystem = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/ResizeSystem */ \"./node_modules/absol/src/HTML5/ResizeSystem.js\"));\n\nvar _Dom = __webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\");\n\nvar _Rectangle = _interopRequireDefault(__webpack_require__(/*! absol/src/Math/Rectangle */ \"./node_modules/absol/src/Math/Rectangle.js\"));\n\nvar _EventEmitter = __webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\");\n\nvar _BrowserDetector = _interopRequireDefault(__webpack_require__(/*! absol/src/Detector/BrowserDetector */ \"./node_modules/absol/src/Detector/BrowserDetector.js\"));\n\nvar _PageIndicator = _interopRequireDefault(__webpack_require__(/*! ./PageIndicator */ \"./node_modules/absol-acomp/js/PageIndicator.js\"));\n\nvar _Hanger = _interopRequireDefault(__webpack_require__(/*! ./Hanger */ \"./node_modules/absol-acomp/js/Hanger.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\nvar isMobile = _BrowserDetector[\"default\"].isMobile;\n/***\r\n * @augments Tooltip\r\n * @augments AElement\r\n * @augments Hanger\r\n * @constructor\r\n */\n\nfunction EmojiPickerTooltip() {\n  if (isMobile) {\n    _({\n      tag: _Hanger[\"default\"].tag,\n      elt: this,\n      on: {\n        predrag: this.eventHandler.preDragTT,\n        dragstart: this.eventHandler.dragStartTT,\n        drag: this.eventHandler.dragTT,\n        dragend: this.eventHandler.dragEndTT\n      }\n    });\n  }\n\n  this.$iconList = $('.as-emoji-picker-tooltip-icon-list', this);\n  this.$leftBtn = $('.as-emoji-picker-tooltip-left-btn', this).on('click', this.eventHandler.clickLeft);\n  this.$scroller = $('.as-emoji-picker-tooltip-scroller', this);\n  this.$rightBtn = $('.as-emoji-picker-tooltip-right-btn', this).on('click', this.eventHandler.clickRight);\n  this.$removeBtn = $('.as-emoji-picker-tooltip-remove-btn', this).on('click', this.eventHandler.clickRemove);\n  this.$pageIndicatior = $('pageindicator', this);\n  this._iconButtonCache = {};\n  this._icons = [];\n  this.icons = EmojiPickerTooltip.defaultIcons;\n}\n\nEmojiPickerTooltip.tag = 'EmojiPickerTooltip'.toLowerCase();\nEmojiPickerTooltip.defaultIcons = [';(', '(sarcastic)', ':O', '(cwl)', '(heart)', '(y)', '(n)', '(rock)', '(facepalm)', '(xd)', ':$', '(waiting)', '(headbang)', '(ghost)', '(clap)', '(punch)', '(ok)', '(angry)'];\nEmojiPickerTooltip.emojiDict = _EmojiAnims[\"default\"].reduce(function (ac, cr) {\n  ac[cr[0]] = {\n    imageFileName: cr[1],\n    text: cr[0],\n    desc: cr[2]\n  };\n  return ac;\n}, {});\n\nEmojiPickerTooltip.render = function () {\n  return _({\n    tag: 'tooltip',\n    extendEvent: ['pick'],\n    \"class\": ['as-emoji-picker-tooltip'].concat(isMobile ? ['as-mobile'] : []),\n    child: [{\n      tag: 'button',\n      \"class\": 'as-emoji-picker-tooltip-left-btn',\n      child: 'span.mdi.mdi-chevron-left'\n    }, {\n      \"class\": 'as-emoji-picker-tooltip-scroller',\n      child: {\n        \"class\": 'as-emoji-picker-tooltip-icon-list'\n      }\n    }, {\n      tag: 'button',\n      \"class\": 'as-emoji-picker-tooltip-right-btn',\n      child: 'span.mdi.mdi-chevron-right'\n    }, {\n      tag: 'button',\n      attr: {\n        title: 'Remove Emoji'\n      },\n      \"class\": 'as-emoji-picker-tooltip-remove-btn',\n      child: 'span.mdi.mdi-close'\n    }, {\n      tag: 'pageindicator',\n      \"class\": 'as-emoji-picker-tooltip-page-indicator',\n      props: {\n        length: 3,\n        idx: 0\n      }\n    }]\n  }, true);\n};\n/*var */\n\n\nEmojiPickerTooltip.prototype._makeIconBtn = function (iconText) {\n  var icon = EmojiPickerTooltip.emojiDict[iconText];\n  var url = _EmojiPicker[\"default\"].assetRoot + '/anim/x40/' + icon.imageFileName;\n\n  var spriteElt = _({\n    tag: 'sprite',\n    \"class\": 'as-emoji-picker-tooltip-icon',\n    attr: {\n      title: icon.desc\n    },\n    props: {\n      src: url,\n      loop: true,\n      fps: 30,\n      debug: true\n    },\n    on: {\n      ready: function ready() {\n        this.frames = {\n          type: 'grid',\n          col: 1,\n          row: this.texture.naturalHeight / this.texture.naturalWidth\n        };\n        this.frameIndex = 0;\n      }\n    }\n  });\n\n  var buttonElt = _({\n    tag: 'button',\n    \"class\": 'as-emoji-picker-tooltip-icon-btn',\n    child: spriteElt,\n    on: {\n      click: this.eventHandler.clickIconBtn.bind(null, icon)\n    }\n  });\n\n  buttonElt.on('mouseenter', function () {\n    spriteElt.play();\n  }).on('mouseleave', function () {\n    spriteElt.stop();\n    spriteElt.frameIndex = 0;\n  });\n  return buttonElt;\n};\n\nEmojiPickerTooltip.prototype._updateIconList = function () {\n  this.$iconList.clearChild();\n  var iconText;\n\n  for (var i = 0; i < this._icons.length; ++i) {\n    iconText = this._icons[i];\n    this._iconButtonCache[iconText] = this._iconButtonCache[iconText] || this._makeIconBtn(iconText);\n    this.$iconList.addChild(this._iconButtonCache[iconText]);\n  }\n};\n\nEmojiPickerTooltip.property = {};\nEmojiPickerTooltip.property.icons = {\n  set: function set(icons) {\n    this._icons = icons || [];\n\n    this._updateIconList();\n\n    this.viewOffset = 0;\n    this.$pageIndicatior.length = Math.ceil(this._icons.length / 6);\n  },\n  get: function get() {\n    return this._icons;\n  }\n};\nEmojiPickerTooltip.property.viewOffset = {\n  set: function set(value) {\n    this._viewOffset = Math.max(0, Math.min(value, this._icons.length - 6));\n    this.$iconList.addStyle('left', -(100 * this._viewOffset / 6) + '%');\n    this.$leftBtn.disabled = this._viewOffset === 0;\n    this.$rightBtn.disabled = this._viewOffset === this._icons.length - 6;\n    this.$pageIndicatior.idx = Math.floor(this._viewOffset / 6);\n  },\n  get: function get() {\n    return this._viewOffset;\n  }\n};\nEmojiPickerTooltip.eventHandler = {};\n\nEmojiPickerTooltip.eventHandler.clickLeft = function () {\n  this.viewOffset -= 6;\n};\n\nEmojiPickerTooltip.eventHandler.clickRight = function () {\n  this.viewOffset += 6;\n};\n\nEmojiPickerTooltip.eventHandler.clickIconBtn = function (icon) {\n  if (this._preventClick) return;\n  this.emit('pick', Object.assign({\n    type: 'pick',\n    icon: icon,\n    target: this\n  }, icon), this);\n};\n\nEmojiPickerTooltip.eventHandler.clickRemove = function () {\n  this.emit('pick', Object.assign({\n    type: 'pressremove',\n    icon: \"REMOVE\",\n    target: this\n  }), this);\n};\n\nEmojiPickerTooltip.eventHandler.preDragTT = function (event) {\n  var scrollerBound = this.$scroller.getBoundingClientRect();\n  var listBound = this.$iconList.getBoundingClientRect();\n  this._scrollData = {\n    left: listBound.left - scrollerBound.left,\n    scrollerWidth: scrollerBound.width,\n    newLeft: listBound.left - scrollerBound.left\n  };\n};\n\nEmojiPickerTooltip.eventHandler.dragStartTT = function () {\n  this.addClass('as-scrolling');\n  this._preventClick = true;\n};\n\nEmojiPickerTooltip.eventHandler.dragTT = function (event) {\n  event.preventDefault();\n  var dx = event.currentPoint.sub(event.startingPoint).x;\n  var newLeft = Math.min(0, Math.max(-this._scrollData.scrollerWidth * 2, this._scrollData.left + dx));\n  this._scrollData.newLeft = newLeft;\n  this.$iconList.addStyle('left', newLeft + 'px');\n};\n\nEmojiPickerTooltip.eventHandler.dragEndTT = function (event) {\n  event.preventDefault();\n  this.removeClass('as-scrolling');\n  var dOffset = (this._scrollData.left - this._scrollData.newLeft) / this._scrollData.scrollerWidth;\n\n  if (dOffset > 0.25) {\n    dOffset = 1;\n  } else if (dOffset < -0.25) {\n    dOffset = -1;\n  } else {\n    dOffset = 0;\n  }\n\n  this.viewOffset += dOffset * 6;\n  setTimeout(function () {\n    this._preventClick = false;\n  }.bind(this), 5);\n};\n\n_ACore[\"default\"].install(EmojiPickerTooltip);\n\nEmojiPickerTooltip._session = Math.random() * 10000000000 >> 0;\n\nfunction prepare() {\n  if (EmojiPickerTooltip.$holder) return;\n  EmojiPickerTooltip.$holder = _('.absol-tooltip-root-holder');\n  EmojiPickerTooltip.$tooltip = _('emojipickertooltip.top').addTo(EmojiPickerTooltip.$holder).on('pick', function (event) {\n    EmojiPickerTooltip._listener && EmojiPickerTooltip._listener(event.icon);\n  });\n  /***\r\n   *\r\n   * @type {PositionTracker|undefined}\r\n   */\n\n  EmojiPickerTooltip.$element = undefined;\n  EmojiPickerTooltip.$content = undefined;\n  EmojiPickerTooltip._orientation = 'auto';\n  EmojiPickerTooltip._session = Math.random() * 10000000000 >> 0;\n  EmojiPickerTooltip._listener = undefined;\n  EmojiPickerTooltip._scrollOutListener = undefined;\n  EmojiPickerTooltip.$tooltip.$arrow.updateSize = EmojiPickerTooltip.updatePosition;\n}\n\nEmojiPickerTooltip.updatePosition = function () {\n  if (!EmojiPickerTooltip.$element) return;\n\n  var outBound = _Rectangle[\"default\"].fromClientRect((0, _Dom.traceOutBoundingClientRect)(EmojiPickerTooltip.$element));\n\n  var eBound = _Rectangle[\"default\"].fromClientRect(EmojiPickerTooltip.$element.getBoundingClientRect());\n\n  if (!outBound.isCollapse(eBound, 0)) {\n    EmojiPickerTooltip._scrollOutListener && EmojiPickerTooltip._scrollOutListener();\n  }\n\n  (0, _Tooltip.updateTooltipPosition)(EmojiPickerTooltip);\n};\n\nEmojiPickerTooltip.updatePosition = EmojiPickerTooltip.updatePosition.bind(EmojiPickerTooltip);\n\nEmojiPickerTooltip.show = function (element, menuListener, orientation) {\n  prepare();\n\n  if (EmojiPickerTooltip.$element) {\n    EmojiPickerTooltip.$element.stopTrackPosition();\n    EmojiPickerTooltip.$element.off('positionchange', EmojiPickerTooltip.updatePosition);\n  }\n\n  if (!element.startTrackPosition) {\n    _({\n      tag: _PositionTracker[\"default\"].tag,\n      elt: element\n    });\n  }\n\n  element.startTrackPosition();\n  EmojiPickerTooltip.$element = element;\n  EmojiPickerTooltip.$element.on('positionchange', EmojiPickerTooltip.updatePosition);\n  EmojiPickerTooltip._listener = menuListener;\n  EmojiPickerTooltip._session = Math.random() * 10000000000 >> 0;\n  EmojiPickerTooltip._orientation = orientation || 'auto';\n  EmojiPickerTooltip.$holder.addTo(document.body);\n\n  _ResizeSystem[\"default\"].add(EmojiPickerTooltip.$tooltip.$arrow);\n\n  EmojiPickerTooltip.$tooltip.viewOffset = 0;\n  EmojiPickerTooltip.$tooltip.addClass('top').removeClass('left').removeClass('right').removeClass('bottom').removeClass('ne').removeClass('nw').removeClass('auto');\n  EmojiPickerTooltip.updatePosition();\n  return EmojiPickerTooltip._session;\n};\n\nEmojiPickerTooltip.close = function (token) {\n  if (EmojiPickerTooltip._session !== token) return;\n\n  if (EmojiPickerTooltip.$element) {\n    EmojiPickerTooltip.$element.stopTrackPosition();\n    EmojiPickerTooltip.$element.off('positionchange', EmojiPickerTooltip.updatePosition);\n  }\n\n  EmojiPickerTooltip.$element = undefined;\n  EmojiPickerTooltip._listener = undefined;\n  EmojiPickerTooltip._session = Math.random() * 10000000000 >> 0;\n  EmojiPickerTooltip.$holder.remove();\n};\n\nEmojiPickerTooltip.toggleWhenClick = function (trigger, adaptor) {\n  var res = {\n    trigger: trigger,\n    adaptor: adaptor,\n    currentSession: undefined\n  };\n\n  function clickHandler(event) {\n    if (res.currentSession === EmojiPickerTooltip._session) return;\n    res.currentSession = EmojiPickerTooltip.show(res.adaptor.getFlowedElement ? res.adaptor.getFlowedElement() : trigger, res.adaptor.onSelect, res.adaptor.orientation || 'auto');\n    if (res.adaptor.onOpen) res.adaptor.onOpen();\n\n    var finish = function finish(event) {\n      if (event && ((0, _EventEmitter.hitElement)(EmojiPickerTooltip.$tooltip.$leftBtn, event) || (0, _EventEmitter.hitElement)(EmojiPickerTooltip.$tooltip.$rightBtn, event)) || event && event.target && event.target.classList.contains('absol-tooltip-content')) return;\n      document.body.removeEventListener('click', finish, false);\n      EmojiPickerTooltip.close(res.currentSession);\n      if (adaptor.onClose) adaptor.onClose();\n      res.currentSession = undefined;\n      if (EmojiPickerTooltip._scrollOutListener === EmojiPickerTooltip) EmojiPickerTooltip._scrollOutListener = undefined;\n    };\n\n    EmojiPickerTooltip._scrollOutListener = finish;\n    setTimeout(function () {\n      document.body.addEventListener('click', finish, false);\n    }, 10);\n  }\n\n  res.remove = function () {\n    trigger.removeEventListener('click', clickHandler, false);\n    trigger.classList.remove('as-emoji-picker-tooltip-trigger');\n  };\n\n  trigger.addEventListener('click', clickHandler, false);\n  trigger.classList.add('as-emoji-picker-tooltip-trigger');\n  return res;\n};\n\nvar _default = EmojiPickerTooltip;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/EmojiPickerTooltip.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/EmojiUserListTooltip.js":
/*!*************************************************************!*\
  !*** ./node_modules/absol-acomp/js/EmojiUserListTooltip.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/emojiuserlisttooltip.css */ \"./node_modules/absol-acomp/css/emojiuserlisttooltip.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Tooltip = _interopRequireDefault(__webpack_require__(/*! ./Tooltip */ \"./node_modules/absol-acomp/js/Tooltip.js\"));\n\nvar _EmojiPicker = _interopRequireDefault(__webpack_require__(/*! ./EmojiPicker */ \"./node_modules/absol-acomp/js/EmojiPicker.js\"));\n\nvar _EmojiPickerTooltip = _interopRequireDefault(__webpack_require__(/*! ./EmojiPickerTooltip */ \"./node_modules/absol-acomp/js/EmojiPickerTooltip.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @augments ToolTip\r\n * @augments AElement\r\n * @constructor\r\n */\n\nfunction EmojiUserListTooltip() {\n  this._text = null;\n  this._users = [];\n  this.$sprite = _({\n    tag: 'sprite',\n    \"class\": 'as-emoji-user-list-tooltip-emoji',\n    props: {\n      fps: 30,\n      loop: true\n    },\n    on: {\n      ready: function ready() {\n        this.frames = {\n          type: 'grid',\n          col: 1,\n          row: this.texture.naturalHeight / this.texture.naturalWidth\n        };\n      }\n    }\n  });\n  this.appendChild(this.$sprite);\n  this.text = '(heart)';\n  this.user = [];\n}\n\nEmojiUserListTooltip.tag = 'EmojiUserListTooltip'.toLowerCase();\n\nEmojiUserListTooltip.render = function () {\n  return _({\n    tag: 'tooltip',\n    \"class\": 'as-emoji-user-list-tooltip'\n  }, true);\n};\n\nEmojiUserListTooltip.prototype._updateUsers = function () {\n  var thisT = this;\n  this.$content.clearChild();\n\n  this._users.forEach(function (user) {\n    var elt = _({\n      \"class\": 'as-emoji-user-list-tooltip-user',\n      child: [{\n        \"class\": 'as-emoji-user-list-tooltip-avatar',\n        style: {\n          backgroundImage: 'url(' + user.avatar + ')'\n        }\n      }, {\n        \"class\": 'as-emoji-user-list-tooltip-name',\n        child: {\n          text: user.name\n        }\n      }]\n    });\n\n    if (user.onclick) {\n      elt.addClass('as-clickable');\n      elt.on('click', user.onclick.bind(user));\n    }\n\n    thisT.$content.addChild(elt);\n  });\n};\n\nEmojiUserListTooltip.prototype.playEmoji = function () {\n  this.$sprite.afterReady().then(this.$sprite.play.bind(this.$sprite));\n};\n\nEmojiUserListTooltip.prototype.stopEmoji = function () {\n  this.$sprite.stop();\n};\n\nEmojiUserListTooltip.property = {};\nEmojiUserListTooltip.property.users = {\n  set: function set(users) {\n    this._users = users || [];\n\n    this._updateUsers();\n  },\n  get: function get() {\n    return this._users;\n  }\n};\nEmojiUserListTooltip.property.text = {\n  set: function set(value) {\n    if (value === this._text) return;\n    var icon = _EmojiPickerTooltip[\"default\"].emojiDict[value];\n    if (!value) return;\n    var url = _EmojiPicker[\"default\"].assetRoot + '/anim/x60/' + icon.imageFileName;\n    this._text = value;\n    this.$sprite.src = url;\n  },\n  get: function get() {\n    return this._text;\n  }\n};\n\n_ACore[\"default\"].install(EmojiUserListTooltip);\n\nvar _default = EmojiUserListTooltip;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/EmojiUserListTooltip.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/ExpTree.js":
/*!************************************************!*\
  !*** ./node_modules/absol-acomp/js/ExpTree.js ***!
  \************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.ExpGroup = ExpGroup;\nexports.ExpNode = ExpNode;\nexports.ExpTree = ExpTree;\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/exptree.css */ \"./node_modules/absol-acomp/css/exptree.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _EventEmitter = _interopRequireWildcard(__webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n\n_ACore[\"default\"].install('toggler-ico', function () {\n  var res = _('<svg class=\"toggler-ico\" width=\"14\" height=\"14\" version=\"1.1\" viewBox=\"0 0 3.7042 3.7042\" xmlns=\"http://www.w3.org/2000/svg\" >' + '    <rect style=\"fill: transparent; stroke: none\" x=\"0\" y=\"0\" width=\"3.7042\" height=\"3.7042\"></rect>' + '    <g transform=\"translate(0 -293.3)\" class=\"toggle-close\">' + '        <path d=\"m0.52917 293.82v2.6458l2.6458-1.3229z\" />' + '    </g>' + '    <g transform=\"translate(0 -293.3)\" class=\"toggle-open\">' + '        <path d=\"m3.175 294.09-2.6458 2.1167h2.6458z\"/>' + '    </g>' + '</svg>');\n\n  return res;\n});\n\n_ACore[\"default\"].install('remove-ico', function () {\n  return _('<svg class=\"remove-ico\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\\\r\n                <rect style=\"fill: transparent; stroke: none\" x=\"0\" y=\"0\" width=\"24\" height=\"24\"></rect>\\\r\n                <path class=\"close\" d=\"M3,16.74L7.76,12L3,7.26L7.26,3L12,7.76L16.74,3L21,7.26L16.24,12L21,16.74L16.74,21L12,16.24L7.26,21L3,16.74\" />\\\r\n                <circle class=\"modified\" cx=\"12\" cy=\"12\" r=\"10\" />\\\r\n            </svg>');\n});\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\n\nfunction ExpNode() {\n  var _this = this;\n\n  var thisEN = this;\n  this.$level = $('.absol-exp-node-level', this);\n  this.$removeIcon = $('remove-ico', this).on('click', function (event) {\n    thisEN.emit('pressremove', {\n      target: thisEN,\n      type: 'pressremove'\n    }, this);\n  });\n  this.on('keydown', this.eventHandler.buttonKeydown);\n  this.$toggleIcon = $('toggler-ico', this);\n  this.on('click', function (event) {\n    var toggleBound = _this.$toggleIcon.getBoundingClientRect();\n\n    if (toggleBound.width > 0 && event.clientX <= toggleBound.right) {\n      _this.emit('presstoggle', (0, _EventEmitter.copyEvent)(event, {\n        target: thisEN,\n        type: 'pressremove'\n      }), _this);\n    } else if (!_EventEmitter[\"default\"].hitElement(thisEN.$removeIcon, event)) {\n      _this.emit('press', (0, _EventEmitter.copyEvent)(event, {\n        target: thisEN,\n        type: 'press'\n      }), _this);\n    }\n  });\n  this.$iconCtn = $('div.absol-exp-node-ext-icon', this);\n  this.$extIcon = $('img.absol-exp-node-ext-icon', this);\n  this.$name = $('span.absol-exp-node-name', this);\n  this.$desc = $('span.absol-exp-node-desc', this);\n  (0, _utils.contenteditableTextOnly)(this.$name, function (text) {\n    return text.replace(/[\\\\\\/\\|\\?\\:\\<\\>\\*\\r\\n]/, '').trim();\n  });\n\n  _OOP[\"default\"].drillProperty(thisEN, thisEN.$extIcon, 'extSrc', 'src');\n\n  this._level = 0;\n  this.__isExpNode__ = true;\n  return thisEN;\n}\n\nExpNode.tag = 'expnode';\n\nExpNode.render = function () {\n  return _({\n    tag: 'button',\n    extendEvent: ['pressremove', 'press', 'presstoggle'],\n    \"class\": 'absol-exp-node',\n    child: ['.absol-exp-node-level', 'remove-ico', 'toggler-ico', 'img.absol-exp-node-ext-icon', 'div.absol-exp-node-ext-icon', 'span.absol-exp-node-name', 'span.absol-exp-node-desc']\n  });\n};\n\nExpNode.property = {};\nExpNode.property.icon = {\n  set: function set(value) {\n    if (this.$iconP) {\n      this.$iconP.remove();\n      this.$iconP = undefined;\n    }\n\n    if (value && value != null) {\n      var newE;\n\n      if (!_Dom[\"default\"].isDomNode(value)) {\n        newE = _(value);\n      }\n\n      this.$iconP = newE;\n      this.$iconCtn.addChild(newE);\n      this._icon = value;\n    } else {\n      this._icon = undefined;\n    }\n  },\n  get: function get() {\n    return this._icon;\n  }\n};\nExpNode.property.level = {\n  set: function set(value) {\n    value = value || 0;\n\n    if (value !== this.level) {\n      this._level = value || 0;\n      this.$level.innerHTML = '&nbsp;'.repeat(this._level * 6);\n    }\n  },\n  get: function get() {\n    return this._level || 0;\n  }\n};\nExpNode.property.name = {\n  set: function set(value) {\n    value = value + '';\n    this._name = value;\n    this.$name.clearChild();\n    if (value && value.length > 0) this.$name.addChild(_({\n      text: value\n    }));\n  },\n  get: function get() {\n    return this._name || '';\n  }\n};\nExpNode.property.desc = {\n  set: function set(value) {\n    this._desc = (value || '') + '';\n    this.$desc.clearChild();\n    this.$desc.addChild(_({\n      text: this._desc\n    }));\n  },\n  get: function get() {\n    return this._desc || '';\n  }\n};\nExpNode.property.status = {\n  set: function set(value) {\n    this.removeClass('status-open').removeClass('status-close').removeClass('status-modified').removeClass('status-removable');\n\n    if (!value || value == 'none') {//todo\n    } else if (value == 'close') {\n      this.addClass('status-close');\n    } else if (value == 'open') {\n      this.addClass('status-open');\n    } else if (value == 'removable') {\n      this.addClass('status-removable');\n    } else if (value == 'modified') {\n      this.addClass('status-modified');\n    } else {\n      throw new Error('Invalid status ' + value);\n    }\n\n    this._status = value;\n  },\n  get: function get() {\n    return this._status;\n  }\n};\nExpNode.property.active = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-active');\n      this.addClass('active');\n    } else {\n      this.removeClass('as-active');\n      this.removeClass('active');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-active');\n  }\n};\n\nExpNode.prototype.rename = function (resolveCallback, rejectCallback) {\n  var self = this;\n  var span = this.$name;\n  var lastName = span.innerHTML;\n  span.attr('contenteditable', 'true');\n  span.focus();\n  document.execCommand('selectAll', false, null);\n\n  function keydowEventHandle(event) {\n    var key = event.key;\n\n    if (key == 'Enter') {\n      event.preventDefault();\n      span.blur();\n      span.attr('contenteditable', undefined);\n    } else if (key == \"ESC\") {\n      event.preventDefault();\n      span.innerHTML = lastName;\n      span.blur();\n      span.attr('contenteditable', undefined);\n    }\n  }\n\n  function blurEventHandle(event) {\n    finish();\n    var curentName = span.innerHTML.replace(/[\\\\\\/\\|\\?\\:\\<\\>\\*\\r\\n]/, '').trim();\n\n    if (curentName == lastName) {\n      rejectCallback && rejectCallback();\n    } else {\n      if (curentName.length == 0) {\n        span.innerHTML = lastName;\n        rejectCallback && rejectCallback();\n      } else {\n        var res = resolveCallback && resolveCallback(curentName);\n\n        if (res === false) {\n          span.innerHTML = lastName;\n        } else if (res && res.then) {\n          res.then(function (result) {\n            if (result === false) {\n              span.innerHTML = lastName; //faile\n            } else {//success\n            }\n          }, function () {\n            //reject value\n            span.innerHTML = lastName;\n          });\n        } else {//success\n        }\n      }\n    }\n  }\n\n  function finish() {\n    span.off('keydown', keydowEventHandle);\n    span.off('blur', blurEventHandle);\n    $(document.body).once('click', function () {\n      setTimeout(function () {\n        span.attr('contenteditable', undefined);\n      }, 2);\n    });\n  }\n\n  span.on('keydown', keydowEventHandle);\n  span.on('blur', blurEventHandle);\n};\n\nExpNode.prototype.findNodeBefore = function () {\n  var tree = this.parentElement;\n  var root;\n  var prevTree;\n  var res = null;\n\n  if (tree.__isExpTree__) {\n    root = tree.getRoot();\n    root.visitRecursive(function (cTree) {\n      if (cTree === tree) {\n        res = prevTree;\n      }\n\n      prevTree = cTree;\n    });\n  }\n\n  return res && res.getNode();\n};\n\nExpNode.prototype.findNodeAfter = function () {\n  var tree = this.parentElement;\n  var root;\n  var prevTree;\n  var res = null;\n\n  if (tree.__isExpTree__) {\n    root = tree.getRoot();\n    root.visitRecursive(function (cTree) {\n      if (prevTree === tree) {\n        res = cTree;\n      }\n\n      prevTree = cTree;\n    });\n  }\n\n  return res && res.getNode();\n};\n\nExpNode.eventHandler = {};\n/****\r\n *\r\n * @param {KeyboardEvent} event\r\n */\n\nExpNode.eventHandler.buttonKeydown = function (event) {\n  if (event.target === this) {\n    if (!event.metaKey && !event.shiftKey && !event.ctrlKey && !event.altKey) {\n      var destNode;\n      var tree = this.parentElement;\n      var parentTree = tree && tree.getParent();\n\n      switch (event.key) {\n        case 'ArrowLeft':\n          if (tree.status === 'open') {\n            tree.status = 'close';\n            tree.notifyStatusChange();\n          } else {\n            destNode = parentTree && parentTree.getNode();\n          }\n\n          break;\n\n        case 'ArrowRight':\n          if (tree.status === 'close') {\n            tree.status = 'open';\n            tree.notifyStatusChange();\n          } else {\n            destNode = this.findNodeAfter();\n          }\n\n          break;\n\n        case 'ArrowUp':\n          destNode = this.findNodeBefore();\n          break;\n\n        case 'ArrowDown':\n          destNode = this.findNodeAfter();\n          break;\n\n        case 'Space':\n          this.click();\n          break;\n      }\n\n      if (destNode) {\n        destNode.focus();\n        event.preventDefault();\n      }\n    }\n  }\n};\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\n\nfunction ExpTree() {\n  var thisET = this;\n  this.$node = $('expnode', this).on('press', function (event) {\n    thisET.emit('press', Object.assign({}, {\n      target: thisET,\n      node: this,\n      type: 'press'\n    }, event), this);\n  }).on('pressremove', function (event) {\n    thisET.emit('pressremove', Object.assign({}, {\n      target: thisET,\n      node: this,\n      type: 'pressremove'\n    }, event), this);\n  }).on('presstoggle', this.eventHandler.nodePressToggle);\n  this.$itemsContainer = $('.absol-exp-items', thisET);\n\n  _OOP[\"default\"].drillProperty(this, this.$node, ['desc', 'name', 'title', 'extSrc', 'active', 'icon']);\n\n  this.__isExpTree__ = true;\n  this._level = 0;\n}\n\nExpTree.tag = 'ExpTree'.toLowerCase();\n\nExpTree.render = function () {\n  return _({\n    \"class\": 'absol-exp-tree',\n    extendEvent: ['press', 'pressremove', 'statuschange'],\n    child: ['expnode', '.absol-exp-items']\n  });\n};\n\nExpTree.property = {};\nExpTree.property.level = {\n  set: function set(value) {\n    value = value || 0;\n\n    if (value != this.level) {\n      this.$node.level = value;\n      Array.prototype.forEach.call(this.$itemsContainer.childNodes, function (e) {\n        e.level = value + 1;\n      });\n    }\n  },\n  get: function get() {\n    return this.$node.level;\n  }\n};\nExpTree.property.status = {\n  set: function set(value) {\n    this.$node.status = value;\n\n    if (value != 'open') {\n      this.addClass('hide-children');\n    } else {\n      this.removeClass('hide-children');\n    }\n  },\n  get: function get() {\n    return this.$node.status;\n  }\n};\n['findChildBefore', 'findChildAfter', 'removeChild', 'clearChild'].forEach(function (key) {\n  ExpTree.prototype[key] = function () {\n    this.$itemsContainer[key].apply(this.$itemsContainer, arguments);\n  };\n});\n\nExpTree.prototype.addChild = function (child) {\n  if (!child.__isExpTree__) throw new Error('Child node must be a ExpTree');\n  child.level = this.level + 1;\n  this.$itemsContainer.addChild(child);\n};\n\nExpTree.prototype.addChildBefore = function (child, at) {\n  child.level = this.level + 1;\n  this.$itemsContainer.addChildBefore(child, at);\n};\n\nExpTree.prototype.addChildAfter = function (child, at) {\n  child.level = this.level + 1;\n  this.$itemsContainer.addChildAfter(child, at);\n};\n/****\r\n *\r\n * @return {ExpTree}\r\n */\n\n\nExpTree.prototype.getParent = function () {\n  var current = this.parentNode;\n\n  while (current) {\n    if (current.__isExpTree__) break;\n    current = current.parentNode;\n  }\n\n  return current;\n};\n/***\r\n *\r\n * @return {ExpTree}\r\n */\n\n\nExpTree.prototype.getRoot = function () {\n  var parent = this.getParent();\n  if (!parent) return this;\n  return parent.getRoot();\n};\n\nExpTree.prototype.getNode = function () {\n  return this.$node;\n};\n\nExpTree.prototype.getChildren = function () {\n  return Array.apply(null, this.$itemsContainer.childNodes);\n};\n/***\r\n *\r\n * @param {function(tree: ExpTree): void} cb\r\n */\n\n\nExpTree.prototype.visitRecursive = function (cb) {\n  cb(this);\n  if (this.status === 'open') Array.prototype.forEach.call(this.$itemsContainer.childNodes, function (child) {\n    child.visitRecursive(cb);\n  });\n};\n\nExpTree.prototype.getPath = function () {\n  var path = [];\n  var current = this;\n\n  while (current) {\n    path.push(current.name);\n    current = current.getParent();\n  }\n\n  return path.reverse();\n};\n\nExpTree.prototype.accessByPath = function (path) {\n  if (path.length == 0) return this;\n  var childs = this.getChildren();\n  var res;\n\n  for (var i = 0; i < childs.length; ++i) {\n    if (childs[i].name == path[0]) {\n      res = childs[i].accessByPath(path.slice(1));\n      break;\n    }\n  }\n\n  return res;\n};\n\nExpTree.prototype.toggle = function () {\n  switch (this.status) {\n    case 'close':\n      this.status = 'open';\n      break;\n\n    case 'open':\n      this.status = 'close';\n      break;\n  }\n};\n\nExpTree.prototype.notifyStatusChange = function (props) {\n  this.emit('statuschange', Object.assign({\n    type: 'statuschange',\n    target: this\n  }, props), this);\n};\n\nExpTree.eventHandler = {};\n\nExpTree.eventHandler.nodePressToggle = function (event) {\n  this.toggle();\n  this.notifyStatusChange({\n    originEvent: event\n  });\n};\n/***\r\n * @extends ExpTree\r\n * @constructor\r\n */\n\n\nfunction ExpGroup() {\n  this.addClass('as-exp-group');\n  this.__isExpTree__ = true;\n  this.name = '';\n}\n\nExpGroup.tag = 'ExpGroup'.toLowerCase();\n\nExpGroup.render = function () {\n  return _('div');\n};\n/***\r\n *\r\n * @param {function(tree: ExpTree): void} cb\r\n */\n\n\nExpGroup.prototype.visitRecursive = function (cb) {\n  Array.prototype.forEach.call(this.childNodes, function (child) {\n    child.visitRecursive(cb);\n  });\n};\n\nExpGroup.prototype.getParent = function () {\n  return null;\n};\n\nExpGroup.prototype.getRoot = function () {\n  return this;\n};\n\nExpGroup.prototype.getNode = function () {\n  return null;\n};\n\n_ACore[\"default\"].install(ExpNode);\n\n_ACore[\"default\"].install(ExpTree);\n\n_ACore[\"default\"].install(ExpGroup);\n\nvar _default = ExpTree;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/ExpTree.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/FileInputBox.js":
/*!*****************************************************!*\
  !*** ./node_modules/absol-acomp/js/FileInputBox.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/fileinputbox.css */ \"./node_modules/absol-acomp/css/fileinputbox.css\");\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _DropZone = _interopRequireDefault(__webpack_require__(/*! ./DropZone */ \"./node_modules/absol-acomp/js/DropZone.js\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _catalog = _interopRequireDefault(__webpack_require__(/*! ../assets/exticons/catalog.json */ \"./node_modules/absol-acomp/assets/exticons/catalog.json\"));\n\nvar _FileSaver = __webpack_require__(/*! absol/src/Network/FileSaver */ \"./node_modules/absol/src/Network/FileSaver.js\");\n\nvar _MessageInput = _interopRequireDefault(__webpack_require__(/*! ./messageinput/MessageInput */ \"./node_modules/absol-acomp/js/messageinput/MessageInput.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction FileInputBox() {\n  this.$fileSize = (0, _ACore.$)('.as-file-input-box-file-size', this);\n  this.$fileName = (0, _ACore.$)('.as-file-input-box-file-name', this);\n  this.$bg = (0, _ACore.$)('.as-file-input-box-background', this);\n  this.$input = (0, _ACore.$)('input', this).on('change', this.eventHandler.input_fileChange);\n  this.$trigger = (0, _ACore._)({\n    elt: (0, _ACore.$)('.as-file-input-box-trigger', this),\n    tag: _DropZone[\"default\"].tag,\n    on: {\n      fileenter: this.eventHandler.input_fileEnter,\n      fileleave: this.eventHandler.input_fileLeave,\n      filedrop: this.eventHandler.input_fileDrop\n    }\n  });\n  this.$downloadBtn = (0, _ACore.$)('.as-file-input-box-download-btn', this).on('click', this.download.bind(this));\n  this.$removeBtn = (0, _ACore.$)('.as-file-input-box-remove-btn', this).on('click', this.clearValue.bind(this, true));\n  this._value = null;\n  this._fileSize = null;\n  this._fileName = null;\n  this._fileType = null;\n  this._valueInfo = null;\n  this._thumbnail = null;\n  /***\r\n   * default true\r\n   * @name allowUpload\r\n   * @type {boolean}\r\n   * @memberOf FileInputBox#\r\n   */\n\n  this.allowUpload = true;\n  /***\r\n   * @name value\r\n   * @type {null|any}\r\n   * @memberOf FileInputBox#\r\n   */\n\n  /***\r\n   * @name thumbnail\r\n   * @type {null|any}\r\n   * @memberOf FileInputBox#\r\n   */\n\n  /***\r\n   * @name fileSize\r\n   * @type {null|number}\r\n   * @memberOf FileInputBox#\r\n   */\n\n  /***\r\n   * @name fileType\r\n   * @type {null|string}\r\n   * @memberOf FileInputBox#\r\n   */\n\n  /***\r\n   * @name fileName\r\n   * @type {null|string}\r\n   * @memberOf FileInputBox#\r\n   */\n\n  /***\r\n   * default: false\r\n   * @name downloadable\r\n   * @type {boolean}\r\n   * @memberOf FileInputBox#\r\n   */\n}\n\nFileInputBox.tag = 'FileInputBox'.toLowerCase();\n\nFileInputBox.render = function () {\n  return (0, _ACore._)({\n    extendEvent: ['change'],\n    \"class\": 'as-file-input-box',\n    child: ['.as-file-input-box-background', {\n      tag: 'label',\n      \"class\": 'as-file-input-box-trigger',\n      child: {\n        tag: 'input',\n        attr: {\n          type: 'file',\n          accept: '*',\n          title: null\n        }\n      }\n    }, {\n      \"class\": 'as-file-input-box-upload-overlay',\n      child: 'span.mdi.mdi-upload'\n    }, {\n      \"class\": 'as-file-input-box-info',\n      child: [{\n        tag: 'span',\n        \"class\": 'as-file-input-box-file-name',\n        child: {\n          text: ''\n        }\n      }, 'br', {\n        tag: 'span',\n        \"class\": 'as-file-input-box-file-size',\n        child: {\n          text: ''\n        }\n      }]\n    }, {\n      \"class\": 'as-file-input-box-action-left',\n      child: {\n        tag: 'button',\n        \"class\": 'as-file-input-box-remove-btn',\n        child: 'span.mdi.mdi-close'\n      }\n    }, {\n      \"class\": 'as-file-input-box-action-right',\n      child: {\n        tag: 'button',\n        \"class\": 'as-file-input-box-download-btn',\n        child: 'span.mdi.mdi-download'\n      }\n    }, {\n      \"class\": 'as-file-input-box-checked',\n      child: 'span.mdi.mdi-check-bold'\n    }]\n  });\n};\n\nFileInputBox.prototype.download = function () {\n  var value = this.value;\n\n  if (value) {\n    if (value && value.name && value.url) {\n      (0, _FileSaver.saveAs)(value.url, value.name);\n    } else {\n      (0, _FileSaver.saveAs)(value, this.fileName);\n    }\n  }\n};\n\nFileInputBox.prototype.clearValue = function (userAction, event) {\n  if (this.value) {\n    this.value = null;\n\n    if (userAction) {\n      this.emit('change', {\n        type: 'change',\n        originalEvent: event,\n        action: 'clear',\n        target: this\n      }, this);\n    }\n  }\n};\n\nFileInputBox.prototype._updateThumbnail = function () {\n  var previewUrl;\n  var thumbnail = this.thumbnail;\n  var fileType = this.fileType;\n\n  if (thumbnail) {\n    if (typeof thumbnail === \"string\") {\n      previewUrl = thumbnail;\n    } else if (thumbnail instanceof Blob || thumbnail instanceof File) {\n      thumbnail.url = thumbnail.url || URL.createObjectURL(thumbnail);\n      previewUrl = thumbnail.url;\n    }\n  }\n\n  if (!previewUrl) {\n    if (_catalog[\"default\"].indexOf(fileType) >= 0) {\n      previewUrl = _MessageInput[\"default\"].iconAssetRoot + '/' + fileType + '.svg';\n    } else {\n      previewUrl = _MessageInput[\"default\"].iconAssetRoot + '/' + 'blank' + '.svg';\n    }\n  }\n\n  if (previewUrl) {\n    this.$bg.addStyle('backgroundImage', 'url(\"' + encodeURI(previewUrl) + '\")');\n  } else {\n    this.$bg.removeStyle('backgroundImage');\n  }\n};\n\nFileInputBox.prototype._updateFileName = function () {\n  var fileName = this.fileName;\n\n  if (fileName) {\n    this.$fileName.firstChild.data = fileName;\n    this.addClass('as-has-file-name');\n  } else {\n    this.$fileName.firstChild.data = '';\n    this.removeClass('as-has-file-name');\n  }\n};\n\nFileInputBox.prototype._updateFileSize = function () {\n  var fileSize = this.fileName;\n\n  if (fileSize === null) {\n    this.$fileSize.firstChild.data = '';\n    this.removeClass('as-has-file-size');\n  } else {\n    this.$fileSize.firstChild.data = (0, _utils.fileSize2Text)(fileSize);\n    this.addClass('as-has-file-size');\n  }\n};\n\nFileInputBox.property = {};\nFileInputBox.property.value = {\n  set: function set(value) {\n    value = value || null;\n    this._value = value;\n    this._valueInfo = (0, _utils.fileInfoOf)(value);\n\n    this._updateThumbnail();\n\n    this._updateFileName();\n\n    this._updateFileSize();\n\n    if (value) {\n      this.addClass('as-has-value');\n    } else {\n      this.removeClass('as-has-value');\n    }\n  },\n  get: function get() {\n    return this._value;\n  }\n};\nFileInputBox.property.fileType = {\n  set: function set(value) {\n    this._fileType = value;\n\n    this._updateThumbnail();\n  },\n\n  /***\r\n   * @this FileInputBox\r\n   * @return {*}\r\n   */\n  get: function get() {\n    return this._fileType || this._valueInfo && this._valueInfo.type || null;\n  }\n};\nFileInputBox.property.fileName = {\n  set: function set(value) {\n    value = typeof value === 'string' ? value : null;\n    this._fileName = value;\n\n    this._updateFileName();\n  },\n  get: function get() {\n    return this._fileName || this._valueInfo && this._valueInfo.name || null;\n  }\n};\nFileInputBox.property.fileSize = {\n  set: function set(value) {\n    if ((0, _utils.isRealNumber)(value)) value = Math.max(0, value);else value = null;\n    this._fileSize = value;\n\n    this._updateFileSize();\n  },\n  get: function get() {\n    if (typeof this._fileSize === \"number\") return this._fileSize;\n    if (this._valueInfo && typeof this._valueInfo.size === \"number\") return this._valueInfo.size;\n    return null;\n  }\n};\nFileInputBox.property.thumbnail = {\n  set: function set(value) {\n    this._thumbnail = value || null;\n\n    this._updateThumbnail();\n  },\n  get: function get() {\n    return this._thumbnail;\n  }\n};\nFileInputBox.property.allowUpload = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-allow-upload');\n    } else {\n      this.removeClass('as-allow-upload');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-allow-upload');\n  }\n};\nFileInputBox.property.downloadable = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-downloadable');\n    } else {\n      this.removeClass('as-downloadable');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-downloadable');\n  }\n};\nFileInputBox.property.removable = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-removable');\n    } else {\n      this.removeClass('as-removable');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-removable');\n  }\n};\nFileInputBox.property.accept = {\n  set: function set(value) {\n    if (!value) value = null;\n    this.$input.attr('accept', value + '');\n  },\n  get: function get() {\n    return this.$input.attr('accept') || null;\n  }\n};\nFileInputBox.property.checked = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-checked');\n    } else {\n      this.removeClass('as-checked');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-checked');\n  }\n};\nFileInputBox.eventHandler = {};\n\nFileInputBox.eventHandler.input_fileChange = function (event) {\n  var files = Array.prototype.slice.call(this.$input.files);\n\n  if (files.length > 0) {\n    this.value = files[0];\n    this.emit('change', {\n      type: 'change',\n      originalEvent: event,\n      file: files[0],\n      action: 'file_dialog',\n      target: this\n    }, this);\n  }\n};\n\nFileInputBox.eventHandler.input_fileEnter = function (event) {};\n\nFileInputBox.eventHandler.input_fileLeave = function (event) {};\n\nFileInputBox.eventHandler.input_fileDrop = function (event) {\n  var files = Array.prototype.slice.call(event.files);\n  var accept = this.accept;\n  var file;\n\n  if (files.length > 0) {\n    file = files[0];\n    if (!(0, _utils.fileAccept)(accept, file.type) && !(0, _utils.fileAccept)(accept, file.name)) file = null;\n  }\n\n  if (file) {\n    this.value = file;\n    this.emit('change', {\n      type: 'change',\n      originalEvent: event,\n      file: file,\n      action: 'drop',\n      target: this\n    }, this);\n  }\n};\n\n_ACore[\"default\"].install(FileInputBox);\n\nvar _default = FileInputBox;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/FileInputBox.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/FileListInput.js":
/*!******************************************************!*\
  !*** ./node_modules/absol-acomp/js/FileListInput.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _FileListItem = _interopRequireDefault(__webpack_require__(/*! ./FileListItem */ \"./node_modules/absol-acomp/js/FileListItem.js\"));\n\nvar _ResizeSystem = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/ResizeSystem */ \"./node_modules/absol/src/HTML5/ResizeSystem.js\"));\n\nvar _ContextMenu = _interopRequireDefault(__webpack_require__(/*! ./ContextMenu */ \"./node_modules/absol-acomp/js/ContextMenu.js\"));\n\nvar _LanguageSystem = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/LanguageSystem */ \"./node_modules/absol/src/HTML5/LanguageSystem.js\"));\n\nvar _FileSaver = __webpack_require__(/*! absol/src/Network/FileSaver */ \"./node_modules/absol/src/Network/FileSaver.js\");\n\nvar _DropZone = _interopRequireDefault(__webpack_require__(/*! ./DropZone */ \"./node_modules/absol-acomp/js/DropZone.js\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _FileInputBox = _interopRequireDefault(__webpack_require__(/*! ./FileInputBox */ \"./node_modules/absol-acomp/js/FileInputBox.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction FileListInput() {\n  _ContextMenu[\"default\"].auto();\n\n  this.$add = (0, _ACore.$)('.as-file-list-input-add', this);\n  this.$attachhook = (0, _ACore.$)('attachhook', this);\n  this.$attachhook.requestUpdateSize = this.updateSize.bind(this);\n  this.$attachhook.on('attached', function () {\n    _ResizeSystem[\"default\"].add(this);\n\n    this.requestUpdateSize();\n  });\n  this.on('filedrop', this.eventHandler.input_fileDrop);\n  this.on('contextmenu', this.eventHandler.itemContext);\n  this.$addedFile = (0, _ACore.$)('input', this.$add).on('change', this.eventHandler.clickAdd);\n  /***\r\n   *\r\n   * @type {FileInputBox[]}\r\n   */\n\n  this.$fileItems = [];\n  this.$activeItem = null;\n  this._files = [];\n  /***\r\n   * @name files\r\n   * @memberOf FileListInput#\r\n   * @type {*}\r\n   *\r\n   */\n\n  /***\r\n   * @name readOnly\r\n   * @memberOf FileListInput#\r\n   * @type {boolean}\r\n   */\n\n  /***\r\n   * @name disabled\r\n   * @memberOf FileListInput#\r\n   * @type {boolean}\r\n   */\n\n  /***\r\n   * @name multiple\r\n   * @memberOf FileListInput#\r\n   * @type {boolean}\r\n   */\n\n  /***\r\n   * @name droppable\r\n   * @memberOf FileListInput#\r\n   * @type {boolean}\r\n   */\n}\n\nFileListInput.tag = 'FileListInput'.toLowerCase();\n\nFileListInput.render = function () {\n  return (0, _ACore._)({\n    tag: _DropZone[\"default\"].tag,\n    \"class\": ['as-file-list-input', 'as-bscroller', 'as-empty', 'as-droppable'],\n    extendEvent: ['change', 'contextmenu', 'check'],\n    child: [{\n      tag: 'label',\n      \"class\": 'as-file-list-input-add',\n      child: [{\n        tag: 'input',\n        attr: {\n          type: 'file',\n          accept: '*',\n          title: null\n        }\n      }, {\n        \"class\": 'as-file-list-input-add-icon-ctn',\n        child: 'span.mdi.mdi-upload-outline'\n      }, 'attachhook']\n    }, {\n      tag: 'span',\n      \"class\": 'as-file-list-drag-file-text',\n      child: {\n        text: '(Kéo thả  file vào đây để tải lên)'\n      }\n    }, {\n      \"class\": 'as-file-list-input-upload-overlay',\n      child: 'span.mdi.mdi-upload'\n    }]\n  });\n};\n\nFileListInput.prototype.defaultChecked = false;\n\nFileListInput.prototype.updateSize = function () {\n  var bound, px, n;\n  var requireWidth = this.getComputedStyleValue('--item-require-width') || '300px';\n\n  if (requireWidth.match(/%$/)) {\n    this.addStyle('--item-width', requireWidth);\n  } else if (requireWidth.match(/px$/)) {\n    bound = this.getBoundingClientRect();\n    px = parseFloat(requireWidth.replace('px', ''));\n\n    if (!isNaN(px) && px > 0) {\n      n = Math.max(1, Math.floor((bound.width - 10 - 2) / px));\n      this.addStyle('--item-width', Math.floor(100 / n) + '%');\n    } else {\n      this.removeStyle('--item-width');\n    }\n  } else {\n    this.removeStyle('--item-width');\n  }\n};\n\nFileListInput.prototype._makeFileItem = function (file) {\n  var fileElt = (0, _ACore._)({\n    tag: _FileListItem[\"default\"].tag,\n    props: {\n      $parent: this,\n      allowUpload: false,\n      fileData: file,\n      checked: this.defaultChecked\n    }\n  });\n  fileElt.on('mousedown', this.eventHandler.mouseDownItem.bind(this, fileElt));\n  fileElt.value = file;\n  return fileElt;\n};\n\nFileListInput.prototype.add = function (file, idx) {\n  if (!(0, _utils.isNaturalNumber)(idx)) idx = Infinity;\n  idx = Math.min(this.$fileItems.length, idx);\n\n  var fileElt = this._makeFileItem(file);\n\n  var bf = this.$fileItems[idx];\n\n  if (bf) {\n    this.$fileItems.splice(idx, 0, fileElt);\n\n    this._files.splice(idx, 0, file);\n\n    this.addChildBefore(fileElt, bf);\n  } else {\n    this.$fileItems.push(fileElt);\n\n    this._files.push(file);\n\n    this.addChildBefore(fileElt, this.$add);\n  }\n\n  this._updateCountClass();\n};\n\nFileListInput.prototype._updateCountClass = function () {\n  if (this._files.length > 0) {\n    this.removeClass('as-empty');\n  } else {\n    this.addClass('as-empty');\n  }\n};\n\nFileListInput.prototype.activeFileItemElt = function (itemElt) {\n  if (this.$activeItem !== itemElt) {\n    if (this.$activeItem) {\n      this.$activeItem.removeClass('as-active');\n    }\n\n    this.$activeItem = itemElt;\n\n    if (this.$activeItem) {\n      this.$activeItem.addClass('as-active');\n    }\n  }\n};\n\nFileListInput.prototype.downloadFileItemElt = function (fileElt) {\n  var fileData = fileElt.fileData;\n  var name = fileData.name || fileElt.fileName;\n  var file;\n\n  if (fileData instanceof File || fileData instanceof Blob) {\n    file = fileData;\n  } else if (_typeof(fileData) === 'object') {\n    if (fileData.url) file = fileData.url;\n  } else if (typeof fileData === \"string\") {\n    file = fileData;\n  }\n\n  if (file) {\n    (0, _FileSaver.saveAs)(file, name);\n  }\n};\n\nFileListInput.prototype.deleteFileItemElt = function (fileElt) {\n  var fileData = fileElt.fileData;\n\n  var idx = this._files.indexOf(fileData);\n\n  if (idx >= 0) {\n    this._files.splice(idx, 1);\n  }\n\n  fileElt.remove();\n};\n\nFileListInput.prototype._findFileItemElt = function (target) {\n  while (target && target !== this) {\n    if (target.hasClass && target.hasClass('as-file-list-item')) {\n      return target;\n    }\n\n    target = target.parentElement;\n  }\n\n  return null;\n};\n\nFileListInput.prototype.getChildren = function () {\n  return this.$fileItems.slice();\n};\n\nFileListInput.property = {};\nFileListInput.property.files = {\n  /***\r\n   * @this FileListInput\r\n   * @param files\r\n   */\n  set: function set(files) {\n    files = files || [];\n    files = files.slice();\n    var self = this;\n    this.$fileItems.forEach(function (fileElt) {\n      fileElt.remove();\n    });\n    files = files || [];\n    this._files = files;\n    this.$fileItems = files.map(function (file) {\n      var elt = self._makeFileItem(file);\n\n      self.addChildBefore(elt, self.$add);\n      return elt;\n    });\n\n    this._updateCountClass();\n  },\n\n  /***\r\n   * @this FileListInput\r\n   */\n  get: function get() {\n    return (this._files || []).slice();\n  }\n};\nFileListInput.property.readOnly = {\n  set: function set(value) {\n    value = !!value;\n\n    if (value) {\n      this.addClass('as-read-only');\n    } else {\n      this.removeClass('as-read-only');\n    }\n\n    this.$fileItems.forEach(function (fileElt) {\n      fileElt.removable = !value;\n    });\n  },\n  get: function get() {\n    return this.hasClass('as-read-only');\n  }\n};\nFileListInput.property.droppable = {\n  set: function set(value) {\n    value = !!value;\n\n    if (value) {\n      this.addClass('as-droppable');\n    } else {\n      this.removeClass('as-droppable');\n    }\n\n    this.$fileItems.forEach(function (fileElt) {\n      fileElt.removable = !value;\n    });\n  },\n  get: function get() {\n    return this.hasClass('as-droppable');\n  }\n};\nFileListInput.property.multiple = {\n  set: function set(value) {\n    this.$addedFile.multiple = !!value;\n  },\n  get: function get() {\n    return this.$addedFile.multiple;\n  }\n};\nFileListInput.property.accept = {\n  set: function set(value) {\n    if (!value) value = null;\n    this.$addedFile.attr('accept', value + '');\n  },\n  get: function get() {\n    return this.$addedFile.attr('accept') || null;\n  }\n};\nFileListInput.property.disabled = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-disabled');\n    } else {\n      this.removeClass('as-disabled');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-disabled');\n  }\n};\nFileListInput.property.showCheck = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-show-check');\n    } else {\n      this.removeClass('as-show-check');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-show-check');\n  }\n};\n\n_ACore[\"default\"].install(FileListInput);\n/***\r\n * @memberOf  FileListInput#\r\n * @type {{}}\r\n */\n\n\nFileListInput.eventHandler = {};\n\nFileListInput.eventHandler.clickAdd = function (event) {\n  var files = Array.prototype.slice.call(this.$addedFile.files);\n  this.$addedFile.files = null;\n  if (files.length === 0) return;\n\n  for (var i = 0; i < files.length; ++i) {\n    this.add(files[i]);\n  }\n\n  this.emit('change', {\n    files: files,\n    type: 'change',\n    target: this,\n    originalEvent: event,\n    action: 'add'\n  }, this);\n};\n/***\r\n * @this FileListInput\r\n * @param itemElt\r\n * @param event\r\n */\n\n\nFileListInput.eventHandler.mouseDownItem = function (itemElt, event) {\n  this.activeFileItemElt(itemElt);\n};\n\nFileListInput.eventHandler.input_fileDrop = function (event) {\n  if (this.readOnly || this.disabled) return;\n  var self = this;\n  var files = Array.prototype.slice.call(event.files);\n  if (files.length === 0) return;\n  if (!this.multiple) files = files.slice(0, 1);\n  var accept = this.accept;\n  files = files.filter(function (file) {\n    return (0, _utils.fileAccept)(accept, file.type) || (0, _utils.fileAccept)(accept, file.name);\n  });\n\n  if (files.length > 0) {\n    files.forEach(function (file) {\n      self.add(file);\n    });\n    this.emit('change', {\n      type: 'change',\n      files: files,\n      target: this,\n      action: 'drop'\n    }, this);\n  }\n};\n/***\r\n * @this FileListInput\r\n * @param itemElt\r\n * @param event\r\n */\n\n\nFileListInput.eventHandler.itemContext = function (event) {\n  if (this.disabled) return;\n  var self = this;\n\n  var itemElt = this._findFileItemElt(event.target);\n\n  var menuItems = [];\n\n  if (itemElt) {\n    menuItems.push({\n      text: _LanguageSystem[\"default\"].getText('txt_download') || \"Download\",\n      icon: 'span.mdi.mdi-download',\n      cmd: 'download'\n    });\n  }\n\n  if (!this.readOnly) {\n    if (itemElt) menuItems.push({\n      text: _LanguageSystem[\"default\"].getText('txt_delete') || \"Delete\",\n      icon: 'span.mdi.mdi-delete',\n      cmd: 'delete'\n    });\n    menuItems.push({\n      text: _LanguageSystem[\"default\"].getText('txt_delete_all') || \"Delete All\",\n      icon: 'span.mdi.mdi-delete-empty',\n      cmd: 'delete_all'\n    });\n  }\n\n  if (menuItems.length > 0) {\n    event.showContextMenu({\n      items: menuItems\n    }, function (event) {\n      var files;\n\n      switch (event.menuItem.cmd) {\n        case 'download':\n          self.downloadFileItemElt(itemElt);\n          break;\n\n        case 'delete':\n          self.deleteFileItemElt(itemElt);\n          self.emit('change', {\n            type: 'change',\n            item: itemElt.fileData,\n            target: this,\n            action: 'delete'\n          }, this);\n          break;\n\n        case 'delete_all':\n          files = self.files;\n          self.files = [];\n          self.emit('change', {\n            type: 'change',\n            items: files,\n            target: this,\n            action: 'delete_all'\n          }, this);\n          break;\n      }\n    });\n  }\n};\n\nvar _default = FileListInput;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/FileListInput.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/FileListItem.js":
/*!*****************************************************!*\
  !*** ./node_modules/absol-acomp/js/FileListItem.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\n__webpack_require__(/*! ../css/filelistinput.css */ \"./node_modules/absol-acomp/css/filelistinput.css\");\n\nvar _catalog = _interopRequireDefault(__webpack_require__(/*! ../assets/exticons/catalog.json */ \"./node_modules/absol-acomp/assets/exticons/catalog.json\"));\n\nvar _MessageInput = _interopRequireDefault(__webpack_require__(/*! ./messageinput/MessageInput */ \"./node_modules/absol-acomp/js/messageinput/MessageInput.js\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _QuickMenu = _interopRequireDefault(__webpack_require__(/*! ./QuickMenu */ \"./node_modules/absol-acomp/js/QuickMenu.js\"));\n\nvar _LanguageSystem = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/LanguageSystem */ \"./node_modules/absol/src/HTML5/LanguageSystem.js\"));\n\nvar _CheckBoxInput = _interopRequireDefault(__webpack_require__(/*! ./CheckBoxInput */ \"./node_modules/absol-acomp/js/CheckBoxInput.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _EventEmitter = __webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction FileListItem() {\n  var _this = this;\n\n  this.$parent = null;\n  this.$icon = (0, _ACore.$)('.as-file-list-item-icon', this);\n  this.$name = (0, _ACore.$)('.as-file-list-item-name', this);\n  this.$quickMenuBtn = (0, _ACore.$)('.as-file-list-item-quick-btn', this);\n  this.$check = (0, _ACore.$)('.as-file-list-item-check', this);\n  this.value = null;\n  this.fileType = null;\n  this.fileName = '';\n\n  _OOP[\"default\"].drillProperty(this, this.$check, 'checked');\n\n  this.on('click', this.eventHandler.click);\n\n  _QuickMenu[\"default\"].toggleWhenClick(this.$quickMenuBtn, {\n    getMenuProps: function getMenuProps() {\n      var list = _this.parentElement;\n      if (list.disabled) return;\n      var self = _this;\n      var itemElt = _this;\n      var menuItems = [];\n      menuItems.push({\n        text: _LanguageSystem[\"default\"].getText('txt_download') || \"Download\",\n        icon: 'span.mdi.mdi-download',\n        cmd: 'download'\n      });\n\n      if (!list.readOnly) {\n        if (itemElt) menuItems.push({\n          text: _LanguageSystem[\"default\"].getText('txt_delete') || \"Delete\",\n          icon: 'span.mdi.mdi-delete',\n          cmd: 'delete'\n        });\n        menuItems.push({\n          text: _LanguageSystem[\"default\"].getText('txt_delete_all') || \"Delete All\",\n          icon: 'span.mdi.mdi-delete-empty',\n          cmd: 'delete_all'\n        });\n      }\n\n      return {\n        items: menuItems\n      };\n    },\n    onSelect: function (menuItem) {\n      var itemElt = this;\n      var self = this.parentElement;\n      var files;\n\n      switch (menuItem.cmd) {\n        case 'download':\n          self.downloadFileItemElt(itemElt);\n          break;\n\n        case 'delete':\n          self.deleteFileItemElt(itemElt);\n          self.emit('change', {\n            type: 'change',\n            item: itemElt.fileData,\n            target: this,\n            action: 'delete'\n          }, this);\n          break;\n\n        case 'delete_all':\n          files = self.files;\n          self.files = [];\n          self.emit('change', {\n            type: 'change',\n            items: files,\n            target: this,\n            action: 'delete_all'\n          }, this);\n          break;\n      }\n    }.bind(this)\n  });\n\n  this.$check.on('change', function (event) {\n    if (this.$parent) {\n      this.$parent.emit('check', {\n        target: this.$parent,\n        elt: this,\n        type: 'check'\n      }, this.$parent);\n    }\n  }.bind(this));\n  /***\r\n   * @name checked\r\n   * @type {boolean}\r\n   * @memberOf FileListItem#\r\n   */\n}\n\nFileListItem.tag = 'FileListItem'.toLowerCase();\n\nFileListItem.render = function () {\n  return (0, _ACore._)({\n    \"class\": 'as-file-list-item',\n    child: [{\n      tag: _CheckBoxInput[\"default\"],\n      \"class\": 'as-file-list-item-check'\n    }, {\n      tag: 'img',\n      \"class\": 'as-file-list-item-icon',\n      props: {\n        src: _MessageInput[\"default\"].iconAssetRoot + '/' + 'blank' + '.svg'\n      }\n    }, {\n      \"class\": 'as-file-list-item-name',\n      child: {\n        text: '..'\n      }\n    }, {\n      tag: 'button',\n      \"class\": 'as-file-list-item-quick-btn',\n      child: 'span.mdi.mdi-dots-vertical'\n    }]\n  });\n};\n\nFileListItem.property = {};\nFileListItem.property.fileType = {\n  set: function set(value) {\n    this._fileType = value;\n\n    if (value) {\n      if (_catalog[\"default\"].indexOf(value) >= 0) this.$icon.src = _MessageInput[\"default\"].iconAssetRoot + '/' + value + '.svg';else this.$icon.src = _MessageInput[\"default\"].iconAssetRoot + '/' + 'blank' + '.svg';\n    } else {\n      this.$icon.src = _MessageInput[\"default\"].iconAssetRoot + '/' + 'blank' + '.svg';\n    }\n  },\n  get: function get() {\n    return this._fileType;\n  }\n};\nFileListItem.property.fileName = {\n  set: function set(value) {\n    this.$name.firstChild.data = value + '';\n  },\n  get: function get() {\n    return this.$name.firstChild.data;\n  }\n};\nFileListItem.property.value = {\n  set: function set(value) {\n    value = value || null;\n    var info = (0, _utils.fileInfoOf)(value);\n    var type = info.type || null;\n    var size = info.size || null;\n    var name = info.name || null;\n    this._value = value;\n    this.fileSize = size;\n    this.fileName = name;\n    this.fileType = type;\n\n    if (value) {\n      this.addClass('as-has-value');\n    } else {\n      this.removeClass('as-has-value');\n    }\n  },\n  get: function get() {\n    return this._value;\n  }\n};\nFileListItem.eventHandler = {};\n/***\r\n * @this FileListItem\r\n * @param event\r\n */\n\nFileListItem.eventHandler.click = function (event) {\n  if (!(0, _EventEmitter.isMouseLeft)(event)) return;\n  if ((0, _EventEmitter.hitElement)(this.$check, event) || (0, _EventEmitter.hitElement)(this.$quickMenuBtn, event)) return;\n\n  if (this.$parent && this.$parent.showCheck) {\n    this.$check.checked = !this.$check.checked;\n    this.$check.notifyChange();\n  }\n};\n\n_ACore[\"default\"].install(FileListItem);\n\nvar _default = FileListItem;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/FileListItem.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/FlexiconButton.js":
/*!*******************************************************!*\
  !*** ./node_modules/absol-acomp/js/FlexiconButton.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/flexiconbutton.css */ \"./node_modules/absol-acomp/css/flexiconbutton.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/**\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction FlexiconButton() {\n  this._icon = null;\n  this.$content = $('.as-flexicon-button-content', this);\n  this.$iconCtn = $('.as-flexicon-button-icon-container', this);\n  this.$textCtn = $('.as-flexicon-button-text-container', this);\n}\n\nFlexiconButton.tag = 'FlexiconButton'.toLowerCase();\n\nFlexiconButton.render = function () {\n  return _({\n    tag: 'button',\n    \"class\": 'as-flexicon-button',\n    child: {\n      \"class\": 'as-icon-button-table-box',\n      child: {\n        \"class\": 'as-flexicon-button-content',\n        child: ['.as-flexicon-button-icon-container', '.as-flexicon-button-text-container']\n      }\n    }\n  });\n};\n\nFlexiconButton.property = {};\nFlexiconButton.property.icon = {\n  set: function set(value) {\n    value = value || null;\n    this._icon = value;\n    this.$iconCtn.clearChild();\n\n    if (value !== null) {\n      this.$iconCtn.addChild(_(value));\n    }\n  },\n  get: function get() {\n    return this._icon;\n  }\n};\nFlexiconButton.property.text = {\n  /***\r\n   *\r\n   * @param {string| {mlKey:string}|*} value\r\n   */\n  set: function set(value) {\n    value = value || null;\n    this._text = value;\n    this.$textCtn.clearChild();\n    this.$textCtn.attr('data-ml-key', undefined);\n\n    if (value === null || value === undefined) {} else if (_typeof(value) === \"object\") {\n      if (value.mlKey) {\n        this.$textCtn.attr('data-ml-key', value.mlKey);\n      }\n    } else {\n      this.$textCtn.addChild(_({\n        text: value + ''\n      }));\n    }\n  },\n  get: function get() {\n    return this._text;\n  }\n};\n\n_ACore[\"default\"].install(FlexiconButton);\n\nvar _default = FlexiconButton;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/FlexiconButton.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/FlexiconInput.js":
/*!******************************************************!*\
  !*** ./node_modules/absol-acomp/js/FlexiconInput.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/flexiconinput.css */ \"./node_modules/absol-acomp/css/flexiconinput.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction FlexiconInput() {\n  this.$input = $('.as-flexicon-input-text-input', this);\n  this.$iconCtn = $('.as-flexicon-input-icon-ctn', this);\n  this.$unitCtn = $('.as-flexicon-input-unit-ctn', this);\n\n  _OOP[\"default\"].drillProperty(this, this.$input, ['value', 'readonly']);\n\n  this.on('click', function (event) {\n    if (event.target != this.$input) this.$input.focus();\n  }.bind(this));\n}\n\nFlexiconInput.prototype.on = function () {\n  return this.$input.on.apply(this.$input, arguments);\n};\n\nFlexiconInput.prototype.once = function () {\n  return this.$input.once.apply(this.$input, arguments);\n};\n\nFlexiconInput.prototype.off = function () {\n  return this.$input.off.apply(this.$input, arguments);\n};\n\nFlexiconInput.tag = 'FlexiconInput'.toLowerCase();\n\nFlexiconInput.render = function () {\n  return _({\n    \"class\": 'as-flexicon-input',\n    child: [{\n      \"class\": 'as-flexicon-input-icon-ctn'\n    }, {\n      tag: 'input',\n      \"class\": 'as-flexicon-input-text-input',\n      attr: {\n        type: 'text'\n      }\n    }, {\n      \"class\": 'as-flexicon-input-unit-ctn'\n    }]\n  });\n};\n\nFlexiconInput.property = {};\nFlexiconInput.property.icon = {\n  set: function set(value) {\n    value = value || null;\n    this._icon = value;\n    this.$iconCtn.clearChild();\n\n    if (value == null) {\n      this.removeClass('as-flexicon-input-has-icon');\n    } else {\n      this.addClass('as-flexicon-input-has-icon');\n      this.$iconCtn.addChild(_(value));\n    }\n  },\n  get: function get() {\n    return this._icon;\n  }\n};\nFlexiconInput.property.unit = {\n  set: function set(value) {\n    this._unit = value;\n\n    if (this._unit) {\n      this.addClass('as-flexicon-input-has-unit');\n      this.$unitCtn.clearChild().addChild(_({\n        text: value + ''\n      }));\n    } else {\n      this.removeClass('as-flexicon-input-has-unit');\n      this.$unitCtn.clearChild();\n    }\n  },\n  get: function get() {\n    return this._unit;\n  }\n};\nFlexiconInput.property.disabled = {\n  set: function set(value) {\n    value = !!value;\n    this.$input.disabled = value;\n\n    if (value) {\n      this.addClass('as-disabled');\n    } else {\n      this.removeClass('as-disabled');\n    }\n  },\n  get: function get() {\n    return this.$input.disabled;\n  }\n};\nFlexiconInput.property.readOnly = {\n  set: function set(value) {\n    value = !!value;\n    this.$input.readOnly = value;\n\n    if (value) {\n      this.addClass('as-read-only');\n    } else {\n      this.removeClass('as-read-only');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-read-only');\n  }\n};\n\n_ACore[\"default\"].install(FlexiconInput);\n\nvar _default = FlexiconInput;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/FlexiconInput.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/Follower.js":
/*!*************************************************!*\
  !*** ./node_modules/absol-acomp/js/Follower.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/follower.css */ \"./node_modules/absol-acomp/css/follower.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _Rectangle = _interopRequireDefault(__webpack_require__(/*! absol/src/Math/Rectangle */ \"./node_modules/absol/src/Math/Rectangle.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction Follower() {\n  this.$attachhook = _('attachhook', this).addTo(this).on('attached', function () {\n    this.requestUpdateSize();\n\n    _Dom[\"default\"].addToResizeSystem(this);\n  });\n  this.$attachhook.requestUpdateSize = this.updatePosition.bind(this);\n  this.$followTarget = undefined;\n  this.$scrollTrackElts = [];\n  this._scrollTrackEventHandler = undefined;\n  this._anchor = Follower.ANCHOR_PRIORITY;\n  this.defineEvent(['updateposition', 'preupdateposition']);\n  /***\r\n   * @name followTarget\r\n   * @type {AElement}\r\n   * @memberOf Follower#\r\n   */\n}\n\nFollower.tag = 'Follower'.toLowerCase();\n\nFollower.render = function () {\n  return _('.absol-follower');\n};\n\nFollower.prototype.clearChild = function () {\n  var children = Array.prototype.slice.call(this.children);\n  var attachhookElt = this.$attachhook;\n  children.forEach(function (elt) {\n    if (elt != attachhookElt) elt.remove();\n  });\n}; //Todo: remove child, find child....\n\n/**\r\n * X = $target.x + F[anchor_index][0] * $target.width + F[anchor_index][1] * $content.width\r\n * Y = $target.y + F[anchor_index][2] * $target.height + F[anchor_index][3] * $content.height\r\n */\n\n\nFollower.ANCHOR_FACTORS = [[1, 0, 0, 0], //0\n[0, 0, 1, 0], //1\n[1, -1, 1, 0], //2\n[0, -1, 0, 0], //3\n[0, -1, 1, -1], //4\n[1, -1, 0, -1], //5\n[0, 0, 0, -1], //6\n[1, 0, 1, -1], //7\n[1, 0, 0.5, -0.5], //8\n[0.5, -0.5, 1, 0], //9\n[0, -1, 0.5, -0.5], //10\n[0.5, -0.5, 0, -1], //11\n[1, 0, 1, 0], //12\n[0, -1, 1, 0], //13\n[0, -1, 0, -1], //14\n[1, 0, 0, -1] //15\n];\nFollower.ANCHOR_PRIORITY = [1, 6, 2, 5, 0, 7, 3, 4, 9, 11, 8, 10, 12, 15, 13, 14];\n\nFollower.prototype.updatePosition = function () {\n  if (!this.$followTarget) return;\n  this.emit('preupdateposition', {\n    target: this\n  }, this);\n  var targetBound = this.$followTarget.getBoundingClientRect();\n\n  var screenSize = _Dom[\"default\"].getScreenSize();\n\n  var outRect = new _Rectangle[\"default\"](0, 0, screenSize.width, screenSize.height);\n  var bound = this.getBoundingClientRect();\n  var x = 0;\n  var y = 0;\n  var score;\n  var anchors = this._lastAnchor === undefined ? this.anchor : [this._lastAnchor].concat(this.anchor);\n  var factor;\n  var bestX,\n      bestY,\n      bestScore = -100000;\n  var newContentRect;\n  var bestAnchor;\n\n  for (var i = 0; i < anchors.length; ++i) {\n    factor = Follower.ANCHOR_FACTORS[anchors[i]];\n    x = targetBound.left + factor[0] * targetBound.width + factor[1] * bound.width;\n    y = targetBound.top + factor[2] * targetBound.height + factor[3] * bound.height;\n    newContentRect = new _Rectangle[\"default\"](x, y, bound.width, bound.height);\n    score = newContentRect.collapsedSquare(outRect);\n\n    if (score - 10 > bestScore) {\n      bestAnchor = anchors[i];\n      bestScore = score;\n      bestX = x;\n      bestY = y;\n    }\n  }\n\n  if (this._lastAnchor !== bestAnchor) {\n    this.removeClass('as-anchor-' + this._lastAnchor);\n    this._lastAnchor = bestAnchor;\n    this.addClass('as-anchor-' + this._lastAnchor);\n  }\n\n  this.addStyle({\n    left: bestX + 'px',\n    top: bestY + 'px'\n  });\n  this.emit('updateposition', {\n    target: this\n  }, this);\n};\n\nFollower.prototype.refollow = function () {\n  if (!this.$followTarget) return;\n  this.updatePosition();\n  this.addClass('following');\n  if (this._scrollTrackEventHandler) this.unfollow();\n  this._scrollTrackEventHandler = this.updatePosition.bind(this);\n  this.$scrollTrackElts = [];\n  var trackElt = this.$followTarget;\n\n  while (trackElt) {\n    if (trackElt.addEventListener) trackElt.addEventListener('scroll', this._scrollTrackEventHandler, false);else trackElt.attachEvent('onscroll', this._scrollTrackEventHandler, false);\n    this.$scrollTrackElts.push(trackElt);\n    trackElt = trackElt.parentElement;\n  }\n\n  if (document.addEventListener) {\n    document.addEventListener('scroll', this._scrollTrackEventHandler, false);\n  } else {\n    document.attachEvent('onscroll', this._scrollTrackEventHandler, false);\n  }\n\n  this.$scrollTrackElts.push(document);\n};\n\nFollower.prototype.unfollow = function () {\n  if (!this._scrollTrackEventHandler) return; // nothing to do\n\n  this.removeClass('following');\n  var trackElt;\n\n  for (var i = 0; i < this.$scrollTrackElts.length; ++i) {\n    trackElt = this.$scrollTrackElts[i];\n    if (trackElt.removeEventListener) trackElt.removeEventListener('scroll', this._scrollTrackEventHandler, false);else trackElt.dettachEvent('onscroll', this._scrollTrackEventHandler, false);\n  }\n\n  this.$scrollTrackElts = [];\n  this._scrollTrackEventHandler = undefined;\n};\n\nFollower.property = {};\nFollower.property.followTarget = {\n  set: function set(elt) {\n    if (elt === null || elt === undefined || !elt) {\n      this.unfollow();\n      this.$followTarget = undefined;\n      return;\n    } else if (typeof elt == 'string') {\n      elt = $(elt) || document.getElementById(elt);\n    }\n\n    if (_Dom[\"default\"].isDomNode(elt)) {\n      this.$followTarget = elt;\n      this._lastAncho = undefined;\n      this.refollow();\n    } else throw new Error(\"Invalid element\");\n  },\n  get: function get() {\n    return this.$followTarget;\n  }\n};\nFollower.property.anchor = {\n  set: function set(value) {\n    value = value || Follower.ANCHOR_PRIORITY;\n    if (value == 'auto') value = Follower.ANCHOR_PRIORITY;\n    if (_typeof(value) == null) value = [value];\n    if (!(value instanceof Array)) throw new Error('Invalid anchor ' + value);\n    value = value.map(function (x) {\n      x = Math.floor(x);\n\n      if (x >= 0 && x < Follower.ANCHOR_FACTORS.length) {\n        return x;\n      } else throw new Error(\"Invalid anchor: \" + x);\n    });\n    this._anchor = value;\n    this._lastAnchor = undefined;\n    this.updatePosition();\n  },\n  get: function get() {\n    return this._anchor;\n  }\n};\n\n_ACore[\"default\"].install(Follower);\n\nvar _default = Follower;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/Follower.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/FollowerToggler.js":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/js/FollowerToggler.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _EventEmitter = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction FollowerToggler() {\n  this.defineEvent(['close', 'open', 'preopen']);\n  this.on('click', this.eventHandler.click);\n  this.addClass('as-follower-trigger');\n  this.$follower = null;\n  this._opened = false;\n}\n\nFollowerToggler.tag = 'FollowerToggler'.toLowerCase();\n\nFollowerToggler.render = function () {\n  return _('div');\n};\n\nFollowerToggler.prototype.toggle = function () {\n  if (this._opened) this.close();else this.open();\n};\n\nFollowerToggler.prototype.open = function () {\n  if (this._opened) return;\n  this._opened = true;\n  this.addClass('as-follower-trigger-open');\n  if (!this.$follower) return;\n  this.emit('preopen', {\n    name: 'preopen',\n    target: this\n  }, this);\n  var thisTg = this;\n  setTimeout(function () {\n    thisTg.$follower.refollow();\n    thisTg.$follower.removeClass('absol-follower-hidden');\n    document.body.addEventListener('click', thisTg.eventHandler.clickBody);\n    thisTg.emit('open', {\n      name: 'open',\n      target: this\n    }, this);\n  }, 1);\n};\n\nFollowerToggler.prototype.close = function () {\n  if (!this._opened) return;\n  this._opened = false;\n  this.removeClass('as-follower-trigger-open');\n  if (!this.$follower) return;\n  this.$follower.unfollow();\n  this.$follower.addClass('absol-follower-hidden');\n  document.body.removeEventListener('click', this.eventHandler.clickBody);\n  this.emit('close', {\n    name: 'close',\n    target: this\n  }, this);\n};\n\nFollowerToggler.prototype.bindFollower = function (elt) {\n  if (this.$follower) {\n    this.$follower.followTarget = null;\n  }\n\n  if (elt && elt.refollow) {\n    if (this._opened) elt.removeClass('absol-follower-hidden');else elt.addClass('absol-follower-hidden');\n    elt.followTarget = this;\n    this.$follower = elt;\n  } else {\n    throw new Error(\"Must be a follower!\");\n  }\n};\n\nFollowerToggler.eventHandler = {};\n\nFollowerToggler.eventHandler.clickBody = function (event) {\n  if (_EventEmitter[\"default\"].hitElement(this, event) || _EventEmitter[\"default\"].hitElement(this.$follower, event)) return;\n  this.close();\n};\n\nFollowerToggler.eventHandler.click = function () {\n  this.toggle();\n};\n\n_ACore[\"default\"].install(FollowerToggler);\n\nvar _default = FollowerToggler;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/FollowerToggler.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/Frame.js":
/*!**********************************************!*\
  !*** ./node_modules/absol-acomp/js/Frame.js ***!
  \**********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/frame.css */ \"./node_modules/absol-acomp/css/frame.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _stringGenerate = __webpack_require__(/*! absol/src/String/stringGenerate */ \"./node_modules/absol/src/String/stringGenerate.js\");\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction Frame() {\n  this.$parent = null; // FrameView or TabView\n  //adapter\n\n  (0, _utils.forwardEvent)(this, 'inactive', 'deactive');\n}\n\nFrame.tag = 'frame';\n\nFrame.render = function () {\n  return _({\n    \"class\": 'absol-frame',\n    attr: {\n      id: (0, _stringGenerate.randomIdent)(12)\n    },\n    extendEvent: ['attached', 'detached', 'active', 'inactive'] // inactive and active event will be send by parent\n\n  });\n};\n\nFrame.prototype.notifyAttached = function (parentElt) {\n  this.$parent = parentElt;\n  this.emit('attached', {\n    type: 'attached',\n    target: this,\n    parentElt: parentElt\n  }, this);\n};\n\nFrame.prototype.notifyDetached = function () {\n  this.emit('detached', {\n    type: 'detached',\n    target: this,\n    parentElt: this.$parent\n  }, this);\n  this.$parent = undefined;\n};\n\nFrame.prototype.selfRemove = function () {\n  if (this.$parent) this.$parent.removeChild(this);else this[\"super\"](); // normal remove\n};\n\nFrame.prototype.getParent = function () {\n  return this.$parent;\n};\n\nFrame.prototype.requestActive = function () {\n  if (this.$parent) {\n    this.$parent.activeFrame(this);\n  }\n};\n\n_ACore[\"default\"].install(Frame);\n\nvar _default = Frame;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/Frame.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/FrameView.js":
/*!**************************************************!*\
  !*** ./node_modules/absol-acomp/js/FrameView.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/frameview.css */ \"./node_modules/absol-acomp/css/frameview.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction FrameView() {\n  this.$containers = []; //adapt\n\n  (0, _utils.forwardEvent)(this, 'inactiveframe', 'deactiveframe');\n  (0, _utils.forwardMethod)(this, 'notifyDeactiveFrame', 'notifyInactiveFrame');\n}\n\nFrameView.tag = 'frameview';\n\nFrameView.render = function () {\n  return _({\n    \"class\": 'absol-frame-view',\n    extendEvent: ['activeframe', 'inactiveframe']\n  });\n};\n\nFrameView.prototype.addChild = function (elt) {\n  if (elt.hasClass && elt.hasClass('absol-frame')) {\n    elt.selfRemove();\n\n    var containerElt = _({\n      \"class\": 'absol-frame-view-frame-container',\n      child: elt,\n      props: {\n        __elt__: elt\n      }\n    });\n\n    this.$containers.push(containerElt);\n    this.appendChild(containerElt);\n    elt.notifyAttached(this);\n  } else {\n    throw new Error('Children must be a frame');\n  }\n};\n\nFrameView.prototype.addLast = function (elt) {\n  this.addChild(elt);\n  this.activeFrame(elt);\n};\n\nFrameView.prototype.removeLast = function () {\n  if (this.$containers.length > 0) {\n    this.removeChild(this.$containers[this.$containers.length - 1].__elt__);\n  }\n\n  if (this.$containers.length > 0) {\n    this.activeFrame(this.$containers[this.$containers.length - 1].__elt__);\n  }\n};\n\nFrameView.prototype.getLength = function () {\n  return this.$containers.length;\n};\n\nFrameView.prototype.getAllChild = function () {\n  return this.$containers.map(function (ctn) {\n    return ctn.__elt__;\n  });\n};\n\nFrameView.prototype.getLast = function () {\n  if (this.$containers.length > 0) {\n    return this.$containers[this.$containers.length - 1].__elt__;\n  }\n\n  return null;\n};\n\nFrameView.prototype.addChildBefore = function (elt, at) {\n  if (elt.hasClass && elt.hasClass('absol-frame')) {\n    elt.selfRemove();\n    var index = this.childIndexOf(at);\n\n    if (index < 0) {\n      throw new Error('Second param is not a child');\n    }\n\n    var index = this.childIndexOf(at);\n    var atCtnElt = this.$containers[index];\n\n    var containerElt = _({\n      \"class\": 'absol-frame-view-frame-container',\n      child: elt,\n      props: {\n        __elt__: elt\n      }\n    });\n\n    this.$containers.splice(index, 0, containerElt);\n    this[\"super\"](containerElt, atCtnElt);\n    elt.notifyAttached(this);\n  } else {\n    throw new Error('Children must be a frame');\n  }\n};\n\nFrameView.prototype.addChildAfter = function (elt, at) {\n  if (elt.hasClass && elt.hasClass('absol-frame')) {\n    elt.selfRemove();\n    var index = this.childIndexOf(at);\n\n    if (index < 0) {\n      throw new Error('Second param is not a child');\n    }\n\n    var index = this.childIndexOf(at);\n    var atCtnElt = this.$containers[index];\n\n    var containerElt = _({\n      \"class\": 'absol-frame-view-frame-container',\n      child: elt,\n      props: {\n        __elt__: elt\n      }\n    });\n\n    this.$containers.splice(index + 1, 0, containerElt);\n    this[\"super\"](containerElt, atCtnElt);\n    elt.notifyAttached(this);\n  } else {\n    throw new Error('Children must be a frame');\n  }\n};\n\nFrameView.prototype.removeChild = function (elt) {\n  var ctnEltIndex = this.childIndexOf(elt);\n\n  if (ctnEltIndex >= 0) {\n    var ctnElt = this.$containers[ctnEltIndex];\n    this.$containers.splice(ctnEltIndex, 1);\n    this[\"super\"](ctnElt);\n  } else {\n    throw new Error('Removed element is not a child!');\n  }\n};\n\nFrameView.prototype.childIndexOf = function (elt) {\n  for (var i = 0; i < this.$containers.length; ++i) {\n    if (this.$containers[i].__elt__ == elt) return i;\n  }\n\n  return -1;\n};\n\nFrameView.prototype.findChildBefore = function (elt) {\n  var eltIndex = this.childIndexOf(elt);\n  if (eltIndex < 0) return -1;\n  return this.$containers[eltIndex - 1];\n};\n\nFrameView.prototype.findChildAfter = function (elt) {\n  var eltIndex = this.childIndexOf(elt);\n  if (eltIndex < 0) return -1;\n  return this.$containers[eltIndex + 1];\n};\n\nFrameView.prototype.clearChild = function () {\n  while (this.$containers.length > 0) {\n    this.removeChild(this.$containers[0].__elt__);\n  }\n\n  return this;\n};\n\nFrameView.prototype.findChildById = function (id) {\n  var elt;\n\n  for (var i = 0; i < this.$containers.length; ++i) {\n    elt = this.$containers[i].__elt__;\n    if (elt.getAttribute('id') == id) return elt;\n  }\n\n  return undefined;\n};\n\nFrameView.prototype.getAllChild = function () {\n  return this.$containers.map(function (ctnElt) {\n    return ctnElt.__elt__;\n  });\n};\n\nFrameView.prototype.activeFrame = function (frameElt) {\n  var ctnElt, elt;\n\n  for (var i = 0; i < this.$containers.length; ++i) {\n    ctnElt = this.$containers[i];\n    elt = ctnElt.__elt__;\n\n    if (frameElt === elt) {\n      if (!ctnElt.hasClass('absol-active')) {\n        ctnElt.addClass('absol-active');\n        this.notifyActiveFrame(elt);\n      } // else do nothing\n\n    } else {\n      if (ctnElt.hasClass('absol-active')) {\n        ctnElt.removeClass('absol-active');\n        this.notifyInactiveFrame(elt);\n      } // else do nonthing\n\n    }\n  }\n\n  return this;\n};\n\nFrameView.prototype.notifyActiveFrame = function (frameElt, originEvent) {\n  frameElt.emit('active', {\n    target: frameElt,\n    type: 'active',\n    originEvent: originEvent\n  });\n  this.emit('activeframe', {\n    type: 'activeframe',\n    target: this,\n    frameElt: frameElt,\n    originEvent: originEvent\n  }, this);\n};\n\nFrameView.prototype.notifyInactiveFrame = function (frameElt, originEvent) {\n  this.emit('inactiveframe', {\n    type: 'inactiveframe',\n    target: this,\n    frameElt: frameElt,\n    originEvent: originEvent\n  }, this);\n};\n\nFrameView.prototype.activeFrameById = function (id) {\n  var frameElt = this.findChildById(id);\n  if (frameElt) this.activeFrame(frameElt);\n  return this;\n};\n\n_ACore[\"default\"].install(FrameView);\n\nvar _default = FrameView;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/FrameView.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/HRuler.js":
/*!***********************************************!*\
  !*** ./node_modules/absol-acomp/js/HRuler.js ***!
  \***********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/hruler.css */ \"./node_modules/absol-acomp/css/hruler.css\");\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction HRuler() {\n  var self = this;\n  this.$attachHook = _('attachhook').on('error', function () {\n    this.updateSize = self.update.bind(self);\n\n    _Dom[\"default\"].addToResizeSystem(this);\n\n    this.updateSize();\n  }).addTo(self);\n  this.$lines = [];\n  this.$numbers = [];\n  this._viewingNumberCount = 0;\n  this._viewingLineCount = 0;\n  this._spacing = 10;\n  this._major = 10;\n  this.$measureTarget = null;\n  this._valueFloat = 'left';\n}\n\nHRuler.tag = 'hruler';\n\nHRuler.render = function () {\n  return _({\n    \"class\": 'as-hruler'\n  });\n};\n\nHRuler.prototype.measureElement = function (elt) {\n  if (typeof elt == \"string\") elt = $(elt);\n  this.$measureTarget = elt;\n  this.update();\n};\n\nHRuler.prototype.update = function () {\n  var fontSize = this.getFontSize();\n  var measureBound;\n  var bound = this.getBoundingClientRect();\n  var contentBound = {\n    left: bound.left + 1,\n    right: bound.right - 1,\n    top: bound.top + 1,\n    bottom: bound.bottom - 1,\n    width: bound.width - 2,\n    height: bound.height - 2\n  };\n\n  if (this.$measureTarget) {\n    measureBound = this.$measureTarget.getBoundingClientRect();\n  } else {\n    measureBound = contentBound;\n  }\n\n  var startOfset = (measureBound[this._valueFloat] - contentBound[this._valueFloat]) * (this.inverse ? -1 : 1) % this._spacing;\n  if (startOfset < 0) startOfset += this._spacing;\n  var lineIndexOfset = Math.round(((contentBound[this._valueFloat] - measureBound[this._valueFloat]) * (this.inverse ? -1 : 1) + startOfset) / this._spacing);\n  var lineCount = Math.floor((contentBound.width - startOfset) / this._spacing) + 1;\n\n  while (this.$lines.length < lineCount) {\n    this.$lines.push(_('.as-hruler-line'));\n  }\n\n  var i;\n  var lineElt;\n\n  for (i = 0; i < lineCount; ++i) {\n    lineElt = this.$lines[i];\n\n    if ((i + lineIndexOfset) % this._major == 0) {\n      lineElt.addClass('major');\n    } else {\n      lineElt.removeClass('major');\n    }\n\n    lineElt.addStyle(this._valueFloat, startOfset + this._spacing * i - 0.5 + 'px');\n  }\n\n  while (this._viewingLineCount < lineCount) {\n    this.$lines[this._viewingLineCount++].addTo(this);\n  }\n\n  while (this._viewingLineCount > lineCount) {\n    this.$lines[--this._viewingLineCount].remove();\n  }\n\n  var numberCount = Math.floor((lineCount + lineIndexOfset - 1) / this._major) - Math.ceil(lineIndexOfset / this._major) + 1;\n\n  while (this.$numbers.length < numberCount) {\n    this.$numbers.push(_('.as-hruler-major-number'));\n  }\n\n  var numberElt;\n  var number;\n  var majorStartOfset = startOfset;\n\n  if (lineIndexOfset > 0) {\n    majorStartOfset += (this._major - lineIndexOfset % this._spacing) * this._spacing;\n  } else {\n    majorStartOfset += (this._major - (this._spacing + lineIndexOfset % this._spacing)) * this._spacing;\n  }\n\n  for (i = 0; i < numberCount; ++i) {\n    number = (Math.ceil(lineIndexOfset / this._major) + i) * this._spacing * this._major;\n    numberElt = this.$numbers[i];\n\n    if (numberElt.__cacheNumber__ != number) {\n      numberElt.__cacheNumber__ = number;\n      numberElt.innerHTML = number + '';\n    }\n\n    numberElt.addStyle(this._valueFloat, majorStartOfset + this._major * i * this._spacing - 0.7 * 2.5 * fontSize + 'px');\n  }\n\n  while (this._viewingNumberCount < numberCount) {\n    this.$numbers[this._viewingNumberCount++].addTo(this);\n  }\n\n  while (this._viewingNumberCount > numberCount) {\n    this.$numbers[--this._viewingNumberCount].remove();\n  }\n};\n\nHRuler.property = {};\nHRuler.property.major = {\n  set: function set(value) {\n    if (value > 0) {\n      this._major = value;\n      this.update();\n    }\n  },\n  get: function get() {\n    return this._major;\n  }\n};\nHRuler.property.spacing = {\n  set: function set(value) {\n    if (value > 0) {\n      this._spacing = value;\n      this.update();\n    }\n  },\n  get: function get() {\n    return this._spacing;\n  }\n};\nHRuler.property.inverse = {\n  set: function set(value) {\n    this._valueFloat = value ? 'right' : 'left';\n    this.update();\n  },\n  get: function get() {\n    return this._valueFloat == 'right';\n  }\n};\n\n_ACore[\"default\"].install(HRuler);\n\nvar _default = HRuler;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/HRuler.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/Hanger.js":
/*!***********************************************!*\
  !*** ./node_modules/absol-acomp/js/Hanger.js ***!
  \***********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/hanger.css */ \"./node_modules/absol-acomp/css/hanger.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Vec = _interopRequireDefault(__webpack_require__(/*! absol/src/Math/Vec2 */ \"./node_modules/absol/src/Math/Vec2.js\"));\n\nvar _BrowserDetector = _interopRequireDefault(__webpack_require__(/*! absol/src/Detector/BrowserDetector */ \"./node_modules/absol/src/Detector/BrowserDetector.js\"));\n\nvar _EventEmitter = __webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\");\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/****\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction Hanger() {\n  this.addClass('as-hanger');\n  this.defineEvent(['predrag', 'dragstart', 'drag', 'dragend', 'draginit', 'dragdeinit']); //predrag is draginit\n\n  this._hangOn = 0;\n  this._hangerPointerData = null;\n  this.on2({\n    mousedown: this.eventHandler.hangerPointerDown,\n    touchstart: this.eventHandler.hangerPointerDown\n  });\n  this._touchEvents = {\n    touchend: this.eventHandler.hangerPointerFinish,\n    touchcancel: this.eventHandler.hangerPointerFinish,\n    touchmove: this.eventHandler.hangerPointerMove\n  };\n  this._mouseEvents = {\n    mouseup: this.eventHandler.hangerPointerFinish,\n    mouseleave: this.eventHandler.hangerPointerFinish,\n    mousemove: this.eventHandler.hangerPointerMove\n  };\n}\n\nHanger.tag = 'hanger';\n\nHanger.render = function () {\n  return _('div');\n};\n\nHanger.prototype.on2 = function () {\n  if (arguments.length == 1) {\n    for (var name in arguments[0]) {\n      Hanger.prototype.on2.call(this, name, arguments[0][name]);\n    }\n  } else if (arguments.length == 2) {\n    this.addEventListener(arguments[0], arguments[1], _BrowserDetector[\"default\"].supportPassiveEvent ? {\n      passive: false\n    } : true);\n  }\n};\n\nHanger.prototype.off2 = function () {\n  if (arguments.length == 1) {\n    for (var name in arguments[0]) {\n      Hanger.prototype.off2.call(this, name, arguments[0][name]);\n    }\n  } else if (arguments.length == 2) {\n    this.removeEventListener(arguments[0], arguments[1], _BrowserDetector[\"default\"].supportPassiveEvent ? {\n      passive: false\n    } : true);\n  }\n};\n\nHanger.property = {};\n/**\r\n * @type {Hanger}\r\n */\n\nHanger.property.hangOn = {\n  set: function set(value) {\n    if (!(value > 0)) value = 0;\n    this._hangOn = value;\n  },\n  get: function get() {\n    return this._hangOn;\n  }\n};\n/**\r\n * @type {Hanger}\r\n */\n\nHanger.eventHandler = {};\n\nHanger.eventHandler.hangerPointerDown = function (event) {\n  if (this._hangerPointerData) return;\n  var bound = this.getBoundingClientRect();\n  var startingPoint;\n  var isTouch = event.type === 'touchstart';\n  var pointerIdent = -1;\n  var target;\n\n  if (isTouch) {\n    var touch = event.changedTouches[0];\n    target = touch.target;\n    pointerIdent = touch.identifier;\n    startingPoint = new _Vec[\"default\"](touch.clientX, touch.clientY);\n  } else {\n    startingPoint = new _Vec[\"default\"](event.clientX, event.clientY);\n    target = event.target;\n  }\n\n  var offsetVec = startingPoint.sub(new _Vec[\"default\"](bound.left, bound.top));\n  this._hangerPointerData = {\n    state: 0,\n    isTouch: isTouch,\n    bound: bound,\n    startingPoint: startingPoint,\n    offsetVec: offsetVec,\n    pointerIdent: pointerIdent,\n    target: target\n  };\n  var preDragEvent = {\n    type: 'draginit',\n    originEvent: event,\n    isTouch: isTouch,\n    bound: bound,\n    startingPoint: startingPoint,\n    currentPoint: startingPoint,\n    offsetVec: offsetVec,\n    pointerIdent: pointerIdent,\n    canceled: false,\n    cancel: function cancel() {\n      this.canceled = true;\n    },\n    clientX: startingPoint.x,\n    clientY: startingPoint.y,\n    target: target,\n    preventDefault: function preventDefault() {\n      event.preventDefault();\n    }\n  };\n  this.emit('draginit', preDragEvent, this);\n  this.emit('predrag', Object.assign(preDragEvent, {\n    type: 'predrag'\n  }), this);\n\n  if (preDragEvent.canceled) {\n    this._hangerPointerData = null;\n    return;\n  }\n\n  if (isTouch) this.on2.call(document, this._touchEvents);else this.on2.call(document, this._mouseEvents);\n};\n\nHanger.eventHandler.hangerPointerMove = function (event) {\n  var _this = this;\n\n  var pointerData = this._hangerPointerData;\n  var isTouch = pointerData.isTouch;\n  var pointerIdent = -2;\n  var currentPoint;\n\n  if (isTouch) {\n    var touch = (0, _EventEmitter.findChangedTouchByIdent)(event, pointerData.pointerIdent);\n\n    if (touch) {\n      pointerIdent = touch.identifier;\n      currentPoint = new _Vec[\"default\"](touch.clientX, touch.clientY);\n    }\n  } else {\n    currentPoint = new _Vec[\"default\"](event.clientX, event.clientY);\n    pointerIdent = -1;\n  }\n\n  if (pointerIdent != pointerData.pointerIdent) return;\n  pointerData.currentPoint = currentPoint;\n\n  if (pointerData.state == 0) {\n    var distance = currentPoint.sub(pointerData.startingPoint).abs();\n\n    if (distance >= this._hangOn) {\n      var dragStartEvent = {\n        type: 'dragstart',\n        originEvent: event,\n        isTouch: isTouch,\n        bound: pointerData.bound,\n        startingPoint: pointerData.startingPoint,\n        offsetVec: pointerData.offsetVec,\n        pointerIdent: pointerIdent,\n        currentPoint: currentPoint,\n        target: pointerData.target,\n        clientX: currentPoint.x,\n        clientY: currentPoint.y,\n        preventDefault: function preventDefault() {\n          event.preventDefault();\n        }\n      };\n\n      pointerData.trackedScrollers = function () {\n        var res = [];\n        var c = _this._hangerPointerData.target;\n\n        while (c) {\n          c.addEventListener('scroll', _this.eventHandler.trackingScroll);\n          res.push(c);\n          c = c.parentElement;\n        }\n\n        document.addEventListener('scroll', _this.eventHandler.trackingScroll);\n        res.push(document);\n        return res;\n      }();\n\n      pointerData.state = 1;\n      this.emit('dragstart', dragStartEvent, this);\n    }\n  }\n\n  if (pointerData.state === 1) {\n    var dragEvent = {\n      type: 'drag',\n      originEvent: event,\n      isTouch: isTouch,\n      bound: pointerData.bound,\n      startingPoint: pointerData.startingPoint,\n      offsetVec: pointerData.offsetVec,\n      pointerIdent: pointerIdent,\n      currentPoint: currentPoint,\n      target: pointerData.target,\n      clientX: currentPoint.x,\n      clientY: currentPoint.y,\n      preventDefault: function preventDefault() {\n        event.preventDefault();\n      }\n    };\n    this.emit('drag', dragEvent, this);\n  }\n};\n\nHanger.eventHandler.hangerPointerFinish = function (event) {\n  var _this2 = this;\n\n  var pointerData = this._hangerPointerData;\n  var isTouch = event.type === 'touchend';\n  var dragEndEvent;\n  if (pointerData.isTouch !== isTouch) return;\n  var pointerIdent = -2;\n  var currentPoint;\n\n  if (isTouch) {\n    var touch = (0, _EventEmitter.findChangedTouchByIdent)(event, pointerData.pointerIdent);\n\n    if (touch) {\n      pointerIdent = touch.identifier;\n      currentPoint = new _Vec[\"default\"](touch.clientX, touch.clientY);\n    }\n  } else {\n    currentPoint = new _Vec[\"default\"](event.clientX, event.clientY);\n    pointerIdent = -1;\n  }\n\n  if (pointerIdent !== pointerData.pointerIdent) return;\n\n  if (pointerData.state === 1) {\n    pointerData.trackedScrollers.forEach(function (elt) {\n      return elt.removeEventListener('scroll', _this2.eventHandler.trackingScroll);\n    });\n    dragEndEvent = {\n      type: 'dragend',\n      originEvent: event,\n      isTouch: isTouch,\n      bound: pointerData.bound,\n      startingPoint: pointerData.startingPoint,\n      offsetVec: pointerData.offsetVec,\n      pointerIdent: pointerIdent,\n      currentPoint: currentPoint,\n      target: pointerData.target,\n      clientX: currentPoint.x,\n      clientY: currentPoint.y,\n      preventDefault: function preventDefault() {\n        event.preventDefault();\n      }\n    };\n    this.emit('dragend', dragEndEvent, this);\n  }\n\n  this._hangerPointerData = null;\n  if (isTouch) this.off2.call(document, this._touchEvents);else this.off2.call(document, this._mouseEvents);\n  this.emit('dragdeinit', {\n    type: 'dragdeinit',\n    originEvent: event,\n    isTouch: isTouch,\n    bound: pointerData.bound,\n    startingPoint: pointerData.startingPoint,\n    offsetVec: pointerData.offsetVec,\n    pointerIdent: pointerIdent,\n    currentPoint: currentPoint,\n    target: pointerData.target,\n    clientX: currentPoint.x,\n    clientY: currentPoint.y\n  });\n};\n\nHanger.eventHandler.trackingScroll = function (event) {\n  var pointerData = this._hangerPointerData;\n  var currentPoint = pointerData.currentPoint;\n  var dragEvent = {\n    type: 'drag',\n    originEvent: event,\n    isTouch: false,\n    bound: pointerData.bound,\n    startingPoint: pointerData.startingPoint,\n    offsetVec: pointerData.offsetVec,\n    pointerIdent: pointerData.pointerIdent,\n    currentPoint: currentPoint,\n    target: pointerData.target,\n    clientX: currentPoint.x,\n    clientY: currentPoint.y,\n    isScrolling: true,\n    preventDefault: function preventDefault() {// event.preventDefault();\n    }\n  };\n  this.emit('drag', dragEvent, this);\n};\n\n_ACore[\"default\"].install(Hanger);\n\nvar _default = Hanger;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/Hanger.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/HexaSectionLabel.js":
/*!*********************************************************!*\
  !*** ./node_modules/absol-acomp/js/HexaSectionLabel.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/hexasectionlabel.css */ \"./node_modules/absol-acomp/css/hexasectionlabel.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Svg = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Svg */ \"./node_modules/absol/src/HTML5/Svg.js\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\nvar _g = _Svg[\"default\"].ShareInstance._;\nvar $g = _Svg[\"default\"].ShareInstance.$;\nvar Design = {\n  hexaHeight: 425,\n  textBoxHeight: 286,\n  textHeight: 96,\n  indexHeight: 110,\n  textBoxPaddingLeft: 127,\n  borderWidth: 38\n};\nvar StyleSheet = {\n  '.as-hexa-section-label-text': {\n    height: Design.textBoxHeight / Design.textHeight + 'em',\n    'padding-left': Design.textBoxPaddingLeft / Design.textHeight + 'em',\n    'line-height': Design.textBoxHeight / Design.textHeight + 'em'\n  },\n  '.as-hexa-section-label-index': {\n    'font-size': Design.indexHeight / Design.textHeight + 'em',\n    height: Design.hexaHeight / Design.indexHeight + 'em',\n    'line-height': Design.hexaHeight / Design.indexHeight + 'em',\n    width: (Design.hexaHeight + Design.borderWidth) / Math.cos(Math.PI / 6) / Design.indexHeight + 'em'\n  }\n};\n\n_({\n  tag: 'style',\n  id: 'hexa-section-label-style',\n  props: {\n    innerHTML: Object.keys(StyleSheet).map(function (key) {\n      var style = StyleSheet[key];\n      return key + ' {\\n' + Object.keys(style).map(function (propName) {\n        return propName + ': ' + style[propName] + ';';\n      }).join('\\n') + '}';\n    }).join('\\n')\n  }\n}).addTo(document.head);\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\n\nfunction HexaSectionLabel() {\n  this.$background = $('.as-hexa-section-label-background', this);\n  this.$index = $('.as-hexa-section-label-index', this);\n  this.$text = $('.as-hexa-section-label-text', this);\n  this.$attachhook = _('attachhook').addTo(this).on('error', function () {\n    _Dom[\"default\"].addToResizeSystem(this);\n\n    this.requestUpdateSize();\n  });\n  this.$attachhook.requestUpdateSize = this.redrawBackground.bind(this);\n  this.$svg = _g({\n    tag: 'svg',\n    attr: {\n      width: '0',\n      height: '0'\n    },\n    child: ['path.as-hexa-section-label-text-box', 'path.as-hexa-section-label-index-box']\n  }).addTo(this.$background);\n  this.$indexBox = $g('path.as-hexa-section-label-index-box', this.$svg);\n  this.$textBox = $g('path.as-hexa-section-label-text-box', this.$svg);\n}\n\nHexaSectionLabel.prototype.redrawBackground = function () {\n  var indexBound = this.$index.getBoundingClientRect();\n  var textBound = this.$text.getBoundingClientRect();\n  var cHeight = indexBound.height;\n  var cWidth = textBound.right - indexBound.left;\n  this.$svg.attr({\n    height: cHeight + '',\n    width: cWidth + '',\n    viewBox: [0, 0, cWidth, cHeight].join(' ')\n  });\n  var borderWidth = cHeight * Design.borderWidth / Design.hexaHeight;\n  var radius = cHeight / Math.cos(Math.PI / 6) / 2 - borderWidth / 2;\n  var x0 = indexBound.width / 2;\n  var y0 = cHeight / 2;\n  this.$indexBox.attr('d', Array(6).fill(0).map(function (u, i) {\n    var angle = Math.PI / 3 + i * Math.PI / 3;\n    var x = radius * Math.cos(angle) + x0;\n    var y = radius * Math.sin(angle) + y0;\n    return (i == 0 ? 'M' : 'L') + x + ' ' + y;\n  }).join(' ') + 'Z').addStyle({\n    strokeWidth: borderWidth + ''\n  });\n  var skewX = 18 / 45;\n  var textBoxHeight = textBound.height;\n  this.$textBox.attr('d', [[x0, (cHeight - textBoxHeight) / 2], [cWidth - 1, (cHeight - textBoxHeight) / 2], [cWidth - 1 - textBoxHeight * skewX, (cHeight - textBoxHeight) / 2 + textBoxHeight], [x0, (cHeight - textBoxHeight) / 2 + textBoxHeight]].map(function (point, i) {\n    return (i == 0 ? 'M' : 'L') + point.join(' ');\n  }).join(' ') + 'Z');\n};\n\nHexaSectionLabel.tag = 'HexaSectionLabel'.toLowerCase();\n\nHexaSectionLabel.render = function () {\n  return _({\n    \"class\": 'as-hexa-section-label',\n    child: [{\n      \"class\": 'as-hexa-section-label-background'\n    }, '.as-hexa-section-label-index', '.as-hexa-section-label-text']\n  });\n};\n\nHexaSectionLabel.property = {};\nHexaSectionLabel.property.index = {\n  set: function set(value) {\n    this._index = value;\n    this.$index.clearChild().addChild(_({\n      text: value + ''\n    }));\n  },\n  get: function get() {\n    return this._index;\n  }\n};\nHexaSectionLabel.property.text = {\n  set: function set(value) {\n    this._text = value;\n    this.$text.clearChild().addChild(_({\n      text: value + ''\n    }));\n  },\n  get: function get() {\n    return this._text;\n  }\n};\n\n_ACore[\"default\"].install(HexaSectionLabel);\n\nvar _default = HexaSectionLabel;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/HexaSectionLabel.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/IconSprite.js":
/*!***************************************************!*\
  !*** ./node_modules/absol-acomp/js/IconSprite.js ***!
  \***************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n\nfunction IconSprite() {\n  this.$attachhook = _('attachhook').addTo(this).on('error', this.eventHandler.attached);\n  this.on('frame', this.eventHandler.frame);\n  this._checkRootTimeout = 30;\n  this.loop = true;\n}\n\nIconSprite.tag = 'iconsprite';\n\nIconSprite.render = function () {\n  return _('sprite', true);\n};\n/**\r\n * @type {IconSprite}\r\n */\n\n\nIconSprite.eventHandler = {};\n\nIconSprite.eventHandler.attached = function () {\n  var thisAS = this;\n  this._checkRootTimeout = 30;\n  this.afterReady().then(function () {\n    thisAS.width = thisAS.texture.naturalWidth;\n    thisAS.height = thisAS.width;\n    thisAS.frames = {\n      type: 'grid',\n      col: 1,\n      row: thisAS.texture.naturalHeight / thisAS.texture.naturalWidth\n    };\n    thisAS.drawFrame(0);\n    thisAS.play();\n  });\n};\n\nIconSprite.eventHandler.frame = function () {\n  this._checkRootTimeout--;\n\n  if (this._checkRootTimeout == 0) {\n    if (this.isDescendantOf(document.body)) {\n      this._checkRootTimeout = 30;\n    } else {\n      this.stop();\n      this.remove();\n    }\n  }\n};\n\n_ACore[\"default\"].install(IconSprite);\n\nvar _default = IconSprite;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/IconSprite.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/Icons.js":
/*!**********************************************!*\
  !*** ./node_modules/absol-acomp/js/Icons.js ***!
  \**********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.MdiStoreMarkerOutline = MdiStoreMarkerOutline;\nexports.SpinnerIco = SpinnerIco;\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _spinner = _interopRequireDefault(__webpack_require__(/*! ../assets/icon/spinner.tpl */ \"./node_modules/absol-acomp/assets/icon/spinner.tpl\"));\n\nvar _mdi_store_marker_outline = _interopRequireDefault(__webpack_require__(/*! ../assets/icon/mdi_store_marker_outline.tpl */ \"./node_modules/absol-acomp/assets/icon/mdi_store_marker_outline.tpl\"));\n\n__webpack_require__(/*! ../css/icons.css */ \"./node_modules/absol-acomp/css/icons.css\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction SpinnerIco() {\n  return _ACore[\"default\"]._(_spinner[\"default\"]);\n}\n\nSpinnerIco.tag = 'SpinnerIco'.toLowerCase();\n\n_ACore[\"default\"].install(SpinnerIco);\n\nfunction MdiStoreMarkerOutline() {\n  return _ACore[\"default\"]._(_mdi_store_marker_outline[\"default\"]);\n}\n\nMdiStoreMarkerOutline.tag = 'mdi-store-marker-outline';\n\n_ACore[\"default\"].install(MdiStoreMarkerOutline);\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/Icons.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/KVCommentItem.js":
/*!******************************************************!*\
  !*** ./node_modules/absol-acomp/js/KVCommentItem.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/kvcommentitem.css */ \"./node_modules/absol-acomp/css/kvcommentitem.css\");\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _datetime = __webpack_require__(/*! absol/src/Time/datetime */ \"./node_modules/absol/src/Time/datetime.js\");\n\nvar _ContextMenu = _interopRequireDefault(__webpack_require__(/*! ./ContextMenu */ \"./node_modules/absol-acomp/js/ContextMenu.js\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction KVCommentItem() {\n  this._time = new Date();\n  this._text = '';\n  this.$text = (0, _ACore.$)('.kv-comment-item-text', this);\n  this.$time = (0, _ACore.$)('.kv-comment-item-time', this);\n  this.$avatar = (0, _ACore.$)('.kv-comment-avatar', this);\n  this.quickmenu = null;\n  this.on('contextmenu', this.eventHandler.kv_contextmenu);\n\n  _ContextMenu[\"default\"].auto();\n}\n\nKVCommentItem.tag = 'KVCommentItem'.toLowerCase();\n\nKVCommentItem.render = function () {\n  return (0, _ACore._)({\n    extendEvent: 'contextmenu',\n    \"class\": \"kv-comment-item\",\n    child: [{\n      \"class\": \"kv-comment-avatar-ctn\",\n      child: {\n        \"class\": 'kv-comment-avatar',\n        style: {\n          backgroundImage: 'url(https://raw.githubusercontent.com/duthienkt/absol/master/logo.svg?sanitize=true)'\n        }\n      }\n    }, {\n      \"class\": \"kv-comment-item-content\",\n      child: [{\n        \"class\": 'kv-comment-item-text',\n        child: {\n          text: ''\n        }\n      }, {\n        \"class\": 'kv-comment-item-time',\n        child: {\n          text: (0, _datetime.formatDateTime)(new Date(), 'dd/MM/yyyy HH:mm')\n        }\n      }]\n    }, {\n      \"class\": \"kv-comment-item-flag-ctn\",\n      child: ['.kv-comment-item-flag-unread']\n    }]\n  });\n};\n\nKVCommentItem.property = {};\nKVCommentItem.property.text = {\n  set: function set(value) {\n    value = value || '';\n    if (typeof value === 'string') this.$text.innerHTML = value;else if (absol.Dom.isDomNode(value)) {\n      this.$text.clearChild().addChild(value);\n    } else {\n      this.$text.clearChild().addChild((0, _ACore._)(value));\n    }\n    this._text = value;\n  },\n  get: function get() {\n    return this._text;\n  }\n};\nKVCommentItem.property.unread = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-unread');\n    } else {\n      this.removeClass('as-unread');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-unread');\n  }\n};\nKVCommentItem.property.time = {\n  set: function set(value) {\n    this._time = value;\n    var text = '';\n    if (typeof value === 'string') text = value;else if (value instanceof Date) {\n      text = (0, _datetime.formatDateTime)(value, 'dd/MM/yyyy HH:mm');\n    }\n    this.$time.firstChild.data = text;\n  },\n  get: function get() {\n    return this._time;\n  }\n};\nKVCommentItem.property.avatar = {\n  set: function set(value) {\n    value = value || 'https://raw.githubusercontent.com/duthienkt/absol/master/logo.svg?sanitize=true';\n    this._avatar = value;\n    this.$avatar.addStyle('backgroundImage', 'url(' + value + ')');\n  },\n  get: function get() {\n    return this._avatar;\n  }\n};\n/***\r\n * @memberOf KVCommentItem#\r\n * @type {{}}\r\n */\n\nKVCommentItem.eventHandler = {};\n/***\r\n * @this KVCommentItem\r\n * @param event\r\n */\n\nKVCommentItem.eventHandler.kv_contextmenu = function (event) {\n  if (this.quickmenu) {\n    event.showContextMenu(this.quickmenu.props, function (event) {\n      var menuItem = (0, _utils.cleanMenuItemProperty)(event.menuItem);\n\n      if (this.quickmenu.onSelect) {\n        this.quickmenu.onSelect.call(this, menuItem);\n      }\n    }.bind(this));\n  }\n};\n\n_ACore[\"default\"].install(KVCommentItem);\n\nvar _default = KVCommentItem;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/KVCommentItem.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/LinearColorBar.js":
/*!*******************************************************!*\
  !*** ./node_modules/absol-acomp/js/LinearColorBar.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/linearcolorbar.css */ \"./node_modules/absol-acomp/css/linearcolorbar.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _Svg = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Svg */ \"./node_modules/absol/src/HTML5/Svg.js\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\nvar _g = _Svg[\"default\"].ShareInstance._;\nvar $g = _Svg[\"default\"].ShareInstance.$;\nvar Design = {\n  textHeight: 56,\n  barHeight: 97,\n  barBlockWidth: 79,\n  barBlockMargin: 19,\n  valueTextHeight: 70,\n  valueStrokeWidth: 5,\n  valueHeight: 99,\n  valueWidth: 52,\n  valueTripHeight: 32,\n  height: 430,\n  barY: 201\n};\nvar SyleSheet = {\n  '.as-linear-color-bar': {\n    height: Design.height / Design.textHeight + 'em'\n  },\n  '.as-linear-color-value-text': {\n    'font-size': Design.valueTextHeight / Design.textHeight + 'em'\n  }\n};\n(0, _utils.buildCss)(SyleSheet);\n\nfunction LinearColorBar() {\n  this._indent = (Math.random() + '').replace(/[^0-9]/g, '_');\n  this._extendValue = 0;\n  this._value = 0;\n  this._valueText = '';\n  this.$valueText = $('.as-linear-color-value-text', this);\n  this.$minValueText = $('.as-linear-color-min-value-text', this);\n  this.$maxValueText = $('.as-linear-color-max-value-text', this);\n  this.$background = $('svg.as-linear-color-background', this);\n  this._attached = false;\n  var thisBar = this;\n  this.$attachhook = _('attachhook').addTo(this).on('error', function () {\n    thisBar._attached = true;\n\n    _Dom[\"default\"].addToResizeSystem(this);\n\n    this.requestUpdateSize();\n  });\n  this.$background.attr({\n    height: 0,\n    width: 0\n  });\n  this.$attachhook.requestUpdateSize = this.redraw.bind(this);\n  this.$defs = _g('defs').addTo(this.$background);\n  this.$gradient = _g('linearGradient#gradient_' + this._indent).attr({\n    x1: \"0%\",\n    y1: \"0%\",\n    x2: \"100%\",\n    y2: \"0%\"\n  }).addTo(this.$defs);\n  this.$rect = _g('rect.as-linear-color-bar-rect').attr({\n    fill: 'url(#gradient_' + this._indent + ')'\n  }).addTo(this.$background);\n  this.$splitLine = _g('path.as-linear-color-split-line').addTo(this.$background);\n  this.$valueArrow = _g('path.as-linear-color-value-arrow').addTo(this.$background);\n  this.colorMapping = 'rainbow';\n}\n\nLinearColorBar.prototype.redraw = function () {\n  var bBound = this.getBoundingClientRect();\n  var cWidth = bBound.width;\n  var cHeight = bBound.height;\n  var maxTextBound = this.$maxValueText.getBoundingClientRect();\n  var minTextBound = this.$minValueText.getBoundingClientRect();\n  var valueTextBound = this.$valueText.getBoundingClientRect();\n  var valueWidth = Design.valueWidth / Design.height * cHeight;\n  var minValueX = valueWidth / 1.5;\n  this.$minValueText.addStyle('left', Math.max((minValueX - minTextBound.width) / 2, 0) + 'px');\n  var maxValueX = (cWidth - Design.valueWidth) / (1 + this._extendValue);\n  var extendX = cWidth - valueWidth / 1.5;\n  var valueX = minValueX + this._value * (maxValueX - minValueX);\n  this.$valueText.addStyle('left', valueX - valueTextBound.width / 2 + 'px');\n  this.$maxValueText.addStyle('left', maxValueX - maxTextBound.width / 2 + 'px');\n  var barY = Design.barY / Design.height * cHeight;\n  var barHeight = Design.barHeight / Design.height * cHeight;\n  this.$rect.attr({\n    x: '' + minValueX,\n    y: '' + barY,\n    width: extendX - minValueX + '',\n    height: barHeight\n  });\n  this.$background.attr({\n    height: cHeight + '',\n    width: cWidth + '',\n    viewBox: [0, 0, cWidth, cHeight].join(' ')\n  });\n  var valueTripHeight = Design.valueTripHeight / Design.height * cHeight;\n  var valueHeight = Design.valueHeight / Design.height * cHeight;\n  this.$valueArrow.addStyle('stroke-width', Design.valueStrokeWidth / Design.height * cHeight + '').attr('d', [[[valueX, barY], [valueX - valueWidth / 2, barY - valueTripHeight], [valueX - valueWidth / 2, barY - valueHeight], [valueX + valueWidth / 2, barY - valueHeight], [valueX + valueWidth / 2, barY - valueTripHeight]]].map(function (point, i) {\n    return (i == 0 ? 'M' : 'L') + point.join(' ');\n  }).join(' ') + 'Z');\n  var splitDistMin = (Design.barBlockWidth + Design.barBlockMargin) / Design.height * cHeight;\n  var splitCounts = [100, 50, 20, 10, 5, 2, 1];\n  var splitDist = maxValueX - minValueX;\n  var splitCount = 1;\n\n  for (var i = 0; i < splitCounts.length; ++i) {\n    splitDist = (maxValueX - minValueX) / splitCounts[i];\n\n    if (splitDist >= splitDistMin) {\n      splitCount = splitCounts[i];\n      break;\n    }\n  }\n\n  this.$splitLine.addStyle('stroke-width', Design.barBlockMargin / Design.height * cHeight + '').attr({\n    d: Array(splitCount + 1).fill(0).map(function (u, i) {\n      return 'M' + (maxValueX - i * splitDist) + ' ' + (barY - 1) + 'v' + (barHeight + 2);\n    }).join(' ')\n  });\n};\n\nLinearColorBar.prototype._updateGradient = function () {\n  var barMax = 1 + this._extendValue;\n  var gradientElt = this.$gradient.clearChild();\n\n  this._colorMapping.forEach(function (it) {\n    _g({\n      tag: 'stop',\n      attr: {\n        offset: (it.value <= 1 ? it.value / barMax * 100 : 100) + '%'\n      },\n      style: {\n        'stop-color': it.color + '',\n        'stop-opacity': '1'\n      }\n    }).addTo(gradientElt);\n  });\n};\n\nLinearColorBar.prototype.BUILDIN_COLORS_RANGE = {\n  'rainbow': [{\n    value: 0,\n    color: 'red'\n  }, {\n    value: 1 / 6,\n    color: 'orange'\n  }, {\n    value: 1 / 3,\n    color: 'yellow'\n  }, {\n    value: 1 / 2,\n    color: 'green'\n  }, {\n    value: 2 / 3,\n    color: 'blue'\n  }, {\n    value: 5 / 6,\n    color: 'indigo'\n  }, {\n    value: 1,\n    color: 'violet'\n  }, {\n    value: Infinity,\n    color: 'violet'\n  }],\n  'rainbow-invert': [{\n    value: 0,\n    color: 'violet'\n  }, {\n    value: 1 / 6,\n    color: 'indigo'\n  }, {\n    value: 1 / 3,\n    color: 'blue'\n  }, {\n    value: 1 / 2,\n    color: 'green'\n  }, {\n    value: 2 / 3,\n    color: 'yellow'\n  }, {\n    value: 5 / 6,\n    color: 'orange'\n  }, {\n    value: 1,\n    color: 'red'\n  }, {\n    value: Infinity,\n    color: 'violet'\n  }],\n  'performance': [{\n    value: 0,\n    color: 'red'\n  }, {\n    value: 0.5,\n    color: 'orange'\n  }, {\n    value: 1,\n    color: 'green'\n  }, {\n    value: Infinity,\n    color: 'green'\n  }],\n  'performance-invert': [{\n    value: 0,\n    color: 'green'\n  }, {\n    value: 0.5,\n    color: 'orange'\n  }, {\n    value: 1,\n    color: 'red'\n  }, {\n    value: Infinity,\n    color: 'red'\n  }]\n};\nLinearColorBar.tag = 'LinearColorBar'.toLowerCase();\n\nLinearColorBar.render = function () {\n  return _({\n    \"class\": 'as-linear-color-bar',\n    child: ['svg.as-linear-color-background', '.as-linear-color-value-text', '.as-linear-color-min-value-text', '.as-linear-color-max-value-text']\n  });\n};\n\nLinearColorBar.property = {};\nLinearColorBar.property.valueText = {\n  set: function set(value) {\n    value = value + '';\n    this._valueText = value;\n    this.$valueText.clearChild().addChild(_({\n      text: value\n    }));\n  },\n  get: function get() {\n    return this._valueText;\n  }\n};\nLinearColorBar.property.minValueText = {\n  set: function set(value) {\n    value = value + '';\n    this._minValueText = value;\n    this.$minValueText.clearChild().addChild(_({\n      text: value\n    }));\n  },\n  get: function get() {\n    return this._valueText;\n  }\n};\nLinearColorBar.property.maxValueText = {\n  set: function set(value) {\n    value = value + '';\n    this._maxValueText = value;\n    this.$maxValueText.clearChild().addChild(_({\n      text: value\n    }));\n  },\n  get: function get() {\n    return this._valueText;\n  }\n};\nLinearColorBar.property.value = {\n  set: function set(value) {\n    this._value = value;\n  },\n  get: function get() {\n    return this._value;\n  }\n};\nLinearColorBar.property.extendValue = {\n  set: function set(value) {\n    this._extendValue = value;\n\n    this._updateGradient();\n  },\n  get: function get() {\n    return this._extendValue;\n  }\n};\nLinearColorBar.property.colorMapping = {\n  set: function set(value) {\n    if (typeof value == \"string\") value = this.BUILDIN_COLORS_RANGE[value];\n    this._colorMapping = value.slice();\n\n    this._colorMapping.sort(function (a, b) {\n      return a.value - b.value;\n    });\n\n    this._updateGradient();\n  },\n  get: function get() {\n    return this._colorMapping;\n  }\n};\n\n_ACore[\"default\"].install(LinearColorBar);\n\nvar _default = LinearColorBar;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/LinearColorBar.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/LinearColorTinyBar.js":
/*!***********************************************************!*\
  !*** ./node_modules/absol-acomp/js/LinearColorTinyBar.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _LinearColorBar = _interopRequireDefault(__webpack_require__(/*! ./LinearColorBar */ \"./node_modules/absol-acomp/js/LinearColorBar.js\"));\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _printer = __webpack_require__(/*! absol/src/Print/printer */ \"./node_modules/absol/src/Print/printer.js\");\n\nvar _Rectangle = _interopRequireDefault(__webpack_require__(/*! absol/src/Math/Rectangle */ \"./node_modules/absol/src/Math/Rectangle.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends {AElement}\r\n * @constructor\r\n */\nfunction LinearColorTinyBar() {\n  this._value = 0;\n  this._colorMapping = 0;\n  this._colorMapping = this.BUILDIN_COLORS_RANGE.rainbow;\n  /***\r\n   *\r\n   * @type {Text}\r\n   */\n\n  this.$text = (0, _ACore.$)('.as-linear-color-tiny-text', this).firstChild;\n  /***\r\n   * @type {string} valueText\r\n   * @memberOf LinearColorTinyBar#\r\n   * @name valueText\r\n   */\n\n  /***\r\n   * @type {number}  from 0..1..Inf\r\n   * @memberOf LinearColorTinyBar#\r\n   * @name value\r\n   */\n\n  /***\r\n   * @type {Array} - from 0..1..Inf\r\n   * @memberOf LinearColorTinyBar#\r\n   * @name colorMapping#\r\n   */\n}\n\nLinearColorTinyBar.tag = 'LinearColorTinyBar'.toLowerCase();\n\nLinearColorTinyBar.render = function () {\n  return (0, _ACore._)({\n    \"class\": 'as-linear-color-tiny-bar',\n    child: [{\n      tag: 'span',\n      \"class\": 'as-linear-color-tiny-text',\n      child: {\n        text: '0.00%'\n      }\n    }, '.as-linear-color-tiny-bar-rect']\n  });\n};\n\nLinearColorTinyBar.prototype.BUILDIN_COLORS_RANGE = _LinearColorBar[\"default\"].prototype.BUILDIN_COLORS_RANGE;\n\nLinearColorTinyBar.prototype._updateColor = function () {\n  var value = this._value;\n  var colorMapping = this.colorMapping;\n  var i = 0;\n\n  while (i < colorMapping.length) {\n    if (i + 1 == colorMapping.length || colorMapping[i + 1].value > value) break;\n    ++i;\n  }\n\n  this.addStyle('--color', colorMapping[i].color + '');\n};\n\nLinearColorTinyBar.property = {};\nLinearColorTinyBar.property.value = {\n  set: function set(value) {\n    if (typeof value === \"string\") value = parseFloat(value);\n    if (typeof value !== \"number\") value = 0;\n    if (isNaN(value)) value = 0;\n    this._value = Math.max(value, 0);\n    this.addStyle('--value', this._value + '');\n\n    this._updateColor();\n  },\n  get: function get() {\n    return this._value;\n  }\n};\nLinearColorTinyBar.property.valueText = {\n  set: function set(value) {\n    this.$text.data = value;\n  },\n  get: function get() {\n    return this.$text.data;\n  }\n};\nLinearColorTinyBar.property.colorMapping = {\n  set: function set(value) {\n    var ok = true;\n\n    if (typeof value === 'string') {\n      if (!(value in this.BUILDIN_COLORS_RANGE)) {\n        value = 'rainbow';\n      }\n\n      value = this.BUILDIN_COLORS_RANGE[value];\n    } else if (value instanceof Array) {\n      ok = value.length > 1;\n\n      if (!ok) {\n        console.warn(\"colorMapping.length must > 1\", value);\n      }\n    } else {\n      console.warn(\"Invalid colorMapping\", value);\n    }\n\n    if (!ok) value = this.BUILDIN_COLORS_RANGE.rainbow;\n    this._colorMapping = value;\n\n    this._updateColor();\n  },\n  get: function get() {\n    return this._colorMapping;\n  }\n};\n\n_ACore[\"default\"].install(LinearColorTinyBar);\n\nvar _default = LinearColorTinyBar;\nexports[\"default\"] = _default;\n\n_printer.ShareSerializer.addHandlerBefore({\n  match: function match(elt, scope, stack) {\n    return elt.hasClass && elt.hasClass('as-linear-color-tiny-bar-rect');\n  },\n  exec: function exec(printer, elt, scope, stack, accept) {\n    var bound = _Rectangle[\"default\"].fromClientRect(elt.getBoundingClientRect());\n\n    bound.x -= printer.O.x;\n    bound.y -= printer.O.y;\n    printer.rect(bound, {\n      fill: elt.getComputedStyleValue('background-color')\n    });\n  }\n}, '*');\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/LinearColorTinyBar.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/LoadingCubeModal.js":
/*!*********************************************************!*\
  !*** ./node_modules/absol-acomp/js/LoadingCubeModal.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _stringGenerate = __webpack_require__(/*! absol/src/String/stringGenerate */ \"./node_modules/absol/src/String/stringGenerate.js\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends Modal\r\n * @constructor\r\n */\nfunction LoadingCubeModal() {}\n\nLoadingCubeModal.tag = 'LoadingCubeModal'.toLowerCase();\n\nLoadingCubeModal.render = function () {\n  return (0, _ACore._)({\n    tag: 'modal',\n    \"class\": 'as-loading-cube-modal',\n    child: '<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" style=\"margin: auto; background: rgb(241, 242, 243); display: block; shape-rendering: auto;\" width=\"200px\" height=\"200px\" viewBox=\"0 0 100 100\" preserveAspectRatio=\"xMidYMid\">\\n' + '<g transform=\"translate(26.666666666666668,26.666666666666668)\">\\n' + '  <rect x=\"-20\" y=\"-20\" width=\"40\" height=\"40\" fill=\"#13a9df\">\\n' + '    <animateTransform attributeName=\"transform\" type=\"scale\" repeatCount=\"indefinite\" dur=\"1s\" keyTimes=\"0;1\" values=\"1.1500000000000001;1\" begin=\"-0.3s\"></animateTransform>\\n' + '  </rect>\\n' + '</g>\\n' + '<g transform=\"translate(73.33333333333333,26.666666666666668)\">\\n' + '  <rect x=\"-20\" y=\"-20\" width=\"40\" height=\"40\" fill=\"#4be44c\">\\n' + '    <animateTransform attributeName=\"transform\" type=\"scale\" repeatCount=\"indefinite\" dur=\"1s\" keyTimes=\"0;1\" values=\"1.1500000000000001;1\" begin=\"-0.2s\"></animateTransform>\\n' + '  </rect>\\n' + '</g>\\n' + '<g transform=\"translate(26.666666666666668,73.33333333333333)\">\\n' + '  <rect x=\"-20\" y=\"-20\" width=\"40\" height=\"40\" fill=\"#e2d58b\">\\n' + '    <animateTransform attributeName=\"transform\" type=\"scale\" repeatCount=\"indefinite\" dur=\"1s\" keyTimes=\"0;1\" values=\"1.1500000000000001;1\" begin=\"0s\"></animateTransform>\\n' + '  </rect>\\n' + '</g>\\n' + '<g transform=\"translate(73.33333333333333,73.33333333333333)\">\\n' + '  <rect x=\"-20\" y=\"-20\" width=\"40\" height=\"40\" fill=\"#e1e7e7\">\\n' + '    <animateTransform attributeName=\"transform\" type=\"scale\" repeatCount=\"indefinite\" dur=\"1s\" keyTimes=\"0;1\" values=\"1.1500000000000001;1\" begin=\"-0.1s\"></animateTransform>\\n' + '  </rect>\\n' + '</g>\\n' + '</svg>'\n  });\n};\n\nLoadingCubeModal.share = {\n  token: null,\n  $elt: null\n};\n/***\r\n *\r\n * @return {String}\r\n */\n\nLoadingCubeModal.show = function () {\n  if (!LoadingCubeModal.share.$elt) LoadingCubeModal.share.$elt = (0, _ACore._)(LoadingCubeModal.tag);\n\n  if (!LoadingCubeModal.share.$elt.isDescendantOf(document.body)) {\n    document.body.appendChild(LoadingCubeModal.share.$elt);\n  }\n\n  LoadingCubeModal.share.token = (0, _stringGenerate.randomIdent)(9);\n  return LoadingCubeModal.share.token;\n};\n/***\r\n *\r\n * @param {String} token\r\n * @return {Boolean}\r\n */\n\n\nLoadingCubeModal.close = function (token) {\n  if (LoadingCubeModal.share.$elt && LoadingCubeModal.share.$elt.isDescendantOf(document.body) && (!token || token === LoadingCubeModal.share.token)) {\n    this.share.$elt.remove();\n    LoadingCubeModal.share.token = null;\n    return true;\n  }\n\n  return false;\n};\n\n_ACore[\"default\"].install(LoadingCubeModal);\n\nvar _default = LoadingCubeModal;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/LoadingCubeModal.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/LocationInput.js":
/*!******************************************************!*\
  !*** ./node_modules/absol-acomp/js/LocationInput.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _LocationPicker = _interopRequireDefault(__webpack_require__(/*! ./LocationPicker */ \"./node_modules/absol-acomp/js/LocationPicker.js\"));\n\n__webpack_require__(/*! ../css/locationinput.css */ \"./node_modules/absol-acomp/css/locationinput.css\");\n\nvar _EventEmitter = __webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\");\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _BrowserDetector = _interopRequireDefault(__webpack_require__(/*! absol/src/Detector/BrowserDetector */ \"./node_modules/absol/src/Detector/BrowserDetector.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction LocationInput() {\n  this.$text = (0, _ACore.$)('input', this).on('change', this.eventHandler.textChange);\n  this.$iconCtn = (0, _ACore.$)('.as-location-input-icon-ctn', this).on('click', this.eventHandler.clickIcon);\n  /***\r\n   * @type {{latitude: number, longitude: number}}\r\n   * @name latLng\r\n   * @memberOf LocationInput#\r\n   */\n\n  /***\r\n   * @type {string}\r\n   * @name value\r\n   * @memberOf LocationInput#\r\n   */\n\n  /***\r\n   * @type {boolean}\r\n   * @name readOnly\r\n   * @memberOf LocationInput#\r\n   */\n}\n\nLocationInput.tag = 'LocationInput'.toLowerCase();\n\nLocationInput.render = function () {\n  return (0, _ACore._)({\n    \"class\": 'as-location-input',\n    extendEvent: ['change'],\n    child: [{\n      tag: 'input',\n      attr: {\n        type: 'text'\n      },\n      \"class\": 'as-location-input-text'\n    }, {\n      \"class\": 'as-location-input-icon-ctn',\n      child: 'span.mdi.mdi-google-maps'\n    }]\n  });\n};\n\nLocationInput.prototype.share = {\n  $modal: null,\n  $picker: null,\n  $holder: null\n};\n\nLocationInput.prototype._preparePicker = function () {\n  if (this.share.$picker) return;\n  this.share.$picker = (0, _ACore._)({\n    tag: _LocationPicker[\"default\"].tag\n  });\n  this.share.$modal = (0, _ACore._)({\n    tag: 'modal',\n    \"class\": 'as-location-input-modal',\n    child: {\n      \"class\": 'as-location-input-modal-window',\n      child: this.share.$picker\n    }\n  });\n\n  if (_BrowserDetector[\"default\"].isMobile) {\n    this.share.$modal.addClass('as-mobile');\n  }\n};\n/***\r\n * @this LocationInput\r\n * @private\r\n */\n\n\nLocationInput.prototype._attachPicker = function () {\n  if (this.share.$holder) {\n    this.share.$holder._releasePicker();\n  }\n\n  this._preparePicker();\n\n  this.share.$holder = this;\n  this.$iconCtn.off('click', this.eventHandler.clickIcon);\n  document.body.appendChild(this.share.$modal);\n  this.share.$picker.on('action', this.eventHandler.pickerAction);\n  this.share.$picker.$searchInput.value = '';\n  this.share.$picker.readOnly = this.readOnly;\n  setTimeout(function () {\n    document.addEventListener('click', this.eventHandler.clickOut);\n  }.bind(this), 100);\n  var value = this.latLng;\n\n  if (value) {\n    value = new google.maps.LatLng(value.latitude, value.longitude);\n  }\n\n  if (value) this.share.$picker.selectLocation(value, true);else this.share.$picker.selectPlace(null);\n};\n\nLocationInput.prototype._releasePicker = function () {\n  if (this.share.$holder !== this) return;\n  this.share.$picker.off('action', this.eventHandler.pickerAction);\n  this.$iconCtn.on('click', this.eventHandler.clickIcon);\n  document.removeEventListener('click', this.eventHandler.clickOut);\n  this.share.$modal.remove();\n  this.share.$holder = null;\n};\n/**\r\n *\r\n * @type {{}}\r\n * @memberOf LocationInput#\r\n */\n\n\nLocationInput.eventHandler = {};\n\nLocationInput.eventHandler.pickerAction = function (event) {\n  if (!this.readOnly && event.action === 'OK' && this.share.$picker.selectedPlace && this.share.$picker.selectedPlace.geometry && this.share.$picker.selectedPlace.geometry.location) {\n    this.$text.value = [this.share.$picker.selectedPlace.geometry.location.lat(), this.share.$picker.selectedPlace.geometry.location.lng()].join(', ');\n    this.emit('change', {\n      type: 'change',\n      originalEvent: event.originalEvent || event,\n      target: this\n    }, this);\n  }\n\n  this._releasePicker();\n};\n/***\r\n * @this LocationInput\r\n */\n\n\nLocationInput.eventHandler.clickIcon = function () {\n  this._attachPicker();\n};\n/***\r\n * @this LocationInput\r\n * @param event\r\n */\n\n\nLocationInput.eventHandler.clickOut = function (event) {\n  if (event.target === this.share.$modal) this._releasePicker();\n};\n\nLocationInput.eventHandler.textChange = function (event) {\n  this.emit('change', {\n    type: 'change',\n    originalEvent: event.originalEvent || event,\n    target: this\n  }, this);\n};\n\nLocationInput.property = {};\nLocationInput.property.value = {\n  set: function set(value) {\n    value = value || null;\n    var lat, lng;\n\n    if (typeof value === \"string\") {\n      this.$text.value = value;\n      return;\n    }\n\n    if (value instanceof Array) {\n      lat = value[0];\n      lng = value[1];\n    } else if (value && _typeof(value) === 'object') {\n      if ('latitude' in value && 'longitude' in value) {\n        lat = value.latitude;\n        lng = value.longitude;\n      } else if (value instanceof google.maps.LatLng) {\n        lat = value.lat();\n        lng = value.lng();\n      }\n    }\n\n    if ((0, _utils.isRealNumber)(lat) && (0, _utils.isRealNumber)(lng)) {\n      this.$text.value = [lat, lng].join(', ');\n    } else {\n      this.$text.value = '';\n    }\n  },\n  get: function get() {\n    var nums = this.$text.value.split(/\\s*,\\s*/);\n    var lat = parseFloat(nums[0]);\n    var lng = parseFloat(nums[1]);\n\n    if ((0, _utils.isRealNumber)(lat) && (0, _utils.isRealNumber)(lng)) {\n      lat = Math.max(-90, Math.min(90, lat));\n      if (lng < 180 && lng > 180) lng = (lng + 180 + 360 * Math.ceil(Math.abs(lng) / 360 + 2)) % 360 - 180;\n      return [lat, lng].join(', ');\n    } else {\n      return '';\n    }\n  }\n};\nLocationInput.property.latLng = {\n  get: function get() {\n    var nums = this.$text.value.split(/\\s*,\\s*/);\n    var lat = parseFloat(nums[0]);\n    var lng = parseFloat(nums[1]);\n\n    if ((0, _utils.isRealNumber)(lat) && (0, _utils.isRealNumber)(lng)) {\n      lat = Math.max(-90, Math.min(90, lat));\n      if (lng < 180 && lng > 180) lng = (lng + 180 + 360 * Math.ceil(Math.abs(lng) / 360 + 2)) % 360 - 180;\n      return {\n        latitude: lat,\n        longitude: lng\n      };\n    } else {\n      return null;\n    }\n  }\n};\nLocationInput.property.readOnly = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-read-only');\n    } else {\n      this.removeClass('as-read-only');\n    }\n\n    this.$text.readOnly = !!value;\n  },\n  get: function get() {\n    return this.hasClass('as-read-only');\n  }\n};\nLocationInput.property.disabled = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-disabled');\n    } else {\n      this.removeClass('as-disabled');\n    }\n\n    this.$text.disabled = !!value;\n  },\n  get: function get() {\n    return this.hasClass('as-disabled');\n  }\n};\n\n_ACore[\"default\"].install(LocationInput);\n\nvar _default = LocationInput;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/LocationInput.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/LocationPicker.js":
/*!*******************************************************!*\
  !*** ./node_modules/absol-acomp/js/LocationPicker.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\n__webpack_require__(/*! ../css/locationinput.css */ \"./node_modules/absol-acomp/css/locationinput.css\");\n\nvar _AutoCompleteInput = _interopRequireDefault(__webpack_require__(/*! ./AutoCompleteInput */ \"./node_modules/absol-acomp/js/AutoCompleteInput.js\"));\n\nvar _FlexiconButton = _interopRequireDefault(__webpack_require__(/*! ./FlexiconButton */ \"./node_modules/absol-acomp/js/FlexiconButton.js\"));\n\nvar _BrowserDetector = _interopRequireDefault(__webpack_require__(/*! absol/src/Detector/BrowserDetector */ \"./node_modules/absol/src/Detector/BrowserDetector.js\"));\n\nvar _stringGenerate = __webpack_require__(/*! absol/src/String/stringGenerate */ \"./node_modules/absol/src/String/stringGenerate.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n///https://developers.google.com/maps/documentation/javascript/examples/geocoding-place-id\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction LocationPicker() {\n  if (_BrowserDetector[\"default\"].isMobile) {\n    this.addClass('as-mobile');\n  }\n\n  this.map = new google.maps.Map(this, {\n    zoom: 8,\n    center: new google.maps.LatLng(21.018755, 105.839729),\n    streetViewControl: false,\n    fullscreenControl: false,\n    mapTypeControl: true,\n    mapTypeControlOptions: {\n      style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR,\n      position: google.maps.ControlPosition.TOP_RIGHT\n    }\n  });\n  this.map.setOptions({\n    draggableCursor: 'default'\n  });\n  this.map.addListener('click', this.eventHandler.clickMap);\n  this.geocoder = new google.maps.Geocoder();\n  this.infoWindow = new google.maps.InfoWindow();\n  window.map = this.map;\n  this.$myLocationBtn = (0, _ACore._)({\n    tag: 'button',\n    \"class\": 'as-location-picker-control-btn',\n    child: 'span.mdi.mdi-crosshairs-gps',\n    on: {\n      click: this.selectMyLocation.bind(this)\n    }\n  });\n  this.$rightBottomCtn = (0, _ACore._)({\n    \"class\": 'as-location-picker-control-ctn',\n    child: [this.$myLocationBtn],\n    style: {\n      overflow: 'hidden'\n    }\n  });\n  this.$searchInput = (0, _ACore._)({\n    tag: _AutoCompleteInput[\"default\"].tag,\n    \"class\": 'as-location-picker-search-input',\n    props: {\n      adapter: this\n    },\n    child: {\n      \"class\": 'as-location-picker-search-input-search-icon-ctn',\n      child: 'span.mdi.mdi-magnify',\n      on: {\n        click: this.eventHandler.search\n      }\n    },\n    on: {\n      change: this.eventHandler.searchChange\n    }\n  });\n  this.$searchInput.$input.on('keydown', this.eventHandler.searchKeypress);\n  this.$topLeftCtn = (0, _ACore._)({\n    \"class\": ['as-location-picker-control-ctn', 'as-top'],\n    child: [this.$searchInput]\n  });\n  this.$okBtn = (0, _ACore._)({\n    tag: _FlexiconButton[\"default\"].tag,\n    \"class\": 'primary',\n    props: {\n      text: 'OK',\n      disabled: true\n    },\n    on: {\n      click: this.eventHandler.clickAction.bind(this, 'OK')\n    }\n  });\n  this.$cancelBtn = (0, _ACore._)({\n    tag: _FlexiconButton[\"default\"].tag,\n    \"class\": ['as-location-picker-cancel-btn', 'secondary'],\n    props: {\n      text: 'CANCEL'\n    },\n    on: {\n      click: this.eventHandler.clickAction.bind(this, 'CANCEL')\n    }\n  });\n  this.$bottomLeftCtn = (0, _ACore._)({\n    \"class\": ['as-location-picker-control-ctn', 'as-transparent', 'as-bottom'],\n    style: {\n      paddingBottom: '5px'\n    },\n    child: [this.$okBtn, this.$cancelBtn]\n  });\n  this.map.controls[google.maps.ControlPosition.RIGHT_BOTTOM].push(this.$rightBottomCtn);\n  this.map.controls[google.maps.ControlPosition.TOP_LEFT].push(this.$topLeftCtn);\n  this.map.controls[google.maps.ControlPosition.BOTTOM_LEFT].push(this.$bottomLeftCtn);\n  this.autoCompleteService = new google.maps.places.AutocompleteService(this.map, {\n    fields: [\"place_id\", \"geometry\", \"name\", \"formatted_address\"]\n  });\n  this.placeService = new google.maps.places.PlacesService(this.map);\n  this.selectedMarker = null;\n  this.searchingMarkers = [];\n  this.myLocationMarker = null;\n  /***\r\n   * @type {LatLng}\r\n   * @name value\r\n   * @memberOf LocationPicker#\r\n   */\n\n  /***\r\n   * @type {boolean}\r\n   * @name readOnly\r\n   * @memberOf LocationPicker#\r\n   */\n}\n\nLocationPicker.tag = 'LocationPicker'.toLowerCase();\n\nLocationPicker.render = function () {\n  return (0, _ACore._)({\n    \"class\": 'as-location-picker',\n    extendEvent: ['action', 'location', 'requestlocation', 'error']\n  });\n};\n\nLocationPicker.prototype.queryItems = function (query) {\n  var request = {\n    input: query,\n    bounds: this.map.getBounds()\n  };\n  return new Promise(function (resolve) {\n    this.autoCompleteService.getPlacePredictions(request, function (results, status) {\n      if (status === google.maps.places.PlacesServiceStatus.OK) {\n        resolve(results);\n      } else resolve([]);\n    });\n  }.bind(this));\n};\n\nLocationPicker.prototype.getItemText = function (item, mInput) {\n  return item.description;\n};\n\nLocationPicker.prototype.getItemView = function (item, index, _, $, query, reuseItem, refParent, mInput) {\n  return _({\n    \"class\": 'as-place-search-auto-complete-item',\n    child: [{\n      \"class\": 'as-place-search-auto-complete-item-desc',\n      child: {\n        text: item.description\n      }\n    }]\n  });\n};\n\nLocationPicker.prototype.getBoundsZoomLevel = function (bounds) {\n  var mapDim = this.getBoundingClientRect();\n  return (0, _utils.getMapZoomLevel)(mapDim, bounds);\n};\n\nLocationPicker.prototype.clearSearchingMarkers = function () {\n  while (this.searchingMarkers.length > 0) {\n    this.searchingMarkers.pop().setMap(null);\n  }\n};\n/**\r\n *\r\n * @param place\r\n * @param {boolean=} panTo\r\n */\n\n\nLocationPicker.prototype.selectPlace = function (place, panTo) {\n  var _this = this;\n\n  if (arguments.length === 1) panTo = true;\n  this.selectedPlace = place || null;\n\n  if (this.selectedMarker) {\n    this.selectedMarker.setMap(null);\n  }\n\n  this.$okBtn.disabled = !this.selectedPlace;\n  if (!place) return;\n  var latLng = place.geometry && place.geometry.location;\n  if (!latLng) return;\n  var zoom = panTo && (place.geometry.bounds || place.geometry.viewport) ? this.getBoundsZoomLevel(place.geometry.bounds || place.geometry.viewport) : 18;\n\n  if (panTo) {\n    this.map.setZoom(zoom);\n    setTimeout(function () {\n      _this.map.panTo(latLng);\n    }, 100);\n  }\n\n  this.selectedMarker = new google.maps.Marker({\n    map: this.map,\n    position: latLng\n  });\n  this.infoWindow.setContent((place.name ? place.name + ' - ' : '') + place.formatted_address);\n  this.infoWindow.open(this.map, this.selectedMarker);\n};\n\nLocationPicker.prototype.showSearchPlaces = function (places) {\n  this.clearSearchingMarkers();\n  if (!places || places.length === 0) return;\n\n  if (places.length === 1) {\n    this.selectPlace(places[0]);\n    return;\n  }\n\n  var bounds = places.reduce(function (ac, place) {\n    if (place.geometry && place.geometry.location) ac.extend(place.geometry.location);\n    return ac;\n  }, new google.maps.LatLngBounds());\n  var zoom = places.length === 1 ? places[0].geometry.bounds || places[0].geometry.viewport ? this.getBoundsZoomLevel(places[0].geometry.bounds || places[0].geometry.viewport) : 18 : this.getBoundsZoomLevel(bounds);\n  var center = places.length === 1 ? places[0].geometry.location : bounds.getCenter();\n  this.map.setCenter(center);\n  this.map.setZoom(zoom);\n  places.reduce(function (ac, place, i) {\n    var marker;\n\n    if (place.geometry && place.geometry.location) {\n      marker = new google.maps.Marker({\n        map: this.map,\n        position: place.geometry.location,\n        icon: 'https://raw.githubusercontent.com/Concept211/Google-Maps-Markers/master/images/marker_black.png'\n      });\n      ac.push(marker);\n      marker.addListener('click', this.eventHandler.clickMarker.bind(null, marker, place));\n    }\n\n    return ac;\n  }.bind(this), this.searchingMarkers);\n};\n/***\r\n *\r\n * @param {string} placeId\r\n * @param {boolean=} panTo\r\n */\n\n\nLocationPicker.prototype.selectPlaceId = function (placeId, panTo) {\n  if (arguments.length === 1) panTo = true;\n  return new Promise(function (resolve) {\n    this.placeService.getDetails({\n      placeId: placeId,\n      fields: [\"name\", \"formatted_address\", \"place_id\", \"geometry\"]\n    }, function (place, status) {\n      if (status === google.maps.places.PlacesServiceStatus.OK && place && place.geometry && place.geometry.location) {\n        this.selectPlace(place, panTo);\n        resolve(true);\n      } else {\n        resolve(false);\n      }\n    }.bind(this));\n  }.bind(this));\n};\n/***\r\n *\r\n * @param latLng\r\n * @param {boolean=} panTo\r\n */\n\n\nLocationPicker.prototype.selectLocation = function (latLng, panTo) {\n  var _this2 = this;\n\n  if (arguments.length === 1) panTo = true;\n  if (arguments.length === 1) panTo = true;\n\n  if (this.selectedMarker) {\n    this.selectedMarker.setMap(null);\n  }\n\n  this.$okBtn.disabled = !latLng;\n  this.selectedPlace = null;\n  if (!latLng) return;\n  this.selectedPlace = {\n    geometry: {\n      location: latLng\n    }\n  };\n  var zoom = 18;\n\n  if (panTo) {\n    this.map.setZoom(zoom);\n    setTimeout(function () {\n      _this2.map.panTo(latLng);\n    }, 100);\n  }\n\n  this.selectedMarker = new google.maps.Marker({\n    map: this.map,\n    position: latLng\n  }); // this.infoWindow.open(this.map, this.selectedMarker);\n\n  /*\r\n  return this.geocoder\r\n      .geocode({ location: latLng })\r\n      .then(function (response) {\r\n          if (response.results[0]) {\r\n              return this.selectPlaceId(response.results[0].place_id, panTo);\r\n          }\r\n          else {\r\n              return false;\r\n          }\r\n      }.bind(this))\r\n      .catch(function (e) {\r\n          safeThrow(e);\r\n          return false;\r\n      });\r\n     */\n};\n\nLocationPicker.prototype.watchMyLocation = function (location, position) {\n  if (this.myLocationMarker) return;\n  this.accuracyCircle = new google.maps.Circle({\n    strokeColor: \"#1988c3\",\n    strokeOpacity: 0.4,\n    strokeWeight: 2,\n    fillColor: \"#1988c3\",\n    fillOpacity: 0.2,\n    radius: 100,\n    map: this.map\n  });\n  this.myLocationMarker = new google.maps.Marker({\n    position: location,\n    sName: \"My Location\",\n    map: this.map,\n    icon: {\n      path: google.maps.SymbolPath.CIRCLE,\n      scale: 10,\n      fillColor: \"rgb(22, 118, 230)\",\n      fillOpacity: 1,\n      strokeWeight: 3,\n      strokeColor: 'white'\n    }\n  });\n\n  if (position && position.coords) {\n    this.accuracyCircle.setRadius(position.coords.accuracy); // Snackbar.show('Accuracy: ' + position.coords.accuracy.toFixed(1) + '(m)');\n  }\n\n  var id;\n\n  if (navigator.geolocation.watchPosition && navigator.geolocation.watchPosition) {\n    id = navigator.geolocation.watchPosition(function (props) {\n      if (!this.isDescendantOf(document.body)) {\n        navigator.geolocation.clearWatch(id);\n      }\n\n      this.emit('location_now', {\n        location: props.coords\n      });\n      this.myLocationMarker.setPosition(new google.maps.LatLng(props.coords.latitude, props.coords.longitude));\n      this.accuracyCircle.setCenter(new google.maps.LatLng(props.coords.latitude, props.coords.longitude));\n      this.accuracyCircle.setRadius(props.coords.accuracy); // Snackbar.show('Sai số tọa độ: ' + props.coords.accuracy.toFixed(1) + ' mét');\n    }.bind(this), function () {}, {\n      enableHighAccuracy: false,\n      timeout: 5000,\n      maximumAge: 0\n    });\n  }\n};\n\nLocationPicker.prototype.selectMyLocation = function () {\n  var _this3 = this;\n\n  var id = (0, _stringGenerate.randomIdent)();\n  this.emit('requestlocation', {\n    id: id\n  });\n\n  if (navigator.geolocation) {\n    var to = setTimeout(function () {\n      _this3.emit('error', Object.assign(new Error(\"GPS không phản hồi!\"), {\n        id: id\n      }));\n    }, 10000);\n    navigator.geolocation.getCurrentPosition(function (position) {\n      clearTimeout(to);\n      var location = null;\n\n      if (position && position.coords) {\n        _this3.emit('location', {\n          location: position.coords,\n          id: id\n        });\n\n        location = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);\n      }\n\n      if (location) {\n        _this3.watchMyLocation(location, position);\n\n        if (!_this3.readOnly) _this3.selectLocation(location);else {\n          _this3.map.setCenter(location);\n        }\n      }\n    }, function (err) {\n      clearTimeout(to);\n      if (err && err.message.indexOf('denied') >= 0) err = Object.assign(new Error(\"Yêu cầu lấy tọa độ bị từ chối!\"), {\n        id: id\n      });\n\n      _this3.emit('error', err);\n    }, {\n      maximumAge: Infinity\n    });\n  }\n};\n\nLocationPicker.property = {};\nLocationPicker.property.zoom = {\n  set: function set(value) {\n    if (!(0, _utils.isRealNumber)(value)) {\n      value = 1;\n    }\n\n    this.map.setZoom(value);\n  },\n  get: function get() {\n    return this.map.getZoom();\n  }\n};\nLocationPicker.property.center = {\n  set: function set(value) {\n    value = value || null;\n    var latlng = null;\n\n    if (value instanceof google.maps.LatLng) {\n      latlng = value;\n    } else if (value && (0, _utils.isRealNumber)(value.latitude) && (0, _utils.isRealNumber)(value.longitude)) {\n      latlng = new google.maps.LatLng(value.latitude, value.longitude);\n    } else if (value instanceof Array && (0, _utils.isRealNumber)(value[0]) && (0, _utils.isRealNumber)(value[1])) {\n      latlng = new google.maps.LatLng(value[0], value[1]);\n    }\n\n    latlng = latlng || new google.maps.LatLng(21.018755, 105.839729);\n    this.map.setCenter(latlng || new google.maps.LatLng(21.018755, 105.839729));\n  },\n  get: function get() {\n    return this.map.getCenter();\n  }\n};\nLocationPicker.property.readOnly = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-read-only');\n    } else {\n      this.removeClass('as-read-only');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-read-only');\n  }\n};\n/***\r\n *\r\n * @type {{}}\r\n * @memberOf LocationPicker#\r\n */\n\nLocationPicker.eventHandler = {};\n/***\r\n * @this LocationPicker\r\n */\n\nLocationPicker.eventHandler.searchKeypress = function (event) {\n  if (event.key === 'Enter') setTimeout(function () {\n    if (!this.$searchInput.selectedItem) {\n      this.eventHandler.search();\n    }\n  }.bind(this), 100);\n};\n\nLocationPicker.eventHandler.searchChange = function () {\n  var item = this.$searchInput.selectedItem;\n  if (!item) return;\n  this.placeService.getDetails({\n    placeId: item.place_id,\n    fields: [\"name\", \"formatted_address\", \"place_id\", \"geometry\"]\n  }, function (place, status) {\n    if (status === google.maps.places.PlacesServiceStatus.OK && place && place.geometry && place.geometry.location) {\n      this.selectPlace(place);\n    }\n  }.bind(this));\n};\n/***\r\n * @this LocationPicker\r\n */\n\n\nLocationPicker.eventHandler.search = function () {\n  var request = {\n    bounds: this.map.getBounds(),\n    query: this.$searchInput.value\n  };\n  this.placeService.textSearch(request, function callback(results, status) {\n    if (status === google.maps.places.PlacesServiceStatus.OK) {\n      this.showSearchPlaces(results);\n    }\n  }.bind(this));\n};\n\nLocationPicker.eventHandler.clickMarker = function (marker, place) {\n  if (this.readOnly) return;\n  this.selectPlace(place, false);\n};\n\nLocationPicker.eventHandler.clickMap = function (event) {\n  if (this.readOnly) return;\n\n  if (event.placeId) {\n    this.selectPlaceId(event.placeId);\n  } else if (event.latLng) {\n    this.selectLocation(event.latLng, false);\n  }\n};\n\nLocationPicker.eventHandler.clickAction = function (action, event) {\n  this.emit('action', {\n    type: 'action',\n    action: action,\n    originalEvent: event,\n    target: this\n  }, this);\n};\n\n_ACore[\"default\"].install(LocationPicker);\n\nvar _default = LocationPicker;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/LocationPicker.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/LocationView.js":
/*!*****************************************************!*\
  !*** ./node_modules/absol-acomp/js/LocationView.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _DomSignal = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/DomSignal */ \"./node_modules/absol/src/HTML5/DomSignal.js\"));\n\nvar _stringGenerate = __webpack_require__(/*! absol/src/String/stringGenerate */ \"./node_modules/absol/src/String/stringGenerate.js\");\n\nvar _Color = _interopRequireDefault(__webpack_require__(/*! absol/src/Color/Color */ \"./node_modules/absol/src/Color/Color.js\"));\n\nvar _MarkerClusterer = _interopRequireDefault(__webpack_require__(/*! ./MarkerClusterer */ \"./node_modules/absol-acomp/js/MarkerClusterer.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar MARKER_RADIUS = 10;\nvar MARKER_BORDER_COLOR = '#4945C8';\n\nfunction generateColor(id) {\n  id = id + '';\n  var rgb = [0, 0, 0];\n  var res;\n\n  var white = _Color[\"default\"].parse('white');\n\n  var c = 100;\n\n  while (c--) {\n    for (var i = 0; i < id.length; ++i) {\n      rgb[i % 3] = (rgb[i % 3] * 31 + id.charCodeAt(i) * 173) % 255;\n    }\n\n    res = new _Color[\"default\"]([rgb[0] / 255, rgb[1] / 255, rgb[2] / 255, 1]);\n\n    if (res.getContrastWith(white) > 2 && rgb[0] + rgb[1] + rgb[2] > 50) {\n      break;\n    }\n  }\n\n  return res;\n} // https://lab.daithangminh.vn/home_co/carddone/markerclusterer.js\n\n\nvar loadMarkerClustererSync = null;\nvar lastOpenInfo = null;\n/***\r\n *\r\n * @param {LocationView} viewerElt\r\n * @param {Object} data\r\n * @constructor\r\n */\n\nfunction LVPolyline(viewerElt, data) {\n  this.viewerElt = viewerElt;\n  this.map = viewerElt.map;\n  this._polylines = [];\n  this.id = data.id || (0, _stringGenerate.randomIdent)(12);\n  this.polylineData = {\n    geodesic: true,\n    strokeColor: data.color || generateColor(this.id).toString('hex6'),\n    strokeOpacity: 1.0,\n    strokeWeight: 2\n  };\n  this.polylineData.path = data.path.map(function (crd) {\n    return (0, _utils.implicitLatLng)(crd);\n  });\n  this.polylineHL = new google.maps.Polyline(Object.assign({}, this.polylineData, {\n    strokeColor: 'white',\n    strokeWeight: 5\n  }));\n  this.polyline = new google.maps.Polyline(this.polylineData);\n  this.markers = this.polylineData.path.map(function (crd, i) {\n    var mkr = new google.maps.Marker({\n      position: crd,\n      // sName: data.name || data.id || this.id,\n      map: this.map,\n      icon: {\n        path: google.maps.SymbolPath.CIRCLE,\n        scale: MARKER_RADIUS,\n        fillColor: this.polylineData.strokeColor,\n        fillOpacity: 1,\n        strokeWeight: 2,\n        strokeColor: MARKER_BORDER_COLOR\n      }\n    });\n    mkr.setMap(this.map);\n    var infoWindow;\n\n    if (data.path[i] && data.path[i].info) {\n      infoWindow = new google.maps.InfoWindow(data.path[i].info);\n      mkr.addListener('mouseover', function () {\n        if (lastOpenInfo === infoWindow) return;\n\n        try {\n          if (lastOpenInfo) lastOpenInfo.close();\n        } catch (e) {}\n\n        lastOpenInfo = infoWindow;\n        infoWindow.open({\n          anchor: mkr,\n          map: this.map,\n          shouldFocus: true\n        });\n      }.bind(this));\n    }\n\n    return mkr;\n  }.bind(this));\n  this.showRoute = viewerElt.showPolylineRoute;\n}\n\nLVPolyline.prototype.remove = function () {\n  this.polyline.setMap(null);\n  this.polylineHL.setMap(null);\n  this.markers.forEach(function (mk) {\n    mk.setMap(null);\n  });\n};\n\nObject.defineProperty(LVPolyline.prototype, 'showRoute', {\n  set: function set(value) {\n    this._showRoute = !!value;\n\n    if (value) {\n      this.polylineHL.setMap(this.map);\n      this.polyline.setMap(this.map);\n    } else {\n      this.polylineHL.setMap(null);\n      this.polyline.setMap(null);\n    }\n  },\n  get: function get() {\n    return this._showRoute;\n  }\n});\nObject.defineProperty(LVPolyline.prototype, 'color', {\n  get: function get() {\n    return this.polylineData.strokeColor;\n  }\n});\nObject.defineProperty(LVPolyline.prototype, 'sumDistance', {\n  get: function get() {\n    var res = 0;\n    var path = this.polylineData.path;\n\n    for (var i = 1; i < path.length; ++i) {\n      res += (0, _utils.latLngDistance)(path[i - 1], path[i]);\n    }\n\n    return res;\n  }\n});\n\nfunction LVPoints(viewerElt, data) {\n  this.data = data;\n  this.refData = [data];\n  this.id = data.id || (0, _stringGenerate.randomIdent)(12);\n  this.latLng = (0, _utils.implicitLatLng)(data);\n\n  if (!this.latLng) {\n    console.error('Invalid data', data);\n    return;\n  }\n\n  this.map = viewerElt.map;\n  this.marker = new google.maps.Marker({\n    position: this.latLng,\n    // sName: data.name || data.id || this.id,\n    // map: this.map,\n    icon: {\n      path: google.maps.SymbolPath.CIRCLE,\n      scale: MARKER_RADIUS,\n      fillColor: data.color || generateColor(this.id).toString(),\n      fillOpacity: 1,\n      strokeWeight: 2,\n      strokeColor: MARKER_BORDER_COLOR\n    }\n  }); // this.marker.setMap(this.map);\n\n  if (!data.info) return;\n  var infoWindow = new google.maps.InfoWindow(data.info);\n  this.marker.addListener('mouseover', function () {\n    if (lastOpenInfo === infoWindow) return;\n\n    try {\n      if (lastOpenInfo) lastOpenInfo.close();\n    } catch (e) {}\n\n    lastOpenInfo = infoWindow;\n    infoWindow.open({\n      anchor: this.marker,\n      map: this.map,\n      shouldFocus: true\n    });\n  }.bind(this));\n}\n\nLVPoints.prototype.remove = function () {\n  if (this.marker) this.marker.setMap(null);\n};\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\n\nfunction LocationView() {\n  this.map = new google.maps.Map(this, {\n    zoom: 8,\n    center: new google.maps.LatLng(21.018755, 105.839729)\n  });\n  this.marker = null;\n  this._value = null;\n  this.$domSignal = (0, _ACore._)('attachhook').addTo(this);\n  this.domSignal = new _DomSignal[\"default\"](this.$domSignal);\n  /***\r\n   * @type {LatLng}\r\n   * @name value\r\n   * @memberOf LocationView#\r\n   */\n\n  /****\r\n   *\r\n   * @type {LVPolyline[]}\r\n   */\n\n  this.$polylines = [];\n  this._showPolylineRoute = true;\n  /****\r\n   *\r\n   * @type {LVPoints[]}\r\n   */\n\n  this.$points = [];\n}\n\nLocationView.tag = 'LocationView'.toLowerCase();\n\nLocationView.render = function () {\n  return (0, _ACore._)({\n    \"class\": 'as-location-view'\n  });\n};\n\nLocationView.prototype.getPolylineById = function (id) {\n  return this.$polylines.find(function (pll) {\n    return pll.id === id;\n  }) || null;\n};\n\nLocationView.prototype.getPolylines = function () {\n  return this.$polylines.slice();\n};\n\nLocationView.property = {};\nLocationView.property.zoom = {\n  set: function set(value) {\n    if (!(0, _utils.isRealNumber)(value)) {\n      value = 1;\n    }\n\n    this.map.setZoom(value);\n  },\n  get: function get() {\n    return this.map.getZoom();\n  }\n};\nLocationView.property.value = {\n  set: function set(value) {\n    value = value || null;\n    var latlng = (0, _utils.implicitLatLng)(value);\n    latlng = latlng || new google.maps.LatLng(21.018755, 105.839729);\n    this.map.setCenter(latlng || new google.maps.LatLng(21.018755, 105.839729));\n    this._value = value;\n\n    if (this.marker) {\n      this.marker.setMap(null);\n      this.marker = null;\n    }\n\n    if (latlng && value) {\n      this.marker = new google.maps.Marker({\n        map: this.map,\n        position: latlng\n      });\n    }\n  },\n  get: function get() {\n    return this._value;\n  }\n};\nLocationView.property.polylines = {\n  set: function set(polylines) {\n    this._polylines = polylines || [];\n    this.$polylines.forEach(function (pll) {\n      pll.remove();\n    });\n    this.$polylines = polylines.map(function (pll) {\n      return new LVPolyline(this, pll);\n    }.bind(this));\n    var zoom;\n    var center;\n    var points = this.$polylines.reduce(function (ac, $polyline) {\n      return ac.concat($polyline.polylineData.path);\n    }, []);\n    var bounds = points.reduce(function (ac, cr) {\n      ac.extend(cr);\n      return ac;\n    }, new google.maps.LatLngBounds());\n    this.domSignal.once('update_view', function () {\n      if (points.length > 1) {\n        zoom = (0, _utils.getMapZoomLevel)(this.getBoundingClientRect(), bounds);\n        center = bounds.getCenter();\n      } else {\n        zoom = 17;\n        center = points[0] || new google.maps.LatLng(21.018755, 105.839729);\n      }\n\n      zoom = Math.min(zoom, 17);\n      this.map.setZoom(zoom);\n      this.map.setCenter(center);\n    }.bind(this), 100);\n    this.domSignal.emit('update_view');\n  },\n  get: function get() {\n    return this._polylines;\n  }\n};\nLocationView.property.showPolylineRoute = {\n  set: function set(value) {\n    this._showPolylineRoute = !!value;\n    this.$polylines.forEach(function (pll) {\n      pll.showRoute = value;\n    });\n  },\n  get: function get() {\n    return this._showPolylineRoute;\n  }\n};\nLocationView.property.points = {\n  set: function set(points) {\n    this.$points.forEach(function (point) {\n      point.remove();\n    });\n    this._points = points || [];\n\n    var rp = this._points.reduce(function (ac, pointData) {\n      var id = pointData.id;\n      var point;\n\n      if (id && ac.dict[id]) {\n        ac.dict[id].refData.push(pointData);\n      } else {\n        point = new LVPoints(this, pointData);\n        ac.dict[point.id] = point;\n        ac.arr.push(point);\n      }\n\n      return ac;\n    }.bind(this), {\n      arr: [],\n      dict: {}\n    });\n\n    this.$points = rp.arr;\n    var zoom;\n    var center;\n    var latLngs = this.$points.map(function (p) {\n      return p.latLng;\n    }, []).filter(function (x) {\n      return !!x;\n    });\n    var bounds = latLngs.reduce(function (ac, cr) {\n      ac.extend(cr);\n      return ac;\n    }, new google.maps.LatLngBounds());\n    var markers = this.$points.map(function (p) {\n      return p.marker;\n    }, []).filter(function (x) {\n      return !!x;\n    });\n    this.pointsCluster = new _MarkerClusterer[\"default\"](this.map, markers, {\n      imagePath: 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m'\n    });\n    this.domSignal.once('update_view', function () {\n      if (points.length > 1) {\n        zoom = (0, _utils.getMapZoomLevel)(this.getBoundingClientRect(), bounds);\n        center = bounds.getCenter();\n      } else {\n        zoom = 17;\n        center = points[0] || new google.maps.LatLng(21.018755, 105.839729);\n      }\n\n      zoom = Math.min(zoom, 17);\n      this.map.setZoom(zoom);\n      this.map.setCenter(center);\n    }.bind(this), 100);\n    this.domSignal.emit('update_view');\n  },\n  get: function get() {\n    return this._points;\n  }\n};\n\n_ACore[\"default\"].install(LocationView);\n\nvar _default = LocationView;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/LocationView.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/MKNavigator.js":
/*!****************************************************!*\
  !*** ./node_modules/absol-acomp/js/MKNavigator.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\n__webpack_require__(/*! ../css/mknavigator.css */ \"./node_modules/absol-acomp/css/mknavigator.css\");\n\nvar _BoardTable = _interopRequireDefault(__webpack_require__(/*! ./BoardTable */ \"./node_modules/absol-acomp/js/BoardTable.js\"));\n\nvar _MKNavigatorItem = _interopRequireDefault(__webpack_require__(/*! ./MKNavigatorItem */ \"./node_modules/absol-acomp/js/MKNavigatorItem.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @typedef MKNavigatorItemData\r\n * @property {string} text\r\n * @property {string|number} value\r\n * @property {boolean|number=} checked\r\n */\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction MKNavigator() {\n  this._items = [];\n  this._value = 0;\n  this._hiddenValues = [];\n  this.$itemByValue = {};\n  this.$header = (0, _ACore.$)('.mk-nav-header', this);\n  this.$body = (0, _ACore.$)('.mk-nav-body', this).on('orderchange', this.eventHandler.bodyOrderChange).on('dragitemstart', this.eventHandler.dragItemStart);\n  this.$footer = (0, _ACore.$)('.mk-nav-footer', this);\n  /***\r\n   * @type {MKNavigatorItemData[]}\r\n   * @name item\r\n   * @memberOf MKNavigator#\r\n   */\n\n  /***\r\n   * @type {number[]}\r\n   * @name order\r\n   * @memberOf MKNavigator#\r\n   */\n}\n\nMKNavigator.tag = 'MKNavigator'.toLowerCase();\n\nMKNavigator.render = function () {\n  return (0, _ACore._)({\n    \"class\": 'mk-nav',\n    extendEvent: ['orderchange', 'checkedchange', 'press'],\n    child: [{\n      \"class\": 'mk-nav-header'\n    }, {\n      tag: _BoardTable[\"default\"].tag,\n      \"class\": 'mk-nav-body'\n    }, {\n      \"class\": 'mk-nav-footer'\n    }]\n  });\n};\n\nMKNavigator.prototype.updateValue = function () {\n  var _this = this;\n\n  var value = this._value;\n\n  for (var iValue in this.$itemByValue) {\n    if (iValue + '' !== value + '') {\n      this.$itemByValue[iValue].removeClass('mk-current');\n    }\n  }\n\n  var order = this.order;\n\n  if (this.$itemByValue[value]) {\n    this.$itemByValue[value].addClass('mk-current');\n  } else if (order.length > 0) {\n    this.$itemByValue[order[0]].addClass('mk-current');\n  }\n\n  var idx = order.filter(function (value) {\n    return !_this.$itemByValue[value].hasClass('as-hidden');\n  }).indexOf(value);\n\n  if (idx >= 0) {\n    this.addStyle('--mk-nav-line-top', \"calc(\".concat(2 * idx, \"em + \").concat(12 * idx, \"px)\"));\n  } else {\n    this.removeStyle('--mk-nav-line-top');\n  }\n};\n\nMKNavigator.prototype.setTextOfItem = function (value, text) {\n  var itemElt = this.$itemByValue[value];\n  if (!itemElt) return;\n  itemElt.data.text = text;\n  itemElt.updateText();\n};\n\nMKNavigator.prototype.mkItem = function (data) {\n  var self = this;\n  return (0, _ACore._)({\n    tag: _MKNavigatorItem[\"default\"].tag,\n    attr: {\n      \"data-value\": data && data.value\n    },\n    props: {\n      data: data\n    },\n    on: {\n      checkedchange: function checkedchange(event) {\n        self.emit('checkedchange', {\n          type: 'checkedchange',\n          target: this,\n          originalEvent: event.originalEvent,\n          itemData: data,\n          checked: data.checked\n        }, self);\n      },\n      press: function press(event) {\n        self.value = data.value;\n        self.emit('press', {\n          type: 'press',\n          itemElt: this,\n          itemData: data,\n          value: data.value,\n          target: this,\n          originalEvent: event.originalEvent\n        }, self);\n      }\n    }\n  });\n};\n\nMKNavigator.prototype._updateHiddenValues = function () {\n  var _this2 = this;\n\n  var hiddenDict = this._hiddenValues.reduce(function (ac, x) {\n    ac[x] = true;\n    return ac;\n  }, {});\n\n  Object.keys(this.$itemByValue).forEach(function (value) {\n    if (hiddenDict[value]) {\n      _this2.$itemByValue[value].addClass('as-hidden');\n    } else {\n      _this2.$itemByValue[value].removeClass('as-hidden');\n    }\n  });\n};\n\nMKNavigator.property = {};\nMKNavigator.property.items = {\n  /***\r\n   * @this MKNavigator\r\n   * @param items\r\n   */\n  set: function set(items) {\n    items = items || [];\n    this._items = items;\n    this.$itemByValue = {};\n    var i = 0;\n    var item;\n    var itemElt;\n    this.$header.clearChild();\n    this.$body.clearChild();\n    this.$footer.clearChild();\n    var draggable = false;\n\n    while (i < items.length) {\n      if (items[i].draggable) break;\n      item = items[i];\n      itemElt = this.mkItem(item);\n      this.$itemByValue[item.value] = itemElt;\n      this.$header.addChild(itemElt);\n      ++i;\n    }\n\n    while (i < items.length) {\n      if (!items[i].draggable) break;\n      draggable = true;\n      item = items[i];\n      itemElt = this.mkItem(item);\n      this.$itemByValue[item.value] = itemElt;\n      this.$body.addChild(itemElt);\n      ++i;\n    }\n\n    while (i < items.length) {\n      item = items[i];\n      itemElt = this.mkItem(item);\n      this.$itemByValue[item.value] = itemElt;\n      this.$footer.addChild(itemElt);\n      ++i;\n    }\n\n    if (draggable) {\n      this.addClass('mk-has-draggable');\n    } else {\n      this.removeClass('mk-has-draggable');\n    }\n\n    this._updateHiddenValues();\n  },\n  get: function get() {\n    return this._items;\n  }\n};\nMKNavigator.property.order = {\n  get: function get() {\n    return (0, _ACore.$$)(_MKNavigatorItem[\"default\"].tag, this).map(function (e) {\n      return e.data.value;\n    });\n  }\n};\nMKNavigator.property.value = {\n  set: function set(value) {\n    this._value = value;\n    this.updateValue();\n  },\n  get: function get() {\n    if (this.$itemByValue[this._value]) return this._value;\n    if (this._items.length > 0) return this._items[0];\n    return this._value;\n  }\n};\nMKNavigator.property.hiddenValues = {\n  set: function set(values) {\n    values = values || [];\n    if (!(values instanceof Array)) values = [];\n    this._hiddenValues = values;\n\n    this._updateHiddenValues();\n\n    this.updateValue();\n  },\n  get: function get() {\n    return this._hiddenValues;\n  }\n};\n/***\r\n * @memberOf MKNavigator#\r\n * @type {{}}\r\n */\n\nMKNavigator.eventHandler = {};\n\nMKNavigator.eventHandler.bodyOrderChange = function (event) {\n  this.updateValue();\n\n  this._items.splice(0, this._items.length);\n\n  (0, _ACore.$$)(_MKNavigatorItem[\"default\"].tag, this).reduce(function (ac, cr) {\n    ac.push(cr.data);\n    return ac;\n  }, this._items);\n  this.emit('orderchange', {\n    type: 'orderchange',\n    target: this\n  }, this);\n};\n/***\r\n * @memberOf MKNavigator#\r\n * @type {{}}\r\n */\n\n\nMKNavigator.eventHandler.dragItemStart = function (event) {\n  var bound = this.getBoundingClientRect();\n  this.addStyle('--mk-navigator-bound-left', bound.left + 'px');\n};\n\n_ACore[\"default\"].install(MKNavigator);\n\nvar _default = MKNavigator;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/MKNavigator.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/MKNavigatorItem.js":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/js/MKNavigatorItem.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\n__webpack_require__(/*! ../css/mknavigator.css */ \"./node_modules/absol-acomp/css/mknavigator.css\");\n\nvar _BoardTable = _interopRequireDefault(__webpack_require__(/*! ./BoardTable */ \"./node_modules/absol-acomp/js/BoardTable.js\"));\n\nvar _Switch = _interopRequireDefault(__webpack_require__(/*! ./Switch */ \"./node_modules/absol-acomp/js/Switch.js\"));\n\nvar _Board = _interopRequireDefault(__webpack_require__(/*! ./Board */ \"./node_modules/absol-acomp/js/Board.js\"));\n\nvar _EventEmitter = __webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction MKNavigatorItem() {\n  this._data = [];\n  this.$text = (0, _ACore.$)('.mk-nav-item-text', this);\n  this.$switchCtn = (0, _ACore.$)('.mk-nav-item-switch-ctn', this);\n  this.$switch = (0, _ACore.$)('switch', this).on('change', this.eventHandler.switchChange);\n  this.$dragzone = (0, _ACore.$)('.mk-nav-item-drag-zone', this);\n  this.on('click', this.eventHandler.click);\n}\n\nMKNavigatorItem.tag = 'MKNavigatorItem'.toLowerCase();\n\nMKNavigatorItem.render = function () {\n  return (0, _ACore._)({\n    tag: _Board[\"default\"].tag,\n    \"class\": 'mk-nav-item',\n    extendEvent: ['checkedchange', 'press'],\n    child: [{\n      \"class\": ['mk-nav-item-drag-zone', _BoardTable[\"default\"].DRAG_ZONE_CLASS_NAME],\n      child: '<i class=\"material-icons\">drag_indicator</i>'\n    }, {\n      \"class\": 'mk-nav-item-text-ctn',\n      child: {\n        tag: 'span',\n        \"class\": 'mk-nav-item-text',\n        child: {\n          text: ''\n        }\n      }\n    }, {\n      \"class\": 'mk-nav-item-switch-ctn',\n      child: {\n        tag: _Switch[\"default\"].tag\n      }\n    }]\n  });\n};\n\nMKNavigatorItem.prototype.updateText = function () {\n  this.$text.firstChild.data = this._data.text;\n};\n\nMKNavigatorItem.prototype.updateChecked = function () {\n  if (typeof this._data.checked === \"boolean\") {\n    this.$switchCtn.removeStyle('display');\n    this.$switch.checked = this._data.checked;\n  } else {\n    this.$switchCtn.addStyle('display', 'none');\n  }\n};\n\nMKNavigatorItem.prototype.updateDraggable = function () {\n  if (this._data.draggable) {\n    this.$dragzone.removeStyle('display');\n  } else {\n    this.$dragzone.addStyle('display', 'none');\n  }\n};\n\nMKNavigatorItem.property = {};\nMKNavigatorItem.property.data = {\n  /**\r\n   * @this MKNavigatorItem\r\n   * @param data\r\n   */\n  set: function set(data) {\n    data = data || {};\n    this._data = data;\n    this.updateText();\n    this.updateChecked();\n    this.updateDraggable();\n  },\n  get: function get() {\n    return this._data;\n  }\n};\n/***\r\n * @memberOf MKNavigatorItem#\r\n * @type {{}}\r\n */\n\nMKNavigatorItem.eventHandler = {};\n\nMKNavigatorItem.eventHandler.switchChange = function (event) {\n  this._data.checked = this.$switch.checked;\n  this.emit('checkedchange', {\n    type: 'checkedchange'\n  }, this);\n};\n\nMKNavigatorItem.eventHandler.click = function (event) {\n  if ((0, _EventEmitter.hitElement)(this.$switch, event) || (0, _EventEmitter.hitElement)(this.$dragzone, event)) return;\n  this.emit('press', {\n    type: 'press',\n    target: this,\n    originalEvent: event\n  }, this);\n};\n\n_ACore[\"default\"].install(MKNavigatorItem);\n\nvar _default = MKNavigatorItem;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/MKNavigatorItem.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/MarkerClusterer.js":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/js/MarkerClusterer.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/**\r\n * @name MarkerClustererPlus for Google Maps V3\r\n * @version 2.1.1 [November 4, 2013]\r\n * @author Gary Little\r\n * @fileoverview\r\n * The library creates and manages per-zoom-level clusters for large amounts of markers.\r\n * <p>\r\n * This is an enhanced V3 implementation of the\r\n * <a href=\"http://gmaps-utility-library-dev.googlecode.com/svn/tags/markerclusterer/\"\r\n * >V2 MarkerClusterer</a> by Xiaoxi Wu. It is based on the\r\n * <a href=\"http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerclusterer/\"\r\n * >V3 MarkerClusterer</a> port by Luke Mahe. MarkerClustererPlus was created by Gary Little.\r\n * <p>\r\n * v2.0 release: MarkerClustererPlus v2.0 is backward compatible with MarkerClusterer v1.0. It\r\n *  adds support for the <code>ignoreHidden</code>, <code>title</code>, <code>batchSizeIE</code>,\r\n *  and <code>calculator</code> properties as well as support for four more events. It also allows\r\n *  greater control over the styling of the text that appears on the cluster marker. The\r\n *  documentation has been significantly improved and the overall code has been simplified and\r\n *  polished. Very large numbers of markers can now be managed without causing Javascript timeout\r\n *  errors on Internet Explorer. Note that the name of the <code>clusterclick</code> event has been\r\n *  deprecated. The new name is <code>click</code>, so please change your application code now.\r\n */\n\n/**\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n *     http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n/**\r\n * @name ClusterIconStyle\r\n * @class This class represents the object for values in the <code>styles</code> array passed\r\n *  to the {@link MarkerClusterer} constructor. The element in this array that is used to\r\n *  style the cluster icon is determined by calling the <code>calculator</code> function.\r\n *\r\n * @property {string} url The URL of the cluster icon image file. Required.\r\n * @property {number} height The display height (in pixels) of the cluster icon. Required.\r\n * @property {number} width The display width (in pixels) of the cluster icon. Required.\r\n * @property {Array} [anchorText] The position (in pixels) from the center of the cluster icon to\r\n *  where the text label is to be centered and drawn. The format is <code>[yoffset, xoffset]</code>\r\n *  where <code>yoffset</code> increases as you go down from center and <code>xoffset</code>\r\n *  increases to the right of center. The default is <code>[0, 0]</code>.\r\n * @property {Array} [anchorIcon] The anchor position (in pixels) of the cluster icon. This is the\r\n *  spot on the cluster icon that is to be aligned with the cluster position. The format is\r\n *  <code>[yoffset, xoffset]</code> where <code>yoffset</code> increases as you go down and\r\n *  <code>xoffset</code> increases to the right of the top-left corner of the icon. The default\r\n *  anchor position is the center of the cluster icon.\r\n * @property {string} [textColor=\"black\"] The color of the label text shown on the\r\n *  cluster icon.\r\n * @property {number} [textSize=11] The size (in pixels) of the label text shown on the\r\n *  cluster icon.\r\n * @property {string} [textDecoration=\"none\"] The value of the CSS <code>text-decoration</code>\r\n *  property for the label text shown on the cluster icon.\r\n * @property {string} [fontWeight=\"bold\"] The value of the CSS <code>font-weight</code>\r\n *  property for the label text shown on the cluster icon.\r\n * @property {string} [fontStyle=\"normal\"] The value of the CSS <code>font-style</code>\r\n *  property for the label text shown on the cluster icon.\r\n * @property {string} [fontFamily=\"Arial,sans-serif\"] The value of the CSS <code>font-family</code>\r\n *  property for the label text shown on the cluster icon.\r\n * @property {string} [backgroundPosition=\"0 0\"] The position of the cluster icon image\r\n *  within the image defined by <code>url</code>. The format is <code>\"xpos ypos\"</code>\r\n *  (the same format as for the CSS <code>background-position</code> property). You must set\r\n *  this property appropriately when the image defined by <code>url</code> represents a sprite\r\n *  containing multiple images. Note that the position <i>must</i> be specified in px units.\r\n */\n\n/**\r\n * @name ClusterIconInfo\r\n * @class This class is an object containing general information about a cluster icon. This is\r\n *  the object that a <code>calculator</code> function returns.\r\n *\r\n * @property {string} text The text of the label to be shown on the cluster icon.\r\n * @property {number} index The index plus 1 of the element in the <code>styles</code>\r\n *  array to be used to style the cluster icon.\r\n * @property {string} title The tooltip to display when the mouse moves over the cluster icon.\r\n *  If this value is <code>undefined</code> or <code>\"\"</code>, <code>title</code> is set to the\r\n *  value of the <code>title</code> property passed to the MarkerClusterer.\r\n */\n\n/**\r\n * A cluster icon.\r\n *\r\n * @constructor\r\n * @extends google.maps.OverlayView\r\n * @param {Cluster} cluster The cluster with which the icon is to be associated.\r\n * @param {Array} [styles] An array of {@link ClusterIconStyle} defining the cluster icons\r\n *  to use for various cluster sizes.\r\n * @private\r\n */\nfunction ClusterIcon(cluster, styles) {\n  cluster.getMarkerClusterer().extend(ClusterIcon, google.maps.OverlayView);\n  this.cluster_ = cluster;\n  this.className_ = cluster.getMarkerClusterer().getClusterClass();\n  this.styles_ = styles;\n  this.center_ = null;\n  this.div_ = null;\n  this.sums_ = null;\n  this.visible_ = false;\n  this.setMap(cluster.getMap()); // Note: this causes onAdd to be called\n}\n/**\r\n * Adds the icon to the DOM.\r\n */\n\n\nClusterIcon.prototype.onAdd = function () {\n  var cClusterIcon = this;\n  var cMouseDownInCluster;\n  var cDraggingMapByCluster;\n  this.div_ = document.createElement(\"div\");\n  this.div_.className = this.className_;\n\n  if (this.visible_) {\n    this.show();\n  }\n\n  this.getPanes().overlayMouseTarget.appendChild(this.div_); // Fix for Issue 157\n\n  this.boundsChangedListener_ = google.maps.event.addListener(this.getMap(), \"bounds_changed\", function () {\n    cDraggingMapByCluster = cMouseDownInCluster;\n  });\n  this.div_.addEventListener(\"mousedown\", function () {\n    cMouseDownInCluster = true;\n    cDraggingMapByCluster = false;\n  });\n  this.div_.addEventListener(\"click\", function (e) {\n    cMouseDownInCluster = false;\n\n    if (!cDraggingMapByCluster) {\n      var theBounds;\n      var mz;\n      var mc = cClusterIcon.cluster_.getMarkerClusterer();\n      /**\r\n       * This event is fired when a cluster marker is clicked.\r\n       * @name MarkerClusterer#click\r\n       * @param {Cluster} c The cluster that was clicked.\r\n       * @event\r\n       */\n\n      google.maps.event.trigger(mc, \"click\", cClusterIcon.cluster_);\n      google.maps.event.trigger(mc, \"clusterclick\", cClusterIcon.cluster_); // deprecated name\n      // The default click handler follows. Disable it by setting\n      // the zoomOnClick property to false.\n\n      if (mc.getZoomOnClick()) {\n        // Zoom into the cluster.\n        mz = mc.getMaxZoom();\n        theBounds = cClusterIcon.cluster_.getBounds();\n        mc.getMap().fitBounds(theBounds); // There is a fix for Issue 170 here:\n\n        setTimeout(function () {\n          mc.getMap().fitBounds(theBounds); // Don't zoom beyond the max zoom level\n\n          if (mz !== null && mc.getMap().getZoom() > mz) {\n            mc.getMap().setZoom(mz + 1);\n          }\n        }, 100);\n      } // Prevent event propagation to the map:\n\n\n      e.cancelBubble = true;\n\n      if (e.stopPropagation) {\n        e.stopPropagation();\n      }\n    }\n  });\n  this.div_.addEventListener(\"mouseover\", function () {\n    var mc = cClusterIcon.cluster_.getMarkerClusterer();\n    /**\r\n     * This event is fired when the mouse moves over a cluster marker.\r\n     * @name MarkerClusterer#mouseover\r\n     * @param {Cluster} c The cluster that the mouse moved over.\r\n     * @event\r\n     */\n\n    google.maps.event.trigger(mc, \"mouseover\", cClusterIcon.cluster_);\n    google.maps.event.trigger(cClusterIcon.cluster_, \"mouseover\");\n  });\n  this.div_.addEventListener(\"mouseout\", function () {\n    var mc = cClusterIcon.cluster_.getMarkerClusterer();\n    /**\r\n     * This event is fired when the mouse moves out of a cluster marker.\r\n     * @name MarkerClusterer#mouseout\r\n     * @param {Cluster} c The cluster that the mouse moved out of.\r\n     * @event\r\n     */\n\n    google.maps.event.trigger(mc, \"mouseout\", cClusterIcon.cluster_);\n    google.maps.event.trigger(cClusterIcon.cluster_, \"mouseout\");\n  });\n  var mc = this.cluster_.getMarkerClusterer();\n\n  if (mc.markers_.caculateSum !== undefined) {\n    var infowindow = new google.maps.InfoWindow({\n      maxWidth: 350\n    });\n    google.maps.event.addListener(this.cluster_, 'mouseover', function (event) {\n      var tooltip = mc.markers_.caculateSum(this.cluster_.markers_);\n      var content, style;\n\n      if (_typeof(tooltip) == \"object\") {\n        if (tooltip.style) style = tooltip.style;\n        if (tooltip.element) content = tooltip.element;\n      } else content = tooltip;\n\n      if (style !== undefined) infowindow.setOptions(style);\n      infowindow.setContent(content);\n      var info = new google.maps.MVCObject();\n      info.set('position', this.center_);\n      info.set('anchorPoint', new google.maps.Point(0, -12));\n      infowindow.open(mc.map, info);\n    }.bind(this));\n    google.maps.event.addListener(this.cluster_, 'mouseout', function (event) {\n      infowindow.close();\n    }.bind(this));\n    google.maps.event.addListener(mc.map, \"zoom_changed\", function () {\n      infowindow.close();\n    });\n  }\n};\n/**\r\n * Removes the icon from the DOM.\r\n */\n\n\nClusterIcon.prototype.onRemove = function () {\n  if (this.div_ && this.div_.parentNode) {\n    this.hide();\n    google.maps.event.removeListener(this.boundsChangedListener_);\n    google.maps.event.clearInstanceListeners(this.div_);\n    this.div_.parentNode.removeChild(this.div_);\n    this.div_ = null;\n  }\n};\n/**\r\n * Draws the icon.\r\n */\n\n\nClusterIcon.prototype.draw = function () {\n  if (this.visible_) {\n    var pos = this.getPosFromLatLng_(this.center_);\n    this.div_.style.top = pos.y + \"px\";\n    this.div_.style.left = pos.x + \"px\";\n  }\n};\n/**\r\n * Hides the icon.\r\n */\n\n\nClusterIcon.prototype.hide = function () {\n  if (this.div_) {\n    this.div_.style.display = \"none\";\n  }\n\n  this.visible_ = false;\n};\n/**\r\n * Positions and shows the icon.\r\n */\n\n\nClusterIcon.prototype.show = function () {\n  if (this.div_) {\n    var img = \"\"; // NOTE: values must be specified in px units\n\n    var bp = this.backgroundPosition_.split(\" \");\n    var spriteH = parseInt(bp[0].trim(), 10);\n    var spriteV = parseInt(bp[1].trim(), 10);\n    var pos = this.getPosFromLatLng_(this.center_);\n    this.div_.style.cssText = this.createCss(pos);\n    img = \"<img src='\" + this.url_ + \"' style='position: absolute; top: \" + spriteV + \"px; left: \" + spriteH + \"px; \";\n\n    if (!this.cluster_.getMarkerClusterer().enableRetinaIcons_) {\n      img += \"clip: rect(\" + -1 * spriteV + \"px, \" + (-1 * spriteH + this.width_) + \"px, \" + (-1 * spriteV + this.height_) + \"px, \" + -1 * spriteH + \"px);\";\n    } else {\n      img += \"width: \" + this.width_ + \"px;\" + \"height: \" + this.height_ + \"px;\";\n    }\n\n    img += \"'>\";\n    this.div_.innerHTML = img + \"<div style='\" + \"position: absolute;\" + \"top: \" + this.anchorText_[0] + \"px;\" + \"left: \" + this.anchorText_[1] + \"px;\" + \"color: \" + this.textColor_ + \";\" + \"font-size: \" + this.textSize_ + \"px;\" + \"font-family: \" + this.fontFamily_ + \";\" + \"font-weight: \" + this.fontWeight_ + \";\" + \"font-style: \" + this.fontStyle_ + \";\" + \"text-decoration: \" + this.textDecoration_ + \";\" + \"text-align: center;\" + \"width: \" + this.width_ + \"px;\" + \"line-height:\" + this.height_ + \"px;\" + \"'>\" + (this.cluster_.hideLabel_ ? ' ' : this.sums_.text) + \"</div>\";\n\n    if (typeof this.sums_.title === \"undefined\" || this.sums_.title === \"\") {\n      this.div_.title = this.cluster_.getMarkerClusterer().getTitle();\n    } else {\n      this.div_.title = this.sums_.title;\n    }\n\n    this.div_.style.display = \"\";\n  }\n\n  this.visible_ = true;\n};\n/**\r\n * Sets the icon styles to the appropriate element in the styles array.\r\n *\r\n * @param {ClusterIconInfo} sums The icon label text and styles index.\r\n */\n\n\nClusterIcon.prototype.useStyle = function (sums) {\n  this.sums_ = sums;\n  var index = Math.max(0, sums.index - 1);\n  index = Math.min(this.styles_.length - 1, index);\n  var style = this.styles_[index];\n  this.url_ = style.url;\n  this.height_ = style.height;\n  this.width_ = style.width;\n  this.anchorText_ = style.anchorText || [0, 0];\n  this.anchorIcon_ = style.anchorIcon || [parseInt(this.height_ / 2, 10), parseInt(this.width_ / 2, 10)];\n  this.textColor_ = style.textColor || \"black\";\n  this.textSize_ = style.textSize || 11;\n  this.textDecoration_ = style.textDecoration || \"none\";\n  this.fontWeight_ = style.fontWeight || \"bold\";\n  this.fontStyle_ = style.fontStyle || \"normal\";\n  this.fontFamily_ = style.fontFamily || \"Arial,sans-serif\";\n  this.backgroundPosition_ = style.backgroundPosition || \"0 0\";\n};\n/**\r\n * Sets the position at which to center the icon.\r\n *\r\n * @param {google.maps.LatLng} center The latlng to set as the center.\r\n */\n\n\nClusterIcon.prototype.setCenter = function (center) {\n  this.center_ = center;\n};\n/**\r\n * Creates the cssText style parameter based on the position of the icon.\r\n *\r\n * @param {google.maps.Point} pos The position of the icon.\r\n * @return {string} The CSS style text.\r\n */\n\n\nClusterIcon.prototype.createCss = function (pos) {\n  var style = [];\n  style.push(\"cursor: pointer;\");\n  style.push(\"position: absolute; top: \" + pos.y + \"px; left: \" + pos.x + \"px;\");\n  style.push(\"width: \" + this.width_ + \"px; height: \" + this.height_ + \"px;\");\n  return style.join(\"\");\n};\n/**\r\n * Returns the position at which to place the DIV depending on the latlng.\r\n *\r\n * @param {google.maps.LatLng} latlng The position in latlng.\r\n * @return {google.maps.Point} The position in pixels.\r\n */\n\n\nClusterIcon.prototype.getPosFromLatLng_ = function (latlng) {\n  var pos = this.getProjection().fromLatLngToDivPixel(latlng);\n  pos.x -= this.anchorIcon_[1];\n  pos.y -= this.anchorIcon_[0];\n  pos.x = parseInt(pos.x, 10);\n  pos.y = parseInt(pos.y, 10);\n  return pos;\n};\n/**\r\n * Creates a single cluster that manages a group of proximate markers.\r\n *  Used internally, do not call this constructor directly.\r\n * @constructor\r\n * @param {MarkerClusterer} mc The <code>MarkerClusterer</code> object with which this\r\n *  cluster is associated.\r\n */\n\n\nfunction Cluster(mc) {\n  this.markerClusterer_ = mc;\n  this.map_ = mc.getMap();\n  this.gridSize_ = mc.getGridSize();\n  this.minClusterSize_ = mc.getMinimumClusterSize();\n  this.averageCenter_ = mc.getAverageCenter();\n  this.hideLabel_ = mc.getHideLabel();\n  this.markers_ = [];\n  this.center_ = null;\n  this.bounds_ = null;\n  this.clusterIcon_ = new ClusterIcon(this, mc.getStyles());\n}\n/**\r\n * Returns the number of markers managed by the cluster. You can call this from\r\n * a <code>click</code>, <code>mouseover</code>, or <code>mouseout</code> event handler\r\n * for the <code>MarkerClusterer</code> object.\r\n *\r\n * @return {number} The number of markers in the cluster.\r\n */\n\n\nCluster.prototype.getSize = function () {\n  return this.markers_.length;\n};\n/**\r\n * Returns the array of markers managed by the cluster. You can call this from\r\n * a <code>click</code>, <code>mouseover</code>, or <code>mouseout</code> event handler\r\n * for the <code>MarkerClusterer</code> object.\r\n *\r\n * @return {Array} The array of markers in the cluster.\r\n */\n\n\nCluster.prototype.getMarkers = function () {\n  return this.markers_;\n};\n/**\r\n * Returns the center of the cluster. You can call this from\r\n * a <code>click</code>, <code>mouseover</code>, or <code>mouseout</code> event handler\r\n * for the <code>MarkerClusterer</code> object.\r\n *\r\n * @return {google.maps.LatLng} The center of the cluster.\r\n */\n\n\nCluster.prototype.getCenter = function () {\n  return this.center_;\n};\n/**\r\n * Returns the map with which the cluster is associated.\r\n *\r\n * @return {google.maps.Map} The map.\r\n * @ignore\r\n */\n\n\nCluster.prototype.getMap = function () {\n  return this.map_;\n};\n/**\r\n * Returns the <code>MarkerClusterer</code> object with which the cluster is associated.\r\n *\r\n * @return {MarkerClusterer} The associated marker clusterer.\r\n * @ignore\r\n */\n\n\nCluster.prototype.getMarkerClusterer = function () {\n  return this.markerClusterer_;\n};\n/**\r\n * Returns the bounds of the cluster.\r\n *\r\n * @return {google.maps.LatLngBounds} the cluster bounds.\r\n * @ignore\r\n */\n\n\nCluster.prototype.getBounds = function () {\n  var i;\n  var bounds = new google.maps.LatLngBounds(this.center_, this.center_);\n  var markers = this.getMarkers();\n\n  for (i = 0; i < markers.length; i++) {\n    bounds.extend(markers[i].getPosition());\n  }\n\n  return bounds;\n};\n/**\r\n * Removes the cluster from the map.\r\n *\r\n * @ignore\r\n */\n\n\nCluster.prototype.remove = function () {\n  this.clusterIcon_.setMap(null);\n  this.markers_ = [];\n  delete this.markers_;\n};\n/**\r\n * Adds a marker to the cluster.\r\n *\r\n * @param {google.maps.Marker} marker The marker to be added.\r\n * @return {boolean} True if the marker was added.\r\n * @ignore\r\n */\n\n\nCluster.prototype.addMarker = function (marker) {\n  var i;\n  var mCount;\n  var mz;\n\n  if (this.isMarkerAlreadyAdded_(marker)) {\n    return false;\n  }\n\n  if (!this.center_) {\n    this.center_ = marker.getPosition();\n    this.calculateBounds_();\n  } else {\n    if (this.averageCenter_) {\n      var l = this.markers_.length + 1;\n      var lat = (this.center_.lat() * (l - 1) + marker.getPosition().lat()) / l;\n      var lng = (this.center_.lng() * (l - 1) + marker.getPosition().lng()) / l;\n      this.center_ = new google.maps.LatLng(lat, lng);\n      this.calculateBounds_();\n    }\n  }\n\n  marker.isAdded = true;\n  this.markers_.push(marker);\n  mCount = this.markers_.length;\n  mz = this.markerClusterer_.getMaxZoom();\n\n  if (mz !== null && this.map_.getZoom() > mz) {\n    // Zoomed in past max zoom, so show the marker.\n    if (marker.getMap() !== this.map_) {\n      marker.setMap(this.map_);\n    }\n  } else if (mCount < this.minClusterSize_) {\n    // Min cluster size not reached so show the marker.\n    if (marker.getMap() !== this.map_) {\n      marker.setMap(this.map_);\n    }\n  } else if (mCount === this.minClusterSize_) {\n    // Hide the markers that were showing.\n    for (i = 0; i < mCount; i++) {\n      this.markers_[i].setMap(null);\n    }\n  } else {\n    marker.setMap(null);\n  }\n\n  return true;\n};\n/**\r\n * Determines if a marker lies within the cluster's bounds.\r\n *\r\n * @param {google.maps.Marker} marker The marker to check.\r\n * @return {boolean} True if the marker lies in the bounds.\r\n * @ignore\r\n */\n\n\nCluster.prototype.isMarkerInClusterBounds = function (marker) {\n  return this.bounds_.contains(marker.getPosition());\n};\n/**\r\n * Calculates the extended bounds of the cluster with the grid.\r\n */\n\n\nCluster.prototype.calculateBounds_ = function () {\n  var bounds = new google.maps.LatLngBounds(this.center_, this.center_);\n  this.bounds_ = this.markerClusterer_.getExtendedBounds(bounds);\n};\n/**\r\n * Updates the cluster icon.\r\n */\n\n\nCluster.prototype.updateIcon_ = function () {\n  var mCount = this.markers_.length;\n  var mz = this.markerClusterer_.getMaxZoom();\n\n  if (mz !== null && this.map_.getZoom() > mz) {\n    this.clusterIcon_.hide();\n    return;\n  }\n\n  if (mCount < this.minClusterSize_) {\n    // Min cluster size not yet reached.\n    this.clusterIcon_.hide();\n    return;\n  }\n\n  var numStyles = this.markerClusterer_.getStyles().length;\n  var sums = this.markerClusterer_.getCalculator()(this.markers_, numStyles);\n  this.clusterIcon_.setCenter(this.center_);\n  this.clusterIcon_.useStyle(sums);\n  this.clusterIcon_.show();\n};\n/**\r\n * Determines if a marker has already been added to the cluster.\r\n *\r\n * @param {google.maps.Marker} marker The marker to check.\r\n * @return {boolean} True if the marker has already been added.\r\n */\n\n\nCluster.prototype.isMarkerAlreadyAdded_ = function (marker) {\n  for (var i = 0, n = this.markers_.length; i < n; i++) {\n    if (marker === this.markers_[i]) {\n      return true;\n    }\n  }\n\n  return false;\n};\n/**\r\n * @name MarkerClustererOptions\r\n * @class This class represents the optional parameter passed to\r\n *  the {@link MarkerClusterer} constructor.\r\n * @property {number} [gridSize=60] The grid size of a cluster in pixels. The grid is a square.\r\n * @property {number} [maxZoom=null] The maximum zoom level at which clustering is enabled or\r\n *  <code>null</code> if clustering is to be enabled at all zoom levels.\r\n * @property {boolean} [zoomOnClick=true] Whether to zoom the map when a cluster marker is\r\n *  clicked. You may want to set this to <code>false</code> if you have installed a handler\r\n *  for the <code>click</code> event and it deals with zooming on its own.\r\n * @property {boolean} [averageCenter=false] Whether the position of a cluster marker should be\r\n *  the average position of all markers in the cluster. If set to <code>false</code>, the\r\n *  cluster marker is positioned at the location of the first marker added to the cluster.\r\n * @property {number} [minimumClusterSize=2] The minimum number of markers needed in a cluster\r\n *  before the markers are hidden and a cluster marker appears.\r\n * @property {boolean} [ignoreHidden=false] Whether to ignore hidden markers in clusters. You\r\n *  may want to set this to <code>true</code> to ensure that hidden markers are not included\r\n *  in the marker count that appears on a cluster marker (this count is the value of the\r\n *  <code>text</code> property of the result returned by the default <code>calculator</code>).\r\n *  If set to <code>true</code> and you change the visibility of a marker being clustered, be\r\n *  sure to also call <code>MarkerClusterer.repaint()</code>.\r\n * @property {string} [title=\"\"] The tooltip to display when the mouse moves over a cluster\r\n *  marker. (Alternatively, you can use a custom <code>calculator</code> function to specify a\r\n *  different tooltip for each cluster marker.)\r\n * @property {function} [calculator=MarkerClusterer.CALCULATOR] The function used to determine\r\n *  the text to be displayed on a cluster marker and the index indicating which style to use\r\n *  for the cluster marker. The input parameters for the function are (1) the array of markers\r\n *  represented by a cluster marker and (2) the number of cluster icon styles. It returns a\r\n *  {@link ClusterIconInfo} object. The default <code>calculator</code> returns a\r\n *  <code>text</code> property which is the number of markers in the cluster and an\r\n *  <code>index</code> property which is one higher than the lowest integer such that\r\n *  <code>10^i</code> exceeds the number of markers in the cluster, or the size of the styles\r\n *  array, whichever is less. The <code>styles</code> array element used has an index of\r\n *  <code>index</code> minus 1. For example, the default <code>calculator</code> returns a\r\n *  <code>text</code> value of <code>\"125\"</code> and an <code>index</code> of <code>3</code>\r\n *  for a cluster icon representing 125 markers so the element used in the <code>styles</code>\r\n *  array is <code>2</code>. A <code>calculator</code> may also return a <code>title</code>\r\n *  property that contains the text of the tooltip to be used for the cluster marker. If\r\n *   <code>title</code> is not defined, the tooltip is set to the value of the <code>title</code>\r\n *   property for the MarkerClusterer.\r\n * @property {string} [clusterClass=\"cluster\"] The name of the CSS class defining general styles\r\n *  for the cluster markers. Use this class to define CSS styles that are not set up by the code\r\n *  that processes the <code>styles</code> array.\r\n * @property {Array} [styles] An array of {@link ClusterIconStyle} elements defining the styles\r\n *  of the cluster markers to be used. The element to be used to style a given cluster marker\r\n *  is determined by the function defined by the <code>calculator</code> property.\r\n *  The default is an array of {@link ClusterIconStyle} elements whose properties are derived\r\n *  from the values for <code>imagePath</code>, <code>imageExtension</code>, and\r\n *  <code>imageSizes</code>.\r\n * @property {boolean} [enableRetinaIcons=false] Whether to allow the use of cluster icons that\r\n * have sizes that are some multiple (typically double) of their actual display size. Icons such\r\n * as these look better when viewed on high-resolution monitors such as Apple's Retina displays.\r\n * Note: if this property is <code>true</code>, sprites cannot be used as cluster icons.\r\n * @property {number} [batchSize=MarkerClusterer.BATCH_SIZE] Set this property to the\r\n *  number of markers to be processed in a single batch when using a browser other than\r\n *  Internet Explorer (for Internet Explorer, use the batchSizeIE property instead).\r\n * @property {number} [batchSizeIE=MarkerClusterer.BATCH_SIZE_IE] When Internet Explorer is\r\n *  being used, markers are processed in several batches with a small delay inserted between\r\n *  each batch in an attempt to avoid Javascript timeout errors. Set this property to the\r\n *  number of markers to be processed in a single batch; select as high a number as you can\r\n *  without causing a timeout error in the browser. This number might need to be as low as 100\r\n *  if 15,000 markers are being managed, for example.\r\n * @property {string} [imagePath=MarkerClusterer.IMAGE_PATH]\r\n *  The full URL of the root name of the group of image files to use for cluster icons.\r\n *  The complete file name is of the form <code>imagePath</code>n.<code>imageExtension</code>\r\n *  where n is the image file number (1, 2, etc.).\r\n * @property {string} [imageExtension=MarkerClusterer.IMAGE_EXTENSION]\r\n *  The extension name for the cluster icon image files (e.g., <code>\"png\"</code> or\r\n *  <code>\"jpg\"</code>).\r\n * @property {Array} [imageSizes=MarkerClusterer.IMAGE_SIZES]\r\n *  An array of numbers containing the widths of the group of\r\n *  <code>imagePath</code>n.<code>imageExtension</code> image files.\r\n *  (The images are assumed to be square.)\r\n */\n\n/**\r\n * Creates a MarkerClusterer object with the options specified in {@link MarkerClustererOptions}.\r\n * @constructor\r\n * @extends google.maps.OverlayView\r\n * @param {google.maps.Map} map The Google map to attach to.\r\n * @param {Array.<google.maps.Marker>} [opt_markers] The markers to be added to the cluster.\r\n * @param {MarkerClustererOptions} [opt_options] The optional parameters.\r\n */\n\n\nfunction MarkerClusterer(map, opt_markers, opt_options) {\n  // MarkerClusterer implements google.maps.OverlayView interface. We use the\n  // extend function to extend MarkerClusterer with google.maps.OverlayView\n  // because it might not always be available when the code is defined so we\n  // look for it at the last possible moment. If it doesn't exist now then\n  // there is no point going ahead :)\n  this.extend(MarkerClusterer, google.maps.OverlayView);\n  opt_markers = opt_markers || [];\n  opt_options = opt_options || {};\n  this.markers_ = [];\n  this.clusters_ = [];\n  this.listeners_ = [];\n  this.activeMap_ = null;\n  this.ready_ = false;\n  this.gridSize_ = opt_options.gridSize || 60;\n  this.minClusterSize_ = opt_options.minimumClusterSize || 2;\n  this.maxZoom_ = opt_options.maxZoom || null;\n  this.styles_ = opt_options.styles || [];\n  this.title_ = opt_options.title || \"\";\n  this.zoomOnClick_ = true;\n\n  if (opt_options.zoomOnClick !== undefined) {\n    this.zoomOnClick_ = opt_options.zoomOnClick;\n  }\n\n  this.averageCenter_ = false;\n\n  if (opt_options.averageCenter !== undefined) {\n    this.averageCenter_ = opt_options.averageCenter;\n  }\n\n  this.ignoreHidden_ = false;\n\n  if (opt_options.ignoreHidden !== undefined) {\n    this.ignoreHidden_ = opt_options.ignoreHidden;\n  }\n\n  this.enableRetinaIcons_ = false;\n\n  if (opt_options.enableRetinaIcons !== undefined) {\n    this.enableRetinaIcons_ = opt_options.enableRetinaIcons;\n  }\n\n  this.hideLabel_ = false;\n\n  if (opt_options.hideLabel !== undefined) {\n    this.hideLabel_ = opt_options.hideLabel;\n  }\n\n  this.imagePath_ = opt_options.imagePath || MarkerClusterer.IMAGE_PATH;\n  this.imageExtension_ = opt_options.imageExtension || MarkerClusterer.IMAGE_EXTENSION;\n  this.imageSizes_ = opt_options.imageSizes || MarkerClusterer.IMAGE_SIZES;\n  this.calculator_ = opt_options.calculator || MarkerClusterer.CALCULATOR;\n  this.batchSize_ = opt_options.batchSize || MarkerClusterer.BATCH_SIZE;\n  this.batchSizeIE_ = opt_options.batchSizeIE || MarkerClusterer.BATCH_SIZE_IE;\n  this.clusterClass_ = opt_options.clusterClass || \"cluster\";\n\n  if (navigator.userAgent.toLowerCase().indexOf(\"msie\") !== -1) {\n    // Try to avoid IE timeout when processing a huge number of markers:\n    this.batchSize_ = this.batchSizeIE_;\n  }\n\n  this.setupStyles_();\n  this.addMarkers(opt_markers, true);\n  this.setMap(map); // Note: this causes onAdd to be called\n}\n/**\r\n * Implementation of the onAdd interface method.\r\n * @ignore\r\n */\n\n\nMarkerClusterer.prototype.onAdd = function () {\n  var cMarkerClusterer = this;\n  this.activeMap_ = this.getMap();\n  this.ready_ = true;\n  this.repaint(); // Add the map event listeners\n\n  this.listeners_ = [google.maps.event.addListener(this.getMap(), \"zoom_changed\", function () {\n    cMarkerClusterer.resetViewport_(false); // Workaround for this Google bug: when map is at level 0 and \"-\" of\n    // zoom slider is clicked, a \"zoom_changed\" event is fired even though\n    // the map doesn't zoom out any further. In this situation, no \"idle\"\n    // event is triggered so the cluster markers that have been removed\n    // do not get redrawn. Same goes for a zoom in at maxZoom.\n\n    if (this.getZoom() === (this.get(\"minZoom\") || 0) || this.getZoom() === this.get(\"maxZoom\")) {\n      google.maps.event.trigger(this, \"idle\");\n    }\n  }), google.maps.event.addListener(this.getMap(), \"idle\", function () {\n    cMarkerClusterer.redraw_();\n  })];\n};\n/**\r\n * Implementation of the onRemove interface method.\r\n * Removes map event listeners and all cluster icons from the DOM.\r\n * All managed markers are also put back on the map.\r\n * @ignore\r\n */\n\n\nMarkerClusterer.prototype.onRemove = function () {\n  var i; // Put all the managed markers back on the map:\n\n  for (i = 0; i < this.markers_.length; i++) {\n    if (this.markers_[i].getMap() !== this.activeMap_) {\n      this.markers_[i].setMap(this.activeMap_);\n    }\n  } // Remove all clusters:\n\n\n  for (i = 0; i < this.clusters_.length; i++) {\n    this.clusters_[i].remove();\n  }\n\n  this.clusters_ = []; // Remove map event listeners:\n\n  for (i = 0; i < this.listeners_.length; i++) {\n    google.maps.event.removeListener(this.listeners_[i]);\n  }\n\n  this.listeners_ = [];\n  this.activeMap_ = null;\n  this.ready_ = false;\n};\n/**\r\n * Implementation of the draw interface method.\r\n * @ignore\r\n */\n\n\nMarkerClusterer.prototype.draw = function () {};\n/**\r\n * Sets up the styles object.\r\n */\n\n\nMarkerClusterer.prototype.setupStyles_ = function () {\n  var i, size;\n\n  if (this.styles_.length > 0) {\n    return;\n  }\n\n  for (i = 0; i < this.imageSizes_.length; i++) {\n    size = this.imageSizes_[i];\n    this.styles_.push({\n      url: this.imagePath_ + (i + 1) + \".\" + this.imageExtension_,\n      height: size,\n      width: size\n    });\n  }\n};\n/**\r\n *  Fits the map to the bounds of the markers managed by the clusterer.\r\n */\n\n\nMarkerClusterer.prototype.fitMapToMarkers = function () {\n  var i;\n  var markers = this.getMarkers();\n  var bounds = new google.maps.LatLngBounds();\n\n  for (i = 0; i < markers.length; i++) {\n    bounds.extend(markers[i].getPosition());\n  }\n\n  this.getMap().fitBounds(bounds);\n};\n/**\r\n * Returns the value of the <code>gridSize</code> property.\r\n *\r\n * @return {number} The grid size.\r\n */\n\n\nMarkerClusterer.prototype.getGridSize = function () {\n  return this.gridSize_;\n};\n/**\r\n * Sets the value of the <code>gridSize</code> property.\r\n *\r\n * @param {number} gridSize The grid size.\r\n */\n\n\nMarkerClusterer.prototype.setGridSize = function (gridSize) {\n  this.gridSize_ = gridSize;\n};\n/**\r\n * Returns the value of the <code>minimumClusterSize</code> property.\r\n *\r\n * @return {number} The minimum cluster size.\r\n */\n\n\nMarkerClusterer.prototype.getMinimumClusterSize = function () {\n  return this.minClusterSize_;\n};\n/**\r\n * Sets the value of the <code>minimumClusterSize</code> property.\r\n *\r\n * @param {number} minimumClusterSize The minimum cluster size.\r\n */\n\n\nMarkerClusterer.prototype.setMinimumClusterSize = function (minimumClusterSize) {\n  this.minClusterSize_ = minimumClusterSize;\n};\n/**\r\n *  Returns the value of the <code>maxZoom</code> property.\r\n *\r\n *  @return {number} The maximum zoom level.\r\n */\n\n\nMarkerClusterer.prototype.getMaxZoom = function () {\n  return this.maxZoom_;\n};\n/**\r\n *  Sets the value of the <code>maxZoom</code> property.\r\n *\r\n *  @param {number} maxZoom The maximum zoom level.\r\n */\n\n\nMarkerClusterer.prototype.setMaxZoom = function (maxZoom) {\n  this.maxZoom_ = maxZoom;\n};\n/**\r\n *  Returns the value of the <code>styles</code> property.\r\n *\r\n *  @return {Array} The array of styles defining the cluster markers to be used.\r\n */\n\n\nMarkerClusterer.prototype.getStyles = function () {\n  return this.styles_;\n};\n/**\r\n *  Sets the value of the <code>styles</code> property.\r\n *\r\n *  @param {Array.<ClusterIconStyle>} styles The array of styles to use.\r\n */\n\n\nMarkerClusterer.prototype.setStyles = function (styles) {\n  this.styles_ = styles;\n};\n/**\r\n * Returns the value of the <code>title</code> property.\r\n *\r\n * @return {string} The content of the title text.\r\n */\n\n\nMarkerClusterer.prototype.getTitle = function () {\n  return this.title_;\n};\n/**\r\n *  Sets the value of the <code>title</code> property.\r\n *\r\n *  @param {string} title The value of the title property.\r\n */\n\n\nMarkerClusterer.prototype.setTitle = function (title) {\n  this.title_ = title;\n};\n/**\r\n * Returns the value of the <code>zoomOnClick</code> property.\r\n *\r\n * @return {boolean} True if zoomOnClick property is set.\r\n */\n\n\nMarkerClusterer.prototype.getZoomOnClick = function () {\n  return this.zoomOnClick_;\n};\n/**\r\n *  Sets the value of the <code>zoomOnClick</code> property.\r\n *\r\n *  @param {boolean} zoomOnClick The value of the zoomOnClick property.\r\n */\n\n\nMarkerClusterer.prototype.setZoomOnClick = function (zoomOnClick) {\n  this.zoomOnClick_ = zoomOnClick;\n};\n/**\r\n * Returns the value of the <code>averageCenter</code> property.\r\n *\r\n * @return {boolean} True if averageCenter property is set.\r\n */\n\n\nMarkerClusterer.prototype.getAverageCenter = function () {\n  return this.averageCenter_;\n};\n/**\r\n *  Sets the value of the <code>averageCenter</code> property.\r\n *\r\n *  @param {boolean} averageCenter The value of the averageCenter property.\r\n */\n\n\nMarkerClusterer.prototype.setAverageCenter = function (averageCenter) {\n  this.averageCenter_ = averageCenter;\n};\n/**\r\n * Returns the value of the <code>ignoreHidden</code> property.\r\n *\r\n * @return {boolean} True if ignoreHidden property is set.\r\n */\n\n\nMarkerClusterer.prototype.getIgnoreHidden = function () {\n  return this.ignoreHidden_;\n};\n/**\r\n *  Sets the value of the <code>ignoreHidden</code> property.\r\n *\r\n *  @param {boolean} ignoreHidden The value of the ignoreHidden property.\r\n */\n\n\nMarkerClusterer.prototype.setIgnoreHidden = function (ignoreHidden) {\n  this.ignoreHidden_ = ignoreHidden;\n};\n/**\r\n * Returns the value of the <code>enableRetinaIcons</code> property.\r\n *\r\n * @return {boolean} True if enableRetinaIcons property is set.\r\n */\n\n\nMarkerClusterer.prototype.getEnableRetinaIcons = function () {\n  return this.enableRetinaIcons_;\n};\n/**\r\n *  Sets the value of the <code>enableRetinaIcons</code> property.\r\n *\r\n *  @param {boolean} enableRetinaIcons The value of the enableRetinaIcons property.\r\n */\n\n\nMarkerClusterer.prototype.setEnableRetinaIcons = function (enableRetinaIcons) {\n  this.enableRetinaIcons_ = enableRetinaIcons;\n};\n/**\r\n * Returns the value of the <code>imageExtension</code> property.\r\n *\r\n * @return {string} The value of the imageExtension property.\r\n */\n\n\nMarkerClusterer.prototype.getImageExtension = function () {\n  return this.imageExtension_;\n};\n/**\r\n *  Sets the value of the <code>imageExtension</code> property.\r\n *\r\n *  @param {string} imageExtension The value of the imageExtension property.\r\n */\n\n\nMarkerClusterer.prototype.setImageExtension = function (imageExtension) {\n  this.imageExtension_ = imageExtension;\n};\n/**\r\n * Returns the value of the <code>imagePath</code> property.\r\n *\r\n * @return {string} The value of the imagePath property.\r\n */\n\n\nMarkerClusterer.prototype.getImagePath = function () {\n  return this.imagePath_;\n};\n/**\r\n *  Sets the value of the <code>imagePath</code> property.\r\n *\r\n *  @param {string} imagePath The value of the imagePath property.\r\n */\n\n\nMarkerClusterer.prototype.setImagePath = function (imagePath) {\n  this.imagePath_ = imagePath;\n};\n/**\r\n * Returns the value of the <code>imageSizes</code> property.\r\n *\r\n * @return {Array} The value of the imageSizes property.\r\n */\n\n\nMarkerClusterer.prototype.getImageSizes = function () {\n  return this.imageSizes_;\n};\n/**\r\n *  Sets the value of the <code>imageSizes</code> property.\r\n *\r\n *  @param {Array} imageSizes The value of the imageSizes property.\r\n */\n\n\nMarkerClusterer.prototype.setImageSizes = function (imageSizes) {\n  this.imageSizes_ = imageSizes;\n};\n/**\r\n * Returns the value of the <code>calculator</code> property.\r\n *\r\n * @return {function} the value of the calculator property.\r\n */\n\n\nMarkerClusterer.prototype.getCalculator = function () {\n  return this.calculator_;\n};\n/**\r\n * Sets the value of the <code>calculator</code> property.\r\n *\r\n * @param {function(Array.<google.maps.Marker>, number)} calculator The value\r\n *  of the calculator property.\r\n */\n\n\nMarkerClusterer.prototype.setCalculator = function (calculator) {\n  this.calculator_ = calculator;\n};\n/**\r\n * Sets the value of the <code>hideLabel</code> property.\r\n *\r\n *  @param {boolean} printable The value of the hideLabel property.\r\n */\n\n\nMarkerClusterer.prototype.setHideLabel = function (hideLabel) {\n  this.hideLabel_ = hideLabel;\n};\n/**\r\n * Returns the value of the <code>hideLabel</code> property.\r\n *\r\n * @return {boolean} the value of the hideLabel property.\r\n */\n\n\nMarkerClusterer.prototype.getHideLabel = function () {\n  return this.hideLabel_;\n};\n/**\r\n * Returns the value of the <code>batchSizeIE</code> property.\r\n *\r\n * @return {number} the value of the batchSizeIE property.\r\n */\n\n\nMarkerClusterer.prototype.getBatchSizeIE = function () {\n  return this.batchSizeIE_;\n};\n/**\r\n * Sets the value of the <code>batchSizeIE</code> property.\r\n *\r\n *  @param {number} batchSizeIE The value of the batchSizeIE property.\r\n */\n\n\nMarkerClusterer.prototype.setBatchSizeIE = function (batchSizeIE) {\n  this.batchSizeIE_ = batchSizeIE;\n};\n/**\r\n * Returns the value of the <code>clusterClass</code> property.\r\n *\r\n * @return {string} the value of the clusterClass property.\r\n */\n\n\nMarkerClusterer.prototype.getClusterClass = function () {\n  return this.clusterClass_;\n};\n/**\r\n * Sets the value of the <code>clusterClass</code> property.\r\n *\r\n *  @param {string} clusterClass The value of the clusterClass property.\r\n */\n\n\nMarkerClusterer.prototype.setClusterClass = function (clusterClass) {\n  this.clusterClass_ = clusterClass;\n};\n/**\r\n *  Returns the array of markers managed by the clusterer.\r\n *\r\n *  @return {Array} The array of markers managed by the clusterer.\r\n */\n\n\nMarkerClusterer.prototype.getMarkers = function () {\n  return this.markers_;\n};\n/**\r\n *  Returns the number of markers managed by the clusterer.\r\n *\r\n *  @return {number} The number of markers.\r\n */\n\n\nMarkerClusterer.prototype.getTotalMarkers = function () {\n  return this.markers_.length;\n};\n/**\r\n * Returns the current array of clusters formed by the clusterer.\r\n *\r\n * @return {Array} The array of clusters formed by the clusterer.\r\n */\n\n\nMarkerClusterer.prototype.getClusters = function () {\n  return this.clusters_;\n};\n/**\r\n * Returns the number of clusters formed by the clusterer.\r\n *\r\n * @return {number} The number of clusters formed by the clusterer.\r\n */\n\n\nMarkerClusterer.prototype.getTotalClusters = function () {\n  return this.clusters_.length;\n};\n/**\r\n * Adds a marker to the clusterer. The clusters are redrawn unless\r\n *  <code>opt_nodraw</code> is set to <code>true</code>.\r\n *\r\n * @param {google.maps.Marker} marker The marker to add.\r\n * @param {boolean} [opt_nodraw] Set to <code>true</code> to prevent redrawing.\r\n */\n\n\nMarkerClusterer.prototype.addMarker = function (marker, opt_nodraw) {\n  this.pushMarkerTo_(marker);\n\n  if (!opt_nodraw) {\n    this.redraw_();\n  }\n};\n/**\r\n * Adds an array of markers to the clusterer. The clusters are redrawn unless\r\n *  <code>opt_nodraw</code> is set to <code>true</code>.\r\n *\r\n * @param {Array.<google.maps.Marker>} markers The markers to add.\r\n * @param {boolean} [opt_nodraw] Set to <code>true</code> to prevent redrawing.\r\n */\n\n\nMarkerClusterer.prototype.addMarkers = function (markers, opt_nodraw) {\n  var key;\n\n  for (key in markers) {\n    if (markers.hasOwnProperty(key)) {\n      this.pushMarkerTo_(markers[key]);\n    }\n  }\n\n  if (!opt_nodraw) {\n    this.redraw_();\n  }\n};\n/**\r\n * Pushes a marker to the clusterer.\r\n *\r\n * @param {google.maps.Marker} marker The marker to add.\r\n */\n\n\nMarkerClusterer.prototype.pushMarkerTo_ = function (marker) {\n  // If the marker is draggable add a listener so we can update the clusters on the dragend:\n  // if (marker.getDraggable()) {\n  //     var cMarkerClusterer = this;\n  //     google.maps.event.addListener(marker, \"dragend\", function() {\n  //         if (cMarkerClusterer.ready_) {\n  //             this.isAdded = false;\n  //             cMarkerClusterer.repaint();\n  //         }\n  //     });\n  // }\n  marker.isAdded = false;\n  this.markers_.push(marker);\n};\n/**\r\n * Removes a marker from the cluster and map.  The clusters are redrawn unless\r\n *  <code>opt_nodraw</code> is set to <code>true</code>. Returns <code>true</code> if the\r\n *  marker was removed from the clusterer.\r\n *\r\n * @param {google.maps.Marker} marker The marker to remove.\r\n * @param {boolean} [opt_nodraw] Set to <code>true</code> to prevent redrawing.\r\n * @param {boolean} [opt_noMapRemove] Set to <code>true</code> to prevent removal from map but still removing from cluster management\r\n * @return {boolean} True if the marker was removed from the clusterer.\r\n */\n\n\nMarkerClusterer.prototype.removeMarker = function (marker, opt_nodraw, opt_noMapRemove) {\n  var removeFromMap =  true && !opt_noMapRemove;\n  var removed = this.removeMarker_(marker, removeFromMap);\n\n  if (!opt_nodraw && removed) {\n    this.repaint();\n  }\n\n  return removed;\n};\n/**\r\n * Removes an array of markers from the cluster and map. The clusters are redrawn unless\r\n *  <code>opt_nodraw</code> is set to <code>true</code>. Returns <code>true</code> if markers\r\n *  were removed from the clusterer.\r\n *\r\n * @param {Array.<google.maps.Marker>} markers The markers to remove.\r\n * @param {boolean} [opt_nodraw] Set to <code>true</code> to prevent redrawing.\r\n * @param {boolean} [opt_noMapRemove] Set to <code>true</code> to prevent removal from map but still removing from cluster management\r\n * @return {boolean} True if markers were removed from the clusterer.\r\n */\n\n\nMarkerClusterer.prototype.removeMarkers = function (markers, opt_nodraw, opt_noMapRemove) {\n  var i, r;\n  var removed = false;\n  var removeFromMap =  true && !opt_noMapRemove;\n\n  for (i = 0; i < markers.length; i++) {\n    r = this.removeMarker_(markers[i], removeFromMap);\n    removed = removed || r;\n  }\n\n  if (!opt_nodraw && removed) {\n    this.repaint();\n  }\n\n  return removed;\n};\n/**\r\n * Removes a marker and returns true if removed, false if not.\r\n *\r\n * @param {google.maps.Marker} marker The marker to remove\r\n * @param {boolean} removeFromMap set to <code>true</code> to explicitly remove from map as well as cluster manangement\r\n * @return {boolean} Whether the marker was removed or not\r\n */\n\n\nMarkerClusterer.prototype.removeMarker_ = function (marker, removeFromMap) {\n  var i;\n  var index = -1;\n\n  if (this.markers_.indexOf) {\n    index = this.markers_.indexOf(marker);\n  } else {\n    for (i = 0; i < this.markers_.length; i++) {\n      if (marker === this.markers_[i]) {\n        index = i;\n        break;\n      }\n    }\n  }\n\n  if (index === -1) {\n    // Marker is not in our list of markers, so do nothing:\n    return false;\n  }\n\n  if (removeFromMap) {\n    marker.setMap(null);\n  }\n\n  this.markers_.splice(index, 1); // Remove the marker from the list of managed markers\n\n  return true;\n};\n/**\r\n * Removes all clusters and markers from the map and also removes all markers\r\n *  managed by the clusterer.\r\n */\n\n\nMarkerClusterer.prototype.clearMarkers = function () {\n  this.resetViewport_(true);\n  this.markers_ = [];\n};\n/**\r\n * Recalculates and redraws all the marker clusters from scratch.\r\n *  Call this after changing any properties.\r\n */\n\n\nMarkerClusterer.prototype.repaint = function () {\n  var oldClusters = this.clusters_.slice();\n  this.clusters_ = [];\n  this.resetViewport_(false);\n  this.redraw_(); // Remove the old clusters.\n  // Do it in a timeout to prevent blinking effect.\n\n  setTimeout(function () {\n    var i;\n\n    for (i = 0; i < oldClusters.length; i++) {\n      oldClusters[i].remove();\n    }\n  }, 0);\n};\n/**\r\n * Returns the current bounds extended by the grid size.\r\n *\r\n * @param {google.maps.LatLngBounds} bounds The bounds to extend.\r\n * @return {google.maps.LatLngBounds} The extended bounds.\r\n * @ignore\r\n */\n\n\nMarkerClusterer.prototype.getExtendedBounds = function (bounds) {\n  var projection = this.getProjection(); // Turn the bounds into latlng.\n\n  var tr = new google.maps.LatLng(bounds.getNorthEast().lat(), bounds.getNorthEast().lng());\n  var bl = new google.maps.LatLng(bounds.getSouthWest().lat(), bounds.getSouthWest().lng()); // Convert the points to pixels and the extend out by the grid size.\n\n  var trPix = projection.fromLatLngToDivPixel(tr);\n  trPix.x += this.gridSize_;\n  trPix.y -= this.gridSize_;\n  var blPix = projection.fromLatLngToDivPixel(bl);\n  blPix.x -= this.gridSize_;\n  blPix.y += this.gridSize_; // Convert the pixel points back to LatLng\n\n  var ne = projection.fromDivPixelToLatLng(trPix);\n  var sw = projection.fromDivPixelToLatLng(blPix); // Extend the bounds to contain the new bounds.\n\n  bounds.extend(ne);\n  bounds.extend(sw);\n  return bounds;\n};\n/**\r\n * Redraws all the clusters.\r\n */\n\n\nMarkerClusterer.prototype.redraw_ = function () {\n  this.createClusters_(0);\n};\n/**\r\n * Removes all clusters from the map. The markers are also removed from the map\r\n *  if <code>opt_hide</code> is set to <code>true</code>.\r\n *\r\n * @param {boolean} [opt_hide] Set to <code>true</code> to also remove the markers\r\n *  from the map.\r\n */\n\n\nMarkerClusterer.prototype.resetViewport_ = function (opt_hide) {\n  var i, marker; // Remove all the clusters\n\n  for (i = 0; i < this.clusters_.length; i++) {\n    this.clusters_[i].remove();\n  }\n\n  this.clusters_ = []; // Reset the markers to not be added and to be removed from the map.\n\n  for (i = 0; i < this.markers_.length; i++) {\n    marker = this.markers_[i];\n    marker.isAdded = false;\n\n    if (opt_hide) {\n      marker.setMap(null);\n    }\n  }\n};\n/**\r\n * Calculates the distance between two latlng locations in km.\r\n *\r\n * @param {google.maps.LatLng} p1 The first lat lng point.\r\n * @param {google.maps.LatLng} p2 The second lat lng point.\r\n * @return {number} The distance between the two points in km.\r\n * @see http://www.movable-type.co.uk/scripts/latlong.html\r\n */\n\n\nMarkerClusterer.prototype.distanceBetweenPoints_ = function (p1, p2) {\n  var R = 6371; // Radius of the Earth in km\n\n  var dLat = (p2.lat() - p1.lat()) * Math.PI / 180;\n  var dLon = (p2.lng() - p1.lng()) * Math.PI / 180;\n  var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + Math.cos(p1.lat() * Math.PI / 180) * Math.cos(p2.lat() * Math.PI / 180) * Math.sin(dLon / 2) * Math.sin(dLon / 2);\n  var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n  var d = R * c;\n  return d;\n};\n/**\r\n * Determines if a marker is contained in a bounds.\r\n *\r\n * @param {google.maps.Marker} marker The marker to check.\r\n * @param {google.maps.LatLngBounds} bounds The bounds to check against.\r\n * @return {boolean} True if the marker is in the bounds.\r\n */\n\n\nMarkerClusterer.prototype.isMarkerInBounds_ = function (marker, bounds) {\n  var northEast = bounds.getNorthEast();\n  var southWest = bounds.getSouthWest();\n  var position = marker.getPosition();\n  var minX, maxX, minY, maxY;\n  minX = southWest.lat();\n  maxX = northEast.lat();\n  minY = southWest.lng();\n  maxY = northEast.lng();\n\n  while (0 > maxY) {\n    maxY += 180;\n  }\n\n  maxY += 180; // bounds[this.a].g = maxY;? what for\n\n  if (minX < position.lat() && position.lat() < maxX && minY < position.lng() && position.lng() < maxY) {\n    return true;\n  }\n\n  return false;\n};\n/**\r\n * Adds a marker to a cluster, or creates a new cluster.\r\n *\r\n * @param {google.maps.Marker} marker The marker to add.\r\n */\n\n\nMarkerClusterer.prototype.addToClosestCluster_ = function (marker) {\n  var i, d, cluster, center;\n  var distance = 40000; // Some large number\n\n  var clusterToAddTo = null;\n\n  for (i = 0; i < this.clusters_.length; i++) {\n    cluster = this.clusters_[i];\n    center = cluster.getCenter();\n\n    if (center) {\n      d = this.distanceBetweenPoints_(center, marker.getPosition());\n\n      if (d < distance) {\n        distance = d;\n        clusterToAddTo = cluster;\n      }\n    }\n  }\n\n  if (clusterToAddTo && clusterToAddTo.isMarkerInClusterBounds(marker)) {\n    clusterToAddTo.addMarker(marker);\n  } else {\n    cluster = new Cluster(this);\n    cluster.addMarker(marker);\n    this.clusters_.push(cluster);\n  }\n};\n/**\r\n * Creates the clusters. This is done in batches to avoid timeout errors\r\n *  in some browsers when there is a huge number of markers.\r\n *\r\n * @param {number} iFirst The index of the first marker in the batch of\r\n *  markers to be added to clusters.\r\n */\n\n\nMarkerClusterer.prototype.createClusters_ = function (iFirst) {\n  var i, marker;\n  var mapBounds;\n  var cMarkerClusterer = this;\n\n  if (!this.ready_) {\n    return;\n  } // Cancel previous batch processing if we're working on the first batch:\n\n\n  if (iFirst === 0) {\n    /**\r\n     * This event is fired when the <code>MarkerClusterer</code> begins\r\n     *  clustering markers.\r\n     * @name MarkerClusterer#clusteringbegin\r\n     * @param {MarkerClusterer} mc The MarkerClusterer whose markers are being clustered.\r\n     * @event\r\n     */\n    google.maps.event.trigger(this, \"clusteringbegin\", this);\n\n    if (typeof this.timerRefStatic !== \"undefined\") {\n      clearTimeout(this.timerRefStatic);\n      delete this.timerRefStatic;\n    }\n  } // Get our current map view bounds.\n  // Create a new bounds object so we don't affect the map.\n  //\n  // See Comments 9 & 11 on Issue 3651 relating to this workaround for a Google Maps bug:\n\n\n  if (this.getMap().getZoom() > 3) {\n    mapBounds = new google.maps.LatLngBounds(this.getMap().getBounds().getSouthWest(), this.getMap().getBounds().getNorthEast());\n  } else {\n    mapBounds = new google.maps.LatLngBounds(new google.maps.LatLng(85.02070771743472, -178.48388434375), new google.maps.LatLng(-85.08136444384544, 178.00048865625));\n  }\n\n  var bounds = this.getExtendedBounds(mapBounds); // console.log(bounds);\n\n  var iLast = Math.min(iFirst + this.batchSize_, this.markers_.length);\n\n  for (i = iFirst; i < iLast; i++) {\n    this.markers_[i];\n\n    if (this.markers_.isFilter === true) {\n      if (this.markers_[i].isFilter === undefined) {\n        if (this.markers_[i].setMap !== undefined) this.markers_[i].setMap(null);\n        continue;\n      }\n    }\n\n    if (!this.markers_[i].isAdded && this.isMarkerInBounds_(this.markers_[i], bounds)) {\n      if (!this.ignoreHidden_ || this.ignoreHidden_ && this.markers_[i].getVisible()) {\n        if (this.markers_[i].getMap === undefined) this.markers_[i] = this.addOrtherMarker(this.markers_[i]);\n        this.addToClosestCluster_(this.markers_[i]);\n      }\n    }\n  }\n\n  if (iLast < this.markers_.length) {\n    this.timerRefStatic = setTimeout(function () {\n      cMarkerClusterer.createClusters_(iLast);\n    }, 0);\n  } else {\n    delete this.timerRefStatic;\n    /**\r\n     * This event is fired when the <code>MarkerClusterer</code> stops\r\n     *  clustering markers.\r\n     * @name MarkerClusterer#clusteringend\r\n     * @param {MarkerClusterer} mc The MarkerClusterer whose markers are being clustered.\r\n     * @event\r\n     */\n\n    google.maps.event.trigger(this, \"clusteringend\", this);\n\n    for (i = 0; i < this.clusters_.length; i++) {\n      this.clusters_[i].updateIcon_();\n    }\n  }\n};\n\nMarkerClusterer.prototype.addOrtherMarker = function (data) {\n  var self = this;\n  var position = [data.lat, data.lng];\n  var color, tooltip;\n  if (typeof testVariable !== \"undefined\") color = systemconfig.markerColor;\n  if (data.color) color = data.color;\n  if (data.tooltip) tooltip = data.tooltip;\n  var image = {\n    path: \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\",\n    // This marker is 20 pixels wide by 32 pixels high.\n    scaledSize: new google.maps.Size(24, 24),\n    // The origin for this image is (0, 0).\n    origin: new google.maps.Point(0, 0),\n    // The anchor for this image is the base of the flagpole at (0, 32).\n    anchor: new google.maps.Point(12, 12),\n    fillColor: color,\n    fillOpacity: 1,\n    strokeColor: \"white\",\n    strokeWeight: 4\n  };\n  var marker = new google.maps.Marker({\n    position: new google.maps.LatLng(position[0], position[1]),\n    draggable: false,\n    icon: image,\n    zIndex: 2\n  });\n\n  if (tooltip) {\n    var style = {\n      maxWidth: 350\n    };\n    var content = \"\";\n\n    if (_typeof(tooltip) == \"object\") {\n      if (tooltip.style) style = tooltip.style;\n      if (tooltip.element) content = tooltip.element;\n    } else content = tooltip;\n\n    var infowindow = new google.maps.InfoWindow(style);\n    google.maps.event.addListener(marker, 'mouseover', function () {\n      infowindow.setContent(content);\n      infowindow.open(self.map_, marker);\n    });\n    google.maps.event.addListener(marker, 'mouseout', function (event) {\n      infowindow.close();\n    });\n  }\n\n  marker.dataMarker = data;\n  marker.isFilter = data.isFilter;\n  return marker;\n};\n/**\r\n * Extends an object's prototype by another's.\r\n *\r\n * @param {Object} obj1 The object to be extended.\r\n * @param {Object} obj2 The object to extend with.\r\n * @return {Object} The new extended object.\r\n * @ignore\r\n */\n\n\nMarkerClusterer.prototype.extend = function (obj1, obj2) {\n  return function (object) {\n    var property;\n\n    for (property in object.prototype) {\n      this.prototype[property] = object.prototype[property];\n    }\n\n    return this;\n  }.apply(obj1, [obj2]);\n};\n/**\r\n * The default function for determining the label text and style\r\n * for a cluster icon.\r\n *\r\n * @param {Array.<google.maps.Marker>} markers The array of markers represented by the cluster.\r\n * @param {number} numStyles The number of marker styles available.\r\n * @return {ClusterIconInfo} The information resource for the cluster.\r\n * @constant\r\n * @ignore\r\n */\n\n\nMarkerClusterer.CALCULATOR = function (markers, numStyles) {\n  var index = 0;\n  var title = \"\";\n  var count = markers.length.toString();\n  var dv = count;\n\n  while (dv !== 0) {\n    dv = parseInt(dv / 10, 10);\n    index++;\n  }\n\n  index = Math.min(index, numStyles);\n  return {\n    text: count,\n    index: index,\n    title: title\n  };\n};\n/**\r\n * The number of markers to process in one batch.\r\n *\r\n * @type {number}\r\n * @constant\r\n */\n\n\nMarkerClusterer.BATCH_SIZE = 2000;\n/**\r\n * The number of markers to process in one batch (IE only).\r\n *\r\n * @type {number}\r\n * @constant\r\n */\n\nMarkerClusterer.BATCH_SIZE_IE = 500;\n/**\r\n * The default root name for the marker cluster images.\r\n *\r\n * @type {string}\r\n * @constant\r\n */\n\nMarkerClusterer.IMAGE_PATH = \"//cdn.rawgit.com/mahnunchik/markerclustererplus/master/images/m\";\n/**\r\n * The default extension name for the marker cluster images.\r\n *\r\n * @type {string}\r\n * @constant\r\n */\n\nMarkerClusterer.IMAGE_EXTENSION = \"png\";\n/**\r\n * The default array of sizes for the marker cluster images.\r\n *\r\n * @type {Array.<number>}\r\n * @constant\r\n */\n\nMarkerClusterer.IMAGE_SIZES = [53, 56, 66, 78, 90];\n\nif (typeof String.prototype.trim !== 'function') {\n  /**\r\n   * IE hack since trim() doesn't exist in all browsers\r\n   * @return {string} The string with removed whitespace\r\n   */\n  String.prototype.trim = function () {\n    return this.replace(/^\\s+|\\s+$/g, '');\n  };\n}\n\nwindow.MarkerClusterer = MarkerClusterer;\nvar _default = MarkerClusterer;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/MarkerClusterer.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/MediaInput.js":
/*!***************************************************!*\
  !*** ./node_modules/absol-acomp/js/MediaInput.js ***!
  \***************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/mediainput.css */ \"./node_modules/absol-acomp/css/mediainput.css\");\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _file = __webpack_require__(/*! absol/src/Converter/file */ \"./node_modules/absol/src/Converter/file.js\");\n\nvar _Svg = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Svg */ \"./node_modules/absol/src/HTML5/Svg.js\"));\n\nvar _EventEmitter = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nvar _Text = __webpack_require__(/*! absol/src/HTML5/Text */ \"./node_modules/absol/src/HTML5/Text.js\");\n\nvar _BScroller = _interopRequireDefault(__webpack_require__(/*! ./BScroller */ \"./node_modules/absol-acomp/js/BScroller.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar MediACore = new _Dom[\"default\"]();\nMediACore.install(_ACore[\"default\"]);\nvar _ = MediACore._;\nvar $ = MediACore.$;\n\nfunction openFileDialog(props) {\n  if (!MediACore.$fileInput) {\n    MediACore.$fileInput = _({\n      tag: 'input',\n      \"class\": 'vmedia-no-show',\n      attr: {\n        type: 'file'\n      },\n      props: {}\n    }).addTo(document.body);\n  }\n\n  props = props || {};\n\n  if (props.accept) {\n    if (props.accept instanceof Array) MediACore.$fileInput.attr('accept', props.accept.join(','));else MediACore.$fileInput.attr('accept', props.accept);\n  } else {\n    MediACore.$fileInput.attr('accept', null);\n  }\n\n  if (props.multiple) {\n    MediACore.$fileInput.attr('multiple', 'true');\n  } else {\n    MediACore.$fileInput.attr('multiple');\n  }\n\n  MediACore.$fileInput.value = null;\n  MediACore.$fileInput.click();\n  return new Promise(function (resolve, reject) {\n    var finish = false;\n    var body = $('body');\n    MediACore.$fileInput.once('change', function () {\n      finish = true;\n      resolve(Array.prototype.map.call(this.files, function (file) {\n        return file;\n      }));\n    });\n    body.once('mousedown', function () {\n      if (finish) return;\n      resolve();\n    });\n  });\n}\n\nfunction MediaInput() {\n  this.$editor = $('.vmedia-media-input-text-container-editor', this);\n  this.$editor.on('paste', this.eventHandler.paste);\n  this.$editor.on('keydown', this.eventHandler.keydown, true);\n  this.$addImagebtn = $('#add-image-btn', this);\n  this.$addImagebtn.on('click', this.eventHandler.clickAddImage);\n  this.$addFilebtn = $('#add-file-btn', this);\n  this.$addFilebtn.on('click', this.eventHandler.clickAddFile);\n  this.$imagePreviewContainer = $('.vmedia-media-input-imagepreview-container', this);\n  this.on('dragover', this.eventHandler.dragOver);\n  this.on('drop', this.eventHandler.drop);\n  this.$sendbtn = $('#send-btn', this);\n  this.$sendbtn.on('click', this.eventHandler.send);\n  this.$toolLeftCtn = $('.vmedia-media-input-tool-container-left', this);\n  this.$pluginContentCtn = $('.vmedia-media-input-plugin-content-container', this);\n  this.snapData = [];\n  this.snapDataHead = 0;\n  this.sync = this.afterAttached();\n  this.snapText();\n}\n\nMediaInput.tag = 'MediaInput'.toLowerCase();\n\nMediaInput.render = function () {\n  return _({\n    \"class\": 'vmedia-media-input',\n    extendEvent: ['send', 'update', 'releaseplugin'],\n    child: {\n      \"class\": 'vmedia-media-input-text-container',\n      child: [{\n        \"class\": 'vmedia-media-input-imagepreview-container',\n        child: {\n          \"class\": 'vmedia-media-input-dropover',\n          child: 'download-ico'\n        }\n      }, {\n        \"class\": 'vmedia-media-input-text-container-editor',\n        attr: {\n          contenteditable: 'true'\n        },\n        on: {}\n      }, {\n        \"class\": 'vmedia-media-input-text-container-buttons',\n        attr: {\n          title: 'Send'\n        }\n      }, {\n        \"class\": 'vmedia-media-input-tool-container',\n        child: [{\n          \"class\": 'vmedia-media-input-tool-container-left',\n          child: [{\n            tag: 'button',\n            attr: {\n              id: 'add-image-btn',\n              title: 'Add image'\n            },\n            child: 'add-image-ico'\n          }, {\n            tag: 'button',\n            attr: {\n              id: 'add-file-btn',\n              title: 'Add file'\n            },\n            child: 'add-file-ico'\n          }]\n        }, {\n          \"class\": 'vmedia-media-input-tool-container-right',\n          child: [{\n            tag: 'button',\n            id: 'send-btn',\n            attr: {\n              title: 'Send'\n            },\n            child: 'send-ico'\n          }]\n        }]\n      }, '.vmedia-media-input-plugin-content-container.blur']\n    }\n  });\n};\n\nMediaInput.prototype.addImage = function (url, title, data) {\n  _({\n    tag: 'imagepreview',\n    attr: {\n      title: title\n    },\n    props: {\n      data: data,\n      imgSrc: url\n    },\n    on: {\n      pressremove: function pressremove() {\n        this.selfRemove();\n      }\n    }\n  }).addTo(this.$imagePreviewContainer);\n};\n\nMediaInput.prototype.addFile = function (url, ext, title, data) {\n  _({\n    tag: 'filepreview',\n    attr: {\n      title: title\n    },\n    props: {\n      fileSrc: url,\n      ext: ext,\n      data: data\n    },\n    on: {\n      pressremove: function pressremove() {\n        this.selfRemove();\n      }\n    }\n  }).addTo(this.$imagePreviewContainer);\n};\n\nMediaInput.property = {};\nMediaInput.property.text = {\n  set: function set(value) {\n    this.$editor.clearChild();\n    value = value || '';\n    var lines = value.split(/\\r*\\n/);\n    if (lines.length < 1) return;\n    this.$editor.addChild(document.createTextNode(lines[0]));\n    lines.shift();\n    lines.forEach(function (line) {\n      this.$editor.addChild(_({\n        child: document.createTextNode(line)\n      }));\n    }.bind(this));\n    this.snapText();\n  },\n  get: function get() {\n    return this.getTextFromElements(this.$editor);\n  }\n};\nMediaInput.property.files = {\n  get: function get() {\n    return Array.prototype.filter.call(this.$imagePreviewContainer.childNodes, function (e) {\n      return e._azar_extendTags && e._azar_extendTags.filepreview;\n    }).map(function (e) {\n      return e.data;\n    });\n  }\n};\nMediaInput.property.images = {\n  get: function get() {\n    return Array.prototype.filter.call(this.$imagePreviewContainer.childNodes, function (e) {\n      return e._azar_extendTags && e._azar_extendTags.imagepreview;\n    }).map(function (e) {\n      return e.data;\n    });\n  }\n}; // MediaInput.property\n\nMediaInput.property.plugins = {\n  set: function set(value) {\n    this.sync = this.sync.then(this._dettachPlugins.bind(this, this._plugins));\n\n    if (value) {\n      if (!(value instanceof Array)) value = [value];\n      this._plugins = value;\n      this.addClass('has-plugin');\n    } else {\n      //remove plugin\n      this.sync.then(this._dettachPlugins.bind(this));\n      this._plugins = null;\n      this.removeClass('has-plugin');\n    }\n\n    this.sync = this.sync.then(this._attachPlugins.bind(this, this._plugins));\n  },\n  get: function get() {\n    return this._plugins || null;\n  }\n};\n\nMediaInput.prototype.appendText = function (text) {\n  var lastBr = null;\n\n  if (this.$editor.childNodes && this.$editor.childNodes.length > 0 && this.$editor.childNodes[this.$editor.childNodes.length - 1].tagName && this.$editor.childNodes[this.$editor.childNodes.length - 1].tagName.toLowerCase() == 'br') {\n    lastBr = this.$editor.childNodes[this.$editor.childNodes.length - 1];\n  }\n\n  var lines = text.split(/\\r?\\n/);\n\n  if (lastBr) {\n    for (var i = 0; i < lines.length; ++i) {\n      if (i > 0) this.$editor.addChild(_('br'));\n\n      var e = _({\n        text: lines[i]\n      });\n\n      this.$editor.addChild(e);\n    }\n  } else {\n    for (var i = 0; i < lines.length; ++i) {\n      if (i > 0) this.$editor.addChildBefore(_('br'), lastBr);\n\n      var e = _({\n        text: lines[i]\n      });\n    }\n\n    this.$editor.addChildBefore(e, lastBr);\n  }\n\n  (0, _Text.setSelectionRange)(this.$editor, Infinity);\n};\n\nMediaInput.prototype._attachPlugins = function (plugins) {\n  if (!plugins) return;\n  var self = this;\n  plugins.forEach(function (plugin) {\n    var oldContent = null;\n\n    var $button = _('button').addTo(self.$toolLeftCtn).on('click', function () {\n      if (self._lastActivePlugin == plugin) return;\n      self.releasePlugin();\n      self._lastActivePlugin = plugin;\n      self.$pluginContentCtn.removeClass('blur');\n      self.$pluginContentCtn.clearChild();\n\n      if (plugin.getContent) {\n        var newContent = plugin.getContent(self, _, $, self.$pluginContentCtn, oldContent);\n        oldContent = newContent;\n        self.$pluginContentCtn.addChild(newContent);\n      }\n\n      var buttonBound = $button.getBoundingClientRect();\n      var rootBound = self.$pluginContentCtn.parentNode.getBoundingClientRect();\n      self.$pluginContentCtn.addStyle({\n        left: buttonBound.left + buttonBound.width / 2 - rootBound.left + 'px',\n        bottom: rootBound.bottom - buttonBound.top + 'px'\n      });\n      if (plugin.onActive) plugin.onActive(self);\n      setTimeout(function () {\n        var outListener = function outListener(event) {\n          if (_EventEmitter[\"default\"].hitElement(self.$pluginContentCtn, event)) {} else if (self._lastActivePlugin == plugin) {\n            var prevented = true;\n            if (plugin.onBlur) plugin.onBlur({\n              preventDefault: function preventDefault() {\n                prevented = false;\n              }\n            });\n\n            if (prevented) {\n              self.releasePlugin();\n              $(document.body).off('click', outListener);\n            }\n          } else {\n            $(document.body).off('click', outListener);\n          }\n        };\n\n        $(document.body).on('click', outListener);\n        self.once('releaseplugin', function (ev) {\n          if (ev.plugin == plugin) {\n            $(document.body).off('click', outListener);\n          }\n        });\n      }, 100);\n    });\n\n    var btnInners = plugin.getTriggerInner(self, _, $, $button);\n    if (!(btnInners instanceof Array)) btnInners = [btnInners];\n    btnInners.forEach(function (e) {\n      if (typeof e == 'string') {\n        e = _({\n          text: e\n        });\n      }\n\n      $button.addChild(e);\n    });\n    if (plugin.onAttached) plugin.onAttached(self);\n  }); //todo\n\n  return true;\n};\n\nMediaInput.prototype.releasePlugin = function () {\n  if (this._lastActivePlugin) {\n    var plugin = this._lastActivePlugin;\n    plugin.onDeactived && plugin.onDeactived(self);\n    this.$pluginContentCtn.addClass('blur');\n    this.emit('releaseplugin', {\n      target: this,\n      plugin: plugin\n    }, this);\n    this._lastActivePlugin = null;\n  }\n};\n\nMediaInput.prototype._dettachPlugins = function (plugins) {\n  if (!plugins) return;\n  var self = this;\n  plugins.forEach(function (plugin) {\n    if (plugin.onAttached) plugin.onAttached(self);\n  }); //todo\n\n  this._lastActivePlugin = null;\n  return true;\n};\n\nMediaInput.prototype.focus = function () {\n  this.$editor.focus();\n  (0, _Text.setSelectionRange)(this.$editor, Infinity);\n};\n\nMediaInput.prototype.clear = function () {\n  Array.prototype.filter.call(this.$imagePreviewContainer.childNodes, function (e) {\n    return e._azar_extendTags && e._azar_extendTags.imagepreview;\n  }).forEach(function (e) {\n    e.selfRemove();\n  });\n  Array.prototype.filter.call(this.$imagePreviewContainer.childNodes, function (e) {\n    return e._azar_extendTags && e._azar_extendTags.filepreview;\n  }).forEach(function (e) {\n    return e.selfRemove();\n  });\n  this.$editor.innerHTML = \"\";\n  this.emit('update', {\n    target: this\n  }, this);\n};\n\nMediaInput.prototype.escapeSpace = function (s) {\n  return s.replace(/\\s/g, '&nbsp');\n};\n\nMediaInput.prototype.unescapeSpace = function (s) {\n  return s.replace(/&nbsp/g, ' ');\n};\n\nMediaInput.prototype.getTextFromElements = function (element) {\n  return (0, _Text.getTextIn)(element); // var self = this;\n  // function visit(e, prevE) {\n  //     var ac = '';\n  //     var isNewLine = false;\n  //     if (prevE && prevE.nodeType != Node.TEXT_NODE) {\n  //         if (prevE.tagName && prevE.tagName.toLowerCase() == 'br') {\n  //             isNewLine = true;\n  //         }\n  //         else if (Element.prototype.getComputedStyleValue.call(prevE, 'display') == 'block') {\n  //             isNewLine = true;\n  //         }\n  //     }\n  //     if (e.nodeType == Node.TEXT_NODE) {\n  //         if (isNewLine) ac += '\\n';\n  //         ac += e.data;\n  //     }\n  //     else {\n  //         var lastE = undefined;\n  //         for (var i = 0; i < e.childNodes.length; ++i) {\n  //             ac += visit(e.childNodes[i], i > 0 ? e.childNodes[i - 1] : null);\n  //         }\n  //     }\n  //     return ac;\n  // }\n  // return visit(element);\n};\n\nMediaInput.prototype.getElementsFromText = function (text) {\n  var newElements = text.split('\\n').map(function (text) {\n    return document.createTextNode(text);\n  }).reduce(function (ac, cr, i, arr) {\n    if (i > 0) ac.push(_('br'));\n    ac.push(cr);\n    return ac;\n  }, []);\n  return newElements;\n}; // MediaInput.prototype.textOnly = function(e) {\n//     if (e.nodeType == Node.TEXT_NODE) return e.textContent;\n//     if (!e.tagName) return '';\n//     if (e.tagName.toLowerCase() == 'br') return '\\n';\n//     return ($(e).getComputedStyleValue('display') == 'block' ? '\\n' : '') + Array.prototype.map.call(e.childNodes, this.textOnly.bind(this)).join('')\n// };\n\n\nMediaInput.prototype.makeTextOnly = function () {\n  var self = this;\n  var editor = this.$editor;\n  Array.apply(null, this.$editor.childNodes).forEach(function (e) {\n    e = $(e);\n    if (e.nodeType == Node.TEXT_NODE) return;\n\n    if (e.tagName) {\n      var tagName = e.tagName.toLowerCase();\n      if (tagName == 'br') return;\n\n      if (tagName.match(/img|script|svg|button|iframe|hr|video|canvas/)) {\n        e.selfRemove(e);\n      }\n\n      if (tagName.match(/select|input|textarea/)) {\n        e.selfReplace(document.createTextNode(e.value));\n        return;\n      }\n\n      var newElements = self.getElementsFromText(self.getTextFromElements(e));\n      var lastElement;\n\n      if (e.getComputedStyleValue('display') == 'block') {\n        lastElement = _('br');\n      } else {\n        lastElement = newElements.pop();\n      }\n\n      e.selfReplace(lastElement);\n      newElements.forEach(function (nE) {\n        editor.addChildBefore(nE, lastElement);\n      });\n    }\n  });\n  this.emit('update', {\n    target: editor\n  }, this);\n};\n\nMediaInput.eventHandler = {};\n\nMediaInput.eventHandler.keydown = function (event) {\n  if (event.key == \"Enter\") {\n    if (!event.ctrlKey && !event.altKey && !event.shiftKey) {\n      event.preventDefault();\n      this.eventHandler.send(event);\n      this.snapText();\n    }\n  }\n\n  if (event.ctrlKey && event.key == 'z') {\n    event.preventDefault();\n    this.undoText();\n  }\n\n  if (event.ctrlKey && event.key == 'x') {\n    setTimeout(this.snapText.bind(this), 100);\n  }\n\n  setTimeout(this.emit.bind(this, 'update', event, this), 1);\n};\n\nMediaInput.eventHandler.send = function (event) {\n  if (this.images.length == 0 && this.text.trim().length == 0 && this.files.length == 0) {\n    return;\n  }\n\n  this.emit('send', event, this);\n  this.snapText();\n};\n\nMediaInput.eventHandler.clickAddImage = function (event) {\n  openFileDialog({\n    accept: 'image/*',\n    multiple: true\n  }).then(function (files) {\n    if (!files) return;\n    files.map(function (file) {\n      var url = (window.URL || window.webkitURL).createObjectURL(file);\n      this.addImage(url, file.name, {\n        file: file,\n        name: file.name,\n        url: url\n      });\n      this.emit('update', event, this);\n    }.bind(this));\n  }.bind(this));\n};\n\nMediaInput.eventHandler.clickAddFile = function (event) {\n  openFileDialog({\n    multiple: true\n  }).then(function (files) {\n    if (!files) return;\n    files.map(function (file) {\n      var url = (window.URL || window.webkitURL).createObjectURL(file);\n\n      if (file.type.match(/^image/)) {\n        this.addImage(url, file.name, {\n          file: file,\n          name: file.name,\n          url: url\n        });\n      } else {\n        var p = file.name.split('.');\n        var ext = p.length > 1 ? p[p.length - 1] : '';\n        this.addFile(url, ext.toUpperCase(), file.name, {\n          file: file,\n          name: file.name,\n          url: url\n        });\n      }\n    }.bind(this));\n    this.emit('update', event, this);\n  }.bind(this));\n};\n\nMediaInput.eventHandler.dragOver = function (event) {\n  event.preventDefault();\n  this._lastDragOver = new Date().getTime();\n  var currentDragOver = this._lastDragOver;\n\n  if (!this.dragOver) {\n    this.dragOver = true;\n    this.addClass('dragover');\n    this.emit('update', event, this);\n  }\n\n  setTimeout(function () {\n    this._waitDragFileOut;\n\n    if (this._lastDragOver == currentDragOver) {\n      this.removeClass('dragover');\n      this.dragOver = false;\n      this.emit('update', event, this);\n    }\n  }.bind(this), 200);\n};\n\nMediaInput.eventHandler.drop = function (event) {\n  event.preventDefault();\n\n  if (event.dataTransfer.items) {\n    for (var i = 0; i < event.dataTransfer.items.length; i++) {\n      if (event.dataTransfer.items[i].kind === 'file') {\n        var file = event.dataTransfer.items[i].getAsFile();\n\n        if (!file.type && file.size % 4096 == 0) {//todo: folder\n        } else {\n          this.addSystemFile(file);\n          this.emit('update', event, this);\n        }\n      }\n    }\n  } else {\n    for (var i = 0; i < event.dataTransfer.files.length; i++) {\n      var file = event.dataTransfer.files[i];\n\n      if (!file.type && file.size % 4096 == 0) {} else {\n        this.addSystemFile(file);\n        this.emit('update', event, this);\n      }\n    }\n  }\n};\n\nMediaInput.prototype.addSystemFile = function (file) {\n  var url = (window.URL || window.webkitURL).createObjectURL(file);\n\n  if (file.type.match(/^image/)) {\n    this.addImage(url, file.name, {\n      file: file,\n      name: file.name,\n      url: url\n    });\n  } else {\n    var p = file.name.split('.');\n    var ext = p.length > 1 ? p[p.length - 1] : '';\n    this.addFile(url, ext.toUpperCase(), file.name, {\n      file: file,\n      name: file.name,\n      url: url\n    });\n  }\n};\n\nMediaInput.eventHandler.paste = function (event) {\n  var pasteData = event.clipboardData || window.clipboardData;\n  var beforePasteElement = [];\n  var self = this;\n\n  function visit(e, ac) {\n    ac.push(e);\n\n    if (e.childNodes) {\n      for (var i = 0; i < e.childNodes.length; ++i) {\n        visit(e.childNodes[i], ac);\n      }\n    }\n  }\n\n  visit(this.$editor, beforePasteElement);\n\n  function relocalCursor() {\n    var afterPasteElement = [];\n    visit(self.$editor, afterPasteElement);\n    var diffElts = afterPasteElement.filter(function (e) {\n      return beforePasteElement.indexOf(e) < 0;\n    });\n\n    if (diffElts.length > 0) {\n      var last = diffElts.pop();\n\n      if (last.nodeType == Node.TEXT_NODE) {\n        var range = document.createRange();\n        range.selectNodeContents(last);\n        range.setStart(last, last.data.length);\n        var sel = window.getSelection();\n        sel.removeAllRanges();\n        sel.addRange(range);\n      } else {\n        (0, _Text.setSelectionRange)(last, Infinity);\n      }\n    }\n  }\n  /**Safari bug */\n\n\n  if (pasteData && pasteData.items) {\n    var items = pasteData.items;\n    var isAddImage = false;\n\n    for (var i = 0; i < items.length; i++) {\n      if (items[i].type.indexOf('image') !== -1) {\n        var blob = items[i].getAsFile();\n        var URLObj = window.URL || window.webkitURL;\n        var source = URLObj.createObjectURL(blob);\n        var file = (0, _file.blobToFile)(blob);\n        var buffer = (0, _file.blobToArrayBuffer)(blob).then(function (arrayBuffer) {\n          this.addImage(source, 'Clipboard', {\n            file: blob,\n            name: null,\n            url: source,\n            blob: blob,\n            arrayBuffer: arrayBuffer\n          });\n          this.emit('update', event, this);\n        }.bind(this));\n        isAddImage = true;\n        this.emit('update', event, this);\n      }\n    }\n\n    if (isAddImage) event.preventDefault();\n    requestAnimationFrame(function () {\n      self.makeTextOnly();\n      relocalCursor();\n    });\n  } else {\n    requestAnimationFrame(function () {\n      var img = $('img', this.$editor, function (img) {\n        if (img) {\n          img = $(img);\n          var source = img.getAttribute('src');\n          img.selfRemove();\n\n          _Dom[\"default\"].imageToCanvas(img).then(function (canvas) {\n            var dataURI = canvas.toDataURL();\n            var blob = (0, _file.dataURItoBlob)(dataURI);\n            var file = (0, _file.blobToFile)(blob);\n            var buffer = (0, _file.blobToArrayBuffer)(blob).then(function (arrayBuffer) {\n              this.addImage(source, 'Clipboard', {\n                dataURI: dataURI,\n                file: blob,\n                name: null,\n                url: source,\n                blob: blob,\n                arrayBuffer: arrayBuffer\n              });\n              this.emit('update', event, this);\n            }.bind(this));\n          }.bind(this), function (e) {})[\"catch\"](function (e) {});\n        }\n      }.bind(this));\n      this.makeTextOnly();\n      relocalCursor();\n    }.bind(this));\n  }\n};\n\nMediaInput.prototype.undoText = function () {\n  if (this.snapDataHead <= 1) return;\n  this.snapDataHead--;\n  if (this.snapDataHead <= 0) return;\n  var newText = this.snapData[this.snapDataHead - 1];\n  this.text = newText;\n  (0, _Text.setSelectionRange)(this.$editor, Infinity);\n};\n\nMediaInput.prototype.redoText = function () {\n  if (this.snapData.length <= this.snapDataHead) return;\n  this.snapDataHead++;\n  var newText = this.snapData[this.snapDataHead - 1];\n  var currentText = this.text;\n  this.text = newText;\n  (0, _Text.setSelectionRange)(this.$editor, Infinity);\n};\n\nMediaInput.prototype.snapText = function () {\n  while (this.snapData.length > this.snapDataHead && this.snapData.length > 0) {\n    this.snapData.pop();\n  }\n\n  var oldText = this.snapData[this.snapDataHead - 1];\n  var newText = this.text;\n  if (newText == oldText) return;\n  this.snapData.push(this.text);\n  this.snapDataHead++;\n};\n\nfunction ImagePreview() {\n  var res = _({\n    extendEvent: 'pressremove',\n    \"class\": ['vmedia-media-input-imagepreview', 'vmedia-no-select'],\n    child: ['img', 'times-ico']\n  });\n\n  res.$img = $('img', res);\n  res.$timesIco = $('times-ico', res);\n  res.$timesIco.on('click', function (event) {\n    res.emit('pressremove', event, res);\n  });\n\n  _OOP[\"default\"].drillProperty(res, res.$img, 'imgSrc', 'src');\n\n  return res;\n}\n\n;\n\nfunction FilePreview() {\n  var res = _({\n    extendEvent: 'pressremove',\n    \"class\": ['vmedia-media-input-filepreview', 'vmedia-no-select'],\n    child: ['attachment-ico', 'times-ico']\n  });\n\n  res.$img = $('attachment-ico', res);\n\n  _OOP[\"default\"].drillProperty(res, res.$img, 'ext');\n\n  res.$timesIco = $('times-ico', res);\n  res.$timesIco.on('click', function (event) {\n    res.emit('pressremove', event, res);\n  });\n  return res;\n}\n\n;\nMediACore.creator.mediainput = MediaInput;\nMediACore.creator.imagepreview = ImagePreview;\nMediACore.creator.filepreview = FilePreview;\n\nMediACore.creator['send-ico'] = function () {\n  return _(['<svg class=\"send\" width=\"100\" height=\"100\" version=\"1.1\" viewBox=\"0 0 26.458 26.458\">', '    <g transform=\"translate(0 -270.54)\">', '        <path d=\"m0.64298 272.44 3.1712 9.5402 22.152 1.7742-22.152 1.7482-3.1712 9.4749 25.323-11.223z\" />', '    </g>', '</svg>'].join(''));\n};\n\nMediACore.creator['add-file-ico'] = function () {\n  return _(['<svg class=\"add-file\" width=\"100\" height=\"100\" version=\"1.1\" viewBox=\"0 0 26.458 26.458\" xmlns=\"http://www.w3.org/2000/svg\">', '    <g transform=\"translate(0 -270.54)\">', '        <path d=\"m4.2431 295.69c-0.74006-0.0759-1.4136-0.33772-2.0047-0.77942-0.19965-0.14919-0.60549-0.55475-0.75233-0.75182-0.45099-0.60524-0.7154-1.2913-0.77699-2.016-0.01275-0.15007-0.01628-2.6111-0.01252-8.7468 0.0049-8.0504 0.0068-8.5472 0.03338-8.6986 0.0883-0.50391 0.22692-0.91024 0.44705-1.3104 0.52794-0.95973 1.452-1.6645 2.5119-1.9158 0.44319-0.10508 0.12729-0.0972 4.1445-0.10308 2.5538-4e-3 3.6864-1e-4 3.7795 0.0121 0.38853 0.0508 0.80777 0.24687 1.2709 0.59434 0.44102 0.33085 0.68272 0.55272 1.7227 1.5813 0.46507 0.45998 1.2812 1.2664 1.8136 1.7921 0.96172 0.94958 1.3847 1.3824 1.696 1.7354 0.61073 0.69257 0.92 1.2063 1.0441 1.7344 0.02613 0.11122 0.02875 0.28598 0.03409 2.2731 0.0047 1.7451 0.0018 2.1574-0.01502 2.178-0.01424 0.0174-0.10685 0.0394-0.2936 0.0699-0.45695 0.0745-1.0078 0.22363-1.4356 0.38862-0.10025 0.0387-0.1888 0.0663-0.19678 0.0613-0.0085-5e-3 -0.01461-0.7983-0.01475-1.9156-2.09e-4 -1.6438-0.0036-1.9208-0.0245-2.0096-0.06972-0.29578-0.28642-0.50043-0.63767-0.60222-0.32942-0.0955-0.31104-0.0947-2.4299-0.10482l-1.9437-9e-3 -0.12495-0.0442c-0.25474-0.0901-0.45899-0.26526-0.5666-0.48578-0.10853-0.22238-0.10356-0.127-0.10407-1.9994-4.63e-4 -1.7153-0.01031-2.1544-0.05446-2.4288-0.06935-0.43095-0.22893-0.69171-0.5027-0.82138l-0.10904-0.0516h-3.1807c-3.4262 0-3.27-4e-3 -3.5482 0.0835-0.68034 0.21325-1.1718 0.754-1.3329 1.4666l-0.0345 0.15261v8.5059c0 8.1045 0.0014 8.5125 0.02871 8.6468 0.08088 0.39719 0.25808 0.72858 0.53956 1.0091 0.28082 0.27984 0.576 0.44186 0.98191 0.53896 0.11389 0.0273 0.36156 0.0293 4.5294 0.0374l4.409 9e-3 0.02019 0.0402c0.0111 0.0221 0.07695 0.15943 0.14632 0.30521s0.17519 0.3518 0.23515 0.45783c0.14341 0.25357 0.43703 0.69284 0.61725 0.92343 0.0793 0.10148 0.14077 0.19003 0.13659 0.19679-0.0073 0.0118-9.9306 0.0132-10.046 1e-3z\" />', '        <path transform=\"matrix(.26458 0 0 .26458 0 270.54)\" d=\"m72.469 65.742v7.4062h-7.4062v7.2852h7.4062v7.2812h7.2793v-7.2812h7.3535v-7.2852h-7.3535v-7.4062zm24.948 11.119a21.371 21.371 0 0 1-21.371 21.371 21.371 21.371 0 0 1-21.371-21.371 21.371 21.371 0 0 1 21.371-21.371 21.371 21.371 0 0 1 21.371 21.371z\" style=\"fill-rule:evenodd;\" />', '        <path d=\"m17.256 283.76 1.921-0.47607-0.04725-4.2884c0-0.50159-0.29516-1.2441-1.0789-2.0168l-4.6989-4.6324c-0.73814-0.72769-1.5947-0.97084-2.1519-0.97084h-7.0235c-2.1533 0.0144-3.4601 2.6226-3.4778 3.4778v17.284c0 2.121 2.2409 3.5346 3.5346 3.5346h10.058l-1.1146-1.9305h-8.6658c-1.1271 0-1.8503-1.1115-1.8503-1.8503v-16.867c0-1.0721 1.1373-1.6977 1.6977-1.6977h6.2175c0.43142 0 0.8103 0.28958 0.8103 1.1742v3.714c0 0.24768 0.36442 0.90967 0.90968 0.90967h3.2537c1.2453 0 1.6905 0.32876 1.6905 1.1613z\"  />', '    </g>', '</svg>'].join(''));\n};\n\nMediACore.creator['add-image-ico'] = function () {\n  return _(['<svg class=\"add-image\" width=\"100\" height=\"100\" version=\"1.1\" viewBox=\"0 0 26.458 26.458\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"absol/src/HTML5/Elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">', '    <g transform=\"translate(0 -270.54)\">', '        <path d=\"m24.73 288.69a5.9808 5.9808 0 0 1-5.9808 5.9808 5.9808 5.9808 0 0 1-5.9808-5.9808 5.9808 5.9808 0 0 1 5.9808-5.9808 5.9808 5.9808 0 0 1 5.9808 5.9808zm1.503-0.037a7.5843 7.5843 0 0 1-7.5843 7.5843 7.5843 7.5843 0 0 1-7.5843-7.5843 7.5843 7.5843 0 0 1 7.5843-7.5843 7.5843 7.5843 0 0 1 7.5843 7.5843z\" style=\"fill-rule:evenodd;fill:#414141\"/>', '        <path d=\"m17.869 284.42v3.4127h-3.4081v1.6066h3.4081v3.438h1.6061v-3.438h3.4432v-1.6066h-3.4432v-3.4127z\" style=\"fill-rule:evenodd;fill:#414141\"/>', '        <path d=\"m24.614 281.39v-6.1305c0-1.6957-1.2841-2.6602-2.6602-2.6602h-18.412c-1.4547 0-2.7249 1.0223-2.7249 2.7249v14.986c0 1.2346 0.99768 2.6028 2.586 2.586h6.9542c-0.36184-0.63963-0.51495-1.0286-0.69323-1.6506h-6.4562c-0.29938 0-0.72246-0.40379-0.72246-0.72247v-1.8082l6.0428-6.7569 2.0296 2.0129 0.9605-1.3029-2.9734-3.1488-5.9885 6.7736v-11.426c0-0.24935 0.30766-0.63476 0.63476-0.63476h18.934c0.3592 0 0.84357 0.19284 0.84357 0.84357v5.2285c0.61147 0.22444 1.1564 0.59412 1.6454 1.0858z\" style=\"fill:#414141\"/>', '        <circle cx=\"17.869\" cy=\"277.61\" r=\"1.6891\" style=\"fill-rule:evenodd;fill:#414141\"/>', '    </g>', '</svg>'].join(''));\n};\n\nMediACore.creator['attachment-ico'] = function () {\n  return _(['<svg class=\"attachment\" width=\"1024\" height=\"1024\"  version=\"1.1\" viewBox=\"0 0 1024 1024\" xmlns=\"http://www.w3.org/2000/svg\" >', '    <path d=\"M145.6 0C100.8 0 64 35.2 64 80v862.4C64 987.2 100.8 1024 145.6 1024h732.8c44.8 0 81.6-36.8 81.6-81.6V324.8L657.6 0h-512z\" fill=\"#8199AF\"/>', '    <path d=\"M960 326.4v16H755.2s-100.8-20.8-99.2-108.8c0 0 4.8 92.8 97.6 92.8H960z\" fill=\"#617F9B\"/>', '    <path d=\"M657.6 0v233.6c0 25.6 17.6 92.8 97.6 92.8H960L657.6 0z\" fill=\"#fff\"/>', '    <path d=\"m491.77 770.31c17.6-19.2 17.6-48 0-67.2s-48-17.6-65.6 0l-147.2 147.2c-17.6 17.6-17.6 48 0 65.6s48 19.2 65.6 0l91.2-89.6c4.8-4.8 4.8-12.8 0-17.6s-14.4-6.4-19.2 0l-57.6 56c-8 8-19.2 8-27.2 0s-8-20.8 0-28.8l56-56c20.8-20.8 54.4-20.8 75.2 0s20.8 54.4 0 75.2l-89.6 89.6c-33.6 33.6-88 33.6-123.2 0-33.6-33.6-33.6-88 0-121.6l147.2-147.2c33.6-33.6 89.6-33.6 123.2 0s33.6 88 0 121.6l-14.4 14.4c-1.6-14.4-6.4-28.8-16-41.6z\" style=\"fill:#fff\"/>', '    <path d=\"m130.09 23.864h504.75v182.93h-545.65v-140.08c0.34155-16.845 13.608-42.414 40.9-42.847z\" style=\"fill-opacity:.29648;fill-rule:evenodd;fill:#fff\"/>', '</svg>'].join(''));\n};\n\nMediACore.creator['attachment-ico'].property = {\n  ext: {\n    set: function set(value) {\n      value = value || '';\n\n      if (this.$ext) {\n        this.$ext.selfRemove();\n      }\n\n      this.$ext = _Svg[\"default\"].ShareInstance._('<text text-anchor=\"middle\" x=\"321.39\" y=\"170\" font-size=\"145.76\" style=\"fill:white;\" >' + value + '</text>').addTo(this);\n    },\n    get: function get() {\n      return this._ext || '';\n    }\n  }\n};\n\nMediACore.creator['times-ico'] = function () {\n  return _(['<svg class=\"times\" width=\"100\" height=\"100\" version=\"1.1\" viewBox=\"0 0 26.458 26.458\" xmlns=\"http://www.w3.org/2000/svg\">', '    <g transform=\"translate(0 -270.54)\">', '        <path d=\"m7.7013 276.49 5.4832 5.4832 5.5494-5.5494 1.7874 1.7874-5.5291 5.5291 5.4957 5.4957-1.754 1.754-5.5124-5.5124-5.5542 5.5542-1.7623-1.7623 5.5375-5.5375-5.5208-5.5208zm17.103 7.3351a11.558 11.558 0 0 1-11.558 11.558 11.558 11.558 0 0 1-11.558-11.558 11.558 11.558 0 0 1 11.558-11.558 11.558 11.558 0 0 1 11.558 11.558z\" style=\"fill-rule:evenodd;\"/>', '    </g>'].join(''));\n};\n\nMediACore.creator['download-ico'] = function () {\n  return _(['<svg class=\"download\" width=\"100mm\" height=\"100mm\" version=\"1.1\" viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\">', '    <g transform=\"translate(0,-197)\">', '        <path d=\"m44.888 209.14h13.982c1.1087 0.0459 2.2328 0.74137 2.317 2.3612v23.694h13.622c1.9742-0.18801 3.004 2.6244 1.9175 4.1118l-23.469 23.918c-0.876 0.77477-1.9993 0.77232-2.9362 0l-23.559-24.009c-0.86532-1.0422 0.11658-4.1953 2.3821-4.2047h13.268v-22.939c-0.08167-1.1772 0.78292-2.9507 2.4768-2.9312z\" style=\"fill:#00c3e5\"/>', '        <path d=\"m86.97 276.99a3.5027 3.5696 0 0 1-3.5027 3.5696 3.5027 3.5696 0 0 1-3.5027-3.5696 3.5027 3.5696 0 0 1 3.5027-3.5696 3.5027 3.5696 0 0 1 3.5027 3.5696zm-12.768 0a3.5027 3.5696 0 0 1-3.5027 3.5696 3.5027 3.5696 0 0 1-3.5027-3.5696 3.5027 3.5696 0 0 1 3.5027-3.5696 3.5027 3.5696 0 0 1 3.5027 3.5696zm-60.003-16.135h24.609c9.1206 13.508 17.573 12.942 26.609 0h23.839c2.8529 5e-3 3.5087 2.3205 3.4679 3.8227v18.953c0.04867 1.3083-1.5145 2.9901-2.7505 2.9832h-76.253c-1.049 0.0441-2.6554-1.4851-2.6306-3.1451l-1.56e-4 -18.792c0.0024-1.3549 0.50958-3.7927 3.1091-3.8227z\" style=\"fill-rule:evenodd;fill:#00c3e5\"/>', '    </g>', '</svg>'].join(''));\n};\n\nMediACore.creator['plus-ico'] = function () {\n  return _('<svg class=\"_7oal\" height=\"24\" width=\"24\" viewBox=\"0 0 24 24\"><g fill=\"none\" fill-rule=\"evenodd\"><polygon points=\"-6,30 30,30 30,-6 -6,-6 \"></polygon><path d=\"m18,11l-5,0l0,-5c0,-0.552 -0.448,-1 -1,-1c-0.5525,0 -1,0.448 -1,1l0,5l-5,0c-0.5525,0 -1,0.448 -1,1c0,0.552 0.4475,1 1,1l5,0l0,5c0,0.552 0.4475,1 1,1c0.552,0 1,-0.448 1,-1l0,-5l5,0c0.552,0 1,-0.448 1,-1c0,-0.552 -0.448,-1 -1,-1m-6,13c-6.6275,0 -12,-5.3725 -12,-12c0,-6.6275 5.3725,-12 12,-12c6.627,0 12,5.3725 12,12c0,6.6275 -5.373,12 -12,12\" ></path></g></svg>');\n};\n\n_ACore[\"default\"].install(MediaInput);\n\nvar _default = MediaInput;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/MediaInput.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/Menu.js":
/*!*********************************************!*\
  !*** ./node_modules/absol-acomp/js/Menu.js ***!
  \*********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.Dropdown = Dropdown;\nexports.Dropright = Dropright;\nexports.HMenu = HMenu;\nexports.HMenuItem = HMenuItem;\nexports.MenuButton = MenuButton;\nexports.VMenu = VMenu;\nexports.VMenuItem = VMenuItem;\nexports.VMenuLine = VMenuLine;\nexports.VRootMenu = VRootMenu;\n\n__webpack_require__(/*! ../css/menu.css */ \"./node_modules/absol-acomp/css/menu.css\");\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Dom = _interopRequireWildcard(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _EventEmitter = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nvar _BlurTrigger = _interopRequireDefault(__webpack_require__(/*! ./tool/BlurTrigger */ \"./node_modules/absol-acomp/js/tool/BlurTrigger.js\"));\n\nvar _ResizeSystem = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/ResizeSystem */ \"./node_modules/absol/src/HTML5/ResizeSystem.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction MenuButton() {\n  this.$text = $('.absol-vmenu-button-text', this);\n  this.$key = $('.absol-vmenu-button-key', this);\n  this.$arrow = $('.absol-vmenu-arrow', this);\n  this.$iconCtn = $('.absol-vmenu-button-ext-icon-container', this);\n\n  _OOP[\"default\"].drillProperty(this, this.$text, 'text', 'innerHTML');\n\n  _OOP[\"default\"].drillProperty(this, this.$key, 'key', 'innerHTML');\n}\n\nMenuButton.tag = 'menubutton';\n\nMenuButton.render = function () {\n  return _({\n    tag: 'button',\n    \"class\": 'absol-vmenu-button',\n    child: [{\n      \"class\": 'absol-vmenu-button-ext-icon-container',\n      child: 'img.absol-vmenu-button-icon'\n    }, '.absol-vmenu-button-text', '.absol-vmenu-button-key', {\n      \"class\": 'absol-vmenu-arrow-container',\n      child: 'span.absol-vmenu-arrow'\n    }]\n  });\n};\n\nMenuButton.property = {};\nMenuButton.property.extendClasses = {\n  set: function set(value) {\n    var self = this;\n    this.extendClasses.forEach(function (className) {\n      self.removeClass(className);\n    });\n    this._extendClass = [];\n    if (!value) return;\n\n    if (typeof value == 'string') {\n      value = value.split(/\\s+/).filter(function (c) {\n        return c.length > 0;\n      });\n    }\n\n    if (value instanceof Array) {\n      this._extendClass = value;\n\n      this._extendClass.forEach(function (className) {\n        self.addClass(className);\n      });\n    } else {\n      throw new Error('Invalid extendClasses');\n    }\n  },\n  get: function get() {\n    return this._extendClass || [];\n  }\n};\nMenuButton.property.icon = {\n  set: function set(value) {\n    this.$iconCtn.clearChild();\n    this._icon = value;\n\n    if (value) {\n      _(value).addTo(this.$iconCtn);\n    }\n  },\n  get: function get() {\n    return this._icon;\n  }\n};\nMenuButton.property.iconSrc = {\n  set: function set(value) {\n    if (value) this.icon = {\n      tag: 'img',\n      props: {\n        src: value\n      }\n    };else this.icon = value;\n  },\n  get: function get() {\n    return this.icon && this.icon.props && this.icon.props.src;\n  }\n};\nMenuButton.property.extendStyle = {\n  set: function set(value) {\n    this.removeStyle(this._extendStyle || {});\n    this._extendStyle = value || {};\n    this.addStyle(this.extendStyle);\n  },\n  get: function get() {\n    return this._extendStyle || {};\n  }\n};\n\n_ACore[\"default\"].install(MenuButton);\n/***\r\n *\r\n * @extends Follower\r\n * @constructor\r\n */\n\n\nfunction Dropdown() {\n  this.$container = $('.absol-dropdown-content', this);\n  this.$container.followTarget = this;\n  this.$container.anchor = [1, 2, 6, 5];\n}\n\nDropdown.tag = 'dropdown';\n\nDropdown.render = function () {\n  return _({\n    \"class\": ['absol-drop-hidden', 'absol-dropdown'],\n    child: 'follower.absol-dropdown-content.as-bscroller'\n  });\n};\n\nDropdown.property = {};\nDropdown.property.show = {\n  set: function set(value) {\n    if (value) {\n      this.removeClass('absol-drop-hidden'); // ResizeSystem.update();\n\n      if (this.$container.lastChild && this.$container.lastChild.$items) {\n        this.$container.lastChild.$items.forEach(function (itemElt) {\n          if (itemElt.autoFixParentSize) {\n            itemElt.autoFixParentSize();\n          }\n        });\n      }\n\n      var aPst = this.findAvailablePosition();\n\n      if (aPst.crampedHeight) {\n        this.removeClass('overlap-top'); // this.$container.followTarget = null;?\n\n        this.$container.addStyle({\n          'max-height': aPst.maxHeight + 'px'\n        });\n        this.$container.refollow();\n        this.$container.updatePosition();\n        this.$container.addStyle('top', this.getBoundingClientRect().top + aPst.posTop + 'px');\n      } else {\n        this.$container.removeStyle('max-height').removeStyle('top');\n        this.$container.refollow();\n        this.$container.updatePosition();\n      }\n    } else {\n      this.addClass('absol-drop-hidden');\n    }\n  },\n  get: function get() {\n    return !this.hasClass('absol-drop-hidden');\n  }\n};\n\nDropdown.prototype.findAvailablePosition = function () {\n  var outBound = _Dom[\"default\"].traceOutBoundingClientRect(document.body);\n\n  var containerBound = this.$container.getBoundingClientRect();\n  var bound = this.getBoundingClientRect();\n  var distTop = bound.top - outBound.top;\n  var distLeft = bound.left - outBound.left;\n  var distRight = -bound.right + outBound.right;\n  var distBottom = -bound.bottom + outBound.bottom;\n  var result = {};\n  if (distLeft >= containerBound.width) result.left = true;\n  if (distTop >= containerBound.height) result.top = true;\n  if (distRight >= containerBound.width) result.right = true;\n  if (distBottom >= containerBound.height) result.bottom = true;\n  if (distRight + bound.width >= containerBound.width) result.overlapRight = true;\n  if (distLeft + bound.width >= containerBound.width) result.overlapLeft = true;\n  if (distBottom + bound.height >= containerBound.height) result.overlapBottom = true;\n  if (distTop + bound.height >= containerBound.height) result.overlapTop = true;\n\n  if (!result.overlapTop && !result.overlapBottom) {\n    result.crampedHeight = true;\n    result.maxHeight = outBound.height - 20;\n    result.posTop = distBottom - Math.min(containerBound.height, result.maxHeight) + bound.height - 10;\n  }\n\n  return result;\n};\n\nDropdown.prototype.addChild = function (child) {\n  if (child instanceof Array) {\n    for (var i = 0; i < child.length; ++i) {\n      this.addChild(child[i]);\n    }\n  } else {\n    if (!this.$trigger) {\n      this[\"super\"](child);\n      this.$trigger = child;\n    } else {\n      this.$container.addChild(child);\n    }\n  }\n};\n\nDropdown.prototype.clearChild = function () {\n  if (this.$trigger) {\n    this.$trigger.selfRemove();\n    this.$trigger = undefined;\n  }\n\n  this.$container.clearChild();\n};\n\nDropdown.prototype.init = function (props) {\n  props = props || {};\n  Object.assign(this, props);\n};\n\nfunction Dropright() {\n  this.$container = $('.absol-dropright-content', this);\n  this.$container.followTarget = this;\n  this.$container.anchor = [0, 3, 7, 4];\n}\n\nDropright.tag = 'dropright';\n\nDropright.render = function () {\n  return _({\n    \"class\": ['absol-drop-hidden', 'absol-dropright'],\n    child: 'follower.absol-dropright-content.as-bscroller',\n    data: {\n      $trigger: undefined,\n      $content: undefined,\n      _isShow: false\n    }\n  });\n};\n\nObject.assign(Dropright.prototype, Dropdown.prototype); //is the same\n\nDropright.prototype.addChild = Dropdown.prototype.addChild;\nDropright.prototype.clearChild = Dropdown.prototype.clearChild;\nDropright.property = Object.assign({}, Dropdown.property);\n\nfunction VMenuLine() {\n  return _('<div class=\"absol-vmenu-line\"><div></div></div>');\n}\n\nVMenuLine.tag = 'VMenuLine'.toLowerCase();\n\nfunction VMenuItem() {\n  var thisVM = this;\n  this.$dropper = $('dropright', this);\n  this.$vmenu = $('vmenu', this);\n  this.$button = $('menubutton', this);\n  this.$text = thisVM.$button.$text;\n  this.$key = thisVM.$button.$key;\n  this.$arrow = thisVM.$button.$arrow;\n  this.$iconCtn = thisVM.$button.$iconCtn;\n\n  _OOP[\"default\"].drillProperty(this, this.$button, ['text', 'extendClasses', 'extendStyle', 'key', 'icon', 'iconSrc']);\n\n  _OOP[\"default\"].drillProperty(this, this.$vmenu, ['activeTab']);\n\n  this.eventHandler = _OOP[\"default\"].bindFunctions(this, VMenuItem.eventHandler);\n  this.$vmenu.on('press', this.eventHandler.pressItem, true);\n  this.$button.on('click', this.eventHandler.clickButton, true);\n  this.$button.on('mouseenter', this.eventHandler.enterButton, true);\n  this._textMarginRight = 0;\n}\n\nVMenuItem.tag = 'VMenuItem'.toLowerCase();\n\nVMenuItem.render = function () {\n  return _({\n    tag: 'dropright',\n    extendEvent: ['press', 'enter'],\n    child: ['menubutton', {\n      tag: 'vmenu'\n    }]\n  });\n};\n\nVMenuItem.prototype.init = function (props) {\n  Object.assign(this, props || {});\n};\n\nVMenuItem.prototype.autoFixParentSize = function () {\n  var parentWidth = this.$dropper.getBoundingClientRect().width; // dropper is fixed parent content size\n\n  if (!parentWidth) return;\n  var buttonWidth = this.$button.getBoundingClientRect().width;\n  var fontSize = this.$text.getFontSize();\n  this._textMarginRight = parentWidth - buttonWidth + this._textMarginRight;\n  this.$text.addStyle('margin-right', this._textMarginRight / fontSize + 'em');\n};\n\nVMenuItem.eventHandler = {};\n\nVMenuItem.eventHandler.enterButton = function (event) {\n  event.menuItem = this;\n\n  var newEvent = _EventEmitter[\"default\"].copyEvent(event);\n\n  this.emit('enter', newEvent, this);\n};\n\nVMenuItem.eventHandler.pressItem = function (event) {\n  var newEvent = _EventEmitter[\"default\"].copyEvent(event, {\n    target: this\n  });\n\n  this.emit('press', newEvent, this);\n};\n\nVMenuItem.eventHandler.clickButton = function (event) {\n  event.menuDontHide = this.items && this.items.length > 0;\n  event.menuItem = this;\n  event.vmenuItem = this;\n\n  var newEvent = _EventEmitter[\"default\"].copyEvent(event, {\n    target: this\n  });\n\n  this.emit('press', newEvent, this);\n};\n\nVMenuItem.property = {};\nVMenuItem.property.items = {\n  set: function set(items) {\n    items = items || [];\n\n    if (items.length > 0) {\n      this.$arrow.addClass(['mdi', 'mdi-chevron-right']);\n    } else {\n      this.$arrow.removeClass(['mdi', 'mdi-chevron-right']);\n    }\n\n    this.$vmenu.items = items;\n  },\n  get: function get() {\n    return this.$vmenu.items;\n  }\n};\nVMenuItem.property.disabled = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('absol-menu-item-disabled');\n    } else {\n      this.removeClass('absol-menu-item-disabled');\n    }\n  },\n  get: function get() {\n    return this.hasClass('absol-menu-item-disabled');\n  }\n};\nVMenuItem.property.hidden = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('absol-menu-item-hidden');\n    } else {\n      this.removeClass('absol-menu-item-hidden');\n    }\n  },\n  get: function get() {\n    return this.hasClass('absol-menu-item-hidden');\n  }\n};\n/**\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction VMenu() {}\n\nVMenu.tag = 'vmenu';\n\nVMenu.render = function () {\n  return _({\n    \"class\": 'absol-vmenu',\n    extendEvent: 'press'\n  });\n};\n\nVMenu.property = {};\nVMenu.property.activeTab = {\n  set: function set(tabIndex) {\n    this._activeTab = tabIndex;\n\n    if (this.$items) {\n      for (var i = 0; i < this.$items.length; ++i) {\n        var item = this.$items[i];\n        item.show = i == tabIndex && !item.disabled;\n        item.activeTab = -1;\n\n        if (i == tabIndex && !item.disabled) {\n          item.$button && item.items && item.items.length > 0 && item.$button.addClass('absol-vmenu-button-hover');\n        } else {\n          item.$button && item.$button.removeClass('absol-vmenu-button-hover');\n        }\n      }\n    }\n  },\n  get: function get() {\n    return this._activeTab;\n  }\n};\nVMenu.property.extendStyle = {\n  set: function set(value) {\n    this.removeStyle(this._extendStyle || {});\n    this._extendStyle = value || {};\n    this.addStyle(this.extendStyle);\n  },\n  get: function get() {\n    return this._extendStyle || {};\n  }\n};\nVMenu.property.extendClasses = {\n  set: function set(value) {\n    var self = this;\n    this.extendClasses.forEach(function (className) {\n      self.removeClass(className);\n    });\n    this._extendClass = [];\n    if (!value) return;\n\n    if (typeof value == 'string') {\n      value = value.split(/\\s+/).filter(function (c) {\n        return c.length > 0;\n      });\n    }\n\n    if (value instanceof Array) {\n      this._extendClass = value;\n\n      this._extendClass.forEach(function (className) {\n        self.addClass(className);\n      });\n    } else {\n      throw new Error('Invalid extendClasses');\n    }\n  },\n  get: function get() {\n    return this._extendClass || [];\n  }\n};\nVMenu.eventHandler = {};\n\nVMenu.eventHandler.enterItem = function (event) {\n  var tabIndex = event.menuItem._tabIndex;\n  this.activeTab = tabIndex;\n};\n\nVMenu.eventHandler.pressItem = function (event) {\n  this.emit('press', _EventEmitter[\"default\"].copyEvent(event, {\n    target: this\n  }), this);\n};\n\nVMenu.property.items = {\n  set: function set(items) {\n    this._childFromItems(items || []);\n  },\n  get: function get() {\n    return this.$items;\n  }\n};\n\nVMenu.prototype.init = function (props) {\n  Object.assign(this, props || {});\n};\n\nVMenu.prototype._childFromItems = function (items) {\n  this.clearChild();\n  this.$items = items.map(function (item, index) {\n    var itemElt;\n\n    if (typeof item === 'string' && (item.substr(0, 1) === '-' || item.substr(0, 1) === '=')) {\n      itemElt = _('vmenuline');\n    } else if ((0, _Dom.isDomNode)(item)) {\n      itemElt = item;\n    } else if (item.child || item[\"class\"] || item.tag || item.style || typeof item === 'string') {\n      itemElt = _(item);\n    } else {\n      itemElt = _({\n        tag: 'vmenuitem',\n        props: Object.assign({\n          _tabIndex: index\n        }, item),\n        on: {\n          enter: {\n            callback: this.eventHandler.enterItem,\n            cap: true\n          },\n          press: {\n            callback: this.eventHandler.pressItem,\n            cap: true\n          }\n        }\n      });\n    }\n\n    this.addChild(itemElt);\n    return itemElt;\n  }.bind(this)); //todo\n};\n\nfunction HMenuItem() {\n  this.blurTrigger = null;\n  this.$vmenu = $('vmenu', this);\n  this.$dropDown = this;\n  this.$button = $('button.absol-hmenu-button', this);\n\n  _OOP[\"default\"].drillProperty(this, this.$button, 'text', 'innerHTML');\n\n  _OOP[\"default\"].drillProperty(this, this.$vmenu, 'items');\n\n  _OOP[\"default\"].drillProperty(this, this.$vmenu, 'activeTab');\n\n  this.$button.on('click', this.eventHandler.clickButton);\n  this.$button.on('mouseenter', this.eventHandler.enterButton, true);\n  this.$vmenu.on('press', this.eventHandler.pressItem, true); //property show not need because dropdown is itself\n\n  return this;\n}\n\nHMenuItem.tag = 'HMenuItem'.toLowerCase();\n\nHMenuItem.render = function () {\n  return _({\n    tag: 'dropdown',\n    extendEvent: ['press', 'enter'],\n    child: ['button.absol-hmenu-button', 'vmenu']\n  });\n};\n\nHMenuItem.eventHandler = {};\n\nHMenuItem.eventHandler.clickButton = function (event) {\n  event.menuItem = this;\n  event.hmenuItem = this;\n  this.emit('press', _EventEmitter[\"default\"].copyEvent(event, {\n    target: this\n  }), this);\n};\n\nHMenuItem.eventHandler.enterButton = function (event) {\n  event.menuItem = this;\n  this.emit('enter', _EventEmitter[\"default\"].copyEvent(event, {\n    target: this\n  }), this);\n};\n\nHMenuItem.eventHandler.pressItem = function (event) {\n  this.emit('press', _EventEmitter[\"default\"].copyEvent(event, {\n    target: this\n  }), this);\n};\n\nHMenuItem.property = {};\nHMenuItem.property.disabled = VMenuItem.property.disabled;\nHMenuItem.property.hidden = VMenuItem.property.hidden;\n\nHMenuItem.prototype.init = function (props) {\n  props = props || {};\n  Object.assign(this, props);\n};\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\n\nfunction HMenu() {}\n\nHMenu.tag = 'hmenu';\n\nHMenu.render = function () {\n  return _({\n    \"class\": 'absol-hmenu',\n    extendEvent: ['press', 'enter', 'activetab', 'cancel']\n  });\n};\n\nHMenu.eventHandler = {};\n\nHMenu.eventHandler.pressItem = function (event) {\n  /**\r\n   * this.activeTab can be undefined\r\n   * undefine >= 0 => false\r\n   * undefine < 0 => false\r\n   */\n  if (event.menuItem.items && event.menuItem.items.length > 0 && !(this.activeTab >= 0)) {\n    this.activeTab = event.menuItem._tabIndex;\n  } else {\n    event.isLeaf = !event.menuItem.items || !event.menuItem.items.length;\n    this.emit('press', event, this);\n  }\n};\n\nHMenu.eventHandler.enterItem = function (event) {\n  if (this.activeTab >= 0) {\n    this.activeTab = event.menuItem._tabIndex;\n  }\n};\n\nHMenu.eventHandler.clickSomewhere = function (event) {\n  // if (EventEmitter.hitElement(this, event)) return;\n  this.activeTab = -1; // window.removeEventListener('blur', this.eventHandler.clickSomewhere);\n};\n\nHMenu.prototype._childFromItems = function (items) {\n  this.clearChild();\n  this.$items = items.map(function (item, index) {\n    var res = _({\n      tag: 'hmenuitem',\n      props: Object.assign({\n        _tabIndex: index\n      }, item),\n      on: {\n        press: {\n          callback: this.eventHandler.pressItem,\n          cap: true\n        },\n        enter: {\n          callback: this.eventHandler.enterItem,\n          cap: true\n        }\n      }\n    });\n\n    this.addChild(res);\n    return res;\n  }.bind(this));\n};\n\nHMenu.prototype.init = function (props) {\n  Object.assign(this, props || {});\n};\n\nHMenu.property = {};\nHMenu.property.items = {\n  set: function set(items) {\n    this._childFromItems(items || []);\n  },\n  get: function get() {\n    return this.$items;\n  }\n};\nHMenu.property.activeTab = {\n  /***\r\n   * @this HMenu\r\n   * @param tabIndex\r\n   */\n  set: function set(tabIndex) {\n    var lastValue = this._activeTab;\n    this._activeTab = tabIndex;\n\n    for (var i = 0; i < this.$items.length; ++i) {\n      var item = this.$items[i];\n      item.show = i == tabIndex && !item.disabled;\n      item.activeTab = -1;\n\n      if (i == tabIndex && !item.disabled) {\n        item.$button && item.items && item.items.length > 0 && item.$button.addClass('absol-hmenu-button-hover');\n      } else {\n        item.$button && item.$button.removeClass('absol-hmenu-button-hover');\n      }\n    }\n\n    if (!(lastValue >= 0) && this._activeTab >= 0) {\n      if (this.blurTrigger) {\n        this.blurTrigger.destroy();\n      }\n\n      this.blurTrigger = new _BlurTrigger[\"default\"]([this], \"click\", this.eventHandler.clickSomewhere, 100, 10);\n    } else if (lastValue >= 0 && !(this._activeTab >= 0)) {\n      if (this.blurTrigger) {\n        this.blurTrigger.destroy();\n        this.blurTrigger = null;\n      }\n    }\n\n    if (lastValue >= 0) {\n      if (tabIndex >= 0 && tabIndex != lastValue) {\n        this.emit('activetab', {\n          type: 'activetab',\n          tabIndex: tabIndex,\n          target: this\n        }, this);\n      } else if (!(tabIndex >= 0)) {\n        this.emit('cancel', {\n          type: 'cancel',\n          lastActiveIndex: lastValue,\n          target: this\n        }, this);\n      }\n    } else {\n      if (tabIndex >= 0) {\n        this.emit('activetab', {\n          type: 'activetab',\n          tabIndex: tabIndex,\n          target: this\n        }, this);\n      }\n    }\n  },\n  get: function get() {\n    return this._activeTab;\n  }\n};\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction VRootMenu() {\n  var _this = this;\n\n  this._items = [];\n  this.$attachhook = _({\n    tag: 'attachhook',\n    props: {\n      prevWidth: 0,\n      requestUpdateSize: function requestUpdateSize() {\n        var newWidth = _this.getBoundingClientRect().width;\n\n        if (newWidth === _this.$attachhook.prevWidth) return;\n        _this.$attachhook.prevWidth = newWidth;\n        Array.prototype.forEach.call(_this.childNodes, function (elt) {\n          if (elt.autoFixParentSize) {\n            elt.autoFixParentSize();\n          }\n        });\n      }\n    },\n    on: {\n      attached: function attached() {\n        _ResizeSystem[\"default\"].add(_this.$attachhook);\n\n        _this.$attachhook.requestUpdateSize();\n      }\n    }\n  }).addTo(this);\n  this.items = [];\n}\n\nVRootMenu.tag = 'VRootMenu'.toLowerCase();\n\nVRootMenu.render = function () {\n  return _({\n    \"class\": ['as-v-root-menu'],\n    extendEvent: ['press', 'enter', 'activetab', 'cancel']\n  });\n};\n\nVRootMenu.prototype._childFromItems = function (items) {\n  var _this2 = this;\n\n  var thisM = this;\n\n  while (this.lastChild && this.lastChild !== this.$attachhook) {\n    this.lastChild.remove();\n  }\n\n  while (this.firstChild && this.firstChild !== this.$attachhook) {\n    this.firstChild.remove();\n  }\n\n  this.$items = items.map(function (item, i) {\n    var itemElt;\n\n    if (typeof item === 'string' && (item.substr(0, 1) === '-' || item.substr(0, 1) === '=')) {\n      itemElt = _('vmenuline');\n    } else if ((0, _Dom.isDomNode)(item)) {\n      itemElt = item;\n    } else if (item.child || item[\"class\"] || item.tag || item.style || typeof item === 'string') {\n      itemElt = _(item);\n    } else {\n      itemElt = _({\n        tag: 'vmenuitem',\n        props: item,\n        on: {\n          enter: thisM.eventHandler.enterItem,\n          press: thisM.eventHandler.pressItem\n        }\n      });\n    }\n\n    itemElt._tabIndex = i;\n    thisM.addChild(itemElt);\n    return itemElt;\n  });\n  this.$attachhook.prevWidth = 0;\n  this.$attachhook.requestUpdateSize();\n  (0, _ACore.$$)('img', this).filter(function (x) {\n    return !!x.getAttribute('src') && !x.classList.contains('absol-vmenu-button-icon');\n  }).forEach(function (elt) {\n    (0, _Dom.waitImageLoaded)(elt).then(function () {\n      return _this2.$attachhook.requestUpdateSize();\n    });\n  });\n};\n\nVRootMenu.property = Object.assign({}, HMenu.property);\nVRootMenu.eventHandler = Object.assign({}, HMenu.eventHandler);\n\n_ACore[\"default\"].install([HMenu, VMenuItem, VMenu, Dropright, VMenuLine, Dropdown, HMenuItem, VRootMenu]);\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/Menu.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/MessageDialog.js":
/*!******************************************************!*\
  !*** ./node_modules/absol-acomp/js/MessageDialog.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _FlexiconButton = _interopRequireDefault(__webpack_require__(/*! ./FlexiconButton */ \"./node_modules/absol-acomp/js/FlexiconButton.js\"));\n\n__webpack_require__(/*! ../css/messagedialog.css */ \"./node_modules/absol-acomp/css/messagedialog.css\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction MessageDialog() {\n  this.$header = (0, _ACore.$)('.as-message-dialog-header', this);\n  this.$title = (0, _ACore._)({\n    tag: 'span',\n    \"class\": 'as-message-dialog-title',\n    child: {\n      text: ''\n    }\n  });\n  this.$body = (0, _ACore.$)('.as-message-dialog-body', this);\n  this.$footer = (0, _ACore.$)('.as-message-dialog-footer', this);\n  this.$actionBtns = [];\n}\n\nMessageDialog.tag = 'MessageDialog'.toLowerCase();\n\nMessageDialog.render = function () {\n  return (0, _ACore._)({\n    extendEvent: ['action'],\n    \"class\": 'as-message-dialog',\n    child: [{\n      \"class\": 'as-message-dialog-header'\n    }, {\n      \"class\": 'as-message-dialog-body'\n    }, {\n      \"class\": 'as-message-dialog-footer'\n    }]\n  });\n};\n\n['addChild', 'removeChild', 'clearChild', 'addChildBefore', 'addChildAfter'].forEach(function (key) {\n  MessageDialog.prototype[key] = function () {\n    this.$body[key].apply(this.$body, arguments);\n    return this;\n  };\n});\n\nMessageDialog.prototype._makeActionBtn = function (action) {\n  var _this = this;\n\n  var button = (0, _ACore._)({\n    tag: _FlexiconButton[\"default\"].tag,\n    \"class\": action[\"class\"] || [],\n    props: {\n      text: action.text || action.name,\n      icon: action.icon || null\n    },\n    on: {\n      click: function click(event) {\n        _this.emit('action', {\n          type: 'action',\n          target: _this,\n          originalEvent: event,\n          action: action\n        }, _this);\n      }\n    }\n  });\n  if (action.name) button.attr('data-name', action.name);\n  return button;\n};\n\nMessageDialog.property = {};\nMessageDialog.property.dialogActions = {\n  /***\r\n   * @this MessageDialog\r\n   * @param actions\r\n   */\n  set: function set(actions) {\n    var _this2 = this;\n\n    this._actions = actions || [];\n    this.$actionBtns.forEach(function (button) {\n      return button.remove();\n    });\n    this.$actionBtns = this._actions.map(function (action) {\n      return _this2._makeActionBtn(action);\n    });\n    this.$footer.addChild(this.$actionBtns);\n  },\n  get: function get() {\n    return this._actions;\n  }\n};\nMessageDialog.property.dialogTitle = {\n  set: function set(value) {\n    this._dialogTitle = value;\n    this.$title.firstChild.data = '';\n    this.$title.attr('data-ml-key', undefined);\n\n    if (typeof value === \"string\") {\n      this.$title.firstChild.data = value;\n    } else if (value && value.mlKey) {\n      this.$title.firstChild.data = '';\n      this.$title.attr('data-ml-key', value.mlKey);\n    }\n\n    if (value && !this.$title.parentElement) {\n      this.$header.addChild(this.$title);\n    } else if (!value && this.$title.parentElement) {\n      this.$title.remove();\n    }\n  },\n  get: function get() {\n    return this._dialogTitle;\n  }\n};\n\n_ACore[\"default\"].install(MessageDialog);\n\nvar _default = MessageDialog;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/MessageDialog.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/Modal.js":
/*!**********************************************!*\
  !*** ./node_modules/absol-acomp/js/Modal.js ***!
  \**********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/modal.css */ \"./node_modules/absol-acomp/css/modal.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar $ = _ACore[\"default\"].$;\nvar _ = _ACore[\"default\"]._;\n\nfunction Modal() {\n  this._contentAlign = [];\n  this.contentAlign = 'middle center';\n  this.$content = $('.as-modal-content', this);\n}\n\nModal.tag = 'modal';\n\nModal.render = function () {\n  return _({\n    \"class\": 'as-modal',\n    child: '.as-modal-content'\n  });\n};\n\n['findChildBefore', 'findChildAfter', 'removeChild', 'clearChild', 'addChild'].forEach(function (key) {\n  Modal.prototype[key] = function () {\n    this.$content[key].apply(this.$content, arguments);\n  };\n});\n\nModal.prototype.getChildren = function () {\n  return this.$content.children;\n};\n\nModal.property = {};\nModal.property.show = {\n  set: function set(value) {\n    if (value) this.removeClass('as-hidden');else this.addClass('as-hidden');\n  },\n  get: function get() {\n    return !this.hasClass('as-hidden');\n  }\n};\nModal.property.contentAlign = {\n  set: function set(value) {\n    var thisM = this;\n\n    this._contentAlign.forEach(function (name) {\n      thisM.removeClass('as-' + name);\n    });\n\n    value = value || '';\n\n    if (typeof value === 'string') {\n      this._contentAlign = value.split(/\\s+/);\n    } else if (value instanceof Array) {\n      this._contentAlign = value;\n    } else {\n      throw new Error(\"Invalid contentAlign!\");\n    }\n\n    var thisM = this;\n\n    this._contentAlign.forEach(function (name) {\n      thisM.addClass('as-' + name);\n    });\n  },\n  get: function get() {\n    return this._contentAlign.join(' ');\n  }\n};\n\n_ACore[\"default\"].install(Modal);\n\nvar _default = Modal;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/Modal.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/MultiCheckMenu.js":
/*!*******************************************************!*\
  !*** ./node_modules/absol-acomp/js/MultiCheckMenu.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _MultiSelectMenu = _interopRequireDefault(__webpack_require__(/*! ./MultiSelectMenu */ \"./node_modules/absol-acomp/js/MultiSelectMenu.js\"));\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _CheckListBox = __webpack_require__(/*! ./CheckListBox */ \"./node_modules/absol-acomp/js/CheckListBox.js\");\n\nvar _EventEmitter = _interopRequireWildcard(__webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nvar _ResizeSystem = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/ResizeSystem */ \"./node_modules/absol/src/HTML5/ResizeSystem.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends MultiSelectMenu\r\n * @constructor\r\n */\nfunction MultiCheckMenu() {\n  this.addClass('as-multi-check-menu');\n  this.on('click', this.eventHandler.click);\n  /***\r\n   * @type {CheckListBox}\r\n   */\n\n  this.$selectlistBox = (0, _ACore._)({\n    tag: _CheckListBox.CheckListBox,\n    //use new version\n    props: {\n      anchor: [1, 6, 2, 5]\n    },\n    on: {\n      preupdateposition: this.eventHandler.preUpdateListPosition,\n      change: this.eventHandler.selectListBoxChange,\n      cancel: this.eventHandler.selectListBoxCancel,\n      close: this.eventHandler.selectListBoxClose\n    }\n  });\n  this.$itemCtn = (0, _ACore.$)('.as-multi-select-menu-item-ctn', this);\n  this.$attachhook = (0, _ACore.$)('attachhook', this).on('attached', this.eventHandler.attached);\n  this.$attachhook.requestUpdateSize = this.updateSize();\n\n  _OOP[\"default\"].drillProperty(this, this.$selectlistBox, 'enableSearch');\n\n  this._isFocus = false;\n  this.$items = [];\n  this._tempValues = [];\n  this._values = [];\n  this.items = [];\n  this.values = [];\n  this.$selectlistBox.followTarget = this;\n  this.disableClickToFocus = false;\n  this.orderly = true;\n  this.itemFocusable = false;\n  this._activeValue = undefined;\n}\n\nMultiCheckMenu.tag = 'MultiCheckMenu'.toLowerCase();\nMultiCheckMenu.render = _MultiSelectMenu[\"default\"].render;\nObject.assign(MultiCheckMenu.prototype, _MultiSelectMenu[\"default\"].prototype);\nMultiCheckMenu.property = Object.assign({}, _MultiSelectMenu[\"default\"].property);\nMultiCheckMenu.eventHandler = Object.assign({}, _MultiSelectMenu[\"default\"].eventHandler);\n\nMultiCheckMenu.prototype.updateSize = function () {\n  var bound;\n\n  if (this._isFocus) {\n    bound = this.getBoundingClientRect();\n    this.$selectlistBox.addStyle('min-width', Math.max(bound.width, this.$selectlistBox.getFontSize() * 15.5) + 'px');\n    this.$selectlistBox.refollow();\n    this.$selectlistBox.updatePosition();\n  }\n};\n\nMultiCheckMenu.prototype.findItemsByValue = function (value) {\n  return this.$selectlistBox.findItemsByValue(value);\n};\n\nMultiCheckMenu.eventHandler.click = function (event) {\n  if (this.disabled) return;\n\n  if ((event.target === this || event.target === this.$itemCtn) && !this.isFocus && !this.readOnly) {\n    this.isFocus = true;\n  }\n};\n\nMultiCheckMenu.eventHandler.bodyClick = function (event) {\n  var isRemovedItem = !_AElement[\"default\"].prototype.isDescendantOf.call(event.target, document.body) && (event.target.classList.contains('absol-selectbox-item-close') || event.target.parentElement && event.target.parentElement.classList.contains('absol-selectbox-item-close'));\n\n  if (this.isFocus && !_EventEmitter[\"default\"].hitElement(this.$selectlistBox, event) && !isRemovedItem && (!(0, _EventEmitter.hitElement)(this.$itemCtn, event) || event.target === this.$itemCtn)) {\n    this.eventHandler.selectListBoxPressItem(event); //to notify something remove, add\n\n    this.isFocus = false;\n  }\n};\n\nMultiCheckMenu.eventHandler.selectListBoxChange = function (event) {\n  var idx;\n\n  switch (event.action) {\n    case 'check':\n      idx = this._tempValues.indexOf(event.value);\n\n      if (idx < 0) {\n        this._tempValues.push(event.value);\n      }\n\n      break;\n\n    case 'uncheck':\n      idx = this._tempValues.indexOf(event.value);\n\n      if (idx >= 0) {\n        this._tempValues.splice(idx, 1);\n      }\n\n      break;\n\n    case 'check_all':\n      this._tempValues = this.$selectlistBox.values;\n      break;\n\n    case 'uncheck_all':\n      this._tempValues = [];\n      break;\n  }\n\n  setTimeout(function () {\n    this.viewItemsByValues(this._tempValues);\n    var bound = this.getBoundingClientRect();\n    this.$selectlistBox.addStyle('min-width', Math.max(bound.width, this.$selectlistBox.getFontSize() * 15.5) + 'px');\n    this.$selectlistBox.refollow();\n    this.$selectlistBox.updatePosition();\n\n    _ResizeSystem[\"default\"].requestUpdateSignal();\n  }.bind(this), 1);\n};\n\nMultiCheckMenu.eventHandler.selectListBoxCancel = function (event) {\n  this.viewItemsByValues(this._values);\n  this.isFocus = false;\n  this.$selectlistBox.values = this._values;\n};\n\nMultiCheckMenu.eventHandler.selectListBoxClose = function (event) {\n  this.eventHandler.selectListBoxPressItem(event); //to notify something remove, add\n\n  this.isFocus = false;\n};\n\nMultiCheckMenu.property.isFocus = {\n  set: function set(value) {\n    if (value && (this.disabled || this.readOnly)) return;\n\n    if (!this._isFocus && value) {\n      this._tempValues = this._values.slice();\n      this.$selectlistBox.values = this._values;\n      this.activeValue = null;\n    }\n\n    var thisSM = this;\n    if (!this.items || this.items.length === 0) value = false; //prevent focus\n\n    if (this._isFocus === value) return;\n    this._isFocus = !!value;\n\n    if (this._isFocus) {\n      thisSM.off('click', this.eventHandler.click);\n      document.body.appendChild(this.$selectlistBox);\n      this.$selectlistBox.domSignal.$attachhook.emit('attached');\n      var bound = this.getBoundingClientRect();\n      this.$selectlistBox.addStyle('min-width', Math.max(bound.width, this.$selectlistBox.getFontSize() * 15.5) + 'px');\n      this.$selectlistBox.refollow();\n      this.$selectlistBox.updatePosition();\n      setTimeout(function () {\n        thisSM.$selectlistBox.focus();\n        document.addEventListener('mousedown', thisSM.eventHandler.bodyClick);\n      }, 100);\n      this.$selectlistBox.viewListAtFirstSelected();\n    } else {\n      document.removeEventListener('mousedown', thisSM.eventHandler.bodyClick);\n      document.addEventListener('mouseup', function mup() {\n        setTimeout(function () {\n          thisSM.on('click', thisSM.eventHandler.click);\n          document.removeEventListener('mouseup', mup);\n        }, 5);\n      });\n      this.$selectlistBox.selfRemove();\n      this.$selectlistBox.unfollow();\n      this.$selectlistBox.resetSearchState();\n    }\n  },\n  get: _MultiSelectMenu[\"default\"].property.isFocus.get\n};\nMultiCheckMenu.property.readOnly = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-read-only');\n    } else {\n      this.removeClass('as-read-only');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-read-only');\n  }\n};\n/***\r\n * call after close checklistbox\r\n * @param event\r\n */\n\nMultiCheckMenu.eventHandler.selectListBoxPressItem = function (event) {\n  var prevValues = this._values;\n  var prevDict = prevValues.reduce(function (ac, cr) {\n    ac[cr + ''] = cr;\n    return ac;\n  }, {});\n  this.$selectlistBox.updatePosition();\n  var curValues = this.$selectlistBox.values;\n  var changed = false;\n  var curDict = curValues.reduce(function (ac, cr) {\n    ac[cr + ''] = cr;\n    return ac;\n  }, {});\n  this._values = curValues.slice();\n  prevValues.forEach(function (value) {\n    if (value + '' in curDict) return;\n    var holders = this.$selectlistBox.findItemsByValue(value);\n    if (!holders || holders.length === 0) return;\n    var item = holders[0].item;\n    this.emit('remove', Object.assign({}, event, {\n      type: 'remove',\n      target: this,\n      value: item.value,\n      data: item,\n      itemData: item\n    }), this);\n    changed = true;\n  }.bind(this));\n  curValues.forEach(function (value) {\n    if (value + '' in prevDict) return;\n    var holders = this.$selectlistBox.findItemsByValue(value);\n    if (!holders || holders.length === 0) return;\n    var item = holders[0].item;\n    this.emit('add', Object.assign({}, event, {\n      type: 'add',\n      target: this,\n      value: item.value,\n      data: item,\n      itemData: item\n    }), this);\n    changed = true;\n  }.bind(this));\n\n  this._updateItems();\n\n  this.isFocus = false;\n  if (changed) this.emit('change', Object.assign({}, event, {\n    type: 'change',\n    action: 'submit',\n    target: this,\n    values: this.values\n  }), this);\n};\n\nMultiCheckMenu.eventHandler.pressCloseItem = function (item, event) {\n  var value = item.value;\n  var data = item.data;\n  var currentValues;\n  var index;\n\n  if (this.isFocus) {\n    currentValues = this.$selectlistBox.values;\n    index = currentValues.indexOf(value);\n\n    if (index >= 0) {\n      currentValues.splice(index, 1);\n    }\n\n    this.$selectlistBox.values = currentValues;\n    this.$selectlistBox.updatePosition();\n    this.viewItemsByValues(this.$selectlistBox.values);\n\n    _ResizeSystem[\"default\"].requestUpdateSignal();\n  } else {\n    index = this._values.indexOf(value);\n\n    if (index >= 0) {\n      this._values.splice(index, 1);\n\n      this._updateItems();\n\n      this.emit('remove', Object.assign({}, event, {\n        type: 'change',\n        target: this,\n        data: data,\n        value: value,\n        itemData: data\n      }), this);\n      this.emit('change', Object.assign({}, event, {\n        type: 'change',\n        action: 'remove',\n        target: this,\n        data: data,\n        value: value,\n        itemData: data\n      }), this);\n    }\n  }\n};\n\nMultiCheckMenu.eventHandler.pressItem = function (item, event) {\n  var value = item.value;\n\n  if (this.itemFocusable && !this.isFocus) {\n    var prevActiveValue = this.activeValue;\n\n    if (value !== prevActiveValue) {\n      this.activeValue = value;\n      this.emit('activevaluechange', {\n        target: this,\n        originEvent: event,\n        prevActiveValue: prevActiveValue,\n        activeValue: value\n      }, this);\n    }\n  } else if (this.isFocus) {\n    this.$selectlistBox.viewListAtValue(value);\n  }\n};\n\n_ACore[\"default\"].install(MultiCheckMenu);\n\nvar _default = MultiCheckMenu;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/MultiCheckMenu.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/MultiCheckTreeLeafBox.js":
/*!**************************************************************!*\
  !*** ./node_modules/absol-acomp/js/MultiCheckTreeLeafBox.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Follower = _interopRequireDefault(__webpack_require__(/*! ./Follower */ \"./node_modules/absol-acomp/js/Follower.js\"));\n\nvar _ExpTree = _interopRequireDefault(__webpack_require__(/*! ./ExpTree */ \"./node_modules/absol-acomp/js/ExpTree.js\"));\n\n__webpack_require__(/*! ../css/selecttreeleafmenu.css */ \"./node_modules/absol-acomp/css/selecttreeleafmenu.css\");\n\nvar _SelectListBox = _interopRequireDefault(__webpack_require__(/*! ./SelectListBox */ \"./node_modules/absol-acomp/js/SelectListBox.js\"));\n\nvar _search = _interopRequireWildcard(__webpack_require__(/*! ./list/search */ \"./node_modules/absol-acomp/js/list/search.js\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _CheckBoxInput = _interopRequireDefault(__webpack_require__(/*! ./CheckBoxInput */ \"./node_modules/absol-acomp/js/CheckBoxInput.js\"));\n\nvar _EventEmitter = __webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction isBranchStatus(status) {\n  return status === 'open' || status === 'close';\n}\n\nfunction invertStatus(status) {\n  return {\n    open: 'close',\n    close: 'open'\n  }[status] || 'none';\n}\n/***\r\n * @extends Follower\r\n * @constructor\r\n */\n\n\nfunction MultiCheckTreeLeafBox() {\n  this._initControl();\n\n  this._searchCache = {};\n  this._items = [];\n  this._values = [];\n  this.strictValue = true;\n  this.$items = [];\n  this.$itemByValue = {};\n  this.$dislayItems = this.$items;\n  this.$dislayItemByValue = this.$itemByValue;\n  this.$content = (0, _ACore.$)('.as-select-tree-leaf-box-content', this);\n  this._savedStatus = {};\n  this.estimateSize = {\n    width: 0,\n    height: 0\n  };\n}\n\nMultiCheckTreeLeafBox.tag = 'MultiCheckTreeLeafBox'.toLowerCase();\n\nMultiCheckTreeLeafBox.render = function () {\n  return (0, _ACore._)({\n    tag: _Follower[\"default\"],\n    attr: {\n      tabindex: 0\n    },\n    \"class\": ['as-select-tree-leaf-box', 'as-select-list-box'],\n    extendEvent: ['change'],\n    child: [{\n      \"class\": 'as-select-list-box-search-ctn',\n      child: 'searchtextinput'\n    }, {\n      \"class\": ['as-bscroller', 'as-select-list-box-scroller', 'as-select-tree-leaf-box-content'],\n      child: []\n    }, 'attachhook.as-dom-signal'],\n    props: {\n      anchor: [1, 6, 2, 5]\n    }\n  });\n};\n\nMultiCheckTreeLeafBox.prototype.focus = _SelectListBox[\"default\"].prototype.focus;\n\nMultiCheckTreeLeafBox.prototype._initControl = function () {\n  this.$searchInput = (0, _ACore.$)('searchtextinput', this).on('stoptyping', this.eventHandler.searchModify);\n};\n\nMultiCheckTreeLeafBox.prototype.resetSearchState = function () {\n  var value = this.$searchInput.value;\n\n  if (value.length > 0) {\n    this.$searchInput.value = '';\n\n    if (value.trim().length) {\n      this.$content.clearChild();\n      this.$content.addChild(this.$items);\n      this.$dislayItems = this.$items;\n      this.$dislayItemByValue = this.$itemByValue;\n\n      this._updateSelectedItems();\n    }\n  }\n\n  this.updatePosition();\n};\n\nMultiCheckTreeLeafBox.prototype._findFirstLeaf = function () {\n  var found = false;\n\n  function visit(item) {\n    if (item.isLeaf) {\n      found = item;\n      return true;\n    }\n\n    if (item.items && item.items.length > 0) {\n      item.items.some(visit);\n    }\n\n    return !!found;\n  }\n\n  this._items.some(visit);\n\n  return found;\n};\n\nMultiCheckTreeLeafBox.prototype._makeTree = function (item, dict, savedStatus) {\n  var self = this;\n  var status = 'none';\n  var isLeaf = item.isLeaf;\n\n  if (item.items && item.items.length > 0) {\n    status = 'close';\n  }\n\n  if (isBranchStatus(status) && isBranchStatus(savedStatus[item.value])) {\n    status = savedStatus[item.value];\n  }\n\n  var treeElt = (0, _ACore._)({\n    tag: _ExpTree[\"default\"].tag,\n    \"class\": 'as-select-tree-leaf-item',\n    props: {\n      name: item.text,\n      desc: item.desc,\n      icon: item.icon,\n      status: status,\n      itemData: item\n    },\n    on: {\n      'statuschange': this.updatePosition.bind(this)\n    }\n  });\n  var nodeElt = treeElt.getNode().on({\n    press: function press(event) {\n      if (isBranchStatus(treeElt.status)) {\n        treeElt.status = invertStatus(treeElt.status);\n        savedStatus[item.value] = treeElt.status;\n        self.updatePosition();\n      } else if (isLeaf) {\n        if (!(0, _EventEmitter.hitElement)(checkboxElt, event)) {\n          var checked = !checkboxElt.checked;\n          checkboxElt.checked = checked;\n\n          var idx = self._values.indexOf(item.value);\n\n          var changed = false;\n\n          if (checked && idx < 0) {\n            changed = true;\n\n            self._values.push(item.value);\n          } else if (!checked && idx >= 0) {\n            changed = true;\n\n            self._values.splice(idx, 1);\n          }\n\n          if (changed) self.emit('change', {\n            item: item,\n            target: self,\n            itemElt: treeElt,\n            originalEvent: event\n          }, self);\n        }\n      }\n    }\n  });\n  var checkboxElt = null;\n\n  if (isLeaf) {\n    checkboxElt = (0, _ACore._)({\n      tag: _CheckBoxInput[\"default\"].tag,\n      on: {\n        change: function change(event) {\n          var checked = checkboxElt.checked;\n\n          var idx = self._values.indexOf(item.value);\n\n          var changed = false;\n\n          if (checked && idx < 0) {\n            changed = true;\n\n            self._values.push(item.value);\n          } else if (!checked && idx >= 0) {\n            changed = true;\n\n            self._values.splice(idx, 1);\n          }\n\n          if (changed) self.emit('change', {\n            item: item,\n            target: self,\n            itemElt: treeElt,\n            originalEvent: event\n          }, self);\n        }\n      }\n    });\n    nodeElt.addChildAfter(checkboxElt, nodeElt.$toggleIcon);\n    treeElt.$checkbox = checkboxElt;\n  }\n\n  if (dict) {\n    if (dict[item.value] && !this.warned) {\n      this.warned = true;\n      console.warn(this, 'has duplicated value, element will not work correctly!', item);\n    }\n\n    dict[item.value] = treeElt;\n  }\n\n  if (isLeaf) {\n    treeElt.addClass('as-is-leaf');\n  }\n\n  if (item.items && item.items.length > 0) {\n    item.items.forEach(function (item1) {\n      treeElt.addChild(self._makeTree(item1, dict, savedStatus));\n    });\n  }\n\n  return treeElt;\n};\n\nMultiCheckTreeLeafBox.prototype._estimateItemWidth = function (item, level) {\n  var width = 12; //padding\n\n  width += 12 * level;\n  width += 14.7 + 5; //toggle icon\n\n  if (item.icon) width += 21; //icon\n\n  width += 7 + (0, _utils.estimateWidth14)(item.text) + 5 + 7; //margin-text\n\n  if (item.desc) width += 6 + (0, _utils.estimateWidth14)(item.desc) * 0.85;\n  if (item.isLeaf) width += 16;\n  return width;\n};\n\nMultiCheckTreeLeafBox.prototype.viewToSelected = function () {\n  var selectedNode = this.$selectedItem;\n  if (!selectedNode) return;\n  selectedNode.scrollIntoView();\n  var parent = selectedNode.getParent();\n\n  while (parent && parent.getParent) {\n    if (parent.status === 'close') {\n      parent.getNode().emit('press');\n    }\n\n    parent = parent.getParent();\n  }\n};\n\nMultiCheckTreeLeafBox.prototype._calcEstimateSize = function (items) {\n  var self = this;\n  var width = 0;\n  var height = 0;\n\n  function visit(item, level) {\n    var itemWidth = self._estimateItemWidth(item, level);\n\n    width = Math.max(width, itemWidth);\n    height += 28;\n\n    if (item.items && item.items.length) {\n      item.items.forEach(function (item) {\n        visit(item, level + 1);\n      });\n    }\n  }\n\n  items.forEach(function (item) {\n    visit(item, 0);\n  });\n  return {\n    width: width,\n    height: height\n  };\n};\n\nMultiCheckTreeLeafBox.prototype._updateSelectedItems = function () {\n  var dict = this._values.reduce(function (ac, cr) {\n    ac[cr] = true;\n    return ac;\n  }, {});\n\n  var itemElt;\n\n  for (var val in this.$dislayItemByValue) {\n    itemElt = this.$dislayItemByValue[val];\n\n    if (itemElt.$checkbox) {\n      itemElt.$checkbox.checked = !!dict[itemElt.itemData.value];\n    }\n  }\n};\n\nMultiCheckTreeLeafBox.property = {};\nMultiCheckTreeLeafBox.eventHandler = {};\nMultiCheckTreeLeafBox.property.items = {\n  /***\r\n   * @this MultiCheckTreeLeafBox\r\n   * @param items\r\n   */\n  set: function set(items) {\n    var self = this;\n    this._savedStatus = {};\n    this._searchCache = {};\n    items = (0, _utils.copySelectionItemArray)(items || [], {\n      removeNoView: true\n    });\n    this._items = items;\n    (0, _search.prepareSearchForList)(items);\n    this.$content.clearChild();\n    this.$itemByValue = {};\n    this.$dislayItemByValue = this.$itemByValue;\n    this.$items = items.map(function (item) {\n      return self._makeTree(item, self.$itemByValue, self._savedStatus);\n    });\n    this.$dislayItems = this.$items;\n    this.$content.addChild(this.$items);\n    this.estimateSize = this._calcEstimateSize(items);\n    this.addStyle('--select-list-estimate-width', this.estimateSize.width + 'px');\n\n    this._updateSelectedItems();\n\n    this.updatePosition();\n  },\n  get: function get() {\n    return this._items;\n  }\n};\nMultiCheckTreeLeafBox.property.values = {\n  set: function set(values) {\n    this._values.splice(0, this._values.length);\n\n    values = values || [];\n    var arr = this._values;\n    values.reduce(function (ac, cr) {\n      if (!ac[cr]) {\n        ac[cr] = true;\n        arr.push(cr);\n      }\n\n      return ac;\n    }, {});\n\n    this._updateSelectedItems();\n  },\n  get: function get() {\n    return this._values;\n  }\n};\nMultiCheckTreeLeafBox.property.enableSearch = _SelectListBox[\"default\"].property.enableSearch;\n\nMultiCheckTreeLeafBox.prototype._search = function (query) {\n  var self = this;\n  var queryItem = (0, _search[\"default\"])({\n    text: query\n  });\n  var minScore = Infinity;\n  var maxScore = -Infinity;\n\n  function makeScoreTree(item) {\n    var holder = {\n      item: item,\n      score: (0, _search.calcItemMatchScore)(queryItem, item),\n      childrenScore: 0,\n      children: []\n    };\n    minScore = Math.min(minScore, holder.score);\n    maxScore = Math.max(maxScore, holder.score);\n    var children;\n\n    if (item.items && item.items.length > 0) {\n      children = item.items.map(makeScoreTree);\n      holder.children = children;\n      holder.childrenScore = holder.children.reduce(function (ac, cr) {\n        return Math.max(ac, cr.score, cr.childrenScore);\n      }, 0);\n    }\n\n    return holder;\n  }\n\n  var treeScores = this._items.map(makeScoreTree);\n\n  var midScore = (maxScore + minScore) / 2;\n  var savedStatus = {};\n\n  function filterTree(scoredTrees, ignore) {\n    return scoredTrees.filter(function (holder) {\n      return ignore || holder.score >= midScore || holder.childrenScore >= midScore;\n    }).map(function makeTree(holder) {\n      var item = Object.assign({}, holder.item);\n\n      if (!ignore && holder.children && holder.children.length > 0) {\n        if (holder.childrenScore >= midScore) {\n          savedStatus[item.value] = 'open';\n          item.items = filterTree(holder.children, false);\n        } else {\n          savedStatus[item.value] = 'close';\n          item.items = filterTree(holder.children, true);\n        }\n      }\n\n      return item;\n    });\n  }\n\n  var resultItems = filterTree(treeScores, false);\n  var dict = {};\n  var $items = resultItems.map(function (item) {\n    return self._makeTree(item, dict, savedStatus);\n  });\n  return {\n    $items: $items,\n    items: resultItems,\n    savedStatus: Object.assign({}, savedStatus),\n    originSavedStatus: savedStatus,\n    dict: dict\n  };\n};\n/***\r\n * @this MultiCheckTreeLeafBox\r\n */\n\n\nMultiCheckTreeLeafBox.eventHandler.searchModify = function () {\n  var query = this.$searchInput.value.trim();\n\n  if (query.length === 0) {\n    this.$content.clearChild().addChild(this.$items);\n    this.$dislayItemByValue = this.$itemByValue;\n    this.$dislayItems = this.$items;\n\n    this._updateSelectedItems();\n\n    this.updatePosition();\n    return;\n  }\n\n  if (!this._searchCache[query]) {\n    this._searchCache[query] = this._search(query);\n  }\n\n  var searchData = this._searchCache[query];\n  searchData.savedStatus = Object.assign(searchData.savedStatus, searchData.originSavedStatus);\n\n  for (var val in searchData.dict) {\n    if (isBranchStatus(searchData.dict[val].status)) {\n      if (searchData.savedStatus[val]) {\n        searchData.dict[val].status = searchData.savedStatus[val];\n      }\n    }\n  }\n\n  this.$content.clearChild().addChild(searchData.$items);\n  this.$dislayItemByValue = searchData.dict;\n  this.$dislayItems = searchData.$items;\n\n  this._updateSelectedItems();\n\n  this.updatePosition();\n};\n\n_ACore[\"default\"].install(MultiCheckTreeLeafBox);\n\nvar _default = MultiCheckTreeLeafBox;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/MultiCheckTreeLeafBox.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/MultiCheckTreeLeafMenu.js":
/*!***************************************************************!*\
  !*** ./node_modules/absol-acomp/js/MultiCheckTreeLeafMenu.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _MultiCheckTreeLeafBox = _interopRequireDefault(__webpack_require__(/*! ./MultiCheckTreeLeafBox */ \"./node_modules/absol-acomp/js/MultiCheckTreeLeafBox.js\"));\n\nvar _SelectTreeLeafMenu = _interopRequireDefault(__webpack_require__(/*! ./SelectTreeLeafMenu */ \"./node_modules/absol-acomp/js/SelectTreeLeafMenu.js\"));\n\nvar _SelectBoxItem = _interopRequireDefault(__webpack_require__(/*! ./SelectBoxItem */ \"./node_modules/absol-acomp/js/SelectBoxItem.js\"));\n\nvar _MultiSelectMenu = _interopRequireDefault(__webpack_require__(/*! ./MultiSelectMenu */ \"./node_modules/absol-acomp/js/MultiSelectMenu.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _SelectMenu = _interopRequireDefault(__webpack_require__(/*! ./SelectMenu2 */ \"./node_modules/absol-acomp/js/SelectMenu2.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/****\r\n * Only leafs have checkbox\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction MultiCheckTreeLeafMenu() {\n  this.$selectBox = (0, _ACore._)({\n    tag: _MultiCheckTreeLeafBox[\"default\"].tag,\n    on: {\n      change: this.eventHandler.selectBoxChange,\n      preupdateposition: this.eventHandler.preUpdateListPosition\n    }\n  });\n  this.$selectlistBox = this.$selectBox;\n\n  _OOP[\"default\"].drillProperty(this, this.$selectBox, 'enableSearch');\n\n  this.on('click', this.eventHandler.click);\n  this.$itemCtn = (0, _ACore.$)('.as-multi-select-menu-item-ctn', this);\n}\n\nMultiCheckTreeLeafMenu.tag = 'MultiCheckTreeLeafMenu'.toLowerCase();\n\nMultiCheckTreeLeafMenu.render = function () {\n  return (0, _ACore._)({\n    \"class\": ['as-multi-select-menu', 'as-multi-check-tree-leaf-menu'],\n    extendEvent: ['change'],\n    attr: {\n      tabindex: '1'\n    },\n    child: [{\n      \"class\": ['as-multi-select-menu-item-ctn', 'as-bscroller']\n    }, {\n      tag: 'button',\n      \"class\": 'as-multi-select-menu-toggle-btn',\n      child: 'dropdown-ico'\n    }, 'attachhook']\n  });\n};\n\nMultiCheckTreeLeafMenu.prototype._updateSelectedItems = function () {\n  var values = this.$selectBox.values;\n\n  while (this.$itemCtn.childNodes.length > values.length) {\n    this.$itemCtn.removeChild(this.$itemCtn.lastChild);\n  }\n\n  while (this.$itemCtn.childNodes.length < values.length) {\n    this.$itemCtn.addChild(this._makeItem());\n  }\n\n  var item;\n\n  for (var i = 0; i < values.length; ++i) {\n    item = this.$selectBox.$itemByValue[values[i]] && this.$selectBox.$itemByValue[values[i]].itemData;\n\n    if (item) {\n      this.$itemCtn.childNodes[i].data = item;\n      this.$itemCtn.childNodes[i].removeStyle('display', 'none');\n    } else {\n      this.$itemCtn.childNodes[i].addStyle('display', 'none');\n    }\n  }\n};\n\nMultiCheckTreeLeafMenu.prototype._makeItem = function () {\n  var itemElt = (0, _ACore._)({\n    tag: _SelectBoxItem[\"default\"].tag\n  });\n  itemElt.on('close', this.eventHandler.itemPressClose.bind(null, itemElt));\n  return itemElt;\n};\n\nMultiCheckTreeLeafMenu.prototype.init = function (props) {\n  props = props || {};\n  var cProps = Object.assign({}, props);\n\n  if ('items' in props) {\n    this.items = props.items;\n    delete cProps.items;\n  }\n\n  if ('values' in props) {\n    this.values = props.values;\n    delete cProps.values;\n  }\n\n  Object.assign(this, cProps);\n};\n\nMultiCheckTreeLeafMenu.property = {};\nMultiCheckTreeLeafMenu.property.items = {\n  set: function set(items) {\n    this.$selectBox.items = items;\n    this.addStyle('--select-list-estimate-width', Math.max(145 + 20, this.$selectBox.estimateSize.width) + 'px');\n\n    this._updateSelectedItems();\n  },\n  get: function get() {\n    return this.$selectBox.items;\n  }\n};\nMultiCheckTreeLeafMenu.property.values = {\n  set: function set(values) {\n    values = values || [];\n    this.pendingValues = values;\n    this.$selectBox.values = values;\n\n    this._updateSelectedItems();\n  },\n  get: function get() {\n    var _this = this;\n\n    if ('pendingValues' in this) return this.pendingValues;\n    return this.$selectBox.values.slice().filter(function (value) {\n      return !!_this.$selectBox.$itemByValue[value];\n    });\n  }\n};\nMultiCheckTreeLeafMenu.property.isFocus = _SelectTreeLeafMenu[\"default\"].property.isFocus;\nMultiCheckTreeLeafMenu.property.disabled = _MultiSelectMenu[\"default\"].property.disabled;\nMultiCheckTreeLeafMenu.property.readOnly = _MultiSelectMenu[\"default\"].property.readOnly;\nMultiCheckTreeLeafMenu.eventHandler = {};\nMultiCheckTreeLeafMenu.eventHandler.clickOut = _SelectTreeLeafMenu[\"default\"].eventHandler.clickOut;\nMultiCheckTreeLeafMenu.eventHandler.preUpdateListPosition = _SelectMenu[\"default\"].eventHandler.preUpdateListPosition;\n\nMultiCheckTreeLeafMenu.eventHandler.click = function (event) {\n  if (!this.readOnly && (event.target === this || event.target === this.$itemCtn)) {\n    this.isFocus = true;\n  }\n};\n\nMultiCheckTreeLeafMenu.eventHandler.selectBoxChange = function () {\n  delete this.pendingValues;\n\n  this._updateSelectedItems();\n\n  this.emit('change', {\n    type: 'change',\n    target: this\n  }, this);\n};\n\nMultiCheckTreeLeafMenu.eventHandler.itemPressClose = function (itemElt, event) {\n  delete this.pendingValues;\n  var item = itemElt.data;\n  this.$selectBox.values = this.$selectBox.values.filter(function (value) {\n    return value !== item.value;\n  });\n\n  this._updateSelectedItems();\n\n  this.emit('change', {\n    type: 'change',\n    target: this\n  }, this);\n};\n\n_ACore[\"default\"].install(MultiCheckTreeLeafMenu);\n\nvar _default = MultiCheckTreeLeafMenu;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/MultiCheckTreeLeafMenu.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/MultiCheckTreeMenu.js":
/*!***********************************************************!*\
  !*** ./node_modules/absol-acomp/js/MultiCheckTreeMenu.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _CheckTreeBox = _interopRequireDefault(__webpack_require__(/*! ./CheckTreeBox */ \"./node_modules/absol-acomp/js/CheckTreeBox.js\"));\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _CPUViewer = _interopRequireDefault(__webpack_require__(/*! ./CPUViewer */ \"./node_modules/absol-acomp/js/CPUViewer.js\"));\n\nvar _SelectBoxItem = _interopRequireDefault(__webpack_require__(/*! ./SelectBoxItem */ \"./node_modules/absol-acomp/js/SelectBoxItem.js\"));\n\nvar _EventEmitter = __webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\");\n\nvar _ResizeSystem = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/ResizeSystem */ \"./node_modules/absol/src/HTML5/ResizeSystem.js\"));\n\nvar _Dom = __webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\");\n\nvar _MultiSelectMenu = _interopRequireDefault(__webpack_require__(/*! ./MultiSelectMenu */ \"./node_modules/absol-acomp/js/MultiSelectMenu.js\"));\n\nvar _CheckTreeLeafOnlyBox = _interopRequireDefault(__webpack_require__(/*! ./CheckTreeLeafOnlyBox */ \"./node_modules/absol-acomp/js/CheckTreeLeafOnlyBox.js\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _Array = __webpack_require__(/*! absol/src/DataStructure/Array */ \"./node_modules/absol/src/DataStructure/Array.js\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction MultiCheckTreeMenu() {\n  this._items = [];\n  this._values = [];\n  this._viewValues = [];\n  /***\r\n   * @type {CheckTreeBox|CheckTreeLeafOnlyBox}\r\n   */\n\n  this.$checkTreeBox = (0, _ACore._)({\n    tag: _CheckTreeBox[\"default\"].tag,\n    on: {\n      change: this.eventHandler.boxChange,\n      preupdateposition: this.eventHandler.preUpdateListPosition,\n      toggleitem: this.eventHandler.boxToggleItem,\n      cancel: this.eventHandler.boxCancel,\n      close: this.eventHandler.boxClose\n    }\n  });\n  this.$itemCtn = (0, _ACore.$)('.as-multi-select-menu-item-ctn', this);\n  this.$checkTreeBox.followTarget = this;\n  this.on('click', this.eventHandler.click);\n  this.enableSearch = false;\n  /**\r\n   * parent will be selected if all off leaf selected, sub tree can not select if had no leaf\r\n   * @name leafOnly\r\n   * @type {boolean}\r\n   * @memberOf MultiCheckTreeMenu#\r\n   */\n\n  /***\r\n   * todo: TREE has noSelect\r\n   */\n}\n\nMultiCheckTreeMenu.tag = 'MultiCheckTreeMenu'.toLowerCase();\n\nMultiCheckTreeMenu.render = function () {\n  return (0, _ACore._)({\n    \"class\": ['as-multi-select-menu', 'as-multi-check-tree-menu'],\n    extendEvent: ['change'],\n    attr: {\n      tabindex: '1'\n    },\n    child: [{\n      \"class\": ['as-multi-select-menu-item-ctn', 'as-bscroller']\n    }, {\n      tag: 'button',\n      \"class\": 'as-multi-select-menu-toggle-btn',\n      child: 'dropdown-ico'\n    }, 'attachhook']\n  });\n};\n\nMultiCheckTreeMenu.prototype.tokenPool = [];\n\nMultiCheckTreeMenu.prototype._requestToken = function () {\n  var token = this.tokenPool.pop();\n\n  if (!token) {\n    token = (0, _ACore._)({\n      tag: _SelectBoxItem[\"default\"].tag,\n      props: {\n        menu: this\n      },\n      on: {\n        close: function close(event) {\n          setTimeout(function () {\n            if (this.menu) this.menu.eventHandler.pressCloseToken(this, event);\n          }.bind(this), 1);\n        }\n      }\n    });\n  }\n\n  return token;\n};\n\nMultiCheckTreeMenu.prototype._releaseToken = function (token) {\n  token.menu = null;\n  this.tokenPool.push(token);\n};\n\nMultiCheckTreeMenu.prototype._filToken = function (n) {\n  while (this.$itemCtn.childNodes.length > n) {\n    this.$itemCtn.removeChild(this.$itemCtn.lastChild);\n  }\n\n  while (this.$itemCtn.childNodes.length < n) {\n    this.$itemCtn.addChild(this._requestToken());\n  }\n};\n\nMultiCheckTreeMenu.prototype._assignTokens = function (items) {\n  for (var i = 0; i < items.length; ++i) {\n    this.$itemCtn.childNodes[i].data = items[i];\n  }\n};\n\nMultiCheckTreeMenu.prototype._switchLeafMode = function () {\n  var enableSearch = this.enableSearch;\n\n  if (this.leafOnly) {\n    this.$checkTreeBox = (0, _ACore._)({\n      tag: _CheckTreeLeafOnlyBox[\"default\"].tag,\n      on: {\n        change: this.eventHandler.boxChange,\n        preupdateposition: this.eventHandler.preUpdateListPosition,\n        toggleitem: this.eventHandler.boxToggleItem,\n        cancel: this.eventHandler.boxCancel,\n        close: this.eventHandler.boxClose\n      }\n    });\n    this._explicit = this._leafOnlyExplicit;\n  } else {\n    this.$checkTreeBox = (0, _ACore._)({\n      tag: _CheckTreeBox[\"default\"].tag,\n      on: {\n        change: this.eventHandler.boxChange,\n        preupdateposition: this.eventHandler.preUpdateListPosition,\n        toggleitem: this.eventHandler.boxToggleItem,\n        cancel: this.eventHandler.boxCancel,\n        close: this.eventHandler.boxClose\n      }\n    });\n    this._explicit = this._normalExplicit;\n  }\n\n  this.$checkTreeBox.followTarget = this;\n  this.$checkTreeBox.items = this._items;\n  this.$checkTreeBox.values = this._values;\n  this.$checkTreeBox.enableSearch = enableSearch;\n};\n\nMultiCheckTreeMenu.prototype._implicit = function (values) {\n  values = values || [];\n  var valueDict = (values || []).reduce(function (ac, cr) {\n    ac[cr + ''] = true;\n    return ac;\n  }, {});\n  var resDict = {};\n\n  function depthRemoveValueDict(node) {\n    if (valueDict[node.value]) delete valueDict[node.value];\n\n    if (node.items && node.items.length) {\n      node.items.forEach(depthRemoveValueDict);\n    }\n  }\n\n  var leafOnly = this.leafOnly;\n  var scan;\n  var leafCount = {};\n\n  var _leafScan;\n\n  if (leafOnly) {\n    _leafScan = function leafScan(node) {\n      if (node.isLeaf) {\n        leafCount[node.value] = 1;\n      } else {\n        leafCount[node.value] = 0;\n      }\n\n      if (node.items && node.items.length > 0) {\n        if (!node.isLeaf) {\n          node.items.forEach(_leafScan);\n          leafCount[node.value] = node.items.reduce(function (ac, cr) {\n            return ac + (leafCount[cr.value] || 0);\n          }, 0);\n        } else {\n          console.error(\"Invalid item:\", node);\n        }\n      }\n    };\n\n    this._items.forEach(_leafScan);\n\n    scan = function scan(node) {\n      if (!leafCount[node.value]) {\n        depthRemoveValueDict(node);\n        return true;\n      }\n\n      if (valueDict[node.value] && leafCount[node.value] > 0) return true;\n      if (!node.items || node.items.length === 0) return false;\n      var cs = node.items.map(scan);\n\n      if (cs.every(function (e) {\n        return e;\n      })) {\n        depthRemoveValueDict(node);\n        return true;\n      } else {\n        node.items.forEach(function (nd, i) {\n          if (cs[i] && leafCount[nd.value] > 0) resDict[nd.value] = nd;\n        });\n        return false;\n      }\n    };\n  } else {\n    scan = function scan(node) {\n      if (valueDict[node.value]) {\n        depthRemoveValueDict(node);\n        return true;\n      }\n\n      if (!node.items || node.items.length === 0) return false;\n      var cs = node.items.map(scan);\n\n      if (cs.every(function (e) {\n        return e;\n      })) {\n        depthRemoveValueDict(node);\n        return true;\n      } else {\n        node.items.forEach(function (nd, i) {\n          if (cs[i]) resDict[nd.value] = nd;\n        });\n        return false;\n      }\n    };\n  }\n\n  var csRoot = this._items.map(scan);\n\n  this._items.forEach(function (nd, i) {\n    if (csRoot[i] && (!leafOnly || leafCount[nd.value] > 0)) resDict[nd.value] = nd;\n  });\n\n  var eValues = values.reduce(function (ac, cr) {\n    if (valueDict[cr]) ac.push(cr);\n    return ac;\n  }, []);\n\n  for (var key in resDict) {\n    eValues.push(resDict[key].value);\n  }\n\n  return (0, _Array.arrayUnique)(eValues);\n};\n\nMultiCheckTreeMenu.prototype._normalExplicit = function (values) {\n  var valueDict = values.reduce(function (ac, cr) {\n    ac[cr] = true;\n    return ac;\n  }, {});\n\n  var selectDown = function selectDown(holder) {\n    if (holder.canSelectAll) {\n      holder.selected = true;\n    } else if (holder.canSelect) {\n      holder.child.forEach(function (c) {\n        return selectDown(c);\n      });\n    }\n  };\n\n  var compute = function compute(nd) {\n    var res = {\n      node: nd,\n      child: []\n    };\n\n    if (nd.items && nd.items.length > 0) {\n      res.child = nd.items.map(function (it) {\n        return compute(it);\n      });\n    }\n\n    res.canSelectAll = !nd.noSelect && res.child.every(function (c) {\n      return c.canSelectAll;\n    });\n    res.canSelect = res.child.length === 0 || res.child.some(function (c) {\n      return c.canSelect;\n    });\n    if (valueDict[res.node.value]) selectDown(res);\n\n    if (!res.selected && res.child.length > 0) {\n      res.selected = res.child.every(function (c) {\n        return c.selected;\n      });\n    }\n\n    return res;\n  };\n\n  var holders = this._items.map(function (it) {\n    return compute(it);\n  });\n\n  var eValues = [];\n\n  var scanSelected = function scanSelected(holder) {\n    if (holder.selected) {\n      eValues.push(holder.node.value);\n    } else {\n      holder.child.forEach(function (c) {\n        return scanSelected(c);\n      });\n    }\n  };\n\n  holders.forEach(function (c) {\n    return scanSelected(c);\n  });\n  return eValues;\n};\n\nMultiCheckTreeMenu.prototype._leafOnlyExplicit = function (values) {\n  var valueDict = values.reduce(function (ac, cr) {\n    ac[cr] = true;\n    return ac;\n  }, {});\n  var res = [];\n\n  function scan(node, selected) {\n    selected = selected || valueDict[node.value];\n    if (node.isLeaf && !node.noSelect && selected) res.push(node.value);\n\n    if (node.items && node.items.length > 0) {\n      node.items.forEach(function (cNode) {\n        scan(cNode, selected);\n      });\n    }\n  }\n\n  this._items.forEach(function (node) {\n    scan(node, false);\n  });\n\n  return res;\n};\n\nMultiCheckTreeMenu.prototype._explicit = MultiCheckTreeMenu.prototype._normalExplicit;\n\nMultiCheckTreeMenu.prototype.findItemsByValues = function (values) {\n  return values.map(function (value) {\n    var holders = this.$checkTreeBox.findItemHoldersByValue(value);\n    if (holders.length > 0) return holders[0].item;\n    return null;\n  }.bind(this)).filter(function (it) {\n    return !!it;\n  });\n};\n\nMultiCheckTreeMenu.prototype.viewValues = function (values) {\n  var items = this.findItemsByValues(values);\n\n  this._filToken(items.length);\n\n  this._assignTokens(items);\n\n  this._viewValues = values;\n\n  if (this.isFocus) {\n    var bound = this.getBoundingClientRect();\n    this.$checkTreeBox.addStyle('min-width', bound.width + 'px');\n\n    _ResizeSystem[\"default\"].update();\n  }\n};\n\nMultiCheckTreeMenu.prototype.commitView = function () {\n  var values = this._values;\n  var views = this._viewValues;\n  var changed = values.length !== views.length;\n  var viewDict;\n\n  if (!changed) {\n    viewDict = views.reduce(function (ac, cr) {\n      ac[cr] = true;\n      return ac;\n    }, {});\n    changed = values.some(function (value) {\n      return !viewDict[value];\n    });\n  }\n\n  if (changed) {\n    this._values = views.slice();\n    this.emit('change', {\n      type: 'change',\n      target: this\n    }, this);\n  }\n};\n\nMultiCheckTreeMenu.prototype.cancelView = function () {\n  this.$checkTreeBox.values = this._values;\n  this.viewValues(this._normalExplicit(this._values));\n};\n\nMultiCheckTreeMenu.prototype.init = function (props) {\n  props = props || {};\n  var cProps = Object.assign({}, props);\n\n  if ('leafOnly' in props) {\n    this.leafOnly = props.leafOnly;\n    delete cProps.leafOnly;\n  }\n\n  if ('items' in props) {\n    this.items = props.items;\n    delete cProps.items;\n  }\n\n  if ('values' in props) {\n    this.values = props.values;\n    delete cProps.values;\n  }\n\n  Object.assign(this, cProps);\n};\n\nMultiCheckTreeMenu.property = {};\nMultiCheckTreeMenu.property.isFocus = {\n  /***\r\n   * @this MultiCheckTreeMenu\r\n   * @param value\r\n   */\n  set: function set(value) {\n    if (value && (this.disabled || this.readOnly)) return;\n    var self = this;\n    value = !!value;\n    var c = this.hasClass('as-focus');\n    if (value === c) return;\n\n    _CPUViewer[\"default\"].hold();\n\n    if (value) {\n      self.off('click', self.eventHandler.click);\n      var bound = this.getBoundingClientRect();\n      this.$checkTreeBox.addStyle('min-width', bound.width + 'px');\n      this.addClass('as-focus');\n      document.body.appendChild(this.$checkTreeBox);\n      this.$checkTreeBox.updatePosition();\n\n      if (this._focusTimeout > 0) {\n        clearTimeout(this._focusTimeout);\n      }\n\n      this._focusTimeout = setTimeout(function () {\n        document.addEventListener('mousedown', this.eventHandler.clickOut);\n        this._focusTimeout = -1;\n        this.$checkTreeBox.focus();\n      }.bind(this), 5);\n    } else {\n      var waitMouseUp = function waitMouseUp() {\n        document.removeEventListener('mouseup', waitMouseUp);\n        setTimeout(function () {\n          self.on('click', self.eventHandler.click);\n        }, 5);\n      }; // document.addEventListener('mouseup', waitMouseUp);why?\n\n\n      this.removeClass('as-focus');\n      this.$checkTreeBox.selfRemove();\n      this.$checkTreeBox.resetSearchState();\n      document.removeEventListener('mousedown', this.eventHandler.clickOut);\n      setTimeout(waitMouseUp, 100);\n    }\n\n    _CPUViewer[\"default\"].release();\n  },\n  get: function get() {\n    return this.hasClass('as-focus');\n  }\n};\nMultiCheckTreeMenu.property.items = {\n  set: function set(items) {\n    this._items = (0, _utils.copySelectionItemArray)(items || [], {\n      removeNoView: true\n    });\n    this.$checkTreeBox.items = this._items;\n    this.addStyle('--list-min-width', Math.max(145 + 20, this.$checkTreeBox.estimateSize.width) + 'px');\n    this.values = this._values; //update\n  },\n  get: function get() {\n    return this.$checkTreeBox.items;\n  }\n};\nMultiCheckTreeMenu.property.values = {\n  /***\r\n   * @this MultiCheckTreeMenu\r\n   * @param values\r\n   */\n  set: function set(values) {\n    values = values || [];\n    this.pendingValues = values;\n\n    if (this.items.length > 0) {\n      values = this._implicit(values);\n    } else {\n      values = values || [];\n    }\n\n    this.$checkTreeBox.values = values;\n    this._values = values;\n    values = this.$checkTreeBox.values.slice(); //correct wrong item\n\n    this.viewValues(this._normalExplicit(values));\n  },\n\n  /***\r\n   * @this MultiCheckTreeMenu\r\n   */\n  get: function get() {\n    if ('pendingValues' in this) return this._explicit(this.pendingValues);\n    return this._explicit(this._values);\n  }\n};\nMultiCheckTreeMenu.property.checkedValues = {\n  get: function get() {\n    var values = this.values;\n    var items = this.items;\n    return (0, _utils.rootTreeValues2CheckedValues)(items, values);\n  }\n};\nMultiCheckTreeMenu.property.leafOnly = {\n  set: function set(value) {\n    if (!!value === this.hasClass('as-leaf-only')) return;\n\n    if (value) {\n      this.addClass('as-leaf-only');\n    } else {\n      this.removeClass('as-leaf-only');\n    }\n\n    this._switchLeafMode();\n  },\n  get: function get() {\n    return this.hasClass('as-leaf-only');\n  }\n};\nMultiCheckTreeMenu.property.disabled = _MultiSelectMenu[\"default\"].property.disabled;\nMultiCheckTreeMenu.property.readOnly = _MultiSelectMenu[\"default\"].property.readOnly;\nMultiCheckTreeMenu.eventHandler = {};\n/***\r\n * @this MultiCheckTreeMenu\r\n * @param event\r\n */\n\nMultiCheckTreeMenu.eventHandler.clickOut = function (event) {\n  if (event.target === this || event.target === this.$itemCtn || !(0, _EventEmitter.hitElement)(this, event) && !(0, _EventEmitter.hitElement)(this.$checkTreeBox, event)) {\n    this.commitView();\n    this.isFocus = false;\n  }\n};\n/***\r\n * @this MultiCheckTreeMenu\r\n * @param event\r\n */\n\n\nMultiCheckTreeMenu.eventHandler.boxClose = function (event) {\n  this.commitView();\n  this.isFocus = false;\n};\n/***\r\n * @this MultiCheckTreeMenu\r\n * @param event\r\n */\n\n\nMultiCheckTreeMenu.eventHandler.click = function (event) {\n  if (!this.readOnly && (event.target === this || event.target === this.$itemCtn)) {\n    this.isFocus = true;\n  }\n};\n/***\r\n * @this MultiCheckTreeMenu\r\n * @param event\r\n */\n\n\nMultiCheckTreeMenu.eventHandler.boxChange = function (event) {\n  delete this.pendingValues;\n  this.viewValues(this._normalExplicit(this.$checkTreeBox.values));\n\n  _ResizeSystem[\"default\"].update();\n};\n\nMultiCheckTreeMenu.eventHandler.boxCancel = function (event) {\n  this.cancelView();\n  this.isFocus = false;\n};\n/***\r\n * @this MultiCheckTreeMenu\r\n * @param {SelectBoxItem} tokenElt\r\n * @param event\r\n */\n\n\nMultiCheckTreeMenu.eventHandler.pressCloseToken = function (tokenElt, event) {\n  var value = tokenElt.value;\n  var holders = this.$checkTreeBox.findItemHoldersByValue(value);\n  holders.forEach(function (holder) {\n    holder.unselectAll();\n  });\n  this.$checkTreeBox.updateSelectedInViewIfNeed();\n\n  var newValues = this._viewValues.filter(function (v) {\n    return v !== value;\n  });\n\n  if (this.isFocus) {\n    this.viewValues(newValues);\n  } else {\n    this.values = newValues;\n    this.emit('change', {\n      type: 'change',\n      target: this\n    }, this);\n  }\n};\n\nMultiCheckTreeMenu.eventHandler.preUpdateListPosition = function () {\n  var bound = this.getBoundingClientRect();\n  var screenSize = (0, _Dom.getScreenSize)();\n  var availableTop = bound.top - 5;\n  var availableBot = screenSize.height - 5 - bound.bottom;\n  this.$checkTreeBox.addStyle('--max-height', Math.max(availableBot, availableTop) + 'px');\n  var outBound = (0, _Dom.traceOutBoundingClientRect)(this);\n\n  if (bound.bottom < outBound.top || bound.top > outBound.bottom || bound.right < outBound.left || bound.left > outBound.right) {\n    this.isFocus = false;\n  }\n};\n\nMultiCheckTreeMenu.eventHandler.boxToggleItem = function (event) {\n  var bound = this.getBoundingClientRect();\n  var screenSize = (0, _Dom.getScreenSize)();\n  var availableTop = bound.top - 5;\n  var availableBot = screenSize.height - 5 - bound.bottom;\n  this.$checkTreeBox.addStyle('--max-height', (this.$checkTreeBox._lastAnchor < 4 ? availableBot : availableTop) + 'px');\n  this.$checkTreeBox.updatePosition();\n};\n\nMultiCheckTreeMenu.property.enableSearch = {\n  set: function set(value) {\n    this.$checkTreeBox.enableSearch = !!value;\n  },\n  get: function get() {\n    return this.$checkTreeBox.enableSearch;\n  }\n};\n\n_ACore[\"default\"].install(MultiCheckTreeMenu);\n\nvar _default = MultiCheckTreeMenu;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/MultiCheckTreeMenu.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/MultiLanguageCSS.js":
/*!*********************************************************!*\
  !*** ./node_modules/absol-acomp/js/MultiLanguageCSS.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = __webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar counter = 30;\n\nfunction makeCss(data) {\n  var cssText = Object.keys(data).map(function (key) {\n    return ['[data-ml-key=' + JSON.stringify(key) + ']::before {', '    content: ' + JSON.stringify(data[key]) + ';', '}'].join('\\n');\n  }).join('\\n\\n');\n  (0, _ACore._)({\n    tag: 'style',\n    attr: {\n      type: 'text/css'\n    },\n    props: {\n      innerHTML: cssText\n    }\n  }).addTo(document.head);\n}\n\nvar data = {\n  txt_ok: 'OK',\n  txt_cancel: 'Cancel',\n  txt_close: 'Close',\n  txt_option: 'Option',\n  txt_check_all: 'Check All'\n};\nmakeCss(data);\nvar overrideData = {};\n\nfunction waitLanguage() {\n  if (window['LanguageModule'] && window['LanguageModule'].data && window['LanguageModule'].data.length > 0) {\n    var text;\n    var newest = false;\n\n    for (var key in data) {\n      text = window['LanguageModule'].text(key);\n\n      if (!text.startsWith('[key:') && text !== data[key]) {\n        overrideData[key] = text;\n        newest = true;\n      }\n    }\n\n    if (newest) makeCss(overrideData);\n  } else {\n    if (counter--) setTimeout(waitLanguage, 400 + Math.floor(16000 / counter / counter));\n  }\n}\n\nwaitLanguage();\nvar _default = {};\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/MultiLanguageCSS.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/MultiLanguageText.js":
/*!**********************************************************!*\
  !*** ./node_modules/absol-acomp/js/MultiLanguageText.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction MultiLanguageText() {\n  this._v = Array(5).fill(null);\n  this._key = null;\n  this.$text = document.createTextNode('');\n  this.addChild(this.$text);\n}\n\nMultiLanguageText.tag = 'mlt';\n\nMultiLanguageText.render = function () {\n  return (0, _ACore._)('span');\n};\n\nMultiLanguageText.prototype._updateText = function () {\n  var text = '';\n\n  if (this._key && window.LanguageModule && window.LanguageModule.text2) {\n    text = window.LanguageModule.text2(this._key, this._v);\n  }\n\n  text = text.replace(/<br>/g, '\\n');\n  this.$text.data = text;\n};\n\nMultiLanguageText.attribute = Array(5).fill(0).reduce(function (ac, u, i) {\n  ac['v' + i] = {\n    set: function set(value) {\n      this._v[i] = value;\n\n      this._updateText();\n    },\n    get: function get() {\n      return this._v[i];\n    },\n    remove: function remove() {\n      this._v[i] = null;\n    }\n  };\n  return ac;\n}, {});\nMultiLanguageText.attribute.key = {\n  set: function set(value) {\n    this._key = value;\n\n    this._updateText();\n  },\n  get: function get() {\n    return this._key;\n  },\n  remove: function remove() {\n    this._key = null;\n  }\n};\n\nMultiLanguageText.replaceAll = function (root) {\n  (0, _ACore.$$)('mlt', root).forEach(function (elt) {\n    if (elt.tagName !== 'MLT') return;\n    var attr = Array.prototype.reduce.call(elt.attributes, function (ac, at) {\n      ac[at.name] = at.value;\n      return ac;\n    }, {});\n    elt.selfReplace((0, _ACore._)({\n      tag: MultiLanguageText,\n      attr: attr\n    }));\n  });\n};\n\nvar _default = MultiLanguageText;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/MultiLanguageText.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/MultiSelectMenu.js":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/js/MultiSelectMenu.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/multiselectmenu.css */ \"./node_modules/absol-acomp/css/multiselectmenu.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _SelectMenu = _interopRequireDefault(__webpack_require__(/*! ./SelectMenu2 */ \"./node_modules/absol-acomp/js/SelectMenu2.js\"));\n\nvar _EventEmitter = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nvar _PositionTracker = _interopRequireDefault(__webpack_require__(/*! ./PositionTracker */ \"./node_modules/absol-acomp/js/PositionTracker.js\"));\n\n__webpack_require__(/*! ./SelectBoxItem */ \"./node_modules/absol-acomp/js/SelectBoxItem.js\");\n\nvar _SelectListBox = __webpack_require__(/*! ./SelectListBox */ \"./node_modules/absol-acomp/js/SelectListBox.js\");\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _ResizeSystem = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/ResizeSystem */ \"./node_modules/absol/src/HTML5/ResizeSystem.js\"));\n\nvar _SelectBox = __webpack_require__(/*! ./SelectBox */ \"./node_modules/absol-acomp/js/SelectBox.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @augments SelectBox\r\n * @augments PositionTracker\r\n * @constructor\r\n */\n\nfunction MultiSelectMenu() {\n  this.on('click', this.eventHandler.click);\n  /***\r\n   *\r\n   * @type {SelectListBox}\r\n   */\n\n  this.$selectlistBox = _({\n    tag: 'selectlistbox',\n    props: {\n      anchor: [1, 6, 2, 5],\n      displayValue: _SelectListBox.VALUE_HIDDEN\n    },\n    on: {\n      preupdateposition: this.eventHandler.preUpdateListPosition,\n      pressitem: this.eventHandler.selectListBoxPressItem\n    }\n  });\n  this.$itemCtn = $('.as-multi-select-menu-item-ctn', this);\n  this.$attachhook = $('attachhook', this).on('attached', this.eventHandler.attached);\n\n  _OOP[\"default\"].drillProperty(this, this.$selectlistBox, 'enableSearch');\n\n  this.$items = [];\n  this._values = [];\n  this.items = [];\n  this.values = [];\n  this.$selectlistBox.followTarget = this;\n  this.disableClickToFocus = false;\n  this.orderly = true;\n  this.itemFocusable = false;\n  this._activeValue = undefined;\n  this.strictValue = true;\n}\n\nMultiSelectMenu.tag = 'MultiSelectMenu'.toLowerCase();\n\nMultiSelectMenu.render = function () {\n  return _({\n    \"class\": ['as-multi-select-menu'],\n    extendEvent: ['change', 'add', 'remove', 'activevaluechange'],\n    attr: {\n      tabindex: '1'\n    },\n    child: [{\n      \"class\": ['as-multi-select-menu-item-ctn', 'as-bscroller']\n    }, {\n      tag: 'button',\n      \"class\": 'as-multi-select-menu-toggle-btn',\n      child: 'dropdown-ico'\n    }, 'attachhook']\n  });\n};\n\nMultiSelectMenu.prototype._requireItem = function (n) {\n  var itemElt;\n\n  while (this.$items.length < n) {\n    itemElt = (0, _SelectBox.requireItem)(this);\n    this.$itemCtn.addChild(itemElt);\n    this.$items.push(itemElt);\n  }\n\n  while (this.$items.length > n) {\n    itemElt = this.$items.pop();\n    this.$itemCtn.removeChild(itemElt);\n    (0, _SelectBox.releaseItem)(itemElt);\n  }\n};\n\nMultiSelectMenu.prototype._assignItems = function (items) {\n  for (var i = 0; i < this.$items.length && i < items.length; ++i) {\n    this.$items[i].data = items[i];\n  }\n};\n/***\r\n *\r\n * @param {string[] | number[]} values\r\n * @private\r\n */\n\n\nMultiSelectMenu.prototype._getItemsByValues = function (values) {\n  var selectListBoxElt = this.$selectlistBox;\n  var itemHolders = values.reduce(function (ac, cr) {\n    ac.push.apply(ac, selectListBoxElt.findItemsByValue(cr));\n    return ac;\n  }, []);\n\n  if (this.orderly) {\n    if (typeof this.orderly === 'function') {\n      itemHolders.sort(this.orderly);\n    } else {\n      itemHolders.sort(function (a, b) {\n        return a.idx - b.idx;\n      });\n    }\n  }\n\n  return itemHolders.map(function (holder) {\n    return holder.item;\n  });\n};\n\nMultiSelectMenu.prototype._updateItems = function () {\n  this.viewItemsByValues(this._values);\n};\n\nMultiSelectMenu.prototype.viewItemsByValues = function (values) {\n  var cBound = this.getBoundingClientRect();\n\n  var items = this._getItemsByValues(values);\n\n  this._requireItem(items.length);\n\n  this._assignItems(items);\n\n  if (this.itemFocusable) {\n    this._updateFocusItem();\n  }\n\n  var nBound = this.getBoundingClientRect();\n\n  if (nBound.width != cBound.width || nBound.height != cBound.height) {\n    _ResizeSystem[\"default\"].updateUp(this);\n  }\n};\n\nMultiSelectMenu.property = {};\nMultiSelectMenu.property.disabled = _SelectMenu[\"default\"].property.disabled;\nMultiSelectMenu.property.hidden = _SelectMenu[\"default\"].property.hidden;\nMultiSelectMenu.property.isFocus = _SelectMenu[\"default\"].property.isFocus;\nMultiSelectMenu.property.readOnly = _SelectMenu[\"default\"].property.readOnly;\n\nMultiSelectMenu.prototype.init = function (props) {\n  props = props || [];\n  Object.keys(props).forEach(function (key) {\n    if (props[key] === undefined) delete props[key];\n  });\n  this[\"super\"](props);\n};\n\nMultiSelectMenu.prototype._updateFocusItem = function () {\n  for (var i = 0; i < this.$items.length; ++i) {\n    this.$items[i].active = this.$items[i].value == this._activeValue;\n  }\n};\n\nMultiSelectMenu.prototype.init = _SelectMenu[\"default\"].prototype.init;\n\nMultiSelectMenu.prototype._implicit = function (values) {\n  if (values === null || values === undefined) values = [];\n\n  if (!(values instanceof Array)) {\n    values = [values];\n  }\n\n  values = values.filter(function (value) {\n    var type = _typeof(value);\n\n    return type === 'string' || type === 'number' || type === \"boolean\" || value === null || value === undefined;\n  }).reduce(function (ac, cr) {\n    if (!ac.dict[cr]) {\n      ac.dict[cr] = true;\n      ac.result.push(cr);\n    }\n\n    return ac;\n  }, {\n    result: [],\n    dict: {}\n  }).result;\n  return values;\n};\n\nMultiSelectMenu.prototype._explicit = function (values) {\n  var selectListBoxElt = this.$selectlistBox;\n  var strictValue = this.strictValue;\n  values = values.filter(function (value) {\n    if (!strictValue) return true;\n    var cts = selectListBoxElt.findItemsByValue(value);\n    if (cts && cts.length > 0) return true;\n    return false;\n  });\n  return values;\n};\n\nMultiSelectMenu.property.items = {\n  set: function set(items) {\n    items = items || [];\n    this.$selectlistBox.items = items;\n    this.addStyle('--list-min-width', this.$selectlistBox._estimateWidth + 'px');\n\n    this._updateItems();\n  },\n  get: function get() {\n    return this.$selectlistBox.items;\n  }\n};\nMultiSelectMenu.property.values = {\n  set: function set(values) {\n    values = this._implicit(values);\n    this._values = values;\n    this.$selectlistBox.values = values;\n\n    this._updateItems();\n  },\n  get: function get() {\n    return this._explicit(this._values);\n  }\n};\nMultiSelectMenu.property.orderly = {\n  set: function set(value) {\n    var needUpdate = this._orderly === this._orderly;\n\n    if (typeof value === 'function') {\n      this._orderly;\n    } else this._orderly = !!value;\n\n    if (needUpdate) {\n      this.values = this.values;\n    }\n  },\n  get: function get() {\n    return !!this._orderly;\n  }\n};\nMultiSelectMenu.property.disableClickToFocus = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-disable-click-to-focus');\n    } else {\n      this.removeClass('as-disable-click-to-focus');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-disable-click-to-focus');\n  }\n};\nMultiSelectMenu.property.itemFocusable = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-item-focusable');\n    } else {\n      this.removeClass('as-item-focusable');\n    }\n\n    this._updateFocusItem();\n  },\n  get: function get() {\n    return this.hasClass('as-item-focusable');\n  }\n};\nMultiSelectMenu.property.activeValue = {\n  set: function set(value) {\n    this._activeValue = value;\n\n    if (this.itemFocusable) {\n      this._updateFocusItem(); //todo\n\n    }\n  },\n  get: function get() {\n    return this._activeValue;\n  }\n};\nMultiSelectMenu.property.strictValue = {\n  set: function set(value) {\n    if (value) {\n      this.attr('data-strict-value', null);\n    } else {\n      this.attr('data-strict-value', 'false');\n    }\n  },\n  get: function get() {\n    var data = this.attr('data-strict-value');\n    return !data || data != 'false' && data !== '0';\n  }\n};\nMultiSelectMenu.eventHandler = Object.assign({}, _SelectMenu[\"default\"].eventHandler);\n\nMultiSelectMenu.eventHandler.attached = function () {\n  var maxHeightStyle = this.getComputedStyleValue('max-height') || 'none';\n\n  if (maxHeightStyle.match(/[0-9-]+px/)) {\n    this.addStyle('--multi-select-menu-max-height', maxHeightStyle);\n    this.addStyle('max-height', 'unset');\n  } else if (maxHeightStyle !== 'none') {\n    console.warn('Can not adapt max-height:', maxHeightStyle);\n  }\n};\n\nMultiSelectMenu.eventHandler.click = function (event) {\n  if (this.disabled) return;\n\n  if ((event.target === this || event.target === this.$itemCtn) && !this.disableClickToFocus && !this.readOnly) {\n    this.isFocus = !this.isFocus;\n  }\n};\n\nMultiSelectMenu.eventHandler.bodyClick = function (event) {\n  if (!_EventEmitter[\"default\"].hitElement(this.$selectlistBox, event) && event.target !== this && event.target !== this.$itemCtn) {\n    this.isFocus = false;\n  }\n};\n\nMultiSelectMenu.eventHandler.selectListBoxPressItem = function (event) {\n  var data = event.data;\n  var currentValues = this.$selectlistBox.values;\n  currentValues.push(data.value);\n  this.$selectlistBox.values = currentValues;\n  this.$selectlistBox.updatePosition();\n  this._values = currentValues.slice();\n  this._activeValue = data.value;\n\n  this._updateItems();\n\n  this.isFocus = false;\n  this.emit('add', Object.assign({}, event, {\n    type: 'add',\n    target: this,\n    value: data.value,\n    data: data,\n    itemData: data\n  }), this);\n  this.emit('change', Object.assign({}, event, {\n    type: 'change',\n    action: 'add',\n    target: this,\n    value: data.value,\n    data: data,\n    values: this.values\n  }), this);\n};\n\nMultiSelectMenu.eventHandler.pressItem = function (item, event) {\n  var value = item.value;\n\n  if (this.itemFocusable) {\n    var prevActiveValue = this.activeValue;\n\n    if (value !== prevActiveValue) {\n      this.activeValue = value;\n      this.emit('activevaluechange', {\n        target: this,\n        originEvent: event,\n        prevActiveValue: prevActiveValue,\n        activeValue: value\n      }, this);\n    }\n  }\n};\n\nMultiSelectMenu.eventHandler.pressCloseItem = function (item, event) {\n  var value = item.value;\n  var data = item.data;\n  var index;\n  index = this._values.indexOf(value);\n\n  if (index >= 0) {\n    this._values.splice(index, 1);\n\n    this._updateItems();\n\n    this.$selectlistBox.values = this._values;\n    this.emit('remove', Object.assign({}, event, {\n      type: 'change',\n      target: this,\n      data: data,\n      value: value,\n      itemData: data\n    }), this);\n    this.emit('change', Object.assign({}, event, {\n      type: 'change',\n      action: 'remove',\n      target: this,\n      data: data,\n      value: value,\n      itemData: data\n    }), this);\n  }\n};\n\n_ACore[\"default\"].install(MultiSelectMenu);\n\nvar _default = MultiSelectMenu;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/MultiSelectMenu.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/NumberSpanInput.js":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/js/NumberSpanInput.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @extends  AElement\r\n * @constructor\r\n */\n\nfunction NumberSpanInput() {\n  this.ev_keydown = this.ev_keydown.bind(this);\n  this.on('keydown', this.ev_keydown, true);\n  this.readOnly = false;\n  this.value = 0;\n  this.on('paste', function (event) {\n    event.preventDefault();\n  });\n}\n\nNumberSpanInput.tag = 'NumberSpanInput'.toLowerCase();\n\nNumberSpanInput.render = function () {\n  return _({\n    tag: 'span',\n    child: {\n      text: ''\n    }\n  });\n};\n\nNumberSpanInput.prototype.selectAll = function () {\n  var sel;\n\n  if (window.getSelection) {\n    sel = window.getSelection();\n    sel.removeAllRanges();\n    var range = document.createRange();\n    range.selectNode(this.childNodes[this.childNodes.length - 1]);\n    sel.addRange(range);\n  } else {\n    console.error(\"TimePicker: Not support!\");\n  }\n};\n\nNumberSpanInput.prototype.selectEnd = function () {\n  var sel;\n\n  if (window.getSelection) {\n    sel = window.getSelection();\n    sel.removeAllRanges();\n\n    this._autoAddZero();\n\n    var length = this.firstChild.data.length;\n    var range = document.createRange();\n    range.setStart(this.firstChild, length);\n    range.setEnd(this.firstChild, length);\n    sel.addRange(range);\n  } else {\n    console.error(\"TimePicker: Not support!\");\n  }\n};\n\nNumberSpanInput.prototype.selectNone = function () {\n  var sel;\n\n  if (document.activeElement === this) {\n    sel = window.getSelection();\n    sel.removeAllRanges();\n  }\n};\n\nNumberSpanInput.prototype._autoAddZero = function () {\n  if (!this.firstChild) {\n    this.addChild(_({\n      text: '0'\n    }));\n  }\n};\n/***\r\n *\r\n * @param {KeyboardEvent} event\r\n */\n\n\nNumberSpanInput.prototype.ev_keydown = function (event) {\n  if (event.key && event.key.length == 1 && !event.ctrlKey && !event.altKey) {\n    if (event.key.match(/[0-9]/)) {} else {\n      event.preventDefault();\n    }\n  } else if (event.key == 'Enter') {\n    event.preventDefault();\n  }\n};\n\nNumberSpanInput.property = {};\nNumberSpanInput.property.readOnly = {\n  set: function set(value) {\n    this.contentEditable = !value;\n  },\n  get: function get() {\n    return this.contentEditable === false || this.contentEditable === 'false';\n  }\n};\n/***\r\n *\r\n * @type {NumberSpanInput}\r\n */\n\nNumberSpanInput.property.value = {\n  set: function set(value) {\n    this._autoAddZero();\n\n    this.firstChild.data = value + '';\n  },\n  get: function get() {\n    return this.firstChild && this.firstChild.data || '';\n  }\n};\n\n_ACore[\"default\"].install(NumberSpanInput);\n\nvar _default = NumberSpanInput;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/NumberSpanInput.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/OnScreenWidget.js":
/*!*******************************************************!*\
  !*** ./node_modules/absol-acomp/js/OnScreenWidget.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/onscreenwidget.css */ \"./node_modules/absol-acomp/css/onscreenwidget.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Hanger = _interopRequireDefault(__webpack_require__(/*! ./Hanger */ \"./node_modules/absol-acomp/js/Hanger.js\"));\n\nvar _Dom = __webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\");\n\nvar _Vec = _interopRequireDefault(__webpack_require__(/*! absol/src/Math/Vec2 */ \"./node_modules/absol/src/Math/Vec2.js\"));\n\nvar _stringGenerate = __webpack_require__(/*! absol/src/String/stringGenerate */ \"./node_modules/absol/src/String/stringGenerate.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\nvar $$ = _ACore[\"default\"].$$;\n/***\r\n * @extends Hanger\r\n * @constructor\r\n */\n\nfunction OnScreenWidget() {\n  this.id = 'unset-id-' + (0, _stringGenerate.randomIdent)();\n  this.on({\n    dragstart: this.eventHandler.widgetStartDrag,\n    drag: this.eventHandler.widgetDrag,\n    dragend: this.eventHandler.widgetDragEnd\n  });\n  this.addEventListener('click', function (event) {\n    if (!this._preventClick) this.emit('click', event, this);\n  });\n  this.$attachhook = _('attachhook').addTo(this);\n  this.$attachhook.on('attached', this.eventHandler.attached);\n  this.config = null;\n}\n\nOnScreenWidget.tag = 'OnScreenWidget'.toLowerCase();\n\nOnScreenWidget.render = function () {\n  return _({\n    tag: 'hanger',\n    extendEvent: 'click',\n    \"class\": ['as-onscreen-widget', 'as-size-loading'],\n    props: {\n      hangOn: 3\n    }\n  });\n};\n\nOnScreenWidget.prototype.configPrefix = 'on-screen-widget-';\n\nOnScreenWidget.prototype._genConfig = function () {\n  this._widgetBound = this.getBoundingClientRect();\n  var screenSize = (0, _Dom.getScreenSize)();\n  return {\n    cx: (this._widgetBound.left + this._widgetBound.width / 2) * 100 / screenSize.width,\n    cy: (this._widgetBound.top + this._widgetBound.height / 2) * 100 / screenSize.height\n  };\n};\n\nOnScreenWidget.prototype._saveConfig = function () {\n  var id = this.id || '';\n  if (id.startsWith('unset-id-') || !this.config) return;\n  localStorage.setItem(this.configPrefix + id, JSON.stringify(this.config));\n};\n\nOnScreenWidget.prototype._loadConfig = function () {\n  var id = this.id || '';\n  if (id.startsWith('unset-id-')) return;\n  var config = null;\n\n  try {\n    config = JSON.parse(localStorage.getItem(this.configPrefix + id));\n\n    if (_typeof(config) !== \"object\" || typeof config.cx !== \"number\" || typeof config.cy !== 'number') {\n      config = this.config || this._genConfig();\n    }\n  } catch (error) {\n    config = this.config || this._genConfig();\n  }\n\n  var cx = config.cx || 0;\n  var cy = config.cy || 0;\n  this.addStyle({\n    '--cx': cx / 100,\n    '--cy': cy / 100\n  });\n  this.config = config;\n};\n\nOnScreenWidget.prototype._updateCSSSize = function () {\n  var bound = this.getBoundingClientRect();\n  this.addStyle({\n    '--client-height': bound.height + 'px',\n    '--client-width': bound.width + 'px'\n  });\n  this.removeClass('as-size-loading');\n};\n/***\r\n *\r\n * @type {OnScreenWidget|{}}\r\n */\n\n\nOnScreenWidget.eventHandler = {};\n\nOnScreenWidget.eventHandler.attached = function () {\n  var images = $$('img', this);\n  var syncs = images.map(function (img) {\n    if (img.classList.contains('absol-attachhook')) return Promise.resolve();\n    return (0, _Dom.waitImageLoaded)(img, 100);\n  });\n  var thisW = this;\n  Promise.all(syncs).then(function () {\n    thisW._updateCSSSize();\n\n    thisW._loadConfig();\n  });\n};\n\nOnScreenWidget.eventHandler.widgetStartDrag = function (event) {\n  this._widgetBound = this.getBoundingClientRect();\n  this._preventClick = true;\n};\n\nOnScreenWidget.eventHandler.widgetDrag = function (event) {\n  event.preventDefault();\n  var screenSize = (0, _Dom.getScreenSize)();\n  var p0 = new _Vec[\"default\"](this._widgetBound.left, this._widgetBound.top);\n  var dv = event.currentPoint.sub(event.startingPoint);\n  var p1 = p0.add(dv);\n  var cx = (p1.x - 2) * 100 / (screenSize.width - this._widgetBound.width - 4);\n  var cy = (p1.y - 2) * 100 / (screenSize.height - this._widgetBound.height - 4);\n  cx = Math.max(0, Math.min(100, cx));\n  cy = Math.max(0, Math.min(100, cy));\n  this.addStyle({\n    '--cx': cx / 100,\n    '--cy': cy / 100\n  });\n\n  if (this.config) {\n    this.config.cx = cx;\n    this.config.cy = cy;\n  }\n};\n\nOnScreenWidget.eventHandler.widgetDragEnd = function () {\n  var thisWG = this;\n  setTimeout(function () {\n    thisWG._preventClick = false;\n  }, 100);\n\n  this._saveConfig();\n};\n\n_ACore[\"default\"].install(OnScreenWidget);\n\nvar _default = OnScreenWidget;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/OnScreenWidget.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/OnsScreenWindow.js":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/js/OnsScreenWindow.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/onscreenwindow.css */ \"./node_modules/absol-acomp/css/onscreenwindow.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _Dom = _interopRequireWildcard(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _WindowBox = _interopRequireDefault(__webpack_require__(/*! ./WindowBox */ \"./node_modules/absol-acomp/js/WindowBox.js\"));\n\nvar _Hanger = _interopRequireDefault(__webpack_require__(/*! ./Hanger */ \"./node_modules/absol-acomp/js/Hanger.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction OnScreenWindow() {\n  var self = this;\n  this._lastSize = {\n    width: 0,\n    height: 0\n  };\n  /***\r\n   *\r\n   * @type {WindowBox}\r\n   */\n\n  this.$windowBox = $(_WindowBox[\"default\"].tag, this);\n\n  _OOP[\"default\"].drillProperty(this, this.$windowBox, 'windowTitle');\n\n  _OOP[\"default\"].drillProperty(this, this.$windowBox, 'windowActions');\n\n  _OOP[\"default\"].drillProperty(this, this.$windowBox, 'windowIcon');\n\n  this.$windowBox.on('action', function (event) {\n    self.emit('action', event, self);\n  });\n  this.$header = _({\n    tag: _Hanger[\"default\"].tag,\n    elt: this.$windowBox.$header\n  });\n  this.$header.on('dragstart', this.eventHandler.dragStart.bind(this, this.$header, 'move')); //\n\n  this.$bottomResizer = $('.absol-onscreen-window-resizer.absol-onscreen-window-resize-bottom', this);\n  this.$bottomResizer.on('dragstart', this.eventHandler.dragStart.bind(this, this.$bottomResizer, 'bottom')); //\n\n  this.$rightResizer = $('.absol-onscreen-window-resizer.absol-onscreen-window-resize-right', this);\n  this.$rightResizer.on('dragstart', this.eventHandler.dragStart.bind(this, this.$rightResizer, 'right')); //\n\n  this.$topResizer = $('.absol-onscreen-window-resizer.absol-onscreen-window-resize-top', this);\n  this.$topResizer.on('dragstart', this.eventHandler.dragStart.bind(this, this.$topResizer, 'top'));\n  this.$leftResizer = $('.absol-onscreen-window-resizer.absol-onscreen-window-resize-left', this);\n  this.$leftResizer.on('dragstart', this.eventHandler.dragStart.bind(this, this.$leftResizer, 'left'));\n  this.$bottomRightResizer = $('.absol-onscreen-window-resizer.absol-onscreen-window-resize-bottom-right', this);\n  this.$bottomRightResizer.on('dragstart', this.eventHandler.dragStart.bind(this, this.$bottomRightResizer, 'bottomRight')); //\n\n  this.$bottomLeftResizer = $('.absol-onscreen-window-resizer.absol-onscreen-window-resize-bottom-left', this);\n  this.$bottomLeftResizer.on('dragstart', this.eventHandler.dragStart.bind(this, this.$bottomLeftResizer, 'bottomLeft')); //\n\n  this.$topLeftResizer = $('.absol-onscreen-window-resizer.absol-onscreen-window-resize-top-left', this);\n  this.$topLeftResizer.on('dragstart', this.eventHandler.dragStart.bind(this, this.$topLeftResizer, 'topLeft'));\n  this.$topRightResizer = $('.absol-onscreen-window-resizer.absol-onscreen-window-resize-top-right', this);\n  this.$topRightResizer.on('dragstart', this.eventHandler.dragStart.bind(this, this.$topRightResizer, 'topRight'));\n  this.$attachhook = _('attachhook').addTo(this);\n  this.$attachhook.requestUpdateSize = this.relocation.bind(this);\n  this.$attachhook.on('error', function () {\n    _Dom[\"default\"].addToResizeSystem(this);\n  });\n}\n\nOnScreenWindow.tag = 'OnScreenWindow'.toLowerCase();\n\nOnScreenWindow.render = function () {\n  return _({\n    extendEvent: ['sizechange', 'drag', 'relocation', 'action'],\n    \"class\": 'absol-onscreen-window',\n    child: [{\n      tag: _WindowBox[\"default\"].tag,\n      \"class\": 'as-window-box'\n    }, 'hanger.absol-onscreen-window-resizer.absol-onscreen-window-resize-bottom', 'hanger.absol-onscreen-window-resizer.absol-onscreen-window-resize-top', 'hanger.absol-onscreen-window-resizer.absol-onscreen-window-resize-left', 'hanger.absol-onscreen-window-resizer.absol-onscreen-window-resize-right', 'hanger.absol-onscreen-window-resizer.absol-onscreen-window-resize-bottom-right', 'hanger.absol-onscreen-window-resizer.absol-onscreen-window-resize-bottom-left', 'hanger.absol-onscreen-window-resizer.absol-onscreen-window-resize-top-left', 'hanger.absol-onscreen-window-resizer.absol-onscreen-window-resize-top-right']\n  });\n};\n\nOnScreenWindow.prototype.maybeSizeChange = function () {\n  var bound = this.getBoundingClientRect();\n\n  if (this._lastSize.width !== bound.width || this._lastSize.height !== bound.height) {\n    this._lastSize = bound;\n    window.dispatchEvent(new Event('resize'));\n    this.emit('sizechange', {\n      size: bound,\n      target: this,\n      type: 'sizechange'\n    }, this);\n  }\n};\n\nOnScreenWindow.prototype.moveFators = {\n  move: {\n    x: 1,\n    y: 1,\n\n    /***\r\n     * @this OnScreenWindow\r\n     * @param event\r\n     */\n    canMove: function canMove(event) {\n      return true;\n    },\n    cursor: 'move'\n  },\n  top: {\n    y: 1,\n    height: -1\n  },\n  bottom: {\n    height: 1,\n    cursor: 's-resize'\n  },\n  bottomRight: {\n    height: 1,\n    width: 1,\n    cursor: 'se-resize'\n  },\n  bottomLeft: {\n    height: 1,\n    width: -1,\n    x: 1,\n    cursor: 'sw-resize'\n  },\n  topLeft: {\n    height: -1,\n    width: -1,\n    x: 1,\n    y: 1,\n    cursor: 'nw-resize'\n  },\n  topRight: {\n    height: -1,\n    width: 1,\n    y: 1,\n    cursor: 'ne-resize'\n  },\n  right: {\n    width: 1,\n    cursor: 'e-resize'\n  },\n  left: {\n    x: 1,\n    width: -1,\n    cursor: 'w-resize'\n  }\n};\n/***\r\n *\r\n * @type {{}}\r\n * @memberOf OnScreenWindow#\r\n */\n\nOnScreenWindow.eventHandler = {};\n/***\r\n * @this OnScreenWindow\r\n * @param {Hanger} elt\r\n * @param fN\r\n * @param event\r\n */\n\nOnScreenWindow.eventHandler.dragStart = function (elt, fN, event) {\n  var factor = this.moveFators[fN];\n  if (factor.canMove && !factor.canMove.call(this, event)) return;\n  this.movingData = {\n    factor: factor,\n    screenSize: (0, _Dom.getScreenSize)(),\n    modal: _('.absol-onscreen-window-moving-modal').addStyle('cursor', factor.cursor).addTo(document.body),\n    elt: elt,\n    bound: this.getBoundingClientRect()\n  };\n  elt.on('drag', this.eventHandler.drag).on('dragend', this.eventHandler.dragEnd);\n};\n/***\r\n * @this OnScreenWindow\r\n * @param event\r\n */\n\n\nOnScreenWindow.eventHandler.drag = function (event) {\n  var movingData = this.movingData;\n  var factor = movingData.factor;\n  var bound = movingData.bound;\n  var screenSize = movingData.screenSize;\n  var dv = event.currentPoint.sub(event.startingPoint);\n  var x, y, width, height;\n\n  if (factor.x) {\n    x = dv.x * factor.x + bound.left;\n    x = Math.min(x, screenSize.width - bound.width);\n    x = Math.max(0, x);\n    this.addStyle('left', x + 'px');\n  }\n\n  if (factor.y) {\n    y = dv.y * factor.y + bound.top;\n    y = Math.min(y, screenSize.height - bound.height);\n    y = Math.max(0, y);\n    this.addStyle('top', y + 'px');\n  }\n\n  if (factor.width) {\n    width = dv.x * factor.width + bound.width;\n    this.addStyle('width', width + 'px');\n  }\n\n  if (factor.height) {\n    height = dv.y * factor.height + bound.height;\n    this.addStyle('height', height + 'px');\n  }\n\n  this.emit('relocation', {\n    type: 'relocation',\n    target: this\n  }, this);\n  this.maybeSizeChange();\n};\n/***\r\n * @this OnScreenWindow\r\n * @param event\r\n */\n\n\nOnScreenWindow.eventHandler.dragEnd = function (event) {\n  var movingData = this.movingData;\n  var elt = movingData.elt;\n  elt.off('drag', this.eventHandler.drag).off('dragend', this.eventHandler.dragEnd);\n  setTimeout(function () {\n    movingData.modal.remove();\n  }, 50);\n  this.movingData = null;\n};\n\n['addChild', 'addChildBefore', 'addChildAfter', 'clearChild', 'findChildBefore', 'findChildAfter'].forEach(function (key) {\n  OnScreenWindow.prototype[key] = function () {\n    return this.$windowBox[key].apply(this.$windowBox, arguments);\n  };\n});\nOnScreenWindow.property = {};\n\nOnScreenWindow.prototype.relocation = function () {\n  var bound = this.getBoundingClientRect();\n\n  var screenSize = _Dom[\"default\"].getScreenSize();\n\n  var isRelocated = false;\n\n  if (bound.bottom >= screenSize.height) {\n    this.addStyle('top', Math.max(0, screenSize.height - bound.height) + 'px');\n    isRelocated = true;\n  }\n\n  if (bound.right >= screenSize.width) {\n    this.addStyle('left', Math.max(0, screenSize.width - bound.width) + 'px');\n    isRelocated = true;\n  }\n\n  if (isRelocated) {\n    this.emit('relocation', {\n      type: 'relocation',\n      target: this\n    }, this);\n  }\n};\n\n_ACore[\"default\"].install(OnScreenWindow);\n\nvar _default = OnScreenWindow;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/OnsScreenWindow.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/PageIndicator.js":
/*!******************************************************!*\
  !*** ./node_modules/absol-acomp/js/PageIndicator.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\n__webpack_require__(/*! ../css/pageindicator.css */ \"./node_modules/absol-acomp/css/pageindicator.css\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction PageIndicator() {\n  this._idx = -1;\n  this.length = 0;\n  this.idx = -1;\n}\n\nPageIndicator.tag = 'PageIndicator'.toLowerCase();\n\nPageIndicator.render = function () {\n  return _({\n    \"class\": 'as-page-indicator',\n    child: []\n  });\n};\n\nPageIndicator.property = {};\nPageIndicator.property.length = {\n  set: function set(value) {\n    value = value || 0;\n    value = Math.max(0, value);\n\n    while (this.childNodes.length < value) {\n      this.addChild(_('button.as-page-indicator-item'));\n    }\n\n    while (this.childNodes.length > value) {\n      this.removeChild(this.childNodes[this.childNodes.length - 1]);\n    }\n\n    this.idx = this._idx; //update\n  },\n  get: function get() {\n    return this.childNodes.length;\n  }\n};\nPageIndicator.property.idx = {\n  set: function set(value) {\n    var activeElt = this.childNodes[this._idx];\n    if (activeElt) activeElt.removeClass('as-active');\n    this._idx = value;\n    activeElt = this.childNodes[this._idx];\n    if (activeElt) activeElt.addClass('as-active');\n  },\n  get: function get() {\n    return this._idx;\n  }\n};\n\n_ACore[\"default\"].install(PageIndicator);\n\nvar _default = PageIndicator;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/PageIndicator.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/PageSelector.js":
/*!*****************************************************!*\
  !*** ./node_modules/absol-acomp/js/PageSelector.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/pageselector.css */ \"./node_modules/absol-acomp/css/pageselector.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction PageSelector() {\n  this.$pageCount = $('.absol-page-count', this);\n  this.$pageInput = $('.absol-page-number-input input', this);\n  this.$pageInput.on('keyup', this.eventHandler.pressEnterKey);\n  this.$prevBtn = $('li.page-previous', this);\n  this.$nextBtn = $('li.page-next', this);\n  this.$firstBtn = $('li.page-first', this);\n  this.$lastBtn = $('li.page-last', this);\n  this.$nextBtn.on('click', this.eventHandler.clickNext);\n  this.$prevBtn.on('click', this.eventHandler.clickPrev);\n  this.$firstBtn.on('click', this.eventHandler.clickFirst);\n  this.$lastBtn.on('click', this.eventHandler.clickLast);\n  this.$buttonContainer = $('.absol-page-number-buttons', this);\n  this._buttons = [];\n  this._pageOffset = 1;\n  this._selectedIndex = 1;\n  this._pageCount = 1;\n  this._pageRange = 1;\n  this.$pageInput.value = this._selectedIndex;\n}\n\nPageSelector.tag = 'PageSelector'.toLowerCase();\n\nPageSelector.render = function () {\n  return _({\n    \"class\": ['absol-page-selector'],\n    extendEvent: ['change'],\n    child: [{\n      \"class\": 'absol-page-number-input',\n      child: [{\n        tag: 'label',\n        child: {\n          text: \"Page\"\n        }\n      }, {\n        tag: 'input',\n        attr: {\n          type: 'text'\n        }\n      }, {\n        tag: 'span',\n        child: {\n          text: '/ '\n        }\n      }, {\n        tag: 'span',\n        \"class\": 'absol-page-count',\n        child: {\n          text: '1'\n        }\n      }]\n    }, {\n      tag: 'ul',\n      \"class\": 'absol-page-number-buttons',\n      child: [{\n        tag: 'li',\n        \"class\": \"page-first\",\n        attr: {\n          title: 'First'\n        },\n        child: 'a.mdi.mdi-chevron-double-left'\n      }, {\n        tag: 'li',\n        attr: {\n          title: 'Previous'\n        },\n        \"class\": 'page-previous',\n        child: 'a.mdi.mdi-chevron-left'\n      }, {\n        tag: 'li',\n        attr: {\n          title: 'Next'\n        },\n        \"class\": 'page-next',\n        child: 'a.mdi.mdi-chevron-right'\n      }, {\n        tag: 'li',\n        attr: {\n          title: 'Last'\n        },\n        \"class\": 'page-last',\n        child: 'a.mdi.mdi-chevron-double-right'\n      }]\n    }]\n  });\n};\n\nPageSelector.eventHandler = {};\n\nPageSelector.eventHandler.pressEnterKey = function (event) {\n  if (event.keyCode != 13) return;\n  var index = parseInt(this.$pageInput.value.trim(), 10);\n\n  if (index < 1 || index > this._pageCount) {\n    this.$pageInput.value = this._selectedIndex;\n    return;\n  }\n\n  this.selectPage(index, true);\n};\n\nPageSelector.eventHandler.clickLast = function (event) {\n  this.selectPage(this._pageCount, true);\n};\n\nPageSelector.eventHandler.clickFirst = function (event) {\n  this.selectPage(1, true);\n};\n\nPageSelector.eventHandler.clickNext = function (event) {\n  if (this._selectedIndex == this._pageCount) return;\n  this.selectPage(this._selectedIndex + 1, true);\n};\n\nPageSelector.eventHandler.clickPrev = function (event) {\n  if (this._selectedIndex == 1) return;\n  this.selectPage(this._selectedIndex - 1, true);\n};\n\nPageSelector.eventHandler.clickIndex = function (index, event) {\n  this.selectPage(index + this._pageOffset, true);\n};\n\nPageSelector.prototype._createButton = function (index) {\n  var button = _({\n    tag: 'li',\n    \"class\": 'absol-page-number',\n    child: {\n      tag: 'a',\n      attr: {\n        'data-index-text': index + 1\n      }\n    },\n    on: {\n      click: PageSelector.eventHandler.clickIndex.bind(this, index)\n    }\n  });\n\n  this.$buttonContainer.addChildBefore(button, this.$nextBtn);\n  return button;\n};\n\nPageSelector.prototype.setPageRange = function (pageCount) {\n  this._pageRange = pageCount;\n\n  while (this._buttons.length < pageCount) {\n    this._buttons.push(this._createButton(this._buttons.length));\n  }\n\n  while (this._buttons.length > pageCount) {\n    this._buttons.pop().remove();\n  }\n};\n\nPageSelector.prototype.setStartPage = function (index) {\n  this._buttons.forEach(function (e, i) {\n    e.firstChild.attr('data-index-text', i + index + '');\n  });\n\n  this._pageOffset = index;\n};\n\nPageSelector.prototype.selectPage = function (index, userActive) {\n  if (index == this._selectedIndex) this.setStartPage(index - parseInt(this._pageRange / 2));\n  if (index >= this._pageOffset + this._pageRange) this.setStartPage(index - parseInt(this._pageRange / 2));\n\n  if (index > this._selectedIndex) {\n    if (index == this._pageOffset + this._pageRange - 1) this.setStartPage(index - parseInt(this._pageRange / 2));\n  }\n\n  if (index < this._selectedIndex) {\n    if (index == this._pageOffset) this.setStartPage(index - parseInt(this._pageRange / 2));\n  }\n\n  if (index > this._pageCount - parseInt(this._pageRange / 2)) this.setStartPage(this._pageCount - this._pageRange + 1);\n  if (index <= parseInt(this._pageRange / 2)) this.setStartPage(1);\n  var pageOffset = this._pageOffset;\n\n  this._buttons.forEach(function (e, i) {\n    if (i + pageOffset == index) {\n      e.addClass('active');\n    } else {\n      e.removeClass('active');\n    }\n  });\n\n  if (this._selectedIndex != index) {\n    this._selectedIndex = index;\n    this.$pageInput.value = index;\n    this.emit('change', {\n      target: this,\n      selectedIndex: index,\n      userActive: !!userActive\n    }, this);\n  }\n};\n\nPageSelector.prototype.getSelectedPage = function () {\n  return this._selectedIndex;\n};\n\nPageSelector.prototype.setPageCount = function (count) {\n  this._pageCount = count;\n  this.$pageCount.firstChild.data = '' + count;\n  this.attr('data-page-count', count);\n};\n\nPageSelector.property = {};\nPageSelector.property.selectedIndex = {\n  set: function set(value) {\n    this.selectPage(value, false);\n  },\n  get: function get() {\n    return this._selectedIndex;\n  }\n};\nPageSelector.property.pageCount = {\n  set: function set(value) {\n    this.setPageCount(value);\n  },\n  get: function get() {\n    return this._pageCount;\n  }\n};\nPageSelector.property.pageOffset = {\n  set: function set(value) {\n    this.setStartPage(value);\n  },\n  get: function get() {\n    return this._pageOffset;\n  }\n};\nPageSelector.property.pageRange = {\n  set: function set(value) {\n    this.setPageRange(value);\n  },\n  get: function get() {\n    return this._pageRange;\n  }\n};\n\nPageSelector.prototype.init = function (props) {\n  props = props || {};\n  props.pageOffset = props.pageOffset || 1;\n  props.pageRange = props.pageRange || 5;\n  props.pageCount = props.pageCount || 15;\n  props.selectedIndex = typeof props.selectedIndex == \"number\" ? props.selectedIndex : props.pageOffset;\n  if (props.pageCount < props.pageRange) props.pageRange = props.pageCount;\n  this.setPageCount(props.pageCount);\n  this.setPageRange(props.pageRange);\n  this.setStartPage(props.pageOffset);\n  this.selectPage(props.selectedIndex);\n  props = Object.assign({}, props);\n  delete props.pageOffset;\n  delete props.pageRange;\n  delete props.pageCount;\n  delete props.selectedIndex;\n};\n\n_ACore[\"default\"].install(PageSelector);\n\nvar _default = PageSelector;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/PageSelector.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/PathMenu.js":
/*!*************************************************!*\
  !*** ./node_modules/absol-acomp/js/PathMenu.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/pathmenu.css */ \"./node_modules/absol-acomp/css/pathmenu.css\");\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _QuickMenu = _interopRequireDefault(__webpack_require__(/*! ./QuickMenu */ \"./node_modules/absol-acomp/js/QuickMenu.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction PathMenu() {\n  this._path = [];\n  this.$items = [];\n}\n\nPathMenu.tag = 'PathMenu'.toLowerCase();\n\nPathMenu.render = function () {\n  return (0, _ACore._)({\n    attr: {\n      tabindex: '1'\n    },\n    extendEvent: ['press', 'change'],\n    \"class\": 'as-path-menu'\n  });\n};\n\nPathMenu.prototype._makeItem = function (data, idx) {\n  var self = this;\n  var button = (0, _ACore._)({\n    \"class\": ['as-ribbon-split-button', 'as-path-menu-item'],\n    child: {\n      \"class\": 'as-ribbon-split-button-content',\n      child: [{\n        tag: 'button',\n        attr: {\n          'tabindex': '-1'\n        },\n        \"class\": 'as-ribbon-split-button-primary',\n        child: {\n          tag: 'span',\n          \"class\": 'as-ribbon-split-button-text',\n          child: {\n            text: (data.name || data.text || '') + ''\n          }\n        }\n      }, {\n        tag: 'button',\n        attr: {\n          'tabindex': '-1'\n        },\n        \"class\": 'as-ribbon-split-button-extend',\n        child: ['span.mdi.mdi-chevron-right']\n      }]\n    }\n  });\n  button.on('mouseenter', function () {\n    if (document.activeElement && _AElement[\"default\"].prototype.isDescendantOf.call(document.activeElement, self) && self.hasClass('as-opening-item')) {\n      if (button.quickMenu) button.quickMenu.open();\n    }\n  });\n  var extendIconElt = (0, _ACore.$)('.as-ribbon-split-button-extend .mdi', button);\n  var primaryBtn = (0, _ACore.$)('.as-ribbon-split-button-primary', button).on('click', function () {\n    self.emit('press', {\n      target: self,\n      pathItem: data,\n      index: idx\n    }, self);\n  }); //as-ribbon-split-button-icon\n\n  var icon = null;\n\n  if (data.icon) {\n    icon = (0, _ACore._)(data.icon);\n  } else if (data.iconSrc) {\n    icon = (0, _ACore._)({\n      tag: 'img',\n      props: {\n        src: data.iconSrc\n      }\n    });\n  }\n\n  if (icon) {\n    if (icon.parentElement) icon = (0, _ACore.$)(icon.cloneNode(true));\n    icon.addClass('as-ribbon-split-button-icon');\n    primaryBtn.addChildBefore(icon, primaryBtn.firstChild);\n  }\n\n  var quickTrigger = (0, _ACore.$)('.as-ribbon-split-button-extend', button);\n\n  if (data.items && data.items.length > 0) {\n    button.quickMenu = _QuickMenu[\"default\"].toggleWhenClick(quickTrigger, {\n      getMenuProps: function getMenuProps() {\n        return {\n          items: data.items.map(function (it, menuIndex) {\n            if (typeof it === \"string\") return it;\n\n            if (_typeof(it) === \"object\") {\n              if (it.icon || it.iconSrc || it.name || it.text) {\n                return {\n                  text: it.name || it.text,\n                  menuIndex: menuIndex,\n                  icon: it.iconSrc ? {\n                    tag: 'img',\n                    props: {\n                      src: it.iconSrc\n                    }\n                  } : it.icon || undefined,\n                  extendStyle: it.extendStyle || {},\n                  extendClass: it.extendClass || []\n                };\n              }\n            }\n\n            return it;\n          })\n        };\n      },\n      anchor: [1, 6, 0, 7],\n      onOpen: function onOpen() {\n        self.addClass('as-opening-item');\n        extendIconElt.addClass('mdi-rotate-90');\n      },\n      onClose: function onClose() {\n        self.removeClass('as-opening-item');\n        extendIconElt.removeClass('mdi-rotate-90');\n      },\n      onSelect: function onSelect(item) {\n        var dataItem = data.items[item.menuIndex];\n        self.emit('change', {\n          target: self,\n          pathItem: data,\n          item: dataItem,\n          index: idx\n        }, self);\n        button.removeClass('as-open');\n      }\n    });\n  } else {\n    button.addClass('as-has-no-item');\n  }\n\n  return button;\n};\n\nPathMenu.property = {};\nPathMenu.property.path = {\n  set: function set(path) {\n    var _this = this;\n\n    this._path = path || [];\n    this.$items.forEach(function (elt) {\n      return elt.remove();\n    });\n    this.$items = this._path.map(function (it, i) {\n      return _this._makeItem(it, i);\n    });\n    this.addChild(this.$items);\n  },\n  get: function get() {\n    return this._path;\n  }\n};\n\n_ACore[\"default\"].install(PathMenu);\n\nvar _default = PathMenu;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/PathMenu.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/PlaceSearchAutoCompleteInput.js":
/*!*********************************************************************!*\
  !*** ./node_modules/absol-acomp/js/PlaceSearchAutoCompleteInput.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _AutoCompleteInput = _interopRequireDefault(__webpack_require__(/*! ./AutoCompleteInput */ \"./node_modules/absol-acomp/js/AutoCompleteInput.js\"));\n\nvar _PlaceSearchAutoCompleteAdapter = _interopRequireDefault(__webpack_require__(/*! ./adapter/PlaceSearchAutoCompleteAdapter */ \"./node_modules/absol-acomp/js/adapter/PlaceSearchAutoCompleteAdapter.js\"));\n\n__webpack_require__(/*! ../css/placesearchautocomplete.css */ \"./node_modules/absol-acomp/css/placesearchautocomplete.css\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends AutoCompleteInput\r\n * @constructor\r\n */\nfunction PlaceSearchAutoCompleteInput() {\n  this.$service = (0, _ACore._)('.as-place-search-auto-complete-input-service');\n  this.insertBefore(this.$service, null);\n  this.adapter = new _PlaceSearchAutoCompleteAdapter[\"default\"](this);\n}\n\nPlaceSearchAutoCompleteInput.tag = 'PlaceSearchAutoCompleteInput'.toLowerCase();\n\nPlaceSearchAutoCompleteInput.render = function () {\n  return (0, _ACore._)({\n    tag: _AutoCompleteInput[\"default\"].tag\n  }, true);\n};\n\n_ACore[\"default\"].install(PlaceSearchAutoCompleteInput);\n\nvar _default = PlaceSearchAutoCompleteInput;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/PlaceSearchAutoCompleteInput.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/PositionTracker.js":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/js/PositionTracker.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Element = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Element */ \"./node_modules/absol/src/HTML5/Element.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends {AElement}\r\n * @constructor\r\n */\nfunction PositionTracker() {\n  this.defineEvent('positionchange');\n  this.$trackScrollParents = [];\n  this._scrollTrackEventHandler = this.notifyPositionChange.bind(this);\n}\n\nPositionTracker.tag = 'PositionTracker'.toLowerCase();\n/***\r\n *\r\n * @return {AElement}\r\n */\n\nPositionTracker.render = function () {\n  return _('div');\n};\n\nPositionTracker.prototype.notifyPositionChange = function (event) {\n  this.emit('positionchange', {\n    type: 'positionchange',\n    originEvent: event\n  });\n};\n\nPositionTracker.prototype.startTrackPosition = function () {\n  if (this.$trackScrollParents.length > 0) this.stopTrackPosition();\n  var trackElt = this;\n\n  while (trackElt) {\n    if (trackElt.addEventListener) trackElt.addEventListener('scroll', this._scrollTrackEventHandler, false);else trackElt.attachEvent('onscroll', this._scrollTrackEventHandler, false);\n    this.$trackScrollParents.push(trackElt);\n    trackElt = trackElt.parentElement;\n  }\n\n  if (document.addEventListener) {\n    document.addEventListener('scroll', this._scrollTrackEventHandler, false);\n  } else {\n    document.attachEvent('onscroll', this._scrollTrackEventHandler, false);\n  }\n\n  this.$trackScrollParents.push(document);\n};\n\nPositionTracker.prototype.stopTrackPosition = function () {\n  var trackElt;\n\n  for (var i = 0; i < this.$trackScrollParents.length; ++i) {\n    trackElt = this.$trackScrollParents[i];\n    if (trackElt.removeEventListener) trackElt.removeEventListener('scroll', this._scrollTrackEventHandler, false);else trackElt.dettachEvent('onscroll', this._scrollTrackEventHandler, false);\n  }\n\n  this.$trackScrollParents = [];\n};\n\n_ACore[\"default\"].install(PositionTracker);\n\nvar _default = PositionTracker;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/PositionTracker.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/PreInput.js":
/*!*************************************************!*\
  !*** ./node_modules/absol-acomp/js/PreInput.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/preinput.css */ \"./node_modules/absol-acomp/css/preinput.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _file = __webpack_require__(/*! absol/src/Converter/file */ \"./node_modules/absol/src/Converter/file.js\");\n\nvar _BrowserDetector = _interopRequireDefault(__webpack_require__(/*! absol/src/Detector/BrowserDetector */ \"./node_modules/absol/src/Detector/BrowserDetector.js\"));\n\nvar _printer = __webpack_require__(/*! absol/src/Print/printer */ \"./node_modules/absol/src/Print/printer.js\");\n\nvar _PrintSerialHandlers = __webpack_require__(/*! absol/src/Print/PrintSerialHandlers */ \"./node_modules/absol/src/Print/PrintSerialHandlers.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\nvar textDelay = _BrowserDetector[\"default\"].isSafari ? 100 : 1;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction PreInput() {\n  this.defineEvent(['pasteimg', 'pastetext', 'change']);\n  this.on('paste', this.eventHandler.paste);\n  this.on('keydown', this.eventHandler.keydown);\n  this.history = [];\n  this.value = '';\n  this.historyIndex = -1;\n  this.commitChange('', 0);\n}\n\nPreInput.tag = 'preinput';\n\nPreInput.render = function () {\n  return _({\n    tag: 'pre',\n    \"class\": 'as-preinput',\n    attr: {\n      contenteditable: 'true'\n    },\n    child: 'br'\n  });\n};\n\nPreInput.prototype.applyData = function (text, offset) {\n  var textNode = _({\n    text: text\n  });\n\n  this.clearChild().addChild(textNode).addChild(_('br'));\n\n  if (document.activeElement === this && this.isDescendantOf(document.body)) {\n    if (document.getSelection) {\n      var sel = document.getSelection();\n      sel.removeAllRanges();\n      var range = document.createRange();\n\n      if (typeof offset == 'number') {\n        range.setStart(textNode, Math.min(text.length, offset));\n      } else {\n        range.setStart(textNode, Math.min(text.length, offset.start));\n        range.setEnd(textNode, Math.min(text.length, offset.end));\n      }\n\n      sel.addRange(range);\n      this.scrollIntoRange(range);\n    } else {\n      console.error(\"PreInput: Not support!\");\n    }\n  }\n};\n\nPreInput.prototype.select = function (offset) {\n  if (document.activeElement !== this) this.focus();\n  this.applyData(this.value, offset);\n};\n\nPreInput.prototype.scrollIntoRange = function (range) {\n  var elementBound = range.getBoundingClientRect();\n  var viewportBound = this.getBoundingClientRect();\n  var dBottom = 0;\n  if (range.startContainer && range.startContainer.data && range.startContainer.data.charAt(range.startContainer.data.length - 1) == '\\n') dBottom += this.getFontSize() * 1.5;\n  var currentScrollTop = this.scrollTop;\n  var newScrollTop = currentScrollTop;\n\n  if (elementBound.bottom + dBottom > viewportBound.bottom) {\n    newScrollTop = currentScrollTop + (elementBound.bottom + dBottom - viewportBound.bottom);\n  }\n\n  if (elementBound.top < viewportBound.top) {\n    newScrollTop = currentScrollTop - (viewportBound.top - elementBound.top);\n  }\n\n  if (newScrollTop != currentScrollTop) {\n    this.scrollTop = newScrollTop;\n  }\n\n  var currentScrollLeft = this.scrollLeft;\n  var newScrollLeft = currentScrollLeft;\n\n  if (elementBound.right > viewportBound.right) {\n    newScrollLeft = currentScrollLeft + (elementBound.right - viewportBound.right);\n  }\n\n  if (elementBound.left < viewportBound.left) {\n    newScrollLeft = currentScrollLeft - (viewportBound.left - elementBound.left);\n  }\n\n  if (newScrollLeft != currentScrollLeft) {\n    this.scrollLeft = newScrollLeft;\n  }\n};\n\nPreInput.prototype.undo = function () {\n  if (this.historyIndex <= 0) return;\n  this.historyIndex--;\n  var record = this.history[this.historyIndex];\n  this.applyData(record.text, record.offset);\n  this.emit('change', {\n    target: this,\n    value: record.text,\n    action: 'undo',\n    record: record,\n    type: 'change'\n  }, this);\n};\n\nPreInput.prototype.redo = function () {\n  if (this.historyIndex + 1 >= this.history.length) return;\n  this.historyIndex++;\n  var record = this.history[this.historyIndex];\n  this.applyData(record.text, record.offset);\n  this.emit('change', {\n    target: this,\n    value: record.text,\n    action: 'redo',\n    record: record,\n    type: 'change'\n  }, this);\n};\n\nPreInput.prototype.commitChange = function (text, offset) {\n  while (this.historyIndex < this.history.length - 1) {\n    this.history.pop();\n  }\n\n  var lastText = this.history.length > 0 ? this.history[this.history.length - 1].text : null;\n\n  if (text === lastText) {\n    if (this.history[this.history.length - 1].offset != offset) this.history[this.history.length - 1].offset = offset;\n  } else {\n    this.historyIndex = this.history.length;\n    var record = {\n      text: text,\n      offset: offset\n    };\n    this.history.push(record);\n    this.emit('change', {\n      target: this,\n      value: record.text,\n      action: 'commit',\n      record: record,\n      type: 'change'\n    }, this);\n  }\n};\n\nPreInput.prototype.waitToCommit = function (text, offset) {\n  var thisInput = this;\n  if (this._commitTimeout > 0) clearTimeout(this._commitTimeout);\n  this._commitTimeout = setTimeout(function () {\n    thisInput.commitChange(text, offset);\n  }, textDelay);\n};\n\nPreInput.prototype.getPosition = function (node, offset) {\n  if (!node) return NaN;\n  if (node == this) return offset;\n  var parent = node.parentElement;\n  if (!parent) return NaN;\n  var text = '';\n  var child;\n  var lastBr = false;\n\n  for (var i = 0; i < parent.childNodes.length; ++i) {\n    child = parent.childNodes[i];\n    if (child == node) break;\n    text += this.stringOf(child);\n  }\n\n  return this.getPosition(parent, text.length + offset);\n};\n\nPreInput.prototype.getSelectPosition = function () {\n  if (window.getSelection) {\n    var sel = window.getSelection();\n\n    if (sel.getRangeAt && sel.rangeCount) {\n      var range = sel.getRangeAt(0);\n      var direction = 'forward';\n      var cmpPosition = sel.anchorNode.compareDocumentPosition(sel.focusNode);\n\n      if (cmpPosition === 4) {\n        direction = 'forward';\n      } else if (cmpPosition === 2) {\n        direction = 'backward';\n      } else if (!cmpPosition && sel.anchorOffset > sel.focusOffset || cmpPosition === Node.DOCUMENT_POSITION_PRECEDING) {\n        direction = 'backward';\n      }\n\n      var startOffset = this.getPosition(range.startContainer, range.startOffset);\n      var endOffset = this.getPosition(range.endContainer, range.endOffset);\n      if (isNaN(startOffset)) return null;\n      return {\n        start: startOffset,\n        end: endOffset,\n        direction: direction\n      };\n    }\n  } else if (document.selection) {\n    console.error('May not support!');\n  }\n};\n\nPreInput.prototype.stringOf = function (node, parent) {\n  if (!node) return '';\n\n  if (node.nodeType === 3) {\n    return node.data;\n  }\n\n  var res = '';\n\n  if ((node.tagName === 'BR' || node.tagName === 'br') && parent && parent.lastChild !== node) {\n    return '\\n';\n  } else if ((node.tagName === 'DIV' || node.tagName === 'div') && parent && parent.firstChild !== node) {\n    res += '\\n';\n  }\n\n  var thisInput = this;\n  return res + Array.prototype.map.call(node.childNodes, function (cNode, index, arr) {\n    return thisInput.stringOf(cNode, node);\n  }).join('');\n};\n\nPreInput.prototype._pasteText = function (text) {\n  var sel = window.getSelection();\n  var range;\n\n  if (window.getSelection) {\n    sel = window.getSelection();\n\n    if (sel.getRangeAt && sel.rangeCount) {\n      try {\n        range = sel.getRangeAt(0);\n        range.deleteContents();\n\n        var textNode = _({\n          text: text\n        });\n\n        range.insertNode(textNode);\n\n        if (sel.removeRange) {\n          sel.removeRange(range);\n        } else {\n          sel.removeAllRanges();\n        }\n\n        range = document.createRange();\n        range.setStart(textNode, text.length);\n        sel.addRange(range);\n        this.scrollIntoRange(range);\n        this.commitChange(this.stringOf(this), this.getPosition(textNode, text.length));\n      } catch (error) {\n        alert(error.message);\n      }\n    }\n  } else if (document.selection && document.selection.createRange) {\n    document.selection.createRange().text = text;\n    this.commitChange(this.stringOf(this), this.getPosition(textNode, text.length));\n    console.error('May not support!');\n  }\n};\n/**\r\n * @type {PreInput}\r\n */\n\n\nPreInput.eventHandler = {};\n\nPreInput.eventHandler.paste = function (event) {\n  var thisIp = this;\n  var clipboardData = event.clipboardData || window.clipboardData;\n  /**Safari bug */\n\n  if (clipboardData) {\n    if (clipboardData.items) {\n      var items = Array.prototype.slice.call(clipboardData.items);\n      var imgItems = items.filter(function (item) {\n        return item.type.indexOf('image') >= 0;\n      });\n      var plainTextItems = items.filter(function (item) {\n        return item.type.indexOf('text/plain') >= 0;\n      });\n\n      if (imgItems.length > 0) {\n        var imgFiles = imgItems.map(function (it) {\n          return it.getAsFile();\n        });\n        this.emit('pasteimg', {\n          target: this,\n          imageFile: imgFiles[0],\n          imageFiles: imgFiles,\n          orginEvent: event\n        }, this);\n      } else if (plainTextItems.length > 0) {\n        var plainTextItem = plainTextItems[0]; //only one item\n\n        plainTextItem.getAsString(function (text) {\n          thisIp._pasteText(text);\n        });\n      } else {\n        window.ABSOL_DEBUG && console.error(\"Can not handle clipboard data\");\n      }\n\n      event.preventDefault();\n    } else {\n      var text = event.clipboardData.getData('text/plain');\n\n      if (text) {\n        event.preventDefault();\n\n        this._pasteText(text);\n      } else {\n        var currentText = this.stringOf(this);\n        var currentSelection = this.getSelectPosition();\n        setTimeout(function () {\n          var images = [];\n          $('img', thisIp, function (elt) {\n            images.push(elt);\n          });\n          Promise.all(images.map(function (img) {\n            return _Dom[\"default\"].imageToCanvas(img).then(function (canvas) {\n              var dataURI = canvas.toDataURL();\n              var blob = (0, _file.dataURItoBlob)(dataURI);\n              var file = (0, _file.blobToFile)(blob);\n              return {\n                file: file,\n                blob: blob,\n                url: dataURI\n              };\n            }, function (error) {\n              console.error(error);\n            })[\"catch\"](function (error) {\n              console.error(error);\n            });\n          })).then(function (results) {\n            results = results.filter(function (it) {\n              return !!it;\n            });\n\n            if (results.length > 0) {\n              var imgFiles = results.map(function (it) {\n                return it.file;\n              });\n              var urls = results.map(function (it) {\n                return it.url;\n              });\n              thisIp.emit('pasteimg', {\n                target: this,\n                imageFile: imgFiles[0],\n                imageFiles: imgFiles,\n                urls: urls,\n                url: urls[0],\n                orginEvent: event\n              }, thisIp);\n            }\n          });\n          thisIp.applyData(currentText, currentSelection);\n        }, textDelay);\n      }\n    }\n  } else {\n    setTimeout(function () {\n      if (window.getSelection) {\n        var sel = window.getSelection();\n\n        if (sel.getRangeAt && sel.rangeCount) {\n          var range = sel.getRangeAt(0);\n          var text = this.stringOf(this);\n          var offset = this.getPosition(range.startContainer, range.startOffset);\n          this.waitToCommit(text, offset);\n        }\n      } else if (document.selection) {\n        console.error('May not support!');\n      }\n    }.bind(this), textDelay);\n  }\n};\n\nPreInput.eventHandler.keydown = function (event) {\n  if (event.ctrlKey) {\n    switch (event.key) {\n      case 'z':\n        this.undo();\n        event.preventDefault();\n        break;\n\n      case 'y':\n        this.redo();\n        event.preventDefault();\n        break;\n\n      default:\n        break;\n    }\n  }\n\n  if (!event.ctrlKey && !event.altKey) {\n    setTimeout(function () {\n      if (window.getSelection) {\n        var sel = window.getSelection();\n\n        if (sel.getRangeAt && sel.rangeCount) {\n          var range = sel.getRangeAt(0);\n          var text = this.stringOf(this);\n          var offset = this.getPosition(range.startContainer, range.startOffset);\n          this.waitToCommit(text, offset);\n        }\n      } else if (document.selection) {\n        console.error('May not support!');\n      }\n    }.bind(this), textDelay);\n  }\n};\n\nPreInput.property = {};\nPreInput.property.value = {\n  set: function set(value) {\n    value = value || '';\n    this.applyData(value, value.length);\n    this.commitChange(value, value.length);\n  },\n  get: function get() {\n    return this.stringOf(this);\n  }\n};\nPreInput.property.disabled = {\n  set: function set(value) {\n    value = !!value;\n    if (value === this.hasClass('as-disabled')) return;\n\n    if (value) {\n      this.addClass('as-disabled');\n      this.attr({\n        contenteditable: undefined,\n        oncut: 'return false',\n        onpaste: 'return false',\n        onkeydown: 'if(event.metaKey) return true; return false;'\n      });\n    } else {\n      this.removeClass('as-disabled');\n      this.attr({\n        contenteditable: true,\n        oncut: undefined,\n        onpaste: undefined,\n        onkeydown: undefined\n      });\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-disabled');\n  }\n};\nPreInput.property.readOnly = {\n  set: function set(value) {\n    value = !!value;\n    if (value === this.hasClass('as-read-only')) return;\n\n    if (value) {\n      this.addClass('as-read-only');\n      this.attr({\n        contenteditable: undefined,\n        oncut: 'return false',\n        onpaste: 'return false',\n        onkeydown: 'if(event.metaKey) return true; return false;'\n      });\n    } else {\n      this.removeClass('as-read-only');\n      this.attr({\n        contenteditable: true,\n        oncut: undefined,\n        onpaste: undefined,\n        onkeydown: undefined\n      });\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-read-only');\n  }\n};\n\n_ACore[\"default\"].install(PreInput);\n\nvar _default = PreInput;\n/*\r\n\r\nShareSerializer.addHandlerBefore({\r\n    id: 'PreInput',\r\n    match: (elt, scope, stack) => {\r\n        if (elt.nodeType !== Node.ELEMENT_NODE) return false;\r\n        return elt.hasClass('as-preinput') || elt.hasClass('as-tokenize-hyper-input');\r\n    },\r\n    exec: (printer, elt, scope, stack, accept) => {\r\n        var O = printer.O;\r\n        var printAttr = computePrintAttr(elt);\r\n        var rect = printAttr.contentBound;\r\n        rect.x -= O.x;\r\n        rect.y -= O.y;\r\n\r\n        printer.text(PreInput.prototype.stringOf(elt), rect, printAttr.style);\r\n        return false;\r\n    }\r\n}, '*');\r\n\r\n */\n\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/PreInput.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/ProcessLBar.js":
/*!****************************************************!*\
  !*** ./node_modules/absol-acomp/js/ProcessLBar.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = __webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\n__webpack_require__(/*! ../css/processlbar.css */ \"./node_modules/absol-acomp/css/processlbar.css\");\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction ProcessLBar() {\n  this.$stepCtn = (0, _ACore.$)('.as-process-l-bar-step-ctn', this);\n  this.$stepName = (0, _ACore.$)('.as-process-l-bar-step-name', this);\n  this.$items = [];\n  this._items = [];\n  this._lHeight = 3;\n  this._value = null;\n}\n\nProcessLBar.tag = 'ProcessLBar'.toLowerCase();\n\nProcessLBar.render = function () {\n  return (0, _ACore._)({\n    \"class\": 'as-process-l-bar',\n    extendEvent: 'change',\n    child: [{\n      \"class\": 'as-process-l-bar-step-ctn'\n    }, {\n      \"class\": 'as-process-l-bar-step-name'\n    }]\n  });\n};\n\nProcessLBar.prototype._updateCol = function () {\n  var colN = Math.max(this.$items.length - this._lHeight + 1, 0);\n\n  while (this.$stepCtn.childNodes.length > colN) {\n    this.$stepCtn.lastChild.remove();\n  }\n\n  while (this.$stepCtn.childNodes.length < colN) {\n    this.$stepCtn.addChild((0, _ACore._)('.as-process-l-bar-col'));\n  }\n\n  var i;\n\n  for (i = 0; i < colN; ++i) {\n    this.$stepCtn.childNodes[i].clearChild().addChild(this.$items[i]);\n  }\n\n  for (i = colN; i < this.$items.length; ++i) {\n    this.$stepCtn.lastChild.addChild(this.$items[i]);\n  }\n\n  this.nameWidth = this._items.reduce(function (ac, cr) {\n    return Math.max(ac, (0, _utils.measureText)(cr.name, 'bold 14px Arial, Helvetica, sans-serif').width);\n  }, 0);\n\n  if (colN <= 1) {\n    this.addClass('as-col-layout');\n  } else {\n    this.removeClass('as-col-layout');\n  }\n\n  if (colN <= 2) {\n    this.addStyle('--as-process-l-bar-item-min-width', this.nameWidth + 'px');\n  } else {\n    this.addStyle('--as-process-l-bar-item-min-width', (this.nameWidth + 10) / (colN - 1) - 10 + 'px');\n  }\n};\n\nProcessLBar.prototype._updateValue = function () {\n  var value = this._value;\n  this.$items.forEach(function (elt) {\n    if (elt.itemData.value === value) {\n      elt.addClass('as-active');\n      this.$stepName.clearChild().addChild((0, _ACore._)({\n        tag: 'span',\n        child: {\n          text: elt.itemData.name\n        }\n      }));\n    } else {\n      elt.removeClass('as-active');\n    }\n  }.bind(this));\n};\n\nProcessLBar.prototype.notifyChange = function (originalEvent) {\n  this.emit('change', {\n    type: 'change',\n    target: this,\n    originalEvent: originalEvent || null\n  }, this);\n};\n\nProcessLBar.prototype._makeItem = function (item) {\n  var self = this;\n  var stepElt = (0, _ACore._)({\n    \"class\": 'as-process-l-bar-step',\n    attr: {\n      title: item.name\n    },\n    props: {\n      itemData: item\n    },\n    on: {\n      click: function click(event) {\n        if (self.disabled) return;\n        var value = this._value;\n        if (item.value === value) return;\n        self.value = item.value;\n        self.notifyChange(event);\n      }\n    }\n  });\n\n  if (item.color) {\n    stepElt.addStyle('--as-process-l-bar-active-color', item.color);\n  }\n\n  return stepElt;\n};\n\nProcessLBar.property = {};\nProcessLBar.property.items = {\n  set: function set(items) {\n    items = items || [];\n    this._items = items;\n    this.$itemByValue = {};\n    this.$items = this._items.map(function (item) {\n      return this._makeItem(item);\n    }.bind(this));\n\n    this._updateCol();\n\n    this._updateValue();\n  },\n  get: function get() {\n    return this._items;\n  }\n};\nProcessLBar.property.value = {\n  set: function set(value) {\n    this._value = value;\n\n    this._updateValue();\n  },\n  get: function get() {\n    return this._value;\n  }\n};\nProcessLBar.property.lHeight = {\n  set: function set(value) {\n    this._lHeight = value;\n\n    if (value === 1) {\n      this.addClass('as-single-line');\n    } else {\n      this.removeClass('as-single-line');\n    }\n\n    this._updateCol();\n  },\n  get: function get() {\n    return this._lHeight;\n  }\n};\nProcessLBar.property.disabled = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-disabled');\n    } else {\n      this.removeClass('as-disabled');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-disabled');\n  }\n};\nvar _default = ProcessLBar;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/ProcessLBar.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/ProgressBar.js":
/*!****************************************************!*\
  !*** ./node_modules/absol-acomp/js/ProgressBar.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/progressbar.css */ \"./node_modules/absol-acomp/css/progressbar.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n\nfunction ProgressBar() {\n  this._value = 0;\n  this._variant = null;\n  this.$value = $('.as-progress-bar-value', this);\n  this._striped = false;\n  this._animated = false;\n}\n\nProgressBar.tag = 'ProgressBar'.toLowerCase();\n\nProgressBar.render = function () {\n  return _({\n    \"class\": 'as-progress-bar',\n    child: {\n      \"class\": 'as-progress-bar-value'\n    }\n  });\n};\n\nProgressBar.property = {};\n/**\r\n * @type {ProgressBar}\r\n */\n\nProgressBar.property.variant = {\n  set: function set(value) {\n    if (this._variant) {\n      this.removeClass('as-variant-' + this._variant);\n    }\n\n    if (value) {\n      this.addClass('as-variant-' + value);\n    } else {\n      value = null;\n    }\n\n    this._variant = value;\n  },\n  get: function get() {\n    return this._variant;\n  }\n};\n/**\r\n * @type {ProgressBar}\r\n */\n\nProgressBar.property.value = {\n  set: function set(value) {\n    value = Math.max(0, Math.min(1, value || 0));\n    this._value = value;\n    this.$value.addStyle('width', value * 100 + '%');\n  },\n  get: function get() {\n    return this._value;\n  }\n};\nProgressBar.property.animated = {\n  set: function set(value) {\n    value = !!value;\n    this._striped = value;\n\n    if (value) {\n      this.addClass('as-animated');\n    } else {\n      this.removeClass('as-animated');\n    }\n  },\n  get: function get() {\n    return this._animated;\n  }\n};\nProgressBar.property.striped = {\n  set: function set(value) {\n    value = !!value;\n    this._striped = value;\n\n    if (value) {\n      this.addClass('as-striped');\n    } else {\n      this.removeClass('as-striped');\n    }\n  },\n  get: function get() {\n    return this._striped;\n  }\n};\n\n_ACore[\"default\"].install(ProgressBar);\n\nvar _default = ProgressBar;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/ProgressBar.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/QuickListButton.js":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/js/QuickListButton.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/quicklistbutton.css */ \"./node_modules/absol-acomp/css/quicklistbutton.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _FollowerToggler = _interopRequireDefault(__webpack_require__(/*! ./FollowerToggler */ \"./node_modules/absol-acomp/js/FollowerToggler.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/****\r\n * @extends FollowerToggler\r\n * @constructor\r\n */\n\nfunction QuickListButton() {\n  this.$shareFollower = QuickListButton.getFollower();\n\n  _({\n    tag: 'followertoggler',\n    elt: this,\n    on: {\n      preopen: this.eventHandler.preopen,\n      close: this.eventHandler.closeFollower\n    }\n  });\n\n  this.bindFollower(this.$shareFollower);\n  this.$iconCtn.remove();\n  this.$content.addChild(this.$iconCtn);\n  this._items = this._items;\n  this._anchor = [];\n  this.$list = null;\n  this._listUpdated = true;\n  this._opened = false;\n  this.anchor = [12, 13, 15, 14]; //todo: add property\n}\n\nQuickListButton.$follower = _('follower.as-quick-list-button-follower');\n\nQuickListButton.getFollower = function () {\n  if (!QuickListButton.$follower) QuickListButton.$follower = _('follower.as-quick-list-button-follower');\n  return QuickListButton.$follower;\n};\n\nQuickListButton.tag = 'QuickListButton'.toLowerCase();\n\nQuickListButton.render = function () {\n  return _({\n    tag: 'flexiconbutton',\n    \"class\": 'as-quick-list-button',\n    extendEvent: 'select',\n    props: {\n      text: \"+ Thêm\",\n      icon: 'span.mdi.mdi-menu-down'\n    }\n  });\n};\n\nQuickListButton.property = {};\nQuickListButton.property.items = {\n  set: function set(value) {\n    value = value || [];\n    this._items = value;\n    this._listUpdated = false;\n  },\n  get: function get() {\n    return this._items;\n  }\n};\n/**\r\n * @type {QuickListButton}\r\n */\n\nQuickListButton.eventHandler = {};\n\nQuickListButton.eventHandler.preopen = function () {\n  this.$shareFollower.addTo(document.body);\n  this.$shareFollower.anchor = this.anchor;\n\n  if (this.$list == null) {\n    this.$list = _('selectlist.absol-bscroller').on('pressitem', this.eventHandler.pressitem);\n  }\n\n  if (!this._listUpdated) {\n    this._listUpdated = true;\n    this.$list.items = this._items;\n  }\n\n  this.$shareFollower.addChild(this.$list);\n  this.$shareFollower.on({\n    preupdateposition: this.eventHandler.preUpdatePosition\n  });\n};\n\nQuickListButton.eventHandler.preUpdatePosition = function () {\n  var bound = this.getBoundingClientRect();\n\n  var screenSize = _Dom[\"default\"].getScreenSize();\n\n  var maxHeight = Math.max(screenSize.height - bound.bottom, bound.top) - 10;\n  this.$list.addStyle('max-height', maxHeight + 'px');\n};\n\nQuickListButton.eventHandler.closeFollower = function () {\n  this.$shareFollower.off({\n    preupdateposition: this.eventHandler.preUpdatePosition\n  });\n};\n\nQuickListButton.eventHandler.pressitem = function (event) {\n  this.close();\n  this.emit('select', Object.assign({}, event, {\n    type: 'select',\n    target: this\n  }));\n};\n\n_ACore[\"default\"].install(QuickListButton);\n\nvar _default = QuickListButton;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/QuickListButton.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/QuickMenu.js":
/*!**************************************************!*\
  !*** ./node_modules/absol-acomp/js/QuickMenu.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.QuickMenuInstance = QuickMenuInstance;\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Dom = _interopRequireWildcard(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _BrowserDetector = _interopRequireDefault(__webpack_require__(/*! absol/src/Detector/BrowserDetector */ \"./node_modules/absol/src/Detector/BrowserDetector.js\"));\n\n__webpack_require__(/*! ./Menu */ \"./node_modules/absol-acomp/js/Menu.js\");\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _Follower = _interopRequireDefault(__webpack_require__(/*! ./Follower */ \"./node_modules/absol-acomp/js/Follower.js\"));\n\nvar _EventEmitter = __webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\");\n\nvar _safeThrow = _interopRequireDefault(__webpack_require__(/*! absol/src/Code/safeThrow */ \"./node_modules/absol/src/Code/safeThrow.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar isMobile = _BrowserDetector[\"default\"].isMobile;\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n\nfunction QuickMenu() {\n  //like context menu without right-click\n  this._contextMenuSync = Promise.resolve();\n}\n\nQuickMenu.tag = 'QuickMenu'.toLowerCase();\n\nQuickMenu.render = function () {\n  return _({\n    tag: 'vmenu',\n    extendEvent: 'requestcontextmenu',\n    \"class\": ['as-quick-menu', 'as-bscroller'],\n    style: {\n      'overflow-y': 'auto',\n      'box-sizing': 'border-box'\n    }\n  });\n};\n\n_ACore[\"default\"].install(QuickMenu);\n/***\r\n *\r\n * @param {AElement} elt\r\n * @param opt\r\n * @constructor\r\n */\n\n\nfunction QuickMenuInstance(elt, opt) {\n  this.id = (Math.random() * 10000 >> 0) + '' + new Date().getTime();\n  /***\r\n   *\r\n   * @type {\"OPEN\"|\"CLOSE\"}\r\n   */\n\n  this.state = 'CLOSE';\n  this._willAddClickOut = -1;\n  this.elt = elt;\n  this.opt = opt;\n\n  for (var key in this) {\n    if (key.startsWith('_on')) {\n      this[key] = this[key].bind(this);\n    }\n  }\n\n  this._init();\n}\n\nQuickMenuInstance.prototype._init = function () {\n  this.elt.classList.add('as-quick-menu-trigger');\n  if (this.opt.triggerEvent === 'mousedown') $(this.elt).on('contextmenu', function (event) {\n    event.preventDefault();\n  }).attr('oncontextmenu', \"return false;\");\n\n  if (this.opt.triggerEvent) {\n    this.elt.addEventListener(this.opt.triggerEvent, this._onClick, true);\n  } else this.elt.addEventListener('click', this._onClick, true);\n};\n\nQuickMenuInstance.prototype._deinit = function () {\n  if (this.state === \"OPEN\") this.close();\n  this.elt.classList.remove('as-quick-menu-trigger');\n\n  if (this.opt.triggerEvent) {\n    this.elt.removeEventListener(this.opt.triggerEvent, this._onClick, true);\n  } else {\n    this.elt.removeEventListener('click', this._onClick, true);\n  }\n};\n\nQuickMenuInstance.prototype.getMenuProps = function () {\n  var props;\n\n  if (this.opt.getMenuProps) {\n    props = this.opt.getMenuProps();\n  } else {\n    props = this.opt.menuProps;\n  }\n\n  props = props || {};\n  return Object.assign({\n    extendClasses: [],\n    extendStyle: {}\n  }, props);\n};\n\nQuickMenuInstance.prototype.remove = function () {\n  this._deinit();\n};\n\nQuickMenuInstance.prototype._onClick = function (event) {\n  if (this.opt.triggerEvent === 'mousedown') {\n    event.preventDefault();\n  }\n\n  var event = (0, _EventEmitter.copyEvent)(event, {\n    canceled: false,\n    cancel: function cancel() {\n      this.canceled = true;\n    }\n  });\n\n  if (this.opt.onClick) {\n    this.opt.onClick.call(this, event);\n  }\n\n  if (!event.canceled) this.toggle();\n};\n\nQuickMenuInstance.prototype._onClickOut = function (event) {\n  if ((0, _EventEmitter.hitElement)(this.elt, event)) return;\n  this.close();\n};\n\nQuickMenuInstance.prototype.onSelect = function (item) {\n  if (this.opt.onSelect) this.opt.onSelect(item.__originalItem__ || item);\n  this.close();\n};\n\nQuickMenuInstance.prototype.open = function () {\n  var _this = this;\n\n  if (QuickMenu.runningInstance === this) return;\n  if (this.state !== \"CLOSE\") return;\n  if (QuickMenu.runningInstance) QuickMenu.runningInstance.close();\n  QuickMenu.runningInstance = this;\n  this.state = 'OPEN';\n  this.elt.classList.add('as-quick-menu-attached');\n  this._willAddClickOut = setTimeout(function () {\n    _this._willAddClickOut = -1;\n    document.addEventListener('click', _this._onClickOut, false);\n    followerElt.updatePosition();\n    menuElt.addStyle('visibility', 'visible');\n  }, isMobile ? 33 : 2);\n  var anchor = this.getAnchor();\n  var followerElt = QuickMenu.$follower;\n  var menuElt = QuickMenu.$elt;\n  this.originProps = this.getMenuProps();\n  this.copyProps = Object.assign({}, this.originProps);\n  this.copyProps.items = this.originProps.items || [];\n  this.copyProps.items = this.copyProps.items.map(function visit(item) {\n    var cpyItem = item;\n    if (typeof item === \"string\") cpyItem = item;else if (item && typeof item.text === \"string\") {\n      cpyItem = Object.assign({\n        __originalItem__: item\n      }, item);\n      if (cpyItem.items && cpyItem.items.map) cpyItem.items = cpyItem.items.map(visit);\n    }\n    return cpyItem;\n  });\n  Object.assign(menuElt, this.copyProps);\n  followerElt.addClass('absol-active');\n\n  if (anchor === 'modal') {\n    followerElt.addClass('as-anchor-modal');\n    followerElt.anchor = [];\n  } else {\n    followerElt.removeClass('as-anchor-modal');\n    followerElt.anchor = anchor;\n  }\n\n  this._onSizeNeedUpdate();\n\n  QuickMenu.$follower.on('preupdateposition', this._onSizeNeedUpdate);\n  followerElt.followTarget = this.elt;\n  menuElt.addStyle('visibility', 'hidden');\n  followerElt.addTo(document.body);\n  followerElt.addClass('absol-active');\n\n  if (this.opt.onOpen) {\n    try {\n      this.opt.onOpen.call(this);\n    } catch (err) {\n      (0, _safeThrow[\"default\"])(err);\n    }\n  }\n};\n\nQuickMenuInstance.prototype.close = function () {\n  if (QuickMenu.runningInstance !== this) return;\n  if (this.state !== \"OPEN\") return;\n\n  if (this.opt.onClose) {\n    try {\n      this.opt.onClose.call(this);\n    } catch (err) {\n      (0, _safeThrow[\"default\"])(err);\n    }\n  }\n\n  this.state = 'CLOSE';\n  this.elt.classList.remove('as-quick-menu-attached');\n  QuickMenu.$elt.removeStyle('--available-height');\n  var followerElt = QuickMenu.$follower;\n  followerElt.addClass('absol-active');\n  followerElt.remove();\n  QuickMenu.$follower.off('preupdateposition', this._onSizeNeedUpdate);\n\n  if (this._willAddClickOut >= 0) {\n    clearTimeout(this._willAddClickOut);\n  } else {\n    document.removeEventListener('click', this._onClickOut, false);\n  }\n\n  QuickMenu.runningInstance = null;\n};\n\nQuickMenuInstance.prototype._onSizeNeedUpdate = function () {\n  Array.prototype.forEach.call(QuickMenu.$elt.childNodes, function (elt) {\n    if (elt.autoFixParentSize) {\n      elt.autoFixParentSize();\n    }\n  });\n  var screenSize = (0, _Dom.getScreenSize)();\n  var eltBound = this.elt.getBoundingClientRect();\n  var aTop = eltBound.bottom;\n  var aBottom = screenSize.height - eltBound.top;\n  QuickMenu.$elt.addStyle('--available-height', Math.max(aTop, aBottom) - 10 + 'px');\n};\n\nQuickMenuInstance.prototype.toggle = function () {\n  if (this.state === \"OPEN\") {\n    this.close();\n  } else if (this.state === 'CLOSE') {\n    this.open();\n  }\n};\n\nQuickMenuInstance.prototype.getAnchor = function () {\n  var menuAnchors;\n  var anchor = this.opt.getAnchor ? this.opt.getAnchor() : this.opt.anchor;\n\n  if (typeof anchor == 'number') {\n    menuAnchors = [anchor];\n  } else if (anchor instanceof Array) {\n    menuAnchors = anchor;\n  } else if (anchor === 'modal') {\n    menuAnchors = 'modal';\n  } else {\n    menuAnchors = QuickMenu.PRIORITY_ANCHORS;\n  }\n\n  return menuAnchors;\n};\n\nQuickMenu.PRIORITY_ANCHORS = [0, 3, 7, 4, 1, 2, 6, 5];\nQuickMenu.$elt = _('quickmenu');\n/***\r\n *\r\n * @type {Follower}\r\n */\n\nQuickMenu.$follower = _({\n  tag: _Follower[\"default\"].tag,\n  \"class\": 'absol-context-menu-anchor',\n  child: QuickMenu.$elt,\n  on: {\n    preupdateposition: function preupdateposition() {\n      var bound = this.getBoundingClientRect();\n      var outBound = (0, _Dom.traceOutBoundingClientRect)(this);\n\n      if (bound.bottom < outBound.top || bound.top > outBound.bottom || bound.right < outBound.left || bound.left > outBound.right) {\n        QuickMenu.close(QuickMenu._session);\n      }\n    }\n  }\n});\n/***\r\n *\r\n * @type {null|QuickMenuInstance}\r\n */\n\nQuickMenu.runningInstance = null;\nQuickMenu._session = Math.random() * 10000000000 >> 0;\nQuickMenu._menuListener = undefined;\nQuickMenu.$elt.on('press', function (event) {\n  if (QuickMenu.runningInstance) QuickMenu.runningInstance.onSelect((0, _utils.cleanMenuItemProperty)(event.menuItem));\n  if (QuickMenu._menuListener) QuickMenu._menuListener((0, _utils.cleanMenuItemProperty)(event.menuItem));\n});\n\nQuickMenu.show = function (element, menuProps, anchor, menuListener, darkTheme) {\n  var instance = new QuickMenuInstance(element, {\n    menuProps: menuProps,\n    anchor: anchor,\n    onSelect: menuListener,\n    darkTheme: darkTheme\n  });\n  instance.open();\n};\n\nQuickMenu.close = function (session) {\n  if (QuickMenu.runningInstance && QuickMenu.runningInstance.id === session) QuickMenu.runningInstance.close();\n};\n\nQuickMenu.showWhenClick = function (element, menuProps, anchor, menuListener, darkTheme) {\n  return new QuickMenuInstance(element, {\n    menuProps: menuProps,\n    anchor: anchor,\n    onSelect: menuListener,\n    darkTheme: darkTheme\n  });\n};\n/**\r\n * @typedef {Object} QuickMenuAdaptor\r\n * @property {Function} getFlowedElement default is trigger\r\n * @property {Function} getMenuProps define menuProps if un-change\r\n * @property {Function} getAnchor default is 'auto', define anchor if un-change\r\n * @property {Function} onClose callback\r\n * @property {Function} onOpen callback\r\n * @property {Function} onSelect calback\r\n * @property {Function} isDarkTheme default is false, define darkThem if un-change\r\n *\r\n *\r\n * @typedef {Object} QuickMenuDataHolder\r\n * @property {Function} remove\r\n *\r\n * @param {Element} trigger\r\n * @param {QuickMenuAdaptor} adaptor\r\n * @returns {QuickMenuDataHolder}\r\n */\n\n\nQuickMenu.toggleWhenClick = function (trigger, adaptor) {\n  return new QuickMenuInstance(trigger, adaptor);\n};\n\nvar _default = QuickMenu;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/QuickMenu.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/QuickPath.js":
/*!**************************************************!*\
  !*** ./node_modules/absol-acomp/js/QuickPath.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/quickpath.css */ \"./node_modules/absol-acomp/css/quickpath.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _QuickMenu = _interopRequireDefault(__webpack_require__(/*! ./QuickMenu */ \"./node_modules/absol-acomp/js/QuickMenu.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction QuickPath() {\n  this._holders = [];\n}\n/**\r\n * @type {QuickPath}\r\n */\n\n\nQuickPath.eventHandler = {};\n/***\r\n * @this QuickPath\r\n * @param event\r\n */\n\nQuickPath.eventHandler.click = function (event) {\n  var button = this._fileButton(event.target);\n\n  if (button) this.pressButton(button);\n};\n\nQuickPath.tag = 'QuickPath'.toLowerCase();\n/**\r\n * @returns {QuickPath}\r\n */\n\nQuickPath.render = function () {\n  return _({\n    \"class\": 'absol-quick-path',\n    extendEvent: ['change', 'press']\n  });\n};\n\nQuickPath.prototype.updatePath = function () {\n  this.clearChild();\n  var self = this;\n  this._holders = this._path.map(function (data, index) {\n    var holder = self._createButton(data, index);\n\n    holder.buttom.addTo(self);\n    return holder;\n  });\n};\n\nQuickPath.prototype._createButton = function (pathItem, index) {\n  var buttom = _({\n    tag: 'expnode',\n    \"class\": 'absol-quick-path-btn',\n    attr: {\n      'data-index': '' + index\n    }\n  });\n\n  buttom.status = 'close';\n  buttom.name = pathItem.name;\n\n  if (pathItem.icon) {\n    buttom.icon = pathItem.icon;\n  }\n\n  if (pathItem.iconSrc) {\n    buttom.icon = {\n      tag: 'img',\n      props: {\n        src: pathItem.iconSrc\n      }\n    };\n  }\n\n  var thisQuickpath = this;\n\n  if (pathItem.items) {\n    _QuickMenu[\"default\"].toggleWhenClick(buttom, {\n      getAnchor: function getAnchor() {\n        return [1, 2, 6, 5];\n      },\n      getMenuProps: function getMenuProps() {\n        return {\n          extendStyle: {\n            fontSize: buttom.getComputedStyleValue('font-size')\n          },\n          items: pathItem.items.map(function (it, menuIndex) {\n            var res = {\n              text: it.name,\n              menuIndex: menuIndex,\n              icon: it.iconSrc ? {\n                tag: 'img',\n                props: {\n                  src: it.iconSrc\n                }\n              } : it.icon || undefined,\n              extendStyle: it.extendStyle || {},\n              extendClass: it.extendClass || []\n            };\n            return res;\n          })\n        };\n      },\n      onOpen: function onOpen() {\n        buttom.status = 'open';\n        thisQuickpath.emit('press', {\n          target: thisQuickpath,\n          pathItem: pathItem,\n          index: index\n        }, thisQuickpath);\n      },\n      onClose: function onClose() {\n        buttom.status = 'close';\n      },\n      onSelect: function onSelect(item) {\n        var dataItem = pathItem.items[item.menuIndex];\n        thisQuickpath.emit('change', {\n          target: thisQuickpath,\n          pathItem: pathItem,\n          item: dataItem,\n          index: index\n        }, thisQuickpath);\n        thisQuickpath.status = 'close';\n      }\n    });\n  } else {\n    buttom.on('click', function () {\n      this.emit('press', {\n        target: thisQuickpath,\n        pathItem: pathItem,\n        index: index\n      }, thisQuickpath);\n    });\n  }\n\n  return {\n    buttom: buttom\n  };\n};\n\nQuickPath.prototype.push = function (item) {\n  this.path.push(item);\n\n  var holder = this._createButton(item, this.path.length - 1);\n\n  this.addChild(holder, buttom);\n\n  this._holders.push(holder);\n};\n\nQuickPath.prototype.clear = function () {\n  this.path = [];\n  this._holders = [];\n};\n\nQuickPath.prototype.pop = function () {\n  //todo\n  var res = this.path.pop();\n  var button = $('button[data-index=\"' + this.path.length + '\"]');\n  if (button) button.remove();\n  return res;\n};\n\nQuickPath.property = {};\n/**\r\n * @typedef PathElement\r\n * @property {String} name\r\n * @property {String} icon\r\n * @property {Array<String>} items\r\n *\r\n */\n\nQuickPath.property.path = {\n  /**\r\n   * @param {Array<PathElement>} value\r\n   */\n  set: function set(value) {\n    this._path = value || [];\n    this.updatePath();\n  },\n  get: function get() {\n    return this._path || [];\n  }\n};\nQuickPath.property.textPath = {\n  get: function get() {\n    return this.path.join('/');\n  }\n};\n\n_ACore[\"default\"].install('quickpath', QuickPath);\n\nvar _default = QuickPath;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/QuickPath.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/Radio.js":
/*!**********************************************!*\
  !*** ./node_modules/absol-acomp/js/Radio.js ***!
  \**********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/radio.css */ \"./node_modules/absol-acomp/css/radio.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _RadioButton = _interopRequireDefault(__webpack_require__(/*! ./RadioButton */ \"./node_modules/absol-acomp/js/RadioButton.js\"));\n\nvar _Svg = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Svg */ \"./node_modules/absol/src/HTML5/Svg.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\nvar $$ = _ACore[\"default\"].$$;\nvar _svg = _Svg[\"default\"].ShareInstance._;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction Radio() {\n  var thisR = this;\n  this.defineEvent('change');\n  this.$input = $('input', this).on('change', this.notifyChange.bind(this));\n  this.$labels = $$('span', this);\n\n  _OOP[\"default\"].drillProperty(this, this.$input, ['value', 'checked']);\n}\n\nRadio.tag = 'radio';\nRadio.radioProto = _('<svg class=\"absol-radio-icon\" width=\"20\" height=\"20\" version=\"1.1\" viewBox=\"0 0 5.2917 5.2917\"' + '   xmlns=\"http://www.w3.org/2000/svg\">' + '    <g transform=\"translate(0 -291.71)\">' + '        <circle class=\"bound\" cx=\"2.6458\" cy=\"294.35\" r=\"2.4626\" style=\"stroke-opacity:.99497;stroke-width:.26458;\" />' + '        <circle class=\"dot\" cx=\"2.6458\" cy=\"294.35\"  r= \"0.92604\" style=\"fill-rule:evenodd;\" />' + '    </g>' + '</svg>');\n\nRadio.render = function () {\n  return _({\n    tag: 'label',\n    \"class\": 'absol-radio',\n    child: [{\n      tag: 'input',\n      attr: {\n        type: 'radio'\n      }\n    }, {\n      tag: 'span',\n      \"class\": 'absol-radio-left-label'\n    }, Radio.radioProto.cloneNode(true), {\n      tag: 'span',\n      \"class\": 'absol-radio-right-label'\n    }]\n  });\n};\n\nRadio.prototype.notifyChange = function () {\n  this.emit('change', {\n    type: 'change',\n    checked: this.checked,\n    target: this\n  }, this);\n};\n\nRadio.prototype.getAllFriend = function () {\n  return Radio.getAllByName(this.name);\n};\n\nRadio.attribute = _RadioButton[\"default\"].attribute;\nRadio.property = {\n  name: {\n    set: function set(name) {\n      this.$input.setAttribute('name', name);\n    },\n    get: function get() {\n      return this.$input.getAttribute('name');\n    }\n  },\n  text: {\n    set: function set(value) {\n      value = (value || '').trim();\n      this.$labels[0].clearChild();\n      this.$labels[1].clearChild();\n\n      if (value) {\n        this.$labels[0].addChild(_({\n          text: value\n        }));\n        this.$labels[1].addChild(_({\n          text: value\n        }));\n      }\n    },\n    get: function get() {\n      return this.$labels[0].firstChild.data;\n    }\n  },\n  disabled: {\n    set: function set(value) {\n      this.$input.disabled = !!value;\n\n      if (value) {\n        this.addClass('disabled');\n      } else {\n        this.removeClass('disabled');\n      }\n    },\n    get: function get() {\n      return this.$input.disabled;\n    }\n  }\n};\n\nRadio.getAllByName = function (name) {\n  return (Array.apply(null, document.getElementsByTagName('input')) || []).filter(function (elt) {\n    return elt.getAttribute('type') == 'radio' && elt.getAttribute('name') == name;\n  });\n};\n\nRadio.getValueByName = function (name) {\n  var inputs = Radio.getAllByName(name);\n  var res = null;\n  var input;\n\n  for (var i = 0; i < inputs.length; ++i) {\n    input = inputs[i];\n\n    if (input.checked) {\n      res = input.value;\n    }\n  }\n\n  return res;\n};\n\n_ACore[\"default\"].install(Radio);\n\nvar _default = Radio;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/Radio.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/RadioButton.js":
/*!****************************************************!*\
  !*** ./node_modules/absol-acomp/js/RadioButton.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/radiobutton.css */ \"./node_modules/absol-acomp/css/radiobutton.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction RadioButton() {\n  var thisRB = this;\n  this.defineEvent('change');\n  this.$input = $('input', this).on('change', this.notifyChange.bind(this));\n\n  _OOP[\"default\"].drillProperty(this, this.$input, ['value', 'checked']);\n}\n\nRadioButton.tag = 'radiobutton';\nRadioButton.radioProto = _('<svg class=\"absol-radio-icon\" width=\"20\" height=\"20\" version=\"1.1\" viewBox=\"0 0 5.2917 5.2917\"' + '   xmlns=\"http://www.w3.org/2000/svg\">' + '    <g transform=\"translate(0 -291.71)\">' + '        <circle class=\"bound\" cx=\"2.6458\" cy=\"294.35\" r=\"2.4626\" style=\"stroke-opacity:.99497;stroke-width:.26458;\" />' + '        <circle class=\"dot\" cx=\"2.6458\" cy=\"294.35\"  r= \"0.92604\" style=\"fill-rule:evenodd;\" />' + '    </g>' + '</svg>');\n\nRadioButton.render = function () {\n  return _({\n    tag: 'label',\n    \"class\": 'absol-radio-button',\n    child: [{\n      tag: 'input',\n      attr: {\n        type: 'radio'\n      }\n    }, RadioButton.radioProto.cloneNode(true)]\n  });\n};\n\nRadioButton.prototype.notifyChange = function () {\n  this.emit('change', {\n    type: 'change',\n    checked: this.checked,\n    target: this\n  }, this);\n};\n\nRadioButton.prototype.getAllFriend = function () {\n  return Radio.getAllByName(this.name);\n};\n\nRadioButton.attribute = {\n  checked: {\n    set: function set(value) {\n      if (value == 'false' || value == null) {\n        this.checked = false;\n      } else {\n        this.checked = true;\n      }\n    },\n    get: function get() {\n      return this.checked ? 'true' : 'false';\n    },\n    remove: function remove() {\n      this.checked = false;\n    }\n  },\n  disabled: {\n    set: function set(value) {\n      if (value == 'false' || value == null) {\n        this.disabled = false;\n      } else {\n        this.disabled = true;\n      }\n    },\n    get: function get() {\n      return this.disabled ? 'true' : 'false';\n    },\n    remove: function remove() {\n      this.disabled = false;\n    }\n  },\n  name: {\n    set: function set(value) {\n      this.name = value;\n    },\n    get: function get() {\n      return this.name;\n    },\n    remove: function remove() {\n      this.name = null;\n    }\n  }\n};\nRadioButton.property = {\n  name: {\n    set: function set(name) {\n      if (name == null) this.$input.removeAttribute('name');else this.$input.setAttribute('name', name);\n    },\n    get: function get() {\n      return this.$input.getAttribute('name');\n    }\n  },\n  disabled: {\n    set: function set(value) {\n      this.$input.disabled = !!value;\n\n      if (value) {\n        this.addClass('disabled');\n      } else {\n        this.removeClass('disabled');\n      }\n    },\n    get: function get() {\n      return this.$input.disabled;\n    }\n  }\n};\n\nRadioButton.getAllByName = function (name) {\n  return (document.getElementsByTagName('input') || []).filter(function (elt) {\n    return elt.getAttribute('type') == 'radio' && elt.getAttribute('name') == name;\n  });\n};\n\nRadioButton.getValueByName = function (name) {\n  var inputs = RadioButton.getAllByName(name);\n  var res = null;\n  var input;\n\n  for (var i = 0; i < inputs.length; ++i) {\n    input = inputs[i];\n\n    if (input.checked) {\n      res = input.value;\n    }\n  }\n\n  return res;\n};\n\nRadioButton.autoReplace = function () {\n  var placeHolders = Array.prototype.slice.call(document.getElementsByTagName(this.tag));\n  var ph;\n  var attOfPH;\n  var attrs;\n  var style;\n  var classList;\n  var attNode;\n  var attrName, attrValue;\n  var props;\n\n  for (var i = 0; i < placeHolders.length; ++i) {\n    ph = placeHolders[i];\n    attOfPH = ph.attributes;\n    classList = [];\n    style = {};\n    attrs = {};\n    props = {};\n\n    for (var j = 0; j < attOfPH.length; ++j) {\n      attNode = attOfPH[j];\n      attrName = attNode.nodeName;\n      attrValue = attNode.nodeValue;\n\n      if (attrName == 'style') {\n        attrValue.trim().split(';').reduce(function (style, prop) {\n          var p = prop.split(':');\n\n          if (p.length == 2) {\n            style[p[0].trim()] = p[1].trim();\n          }\n\n          return style;\n        }, style);\n      } else if (attrName == 'class') {\n        classList = attrValue.trim().split(/\\s+/);\n      } else if (attrName == 'onchange') {\n        props.onchange = new Function('event', 'sender', attrValue);\n      } else {\n        attrs[attrName] = attrValue;\n      }\n    }\n\n    var newElt = _({\n      tag: this.tag,\n      attr: attrs,\n      \"class\": classList,\n      style: style,\n      props: props\n    });\n\n    $(ph).selfReplace(newElt);\n  }\n};\n\nRadioButton.initAfterLoad = function () {\n  _Dom[\"default\"].documentReady.then(function () {\n    RadioButton.autoReplace();\n  });\n};\n\n_ACore[\"default\"].install('RadioButton'.toLowerCase(), RadioButton);\n\nvar _default = RadioButton;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/RadioButton.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/RadioInput.js":
/*!***************************************************!*\
  !*** ./node_modules/absol-acomp/js/RadioInput.js ***!
  \***************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/radioinput.css */ \"./node_modules/absol-acomp/css/radioinput.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n//new tech, not working version\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @extends Element\r\n * @constructor\r\n */\n\nfunction RadioInput() {\n  this.$input = $('input', this).on('change', this.notifyChange.bind(this));\n  this.checked = false;\n  this.disabled = false;\n  this.on('click', this.eventHandler.click);\n  this.onchange = null;\n}\n\nRadioInput.tag = \"RadioInput\".toLowerCase();\n\nRadioInput.render = function (data) {\n  return _({\n    tag: 'label',\n    extendEvent: 'change',\n    \"class\": 'as-radio-input',\n    child: [{\n      elt: data && data.$input,\n      tag: 'input',\n      \"class\": 'as-radio-input-value',\n      attr: {\n        type: 'radio'\n      }\n    }, {\n      \"class\": ['as-radio-input-check-mark']\n    }]\n  });\n};\n/***\r\n * as normal, change event will be fired when radio change by system\r\n */\n\n\nRadioInput.prototype.notifyChange = function () {\n  var event = {\n    checked: this.checked\n  };\n  this.emit('change', event, this);\n};\n\nRadioInput.prototype._updateCheckedClass = function () {\n  if (this.checked) {\n    this.addClass('as-checked');\n  } else {\n    this.removeClass('as-checked');\n  }\n};\n\nRadioInput.property = {};\nRadioInput.property.disabled = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-disabled');\n    } else {\n      this.removeClass('as-disabled');\n    }\n\n    this.$input.disabled = !!value;\n  },\n  get: function get() {\n    this.$input.disabled;\n  }\n};\n/***\r\n *\r\n * @type {RadioInput}\r\n */\n\nRadioInput.property.checked = {\n  set: function set(value) {\n    this.$input.checked = !!value;\n\n    this._updateCheckedClass();\n  },\n  get: function get() {\n    return this.$input.checked;\n  }\n};\nRadioInput.attribute = {\n  checked: {\n    set: function set(value) {\n      if (value === 'false' || value === null) {\n        this.checked = false;\n      } else {\n        this.checked = true;\n      }\n    },\n    get: function get() {\n      return this.checked ? 'true' : 'false';\n    },\n    remove: function remove() {\n      this.checked = false;\n    }\n  },\n  disabled: {\n    set: function set(value) {\n      if (value === 'false' || value === null) {\n        this.disabled = false;\n      } else {\n        this.disabled = true;\n      }\n    },\n    get: function get() {\n      return this.disabled ? 'true' : 'false';\n    },\n    remove: function remove() {\n      this.disabled = false;\n    }\n  }\n};\n/***\r\n *\r\n * @type {RadioInput}\r\n */\n\nRadioInput.eventHandler = {};\n\nRadioInput.eventHandler.click = function () {\n  this._updateCheckedClass();\n};\n\n_ACore[\"default\"].install(RadioInput);\n\nRadioInput.autoReplace = function () {\n  var placeHolders = Array.prototype.slice.call(document.getElementsByTagName(this.tag));\n  var ph;\n  var attOfPH;\n  var attrs;\n  var style;\n  var classList;\n  var attNode;\n  var attrName, attrValue;\n  var props;\n\n  for (var i = 0; i < placeHolders.length; ++i) {\n    ph = placeHolders[i];\n    attOfPH = ph.attributes;\n    classList = [];\n    style = {};\n    attrs = {};\n    props = {};\n\n    for (var j = 0; j < attOfPH.length; ++j) {\n      attNode = attOfPH[j];\n      attrName = attNode.nodeName;\n      attrValue = attNode.nodeValue;\n\n      if (attrName == 'style') {\n        attrValue.trim().split(';').reduce(function (style, prop) {\n          var p = prop.split(':');\n\n          if (p.length == 2) {\n            style[p[0].trim()] = p[1].trim();\n          }\n\n          return style;\n        }, style);\n      } else if (attrName == 'class') {\n        classList = attrValue.trim().split(/\\s+/);\n      } else if (attrName == 'onchange') {\n        props.onchange = new Function('event', 'sender', attrValue);\n      } else {\n        attrs[attrName] = attrValue;\n      }\n    }\n\n    var newElt = _({\n      tag: this.tag,\n      attr: attrs,\n      \"class\": classList,\n      style: style,\n      props: props\n    });\n\n    $(ph).selfReplace(newElt);\n  }\n};\n\nRadioInput.initAfterLoad = function () {\n  _Dom[\"default\"].documentReady.then(function () {\n    RadioInput.autoReplace();\n  });\n};\n\nvar _default = RadioInput;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/RadioInput.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/RemoteSvg.js":
/*!**************************************************!*\
  !*** ./node_modules/absol-acomp/js/RemoteSvg.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _XHR = _interopRequireDefault(__webpack_require__(/*! absol/src/Network/XHR */ \"./node_modules/absol/src/Network/XHR.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n\nfunction RemoteSvg() {}\n\nRemoteSvg.tag = 'RemoteSvg'.toLowerCase();\n\nRemoteSvg.render = function () {\n  return _('svg').defineEvent('load');\n};\n\nRemoteSvg.property = {\n  src: {\n    set: function set(value) {\n      this._src = value;\n      var self = this;\n      RemoteSvg.loadIcon(value).then(function (data) {\n        self.emit('load', {\n          target: self,\n          src: value,\n          data: data\n        }, self);\n        self.attr(data.attr);\n        self.init(data.props);\n      });\n    },\n    get: function get() {\n      return this._name;\n    }\n  }\n};\nRemoteSvg.attribute = {\n  src: {\n    set: function set(value) {},\n    get: function get() {},\n    remove: function remove() {}\n  }\n};\nRemoteSvg.__cache__ = {};\nRemoteSvg.__div_parser__ = document.createElement('div');\n\nRemoteSvg.loadIcon = function (path) {\n  if (RemoteSvg.__cache__[path]) {\n    return RemoteSvg.__cache__[path];\n  } else {\n    RemoteSvg.__cache__[path] = _XHR[\"default\"].getRequest(path, 'text').then(function (result) {\n      RemoteSvg.__div_parser__.innerHTML = result;\n      var svgElt = $('svg', RemoteSvg.__div_parser__);\n      var res = {\n        attr: {},\n        props: {}\n      };\n\n      if (svgElt) {\n        Array.prototype.forEach.call(svgElt.attributes, function (attribute) {\n          res.attr[attribute.name] = attribute.value;\n        });\n        res.props.innerHTML = svgElt.innerHTML;\n      }\n\n      return res;\n    }, function () {\n      return {};\n    });\n    return RemoteSvg.__cache__[path];\n  }\n};\n\n_ACore[\"default\"].install(RemoteSvg);\n\nvar _default = RemoteSvg;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/RemoteSvg.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/ResizeBox.js":
/*!**************************************************!*\
  !*** ./node_modules/absol-acomp/js/ResizeBox.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/resizebox.css */ \"./node_modules/absol-acomp/css/resizebox.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _EventEmitter = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nvar _Hanger = _interopRequireDefault(__webpack_require__(/*! ./Hanger */ \"./node_modules/absol-acomp/js/Hanger.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @extends Hanger\r\n * @constructor\r\n */\n\nfunction ResizeBox() {\n  this.on({\n    draginit: this.eventHandler.rbDragInit,\n    dragdeinit: this.eventHandler.rbDragDeinit\n  });\n  this.hangon = 3;\n  this._mousedownEventData = undefined;\n  this._mousemoveEventData = undefined;\n  this._lastClickTime = 0;\n}\n\nResizeBox.tag = 'ResizeBox'.toLowerCase();\n\nResizeBox.render = function () {\n  return _({\n    tag: _Hanger[\"default\"].tag,\n    \"class\": 'as-resize-box',\n    extendEvent: ['beginmove', 'endmove', 'moving', 'click', 'dblclick'],\n    //override click event\n    child: {\n      \"class\": 'as-resize-box-body',\n      child: ['.as-resize-box-dot.left-top', '.as-resize-box-dot.top', '.as-resize-box-dot.right-top', '.as-resize-box-dot.right', '.as-resize-box-dot.right-bottom', '.as-resize-box-dot.bottom', '.as-resize-box-dot.left-bottom', '.as-resize-box-dot.left']\n    }\n  });\n};\n\nResizeBox.eventHandler = {};\n\nResizeBox.eventHandler.rbDragInit = function (event) {\n  var target = event.target;\n  if (!target.attr) return;\n  if (!target.hasClass('as-resize-box-dot') && !target.hasClass('as-resize-box-body')) return;\n  var optionNames = event.target.attr('class').match(/body|left|top|right|bottom/g);\n  if (optionNames.length === 0) return;\n  this._mouseOptionNames = optionNames;\n  this._mouseOptionDict = this._mouseOptionNames.reduce(function (ac, cr) {\n    ac[cr] = true;\n    return ac;\n  }, {});\n  this.on({\n    drag: this.eventHandler.rbDrag,\n    dragend: this.eventHandler.rbDragEnd,\n    dragstart: this.eventHandler.rbDragStart\n  });\n  this._dragged = false;\n};\n\nResizeBox.eventHandler.rbDragDeinit = function (event) {\n  this.off({\n    drag: this.eventHandler.rbDrag,\n    dragend: this.eventHandler.rbDragEnd,\n    dragstart: this.eventHandler.rbDragStart\n  });\n  var now = new Date().getTime();\n\n  if (!this._dragged) {\n    if (now - this._lastClickTime < 400) {\n      this.emit('dblclick', Object.assign({}, event, {\n        type: 'dblclick'\n      }), this);\n      this._lastClickTime = 0;\n    } else {\n      this.emit('click', Object.assign({}, event, {\n        type: 'click'\n      }), this);\n      this._lastClickTime = now;\n    }\n  }\n};\n\nResizeBox.eventHandler.rbDrag = function (event) {\n  if (this._mousedownEventData.option.body && !this.canMove) return;\n  this._dragged = true;\n  event.preventDefault();\n  this._mousemoveEventData = {\n    clientX: event.clientX,\n    clientY: event.clientY,\n    clientX0: this._mousedownEventData.clientX,\n    clientY0: this._mousedownEventData.clientY,\n    clientDX: event.clientX - this._mousedownEventData.clientX,\n    clientDY: event.clientY - this._mousedownEventData.clientY,\n    target: this,\n    originEvent: event,\n    option: this._mousedownEventData.option,\n    type: 'moving',\n    begin: true\n  };\n  this.emit('moving', this._mousemoveEventData, this);\n};\n\nResizeBox.eventHandler.rbDragStart = function (event) {\n  event.preventDefault();\n  this._optionNames = event.target.attr('class').match(/body|left|top|right|bottom/g);\n  this._dragged = true;\n  $(document.body).addClass('as-resize-box-overiding').addClass(this._optionNames.join('-'));\n\n  var option = this._optionNames.reduce(function (ac, key) {\n    ac[key] = true;\n    return ac;\n  }, {});\n\n  this._mousedownEventData = {\n    clientX: event.clientX,\n    clientY: event.clientY,\n    target: this,\n    originEvent: event,\n    prevented: false,\n    preventDefault: function preventDefault() {\n      this.prevented = true;\n    },\n    option: option,\n    begin: false,\n    type: 'beginmove'\n  };\n  this.emit('beginmove', this._mousedownEventData, this);\n};\n\nResizeBox.eventHandler.rbDragEnd = function (event) {\n  document.body.classList.remove('as-resize-box-overiding');\n  document.body.classList.remove(this._optionNames.join('-'));\n  this._mousefinishEventData = {\n    clientX: event.clientX,\n    clientY: event.clientY,\n    clientX0: this._mousedownEventData.clientX,\n    clientY0: this._mousedownEventData.clientY,\n    clientDX: event.clientX - this._mousedownEventData.clientX,\n    clientDY: event.clientY - this._mousedownEventData.clientY,\n    target: this,\n    originEvent: event,\n    option: this._mousedownEventData.option,\n    type: 'endmove'\n  };\n  this.emit('endmove', this._mousefinishEventData, this);\n};\n\nResizeBox.property = {};\nResizeBox.property.canMove = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-can-move');\n    } else {\n      this.removeClass('as-can-move');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-can-move');\n  }\n};\nResizeBox.property.canResize = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-can-resize');\n    } else {\n      this.removeClass('as-can-resize');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-can-resize');\n  }\n};\nResizeBox.property.canClick = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-can-click');\n    } else {\n      this.removeClass('as-can-click');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-can-click');\n  }\n};\n\n_ACore[\"default\"].install(ResizeBox);\n\nvar _default = ResizeBox;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/ResizeBox.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/RibbonButton.js":
/*!*****************************************************!*\
  !*** ./node_modules/absol-acomp/js/RibbonButton.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/ribbonbutton.css */ \"./node_modules/absol-acomp/css/ribbonbutton.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nvar _RibbonSplitButton = _interopRequireDefault(__webpack_require__(/*! ./RibbonSplitButton */ \"./node_modules/absol-acomp/js/RibbonSplitButton.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction RibbonButton() {\n  this.$icon = null;\n  this._icon = null;\n  this.$text = $('.as-ribbon-button-text', this);\n  this.$textNode = this.$text.firstChild;\n  this._menuHolder = null;\n}\n\nRibbonButton.tag = 'RibbonButton'.toLowerCase();\n\nRibbonButton.render = function () {\n  return _({\n    tag: 'button',\n    extendEvent: ['select'],\n    attr: {\n      'tabindex': '0'\n    },\n    \"class\": ['as-ribbon-button', 'as-no-dropdown'],\n    child: [{\n      tag: 'span',\n      \"class\": 'as-ribbon-button-text',\n      child: {\n        text: ''\n      }\n    }, 'span.mdi.mdi-chevron-down']\n  });\n};\n\nRibbonButton.property = Object.assign({}, _RibbonSplitButton[\"default\"].property);\nRibbonButton.property.icon = {\n  set: function set(icon) {\n    icon = icon || null;\n    this._icon = icon;\n    if (this.$icon) this.removeChild(this.$icon);\n\n    if (icon) {\n      this.$icon = _(icon);\n      this.addChildBefore(this.$icon, this.$text);\n      if (this.$icon.addClass) this.$icon.addClass('as-ribbon-button-icon');\n    } else {\n      this.$icon = null;\n    }\n  },\n  get: function get() {\n    return this._icon;\n  }\n};\nRibbonButton.eventHandler = {};\n\n_ACore[\"default\"].install(RibbonButton);\n\nvar _default = RibbonButton;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/RibbonButton.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/RibbonSplitButton.js":
/*!**********************************************************!*\
  !*** ./node_modules/absol-acomp/js/RibbonSplitButton.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/ribbonsplitbutton.css */ \"./node_modules/absol-acomp/css/ribbonsplitbutton.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _QuickMenu = _interopRequireDefault(__webpack_require__(/*! ./QuickMenu */ \"./node_modules/absol-acomp/js/QuickMenu.js\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction RibbonSplitButton() {\n  this.$icon = null;\n  this._icon = null;\n  this.$text = $('.as-ribbon-split-button-text', this);\n  this.$primaryBtn = $('.as-ribbon-split-button-primary', this).on('click', this.eventHandler.clickPrimaryBtn);\n  this.$extendBtn = $('.as-ribbon-split-button-extend', this);\n  this.$extendText = $('.as-ribbon-split-button-text', this.$extendBtn);\n  this._menuHolder = null;\n}\n\nRibbonSplitButton.tag = 'RibbonSplitButton'.toLowerCase();\n\nRibbonSplitButton.render = function () {\n  return _({\n    extendEvent: ['press', 'select'],\n    attr: {\n      'tabindex': '0'\n    },\n    \"class\": ['as-ribbon-split-button', 'as-no-dropdown'],\n    child: {\n      \"class\": 'as-ribbon-split-button-content',\n      child: [{\n        tag: 'button',\n        attr: {\n          'tabindex': '-1'\n        },\n        \"class\": 'as-ribbon-split-button-primary',\n        child: {\n          tag: 'span',\n          \"class\": 'as-ribbon-split-button-text'\n        }\n      }, {\n        tag: 'button',\n        attr: {\n          'tabindex': '-1'\n        },\n        \"class\": 'as-ribbon-split-button-extend',\n        child: ['span.as-ribbon-split-button-text', 'span.mdi.mdi-chevron-down']\n      }]\n    }\n  });\n};\n\nRibbonSplitButton.property = {};\nRibbonSplitButton.property.items = {\n  set: function set(items) {\n    var thisB = this;\n    this._items = items || [];\n\n    if (this._items && this._items.length > 0) {\n      if (!this._menuHolder) {\n        this.removeClass('as-no-dropdown');\n        this._menuHolder = _QuickMenu[\"default\"].toggleWhenClick(this.$extendBtn || this, {\n          getMenuProps: function getMenuProps() {\n            return {\n              extendStyle: {\n                'min-width': thisB.getBoundingClientRect().width + 'px'\n              },\n              items: thisB._items\n            };\n          },\n          getFlowedElement: function getFlowedElement() {\n            return thisB;\n          },\n          anchor: [1, 2, 6, 5],\n          onSelect: function onSelect(item) {\n            thisB.emit('select', {\n              item: (0, _utils.cleanMenuItemProperty)(item),\n              type: 'select',\n              target: thisB\n            });\n          }\n        });\n      }\n    } else {\n      if (this._menuHolder) {\n        this.addClass('as-no-dropdown');\n\n        this._menuHolder.remove();\n\n        this._menuHolder = null;\n      }\n    }\n  },\n  get: function get() {\n    return this._items;\n  }\n};\nRibbonSplitButton.property.text = {\n  set: function set(value) {\n    value = value || '';\n    this.$text.attr('data-text', value);\n    if (this.$extendText) this.$extendText.attr('data-text', value);\n  },\n  get: function get() {\n    return this.$text.attr('data-text') | '';\n  }\n};\nRibbonSplitButton.property.icon = {\n  set: function set(icon) {\n    icon = icon || null;\n    this._icon = icon;\n    if (this.$icon) this.$primaryBtn.removeChild(this.$icon);\n\n    if (icon) {\n      this.$icon = _(icon);\n      this.$primaryBtn.addChildBefore(this.$icon, this.$text);\n      if (this.$icon.addClass) this.$icon.addClass('as-ribbon-split-button-icon');\n    } else {\n      this.$icon = null;\n    }\n  },\n  get: function get() {\n    return this._icon;\n  }\n};\nRibbonSplitButton.eventHandler = {};\n\nRibbonSplitButton.eventHandler.clickPrimaryBtn = function () {\n  this.emit('press', {\n    type: 'press',\n    target: this,\n    item: (0, _utils.cleanMenuItemProperty)(this)\n  });\n};\n\n_ACore[\"default\"].install(RibbonSplitButton);\n\nvar _default = RibbonSplitButton;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/RibbonSplitButton.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/RotatedText.js":
/*!****************************************************!*\
  !*** ./node_modules/absol-acomp/js/RotatedText.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\n__webpack_require__(/*! ../css/rotatedtext.css */ \"./node_modules/absol-acomp/css/rotatedtext.css\");\n\nvar _ResizeSystem = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/ResizeSystem */ \"./node_modules/absol/src/HTML5/ResizeSystem.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction RotatedText() {\n  this.$attachHook = (0, _ACore.$)('attachhook', this);\n  this.$attachHook.requestUpdateSize = this.eventHandler.positionChange;\n  this.$attachHook.on('attached', this.eventHandler.attached);\n  this.$anchor = (0, _ACore.$)('.as-rotated-text-anchor', this);\n  this.$content = (0, _ACore.$)('.as-rotated-text-content', this);\n  this.$contentText = this.$content.firstChild;\n  this.$trackElts = [];\n  this._angle = 0;\n  this.angle = 0;\n  this.text = '';\n  this._trackInterval = -1;\n}\n\nRotatedText.tag = 'RotatedText';\n\nRotatedText.render = function () {\n  return (0, _ACore._)({\n    tag: 'span',\n    \"class\": 'as-rotated-text',\n    child: ['attachhook', {\n      \"class\": 'as-rotated-text-anchor',\n      child: {\n        tag: 'span',\n        \"class\": 'as-rotated-text-content',\n        child: {\n          text: ''\n        }\n      }\n    }]\n  });\n};\n\nRotatedText.prototype._trackPosition = function () {\n  this._cancelTrackPosition();\n\n  var parent = this.parentElement;\n\n  while (parent) {\n    parent.addEventListener('scroll', this.eventHandler.positionChange);\n    this.$trackElts.push(parent);\n    parent = parent.parentElement;\n  }\n\n  document.addEventListener('scroll', this.eventHandler.positionChange);\n  this.$trackElts.push(document);\n  this._trackInterval = setInterval(this.eventHandler.intervalCheck, 3000);\n};\n\nRotatedText.prototype._cancelTrackPosition = function () {\n  if (this._trackInterval >= 0) {\n    clearInterval(this._trackInterval);\n    this._trackInterval = -1;\n  }\n\n  while (this.$trackElts.length > 0) {\n    this.$trackElts.pop().removeEventListener('scroll', this.eventHandler.positionChange);\n  }\n};\n\nRotatedText.property = {};\nRotatedText.property.text = {\n  get: function get() {\n    return this.$contentText.data;\n  },\n  set: function set(value) {\n    value = value || '';\n    value = value + '';\n    this.$contentText.data = value;\n  }\n};\nRotatedText.property.angle = {\n  set: function set(value) {\n    value = value || 0;\n    var matched;\n\n    if (typeof value === 'number') {\n      this._angle = value;\n      this.$content.addStyle('transform', 'rotate(' + value + 'deg)');\n    } else if (value.match) {\n      matched = value.match(/([0-9.+\\-e]+)deg/);\n\n      if (matched) {\n        value = parseFloat(matched[1]);\n\n        if (isFinite(value)) {\n          this._angle = value;\n          this.$content.addStyle('transform', 'rotate(' + this._angle + 'deg)');\n        }\n\n        return;\n      }\n\n      matched = value.match(/([0-9.+\\-e]+)rad/);\n\n      if (matched) {\n        value = parseFloat(matched[1]);\n\n        if (isFinite(value)) {\n          this._angle = value * 180 / Math.PI;\n          this.$content.addStyle('transform', 'rotate(' + this._angle + 'deg)');\n        }\n      }\n    }\n  },\n  get: function get() {\n    return this._angle;\n  }\n};\nRotatedText.eventHandler = {};\n\nRotatedText.eventHandler.attached = function () {\n  _ResizeSystem[\"default\"].add(this);\n\n  this.eventHandler.positionChange();\n  this.$content.addStyle('transform-origin', Math.round(0.3 * this.$content.getFontSize()) + 'px 50%');\n\n  this._trackPosition();\n};\n\nRotatedText.eventHandler.detached = function () {\n  this._cancelTrackPosition();\n};\n\nRotatedText.eventHandler.intervalCheck = function () {\n  if (!this.isDescendantOf(document.body)) {\n    this.eventHandler.detached();\n  }\n};\n\nRotatedText.eventHandler.positionChange = function () {\n  var bound = this.getBoundingClientRect();\n  this.$anchor.addStyle({\n    top: Math.round(bound.top) + 'px',\n    left: Math.round(bound.left) + 'px'\n  });\n};\n\n_ACore[\"default\"].install(RotatedText);\n\nvar _default = RotatedText;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/RotatedText.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/Scroller.js":
/*!*************************************************!*\
  !*** ./node_modules/absol-acomp/js/Scroller.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.HScrollbar = HScrollbar;\nexports.HScroller = HScroller;\nexports.Scrollbar = Scrollbar;\nexports.VScrollbar = VScrollbar;\nexports.VScroller = VScroller;\n\n__webpack_require__(/*! ../css/scroller.css */ \"./node_modules/absol-acomp/css/scroller.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _Element = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Element */ \"./node_modules/absol/src/HTML5/Element.js\"));\n\nvar _int = __webpack_require__(/*! absol/src/Math/int */ \"./node_modules/absol/src/Math/int.js\");\n\nvar _Hanger = _interopRequireDefault(__webpack_require__(/*! ./Hanger */ \"./node_modules/absol-acomp/js/Hanger.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n\n_ACore[\"default\"].$scrollStyle = function () {\n  var element = _('style#vscroller-style');\n\n  element.innerHTML = ['.absol-vscroller-viewport{ margin-right: ' + -17 + 'px;  min-width: calc(100% + ' + 17 + 'px);}', '.absol-hscroller-viewport{ margin-bottom: ' + -17 + 'px;  min-height: calc(100% + ' + 17 + 'px);}'].join('\\n');\n  document.head.appendChild(element);\n\n  _Dom[\"default\"].getScrollSize().then(function (size) {\n    element.innerHTML = ['.absol-vscroller-viewport{ margin-right: ' + -size.width + 'px; min-width: calc(100% + ' + size.width + 'px);}', '.absol-hscroller-viewport{ margin-bottom: ' + -size.height + 'px; min-height: calc(100% + ' + size.height + 'px);}'].join('\\n');\n  });\n\n  return element;\n}();\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\n\nfunction VScroller() {\n  var thisVS = this;\n  this.$attachHook = $('attachhook', this);\n  this.sync = new Promise(function (rs) {\n    thisVS.$attachHook.once('error', function () {\n      rs();\n    });\n  });\n  this.$attachHook.on('error', function () {\n    thisVS.requestUpdateSize();\n  });\n  this.$vscrollbar = $('vscrollbar', this).on('scroll', this.eventHandler.scrollScrollbar);\n  this.$viewport = $('.absol-vscroller-viewport', this).on('scroll', this.eventHandler.scrollViewport);\n\n  _OOP[\"default\"][\"extends\"](thisVS.$viewport, {\n    removeChild: function removeChild() {\n      this[\"super\"].apply(this, arguments);\n      thisVS.requestUpdateSize();\n      return thisVS;\n    }\n  });\n}\n\nVScroller.tag = 'vscroller';\n\nVScroller.render = function () {\n  return _({\n    \"class\": 'absol-vscroller',\n    child: ['.absol-vscroller-viewport', {\n      \"class\": ['absol-scrollbar-container', 'vertical'],\n      child: 'vscrollbar'\n    }, 'attachhook']\n  });\n};\n\nVScroller.prototype.requestUpdateSize = function () {\n  // return;\n  if (this._isRequestingUpdateSize) return this.sync;\n  this._isRequestingUpdateSize = true;\n  this.sync = this.sync.then(function () {\n    this.$vscrollbar.outerHeight = this.$viewport.clientHeight;\n    this.$vscrollbar.innerHeight = this.$viewport.scrollHeight - 2;\n    this.$vscrollbar.innerOffset = this.$viewport.scrollTop;\n\n    if (this.$vscrollbar.innerHeight <= this.$vscrollbar.outerHeight) {\n      this.$vscrollbar.hidden = true;\n      this.addClass('disabled');\n    } else {\n      this.removeClass('disabled');\n      this.$vscrollbar.hidden = false;\n    }\n\n    this._isRequestingUpdateSize = false;\n  }.bind(this));\n  return this.sync;\n};\n\nVScroller.prototype.init = function (props) {\n  this[\"super\"](props);\n  this.requestUpdateSize();\n};\n\nVScroller.prototype.addChild = function () {\n  var res = this.$viewport.addChild.apply(this.$viewport, arguments);\n  this.requestUpdateSize();\n  return res;\n};\n\nVScroller.prototype.clearChild = function () {\n  var res = this.$viewport.clearChild.apply(this.$viewport, arguments);\n  this.requestUpdateSize();\n  return res;\n};\n\nVScroller.prototype.addChildBefore = function () {\n  var res = this.$viewport.addChildBefore.apply(this.$viewport, arguments);\n  this.requestUpdateSize();\n  return res;\n};\n\nVScroller.prototype.addChildAfter = function () {\n  var res = this.$viewport.addChildAfter.apply(this.$viewport, arguments);\n  this.requestUpdateSize();\n  return res;\n};\n\nVScroller.prototype.findChildAfter = function () {\n  return this.$viewport.findChildAfter.apply(this.$viewport, arguments);\n};\n\nVScroller.prototype.findChildBefore = function () {\n  return this.$viewport.findChildBefore.apply(this.$viewport, arguments);\n};\n\nVScroller.prototype.removeChild = function () {\n  var res = this.$viewport.removeChild.apply(this.$viewport, arguments);\n  this.requestUpdateSize();\n  return res;\n};\n\nVScroller.prototype.scrollInto = function (element, padding, scrollTime, beforFrame, afterFrame) {\n  padding = padding || 0;\n  scrollTime = scrollTime || 0;\n  var frameCount = Math.ceil(scrollTime / 15 + 1);\n  var self = this;\n\n  function onFrame() {\n    beforFrame && beforFrame();\n    var elementBound = element.getBoundingClientRect();\n    var viewportBound = self.$viewport.getBoundingClientRect();\n    var currentScrollTop = self.$viewport.scrollTop;\n    var newScrollTop = currentScrollTop;\n\n    if (elementBound.bottom + padding > viewportBound.bottom) {\n      newScrollTop = currentScrollTop + (elementBound.bottom + padding - viewportBound.bottom) / (Math.log(frameCount) + 1);\n    }\n\n    if (elementBound.top - padding < viewportBound.top) {\n      newScrollTop = currentScrollTop - (viewportBound.top - (elementBound.top - padding)) / (Math.log(frameCount) + 1);\n    }\n\n    if (newScrollTop != currentScrollTop) {\n      self.$viewport.scrollTop = newScrollTop;\n    }\n\n    afterFrame && afterFrame();\n    frameCount--;\n    if (frameCount > 0) setTimeout(onFrame, 15);\n  }\n\n  if (_Element[\"default\"].prototype.isDescendantOf.call(element, this.$viewport)) {\n    onFrame();\n  }\n};\n\nVScroller.prototype.scrollBy = function (dy, duration) {\n  duration = duration || 0;\n  var frameCount = Math.ceil(duration / 20);\n  var timeOut = duration / frameCount;\n  var i = 0;\n  var self = this;\n  var start = self.$viewport.scrollTop;\n  var end = start + dy;\n\n  function onFrame() {\n    self.$viewport.scrollTop = Math.max((0, _int.map)(i, 0, frameCount, start, end), 0);\n    ++i;\n    if (i <= frameCount) setTimeout(onFrame, timeOut);\n  }\n\n  onFrame();\n};\n\nVScroller.eventHandler = {};\n\nVScroller.eventHandler.scrollViewport = function (event) {\n  this.$vscrollbar.outerHeight = this.$viewport.clientHeight;\n  this.$vscrollbar.innerHeight = this.$viewport.scrollHeight;\n  this.$vscrollbar.innerOffset = this.$viewport.scrollTop;\n};\n\nVScroller.eventHandler.scrollScrollbar = function (event) {\n  this.$viewport.scrollTop = this.$vscrollbar.innerOffset;\n};\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\n\nfunction HScroller() {\n  var thisHS = this;\n  this.$attachHook = $('attachhook', this).on('error', function () {\n    this.requestUpdateSize = this.requestUpdateSize || thisHS.requestUpdateSize.bind(thisHS);\n\n    _Dom[\"default\"].addToResizeSystem(this);\n  });\n  this.sync = new Promise(function (rs, rj) {\n    thisHS.$attachHook.once('error', rs);\n  });\n  this.$hscrollbar = $('hscrollbar', this).on('scroll', this.eventHandler.scrollScrollbar);\n  this.$viewport = $('.absol-hscroller-viewport', this).on('scroll', this.eventHandler.scrollViewport);\n\n  _OOP[\"default\"][\"extends\"](this.$viewport, {\n    removeChild: function removeChild() {\n      this[\"super\"].apply(this, arguments);\n      thisHS.requestUpdateSize();\n      return thisHS;\n    }\n  });\n}\n\nHScroller.tag = 'hscroller';\n\nHScroller.render = function () {\n  return _({\n    \"class\": 'absol-hscroller',\n    child: ['.absol-hscroller-viewport', {\n      \"class\": ['absol-scrollbar-container', 'horizontal'],\n      child: 'hscrollbar'\n    }, 'attachhook']\n  });\n};\n\nHScroller.eventHandler = {};\n\nHScroller.eventHandler.scrollViewport = function (event) {\n  this.$hscrollbar.outerWidth = this.$viewport.clientWidth;\n  this.$hscrollbar.innerWidth = this.$viewport.scrollWidth;\n  this.$hscrollbar.innerOffset = this.$viewport.scrollLeft;\n};\n\nHScroller.eventHandler.scrollScrollbar = function (event) {\n  this.$viewport.scrollLeft = this.$hscrollbar.innerOffset;\n};\n\nObject.assign(HScroller.prototype, VScroller.prototype);\n\nHScroller.prototype.requestUpdateSize = function () {\n  // return;\n  if (this._isRequestingUpdateSize) return this.sync;\n  this._isRequestingUpdateSize = true;\n  this.sync = this.sync.then(function () {\n    this.$hscrollbar.outerWidth = this.$viewport.clientWidth;\n    this.$hscrollbar.innerWidth = this.$viewport.scrollWidth;\n    this.$hscrollbar.innerOffset = this.$viewport.scrollLeft;\n\n    if (this.$hscrollbar.innerWidth <= this.$hscrollbar.outerWidth) {\n      this.$hscrollbar.hidden = true;\n      this.addClass('disabled');\n    } else {\n      this.removeClass('disabled');\n      this.$hscrollbar.hidden = false;\n    }\n\n    this._isRequestingUpdateSize = false;\n  }.bind(this));\n  return this.sync;\n};\n\nHScroller.prototype.scrollInto = function (element) {\n  if (_Element[\"default\"].prototype.isDescendantOf.call(element, this.$viewport)) {\n    var elementBound = element.getBoundingClientRect();\n    var viewportBound = this.$viewport.getBoundingClientRect();\n    var currentScrollLeft = this.$viewport.scrollLeft;\n    var newScrollLeft = currentScrollLeft;\n\n    if (elementBound.right > viewportBound.right) {\n      newScrollLeft = currentScrollLeft + (elementBound.right - viewportBound.right);\n    }\n\n    if (elementBound.left < viewportBound.left) {\n      newScrollLeft = currentScrollLeft - (viewportBound.left - elementBound.left);\n    }\n\n    if (newScrollLeft != currentScrollLeft) {\n      this.$viewport.scrollLeft = newScrollLeft;\n    }\n  }\n};\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\n\nfunction Scrollbar() {\n  var thisSB = this;\n  this.$button = $('.absol-scrollbar-button', this);\n  this.on('inactive', function (event, sender) {\n    this.emit('deactive', event, sender);\n  });\n}\n\nScrollbar.tag = 'scrollbar';\n\nScrollbar.render = function () {\n  return _({\n    tag: _Hanger[\"default\"].tag,\n    \"class\": ['absol-scrollbar'],\n    extendEvent: ['scroll', 'active', 'inactive', 'deactive'],\n    child: '.absol-scrollbar-button'\n  });\n};\n\nScrollbar.property = {};\nScrollbar.property.hidden = {\n  set: function set(value) {\n    value = !!value;\n\n    if (value !== this._hidden) {\n      this._hidden = value;\n      if (value) this.addClass('absol-hidden');else this.removeClass('absol-hidden');\n    }\n  },\n  get: function get() {\n    return this.hasClass('absol-hidden');\n  }\n};\n/***\r\n * @extends Scrollbar\r\n * @constructor\r\n */\n\nfunction VScrollbar() {\n  this.on('draginit', this.eventHandler.dragInit, true).on('drag', this.eventHandler.drag, true).on('dragend', this.eventHandler.dragEnd, true);\n  /***\r\n   * @type {number}\r\n   * @name outerHeight\r\n   * @memberOf VScrollbar#\r\n   */\n\n  /***\r\n   * @type {number}\r\n   * @name innerHeight\r\n   * @memberOf VScrollbar#\r\n   */\n\n  /***\r\n   * @type {number}\r\n   * @name innerHeight\r\n   * @memberOf VScrollbar#\r\n   */\n}\n\nVScrollbar.tag = 'vscrollbar';\n\nVScrollbar.render = function () {\n  return _({\n    tag: 'scrollbar',\n    \"class\": 'absol-vscrollbar'\n  }, true);\n};\n\nVScrollbar.prototype.updateValue = function () {\n  this.$button.addStyle('height', Math.min(this.outerHeight / this.innerHeight, 1) * 100 + '%');\n  this.$button.addStyle('top', this.innerOffset / this.innerHeight * 100 + '%');\n};\n\nVScrollbar.prototype.updateStatus = function () {\n  if (this.innerHeight > this.outerHeight) {\n    this.addClass('as-overflow');\n  } else {\n    this.removeClass('as-overflow');\n  }\n};\n\nVScrollbar.eventHandler = {};\n\nVScrollbar.eventHandler.dragInit = function (event) {\n  event.preventDefault();\n  var boundRes = this.getBoundingClientRect();\n  var boundButton = this.$button.getBoundingClientRect();\n\n  if (event.target === this.$button) {\n    this.innerOffset0 = this.innerOffset;\n  } else {\n    var newInnerOffset = (0, _int.map)(event.startingPoint.y - boundButton.height / 2 - boundRes.top, 0, boundRes.height, 0, this.innerHeight);\n    if (newInnerOffset + this.outerHeight > this.innerHeight) newInnerOffset = this.innerHeight - this.outerHeight;\n    if (newInnerOffset < 0) newInnerOffset = 0;\n    this.innerOffset = newInnerOffset; //todo\n\n    event.innerOffset = newInnerOffset;\n    this.innerOffset0 = newInnerOffset;\n    this.emit('scroll', event);\n  }\n\n  this.addClass('absol-active');\n  this.emit('active', {\n    type: 'active',\n    originEvent: event,\n    target: this,\n    originalEvent: event.originalEvent || event\n  });\n};\n\nVScrollbar.eventHandler.drag = function (event) {\n  event.preventDefault();\n  var dy = event.currentPoint.sub(event.startingPoint).y;\n  var newInnerOffset = this.innerOffset0 + dy * (this.innerHeight / this.outerHeight) * (this.outerHeight / this.getBoundingClientRect().height);\n  if (newInnerOffset + this.outerHeight > this.innerHeight) newInnerOffset = this.innerHeight - this.outerHeight;\n  if (newInnerOffset < 0) newInnerOffset = 0;\n  this.innerOffset = newInnerOffset;\n  event.innerOffset = newInnerOffset;\n  this.emit('scroll', event);\n};\n\nVScrollbar.eventHandler.dragEnd = function (event) {\n  this.removeClass('absol-active');\n  this.emit('inactive', {\n    type: 'inactive',\n    originEvent: event,\n    target: this,\n    originalEvent: event.originalEvent || event\n  });\n};\n\nVScrollbar.property = {\n  innerOffset: {\n    set: function set(value) {\n      value = value || 0;\n\n      if (this._innerOffset != value) {\n        this._innerOffset = value;\n        this.updateValue();\n      }\n    },\n    get: function get() {\n      return this._innerOffset || 0;\n    }\n  },\n  innerHeight: {\n    set: function set(value) {\n      value = value || 1;\n      value = Math.max(value, 1);\n\n      if (this._innerHeight !== value) {\n        this._innerHeight = value;\n        this.updateValue();\n      }\n\n      this.updateStatus();\n    },\n    get: function get() {\n      return this._innerHeight || 1;\n    }\n  },\n  outerHeight: {\n    set: function set(value) {\n      value = value || 0;\n      value = Math.max(value, 0);\n\n      if (this._outerHeight !== value) {\n        this._outerHeight = value;\n        this.updateValue();\n      }\n\n      this.updateStatus();\n    },\n    get: function get() {\n      return this._outerHeight || 0;\n    }\n  }\n};\n/***\r\n * @extends Scrollbar\r\n * @constructor\r\n */\n\nfunction HScrollbar() {\n  this.on('draginit', this.eventHandler.dragInit, true).on('drag', this.eventHandler.drag, true).on('dragend', this.eventHandler.dragEnd, true);\n  /***\r\n   * @type {number}\r\n   * @name innerOffset\r\n   * @memberOf HScrollbar#\r\n   */\n\n  /***\r\n   * @type {number}\r\n   * @name innerWidth\r\n   * @memberOf HScrollbar#\r\n   */\n\n  /***\r\n   * @type {number}\r\n   * @name outerWidth\r\n   * @memberOf HScrollbar#\r\n   */\n}\n\nHScrollbar.tag = 'hscrollbar';\n\nHScrollbar.render = function () {\n  return _({\n    tag: 'scrollbar',\n    \"class\": 'absol-hscrollbar'\n  }, true);\n};\n\nHScrollbar.prototype.updateValue = function () {\n  this.$button.addStyle('width', Math.min(this.outerWidth / this.innerWidth, 1) * 100 + '%');\n  this.$button.addStyle('left', this.innerOffset / this.innerWidth * 100 + '%');\n};\n\nHScrollbar.prototype.updateStatus = function () {\n  if (this.innerWidth > this.outerWidth) {\n    this.addClass('as-overflow');\n  } else {\n    this.removeClass('as-overflow');\n  }\n};\n/**\r\n *\r\n * @type {{[key: string]:function}}\r\n */\n\n\nHScrollbar.eventHandler = {};\n/**\r\n * @this HScrollbar\r\n * @param event\r\n */\n\nHScrollbar.eventHandler.dragInit = function (event) {\n  event.preventDefault();\n  var boundRes = this.getBoundingClientRect();\n  var boundButton = this.$button.getBoundingClientRect();\n\n  if (event.target === this.$button) {\n    this.innerOffset0 = this.innerOffset;\n  } else {\n    var newInnerOffset = (0, _int.map)(event.startingPoint.x - boundButton.width / 2 - boundRes.left, 0, boundRes.width, 0, this.innerWidth);\n    if (newInnerOffset + this.outerWidth > this.innerWidth) newInnerOffset = this.innerWidth - this.outerWidth;\n    if (newInnerOffset < 0) newInnerOffset = 0;\n    this.innerOffset = newInnerOffset; //todo\n\n    event.innerOffset = newInnerOffset;\n    this.innerOffset0 = newInnerOffset;\n    this.emit('scroll', event);\n  }\n\n  var body = $(document.body);\n  this.addClass('absol-active');\n  this.emit('active', {\n    type: 'inactive',\n    originEvent: event,\n    target: this\n  });\n};\n/**\r\n * @this HScrollbar\r\n * @param event\r\n */\n\n\nHScrollbar.eventHandler.drag = function (event) {\n  event.preventDefault();\n  var dy = event.currentPoint.x - event.startingPoint.x;\n  var newInnerOffset = this.innerOffset0 + dy * (this.innerWidth / this.outerWidth) * (this.outerWidth / this.getBoundingClientRect().width);\n  if (newInnerOffset + this.outerWidth > this.innerWidth) newInnerOffset = this.innerWidth - this.outerWidth;\n  if (newInnerOffset < 0) newInnerOffset = 0;\n  this.innerOffset = newInnerOffset; //todo\n\n  event.innerOffset = newInnerOffset;\n  this.emit('scroll', event);\n};\n/**\r\n * @this HScrollbar\r\n * @param event\r\n */\n\n\nHScrollbar.eventHandler.dragEnd = function (event) {\n  this.removeClass('absol-active');\n  this.emit('inactive', {\n    type: 'inactive',\n    originEvent: event,\n    target: this\n  });\n};\n\nHScrollbar.property = {\n  innerOffset: {\n    set: function set(value) {\n      value = value || 0;\n\n      if (this._innerOffset !== value) {\n        this._innerOffset = value;\n        this.updateValue();\n      }\n    },\n    get: function get() {\n      return this._innerOffset || 0;\n    }\n  },\n  innerWidth: {\n    set: function set(value) {\n      value = value || 1;\n      value = Math.max(value, 1);\n\n      if (this._innerWidth !== value) {\n        this._innerWidth = value;\n        this.updateValue();\n      }\n\n      this.updateStatus();\n    },\n    get: function get() {\n      return this._innerWidth || 1;\n    }\n  },\n  outerWidth: {\n    set: function set(value) {\n      value = value || 0;\n      value = Math.max(value, 0);\n\n      if (this._outerWidth !== value) {\n        this._outerWidth = value;\n        this.updateValue();\n      }\n\n      this.updateStatus();\n    },\n    get: function get() {\n      return this._outerWidth || 0;\n    }\n  }\n};\n\n_ACore[\"default\"].install([VScrollbar, HScrollbar, Scrollbar, VScroller, HScroller]);\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/Scroller.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/Searcher.js":
/*!*************************************************!*\
  !*** ./node_modules/absol-acomp/js/Searcher.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/searcher.css */ \"./node_modules/absol-acomp/css/searcher.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nvar _Icons = __webpack_require__(/*! ./Icons */ \"./node_modules/absol-acomp/js/Icons.js\");\n\nvar _LanguageSystem = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/LanguageSystem */ \"./node_modules/absol/src/HTML5/LanguageSystem.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n\n_ACore[\"default\"].creator['find-ico'] = function () {\n  var res = _('<svg class=\"find\" width=\"100mm\" height=\"100mm\" version=\"1.1\" viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\">' + ' <g transform=\"matrix(-1 0 0 1 99.478 -193.73)\">' + '  <path d=\"m62.128 199.18c-18.859 0-34.148 15.289-34.148 34.148 0 5.4138 1.26 10.533 3.5026 15.081 0.6886 1.3965 1.4698 2.7392 2.3357 4.02-1.9962 2.1685-31.467 31.596-31.404 33.295 0.21757 5.8346 4.9404 8.7289 9.464 7.855 1.3264-0.25627 30.938-30.639 31.774-31.529 1.3906 0.89633 2.8508 1.6948 4.3702 2.3848 4.2995 1.9526 9.0756 3.04 14.105 3.04 18.859 0 34.147-15.288 34.147-34.147 3e-6 -18.859-15.288-34.148-34.147-34.148zm0.49444 8.2454a26.067 26.067 0 0 1 26.068 26.067 26.067 26.067 0 0 1-26.068 26.068 26.067 26.067 0 0 1-26.067-26.068 26.067 26.067 0 0 1 26.067-26.067z\"/>' + ' </g>' + '</svg>');\n\n  return res;\n};\n\n_ACore[\"default\"].creator['times-circle-ico'] = function () {\n  var res = _('<svg class=\"times\" width=\"100mm\" height=\"100mm\" version=\"1.1\" viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\">\\\r\n            <g transform=\"translate(0,-197)\">\\\r\n                <path d=\"m49.979 236.2-14.231-14.231-10.696 10.696 14.257 14.257-14.351 14.351 10.737 10.737 14.292-14.292 14.292 14.292 10.761-10.761-14.257-14.257 14.316-14.316-10.725-10.725zm50.021 10.804a50 50 0 0 1-50 50 50 50 0 0 1-50-50 50 50 0 0 1 50-50 50 50 0 0 1 50 50z\" />\\\r\n            </g>\\\r\n        </svg>');\n\n  return res;\n};\n/**\r\n * @extends {AElement}\r\n * @constructor\r\n */\n\n\nfunction SearchTextInput() {\n  var thisSTI = this;\n  this.defineEvent(['change', 'modify', 'stoptyping']);\n  this.eventHandler = _OOP[\"default\"].bindFunctions(this, SearchTextInput.eventHandler);\n  this.$button = $('button', this);\n  this.$input = $('input', this);\n  ['keyup', 'keydown', 'focus', 'blur'].forEach(function (evName) {\n    thisSTI.defineEvent(evName);\n    thisSTI.$input.on(evName, function (event) {\n      thisSTI.emit(evName, event, thisSTI);\n    });\n  });\n  this.$input.on('change', this.eventHandler.inputChange);\n  this.$input.on('keyup', this.eventHandler.inputKeyUp);\n  this.$button.on('click', function (event) {\n    thisSTI.$input.value = '';\n    thisSTI.eventHandler.inputKeyUp(event);\n    setTimeout(function () {\n      thisSTI.focus();\n    }, 50);\n  });\n}\n\nSearchTextInput.tag = 'SearchTextInput'.toLowerCase();\n\nSearchTextInput.render = function () {\n  return _({\n    \"class\": 'absol-search-text-input',\n    child: [{\n      \"class\": 'absol-search-text-input-container',\n      child: {\n        tag: 'input',\n        attr: {\n          type: 'search',\n          placeholder: _LanguageSystem[\"default\"].getText('txt_search') || 'Search...'\n        }\n      }\n    }, {\n      \"class\": 'absol-search-text-button-container',\n      child: {\n        tag: 'button',\n        child: ['find-ico', 'times-circle-ico', {\n          tag: _Icons.SpinnerIco.tag,\n          style: {\n            margin: 0\n          }\n        }]\n      }\n    }]\n  });\n};\n\nSearchTextInput.property = {\n  value: {\n    set: function set(value) {\n      value = value || '';\n      this.$input.value = value;\n      this._lastTextModified = value;\n\n      if (this.value.length > 0) {\n        this.addClass('searching');\n      } else {\n        this.removeClass('searching');\n      }\n    },\n    get: function get() {\n      return this.$input.value;\n    }\n  },\n  placeholder: {\n    set: function set(value) {\n      this.$input.attr('placeholder', value);\n    },\n    get: function get() {\n      return this.$placeholder.getAttribute('placeholder');\n    }\n  }\n};\nSearchTextInput.property.waiting = {\n  set: function set(value) {\n    value = value || false;\n    this._waiting = value;\n\n    if (value) {\n      this.addClass('as-waiting');\n    } else {\n      this.removeClass('as-waiting');\n    }\n  },\n  get: function get() {\n    return this._waiting || false;\n  }\n};\n\nSearchTextInput.prototype.focus = function () {\n  this.$input.focus();\n};\n\nSearchTextInput.prototype.blur = function () {\n  this.$input.blur();\n};\n\nSearchTextInput.eventHandler = {};\n\nSearchTextInput.eventHandler.inputChange = function (event) {\n  event.value = this.value;\n\n  if (typeof this.onchange == 'function') {\n    this.onchange(event, this);\n  }\n\n  this.emit('change', event);\n};\n\nSearchTextInput.eventHandler.inputKeyUp = function (event) {\n  if (this._lastTextModified != this.value) {\n    if (this.value.length > 0) {\n      this.addClass('searching');\n    } else {\n      this.removeClass('searching');\n    }\n\n    event.value = this.value;\n\n    if (typeof this.onchange == 'function') {\n      this.onchange(event, this);\n    }\n\n    this.emit('modify', event);\n\n    if (this._updateTimeOut !== undefined) {\n      clearTimeout(this._updateTimeOut);\n      this._updateTimeOut = undefined;\n    }\n\n    this._updateTimeOut = setTimeout(function () {\n      this.emit('stoptyping', event);\n    }.bind(this), 500);\n    this._lastTextModified = this.value;\n  }\n};\n\n_ACore[\"default\"].creator.searchcrosstextinput = function () {\n  var res = _('searchtextinput', true);\n\n  return res;\n};\n\n_ACore[\"default\"].creator.searchtextinput = SearchTextInput;\nvar _default = SearchTextInput;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/Searcher.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/SelectBox.js":
/*!**************************************************!*\
  !*** ./node_modules/absol-acomp/js/SelectBox.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\nexports.releaseItem = releaseItem;\nexports.requireItem = requireItem;\n\n__webpack_require__(/*! ../css/selectbox.css */ \"./node_modules/absol-acomp/css/selectbox.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _SelectMenu = _interopRequireDefault(__webpack_require__(/*! ./SelectMenu2 */ \"./node_modules/absol-acomp/js/SelectMenu2.js\"));\n\nvar _EventEmitter = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nvar _PositionTracker = _interopRequireDefault(__webpack_require__(/*! ./PositionTracker */ \"./node_modules/absol-acomp/js/PositionTracker.js\"));\n\nvar _SelectBoxItem = _interopRequireDefault(__webpack_require__(/*! ./SelectBoxItem */ \"./node_modules/absol-acomp/js/SelectBoxItem.js\"));\n\nvar _SelectListBox = __webpack_require__(/*! ./SelectListBox */ \"./node_modules/absol-acomp/js/SelectListBox.js\");\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _ResizeSystem = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/ResizeSystem */ \"./node_modules/absol/src/HTML5/ResizeSystem.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n\nfunction pressCloseEventHandler(event) {\n  var parentElt = this.$parent;\n  if (!parentElt) return;\n  parentElt.eventHandler.pressCloseItem(this, event);\n}\n\nfunction pressHandler(event) {\n  var parentElt = this.$parent;\n  if (!parentElt) return;\n  parentElt.eventHandler.pressItem(this, event);\n}\n/***\r\n *\r\n * @returns {SelectBoxItem}\r\n */\n\n\nfunction makeItem() {\n  return _({\n    tag: 'selectboxitem',\n    on: {\n      close: pressCloseEventHandler,\n      press: pressHandler\n    }\n  });\n}\n\nvar itemPool = [];\n\nfunction requireItem($parent) {\n  var item;\n\n  if (itemPool.length > 0) {\n    item = itemPool.pop();\n  } else {\n    item = makeItem();\n  }\n\n  item.$parent = $parent;\n  return item;\n}\n\nfunction releaseItem(item) {\n  item.$parent = null;\n  itemPool.push(item);\n}\n/***\r\n * @extends PositionTracker\r\n * @return {SelectBox}\r\n * @constructor\r\n */\n\n\nfunction SelectBox() {\n  this.on('click', this.eventHandler.click);\n  this.$selectlistBox = _({\n    tag: 'selectlistbox',\n    props: {\n      anchor: [1, 6, 2, 5],\n      displayValue: _SelectListBox.VALUE_HIDDEN\n    },\n    on: {\n      preupdateposition: this.eventHandler.preUpdateListPosition,\n      pressitem: this.eventHandler.selectListBoxPressItem\n    }\n  });\n\n  _OOP[\"default\"].drillProperty(this, this.$selectlistBox, 'enableSearch');\n\n  this.$items = [];\n  this._values = [];\n  this.items = [];\n  this.values = [];\n  this.$selectlistBox.followTarget = this;\n  this.disableClickToFocus = false;\n  this.orderly = true;\n  this.itemFocusable = false;\n  this._activeValue = undefined;\n  return this;\n}\n\nSelectBox.tag = 'selectbox';\n\nSelectBox.render = function () {\n  return _({\n    tag: 'bscroller',\n    \"class\": ['absol-selectbox', 'absol-bscroller'],\n    extendEvent: ['change', 'add', 'remove', 'activevaluechange'],\n    attr: {\n      tabindex: '1'\n    }\n  }, true);\n};\n\nSelectBox.prototype._requireItem = function (n) {\n  var itemElt;\n\n  while (this.$items.length < n) {\n    itemElt = requireItem(this);\n    this.addChild(itemElt);\n    this.$items.push(itemElt);\n  }\n\n  while (this.$items.length > n) {\n    itemElt = this.$items.pop();\n    this.removeChild(itemElt);\n    releaseItem(itemElt);\n  }\n};\n\nSelectBox.prototype._assignItems = function (items) {\n  for (var i = 0; i < this.$items.length && i < items.length; ++i) {\n    this.$items[i].data = items[i];\n  }\n};\n/***\r\n *\r\n * @param {string[] | number[]} values\r\n * @private\r\n */\n\n\nSelectBox.prototype._getItemsByValues = function (values) {\n  var selectListBoxElt = this.$selectlistBox;\n  var itemHolders = values.reduce(function (ac, cr) {\n    ac.push.apply(ac, selectListBoxElt.findItemsByValue(cr));\n    return ac;\n  }, []);\n\n  if (this.orderly) {\n    itemHolders.sort(function (a, b) {\n      return a.idx - b.idx;\n    });\n  }\n\n  return itemHolders.map(function (holder) {\n    return holder.item;\n  });\n};\n\nSelectBox.prototype._updateItems = function () {\n  this.viewItemsByValues(this._values);\n};\n\nSelectBox.prototype.viewItemsByValues = function (values) {\n  var items = this._getItemsByValues(values);\n\n  var cBound = this.getBoundingClientRect();\n\n  this._requireItem(items.length);\n\n  this._assignItems(items);\n\n  if (this.itemFocusable) {\n    this._updateFocusItem();\n  }\n\n  var nBound = this.getBoundingClientRect();\n\n  if (nBound.width != cBound.width || nBound.height != cBound.height) {\n    _ResizeSystem[\"default\"].updateUp(this);\n  }\n};\n\nSelectBox.property = {};\nSelectBox.property.disabled = _SelectMenu[\"default\"].property.disabled;\nSelectBox.property.hidden = _SelectMenu[\"default\"].property.hidden;\nSelectBox.property.isFocus = _SelectMenu[\"default\"].property.isFocus;\n\nSelectBox.prototype.init = function (props) {\n  props = props || [];\n  Object.keys(props).forEach(function (key) {\n    if (props[key] === undefined) delete props[key];\n  });\n  this[\"super\"](props);\n};\n\nSelectBox.prototype._updateFocusItem = function () {\n  for (var i = 0; i < this.$items.length; ++i) {\n    this.$items[i].active = this.$items[i].value == this._activeValue;\n  }\n};\n\nSelectBox.prototype.init = _SelectMenu[\"default\"].prototype.init;\nSelectBox.property.items = {\n  set: function set(items) {\n    items = items || [];\n    this.$selectlistBox.items = items;\n    this.addStyle('--list-min-width', this.$selectlistBox._estimateWidth + 'px');\n\n    this._updateItems();\n  },\n  get: function get() {\n    return this.$selectlistBox.items;\n  }\n};\nSelectBox.property.values = {\n  set: function set(values) {\n    values = values || [];\n    values = values instanceof Array ? values : [values];\n    this._values = values;\n    this.$selectlistBox.values = values;\n\n    this._updateItems();\n  },\n  get: function get() {\n    return this._values || [];\n  }\n};\nSelectBox.property.orderly = {\n  set: function set(value) {\n    var needUpdate = this._orderly === this._orderly;\n\n    if (typeof value === 'function') {\n      this._orderly;\n    } else this._orderly = !!value;\n\n    if (needUpdate) {\n      this.values = this.values;\n    }\n  },\n  get: function get() {\n    return !!this._orderly;\n  }\n};\nSelectBox.property.disableClickToFocus = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-disable-click-to-focus');\n    } else {\n      this.removeClass('as-disable-click-to-focus');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-disable-click-to-focus');\n  }\n};\nSelectBox.property.itemFocusable = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-item-focusable');\n    } else {\n      this.removeClass('as-item-focusable');\n    }\n\n    this._updateFocusItem();\n  },\n  get: function get() {\n    return this.hasClass('as-item-focusable');\n  }\n};\nSelectBox.property.activeValue = {\n  set: function set(value) {\n    this._activeValue = value;\n\n    if (this.itemFocusable) {\n      this._updateFocusItem(); //todo\n\n    }\n  },\n  get: function get() {\n    return this._activeValue;\n  }\n};\nSelectBox.eventHandler = Object.assign({}, _SelectMenu[\"default\"].eventHandler);\n\nSelectBox.eventHandler.click = function (event) {\n  if (event.target === this && !this.disableClickToFocus) {\n    this.isFocus = !this.isFocus;\n  }\n};\n\nSelectBox.eventHandler.bodyClick = function (event) {\n  if (!_EventEmitter[\"default\"].hitElement(this.$selectlistBox, event) && event.target !== this) {\n    this.isFocus = false;\n  }\n};\n\nSelectBox.eventHandler.selectListBoxPressItem = function (event) {\n  var data = event.data;\n  var currentValues = this.$selectlistBox.values;\n  currentValues.push(data.value);\n  this.$selectlistBox.values = currentValues;\n  this.$selectlistBox.updatePosition();\n  this._activeValue = data.value;\n\n  this._updateItems();\n\n  this.isFocus = false;\n  this.emit('add', Object.assign({}, event, {\n    type: 'add',\n    target: this,\n    value: data.value,\n    data: data,\n    itemData: data\n  }), this);\n  this.emit('change', Object.assign({}, event, {\n    type: 'change',\n    action: 'add',\n    target: this,\n    value: data.value,\n    data: data,\n    values: this.values\n  }), this);\n};\n\nSelectBox.eventHandler.pressCloseItem = function (item, event) {\n  var value = item.value;\n  var data = item.data;\n  var currentValues = this.$selectlistBox.values;\n  var index = currentValues.indexOf(value);\n\n  if (index >= 0) {\n    currentValues.splice(index, 1);\n  }\n\n  this.$selectlistBox.values = currentValues;\n  this.$selectlistBox.updatePosition();\n  this._values = currentValues;\n\n  this._updateItems();\n\n  this.emit('remove', Object.assign({}, event, {\n    type: 'change',\n    target: this,\n    data: data,\n    value: value,\n    itemData: data\n  }), this);\n  this.emit('change', Object.assign({}, event, {\n    type: 'change',\n    action: 'remove',\n    target: this,\n    data: data,\n    value: value,\n    itemData: data\n  }), this);\n};\n\nSelectBox.eventHandler.pressItem = function (item, event) {\n  var value = item.value;\n\n  if (this.itemFocusable) {\n    var prevActiveValue = this.activeValue;\n\n    if (value !== prevActiveValue) {\n      this.activeValue = value;\n      this.emit('activevaluechange', {\n        target: this,\n        originEvent: event,\n        prevActiveValue: prevActiveValue,\n        activeValue: value\n      }, this);\n    }\n  }\n};\n\nSelectBox.eventHandler.pressCloseItem = function (item, event) {\n  var value = item.value;\n  var data = item.data;\n  var index;\n  index = this._values.indexOf(value);\n\n  if (index >= 0) {\n    this._values.splice(index, 1);\n\n    this._updateItems();\n\n    this.$selectlistBox.values = this._values;\n    this.emit('remove', Object.assign({}, event, {\n      type: 'change',\n      target: this,\n      data: data,\n      value: value,\n      itemData: data\n    }), this);\n    this.emit('change', Object.assign({}, event, {\n      type: 'change',\n      action: 'remove',\n      target: this,\n      data: data,\n      value: value,\n      itemData: data\n    }), this);\n  }\n};\n\n_ACore[\"default\"].install(SelectBox);\n\nvar _default = SelectBox;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/SelectBox.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/SelectBoxItem.js":
/*!******************************************************!*\
  !*** ./node_modules/absol-acomp/js/SelectBoxItem.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nvar _EventEmitter = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction SelectBoxItem() {\n  this._themeClassName = null;\n  this.$text = $('.absol-selectbox-item-text', this);\n  this.$close = $('.absol-selectbox-item-close', this);\n  this.$close.on('click', this.eventHandler.clickClose);\n  this.on('click', this.eventHandler.click);\n}\n\n;\nSelectBoxItem.tag = 'SelectBoxItem'.toLowerCase();\n\nSelectBoxItem.render = function () {\n  return _({\n    \"class\": ['absol-selectbox-item'],\n    extendEvent: ['close', 'press'],\n    child: ['.absol-selectbox-item-text', {\n      \"class\": 'absol-selectbox-item-close',\n      child: '<span class=\"mdi mdi-close\"></span>'\n    }]\n  });\n};\n\nSelectBoxItem.eventHandler = {};\n\nSelectBoxItem.eventHandler.clickClose = function (event) {\n  this.emit('close', event);\n};\n\nSelectBoxItem.eventHandler.click = function (event) {\n  if (!_EventEmitter[\"default\"].hitElement(this.$close, event)) {\n    this.emit('press', event, this);\n  }\n};\n\nSelectBoxItem.property = {};\nSelectBoxItem.property.data = {\n  set: function set(value) {\n    this._data = value;\n    this.$text.clearChild();\n    this.$text.addChild(_('<span>' + this.text + '</span>'));\n\n    if (value && value.desc) {\n      this.attr('title', value.desc);\n    } else {\n      this.attr('title', undefined);\n    }\n\n    if (this._themeClassName) this.removeClass(this._themeClassName);\n    this._themeClassName = null;\n\n    if (this.theme) {\n      this._themeClassName = 'as-theme-' + this.theme;\n      this.addClass(this._themeClassName);\n    }\n  },\n  get: function get() {\n    return this._data;\n  }\n};\nSelectBoxItem.property.text = {\n  get: function get() {\n    if (typeof this._data == 'string') return this._data;else return this._data.text;\n  }\n};\nSelectBoxItem.property.value = {\n  get: function get() {\n    if (typeof this._data == 'string') return this._data;else return this._data.value;\n  }\n};\nSelectBoxItem.property.theme = {\n  get: function get() {\n    return this._data.theme || null;\n  }\n};\nSelectBoxItem.property.active = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-active');\n    } else {\n      this.removeClass('as-active');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-active');\n  }\n};\n\n_ACore[\"default\"].install(SelectBoxItem);\n\nvar _default = SelectBoxItem;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/SelectBoxItem.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/SelectList.js":
/*!***************************************************!*\
  !*** ./node_modules/absol-acomp/js/SelectList.js ***!
  \***************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\nexports.makeItem = makeItem;\nexports.measureListHeight = measureListHeight;\nexports.measureListSize = measureListSize;\nexports.measureMaxDescriptionWidth = measureMaxDescriptionWidth;\nexports.measureMaxTextWidth = measureMaxTextWidth;\nexports.releaseItem = releaseItem;\nexports.requireItem = requireItem;\n\n__webpack_require__(/*! ../css/selectlist.css */ \"./node_modules/absol-acomp/css/selectlist.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\n__webpack_require__(/*! ./SelectListItem */ \"./node_modules/absol-acomp/js/SelectListItem.js\");\n\nvar _EventEmitter = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\nvar itemPool = [];\n\nfunction onMousedownItem(event) {\n  if (_EventEmitter[\"default\"].isMouseRight(event)) return;\n  var thisSL = this.$parent;\n\n  if (thisSL) {\n    thisSL.value = this.value;\n    thisSL.emit('pressitem', {\n      type: 'pressitem',\n      target: thisSL,\n      itemElt: this,\n      value: this.value,\n      data: this.data\n    });\n  }\n}\n\nfunction makeItem() {\n  return _({\n    tag: 'selectlistitem',\n    on: {\n      mousedown: onMousedownItem\n    }\n  });\n}\n\nfunction requireItem($parent) {\n  var item;\n\n  if (itemPool.length > 0) {\n    item = itemPool.pop();\n  } else {\n    item = makeItem();\n  }\n\n  item.$parent = $parent;\n  return item;\n}\n\nfunction releaseItem(item) {\n  item.$parent = null;\n  item.removeClass('selected');\n  itemPool.push(item);\n}\n\n;\n\nfunction measureMaxDescriptionWidth(items) {\n  var maxDescWidth = 0;\n  var maxText = 0;\n  var maxEst = 0;\n  var est;\n\n  for (var i = 0; i < items.length; ++i) {\n    if (items[i].desc) {\n      est = (0, _utils.estimateWidth14)(items[i].desc);\n\n      if (est > maxEst) {\n        maxEst = est;\n        maxText = items[i].desc;\n      }\n    }\n  }\n\n  if (maxText) maxDescWidth = (0, _utils.measureText)(maxText, 'italic 14px  sans-serif').width;\n  return maxDescWidth;\n}\n\n;\n\nfunction measureMaxTextWidth(items) {\n  var maxTextWidth = 0;\n  var maxText = 0;\n  var maxEst = 0;\n  var maxLv = 0;\n  var est;\n  var text;\n  var item;\n\n  for (var i = 0; i < items.length; ++i) {\n    item = items[i];\n\n    if (item.text) {\n      text = item.text;\n      est = (0, _utils.estimateWidth14)(text) + 14 * 0.9 * (item.level || 0);\n\n      if (est > maxEst) {\n        maxEst = est;\n        maxText = text;\n        maxLv = item.level || 0;\n      }\n    }\n  }\n\n  if (maxText) maxTextWidth = 14 * 0.9 * maxLv + (0, _utils.measureText)(maxText, '14px Arial, Helvetica, sans-serif').width + 14; //padding left, right 7px\n\n  return maxTextWidth;\n}\n\nfunction measureListHeight(items) {\n  var border = 0;\n  var n = items.length - 1;\n  return items.length * 20 + border;\n}\n\nfunction measureListSize(items) {\n  var descWidth = measureMaxDescriptionWidth(items);\n  var textWidth = measureMaxTextWidth(items);\n  var width = textWidth;\n\n  if (descWidth > 0) {\n    width += descWidth + 14;\n  }\n\n  var height = measureListHeight(items);\n  return {\n    width: width,\n    height: height,\n    descWidth: descWidth,\n    textWidth: textWidth\n  };\n}\n/*global absol*/\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\n\nfunction SelectList() {\n  var thisSL = this;\n  this.defineEvent(['pressitem', 'cancelasync', 'valuevisibilityasync', 'finishasync', 'sizechangeasync']);\n  this.$attachhook = _('attachhook').addTo(this);\n  this.sync = new Promise(function (rs) {\n    thisSL.$attachhook.once('error', rs);\n  });\n  this.$items = [];\n  this.$itemByValue = {}; //quick find element\n\n  this.$selectedItem = undefined;\n  this.measuredSize = {\n    width: 0,\n    height: 0,\n    descWidth: 0,\n    textWidth: 0\n  };\n  this._itemSession = 0;\n  this._finished = true;\n}\n\n;\nSelectList.tag = \"SelectList\".toLowerCase();\n\nSelectList.render = function () {\n  return _('.absol-selectlist');\n};\n\nSelectList.prototype._updateSelectedItem = function () {\n  var newSelectedItemElt = this.$itemByValue[this._selectValue];\n\n  if (newSelectedItemElt != this.$selectedItem) {\n    if (this.$selectedItem) {\n      this.$selectedItem.removeClass('selected');\n    }\n\n    if (newSelectedItemElt) {\n      newSelectedItemElt.addClass('selected');\n      this.$selectedItem = newSelectedItemElt;\n    }\n  }\n};\n\nSelectList.prototype._requireItems = function (itemCout) {\n  var item;\n\n  while (this.$items.length < itemCout) {\n    item = requireItem(this);\n    this.$items.push(item);\n    this.addChild(item);\n  }\n\n  while (this.$items.length > itemCout) {\n    item = this.$items.pop();\n    item.remove();\n    releaseItem(item);\n  }\n};\n\nSelectList.prototype._assignItems = function (from, to) {\n  var foundSelected = false;\n  var itemElt;\n  var item;\n\n  for (var i = from; i < to; ++i) {\n    itemElt = this.$items[i];\n    item = this._items[i];\n    itemElt.data = item;\n    itemElt.__index__ = i;\n\n    if (this.$itemByValue[item.value]) {\n      console.warn('Value  ' + this.$items[i].value + ' is duplicated!');\n    } else {\n      this.$itemByValue[item.value] = itemElt;\n\n      if (this._selectValue == item.value) {\n        itemElt.addClass('selected');\n        this.$selectedItem = itemElt;\n        foundSelected = true;\n      } else {\n        itemElt.removeClass('selected');\n      }\n    }\n  }\n\n  return foundSelected;\n};\n\nSelectList.prototype.setItemsAsync = function (items) {\n  //start process\n  this._finished = false;\n  var session = Math.floor(Math.random() * 1000000);\n  this._itemSession = session;\n  this._items = items || [];\n  this.$itemByValue = {};\n  this.measuredSize = measureListSize(items);\n  this.style.setProperty('--select-list-desc-width', this.measuredSize.descWidth / 14 + 'em'); //addStyle notWork because of convert to cameCase\n\n  var thisSL = this;\n  var i = 0;\n  var limit = 20;\n\n  function tick() {\n    if (thisSL._itemSession != session) {\n      thisSL.emit('cancelasync', {\n        session: session,\n        type: 'cancelasync'\n      }, this);\n      return;\n    }\n\n    if (i >= items.length) {\n      thisSL._updateSelectedItem();\n\n      thisSL._finished = false;\n      thisSL.emit('finishasync', {\n        session: session,\n        type: 'finishasync'\n      }, this);\n      return;\n    }\n\n    var n = Math.min(items.length - i, limit);\n    var itemCout = i + n;\n\n    thisSL._requireItems(itemCout);\n\n    i = itemCout;\n\n    var foundSelected = thisSL._assignItems(itemCout - n, itemCout);\n\n    if (foundSelected) {\n      thisSL.emit('valuevisibilityasync', {\n        session: session,\n        type: 'valuevisibilityasync',\n        itemElt: thisSL.$items[i]\n      }, thisSL);\n    }\n\n    thisSL.emit('sizechangeasync', {\n      session: session,\n      type: 'sizechangeasync'\n    }, this);\n    setTimeout(tick, 2);\n  }\n\n  setTimeout(tick, 2);\n  return Object.assign({\n    session: session\n  }, this.measuredSize);\n};\n\nSelectList.prototype.setItems = function (items) {\n  this._finished = false;\n  var session = Math.floor(Math.random() * 1000000);\n  this._itemSession = session;\n  this._items = items || [];\n  this.$itemByValue = {};\n  this.measuredSize = measureListSize(items);\n  this.style.setProperty('--select-list-desc-width', this.measuredSize.descWidth / 14 + 'em'); //addStyle notWork because of convert to cameCase\n\n  var itemCount = items.length;\n\n  this._requireItems(itemCount);\n\n  this._assignItems(0, itemCount);\n\n  this._finished = true;\n  return {\n    session: this._itemSession,\n    width: this._descWidth + this._textWidth + 14,\n    height: this._height\n  };\n};\n\nSelectList.property = {};\n/**\r\n * @type {SelectList}\r\n */\n\nSelectList.property.items = {\n  set: function set(value) {\n    value = value || [];\n    this.setItems(value);\n  },\n  get: function get() {\n    return this._items || [];\n  }\n};\nSelectList.property.value = {\n  set: function set(value) {\n    this._selectValue = value;\n\n    this._updateSelectedItem();\n  },\n  get: function get() {\n    return this._selectValue;\n  }\n};\nSelectList.property.item = {\n  get: function get() {\n    if (this.$selectedItem) return this.$selectedItem.data;\n    return undefined;\n  }\n};\nSelectList.property.selectedIndex = {\n  get: function get() {\n    throw new Error(\"selectedIndex getter is deprecated\");\n  }\n};\n\nSelectList.prototype.init = function (props) {\n  props = props || {};\n  var value = props.value;\n  delete props.value;\n  this[\"super\"](props);\n  if (value !== undefined) this.value = value;\n};\n\nSelectList.eventHandler = {};\n\n_ACore[\"default\"].install(SelectList);\n\nvar _default = SelectList;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/SelectList.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/SelectListBox.js":
/*!******************************************************!*\
  !*** ./node_modules/absol-acomp/js/SelectListBox.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = exports.VALUE_NORMAL = exports.VALUE_HIDDEN = void 0;\n\n__webpack_require__(/*! ../css/selectlistbox.css */ \"./node_modules/absol-acomp/css/selectlistbox.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _SelectList = __webpack_require__(/*! ./SelectList */ \"./node_modules/absol-acomp/js/SelectList.js\");\n\nvar _DomSignal = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/DomSignal */ \"./node_modules/absol/src/HTML5/DomSignal.js\"));\n\nvar _Dom = __webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\");\n\nvar _listIndexing = __webpack_require__(/*! ./list/listIndexing */ \"./node_modules/absol-acomp/js/list/listIndexing.js\");\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _ListSearchMaster = _interopRequireDefault(__webpack_require__(/*! ./list/ListSearchMaster */ \"./node_modules/absol-acomp/js/list/ListSearchMaster.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\nvar $$ = _ACore[\"default\"].$$;\nvar VALUE_HIDDEN = -1;\nexports.VALUE_HIDDEN = VALUE_HIDDEN;\nvar VALUE_NORMAL = 1;\n/***\r\n * @extends Follower\r\n * @constructor\r\n */\n\nexports.VALUE_NORMAL = VALUE_NORMAL;\n\nfunction SelectListBox() {\n  this._initDomHook();\n\n  this._initControl();\n\n  this._initScroller();\n\n  this._initProperty();\n  /***\r\n   * @name strictValue\r\n   * @type {boolean}\r\n   * @memberOf SelectListBox#\r\n   */\n\n  /***\r\n   * @name enableSearch\r\n   * @type {boolean}\r\n   * @memberOf SelectListBox#\r\n   */\n\n}\n\nSelectListBox.tag = 'SelectListBox'.toLowerCase();\n\nSelectListBox.render = function () {\n  return _({\n    tag: 'follower',\n    attr: {\n      tabindex: 0\n    },\n    \"class\": 'as-select-list-box',\n    extendEvent: ['pressitem'],\n    child: [{\n      \"class\": 'as-select-list-box-search-ctn',\n      child: 'searchtextinput'\n    }, {\n      \"class\": ['as-bscroller', 'as-select-list-box-scroller'],\n      child: [{\n        \"class\": ['as-select-list-box-content'],\n        child: Array(SelectListBox.prototype.preLoadN).fill('.as-select-list-box-page')\n      }]\n    }, 'attachhook.as-dom-signal'],\n    props: {\n      anchor: [1, 6, 2, 5]\n    }\n  });\n};\n\nSelectListBox.prototype.toLoadNextY = 200;\nSelectListBox.prototype.preLoadN = 3;\nSelectListBox.prototype.itemHeightMode = [20, 30];\nSelectListBox.prototype.itemHeight = 20;\n\nSelectListBox.prototype._initDomHook = function () {\n  this.$domSignal = $('attachhook.as-dom-signal', this);\n  this.domSignal = new _DomSignal[\"default\"](this.$domSignal);\n  this.domSignal.on('viewListAt', this.viewListAt.bind(this));\n  this.domSignal.on('viewListAtFirstSelected', this.viewListAtFirstSelected.bind(this));\n  this.domSignal.on('viewListAtCurrentScrollTop', this.viewListAtCurrentScrollTop.bind(this));\n  this.searchMaster = new _ListSearchMaster[\"default\"]();\n};\n\nSelectListBox.prototype._initControl = function () {\n  this._currentOffset = 0;\n  this._startItemIdx = 0;\n  this.$searchInput = $('searchtextinput', this).on('stoptyping', this.eventHandler.searchModify);\n};\n\nSelectListBox.prototype._initScroller = function () {\n  this.$content = $('.as-select-list-box-content', this);\n  this._estimateHeight = 0;\n  this._pageOffsets = Array(this.preLoadN + 1).fill(0);\n  this.$listPages = $$('.as-select-list-box-page', this);\n  this.$listScroller = $('.as-select-list-box-scroller', this).on('scroll', this.eventHandler.scroll);\n};\n\nSelectListBox.prototype._initProperty = function () {\n  /***\r\n   *   items  =(search, filler)=> filteredItems =(list to list, tree to list)=>  preDisplayItems =(remove hidden item)=> displayItem\r\n   *\r\n   */\n  this._items = [];\n  this._itemNodeList = []; // use for tree\n\n  this._values = [];\n  this._valueDict = {};\n  this._itemNodeHolderByValue = {}; // this._filteredItems = [];// not need , only use when search\n\n  this._preDisplayItems = [];\n  this._displayItems = [];\n  this._searchCache = {};\n  this._displayValue = VALUE_NORMAL;\n  this.displayValue = VALUE_NORMAL;\n  this.items = [];\n};\n\nSelectListBox.prototype._requireItem = function (pageElt, n) {\n  var itemElt;\n\n  while (pageElt.childNodes.length > n) {\n    itemElt = pageElt.lastChild;\n    itemElt.selfRemove();\n    (0, _SelectList.releaseItem)(itemElt);\n  }\n\n  while (pageElt.childNodes.length < n) {\n    itemElt = (0, _SelectList.requireItem)(this);\n    pageElt.addChild(itemElt);\n  }\n};\n\nSelectListBox.prototype._assignItems = function (pageElt, offset) {\n  var n = Math.min(this._displayItems.length - offset, pageElt.childNodes.length);\n  var itemElt, value;\n\n  for (var i = 0; i < n; ++i) {\n    itemElt = pageElt.childNodes[i];\n    itemElt.data = this._displayItems[offset + i];\n    value = itemElt.value + '';\n  }\n};\n\nSelectListBox.prototype._itemsToNodeList = function (items) {\n  return items;\n};\n/***\r\n *\r\n * @param {Array<{value:String|Number}>} items\r\n * @return {Array<{value:String|Number}>}\r\n */\n\n\nSelectListBox.prototype._filterDisplayItems = function (items) {\n  if (this._displayValue === VALUE_NORMAL) return items;\n  var dict = this._valueDict;\n  return items.filter(function (item) {\n    return !dict[item.value + ''];\n  });\n};\n\nSelectListBox.prototype._updateSelectedItem = function () {\n  var valueDict = this._valueDict;\n  this.$listPages.forEach(function (pageElt) {\n    Array.prototype.forEach.call(pageElt.childNodes, function (itemElt) {\n      var value = itemElt.value + '';\n\n      if (valueDict[value]) {\n        itemElt.selected = true;\n      } else {\n        itemElt.selected = false;\n      }\n    });\n  });\n};\n/***\r\n *\r\n * @param {number} offset\r\n */\n\n\nSelectListBox.prototype.viewListAt = function (offset) {\n  if (!this.isDescendantOf(document.body)) {\n    this.domSignal.emit('viewListAt', offset);\n    return;\n  }\n\n  var fontSize = this.$listScroller.getFontSize() || 14;\n  offset = Math.max(0, Math.min(offset, this._displayItems.length - 1));\n  var screenSize = (0, _Dom.getScreenSize)();\n  var maxItem = Math.ceil(Math.max(window.screen.height, screenSize.height) / this.itemHeight);\n  var contentBound = this.$content.getBoundingClientRect();\n  this._pageOffsets[0] = Math.max(offset - maxItem, 0);\n\n  for (var i = 1; i <= this.preLoadN; ++i) {\n    this._pageOffsets[i] = Math.min(this._pageOffsets[i - 1] + maxItem, this._displayItems.length);\n  }\n\n  var sIdx, nItem, pageBound;\n  var pageElt;\n\n  for (var pageIndex = 0; pageIndex < this.preLoadN; ++pageIndex) {\n    sIdx = this._pageOffsets[pageIndex];\n    nItem = this._pageOffsets[pageIndex + 1] - sIdx;\n    pageElt = this.$listPages[pageIndex];\n    pageElt.addStyle('top', this._pageOffsets[pageIndex] * this.itemHeight / 14 + 'em');\n\n    this._requireItem(pageElt, nItem);\n\n    this._assignItems(pageElt, sIdx);\n\n    pageBound = pageElt.getBoundingClientRect();\n  }\n\n  this._updateSelectedItem();\n};\n\nSelectListBox.prototype.viewListAtFirstSelected = function () {\n  if (!this.isDescendantOf(document.body)) {\n    this.domSignal.emit('viewListAtFirstSelected');\n    return;\n  }\n\n  if (this._displayValue == VALUE_HIDDEN) {\n    return false;\n  } else if (this._values.length > 0) {\n    var value = this._values[0];\n    var itemHolders = this._displayItemHolderByValue[value + ''];\n\n    if (itemHolders) {\n      this.domSignal.once('scrollIntoSelected', function () {\n        var holder = itemHolders[0];\n        this.viewListAt(holder.idx);\n        var itemElt = $('.as-selected', this.$listScroller);\n\n        if (itemElt) {\n          var scrollBound = this.$listScroller.getBoundingClientRect();\n          var itemBound = itemElt.getBoundingClientRect();\n          this.$listScroller.scrollTop += itemBound.top - scrollBound.top;\n        }\n      }.bind(this));\n      this.domSignal.emit('scrollIntoSelected');\n      return true;\n    } else return false;\n  } else return false;\n};\n\nSelectListBox.prototype.viewListAtCurrentScrollTop = function () {\n  if (!this.isDescendantOf(document.body)) {\n    this.emit('viewListAtCurrentScrollTop');\n    return;\n  }\n\n  this.viewListAt(Math.floor(this.$listScroller.scrollTop / this.itemHeight));\n};\n\nSelectListBox.prototype.searchItemByText = function (text) {\n  var _this = this;\n\n  text = text.trim().replace(/\\s\\s+/, ' ');\n  if (text.length === 0) return Promise.resolve(this._items);\n  this._searchCache[text] = this._searchCache[text] || this.searchMaster.query({\n    text: text\n  }).then(function (searchResult) {\n    if (!searchResult) return;\n\n    var scoreOf = function scoreOf(it) {\n      var idx = _this.key2idx[it.valueKey];\n      var sc = searchResult[idx];\n      if (!sc) return -Infinity;\n      return Math.max(sc[0], sc[1]) * 1000000 - idx;\n    };\n\n    var makeList = function makeList(originItems) {\n      var items = originItems.filter(function (it) {\n        var idx = _this.key2idx[it.valueKey];\n        if (searchResult[idx]) return true;\n        return false;\n      }).map(function (it) {\n        var cpItem = Object.assign({}, it);\n        if (it.items) cpItem.items = makeList(it.items);\n        return cpItem;\n      });\n      items.sort(function (a, b) {\n        return scoreOf(b) - scoreOf(a);\n      });\n      return items;\n    };\n\n    return makeList(_this._items);\n  });\n  return this._searchCache[text];\n};\n\nSelectListBox.prototype.resetSearchState = function () {\n  this.$searchInput.value = '';\n  this._preDisplayItems = this._itemsToNodeList(this._items);\n\n  this._updateDisplayItem();\n\n  this.domSignal.emit('viewListAt', 0);\n  this.$listScroller.scrollTop = 0;\n};\n\nSelectListBox.prototype.notifyPressOut = function () {\n  this.emit('pressout', {\n    target: this,\n    type: 'pressout'\n  }, this);\n};\n\nSelectListBox.prototype.notifyPressClose = function () {\n  this.emit('pressclose', {\n    target: this,\n    type: 'pressclose'\n  }, this);\n};\n\nSelectListBox.prototype._findFirstPageIdx = function () {\n  for (var i = 0; i < this.preLoadN; ++i) {\n    if (this._pageOffsets[i + 1] - this._pageOffsets[i] > 0) {\n      return i;\n    }\n  }\n\n  return -1;\n};\n\nSelectListBox.prototype._findLastPageIdx = function () {\n  for (var i = this.preLoadN - 1; i >= 0; --i) {\n    if (this._pageOffsets[i + 1] - this._pageOffsets[i] > 0) {\n      return i;\n    }\n  }\n\n  return -1;\n};\n\nSelectListBox.prototype._updateDisplayItemIndex = function () {\n  this._displayItemHolderByValue = (0, _listIndexing.indexingByValue)(this._displayItems, {});\n};\n\nSelectListBox.prototype._updateItemNodeIndex = function () {\n  this._itemNodeHolderByValue = (0, _listIndexing.depthIndexingByValue)(this._items);\n};\n\nSelectListBox.prototype._updateDisplayItem = function () {\n  this._displayItems = this._filterDisplayItems(this._preDisplayItems);\n\n  this._updateDisplayItemIndex();\n\n  this.$content.addStyle({\n    'height': this._displayItems.length * this.itemHeight / 14 + 'em'\n  });\n};\n\nSelectListBox.prototype.focus = function () {\n  if (this.enableSearch) this.$searchInput.focus();\n};\n\nSelectListBox.prototype.footerMinWidth = 0;\n\nSelectListBox.prototype._updateItems = function () {\n  var _this2 = this;\n\n  this._hasIcon = this._items.some(function hasIcon(it) {\n    var res = !!it.icon;\n\n    if (!res && it.items) {\n      res = it.items.some(hasIcon);\n    }\n\n    return res;\n  });\n\n  if (this._hasIcon) {\n    this.itemHeight = this.itemHeightMode[1];\n  } else {\n    this.itemHeight = this.itemHeightMode[0];\n  }\n\n  this._preDisplayItems = this._itemsToNodeList(this._items);\n  this._searchCache = {};\n  var estimateSize = (0, _SelectList.measureListSize)(this._itemNodeList);\n  this._estimateSize = estimateSize;\n  this._estimateWidth = estimateSize.width;\n  this._estimateDescWidth = estimateSize.descWidth;\n\n  if (this._hasIcon) {\n    this._estimateWidth += 32;\n    this.addClass('as-has-icon');\n  } else {\n    this.removeClass('as-has-icon');\n  }\n\n  this.addStyle('--select-list-estimate-width', Math.max(this.footerMinWidth, this._estimateWidth) / 14 + 'em');\n  this.addStyle('--select-list-desc-width', this._estimateDescWidth / 14 + 'em');\n\n  this._updateDisplayItem();\n\n  this.idx2key = [];\n\n  var makeSearchItem = function makeSearchItem(it) {\n    var res = {\n      value: _this2.idx2key.length\n    };\n    var valueKey;\n    res.text = it.text + '';\n    if (it.desc) res.text += it.desc;\n    valueKey = (0, _utils.keyStringOf)(it.value);\n    it.valueKey = valueKey;\n\n    _this2.idx2key.push(valueKey);\n\n    if (it.items && it.items.length > 0 && it.items.map) {\n      res.items = it.items.map(makeSearchItem);\n    }\n\n    return res;\n  };\n\n  this.searchingItems = this._items.map(makeSearchItem);\n  this.key2idx = this.idx2key.reduce(function (ac, cr, i) {\n    ac[cr] = i;\n    return ac;\n  }, {});\n  this.searchMaster.transfer(this.searchingItems);\n};\n/***\r\n *\r\n * @param value\r\n * @returns {{idx: number, item:{text:string, value:number|string}}[]}\r\n */\n\n\nSelectListBox.prototype.findDisplayItemsByValue = function (value) {\n  return (this._displayItemHolderByValue[value] || []).slice();\n};\n\nSelectListBox.prototype._implicit = function (values) {\n  if (!(values instanceof Array)) {\n    if (values === null || values === undefined) values = [];else values = [values];\n  }\n\n  return values.reduce(function (ac, cr) {\n    if (!ac.dict[cr]) {\n      ac.dict[cr] = true;\n      ac.result.push(cr);\n    }\n\n    return ac;\n  }, {\n    result: [],\n    dict: {}\n  }).result;\n};\n\nSelectListBox.prototype._explicit = function (values) {\n  if (this.strictValue) {\n    return values.filter(function (value) {\n      return !!this._itemNodeHolderByValue[value];\n    }.bind(this));\n  } else {\n    return values.slice();\n  }\n};\n/***\r\n *\r\n * @param value\r\n * @returns {{idx: number, item:{text:string, value:number|string}}[]}\r\n */\n\n\nSelectListBox.prototype.findItemsByValue = function (value) {\n  return (this._itemNodeHolderByValue[value] || []).slice();\n};\n\nSelectListBox.property = {};\n/***\r\n *\r\n * @type {SelectListBox|{}}\r\n */\n\nSelectListBox.property.items = {\n  set: function set(items) {\n    items = items || [];\n    if (!(items instanceof Array)) items = [];\n    items = (0, _utils.copySelectionItemArray)(items, {\n      removeNoView: true\n    });\n    this._items = items;\n    this._itemNodeList = this._itemsToNodeList(this._items);\n\n    this._updateItemNodeIndex();\n\n    this._updateItems();\n\n    this.viewListAt(0);\n  },\n  get: function get() {\n    return this._items;\n  }\n};\nSelectListBox.property.values = {\n  set: function set(values) {\n    values = this._implicit(values);\n    this._values = values;\n    this._valueDict = values.reduce(function (ac, cr) {\n      ac[cr + ''] = true;\n      return ac;\n    }, {});\n\n    this._updateDisplayItem();\n\n    this.viewListAtCurrentScrollTop();\n    if (this._pageOffsets[this.preLoadN] > this._pageOffsets[0]) this._updateSelectedItem();\n  },\n  get: function get() {\n    return this._explicit(this._values);\n  }\n};\nSelectListBox.property.strictValue = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-strict-value');\n    } else {\n      this.removeClass('as-strict-value');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-strict-value');\n  }\n};\nSelectListBox.property.displayValue = {\n  set: function set(value) {\n    this._displayValue = value;\n    this._displayItems = this._filterDisplayItems(this._preDisplayItems);\n\n    this._updateItemNodeIndex();\n\n    if (value === VALUE_HIDDEN) {\n      this.addClass('as-value-hidden');\n    } else {\n      this.removeClass('as-value-hidden');\n    }\n  },\n  get: function get() {\n    return this._displayValue;\n  }\n};\nSelectListBox.property.enableSearch = {\n  set: function set(value) {\n    if (value) this.addClass('as-enable-search');else this.removeClass('as-enable-search');\n  },\n  get: function get() {\n    return this.hasClass('as-enable-search');\n  }\n};\n/***\r\n *\r\n * @type {SelectListBox|{}}\r\n */\n\nSelectListBox.eventHandler = {};\n/*\r\n*\r\n* @param {MouseEvent} event\r\n*/\n\nSelectListBox.eventHandler.click = function (event) {\n  if (event.target === this) this.notifyPressOut();\n};\n/***\r\n * @this SelectListBox\r\n */\n\n\nSelectListBox.eventHandler.searchModify = function () {\n  var _this3 = this;\n\n  var text = this.$searchInput.value;\n  var searchSession = Math.random() + '';\n  this._searchSession = searchSession;\n  this.searchItemByText(text).then(function (searchedItems) {\n    if (searchSession !== _this3._searchSession) return;\n    _this3._preDisplayItems = _this3._itemsToNodeList(searchedItems);\n    _this3._displayItems = _this3._filterDisplayItems(_this3._preDisplayItems);\n\n    _this3.$content.addStyle({\n      'height': _this3._displayItems.length * _this3.itemHeight / 14 + 'em'\n    });\n\n    _this3._updateItemNodeIndex();\n\n    _this3.viewListAt(0);\n\n    _this3.$listScroller.scrollTop = 0;\n\n    _this3.updatePosition();\n  });\n};\n\nSelectListBox.eventHandler.scroll = function () {\n  var itemHeight = this.itemHeight * $(document.body).getFontSize() / 14;\n  var scrollerBound = this.$listScroller.getBoundingClientRect();\n\n  var topIdx = this._findFirstPageIdx();\n\n  if (!this.$listPages[topIdx]) return;\n  var screenSize = (0, _Dom.getScreenSize)();\n  var maxItem = Math.ceil(Math.max(window.screen.height, screenSize.height) / itemHeight);\n  var topBound = this.$listPages[topIdx].getBoundingClientRect();\n\n  var botIdx = this._findLastPageIdx();\n\n  if (!this.$listPages[botIdx]) return;\n  var botBound;\n  botBound = this.$listPages[botIdx].getBoundingClientRect();\n\n  if (topBound.top > scrollerBound.top || topBound.bottom < scrollerBound.bottom) {\n    this.viewListAt(Math.floor(this.$listScroller.scrollTop / itemHeight));\n    return;\n  }\n\n  if (this._pageOffsets[topIdx] > 0) {\n    if (topBound.top + this.toLoadNextY > scrollerBound.top) {\n      this._pageOffsets.unshift(this._pageOffsets.pop());\n\n      this.$listPages.unshift(this.$listPages.pop());\n      this._pageOffsets[topIdx] = Math.max(0, this._pageOffsets[topIdx + 1] - maxItem);\n\n      this._requireItem(this.$listPages[topIdx], this._pageOffsets[topIdx + 1] - this._pageOffsets[topIdx]);\n\n      this._assignItems(this.$listPages[topIdx], this._pageOffsets[topIdx]);\n\n      this._updateSelectedItem();\n\n      this.$listPages[topIdx].addStyle('top', this._pageOffsets[topIdx] * itemHeight + 'px');\n    }\n  }\n\n  if (this._pageOffsets[botIdx + 1] < this._displayItems.length) {\n    if (botBound.bottom - this.toLoadNextY < scrollerBound.bottom) {\n      this._pageOffsets.push(this._pageOffsets.shift());\n\n      this.$listPages.push(this.$listPages.shift());\n      this._pageOffsets[botIdx + 1] = Math.min(this._displayItems.length, this._pageOffsets[botIdx] + maxItem);\n      this.$listPages[botIdx].addStyle('top', this._pageOffsets[botIdx] * itemHeight + 'px');\n\n      this._requireItem(this.$listPages[botIdx], this._pageOffsets[botIdx + 1] - this._pageOffsets[botIdx]);\n\n      this._assignItems(this.$listPages[botIdx], this._pageOffsets[botIdx]);\n\n      this._updateSelectedItem();\n    }\n  }\n};\n\n_ACore[\"default\"].install(SelectListBox);\n\nvar _default = SelectListBox;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/SelectListBox.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/SelectListItem.js":
/*!*******************************************************!*\
  !*** ./node_modules/absol-acomp/js/SelectListItem.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\nexports.getDescriptionOfListItem = getDescriptionOfListItem;\nexports.getTextOfListItem = getTextOfListItem;\nexports.getValueOfListItem = getValueOfListItem;\n\n__webpack_require__(/*! ../css/selectlist.css */ \"./node_modules/absol-acomp/css/selectlist.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _CheckboxButton = _interopRequireDefault(__webpack_require__(/*! ./CheckboxButton */ \"./node_modules/absol-acomp/js/CheckboxButton.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n *\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction SelectListItem() {\n  this.$text = $('span.absol-selectlist-item-text', this);\n  this.$textValue = this.$text.childNodes[0];\n  this.$descCtn = $('.absol-selectlist-item-desc-container', this);\n  this.$desc = $('span.absol-selectlist-item-desc', this.$descCtn);\n  this.$descValue = this.$desc.childNodes[0];\n  this.$icon = null;\n  this._extendClasses = [];\n  this._extendStyle = {};\n  this._data = \"\";\n  this._level = 0;\n  this._icon = null;\n\n  _OOP[\"default\"].drillProperty(this, this, 'noSelect', 'disabled');\n  /***\r\n   * @type {AbsolConstructDescriptor|null}\r\n   * @name icon\r\n   * @memberOf SelectListItem#\r\n   */\n\n}\n\nSelectListItem.tag = 'SelectListItem'.toLowerCase();\n\nSelectListItem.render = function () {\n  return _({\n    \"class\": 'absol-selectlist-item',\n    child: [{\n      tag: 'span',\n      \"class\": 'absol-selectlist-item-text',\n      child: {\n        text: ''\n      }\n    }, {\n      \"class\": 'absol-selectlist-item-desc-container',\n      child: {\n        tag: 'span',\n        \"class\": 'absol-selectlist-item-desc',\n        child: {\n          text: ''\n        }\n      }\n    }]\n  });\n};\n\nSelectListItem.property = {};\nSelectListItem.property.extendClasses = {\n  set: function set(value) {\n    var i;\n\n    for (i = 0; i < this._extendClasses.length; ++i) {\n      this.removeClass(this._extendClasses[i]);\n    }\n\n    this._extendClasses = [];\n    if (typeof value == 'string') value = value.trim().split(/\\s+/);\n    value = value || [];\n\n    for (i = 0; i < value.length; ++i) {\n      this._extendClasses.push(value[i]);\n\n      this.addClass(value[i]);\n    }\n  },\n  get: function get() {\n    return this._extendClasses;\n  }\n};\nSelectListItem.property.extendStyle = {\n  set: function set(value) {\n    this.removeStyle(this._extendStyle);\n    this._extendStyle = Object.assign({}, value || {});\n    this.addStyle(this._extendStyle);\n  },\n  get: function get() {\n    return this._extendClasses;\n  }\n};\nSelectListItem.property.icon = {\n  /***\r\n   * @this SelectListItem\r\n   * @param icon\r\n   */\n  set: function set(icon) {\n    if (this.$icon) {\n      this.$icon.remove();\n      this.$icon = null;\n    }\n\n    this._icon = icon || null;\n\n    if (this._icon) {\n      this.$icon = _(this._icon);\n      this.$icon.addClass('as-select-list-icon');\n      this.addChildBefore(this.$icon, this.$text);\n    }\n  },\n  get: function get() {\n    return this._icon;\n  }\n};\nSelectListItem.property.data = {\n  set: function set(value) {\n    this._data = value;\n\n    if (typeof value == 'string') {\n      this.$textValue.data = value;\n      this.$descValue.data = '';\n      this.level = 0;\n      this.extendClasses = '';\n      this.extendStyle = {};\n      this.lastInGroup = false;\n      this.isLeaf = false;\n      this.selected = false;\n      this.disabled = false;\n      this.icon = null;\n    } else {\n      this.$textValue.data = value.text || '';\n      this.$descValue.data = value.desc || '';\n      this.level = value.level || 0;\n      this.extendClasses = value.extendClasses;\n      this.extendStyle = value.extendStyle;\n      this.lastInGroup = !!value.lastInGroup;\n      this.isLeaf = !!value.isLeaf;\n      this.selected = !!value.selected;\n      this.disabled = value.disabled || value.noSelect;\n      this.icon = value.icon;\n    }\n  },\n  get: function get() {\n    return this._data;\n  }\n};\nSelectListItem.property.disabled = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-disabled');\n    } else {\n      this.removeClass('as-disabled');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-disabled');\n  }\n};\nSelectListItem.property.value = {\n  get: function get() {\n    return getValueOfListItem(this._data);\n  }\n};\nSelectListItem.property.text = {\n  get: function get() {\n    return getTextOfListItem(this._data);\n  }\n};\nSelectListItem.property.desc = {\n  get: function get() {\n    return getDescriptionOfListItem(this._data);\n  }\n};\nSelectListItem.property.level = {\n  set: function set(value) {\n    value = value || 0;\n    this._level = value;\n    this.addStyle('--level', value);\n  },\n  get: function get() {\n    return this._level;\n  }\n};\nSelectListItem.property.lastInGroup = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-last-in-group');\n    } else {\n      this.removeClass('as-last-in-group');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-last-in-group');\n  }\n};\nSelectListItem.property.isLeaf = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-is-leaf');\n    } else {\n      this.removeClass('as-is-leaf');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-is-leaf');\n  }\n};\nSelectListItem.property.selected = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-selected');\n    } else {\n      this.removeClass('as-selected');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-selected');\n  }\n};\n\n_ACore[\"default\"].install(SelectListItem);\n\nvar _default = SelectListItem;\nexports[\"default\"] = _default;\n\nfunction getTextOfListItem(item) {\n  if (item) {\n    if (item.match) {} else if (item.text && item.text.match) {\n      return item.text;\n    } else return '';\n  } else return '';\n}\n\nfunction getValueOfListItem(item) {\n  if (item) {\n    if (item.match) {\n      return item;\n    } else if (_typeof(item) === \"object\") return item.value;else return item;\n  } else return item;\n}\n\nfunction getDescriptionOfListItem(item) {\n  return item && _typeof(item) == \"object\" ? item.desc : undefined;\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/SelectListItem.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/SelectMenu.js":
/*!***************************************************!*\
  !*** ./node_modules/absol-acomp/js/SelectMenu.js ***!
  \***************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/selectmenu.css */ \"./node_modules/absol-acomp/css/selectmenu.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _EventEmitter = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _search = __webpack_require__(/*! ./list/search */ \"./node_modules/absol-acomp/js/list/search.js\");\n\nvar _SelectList = _interopRequireDefault(__webpack_require__(/*! ./SelectList */ \"./node_modules/absol-acomp/js/SelectList.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/*global absol*/\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n\n_ACore[\"default\"].creator['dropdown-ico'] = function () {\n  return _(['<svg class=\"dropdown\" width=\"100mm\" height=\"100mm\" version=\"1.1\" viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\">', '<g transform=\"translate(0,-197)\">', '<path d=\"m6.3152 218.09a4.5283 4.5283 0 0 0-3.5673 7.3141l43.361 55.641a4.5283 4.5283 0 0 0 7.1421 7e-3l43.496-55.641a4.5283 4.5283 0 0 0-3.5673-7.3216z\" />', '</g>', '</svg>'].join(''));\n};\n\nfunction SelectMenu() {\n  var thisSM = this;\n  this._items = [];\n  this._value = null;\n  this._lastValue = null;\n  this.$holderItem = $('.absol-selectmenu-holder-item', this);\n  this.$anchorCtn = SelectMenu.getAnchorCtn();\n  this.$anchor = _('.absol-selectmenu-anchor.absol-disabled').addTo(this.$anchorCtn);\n  this.$anchorContentCtn = _('.absol-selectmenu-anchor-content-container').addTo(this.$anchor);\n  this.$dropdownBox = _('.absol-selectmenu-dropdown-box').addTo(this.$anchorContentCtn);\n  this.$searchTextInput = _('searchtextinput').addStyle('display', 'none').addTo(this.$dropdownBox);\n  this.$vscroller = _('bscroller').addTo(this.$dropdownBox);\n  this.$selectlist = _('selectlist', this).addTo(this.$vscroller).on('sizechangeasync', this.eventHandler.listSizeChangeAsync).on('valuevisibilityasync', this.eventHandler.listValueVisibility);\n  this.$scrollTrackElts = [];\n  this.$removableTrackElts = [];\n  this._itemsByValue = {};\n  this.$searchTextInput.on('stoptyping', this.eventHandler.searchModify);\n  this._searchCache = {};\n  this.$selectlist.on('pressitem', this.eventHandler.selectlistPressItem, true);\n  this.$selectlist.on('pressitem', function () {\n    thisSM.isFocus = false;\n  }, true);\n  this._lastValue = \"NOTHING_VALUE\";\n  this._resourceReady = true;\n  this.on('mousedown', this.eventHandler.click, true);\n  this.on('blur', this.eventHandler.blur);\n  this.selectListBound = {\n    height: 0,\n    width: 0\n  };\n  this.$attachhook = $('attachhook', this).on('error', this.eventHandler.attached);\n  this.sync = new Promise(function (rs) {\n    $('attachhook', this).once('error', function () {\n      rs();\n    });\n  });\n  this._selectListScrollSession = null;\n  this._itemIdxByValue = null;\n  return this;\n}\n\nSelectMenu.tag = 'selectmenu-old';\n\nSelectMenu.render = function () {\n  return _({\n    \"class\": ['absol-selectmenu'],\n    extendEvent: ['change', 'minwidthchange'],\n    attr: {\n      tabindex: '1'\n    },\n    child: ['.absol-selectmenu-holder-item', {\n      tag: 'button',\n      \"class\": 'absol-selectmenu-btn',\n      child: ['dropdown-ico']\n    }, 'attachhook']\n  });\n};\n\nSelectMenu.optimizeResource = true; // //will remove after SelectMenu completed\n\nSelectMenu.getRenderSpace = function () {\n  if (!SelectMenu.getRenderSpace.warned) {\n    console.warn('SelectMenu.getRenderSpace() will be removed in next version');\n  }\n\n  SelectMenu.getRenderSpace.warned = true;\n\n  if (!SelectMenu.$renderSpace) {\n    SelectMenu.$renderSpace = _('.absol-selectmenu-render-space').addTo(document.body);\n  }\n\n  return SelectMenu.$renderSpace;\n};\n\nSelectMenu.getAnchorCtn = function () {\n  if (!SelectMenu.$anchorCtn) {\n    SelectMenu.$anchorCtn = _('.absol-selectmenu-anchor-container').addTo(document.body);\n  }\n\n  return SelectMenu.$anchorCtn;\n};\n\nSelectMenu.prototype.updateItem = function () {\n  this.$holderItem.clearChild();\n\n  if (this._itemsByValue[this.value]) {\n    var elt = _({\n      tag: 'selectlistitem',\n      props: {\n        data: this._itemsByValue[this.value]\n      }\n    }).addTo(this.$holderItem);\n\n    elt.$descCtn.addStyle('width', this.$selectlist._descWidth + 'px');\n  }\n};\n\nSelectMenu.prototype._dictByValue = function (items) {\n  var dict = {};\n  var item;\n\n  for (var i = 0; i < items.length; ++i) {\n    item = items[i];\n    dict[item.value + ''] = item;\n  }\n\n  return dict;\n};\n\nSelectMenu.prototype.init = function (props) {\n  props = props || {};\n  Object.keys(props).forEach(function (key) {\n    if (props[key] === undefined) delete props[key];\n  });\n\n  if (!('value' in props)) {\n    if (props.items && props.items.length > 0) props.value = typeof props.items[0] == 'string' ? props.items[0] : props.items[0].value;\n  }\n\n  var value = props.value;\n  delete props.value;\n  this[\"super\"](props);\n  this.value = value;\n};\n\nSelectMenu.property = {};\nSelectMenu.property.items = {\n  set: function set(value) {\n    this._searchCache = {};\n    this._itemIdxByValue = null;\n    /**\r\n     * verity data\r\n     */\n\n    if (value) {\n      value.forEach(function (it) {\n        if (it && it.text) {\n          it.text = it.text + '';\n        }\n      });\n    }\n\n    this._items = value;\n    this._itemsByValue = this._dictByValue(value);\n\n    if (!this._itemsByValue[this.value] && value.length > 0) {\n      this.value = value[0].value;\n    } else this.updateItem();\n\n    this.$dropdownBox.removeStyle('min-width');\n    this.selectListBound = this.$selectlist.setItemsAsync(value || []);\n    this.style.setProperty('--select-list-desc-width', this.$selectlist.measuredSize.descWidth + 'px');\n    this._resourceReady = true;\n    this.addStyle('min-width', this.selectListBound.width + 2 + 23 + 'px');\n    this.emit('minwidthchange', {\n      target: this,\n      value: this.selectListBound.width + 2 + 23,\n      type: 'minwidthchange'\n    }, this);\n  },\n  get: function get() {\n    return this._items || [];\n  }\n};\nSelectMenu.property.value = {\n  set: function set(value) {\n    this.$selectlist.value = value;\n    this._lastValue = value;\n    this.updateItem();\n  },\n  get: function get() {\n    return this.$selectlist.value;\n  }\n};\nSelectMenu.property.enableSearch = {\n  set: function set(value) {\n    this._enableSearch = !!value;\n\n    if (value) {\n      this.$searchTextInput.removeStyle('display');\n    } else {\n      this.$searchTextInput.addStyle('display', 'none');\n    }\n  },\n  get: function get() {\n    return !!this._enableSearch;\n  }\n};\n\nSelectMenu.prototype.updateDropdownPostion = function (updateAnchor) {\n  if (!this.isFocus) {\n    this.$anchorContentCtn.removeStyle('left').removeStyle('top');\n    this.$dropdownBox.removeStyle('min-width');\n    return;\n  }\n\n  var bound = this.getBoundingClientRect();\n\n  if (!updateAnchor) {\n    var outBound = _Dom[\"default\"].traceOutBoundingClientRect(this);\n\n    if (!this.isFocus || bound.top > outBound.bottom || bound.bottom < outBound.top) {\n      this.isFocus = false;\n      return;\n    }\n\n    var anchorOutBound = _Dom[\"default\"].traceOutBoundingClientRect(this.$anchor);\n\n    var searchBound = this.$searchTextInput.getBoundingClientRect();\n    var availableTop = bound.top - anchorOutBound.top - (this.enableSearch ? searchBound.height + 8 : 0) - 20;\n    var availableBottom = anchorOutBound.bottom - bound.bottom - (this.enableSearch ? searchBound.height + 8 : 0) - 20;\n\n    if (this.forceDown || availableBottom >= this.selectListBound.height || availableBottom > availableTop) {\n      this.isDropdowUp = false;\n\n      if (this.$dropdownBox.firstChild != this.$searchTextInput) {\n        this.$searchTextInput.selfRemove();\n        this.$dropdownBox.addChildBefore(this.$searchTextInput, this.$vscroller);\n      }\n\n      this.$vscroller.addStyle('max-height', availableBottom + 'px');\n    } else {\n      this.isDropdowUp = true;\n\n      if (this.$dropdownBox.lastChild !== this.$searchTextInput) {\n        this.$searchTextInput.selfRemove();\n        this.$dropdownBox.addChild(this.$searchTextInput);\n      }\n\n      this.$vscroller.addStyle('max-height', availableTop + 'px');\n    }\n\n    this.$dropdownBox.addStyle('min-width', bound.width + 'px');\n  }\n\n  var anchorBound = this.$anchor.getBoundingClientRect();\n\n  if (this.isDropdowUp) {\n    this.$anchorContentCtn.addStyle({\n      left: bound.left - anchorBound.left + 'px',\n      top: bound.top - anchorBound.top - this.$dropdownBox.clientHeight - 1 + 'px'\n    });\n  } else {\n    this.$anchorContentCtn.addStyle({\n      left: bound.left - anchorBound.left + 'px',\n      top: bound.bottom - anchorBound.top + 'px'\n    });\n  }\n};\n\nSelectMenu.prototype.scrollToSelectedItem = function () {\n  var self = this;\n  setTimeout(function () {\n    if (self.$selectlist.$selectedItem) {\n      var fistChildBound = self.$selectlist.childNodes[1].getBoundingClientRect();\n      var lastChildBound = self.$selectlist.lastChild.getBoundingClientRect();\n      var listBound = {\n        top: fistChildBound.top,\n        height: lastChildBound.bottom - fistChildBound.top,\n        bottom: lastChildBound.bottom\n      };\n      var itemBound = self.$selectlist.$selectedItem.getBoundingClientRect();\n\n      if (self.isDropdowUp) {\n        var scrollBound = self.$vscroller.getBoundingClientRect();\n        self.$vscroller.scrollTop = Math.max(itemBound.bottom - scrollBound.height - listBound.top, 0);\n      } else {\n        self.$vscroller.scrollTop = itemBound.top - listBound.top;\n      }\n    }\n  }.bind(this), 3);\n};\n\nSelectMenu.prototype.startTrackScroll = function () {\n  var trackElt = this.parentElement;\n\n  while (trackElt) {\n    if (trackElt.addEventListener) {\n      trackElt.addEventListener('scroll', this.eventHandler.scrollParent, false);\n    } else {\n      trackElt.attachEvent('onscroll', this.eventHandler.scrollParent, false);\n    }\n\n    this.$scrollTrackElts.push(trackElt);\n    trackElt = trackElt.parentElement;\n  }\n\n  if (document.addEventListener) {\n    document.addEventListener('scroll', this.eventHandler.scrollParent, false);\n    document.addEventListener('wheel', this.eventHandler.wheelDocument, true);\n  } else {\n    document.attachEvent('onscroll', this.eventHandler.scrollParent, false);\n  }\n\n  this.$scrollTrackElts.push(document);\n};\n\nSelectMenu.prototype.stopTrackScroll = function () {\n  var trackElt;\n\n  for (var i = 0; i < this.$scrollTrackElts.length; ++i) {\n    trackElt = this.$scrollTrackElts[i];\n\n    if (trackElt.removeEventListener) {\n      trackElt.removeEventListener('scroll', this.eventHandler.scrollParent, false);\n    } else {\n      trackElt.dettachEvent('onscroll', this.eventHandler.scrollParent, false);\n    }\n  }\n\n  this.$scrollTrackElts = [];\n};\n\nSelectMenu.prototype.startListenRemovable = function () {\n  var removableElt = this.parentElement;\n\n  while (removableElt) {\n    if (removableElt.isSupportedEvent && removableElt.isSupportedEvent('remove')) {\n      removableElt.on('remove', this.eventHandler.removeParent);\n    }\n\n    removableElt = removableElt.parentElement;\n  }\n};\n\nSelectMenu.prototype.stopListenRemovable = function () {\n  var removableElt;\n\n  while (this.$removableTrackElts.length > 0) {\n    removableElt = this.$removableTrackElts.pop();\n    removableElt.off('remove', this.eventHandler.removeParent);\n  }\n};\n\nSelectMenu.prototype._releaseResource = function () {\n  this.$selectlist.items = [];\n};\n\nSelectMenu.prototype._requestResource = function () {\n  this.$selectlist.items = this._items || [];\n};\n\nSelectMenu.property.isFocus = {\n  set: function set(value) {\n    if (value && (this.disabled || this.readOnly)) return;\n    var self = this;\n    value = !!value;\n    if (value == this.isFocus) return;\n    this._isFocus = value;\n\n    if (value) {\n      this.startTrackScroll();\n      this.selectListScrollToken = null; //force scroll\n\n      var isAttached = false;\n      setTimeout(function () {\n        if (isAttached) return;\n        $('body').on('mousedown', self.eventHandler.bodyClick);\n        isAttached = true;\n      }, 1000);\n      $('body').once('click', function () {\n        setTimeout(function () {\n          if (isAttached) return;\n          $('body').on('mousedown', self.eventHandler.bodyClick);\n          isAttached = true;\n        }, 10);\n      });\n\n      if (this.enableSearch) {\n        setTimeout(function () {\n          self.$searchTextInput.focus();\n        }, 50);\n      }\n\n      this.updateDropdownPostion();\n      this.scrollToSelectedItem();\n      this.$anchor.removeClass('absol-disabled');\n    } else {\n      this.$anchor.addClass('absol-disabled');\n      this.stopTrackScroll();\n      $('body').off('mousedown', this.eventHandler.bodyClick);\n      setTimeout(function () {\n        if (self.$searchTextInput.value != 0) {\n          self.$searchTextInput.value = '';\n          self.$selectlist.items = self.items;\n          self._resourceReady = true;\n          self.$selectlist.removeClass('as-searching');\n        }\n      }, 100);\n      this.updateItem();\n    }\n  },\n  get: function get() {\n    return !!this._isFocus;\n  }\n};\nSelectMenu.property.disabled = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('disabled');\n    } else {\n      this.removeClass('disabled');\n    }\n  },\n  get: function get() {\n    return this.hasClass('disabled');\n  }\n};\nSelectMenu.property.hidden = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('hidden');\n    } else {\n      this.removeClass('hidden');\n    }\n  },\n  get: function get() {\n    return this.addClass('hidden');\n  }\n};\nSelectMenu.property.selectedIndex = {\n  get: function get() {\n    if (!this._itemIdxByValue) {\n      this._itemIdxByValue = {};\n\n      for (var i = 0; i < this._items.length; ++i) {\n        this._itemIdxByValue[this._items[i].value] = i;\n      }\n    }\n\n    var idx = this._itemIdxByValue[this._value];\n    return idx >= 0 ? idx : -1;\n  }\n};\n/**\r\n * @type {SelectMenu}\r\n */\n\nSelectMenu.eventHandler = {};\n\nSelectMenu.eventHandler.attached = function () {\n  if (this._updateInterval) return;\n  if (!this.$anchor.parentNode) this.$anchor.addTo(this.$anchorCtn);\n  this.$attachhook.updateSize = this.$attachhook.updateSize || this.updateDropdownPostion.bind(this);\n\n  _Dom[\"default\"].addToResizeSystem(this.$attachhook);\n\n  this.stopListenRemovable();\n  this.startListenRemovable();\n\n  if (!this._resourceReady) {\n    this._requestResource();\n\n    this._resourceReady = true;\n  }\n\n  this._updateInterval = setInterval(function () {\n    if (!this.isDescendantOf(document.body)) {\n      clearInterval(this._updateInterval);\n      this._updateInterval = undefined;\n      this.$anchor.selfRemove();\n      this.stopTrackScroll();\n      this.stopListenRemovable();\n      this.eventHandler.removeParent();\n    }\n  }.bind(this), 10000);\n};\n\nSelectMenu.eventHandler.scrollParent = function (event) {\n  var self = this;\n\n  if (this._scrollFrameout > 0) {\n    this._scrollFrameout = 10;\n    return;\n  }\n\n  this._scrollFrameout = this._scrollFrameout || 10;\n\n  function update() {\n    self.updateDropdownPostion(false);\n    self.scrollToSelectedItem();\n    self._scrollFrameout--;\n    if (self._scrollFrameout > 0) requestAnimationFrame(update);\n  }\n\n  update();\n};\n\nSelectMenu.eventHandler.removeParent = function (event) {\n  this._releaseResource();\n\n  this._resourceReady = false;\n};\n\nSelectMenu.eventHandler.click = function (event) {\n  if (_EventEmitter[\"default\"].isMouseRight(event)) return;\n  this.isFocus = !this.isFocus;\n};\n\nSelectMenu.eventHandler.bodyClick = function (event) {\n  if (!_EventEmitter[\"default\"].hitElement(this, event) && !_EventEmitter[\"default\"].hitElement(this.$anchor, event)) {\n    setTimeout(function () {\n      this.isFocus = false;\n    }.bind(this), 5);\n  }\n};\n\nSelectMenu.eventHandler.selectlistPressItem = function (event) {\n  this.updateItem();\n\n  if (this._lastValue != this.value) {\n    event.lastValue = this._lastValue;\n    event.value = this.value;\n    setTimeout(function () {\n      this.emit('change', event, this);\n    }.bind(this), 1);\n    this._lastValue = this.value;\n  }\n};\n\nSelectMenu.eventHandler.searchModify = function (event) {\n  var filterText = this.$searchTextInput.value.replace(/((\\&nbsp)|(\\s))+/g, ' ').trim();\n\n  if (filterText.length == 0) {\n    this._resourceReady = true;\n    this.$selectlist.items = this.items;\n    this.scrollToSelectedItem();\n    this.$selectlist.removeClass('as-searching');\n  } else {\n    this.$selectlist.addClass('as-searching');\n    var view = [];\n\n    if (!this._searchCache[filterText]) {\n      if (this._items.length > 0 && !this._items[0].__nvnText__) {\n        (0, _search.prepareSearchForList)(this._items);\n      }\n\n      view = (0, _search.searchListByText)(filterText, this._items);\n      this._searchCache[filterText] = view;\n    } else {\n      view = this._searchCache[filterText];\n    }\n\n    this.$selectlist.items = view;\n    this._resourceReady = true;\n    this.$vscroller.scrollTop = 0;\n  }\n\n  this.selectListBound = this.$selectlist.getBoundingClientRect();\n  this.updateDropdownPostion(true);\n};\n\nSelectMenu.eventHandler.listSizeChangeAsync = function () {\n  this.updateDropdownPostion();\n};\n\nSelectMenu.eventHandler.listValueVisibility = function (event) {\n  if (!this.isFocus) return;\n  if (this._selectListScrollSession == event.session) return;\n  this._selectListScrollSession = event.session;\n  this.scrollToSelectedItem();\n};\n\n_ACore[\"default\"].install(SelectMenu);\n\nvar _default = SelectMenu;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/SelectMenu.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/SelectMenu2.js":
/*!****************************************************!*\
  !*** ./node_modules/absol-acomp/js/SelectMenu2.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/selectmenu.css */ \"./node_modules/absol-acomp/css/selectmenu.css\");\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _EventEmitter = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nvar _Dom = _interopRequireWildcard(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n_ACore[\"default\"].creator['dropdown-ico'] = function () {\n  return (0, _ACore._)(['<svg class=\"dropdown\" width=\"100mm\" height=\"100mm\" version=\"1.1\" viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\">', '<g transform=\"translate(0,-197)\">', '<path d=\"m6.3152 218.09a4.5283 4.5283 0 0 0-3.5673 7.3141l43.361 55.641a4.5283 4.5283 0 0 0 7.1421 7e-3l43.496-55.641a4.5283 4.5283 0 0 0-3.5673-7.3216z\" />', '</g>', '</svg>'].join(''));\n};\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\n\nfunction SelectMenu() {\n  var _this = this;\n\n  this._value = null;\n  this._lastValue = null;\n  this.$holderItem = (0, _ACore.$)('.absol-selectmenu-holder-item', this);\n  this.$viewItem = (0, _ACore.$)('.absol-selectmenu-holder-item selectlistitem', this);\n  /***\r\n   *\r\n   * @type {SelectListBox}\r\n   */\n\n  this.$selectlistBox = (0, _ACore._)({\n    tag: 'selectlistbox',\n    props: {\n      anchor: [1, 6, 2, 5],\n      strictValue: true\n    },\n    on: {\n      preupdateposition: this.eventHandler.preUpdateListPosition\n    }\n  });\n\n  var checkView = function checkView() {\n    if (_this.isDescendantOf(document.body)) {\n      setTimeout(checkView, 10000);\n    } else {\n      if (_this.$selectlistBox.searchMaster) _this.$selectlistBox.searchMaster.destroy();\n    }\n  };\n\n  setTimeout(checkView, 30000);\n  this.$selectlistBox.on('pressitem', this.eventHandler.selectListBoxPressItem);\n  this.$selectlistBox.followTarget = this;\n\n  _OOP[\"default\"].drillProperty(this, this.$selectlistBox, 'enableSearch');\n\n  _OOP[\"default\"].drillProperty(this, this, 'selectedvalue', 'value');\n\n  this.strictValue = true;\n  this._lastValue = \"NOTHING_VALUE\";\n  this._isFocus = false;\n  this.isFocus = false;\n  this.on('mousedown', this.eventHandler.click, true);\n  /***\r\n   * @name items\r\n   * @type {[]}\r\n   * @memberOf SelectMenu#\r\n   */\n}\n\nSelectMenu.tag = 'selectmenu';\n\nSelectMenu.render = function () {\n  return (0, _ACore._)({\n    \"class\": ['absol-selectmenu', 'as-select-menu'],\n    extendEvent: ['change'],\n    attr: {\n      tabindex: '1'\n    },\n    child: [{\n      \"class\": 'absol-selectmenu-holder-item',\n      child: 'selectlistitem'\n    }, {\n      tag: 'button',\n      \"class\": 'absol-selectmenu-btn',\n      child: ['dropdown-ico']\n    }]\n  });\n};\n\nSelectMenu.prototype.init = function (props) {\n  props = props || {};\n  Object.keys(props).forEach(function (key) {\n    if (props[key] === undefined) delete props[key];\n  });\n\n  if ('selectedvalue' in props) {\n    props.value = props.selectedvalue;\n  }\n\n  if (!('value' in props)) {\n    if (props.items && props.items.length > 0) props.value = typeof props.items[0] == 'string' ? props.items[0] : props.items[0].value;\n  }\n\n  var value = props.value;\n  delete props.value;\n  this[\"super\"](props);\n  this.value = value;\n};\n\nSelectMenu.prototype.updateItem = function () {\n  var value = this._explicit(this._value);\n\n  var selectedItems = this.$selectlistBox.findDisplayItemsByValue(value);\n\n  if (selectedItems.length >= 1) {\n    this.$viewItem.data = selectedItems[0].item;\n  } else {\n    this.$viewItem.data = {\n      text: '',\n      value: null\n    };\n  }\n};\n\nSelectMenu.prototype.findItemsByValue = function (value) {\n  return this.$selectlistBox.findItemsByValue(value);\n};\n\nSelectMenu.prototype._explicit = function (value) {\n  var items = this.$selectlistBox.findItemsByValue(value);\n\n  if (items.length > 0 || !this.strictValue || this.items.length === 0) {\n    return value;\n  } else {\n    return this.items[0].value;\n  }\n};\n\nSelectMenu.property = {};\nSelectMenu.property.items = {\n  set: function set(items) {\n    items = items || [];\n    this.$selectlistBox.items = items;\n    this.addStyle('--select-list-estimate-width', this.$selectlistBox._estimateWidth / 14 + 'em');\n    this.addStyle('--select-list-desc-width', this.$selectlistBox._estimateDescWidth / 14 + 'em');\n    this.updateItem();\n  },\n  get: function get() {\n    return this.$selectlistBox.items;\n  }\n};\nSelectMenu.property.value = {\n  set: function set(value) {\n    this.$selectlistBox.values = [value];\n    this._lastValue = value;\n    this._value = value;\n    this.updateItem();\n  },\n  get: function get() {\n    return this._explicit(this._value);\n  }\n};\n/***\r\n *\r\n * @type {SelectMenu|{}}\r\n */\n\nSelectMenu.property.isFocus = {\n  set: function set(value) {\n    if (value && (this.disabled || this.readOnly)) return;\n    var thisSM = this;\n    if (!this.items || this.items.length === 0) value = false; //prevent focus\n\n    if (this._isFocus === value) return;\n    this._isFocus = !!value;\n\n    if (this._isFocus) {\n      document.body.appendChild(this.$selectlistBox);\n      this.$selectlistBox.domSignal.$attachhook.emit('attached');\n      var bound = this.getBoundingClientRect();\n      this.$selectlistBox.addStyle('min-width', bound.width + 'px');\n      this.$selectlistBox.refollow();\n      this.$selectlistBox.updatePosition();\n      setTimeout(function () {\n        thisSM.$selectlistBox.focus();\n        document.addEventListener('click', thisSM.eventHandler.bodyClick);\n      }, 100);\n      this.$selectlistBox.viewListAtFirstSelected();\n    } else {\n      document.removeEventListener('click', thisSM.eventHandler.bodyClick);\n      this.$selectlistBox.selfRemove();\n      this.$selectlistBox.unfollow();\n      this.$selectlistBox.resetSearchState();\n    }\n  },\n  get: function get() {\n    return this._isFocus;\n  }\n};\nSelectMenu.property.disabled = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-disabled');\n    } else {\n      this.removeClass('as-disabled');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-disabled');\n  }\n};\nSelectMenu.property.hidden = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-hidden');\n    } else {\n      this.removeClass('as-hidden');\n    }\n  },\n  get: function get() {\n    return this.addClass('as-hidden');\n  }\n};\nSelectMenu.property.selectedIndex = {\n  get: function get() {\n    var selectedItems = this.$selectlistBox.findItemsByValue(this._value);\n\n    if (selectedItems.length > 0) {\n      return selectedItems[0].idx;\n    }\n\n    return -1;\n  }\n};\nSelectMenu.property.strictValue = {\n  set: function set(value) {\n    if (value) {\n      this.attr('data-strict-value', null);\n    } else {\n      this.attr('data-strict-value', 'false');\n    }\n\n    this.updateItem();\n  },\n  get: function get() {\n    return !this.attr('data-strict-value') || this.attr('data-strict-value') !== 'false' && this.attr('data-strict-value') !== '0';\n  }\n};\nSelectMenu.property.readOnly = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-read-only');\n    } else {\n      this.removeClass('as-read-only');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-read-only');\n  }\n};\n/**\r\n * @type {SelectMenu|{}}\r\n */\n\nSelectMenu.eventHandler = {};\n\nSelectMenu.eventHandler.click = function (event) {\n  if (this.readOnly) return;\n  if (_EventEmitter[\"default\"].isMouseRight(event)) return;\n  if (_EventEmitter[\"default\"].hitElement(this.$selectlistBox, event)) return;\n  this.isFocus = !this.isFocus;\n};\n\nSelectMenu.eventHandler.bodyClick = function (event) {\n  if (!_EventEmitter[\"default\"].hitElement(this, event) && !_EventEmitter[\"default\"].hitElement(this.$selectlistBox, event)) {\n    setTimeout(function () {\n      this.isFocus = false;\n    }.bind(this), 5);\n  }\n};\n\nSelectMenu.eventHandler.selectListBoxPressItem = function (event) {\n  this._value = event.data.value;\n  this.$selectlistBox.values = [this._value];\n  this.updateItem();\n\n  if (this._lastValue !== this.value) {\n    event.lastValue = this._lastValue;\n    event.value = this.value;\n    setTimeout(function () {\n      this.emit('change', event, this);\n    }.bind(this), 1);\n    this._lastValue = this.value;\n  }\n\n  setTimeout(function () {\n    this.isFocus = false;\n  }.bind(this), 50);\n};\n\nSelectMenu.eventHandler.preUpdateListPosition = function () {\n  var bound = this.getBoundingClientRect();\n  var screenSize = (0, _Dom.getScreenSize)();\n  var availableTop = bound.top - 5;\n  var availableBot = screenSize.height - 5 - bound.bottom;\n  this.$selectlistBox.addStyle('--max-height', Math.max(availableBot, availableTop) + 'px');\n  var outBound = (0, _Dom.traceOutBoundingClientRect)(this);\n\n  if (bound.bottom < outBound.top || bound.top > outBound.bottom || bound.right < outBound.left || bound.left > outBound.right) {\n    this.isFocus = false;\n  }\n};\n\n_ACore[\"default\"].install(SelectMenu);\n\nvar _default = SelectMenu;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/SelectMenu2.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/SelectTable.js":
/*!****************************************************!*\
  !*** ./node_modules/absol-acomp/js/SelectTable.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/selecttable.css */ \"./node_modules/absol-acomp/css/selecttable.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _EventEmitter = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nvar _stringMatching = __webpack_require__(/*! absol/src/String/stringMatching */ \"./node_modules/absol/src/String/stringMatching.js\");\n\nvar _stringFormat = __webpack_require__(/*! absol/src/String/stringFormat */ \"./node_modules/absol/src/String/stringFormat.js\");\n\nvar _Svg = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Svg */ \"./node_modules/absol/src/HTML5/Svg.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\n__webpack_require__(/*! ./BScroller */ \"./node_modules/absol-acomp/js/BScroller.js\");\n\nvar _Searcher = _interopRequireDefault(__webpack_require__(/*! ./Searcher */ \"./node_modules/absol-acomp/js/Searcher.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar privateDom = new _Dom[\"default\"]().install(_ACore[\"default\"]);\nvar $ = privateDom.$;\nvar _ = privateDom._;\n\nfunction SelectTable() {\n  var thisST = this;\n  this.$attachhook = _('attachhook').addTo(this);\n  this.sync = new Promise(function (rs) {\n    thisST.$attachhook.on('error', rs);\n  });\n  this.$buttonsContainer = $('.absol-select-table-buttons-container', this);\n  this.$searchContainer = $('.absol-select-table-searchtextinput-container', this);\n  this.$nonselectedItemsContainer = $('.absol-select-table-nonselected-items-container', this);\n  this.$selectedItemsContainer = $('.absol-select-table-selected-items-container', this);\n  this.$nonselectedSearchItemsContainer = $('.absol-select-table-nonselected-search-items-container', this);\n  this.$selectedSearchItemsContainer = $('.absol-select-table-selected-search-items-container', this);\n  this.$removeAllBtn = $('button.remove-all', this).on('click', this.eventHandler.removeAllBtnClick);\n  this.$addAllBtn = $('button.add-all', this).on('click', this.eventHandler.addAllBtnClick);\n  this.$vscrollerSelected = $('bscroller#selected', this);\n  this.$vscrollerNonselected = $('bscroller#nonselected', this);\n  this.$body = $('.absol-select-table-body', this);\n  this.$header = $('.absol-select-table-header', this);\n  /***\r\n   *\r\n   * @type {SearchTextInput}\r\n   */\n\n  this.$searchTextInput = $('searchtextinput', this).on('stoptyping', this.eventHandler.searchTextInputModify);\n\n  this.$addAllBtn.updateSize = function () {\n    thisST.updateScroller && thisST.updateScroller();\n  };\n\n  _Dom[\"default\"].addToResizeSystem(this.$addAllBtn);\n\n  return this;\n}\n\nSelectTable.tag = 'SelectTable'.toLowerCase();\n\nSelectTable.render = function () {\n  return _({\n    \"class\": 'absol-select-table',\n    extendEvent: ['change', 'addall', 'removeall', 'add', 'remove'],\n    child: [{\n      \"class\": 'absol-select-table-header',\n      child: [{\n        \"class\": 'absol-select-table-searchtextinput-container',\n        child: 'searchtextinput'\n      }, {\n        \"class\": 'absol-select-table-buttons-container',\n        child: [{\n          tag: 'button',\n          \"class\": 'add-all',\n          props: {\n            innerHTML: 'Add All'\n          }\n        }, {\n          tag: 'button',\n          \"class\": 'remove-all',\n          props: {\n            innerHTML: 'Remove All'\n          }\n        }]\n      }]\n    }, {\n      \"class\": 'absol-select-table-body',\n      child: [{\n        tag: 'bscroller',\n        attr: {\n          id: 'nonselected'\n        },\n        \"class\": ['absol-select-table-items-scroller'],\n        child: {\n          child: ['.absol-select-table-nonselected-items-container', '.absol-select-table-nonselected-search-items-container']\n        }\n      }, {\n        tag: 'bscroller',\n        attr: {\n          id: 'selected'\n        },\n        \"class\": ['absol-select-table-items-scroller'],\n        child: {\n          child: ['.absol-select-table-selected-items-container', '.absol-select-table-selected-search-items-container']\n        }\n      }]\n    }]\n  });\n};\n\nSelectTable.prototype.updateButtonsContainerSize = function () {\n  var rootBound = this.$buttonsContainer.getBoundingClientRect();\n  var containBound = this.$buttonsContainer.getBoundingRecursiveRect();\n  var fontSize = this.getFontSize();\n  this.$buttonsContainer.addStyle('width', (containBound.width + 1) / fontSize + 'em');\n  this.$searchContainer.addStyle('right', (containBound.width + 5) / fontSize + 'em');\n};\n\nSelectTable.prototype.addAll = function () {\n  Array.apply(null, this.$nonselectedItemsContainer.childNodes).forEach(function (e) {\n    e.addTo(this.$selectedItemsContainer);\n  }.bind(this));\n  this.requestSort();\n};\n\nSelectTable.prototype.removeAll = function () {\n  Array.apply(null, this.$selectedItemsContainer.childNodes).forEach(function (e) {\n    e.addTo(this.$nonselectedItemsContainer);\n  }.bind(this));\n  this.requestSort();\n};\n\nSelectTable.prototype.updateScroller = function () {\n  var update = function () {\n    if (this.style.height) {\n      var height = parseFloat(this.getComputedStyleValue('height').replace('px', ''));\n      var headerHeight = parseFloat(this.$header.getComputedStyleValue('height').replace('px', ''));\n      var bodyMargin = parseFloat(this.$body.getComputedStyleValue('margin-top').replace('px', ''));\n      var borderWidth = 1;\n      var availableHeight = height - headerHeight - bodyMargin * 2 - borderWidth * 2;\n      this.$vscrollerNonselected.addStyle('max-height', availableHeight + 'px');\n      this.$vscrollerSelected.addStyle('max-height', availableHeight + 'px');\n    }\n  }.bind(this);\n\n  setTimeout(update, 1);\n};\n\nSelectTable.prototype.getAllItemElement = function () {\n  var selectedItemElements = Array.apply(null, this.$selectedItemsContainer.childNodes);\n  var nonselectedItemElements = Array.apply(null, this.$nonselectedItemsContainer.childNodes);\n  return selectedItemElements.concat(nonselectedItemElements);\n};\n\nSelectTable.prototype.init = function (props) {\n  this[\"super\"](props);\n  this.sync = this.sync.then(this.updateButtonsContainerSize.bind(this));\n};\n\nSelectTable.eventHandler = {};\n\nSelectTable.eventHandler.addAllBtnClick = function (event) {\n  this.addAll();\n\n  if (this.searching) {\n    this.eventHandler.searchTextInputModify(event);\n  }\n\n  this.emit('addall', _EventEmitter[\"default\"].copyEvent(event, {}), this);\n  this.updateScroller();\n};\n\nSelectTable.eventHandler.removeAllBtnClick = function (event) {\n  this.removeAll();\n\n  if (this.searching) {\n    this.eventHandler.searchTextInputModify(event);\n  }\n\n  this.emit('removeall', _EventEmitter[\"default\"].copyEvent(event, {}), this);\n  this.updateScroller();\n};\n\nSelectTable.prototype._filter = function (items, filterText) {\n  var result = [];\n\n  if (filterText.length == 1) {\n    result = items.map(function (item) {\n      var res = {\n        item: item,\n        text: typeof item === 'string' ? item : item.text\n      };\n      return res;\n    }).map(function (it) {\n      it.score = 0;\n      var text = it.text.replace(/((\\&nbsp)|(\\s))+/g, ' ').trim();\n      it.score += text.toLowerCase().indexOf(filterText.toLowerCase()) >= 0 ? 100 : 0;\n      text = (0, _stringFormat.nonAccentVietnamese)(text);\n      it.score += text.toLowerCase().indexOf(filterText.toLowerCase()) >= 0 ? 100 : 0;\n      return it;\n    });\n    result.sort(function (a, b) {\n      if (b.score - a.score == 0) {\n        if ((0, _stringFormat.nonAccentVietnamese)(b.text) > (0, _stringFormat.nonAccentVietnamese)(a.text)) return -1;\n        return 1;\n      }\n\n      return b.score - a.score;\n    });\n    result = result.filter(function (x) {\n      return x.score > 0;\n    });\n  } else {\n    var its = items.map(function (item) {\n      var res = {\n        item: item,\n        text: typeof item === 'string' ? item : item.text\n      };\n      var text = res.text.replace(/((\\&nbsp)|(\\s))+/g, ' ').trim();\n      res.score = ((0, _stringMatching.phraseMatch)(text, filterText) + (0, _stringMatching.phraseMatch)((0, _stringFormat.nonAccentVietnamese)(text), (0, _stringFormat.nonAccentVietnamese)(filterText))) / 2;\n      if ((0, _stringFormat.nonAccentVietnamese)(text).replace(/s/g, '').toLowerCase().indexOf((0, _stringFormat.nonAccentVietnamese)(filterText).toLowerCase().replace(/s/g, '')) > -1) res.score = 100;\n      return res;\n    });\n    if (its.length == 0) return;\n    its.sort(function (a, b) {\n      if (b.score - a.score == 0) {\n        if ((0, _stringFormat.nonAccentVietnamese)(b.text) > (0, _stringFormat.nonAccentVietnamese)(a.text)) return -1;\n        return 1;\n      }\n\n      return b.score - a.score;\n    });\n    var result = its.filter(function (x) {\n      return x.score > 0.5;\n    });\n\n    if (result.length == 0) {\n      var bestScore = its[0].score;\n      result = its.filter(function (it) {\n        return it.score + 0.001 >= bestScore;\n      });\n    }\n\n    if (result[0].score == 0) result = [];\n  }\n\n  result = result.map(function (e) {\n    return e.item;\n  });\n  return result;\n};\n\nSelectTable.prototype._stringcmp = function (s0, s1) {\n  if (s0 == s1) return 0;\n  if (s0 > s1) return 1;\n  return -1;\n};\n\nSelectTable.prototype._getString = function (item) {\n  if (typeof item == \"string\") return item;\n  return item.text;\n};\n\nSelectTable.prototype._equalArr = function (a, b) {\n  if (a.length != b.length) return false;\n\n  for (var i = 0; i < a.length; ++i) {\n    if (a[i] != b[i] && a[i].text != b[i].text && a[i].value != b[i].value) return false;\n  }\n\n  return true;\n};\n\nSelectTable.prototype._applySort = function (items, sortFlag) {\n  var res = items.slice();\n\n  if (sortFlag == 1 || sortFlag === true) {\n    res.sort(function (a, b) {\n      return this._stringcmp(this._getString(a), this._getString(b));\n    }.bind(this));\n  } else if (sortFlag == -1) {\n    res.sort(function (a, b) {\n      return -this._stringcmp(this._getString(a), this._getString(b));\n    }.bind(this));\n  } else if (typeof sortFlag == 'function') {\n    res.sort(function (a, b) {\n      return sortFlag(a, b);\n    }.bind(this));\n  }\n\n  return res;\n};\n\nSelectTable.prototype.requestSort = function () {\n  if (!this.sorted || this.sorted == 0) return;\n  var selectedItems = this.selectedItems;\n\n  var selectedItemsNew = this._applySort(selectedItems, this.sorted);\n\n  if (!this._equalArr(selectedItems, selectedItemsNew)) {\n    this.selectedItems = selectedItemsNew;\n  }\n\n  var nonselectedItems = this.nonselectedItems;\n\n  var nonselectedItemsNew = this._applySort(nonselectedItems, this.sorted);\n\n  if (!this._equalArr(nonselectedItems, nonselectedItemsNew)) {\n    this.nonselectedItems = nonselectedItemsNew;\n  }\n};\n\nSelectTable.eventHandler.searchTextInputModify = function (event) {\n  var filterText = this.$searchTextInput.value.trim();\n\n  if (filterText.length > 0) {\n    var selectedItems = this.selectedItems;\n    var nonselectedItems = this.nonselectedItems;\n    this.selectedSearchItems = selectedItems;\n    this.nonselectedSearchItems = this._filter(nonselectedItems, filterText);\n    this.selectedSearchItems = this._filter(selectedItems, filterText);\n  } else {}\n\n  this.searching = filterText.length > 0;\n};\n\nSelectTable.property = {};\nSelectTable.property.disableMoveAll = {\n  set: function set(value) {\n    if (value) this.addClass('disable-move-all');else this.removeClass('disable-move-all');\n  },\n  get: function get() {\n    return this.hasClass('disable-move-all');\n  }\n};\nSelectTable.property.removeAllText = {\n  set: function set(text) {\n    this._removeAllText = text; //todo: update remove all text\n\n    if (!text) this.$removeAllBtn.addStyle('display', 'none');else {\n      this.$removeAllBtn.removeStyle('display');\n      this.$removeAllBtn.innerHTML = this.removeAllText;\n      this.updateButtonsContainerSize();\n    }\n  },\n  get: function get() {\n    return this._removeAllText || 'Remove All';\n  }\n};\nSelectTable.property.addAllText = {\n  set: function set(text) {\n    this._addAllText = text;\n    if (!text) this.$addAllBtn.addStyle('display', 'none');else {\n      this.$addAllBtn.removeStyle('display');\n      this.$addAllBtn.innerHTML = this.removeAllText;\n      this.updateButtonsContainerSize();\n    }\n  },\n  get: function get() {\n    return this._addAllText || 'Add All';\n  }\n};\nSelectTable.property.searching = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('searching');\n    } else {\n      this.removeClass('searching');\n    }\n\n    this.updateScroller();\n  },\n  get: function get() {\n    return this.hasClass('searching');\n  }\n};\nSelectTable.property.sorted = {\n  set: function set(value) {\n    this._sort = value;\n    this.requestSort();\n  },\n  get: function get() {\n    return this._sort;\n  }\n};\nSelectTable.property.selectedItems = {\n  set: function set(items) {\n    this.$selectedItemsContainer.clearChild();\n    var $nonselectedItemsContainer = this.$nonselectedItemsContainer;\n    var $selectedItemsContainer = this.$selectedItemsContainer;\n    var self = this;\n\n    if (items instanceof Array) {\n      items.map(function (item) {\n        return _({\n          tag: 'item',\n          props: {\n            data: item\n          },\n          on: {\n            requestmove: function requestmove(event) {\n              if (this.parentElement == $selectedItemsContainer) {\n                this.addTo($nonselectedItemsContainer);\n                self.emit('remove', _EventEmitter[\"default\"].copyEvent(event, {\n                  item: item\n                }), self);\n              } else {\n                this.addTo($selectedItemsContainer);\n                self.emit('add', _EventEmitter[\"default\"].copyEvent(event, {\n                  item: item\n                }), self);\n              }\n\n              self.updateScroller();\n              self.requestSort();\n            }\n          }\n        }).addTo(this.$selectedItemsContainer);\n      }.bind(this));\n    } else {// error\n    }\n\n    this.updateScroller();\n    this.requestSort();\n  },\n  get: function get() {\n    return Array.prototype.map.call(this.$selectedItemsContainer.childNodes, function (e) {\n      return e.data;\n    });\n  }\n};\nSelectTable.property.nonselectedItems = {\n  set: function set(items) {\n    this.$nonselectedItemsContainer.clearChild();\n    var $nonselectedItemsContainer = this.$nonselectedItemsContainer;\n    var $selectedItemsContainer = this.$selectedItemsContainer;\n    var self = this;\n\n    if (items instanceof Array) {\n      items.map(function (item) {\n        return _({\n          tag: 'item',\n          props: {\n            data: item\n          },\n          on: {\n            requestmove: function requestmove(event) {\n              if (this.parentElement == $selectedItemsContainer) {\n                this.addTo($nonselectedItemsContainer);\n                self.emit('remove', _EventEmitter[\"default\"].copyEvent(event, {\n                  item: item\n                }), self);\n              } else {\n                this.addTo($selectedItemsContainer);\n                self.emit('add', _EventEmitter[\"default\"].copyEvent(event, {\n                  item: item\n                }), self);\n              }\n\n              self.updateScroller();\n              self.requestSort();\n            }\n          }\n        }).addTo(this.$nonselectedItemsContainer);\n      }.bind(this));\n    } else {// error\n    }\n\n    this.updateScroller();\n    this.requestSort();\n  },\n  get: function get() {\n    return Array.prototype.map.call(this.$nonselectedItemsContainer.childNodes, function (e) {\n      return e.data;\n    });\n  }\n};\nSelectTable.property.selectedSearchItems = {\n  set: function set(items) {\n    this.$selectedSearchItemsContainer.clearChild();\n    var $nonselectedSearchItemsContainer = this.$nonselectedSearchItemsContainer;\n    var $selectedSearchItemsContainer = this.$selectedSearchItemsContainer;\n    var table = this;\n\n    if (items instanceof Array) {\n      items.map(function (item) {\n        return _({\n          tag: 'item',\n          props: {\n            data: item\n          },\n          on: {\n            requestmove: function requestmove(event) {\n              if (this.parentElement == $selectedSearchItemsContainer) {\n                this.addTo($nonselectedSearchItemsContainer);\n                table.getAllItemElement().filter(function (itemElement) {\n                  if (itemElement.data == this.data) {\n                    itemElement.addTo(table.$nonselectedItemsContainer);\n                    return true;\n                  }\n\n                  return false;\n                }.bind(this));\n                table.emit('remove', _EventEmitter[\"default\"].copyEvent(event, {\n                  item: item\n                }), table);\n              } else {\n                this.addTo($selectedSearchItemsContainer);\n                table.getAllItemElement().filter(function (itemElement) {\n                  if (itemElement.data == this.data) {\n                    itemElement.addTo(table.$selectedItemsContainer);\n                    return true;\n                  }\n\n                  return false;\n                }.bind(this));\n                table.emit('add', _EventEmitter[\"default\"].copyEvent(event, {\n                  item: item\n                }), table);\n              }\n\n              table.updateScroller();\n              table.requestSort();\n            }\n          }\n        }).addTo(this.$selectedSearchItemsContainer);\n      }.bind(this));\n    } else {// error\n    }\n\n    this.updateScroller();\n  },\n  get: function get() {\n    return Array.prototype.map.call(this.$selectedSearchItemsContainer.childNodes, function (e) {\n      return e.data;\n    });\n  }\n};\nSelectTable.property.nonselectedSearchItems = {\n  set: function set(items) {\n    this.$nonselectedSearchItemsContainer.clearChild();\n    var $nonselectedSearchItemsContainer = this.$nonselectedSearchItemsContainer;\n    var $selectedSearchItemsContainer = this.$selectedSearchItemsContainer;\n    var table = this;\n\n    if (items instanceof Array) {\n      items.map(function (item) {\n        return _({\n          tag: 'item',\n          props: {\n            data: item\n          },\n          on: {\n            requestmove: function requestmove(event) {\n              if (this.parentElement == $selectedSearchItemsContainer) {\n                this.addTo($nonselectedSearchItemsContainer);\n                table.getAllItemElement().filter(function (itemElement) {\n                  if (itemElement.data == this.data) {\n                    itemElement.addTo(table.$nonselectedItemsContainer);\n                    return true;\n                  }\n\n                  return false;\n                }.bind(this));\n                table.emit('remove', _EventEmitter[\"default\"].copyEvent(event, {\n                  item: item\n                }), table);\n              } else {\n                this.addTo($selectedSearchItemsContainer);\n                table.getAllItemElement().filter(function (itemElement) {\n                  if (itemElement.data == this.data) {\n                    itemElement.addTo(table.$selectedItemsContainer);\n                    return true;\n                  }\n\n                  return false;\n                }.bind(this));\n                table.emit('add', _EventEmitter[\"default\"].copyEvent(event, {\n                  item: item\n                }), table);\n              }\n\n              table.updateScroller();\n              table.requestSort();\n            }\n          }\n        }).addTo(this.$nonselectedSearchItemsContainer);\n      }.bind(this));\n    } else {// error\n    }\n\n    this.updateScroller();\n  },\n  get: function get() {\n    return Array.prototype.map.call(this.$nonselectedSearchItemsContainer.childNodes, function (e) {\n      return e.data;\n    });\n  }\n};\n/*\r\nnamespace of selecttable\r\n*/\n\nfunction Item() {\n  var res = _({\n    extendEvent: ['requestmove'],\n    \"class\": 'absol-select-table-item',\n    child: ['span.absol-select-table-item-text', {\n      \"class\": 'absol-select-table-item-right-container',\n      child: {\n        \"class\": 'absol-select-table-item-right-container-table',\n        child: {\n          \"class\": 'absol-select-table-item-right-container-cell',\n          child: ['addicon', 'subicon']\n        }\n      }\n    }]\n  });\n\n  res.$text = $('span', res);\n  res.eventHandler = _OOP[\"default\"].bindFunctions(res, Item.eventHandler);\n  res.$rightBtn = $('.absol-select-table-item-right-container', res);\n  res.on('dblclick', res.eventHandler.dblclick);\n  res.$rightBtn.on('click', res.eventHandler.rightBtClick);\n  return res;\n}\n\n;\nItem.eventHandler = {};\n\nItem.eventHandler.dblclick = function (event) {\n  event.preventDefault();\n  if (!_EventEmitter[\"default\"].hitElement(this.$rightBtn, event)) this.emit('requestmove', event, this);\n};\n\nItem.eventHandler.rightBtClick = function (event) {\n  this.emit('requestmove', event, this);\n};\n\nItem.property = {};\nItem.property.data = {\n  set: function set(value) {\n    this._data = value;\n\n    if (value) {\n      var text;\n\n      if (typeof value == \"string\") {\n        text = value;\n      } else {\n        text = value.text;\n      }\n\n      this.$text.innerHTML = text;\n    }\n  },\n  get: function get() {\n    return this._data;\n  }\n};\nItem.property.text = {\n  get: function get() {\n    return this._data ? typeof this._data == 'string' ? this._data : this._data.text : '';\n  }\n};\n/**\r\n *\r\n * <svg width=\"100mm\" height=\"100mm\" version=\"1.1\" viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g transform=\"translate(0,-197)\">\r\n <path d=\"m39.873 198.21v38.668h-38.668v20.252h38.668v38.668h20.253v-38.668h38.668v-20.252h-38.668v-38.668z\" style=\"fill-rule:evenodd;fill:#5fbbc2;stroke-linejoin:round;stroke-width:2.4109;stroke:#002eea\"/>\r\n </g>\r\n </svg>\r\n */\n\nfunction AddIcon() {\n  return _Svg[\"default\"].ShareInstance.buildSvg('<svg class=\"add-icon\" width=\"100mm\" height=\"100mm\" version=\"1.1\" viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\">' + '<g transform=\"translate(0,-197)\">' + '<path d=\"m39.873 198.21v38.668h-38.668v20.252h38.668v38.668h20.253v-38.668h38.668v-20.252h-38.668v-38.668z\" style=\"fill-rule:evenodd;stroke-linejoin:round;stroke-width:2.4109;\" />' + '</g>' + '</svg>');\n}\n\n;\n\nfunction SubIcon() {\n  return _Svg[\"default\"].ShareInstance.buildSvg('<svg class=\"sub-icon\" width=\"100mm\" height=\"100mm\" version=\"1.1\" viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\">' + ' <g transform=\"translate(0,-197)\">' + '  <path d=\"m98.795 236.87v20.253h-97.589v-20.253z\" style=\"fill-rule:evenodd;stroke-linejoin:round;stroke-width:2.411;\"/>' + ' </g>' + '</svg>');\n}\n\n;\nprivateDom.install({\n  subicon: SubIcon,\n  addicon: AddIcon,\n  item: Item\n});\nSelectTable.privateDom = privateDom;\n\n_ACore[\"default\"].install(SelectTable);\n\nvar _default = SelectTable;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/SelectTable.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/SelectTable2.js":
/*!*****************************************************!*\
  !*** ./node_modules/absol-acomp/js/SelectTable2.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/selecttable.css */ \"./node_modules/absol-acomp/css/selecttable.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _EventEmitter = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nvar _stringMatching = __webpack_require__(/*! absol/src/String/stringMatching */ \"./node_modules/absol/src/String/stringMatching.js\");\n\nvar _stringFormat = __webpack_require__(/*! absol/src/String/stringFormat */ \"./node_modules/absol/src/String/stringFormat.js\");\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _SelectTable = _interopRequireDefault(__webpack_require__(/*! ./SelectTable */ \"./node_modules/absol-acomp/js/SelectTable.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar privateDom = new _Dom[\"default\"]().install(_ACore[\"default\"]).install(_SelectTable[\"default\"].privateDom);\nvar $ = privateDom.$;\nvar _ = privateDom._;\n\nfunction SelectTable2() {\n  var thisST = this;\n  this.$attachhook = _('attachhook').addTo(this);\n  this.sync = new Promise(function (rs) {\n    thisST.$attachhook.on('error', rs);\n  });\n  this.$buttonsContainer = $('.absol-select-table-buttons-container', this);\n  this.$searchContainer = $('.absol-select-table-searchtextinput-container', this);\n  this.$nonselectedItemsContainer = $('.absol-select-table-nonselected-items-container', this);\n  this.$selectedItemsContainer = $('.absol-select-table-selected-items-container', this);\n  this.$nonselectedSearchItemsContainer = $('.absol-select-table-nonselected-search-items-container', this);\n  this.$selectedSearchItemsContainer = $('.absol-select-table-selected-search-items-container', this);\n  this.$removeAllBtn = $('button.remove-all', this).on('click', this.eventHandler.removeAllBtnClick);\n  this.$addAllBtn = $('button.add-all', this).on('click', this.eventHandler.addAllBtnClick);\n  this.$vscrollerSelected = $('vscroller#selected', this);\n  this.$vscrollerNonselected = $('vscroller#nonselected', this);\n  this.$body = $('.absol-select-table-body', this);\n  this.$searchTextInput = $('searchtextinput', this).on('stoptyping', this.eventHandler.searchTextInputModify);\n}\n\n;\nSelectTable2.tag = 'SelectTable2'.toLowerCase();\n\nSelectTable2.render = function () {\n  return _({\n    \"class\": ['absol-select-table', 'exclude'],\n    extendEvent: ['change', 'addall', 'removeall', 'add', 'remove'],\n    child: [{\n      \"class\": 'absol-select-table-header',\n      child: [{\n        \"class\": 'absol-select-table-searchtextinput-container',\n        child: 'searchtextinput'\n      }, {\n        \"class\": 'absol-select-table-buttons-container',\n        child: [{\n          tag: 'button',\n          \"class\": 'add-all',\n          props: {\n            innerHTML: 'Add All'\n          }\n        }, {\n          tag: 'button',\n          \"class\": 'remove-all',\n          props: {\n            innerHTML: 'Remove All'\n          }\n        }]\n      }]\n    }, {\n      \"class\": 'absol-select-table-body',\n      child: [{\n        tag: 'vscroller',\n        attr: {\n          id: 'nonselected'\n        },\n        \"class\": 'absol-select-table-items-scroller',\n        child: {\n          child: ['.absol-select-table-nonselected-items-container', '.absol-select-table-nonselected-search-items-container']\n        }\n      }, {\n        tag: 'vscroller',\n        attr: {\n          id: 'selected'\n        },\n        \"class\": 'absol-select-table-items-scroller',\n        child: {\n          child: ['.absol-select-table-selected-items-container', '.absol-select-table-selected-search-items-container']\n        }\n      }]\n    }]\n  });\n};\n\nSelectTable2.prototype.updateButtonsContainerSize = function () {\n  var rootBound = this.$buttonsContainer.getBoundingClientRect();\n  var containBound = this.$buttonsContainer.getBoundingRecursiveRect();\n  var fontSize = this.getFontSize();\n  this.$buttonsContainer.addStyle('width', (containBound.width + 1) / fontSize + 'em');\n  this.$searchContainer.addStyle('right', (containBound.width + 5) / fontSize + 'em');\n};\n\nSelectTable2.prototype.addAll = function () {\n  Array.apply(null, this.$nonselectedItemsContainer.childNodes).forEach(function (e) {\n    e.addTo(this.$selectedItemsContainer);\n  }.bind(this));\n  this.requestSort();\n};\n\nSelectTable2.prototype.removeAll = function () {\n  Array.apply(null, this.$selectedItemsContainer.childNodes).forEach(function (e) {\n    e.addTo(this.$nonselectedItemsContainer);\n  }.bind(this));\n  this.requestSort();\n};\n\nSelectTable2.prototype.updateScroller = function () {\n  var update = function () {\n    if (this.style.height) {\n      var bodyMargin = parseFloat(this.$body.getComputedStyleValue('margin-top').replace('px', '') || 0.14285714285 * 14 + '');\n      var bound = this.getBoundingClientRect();\n      var bodyBound = this.$body.getBoundingClientRect();\n      var bodyRBound = this.$body.getBoundingRecursiveRect();\n      var availableHeight = bound.bottom - bodyMargin - bodyBound.top;\n      var isOverflowHeight = availableHeight < bodyRBound.height;\n\n      if (isOverflowHeight) {\n        this.$vscrollerNonselected.addStyle('max-height', availableHeight + 'px');\n        this.$vscrollerSelected.addStyle('max-height', availableHeight + 'px');\n        this.$vscrollerSelected.addClass('limited-height');\n        this.$vscrollerNonselected.addClass('limited-height');\n      } else {\n        this.$vscrollerNonselected.removeStyle('max-height');\n        this.$vscrollerSelected.removeStyle('max-height');\n        this.$vscrollerSelected.removeClass('limited-height');\n        this.$vscrollerSelected.removeClass('limited-height');\n        this.$vscrollerNonselected.removeClass('limited-height');\n      }\n    }\n\n    requestAnimationFrame(this.$vscrollerNonselected.requestUpdateSize.bind(this.$vscrollerNonselected));\n    requestAnimationFrame(this.$vscrollerSelected.requestUpdateSize.bind(this.$vscrollerSelected));\n  }.bind(this);\n\n  setTimeout(update, 1);\n};\n\nSelectTable2.prototype.getAllItemElement = function () {\n  var selectedItemElements = Array.apply(null, this.$selectedItemsContainer.childNodes);\n  var nonselectedItemElements = Array.apply(null, this.$nonselectedItemsContainer.childNodes);\n  return selectedItemElements.concat(nonselectedItemElements);\n};\n\nSelectTable2.prototype.init = function (props) {\n  this[\"super\"](props);\n  this.sync = this.sync.then(this.updateButtonsContainerSize.bind(this));\n};\n\nSelectTable2.eventHandler = {};\n\nSelectTable2.eventHandler.addAllBtnClick = function (event) {\n  this.addAll();\n\n  if (this.searching) {\n    this.eventHandler.searchTextInputModify(event);\n  }\n\n  this.emit('addall', _EventEmitter[\"default\"].copyEvent(event, {}), this);\n  this.updateScroller();\n};\n\nSelectTable2.eventHandler.removeAllBtnClick = function (event) {\n  this.removeAll();\n\n  if (this.searching) {\n    this.eventHandler.searchTextInputModify(event);\n  }\n\n  this.emit('removeall', _EventEmitter[\"default\"].copyEvent(event, {}), this);\n  this.updateScroller();\n};\n\nSelectTable2.prototype._filter = function (items, filterText) {\n  var result = [];\n\n  if (filterText.length == 1) {\n    result = items.map(function (item) {\n      var res = {\n        item: item,\n        text: typeof item === 'string' ? item : item.text\n      };\n      return res;\n    }).map(function (it) {\n      it.score = 0;\n      var text = it.text.replace(/((\\&nbsp)|(\\s))+/g, ' ').trim();\n      it.score += text.toLowerCase().indexOf(filterText.toLowerCase()) >= 0 ? 100 : 0;\n      text = (0, _stringFormat.nonAccentVietnamese)(text);\n      it.score += text.toLowerCase().indexOf(filterText.toLowerCase()) >= 0 ? 100 : 0;\n      return it;\n    });\n    result.sort(function (a, b) {\n      if (b.score - a.score == 0) {\n        if ((0, _stringFormat.nonAccentVietnamese)(b.text) > (0, _stringFormat.nonAccentVietnamese)(a.text)) return -1;\n        return 1;\n      }\n\n      return b.score - a.score;\n    });\n    result = result.filter(function (x) {\n      return x.score > 0;\n    });\n  } else {\n    var its = items.map(function (item) {\n      var res = {\n        item: item,\n        text: typeof item === 'string' ? item : item.text\n      };\n      var text = res.text.replace(/((\\&nbsp)|(\\s))+/g, ' ').trim();\n      res.score = ((0, _stringMatching.phraseMatch)(text, filterText) + (0, _stringMatching.phraseMatch)((0, _stringFormat.nonAccentVietnamese)(text), (0, _stringFormat.nonAccentVietnamese)(filterText))) / 2;\n      if ((0, _stringFormat.nonAccentVietnamese)(text).replace(/s/g, '').toLowerCase().indexOf((0, _stringFormat.nonAccentVietnamese)(filterText).toLowerCase().replace(/s/g, '')) > -1) res.score = 100;\n      return res;\n    });\n    if (its.length == 0) return;\n    its.sort(function (a, b) {\n      if (b.score - a.score == 0) {\n        if ((0, _stringFormat.nonAccentVietnamese)(b.text) > (0, _stringFormat.nonAccentVietnamese)(a.text)) return -1;\n        return 1;\n      }\n\n      return b.score - a.score;\n    });\n    var result = its.filter(function (x) {\n      return x.score > 0.5;\n    });\n\n    if (result.length == 0) {\n      var bestScore = its[0].score;\n      result = its.filter(function (it) {\n        return it.score + 0.001 >= bestScore;\n      });\n    }\n\n    if (result[0].score == 0) result = [];\n  }\n\n  result = result.map(function (e) {\n    return e.item;\n  });\n  return result;\n};\n\nSelectTable2.prototype._stringcmp = function (s0, s1) {\n  if (s0 == s1) return 0;\n  if (s0 > s1) return 1;\n  return -1;\n};\n\nSelectTable2.prototype._getString = function (item) {\n  if (typeof item == \"string\") return item;\n  return item.text;\n};\n\nSelectTable2.prototype._equalArr = function (a, b) {\n  if (a.length != b.length) return false;\n\n  for (var i = 0; i < a.length; ++i) {\n    if (a[i] != b[i]) return false;\n  }\n\n  return true;\n};\n\nSelectTable2.prototype._applySort = function (items, sortFlag) {\n  var res = items.slice();\n\n  if (sortFlag == 1 || sortFlag === true) {\n    res.sort(function (a, b) {\n      return this._stringcmp(this._getString(a), this._getString(b));\n    }.bind(this));\n  } else if (sortFlag == -1) {\n    res.sort(function (a, b) {\n      return -this._stringcmp(this._getString(a), this._getString(b));\n    }.bind(this));\n  } else if (typeof sortFlag == 'function') {\n    res.sort(function (a, b) {\n      return sortFlag(a, b);\n    }.bind(this));\n  }\n\n  return res;\n};\n\nSelectTable2.prototype.requestSort = function () {\n  if (!this.sorted || this.sorted == 0) return;\n  var selectedItems = this.selectedItems;\n\n  var selectedItemsNew = this._applySort(selectedItems, this.sorted);\n\n  if (!this._equalArr(selectedItems, selectedItemsNew)) {\n    this.selectedItems = selectedItemsNew;\n  }\n\n  var nonselectedItems = this.nonselectedItems;\n\n  var nonselectedItemsNew = this._applySort(nonselectedItems, this.sorted);\n\n  if (!this._equalArr(nonselectedItems, nonselectedItemsNew)) {\n    this.nonselectedItems = nonselectedItemsNew;\n  }\n};\n\nSelectTable2.eventHandler.searchTextInputModify = function (event) {\n  var filterText = this.$searchTextInput.value.trim();\n\n  if (filterText.length > 0) {\n    var selectedItems = this.selectedItems;\n    var nonselectedItems = this.nonselectedItems;\n    this.selectedSearchItems = selectedItems;\n    this.nonselectedSearchItems = this._filter(nonselectedItems, filterText);\n    this.selectedSearchItems = this._filter(selectedItems, filterText);\n  } else {}\n\n  this.searching = filterText.length > 0;\n};\n\nSelectTable2.property = {};\nSelectTable2.property.disableMoveAll = {\n  set: function set(value) {\n    if (value) this.addClass('disable-move-all');else this.removeClass('disable-move-all');\n  },\n  get: function get() {\n    return this.hasClass('disable-move-all');\n  }\n};\nSelectTable2.property.removeAllText = {\n  set: function set(text) {\n    this._removeAllText = text; //todo: update remove all text\n\n    if (!text) this.$removeAllBtn.addStyle('display', 'none');else {\n      this.$removeAllBtn.removeStyle('display');\n      this.$removeAllBtn.innerHTML = this.removeAllText;\n      this.updateButtonsContainerSize();\n    }\n  },\n  get: function get() {\n    return this._removeAllText || 'Remove All';\n  }\n};\nSelectTable2.property.addAllText = {\n  set: function set(text) {\n    this._addAllText = text;\n    if (!text) this.$addAllBtn.addStyle('display', 'none');else {\n      this.$addAllBtn.removeStyle('display');\n      this.$addAllBtn.innerHTML = this.removeAllText;\n      this.updateButtonsContainerSize();\n    }\n  },\n  get: function get() {\n    return this._addAllText || 'Add All';\n  }\n};\nSelectTable2.property.searching = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('searching');\n    } else {\n      this.removeClass('searching');\n    }\n\n    this.updateScroller();\n  },\n  get: function get() {\n    return this.hasClass('searching');\n  }\n};\nSelectTable2.property.sorted = {\n  set: function set(value) {\n    this._sort = value;\n    this.requestSort();\n  },\n  get: function get() {\n    return this._sort;\n  }\n};\nSelectTable2.property.selectedItems = {\n  set: function set(items) {\n    this.$selectedItemsContainer.clearChild();\n    var $nonselectedItemsContainer = this.$nonselectedItemsContainer;\n    var $selectedItemsContainer = this.$selectedItemsContainer;\n    var self = this;\n\n    if (items instanceof Array) {\n      items.map(function (item) {\n        return _({\n          tag: 'item',\n          props: {\n            data: item\n          },\n          on: {\n            requestmove: function requestmove(event) {\n              if (this.parentElement == $selectedItemsContainer) {\n                this.addTo($nonselectedItemsContainer);\n                self.emit('remove', _EventEmitter[\"default\"].copyEvent(event, {\n                  item: item\n                }), self);\n              } else {\n                this.addTo($selectedItemsContainer);\n                self.emit('add', _EventEmitter[\"default\"].copyEvent(event, {\n                  item: item\n                }), self);\n              }\n\n              self.updateScroller();\n              self.requestSort();\n            }\n          }\n        }).addTo(this.$selectedItemsContainer);\n      }.bind(this));\n    } else {// error\n    }\n\n    this.updateScroller();\n    this.requestSort();\n  },\n  get: function get() {\n    return Array.prototype.map.call(this.$selectedItemsContainer.childNodes, function (e) {\n      return e.data;\n    });\n  }\n};\nSelectTable2.property.nonselectedItems = {\n  set: function set(items) {\n    this.$nonselectedItemsContainer.clearChild();\n    var $nonselectedItemsContainer = this.$nonselectedItemsContainer;\n    var $selectedItemsContainer = this.$selectedItemsContainer;\n    var self = this;\n\n    if (items instanceof Array) {\n      items.map(function (item) {\n        return _({\n          tag: 'item',\n          props: {\n            data: item\n          },\n          on: {\n            requestmove: function requestmove(event) {\n              if (this.parentElement == $selectedItemsContainer) {\n                this.addTo($nonselectedItemsContainer);\n                self.emit('remove', _EventEmitter[\"default\"].copyEvent(event, {\n                  item: item\n                }), self);\n              } else {\n                this.addTo($selectedItemsContainer);\n                self.emit('add', _EventEmitter[\"default\"].copyEvent(event, {\n                  item: item\n                }), self);\n              }\n\n              self.updateScroller();\n              self.requestSort();\n            }\n          }\n        }).addTo(this.$nonselectedItemsContainer);\n      }.bind(this));\n    } else {// error\n    }\n\n    this.updateScroller();\n    this.requestSort();\n  },\n  get: function get() {\n    return Array.prototype.map.call(this.$nonselectedItemsContainer.childNodes, function (e) {\n      return e.data;\n    });\n  }\n};\nSelectTable2.property.selectedSearchItems = {\n  set: function set(items) {\n    this.$selectedSearchItemsContainer.clearChild();\n    var $nonselectedSearchItemsContainer = this.$nonselectedSearchItemsContainer;\n    var $selectedSearchItemsContainer = this.$selectedSearchItemsContainer;\n    var table = this;\n\n    if (items instanceof Array) {\n      items.map(function (item) {\n        return _({\n          tag: 'item',\n          props: {\n            data: item\n          },\n          on: {\n            requestmove: function requestmove(event) {\n              if (this.parentElement == $selectedSearchItemsContainer) {\n                this.addTo($nonselectedSearchItemsContainer);\n                table.getAllItemElement().filter(function (itemElement) {\n                  if (itemElement.data == this.data) {\n                    itemElement.addTo(table.$nonselectedItemsContainer);\n                    return true;\n                  }\n\n                  return false;\n                }.bind(this));\n                table.emit('remove', _EventEmitter[\"default\"].copyEvent(event, {\n                  item: item\n                }), table);\n              } else {\n                this.addTo($selectedSearchItemsContainer);\n                table.getAllItemElement().filter(function (itemElement) {\n                  if (itemElement.data == this.data) {\n                    itemElement.addTo(table.$selectedItemsContainer);\n                    return true;\n                  }\n\n                  return false;\n                }.bind(this));\n                table.emit('add', _EventEmitter[\"default\"].copyEvent(event, {\n                  item: item\n                }), table);\n              }\n\n              table.updateScroller();\n              table.requestSort();\n            }\n          }\n        }).addTo(this.$selectedSearchItemsContainer);\n      }.bind(this));\n    } else {// error\n    }\n\n    this.updateScroller();\n  },\n  get: function get() {\n    return Array.prototype.map.call(this.$selectedSearchItemsContainer.childNodes, function (e) {\n      return e.data;\n    });\n  }\n};\nSelectTable2.property.nonselectedSearchItems = {\n  set: function set(items) {\n    this.$nonselectedSearchItemsContainer.clearChild();\n    var $nonselectedSearchItemsContainer = this.$nonselectedSearchItemsContainer;\n    var $selectedSearchItemsContainer = this.$selectedSearchItemsContainer;\n    var table = this;\n\n    if (items instanceof Array) {\n      items.map(function (item) {\n        return _({\n          tag: 'item',\n          props: {\n            data: item\n          },\n          on: {\n            requestmove: function requestmove(event) {\n              if (this.parentElement == $selectedSearchItemsContainer) {\n                this.addTo($nonselectedSearchItemsContainer);\n                table.getAllItemElement().filter(function (itemElement) {\n                  if (itemElement.data == this.data) {\n                    itemElement.addTo(table.$nonselectedItemsContainer);\n                    return true;\n                  }\n\n                  return false;\n                }.bind(this));\n                table.emit('remove', _EventEmitter[\"default\"].copyEvent(event, {\n                  item: item\n                }), table);\n              } else {\n                this.addTo($selectedSearchItemsContainer);\n                table.getAllItemElement().filter(function (itemElement) {\n                  if (itemElement.data == this.data) {\n                    itemElement.addTo(table.$selectedItemsContainer);\n                    return true;\n                  }\n\n                  return false;\n                }.bind(this));\n                table.emit('add', _EventEmitter[\"default\"].copyEvent(event, {\n                  item: item\n                }), table);\n              }\n\n              table.updateScroller();\n              table.requestSort();\n            }\n          }\n        }).addTo(this.$nonselectedSearchItemsContainer);\n      }.bind(this));\n    } else {// error\n    }\n\n    this.updateScroller();\n  },\n  get: function get() {\n    return Array.prototype.map.call(this.$nonselectedSearchItemsContainer.childNodes, function (e) {\n      return e.data;\n    });\n  }\n};\n/*\r\nnamespace of selecttable\r\n*/\n\nfunction Item() {\n  var res = _({\n    extendEvent: ['requestmove', 'clickadd', 'clickremove', 'clickexclude'],\n    \"class\": 'absol-select-table-item',\n    child: ['span.absol-select-table-item-text', {\n      \"class\": 'absol-select-table-item-right-container',\n      child: {\n        \"class\": 'absol-select-table-item-right-container-table',\n        child: {\n          \"class\": 'absol-select-table-item-right-container-row',\n          child: [{\n            attr: {\n              title: 'Add'\n            },\n            \"class\": ['absol-select-table-item-right-container-cell', 'add'],\n            child: 'addicon'\n          }, {\n            attr: {\n              title: 'Remove'\n            },\n            \"class\": ['absol-select-table-item-right-container-cell', 'remove'],\n            child: 'subicon'\n          }, {\n            attr: {\n              title: 'Exclude'\n            },\n            \"class\": ['absol-select-table-item-right-container-cell', 'exclude'],\n            child: 'excludeico'\n          }]\n        }\n      }\n    }]\n  });\n\n  res.$text = $('span', res);\n  res.eventHandler = _OOP[\"default\"].bindFunctions(res, Item.eventHandler);\n  res.$rightBtn = $('.absol-select-table-item-right-container', res);\n  res.on('dblclick', res.eventHandler.dblclick);\n  res.$addBtn = $('.absol-select-table-item-right-container-cell.add', res).on('click', res.eventHandler.addBtClick);\n  res.$removeBtn = $('.absol-select-table-item-right-container-cell.remove', res).on('click', res.eventHandler.removeBtClick);\n  res.$excludeBtn = $('.absol-select-table-item-right-container-cell.exclude', res).on('click', res.eventHandler.excludeBtClick);\n  return res;\n}\n\n;\nItem.eventHandler = {};\n\nItem.eventHandler.dblclick = function (event) {\n  event.preventDefault();\n  if (!_EventEmitter[\"default\"].hitElement(this.$rightBtn, event)) this.emit('requestmove', event, this);\n};\n\nItem.eventHandler.rightBtClick = function (event) {\n  this.emit('requestmove', event, this);\n};\n\nItem.eventHandler.removeBtClick = function (event) {\n  this.emit('clickremove', event, this);\n};\n\nItem.eventHandler.addBtClick = function (event) {\n  this.emit('clickadd', event, this);\n};\n\nItem.eventHandler.excludeBtClick = function (event) {\n  this.emit('clickexclude', event, this);\n};\n\nItem.property = {};\nItem.property.data = {\n  set: function set(value) {\n    this._data = value;\n\n    if (value) {\n      var text;\n\n      if (typeof value == \"string\") {\n        text = value;\n      } else {\n        text = value.text;\n      }\n\n      this.$text.innerHTML = text;\n    }\n  },\n  get: function get() {\n    return this._data;\n  }\n};\nItem.property.text = {\n  get: function get() {\n    return this._data ? typeof this._data == 'string' ? this._data : this._data.text : '';\n  }\n};\n\nfunction ExcludeIco() {\n  return _('<svg class=\"exclude-icon\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\\\r\n            <path  d=\"M8.27,3L3,8.27V15.73L8.27,21H15.73C17.5,19.24 21,15.73 21,15.73V8.27L15.73,3M9.1,5H14.9L19,9.1V14.9L14.9,19H9.1L5,14.9V9.1M11,15H13V17H11V15M11,7H13V13H11V7\" />\\\r\n        </svg>');\n}\n\nprivateDom.install({\n  item: Item,\n  excludeico: ExcludeIco\n}); // not completed yet\n\n_ACore[\"default\"].install('selecttable2', SelectTable2);\n\nvar _default = SelectTable2;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/SelectTable2.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/SelectTreeBox.js":
/*!******************************************************!*\
  !*** ./node_modules/absol-acomp/js/SelectTreeBox.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _SelectListBox = _interopRequireDefault(__webpack_require__(/*! ./SelectListBox */ \"./node_modules/absol-acomp/js/SelectListBox.js\"));\n\nvar _treeListToList = _interopRequireDefault(__webpack_require__(/*! ./list/treeListToList */ \"./node_modules/absol-acomp/js/list/treeListToList.js\"));\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\nvar $$ = _ACore[\"default\"].$$;\n/***\r\n * @extends SelectListBox\r\n * @constructor\r\n */\n\nfunction SelectTreeBox() {\n  _SelectListBox[\"default\"].call(this);\n}\n\nSelectTreeBox.tag = 'SelectTreeBox'.toLowerCase();\n\nSelectTreeBox.render = function () {\n  return _SelectListBox[\"default\"].render().addClass('as-select-tree-box');\n};\n\nObject.assign(SelectTreeBox.prototype, _SelectListBox[\"default\"].prototype);\nSelectTreeBox.property = Object.assign({}, _SelectListBox[\"default\"].property);\nSelectTreeBox.eventHandler = Object.assign({}, _SelectListBox[\"default\"].eventHandler);\n\nSelectTreeBox.prototype._itemsToNodeList = function (items) {\n  return (0, _treeListToList[\"default\"])(items);\n};\n\n_ACore[\"default\"].install(SelectTreeBox);\n\nvar _default = SelectTreeBox;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/SelectTreeBox.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/SelectTreeLeafBox.js":
/*!**********************************************************!*\
  !*** ./node_modules/absol-acomp/js/SelectTreeLeafBox.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Follower = _interopRequireDefault(__webpack_require__(/*! ./Follower */ \"./node_modules/absol-acomp/js/Follower.js\"));\n\nvar _ExpTree = _interopRequireDefault(__webpack_require__(/*! ./ExpTree */ \"./node_modules/absol-acomp/js/ExpTree.js\"));\n\n__webpack_require__(/*! ../css/selecttreeleafmenu.css */ \"./node_modules/absol-acomp/css/selecttreeleafmenu.css\");\n\nvar _SelectListBox = _interopRequireDefault(__webpack_require__(/*! ./SelectListBox */ \"./node_modules/absol-acomp/js/SelectListBox.js\"));\n\nvar _search = _interopRequireWildcard(__webpack_require__(/*! ./list/search */ \"./node_modules/absol-acomp/js/list/search.js\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _ResizeSystem = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/ResizeSystem */ \"./node_modules/absol/src/HTML5/ResizeSystem.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction isBranchStatus(status) {\n  return status === 'open' || status === 'close';\n}\n\nfunction invertStatus(status) {\n  return {\n    open: 'close',\n    close: 'open'\n  }[status] || 'none';\n}\n/***\r\n * @extends Follower\r\n * @constructor\r\n */\n\n\nfunction SelectTreeLeafBox() {\n  this._initControl();\n\n  this._searchCache = {};\n  this._value = null;\n  this._items = [];\n  this.strictValue = true;\n  this.$items = [];\n  this.$itemByValue = {};\n  this.$selectedItem = null;\n  this.$dislayItems = this.$items;\n  this.$dislayItemByValue = this.$itemByValue;\n  this.$content = (0, _ACore.$)('.as-select-tree-leaf-box-content', this);\n  this._savedStatus = {};\n  this.estimateSize = {\n    width: 0,\n    height: 0\n  };\n}\n\nSelectTreeLeafBox.tag = 'SelectTreeLeafBox'.toLowerCase();\n\nSelectTreeLeafBox.render = function () {\n  return (0, _ACore._)({\n    tag: _Follower[\"default\"],\n    attr: {\n      tabindex: 0\n    },\n    \"class\": ['as-select-tree-leaf-box', 'as-select-list-box'],\n    extendEvent: ['pressitem'],\n    child: [{\n      \"class\": 'as-select-list-box-search-ctn',\n      child: 'searchtextinput'\n    }, {\n      \"class\": ['as-bscroller', 'as-select-list-box-scroller', 'as-select-tree-leaf-box-content'],\n      child: []\n    }, 'attachhook.as-dom-signal'],\n    props: {\n      anchor: [1, 6, 2, 5]\n    }\n  });\n};\n\nSelectTreeLeafBox.prototype._initControl = function () {\n  this.$searchInput = (0, _ACore.$)('searchtextinput', this).on('stoptyping', this.eventHandler.searchModify);\n};\n\nSelectTreeLeafBox.prototype.resetSearchState = function () {\n  var value = this.$searchInput.value;\n\n  if (value.length > 0) {\n    this.$searchInput.value = '';\n\n    if (value.trim().length) {\n      this.$content.clearChild();\n      this.$content.addChild(this.$items);\n      this.$dislayItems = this.$items;\n      this.$dislayItemByValue = this.$itemByValue;\n\n      this._updateSelectedItem();\n    }\n  }\n};\n\nSelectTreeLeafBox.prototype._findFirstLeaf = function () {\n  var found = false;\n\n  function visit(item) {\n    if (item.isLeaf) {\n      found = item;\n      return true;\n    }\n\n    if (item.items && item.items.length > 0) {\n      item.items.some(visit);\n    }\n\n    return !!found;\n  }\n\n  this._items.some(visit);\n\n  return found;\n};\n\nSelectTreeLeafBox.prototype._makeTree = function (item, dict, savedStatus) {\n  var self = this;\n  var status = 'none';\n  var isLeaf = item.isLeaf;\n\n  if (item.items && item.items.length > 0) {\n    status = 'close';\n  }\n\n  if (isBranchStatus(status) && isBranchStatus(savedStatus[item.value])) {\n    status = savedStatus[item.value];\n  }\n\n  var nodeElt = (0, _ACore._)({\n    tag: _ExpTree[\"default\"].tag,\n    \"class\": 'as-select-tree-leaf-item',\n    props: {\n      name: item.text,\n      desc: item.desc,\n      icon: item.icon,\n      status: status,\n      itemData: item\n    },\n    on: {\n      'statuschange': this.updatePosition.bind(this)\n    }\n  });\n  nodeElt.getNode().on({\n    press: function press(event) {\n      if (isBranchStatus(nodeElt.status)) {\n        nodeElt.status = invertStatus(nodeElt.status);\n        savedStatus[item.value] = nodeElt.status;\n        self.updatePosition();\n      } else if (isLeaf) {\n        self.emit('pressitem', {\n          item: item,\n          target: self,\n          itemElt: nodeElt,\n          originalEvent: event\n        }, self);\n      }\n    }\n  });\n\n  if (dict) {\n    if (dict[item.value] && !this.warned) {\n      this.warned = true;\n      console.warn(this, 'has duplicated value, element will not work correctly!', item);\n    }\n\n    dict[item.value] = nodeElt;\n  }\n\n  if (item.isLeaf) {\n    nodeElt.addClass('as-is-leaf');\n  }\n\n  if (item.items && item.items.length > 0) {\n    item.items.forEach(function (item1) {\n      nodeElt.addChild(self._makeTree(item1, dict, savedStatus));\n    });\n  }\n\n  return nodeElt;\n};\n\nSelectTreeLeafBox.prototype._estimateItemWidth = function (item, level) {\n  var width = 12; //padding\n\n  width += 12 * level;\n  width += 14.7 + 5; //toggle icon\n\n  if (item.icon) width += 21; //icon\n\n  width += 7 + (0, _utils.estimateWidth14)(item.text) + 5 + 7; //margin-text\n\n  if (item.desc) width += 6 + (0, _utils.estimateWidth14)(item.desc) * 0.85;\n  return width;\n};\n\nSelectTreeLeafBox.prototype.viewToSelected = function () {\n  var selectedNode = this.$selectedItem;\n  if (!selectedNode) return;\n  selectedNode.scrollIntoView();\n  var parent = selectedNode.getParent();\n\n  while (parent && parent.getParent) {\n    if (parent.status === 'close') {\n      parent.getNode().emit('press');\n    }\n\n    parent = parent.getParent();\n  }\n};\n\nSelectTreeLeafBox.prototype._calcEstimateSize = function (items) {\n  var self = this;\n  var width = 0;\n  var height = 0;\n\n  function visit(item, level) {\n    var itemWidth = self._estimateItemWidth(item, level);\n\n    width = Math.max(width, itemWidth);\n    height += 28;\n\n    if (item.items && item.items.length) {\n      item.items.forEach(function (item) {\n        visit(item, level + 1);\n      });\n    }\n  }\n\n  items.forEach(function (item) {\n    visit(item, 0);\n  });\n  return {\n    width: width,\n    height: height\n  };\n};\n\nSelectTreeLeafBox.prototype._updateSelectedItem = function () {\n  if (this.$selectedItem) {\n    this.$selectedItem.removeClass('as-selected');\n    this.$selectedItem = null;\n  }\n\n  this.$selectedItem = this.$dislayItemByValue[this._value];\n\n  if (this.$selectedItem) {\n    this.$selectedItem.addClass('as-selected');\n  }\n};\n\nSelectTreeLeafBox.prototype.focus = _SelectListBox[\"default\"].prototype.focus;\nSelectTreeLeafBox.property = {};\nSelectTreeLeafBox.eventHandler = {};\nSelectTreeLeafBox.property.items = {\n  /***\r\n   * @this SelectTreeLeafBox\r\n   * @param items\r\n   */\n  set: function set(items) {\n    var self = this;\n    this._savedStatus = {};\n    this._searchCache = {};\n    items = items || [];\n    this._items = items;\n    (0, _search.prepareSearchForList)(items);\n    this.$content.clearChild();\n    this.$itemByValue = {};\n    this.$dislayItemByValue = this.$itemByValue;\n    this.$items = items.map(function (item) {\n      return self._makeTree(item, self.$itemByValue, self._savedStatus);\n    });\n    this.$dislayItems = this.$items;\n    this.$content.addChild(this.$items);\n    this.estimateSize = this._calcEstimateSize(items);\n    this.addStyle('--select-list-estimate-width', this.estimateSize.width + 'px');\n    var firstLeaf;\n\n    if (this._value === null || this._value === undefined || this.strictValue && !this.$itemByValue[this._value]) {\n      firstLeaf = this._findFirstLeaf();\n\n      if (firstLeaf) {\n        this.value = firstLeaf.value;\n      }\n    }\n\n    this._updateSelectedItem();\n\n    self.updatePosition();\n  },\n  get: function get() {\n    return this._items;\n  }\n};\nSelectTreeLeafBox.property.value = {\n  set: function set(value) {\n    this._value = value;\n\n    this._updateSelectedItem();\n  },\n  get: function get() {\n    return this._value;\n  }\n};\nSelectTreeLeafBox.property.enableSearch = _SelectListBox[\"default\"].property.enableSearch;\n\nSelectTreeLeafBox.prototype._search = function (query) {\n  var self = this;\n  var queryItem = (0, _search[\"default\"])({\n    text: query\n  });\n  var minScore = Infinity;\n  var maxScore = -Infinity;\n\n  function makeScoreTree(item) {\n    var holder = {\n      item: item,\n      score: (0, _search.calcItemMatchScore)(queryItem, item),\n      childrenScore: 0,\n      children: []\n    };\n    minScore = Math.min(minScore, holder.score);\n    maxScore = Math.max(maxScore, holder.score);\n    var children;\n\n    if (item.items && item.items.length > 0) {\n      children = item.items.map(makeScoreTree);\n      holder.children = children;\n      holder.childrenScore = holder.children.reduce(function (ac, cr) {\n        return Math.max(ac, cr.score, cr.childrenScore);\n      }, 0);\n    }\n\n    return holder;\n  }\n\n  var treeScores = this._items.map(makeScoreTree);\n\n  var midScore = (maxScore + minScore) / 2;\n  var savedStatus = {};\n\n  function filterTree(scoredTrees, ignore) {\n    return scoredTrees.filter(function (holder) {\n      return ignore || holder.score >= midScore || holder.childrenScore >= midScore;\n    }).map(function makeTree(holder) {\n      var item = Object.assign({}, holder.item);\n\n      if (!ignore && holder.children && holder.children.length > 0) {\n        if (holder.childrenScore >= midScore) {\n          savedStatus[item.value] = 'open';\n          item.items = filterTree(holder.children, false);\n        } else {\n          savedStatus[item.value] = 'close';\n          item.items = filterTree(holder.children, true);\n        }\n      }\n\n      return item;\n    });\n  }\n\n  var resultItems = filterTree(treeScores, false);\n  var dict = {};\n  var $items = resultItems.map(function (item) {\n    return self._makeTree(item, dict, savedStatus);\n  });\n  return {\n    $items: $items,\n    items: resultItems,\n    savedStatus: Object.assign({}, savedStatus),\n    originSavedStatus: savedStatus,\n    dict: dict\n  };\n};\n/***\r\n * @this SelectTreeLeafBox\r\n */\n\n\nSelectTreeLeafBox.eventHandler.searchModify = function () {\n  var query = this.$searchInput.value.trim();\n\n  if (query.length === 0) {\n    this.$content.clearChild().addChild(this.$items);\n    this.$dislayItemByValue = this.$itemByValue;\n    this.$dislayItems = this.$items;\n\n    this._updateSelectedItem();\n\n    this.updatePosition();\n    return;\n  }\n\n  if (!this._searchCache[query]) {\n    this._searchCache[query] = this._search(query);\n  }\n\n  var searchData = this._searchCache[query];\n  searchData.savedStatus = Object.assign(searchData.savedStatus, searchData.originSavedStatus);\n\n  for (var val in searchData.dict) {\n    if (isBranchStatus(searchData.dict[val].status)) {\n      if (searchData.savedStatus[val]) {\n        searchData.dict[val].status = searchData.savedStatus[val];\n      }\n    }\n  }\n\n  this.$content.clearChild().addChild(searchData.$items);\n  this.$dislayItemByValue = searchData.dict;\n  this.$dislayItems = searchData.$items;\n\n  this._updateSelectedItem();\n\n  this.updatePosition();\n};\n\n_ACore[\"default\"].install(SelectTreeLeafBox);\n\nvar _default = SelectTreeLeafBox;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/SelectTreeLeafBox.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/SelectTreeLeafMenu.js":
/*!***********************************************************!*\
  !*** ./node_modules/absol-acomp/js/SelectTreeLeafMenu.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _SelectTreeLeafBox = _interopRequireDefault(__webpack_require__(/*! ./SelectTreeLeafBox */ \"./node_modules/absol-acomp/js/SelectTreeLeafBox.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _EventEmitter = __webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\");\n\nvar _Dom = __webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\");\n\nvar _SelectMenu = _interopRequireDefault(__webpack_require__(/*! ./SelectMenu2 */ \"./node_modules/absol-acomp/js/SelectMenu2.js\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction SelectTreeLeafMenu() {\n  this.$selectBox = (0, _ACore._)({\n    tag: _SelectTreeLeafBox[\"default\"].tag,\n    on: {\n      pressitem: this.eventHandler.pressItem,\n      preupdateposition: this.eventHandler.preUpdateListPosition\n    }\n  });\n\n  _OOP[\"default\"].drillProperty(this, this.$selectBox, 'enableSearch');\n\n  this.$holderItem = (0, _ACore.$)('selectlistitem', this);\n  this.on('click', this.eventHandler.click.bind(this));\n}\n\nSelectTreeLeafMenu.tag = 'SelectTreeLeafMenu'.toLowerCase();\n\nSelectTreeLeafMenu.render = function () {\n  return (0, _ACore._)({\n    \"class\": ['absol-selectmenu', 'as-select-menu', 'as-select-tree-leaf-menu'],\n    extendEvent: ['change'],\n    attr: {\n      tabindex: '1'\n    },\n    child: [{\n      \"class\": 'absol-selectmenu-holder-item',\n      child: 'selectlistitem'\n    }, {\n      tag: 'button',\n      \"class\": 'absol-selectmenu-btn',\n      child: ['dropdown-ico']\n    }]\n  });\n};\n\nSelectTreeLeafMenu.prototype.init = function (props) {\n  props = props || {};\n  Object.keys(props).forEach(function (key) {\n    if (props[key] === undefined) delete props[key];\n  });\n\n  if (props.strictValue) {\n    this.strictValue = props.strictValue;\n    delete props.strictValue;\n  }\n\n  var hasValue = ('value' in props);\n  var value = props.value;\n  delete props.value;\n  this[\"super\"](props);\n  if (hasValue) this.value = value;\n};\n\nSelectTreeLeafMenu.property = {};\nSelectTreeLeafMenu.property.items = {\n  set: function set(items) {\n    items = (0, _utils.copySelectionItemArray)(items || [], {\n      removeNoView: true\n    });\n    this.$selectBox.items = items;\n    this.addStyle('--select-list-estimate-width', this.$selectBox.estimateSize.width + 'px');\n\n    if (this.$selectBox.$selectedItem) {\n      this.$holderItem.data = this.$selectBox.$selectedItem.itemData;\n    } else {\n      this.$holderItem.data = {\n        text: ''\n      };\n    }\n  },\n  get: function get() {\n    return this.$selectBox.items;\n  }\n};\nSelectTreeLeafMenu.property.value = {\n  set: function set(value) {\n    this.$selectBox.value = value;\n\n    if (this.$selectBox.$selectedItem) {\n      this.$holderItem.data = this.$selectBox.$selectedItem.itemData;\n    } else {\n      this.$holderItem.data = {\n        text: ''\n      };\n    }\n  },\n  get: function get() {\n    return this.$selectBox.value;\n  }\n};\nSelectTreeLeafMenu.property.strictValue = {\n  set: function set(value) {\n    this.$selectBox.strictValue = !!value;\n    if (value) this.addClass('as-strict-value');else this.removeClass('as-strict-value');\n  },\n  get: function get() {\n    return this.hasClass('as-strict-value');\n  }\n};\nSelectTreeLeafMenu.property.isFocus = {\n  /**\r\n   * @this SelectTreeLeafMenu\r\n   * @param value\r\n   */\n  set: function set(value) {\n    value = !!value;\n    var isFocus = this.hasClass('as-focus');\n    if (value === isFocus) return;\n    if (value && (this.disabled || this.readOnly)) return;\n    var bound;\n\n    if (value) {\n      this.addClass('as-focus');\n      bound = this.getBoundingClientRect();\n      this.$selectBox.addStyle('min-width', bound.width + 'px');\n      document.body.appendChild(this.$selectBox);\n      this.$selectBox.addStyle('visibility', 'hidden');\n      this.$selectBox.followTarget = this;\n      this.$selectBox.updatePosition();\n      this.off('click', this.eventHandler.click);\n      setTimeout(function () {\n        document.addEventListener('click', this.eventHandler.clickOut);\n        this.$selectBox.removeStyle('visibility');\n        this.$selectBox.focus();\n      }.bind(this), 5);\n      this.$selectBox.viewToSelected();\n    } else {\n      this.removeClass('as-focus');\n      document.removeEventListener('click', this.eventHandler.clickOut);\n      this.$selectBox.remove();\n      setTimeout(function () {\n        this.on('click', this.eventHandler.click);\n      }.bind(this), 100);\n      this.$selectBox.resetSearchState();\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-focus');\n  }\n};\nSelectTreeLeafMenu.property.disabled = _SelectMenu[\"default\"].property.disabled;\nSelectTreeLeafMenu.eventHandler = {};\n\nSelectTreeLeafMenu.eventHandler.clickOut = function (event) {\n  if ((0, _EventEmitter.hitElement)(this.$selectBox, event)) return;\n  this.isFocus = false;\n};\n\nSelectTreeLeafMenu.eventHandler.click = function (event) {\n  if (!this.disabled) this.isFocus = true;\n};\n\nSelectTreeLeafMenu.eventHandler.pressItem = function (event) {\n  this.$selectBox.value = event.item.value;\n  this.$holderItem.data = event.item;\n  var prevValue = this._value;\n  this._value = event.item.value;\n  this.isFocus = false;\n\n  if (prevValue !== this._value) {\n    this.emit('change', {\n      item: event,\n      type: 'change',\n      target: this,\n      originalEvent: event.originalEvent || event.originalEvent || event\n    }, this);\n  }\n};\n\nSelectTreeLeafMenu.eventHandler.preUpdateListPosition = function () {\n  var bound = this.getBoundingClientRect();\n  var screenSize = (0, _Dom.getScreenSize)();\n  var availableTop = bound.top - 5;\n  var availableBot = screenSize.height - 5 - bound.bottom;\n  this.$selectBox.addStyle('--max-height', Math.max(availableBot, availableTop) + 'px');\n  var outBound = (0, _Dom.traceOutBoundingClientRect)(this);\n\n  if (bound.bottom < outBound.top || bound.top > outBound.bottom || bound.right < outBound.left || bound.left > outBound.right) {\n    this.isFocus = false;\n  }\n};\n\n_ACore[\"default\"].install(SelectTreeLeafMenu);\n\nvar _default = SelectTreeLeafMenu;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/SelectTreeLeafMenu.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/SelectTreeMenu.js":
/*!*******************************************************!*\
  !*** ./node_modules/absol-acomp/js/SelectTreeMenu.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/selecttreemenu.css */ \"./node_modules/absol-acomp/css/selecttreemenu.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _SelectMenu = _interopRequireDefault(__webpack_require__(/*! ./SelectMenu2 */ \"./node_modules/absol-acomp/js/SelectMenu2.js\"));\n\nvar _SelectTreeBox = _interopRequireDefault(__webpack_require__(/*! ./SelectTreeBox */ \"./node_modules/absol-acomp/js/SelectTreeBox.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @extends SelectMenu\r\n * @constructor\r\n */\n\nfunction SelectTreeMenu() {\n  this._items = [];\n  this._value = null;\n  this._lastValue = null;\n  this.$holderItem = $('.absol-selectmenu-holder-item', this);\n  this.$viewItem = $('.absol-selectmenu-holder-item selectlistitem', this);\n  /***\r\n   *\r\n   * @type {SelectTreeBox}\r\n   */\n\n  this.$selectlistBox = _({\n    tag: 'selecttreebox',\n    props: {\n      anchor: [1, 6, 2, 5]\n    },\n    on: {\n      preupdateposition: this.eventHandler.preUpdateListPosition\n    }\n  });\n  this.$selectlistBox.on('pressitem', this.eventHandler.selectListBoxPressItem);\n  this.$selectlistBox.followTarget = this;\n\n  _OOP[\"default\"].drillProperty(this, this.$selectlistBox, 'enableSearch');\n\n  this._lastValue = \"NOTHING_VALUE\";\n  this._isFocus = false;\n  this.isFocus = false;\n  this.on('mousedown', this.eventHandler.click, true);\n}\n\nSelectTreeMenu.tag = 'SelectTreeMenu'.toLowerCase();\n\nSelectTreeMenu.render = function () {\n  return _SelectMenu[\"default\"].render().addClass('as-select-tree-menu');\n};\n\nSelectTreeMenu.eventHandler = Object.assign({}, _SelectMenu[\"default\"].eventHandler);\nSelectTreeMenu.property = Object.assign({}, _SelectMenu[\"default\"].property);\nObject.assign(SelectTreeMenu.prototype, _SelectMenu[\"default\"].prototype);\n\n_ACore[\"default\"].install(SelectTreeMenu);\n\nvar _default = SelectTreeMenu;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/SelectTreeMenu.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/SinglePage.js":
/*!***************************************************!*\
  !*** ./node_modules/absol-acomp/js/SinglePage.js ***!
  \***************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/singlepage.css */ \"./node_modules/absol-acomp/css/singlepage.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nvar _ResizeSystem = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/ResizeSystem */ \"./node_modules/absol/src/HTML5/ResizeSystem.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\nvar warned = false;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction SinglePage() {\n  var thisSP = this;\n  this._updateIntv = -1;\n\n  this._tick = function () {\n    if (this.isDescendantOf(document.body)) {\n      if (this.$header) {\n        var headerHeight = this.$header.getBoundingClientRect().height;\n\n        if (this._prevHeaderHeight !== headerHeight) {\n          _ResizeSystem[\"default\"].update();\n        }\n      }\n    } else {\n      clearInterval(this._updateIntv);\n      this._updateIntv = -1;\n    }\n  }.bind(this);\n\n  this.$attachhook = $('attachhook', this).on('attached', function () {\n    this.updateSize();\n    setTimeout(this.updateSize, 20);\n\n    _Dom[\"default\"].addToResizeSystem(this);\n\n    if (thisSP._updateIntv < 0) {\n      thisSP._updateIntv = setInterval(thisSP._tick, 200);\n    }\n  });\n  this.$attachhook.updateSize = this.updateSize.bind(this);\n  this.$header = null;\n  this.$footer = null;\n  this.$viewport = $('.absol-single-page-scroller-viewport', this);\n  this.$scroller = $('.absol-single-page-scroller', this);\n}\n\nSinglePage.tag = 'SinglePage'.toLowerCase();\n\nSinglePage.render = function () {\n  return _({\n    tag: 'tabframe',\n    extendEvent: ['sizechange'],\n    \"class\": 'absol-single-page',\n    child: [{\n      \"class\": 'absol-single-page-scroller',\n      child: {\n        \"class\": 'absol-single-page-scroller-viewport'\n      }\n    }, 'attachhook']\n  });\n};\n\nSinglePage.prototype.updateSize = function () {\n  if (!this.isDescendantOf(document.body)) return;\n  var paddingTop = parseFloat(this.getComputedStyleValue('padding-top').replace('px', '')) || 0;\n\n  if (this.$header) {\n    var headerBound = this.$header.getBoundingClientRect();\n    var headerMarginTop = parseFloat(this.$header.getComputedStyleValue('margin-top').replace('px', '')) || 0;\n    var headerMarginBottom = parseFloat(this.$header.getComputedStyleValue('margin-bottom').replace('px', '')) || 0;\n    this.$scroller.addStyle('top', headerBound.height + headerMarginTop + headerMarginBottom + paddingTop + 'px');\n    this._prevHeaderHeight = headerBound.height;\n  }\n\n  if (this.$footer) {\n    var footerBound = this.$footer.getBoundingClientRect();\n    this.$viewport.addStyle('padding-bottom', footerBound.height + 'px');\n  }\n\n  this.addStyle('--single-page-scroller-height', this.$scroller.clientHeight + 'px');\n  if (this.isSupportedEvent('sizechange')) this.emit('sizechange', {\n    type: 'sizechange',\n    target: this\n  }, this);\n};\n\nSinglePage.prototype.addChild = function (elt) {\n  if (elt.classList.contains('absol-single-page-header')) {\n    if (this.firstChild) {\n      this.addChildBefore(elt, this.firstChild);\n    } else {\n      this.appendChild(elt);\n    }\n\n    this.$header = $(elt);\n    this.updateSize();\n  } else if (elt.classList.contains('absol-single-page-footer')) {\n    this.$viewport.addChild(elt);\n    this.$footer = $(elt);\n    this.updateSize();\n  } else {\n    this.$viewport.addChild(elt);\n  }\n};\n\nSinglePage.prototype.removeChild = function (elt) {\n  if (elt == this.$footer) {\n    this.$viewport.removeChild(elt);\n    this.$footer = undefined;\n    this.updateSize();\n  } else if (elt == this.$header) {\n    this[\"super\"](elt);\n    this.$header = undefined;\n    this.updateSize();\n  } else {\n    this.$viewport.removeChild(elt);\n  }\n};\n\n_ACore[\"default\"].install(SinglePage);\n\nvar _default = SinglePage;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/SinglePage.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/Snackbar.js":
/*!*************************************************!*\
  !*** ./node_modules/absol-acomp/js/Snackbar.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/snackbar.css */ \"./node_modules/absol-acomp/css/snackbar.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nvar _Dom = __webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\nvar t = document.createElement;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction SnackBar() {\n  // OOP.drillProperty(this, this.firstChild, 'message', 'data');\n\n  /***\r\n   *\r\n   * @type {*}\r\n   */\n  this._message = null;\n  this.message = null;\n}\n\nSnackBar.tag = 'SnackBar'.toLowerCase();\n\nSnackBar.render = function () {\n  return _({\n    \"class\": 'as-snackbar'\n  });\n};\n\nSnackBar.property = {};\nSnackBar.property.message = {\n  set: function set(value) {\n    this._message = value;\n\n    if (value instanceof Array) {\n      this.clearChild();\n      this.addChild(value.map(function (item) {\n        return _(item);\n      }));\n    } else if (typeof value === 'string') {\n      this.innerHTML = value;\n    } else if ((0, _Dom.isDomNode)(value)) {\n      this.clearChild().addChild(value);\n    } else if (value && _typeof(value) === 'object' && (value.text || value.props || value.tag || value.attr || value.style || value.child || value.child && value.child instanceof Array)) {\n      this.clearChild().addChild(_(value));\n    } else {\n      this.clearChild();\n      this._message = null;\n    }\n  },\n  get: function get() {\n    return this._message;\n  }\n};\n\n_ACore[\"default\"].install(SnackBar);\n\nSnackBar.$instance = _('snackbar');\nSnackBar._removeTimeout = -1;\n\nSnackBar.show = function (message) {\n  if (SnackBar._removeTimeout > 0) {\n    clearTimeout(SnackBar._removeTimeout);\n  }\n\n  if (!SnackBar.$instance.parentElement) document.body.appendChild(SnackBar.$instance);\n  SnackBar.$instance.removeClass('as-hiding');\n  SnackBar._removeTimeout = setTimeout(function () {\n    SnackBar.$instance.addClass('as-show');\n    SnackBar.$instance.message = message;\n    SnackBar._removeTimeout = setTimeout(function () {\n      SnackBar.$instance.removeClass('as-show').addClass('as-hiding');\n      SnackBar._removeTimeout = setTimeout(function () {\n        SnackBar.$instance.remove();\n        SnackBar._removeTimeout = -1;\n        SnackBar.$instance.removeClass('as-hiding');\n      }, 500);\n    }, 3000);\n  }, 1);\n};\n\nvar _default = SnackBar;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/Snackbar.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/SpanInput.js":
/*!**************************************************!*\
  !*** ./node_modules/absol-acomp/js/SpanInput.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/spaninput.css */ \"./node_modules/absol-acomp/css/spaninput.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _Text = __webpack_require__(/*! absol/src/HTML5/Text */ \"./node_modules/absol/src/HTML5/Text.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n\nfunction SpanInput() {\n  this.defineEvent(['change']);\n  this._inputType = 0;\n  this._lastValue = null;\n  this.on('paste', this.eventHandler.paste).on('keyup', this.eventHandler.keyup).on('keydown', this.eventHandler.keydown).on('blur', this.eventHandler.blur);\n}\n\nSpanInput.prototype.notifyValueChange = function (event) {\n  var cValue = this.value;\n\n  if (this._lastValue != cValue && (this._inputType != 1 || !isNaN(this._lastValue) || !isNaN(cValue))) {\n    this._lastValue = cValue;\n    this.emit('change', {\n      type: 'change',\n      value: cValue,\n      originEvent: event\n    }, this);\n  }\n};\n\nSpanInput.eventHandler = {};\n\nSpanInput.eventHandler.keyup = function (event) {\n  if (this._inputType == 0) {\n    this.notifyValueChange(event);\n  } else if (this._inputType == 1) {\n    this.eventHandler.numberKeyup(event);\n  }\n};\n\nSpanInput.eventHandler.keydown = function (event) {\n  if (this._inputType == 0) {} else if (this._inputType == 1) {\n    this.eventHandler.numberKeydown(event);\n  }\n};\n\nSpanInput.eventHandler.numberBlur = function (value) {\n  this.notifyValueChange(event);\n};\n\nSpanInput.eventHandler.textBlur = function (event) {\n  this.notifyValueChange(event);\n};\n\nSpanInput.eventHandler.blur = function (event) {\n  if (this._inputType == 0) {\n    this.eventHandler.textBlur(event);\n  } else if (this._inputType == 1) {\n    this.eventHandler.numberKeydown(event);\n  }\n};\n\nSpanInput.eventHandler.numberKeyup = function (event) {\n  this.notifyValueChange();\n};\n\nSpanInput.eventHandler.numberKeydown = function (event) {\n  var key = event.key;\n\n  if (key == 'Enter') {\n    event.preventDefault();\n    this.blur();\n    this.notifyValueChange();\n    return;\n  }\n\n  if (key && key.length == 1 && !event.ctrlKey && !event.altKey) {\n    if (key.match(/[0-9.\\-\\+]/)) {\n      if (key == '.' && this.text.indexOf('.') >= 0) event.preventDefault();\n      if ((key == '+' || key == '-') && (this.text.indexOf('+') >= 0 || this.text.indexOf('-') >= 0 || getCaretPosition(this) > 0)) event.preventDefault();\n    } else event.preventDefault();\n  }\n};\n\nSpanInput.eventHandler.paste = function (event) {\n  event.preventDefault();\n\n  if (event.clipboardData && event.clipboardData.getData) {\n    var text = event.clipboardData.getData(\"text/plain\");\n    if (this._inputType == 1) text = text.replace(/[^0-9.\\-+]/g, '');\n    document.execCommand(\"insertHTML\", false, text);\n\n    if (this._inputType == 1) {\n      if (isNaN(this.value)) {\n        this.value = NaN;\n      }\n    }\n  } else if (window.clipboardData && window.clipboardData.getData) {\n    var text = window.clipboardData.getData(\"Text\");\n    if (this._inputType == 1) text = text.replace(/[^0-9.\\-+]/g, '');\n    (0, _utils.insertTextAtCursor)(text);\n\n    if (this._inputType == 1) {\n      if (isNaN(this.value)) {\n        this.value = NaN;\n      }\n    }\n  }\n};\n\nSpanInput.property = {};\nSpanInput.property.value = {\n  set: function set(value) {\n    if (this._inputType == 1 && isNaN(value)) value = null;\n    this.clearChild();\n    if (value !== null) this.addChild(_({\n      text: value + ''\n    }));\n  },\n  get: function get() {\n    if (this._inputType == 1) {\n      return parseFloat(this.text);\n    } else {\n      return this.text;\n    }\n  }\n};\nSpanInput.property.type = {\n  set: function set(value) {\n    var index = ['text', 'number'].indexOf(value);\n    if (index < 0) index = 0;\n    this._inputType = index;\n\n    if (index == 1) {\n      this.addClass('absol-span-input-empty-minus');\n    } else {\n      this.removeClass('absol-span-input-empty-minus');\n    }\n  },\n  get: function get() {\n    return ['text', 'number'][this._inputType];\n  }\n};\nSpanInput.property.text = {\n  get: function get() {\n    return (0, _Text.getTextIn)(this);\n  }\n};\nSpanInput.tag = 'spaninput';\n\nSpanInput.render = function () {\n  return _('span.absol-span-input[contenteditable=\"true\"]');\n};\n\n_ACore[\"default\"].install(SpanInput);\n\nvar _default = SpanInput;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/SpanInput.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/Sprite.js":
/*!***********************************************!*\
  !*** ./node_modules/absol-acomp/js/Sprite.js ***!
  \***********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = exports.STOP = exports.STATE_TO_STRING = exports.START = exports.RUNNING = exports.READY = exports.PAUSE = exports.NOT_READY = exports.ERROR = void 0;\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\nvar NOT_READY = 0;\nexports.NOT_READY = NOT_READY;\nvar READY = 1;\nexports.READY = READY;\nvar START = 2;\nexports.START = START;\nvar RUNNING = 3;\nexports.RUNNING = RUNNING;\nvar PAUSE = 4;\nexports.PAUSE = PAUSE;\nvar STOP = 5;\nexports.STOP = STOP;\nvar ERROR = 6;\nexports.ERROR = ERROR;\nvar STATE_TO_STRING = ['NOT_READY', 'READY', 'START', 'RUNNING', 'PAUSE', 'STOP', 'ERROR'];\n/**\r\n * @augments AElement\r\n * @augments HTMLCanvasElement\r\n * @constructor\r\n */\n\nexports.STATE_TO_STRING = STATE_TO_STRING;\n\nfunction Sprite() {\n  this.loadTextureTimeout = 5000;\n  this._textureLoaded = false;\n  this._state = NOT_READY;\n  this.defineEvent(['ready', 'srcerror', 'play', 'resume', 'pause', 'stop', 'reset', 'end', 'frame']);\n  this._length = 60;\n  this._lastDrawFrame = -1;\n  this._frameIndex = 0;\n  this._timeout = -1;\n  this.ctx = this.getContext('2d');\n  this._fps = 10;\n  this._lastDrawMilis = 0;\n  this._overTime = 0;\n  this.draw = this.draw.bind(this);\n  this.texture = null;\n  this._frames = {\n    type: 'grid',\n    col: 1,\n    row: 1\n  };\n  this._loop = false;\n}\n\nSprite.cache = {};\n\nSprite.prototype.draw = function () {\n  //todo\n  var now = new Date().getTime();\n  var dt = this._overTime + now - this._lastDrawMilis;\n  var di = Math.floor(dt / 1000 * this._fps);\n  var frameIndex = this._frameIndex + di;\n\n  if (this._loop) {\n    frameIndex = frameIndex % this._length;\n  } else {\n    frameIndex = Math.min(this._length - 1, frameIndex);\n  }\n\n  if (!isNaN(this._frameIndex) && frameIndex != this._frameIndex) {\n    this.drawFrame(this._frameIndex);\n  }\n\n  this._overTime = dt - di * 1000 / this._fps;\n  var nextTime = now + 1000 / this._fps - this._overTime - new Date().getTime();\n  this._lastDrawMilis = now;\n  this._frameIndex = frameIndex;\n  this._timeout = -1;\n\n  if (this._loop || frameIndex + 1 < this._length) {\n    if (this._state == RUNNING) this._timeout = setTimeout(this.draw, nextTime);\n  } else this.stop();\n};\n\nSprite.prototype.drawFrame = function (index) {\n  if (this._lastDrawFrame == index) return;\n  this._lastDrawFrame = index;\n  this.ctx.clearRect(0, 0, this.width, this.height);\n\n  if (this._frames.type == 'grid') {\n    var imgWidth = this.texture.naturalWidth;\n    var imgHeight = this.texture.naturalHeight;\n    var sHeight = imgHeight / this._frames.row;\n    var sWidth = imgWidth / this._frames.col;\n    var sx = index % this._frames.col * sWidth;\n    var sy = Math.floor(index / this._frames.col) * sHeight;\n    this.ctx.drawImage(this.texture, sx, sy, sWidth, sHeight, 0, 0, this.width, this.height);\n  } else {}\n\n  this.emit('frame', {\n    name: 'frame',\n    target: this,\n    frameIndex: index\n  }, this);\n};\n\nSprite.prototype.stop = function () {\n  this.pause();\n  if (this._state != PAUSE) return this;\n  this._state = STOP;\n  this.emit('stop', {\n    name: 'stop',\n    target: this\n  }, this);\n  return this;\n};\n\nSprite.prototype.pause = function () {\n  if (this._state != RUNNING) return this;\n  this._state = PAUSE;\n\n  if (this._timeout > 0) {\n    clearTimeout(this._timeout);\n    this._timeout = -1;\n  }\n\n  var now = new Date().getTime();\n  this._overTime += now - this._lastDrawMilis;\n  this.emit('pause', {\n    name: 'pause',\n    target: this\n  }, this);\n};\n\nSprite.prototype.resume = function () {\n  if (this._state != START && this._state != PAUSE) return this;\n  if (this._state == RUNNING) return this;\n  this._state = RUNNING;\n  var now = new Date().getTime();\n  this._lastDrawMilis = now;\n  this.draw();\n  this.emit('resume', {\n    name: 'pause',\n    target: this\n  }, this);\n};\n\nSprite.prototype.reset = function () {\n  this._frameIndex = 0;\n  this._overTime = 0;\n};\n\nSprite.prototype.play = function () {\n  if (this._state == ERROR) return this;\n  if (this._state == RUNNING) return this;\n\n  if (this._state == READY || this._state == STOP) {\n    this.reset();\n  }\n\n  this._state = START;\n  this.emit('play', {\n    name: 'start',\n    target: this\n  }, this);\n  this.resume();\n  return this;\n};\n\nSprite.prototype.afterReady = function () {\n  var thisSprite = this;\n  if (this._state != NOT_READY && this._state != ERROR) return Promise.resolve();else return new Promise(function (rs, rj) {\n    thisSprite.once('ready', rs);\n    thisSprite.once('srcerror', rj);\n  });\n};\n\nSprite.tag = 'sprite';\n\nSprite.render = function () {\n  return _('canvas.as-sprite');\n};\n\nSprite.property = {};\nSprite.property.frames = {\n  set: function set(value) {\n    this.stop();\n    this._lastDrawFrame = -1;\n\n    if (value && value.type == 'grid') {\n      this._length = value.col * value.row;\n    }\n\n    this._frames = value;\n\n    if (this._textureLoaded && this._frames && this._state == NOT_READY) {\n      //todo: verify frame\n      this._state = READY;\n      this.emit('ready', {\n        target: this,\n        name: 'ready'\n      }, this);\n    }\n  },\n  get: function get() {\n    return this._frames;\n  }\n};\nSprite.property.frameIndex = {\n  set: function set(value) {\n    value = value || 0;\n    if (value < 0) value = this._length - 1;\n\n    if (this._loop) {\n      this._frameIndex = value % this._length;\n      this._overTime = 0;\n    } else {\n      this._frameIndex = Math.max(this._length - 1, value);\n      this._overTime = 0;\n    }\n\n    this.drawFrame(this._frameIndex);\n  },\n  get: function get() {\n    return this._frameIndex;\n  }\n};\nSprite.property.src = {\n  set: function set(value) {\n    this.stop();\n    this._lastDrawFrame = -1; //did not draw any thing \n\n    value = value || [];\n    var lastSrc = this._src;\n    this._src = value || null;\n    if (lastSrc == this._src) return;\n    if (!value) this.texture = null;else {\n      var cImage;\n\n      if (!Sprite.cache[this._src]) {\n        cImage = new Image();\n        Sprite.cache[this._src] = cImage;\n        cImage.src = this._src;\n      } else {\n        cImage = Sprite.cache[this._src];\n      }\n\n      this.texture = cImage;\n      this._state = NOT_READY;\n      var thisSprite = this;\n      this._textureLoaded = false;\n\n      _Dom[\"default\"].waitImageLoaded(this.texture, this.loadTextureTimeout).then(function (rs) {\n        if (thisSprite.texture == cImage) {\n          thisSprite._textureLoaded = true;\n\n          if (thisSprite._frames) {\n            thisSprite._lastDrawFrame = -1;\n            thisSprite._state = READY;\n            thisSprite.emit('ready', {\n              target: thisSprite,\n              name: 'ready'\n            }, thisSprite);\n          }\n        }\n      }, function () {\n        if (thisSprite.texture == cImage) {\n          thisSprite._state = ERROR;\n          thisSprite.emit('srcerror', {\n            target: thisSprite,\n            name: 'srcerror'\n          }, thisSprite);\n        }\n      });\n    }\n  },\n  get: function get() {\n    return this._src;\n  }\n};\nSprite.property.state = {\n  get: function get() {\n    return STATE_TO_STRING[this._state];\n  }\n};\nSprite.property.length = {\n  get: function get() {\n    return this._length;\n  }\n};\nSprite.property.fps = {\n  set: function set(value) {\n    value = Math.max(value || 0, 0);\n    this._fps = value;\n\n    if (this._state == RUNNING) {\n      clearTimeout(this._timeout);\n      this._timeout = -1;\n      var now = new Date().getTime();\n      this._overTime += now - this._lastDrawMilis;\n      this._overTime = Math.min(1000 / this._fps, this._overTime);\n      this.draw();\n    }\n  },\n  get: function get() {\n    return this._fps;\n  }\n};\nSprite.property.loop = {\n  set: function set(value) {\n    value = !!value;\n    this._loop = value;\n  },\n  get: function get() {\n    return this._loop;\n  }\n};\n\n_ACore[\"default\"].install(Sprite);\n\nvar _default = Sprite;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/Sprite.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/StaticTabbar.js":
/*!*****************************************************!*\
  !*** ./node_modules/absol-acomp/js/StaticTabbar.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/statictabbar.css */ \"./node_modules/absol-acomp/css/statictabbar.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _stringGenerate = __webpack_require__(/*! absol/src/String/stringGenerate */ \"./node_modules/absol/src/String/stringGenerate.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar $ = _ACore[\"default\"].$;\nvar _ = _ACore[\"default\"]._;\n\nfunction StaticTabbar() {\n  var thisST = this;\n  this.$activeBox = $('.absol-static-tabbar-active-box', this);\n  this.$hline = $('.absol-static-tabbar-hline', this);\n  this.$buttons = [];\n  this._btDict = {};\n  this._activedButton = undefined;\n  this.sync = new Promise(function (resolve) {\n    _('attachhook').on('error', function () {\n      this.remove();\n      resolve();\n    }).addTo(thisST);\n  });\n  return this;\n}\n\nStaticTabbar.tag = 'StaticTabbar'.toLowerCase();\n\nStaticTabbar.render = function () {\n  return _({\n    \"class\": 'absol-static-tabbar',\n    extendEvent: 'change',\n    child: [{\n      \"class\": 'absol-static-tabbar-active-box',\n      child: '.absol-static-tabbar-hline'\n    }]\n  });\n};\n\nStaticTabbar.prototype.fireChange = function (data) {\n  this.emit('change', {\n    target: this,\n    data: data,\n    value: this.value\n  }, self);\n};\n\nStaticTabbar.property = {};\nStaticTabbar.property.items = {\n  set: function set(value) {\n    this.$buttons.forEach(function (e) {\n      e.remove();\n    });\n    this._items = value;\n    var self = this;\n    this.$buttons = this.items.map(function (tab) {\n      var ident = tab.value || (0, _stringGenerate.randomIdent)();\n\n      var button = _({\n        tag: 'button',\n        \"class\": 'absol-static-tabbar-button',\n        id: 'tab-' + ident,\n        child: {\n          tag: 'span',\n          child: {\n            text: tab.text\n          }\n        },\n        on: {\n          click: function click(event) {\n            if (self.value != tab.value) {\n              self.value = ident;\n              self.fireChange(tab);\n            }\n          }\n        }\n      }).addTo(self);\n\n      self._btDict[ident] = button;\n      return button;\n    });\n\n    if (this.value !== undefined) {\n      this.sync.then(this.activeTab.bind(this, this.value));\n    }\n  },\n  get: function get() {\n    return this._items || [];\n  }\n};\nStaticTabbar.property.value = {\n  set: function set(value) {\n    this._value = value;\n\n    if (this.$buttons.length > 0) {\n      this.sync.then(this.activeTab.bind(this, value));\n    }\n  },\n  get: function get() {\n    return this._value;\n  }\n};\n\nStaticTabbar.prototype.activeTab = function (ident) {\n  if (this._activedButton) this._activedButton.removeClass('active');\n  var button = this._btDict[ident];\n  this._activedButton = button;\n\n  if (button) {\n    button.addClass('active');\n    var bound = this.getBoundingClientRect();\n    var buttonBound = button.getBoundingClientRect();\n    var dx = buttonBound.left - bound.left;\n    var fontSize = this.getFontSize();\n    this.$activeBox.addStyle({\n      left: dx / fontSize + 'em',\n      width: buttonBound.width / fontSize + 'em'\n    });\n  } else {\n    this.$activeBox.addStyle({\n      left: '0',\n      width: '0'\n    });\n  }\n};\n\n_ACore[\"default\"].install('statictabbar', StaticTabbar);\n\nvar _default = StaticTabbar;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/StaticTabbar.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/Switch.js":
/*!***********************************************!*\
  !*** ./node_modules/absol-acomp/js/Switch.js ***!
  \***********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/switch.css */ \"./node_modules/absol-acomp/css/switch.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _CheckBoxInput = _interopRequireDefault(__webpack_require__(/*! ./CheckBoxInput */ \"./node_modules/absol-acomp/js/CheckBoxInput.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n\nfunction Switch() {\n  var thisS = this;\n  this.$input = $('input', this);\n  this.$input.on('click', function (event) {\n    thisS.emit('change', event, thisS);\n  });\n\n  _OOP[\"default\"].drillProperty(this, this.$input, 'checked');\n\n  _OOP[\"default\"].drillProperty(this, this.$input, 'isOn', 'checked');\n\n  this.on('click', function (event) {\n    if (this.readOnly) event.preventDefault();\n  }, true);\n}\n\nSwitch.tag = 'switch';\n\nSwitch.render = function () {\n  return _({\n    tag: 'label',\n    \"class\": 'absol-switch',\n    extendEvent: 'change',\n    child: ['input[type=\"checkbox\"]', 'span.absol-switch-slider']\n  });\n};\n\nSwitch.attribute = {\n  checked: {\n    set: function set(value) {\n      if (value == 'false' || value == null) {\n        this.checked = false;\n      } else {\n        this.checked = true;\n      }\n    },\n    get: function get() {\n      return this.checked ? 'true' : 'false';\n    },\n    remove: function remove() {\n      this.checked = false;\n    }\n  },\n  disabled: {\n    set: function set(value) {\n      if (value == 'false' || value == null) {\n        this.disabled = false;\n      } else {\n        this.disabled = true;\n      }\n    },\n    get: function get() {\n      return this.disabled ? 'true' : 'false';\n    },\n    remove: function remove() {\n      this.disabled = false;\n    }\n  }\n};\nSwitch.property = {\n  disabled: {\n    set: function set(value) {\n      this.$input.disabled = !!value;\n\n      if (value) {\n        this.addClass('disabled');\n      } else {\n        this.removeClass('disabled');\n      }\n    },\n    get: function get() {\n      return this.$input.disabled;\n    }\n  },\n  readOnly: _CheckBoxInput[\"default\"].property.readOnly\n};\n\n_ACore[\"default\"].install('switch', Switch);\n\nvar _default = Switch;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/Switch.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/TOCItem.js":
/*!************************************************!*\
  !*** ./node_modules/absol-acomp/js/TOCItem.js ***!
  \************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\n__webpack_require__(/*! ../css/toclist.css */ \"./node_modules/absol-acomp/css/toclist.css\");\n\nvar _CheckBoxInput = _interopRequireDefault(__webpack_require__(/*! ./CheckBoxInput */ \"./node_modules/absol-acomp/js/CheckBoxInput.js\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _EventEmitter = __webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction TOCItem() {\n  this.$iconP = null;\n  this.$iconCtn = (0, _ACore.$)('.as-toc-item-ext-icon-ctn', this);\n  this._status = 'none';\n  this.$name = (0, _ACore.$)('.as-toc-item-name', this);\n  this.$nameInput = (0, _ACore.$)('.as-toc-item-name-input', this).on('keydown', this.eventHandler.keyDownNameInput).on('paste', this.eventHandler.keyDownNameInput);\n  this.$toggleCtn = (0, _ACore.$)('.as-toc-item-toggle-ico-ctn', this);\n  this._level = 0;\n  this.$checkbox = (0, _ACore.$)(_CheckBoxInput[\"default\"].tag, this).on('change', this.eventHandler.checkedChange);\n  this.$checkbox.disabled = true;\n  this.$checkbox.addStyle('display', 'none');\n  this.$checkIco = (0, _ACore.$)('.as-toc-item-check-ctn .mdi-check', this).addStyle('display', 'none').addStyle('font-size', '18px');\n  this.$quickMenuBtn = (0, _ACore.$)('.as-toc-item-quick-menu-ctn button', this).on('click', this.eventHandler.clickQuickMenuBtn);\n  this.on('click', this.eventHandler.click);\n  this._lastClickTime = 0;\n  /***\r\n   * @name hasQuickMenu\r\n   * @type {boolean}\r\n   * @memberOf TOCItem#\r\n   */\n\n  /***\r\n  * @name name\r\n  * @type {string}\r\n  * @memberOf TOCItem#\r\n  */\n\n  /***\r\n   * @name status\r\n   * @type {\"none\"|\"open\"|\"close\"}\r\n   * @memberOf TOCItem#\r\n   */\n\n  /***\r\n   * @name level\r\n   * @type {number}\r\n   * @memberOf TOCItem#\r\n   */\n\n  /***\r\n   * @name checked\r\n   * @type {boolean}\r\n   * @memberOf TOCItem#\r\n   */\n\n  /***\r\n   * @name nodeData\r\n   * @type {{}}\r\n   * @memberOf TOCItem#\r\n   */\n}\n\nTOCItem.tag = 'TOCItem'.toLowerCase();\n\nTOCItem.render = function () {\n  return (0, _ACore._)({\n    \"class\": ['as-toc-item', 'as-has-quick-menu'],\n    extendEvent: ['presstoggle', 'checkedchange', 'pressquickmenu', 'press', 'renamefinish'],\n    child: [{\n      \"class\": 'as-toc-item-toggle-ico-ctn',\n      child: 'toggler-ico'\n    }, '.as-toc-item-ext-icon-ctn', {\n      \"class\": 'as-toc-item-name-ctn',\n      child: [{\n        tag: 'span',\n        \"class\": 'as-toc-item-name',\n        child: {\n          text: 'đây là cái tên'\n        }\n      }, {\n        tag: 'input',\n        \"class\": 'as-toc-item-name-input',\n        attr: {\n          type: 'text'\n        }\n      }]\n    }, {\n      \"class\": 'as-toc-item-check-ctn',\n      child: [{\n        tag: _CheckBoxInput[\"default\"].tag\n      }, 'span.mdi.mdi-check']\n    }, {\n      \"class\": 'as-toc-item-quick-menu-ctn',\n      child: {\n        tag: 'button',\n        child: 'span.mdi.mdi-dots-vertical'\n      }\n    }]\n  });\n};\n\nTOCItem.property = {};\nTOCItem.property.icon = {\n  set: function set(value) {\n    if (this.$iconP) {\n      this.$iconP.remove();\n      this.$iconP = undefined;\n    }\n\n    if (value) {\n      var newE;\n\n      if (!_Dom[\"default\"].isDomNode(value)) {\n        newE = (0, _ACore._)(value);\n      }\n\n      this.$iconP = newE;\n      this.$iconCtn.addChild(newE);\n      this._icon = value;\n    } else {\n      this._icon = undefined;\n    }\n  },\n  get: function get() {\n    return this._icon;\n  }\n};\nTOCItem.property.status = {\n  set: function set(value) {\n    if (['none', 'open', 'close'].indexOf(value) < 0) value = 'none';\n    this.removeClass('as-status-' + this._status);\n    this._status = value;\n    this.addClass('as-status-' + value);\n  },\n  get: function get() {\n    return this._status;\n  }\n};\nTOCItem.property.name = {\n  set: function set(value) {\n    this.$name.firstChild.data = value || '';\n  },\n  get: function get() {\n    return this.$name.firstChild.data;\n  }\n};\nTOCItem.property.level = {\n  set: function set(value) {\n    this._level = value;\n    this.addStyle('--level', value + '');\n  },\n  get: function get() {\n    return this._level;\n  }\n};\nTOCItem.property.checked = {\n  set: function set(value) {\n    this.$checkbox.checked = value;\n\n    if (value) {\n      this.$checkIco.removeStyle('display');\n    } else {\n      this.$checkIco.addStyle('display', 'none');\n    }\n  },\n  get: function get() {\n    return this.$checkbox.checked;\n  }\n};\nTOCItem.property.disabled = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-disabled');\n    } else {\n      this.removeClass('as-disabled');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-disabled');\n  }\n};\nTOCItem.property.hasQuickMenu = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-has-quick-menu');\n    } else {\n      this.removeClass('as-has-quick-menu');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-has-quick-menu');\n  }\n};\nTOCItem.property.extendClasses = {\n  set: function set(value) {\n    var _this = this;\n\n    value = value || [];\n    if (typeof value === 'string') value = value.trim().split(/\\s/).filter(function (x) {\n      return !!x;\n    });\n\n    if (this._extendClasses) {\n      this._extendClasses.forEach(function (c) {\n        return _this.removeClass(c);\n      });\n    }\n\n    this._extendClasses = value;\n\n    this._extendClasses.forEach(function (c) {\n      return _this.addClass(c);\n    });\n  },\n  get: function get() {\n    return this._extendClasses || [];\n  }\n};\n\nTOCItem.prototype.rename = function () {\n  this.addClass('as-renaming');\n  var name = this.name;\n  var textWidth = (0, _utils.measureText)(name, '14px Arial, Helvetica, sans-serif').width;\n  this.$nameInput.addStyle('width', textWidth + 2 + 'px');\n  this.$nameInput.value = name;\n  this.$nameInput.focus();\n  this.$nameInput.select();\n  this.$nameInput.once('blur', function (event) {\n    var event1;\n\n    if (this.$nameInput.value !== name) {\n      event1 = (0, _EventEmitter.copyEvent)(event, {\n        originalEvent: event,\n        type: 'renamefinish',\n        newName: this.$nameInput.value,\n        __promise__: Promise.resolve(true),\n        waitFor: function waitFor(promise) {\n          if (promise && promise.then) {\n            this.__promise__ = promise;\n          } else {\n            this.__promise__ = Promise.resolve(promise);\n          }\n        }\n      });\n      this.emit('renamefinish', event1, this);\n\n      event1.__promise__.then(function (result) {\n        if (result === true) {\n          this.name = event1.newName;\n        } else if (typeof result === 'string') {\n          this.name = result;\n        }\n      }.bind(this));\n    }\n\n    this.removeClass('as-renaming');\n  }.bind(this));\n};\n/***\r\n * @memberOf TOCItem#\r\n * @type {{}}\r\n */\n\n\nTOCItem.eventHandler = {};\n\nTOCItem.eventHandler.keyDownNameInput = function (event) {\n  var extendText = '';\n\n  if (event.type === 'paste') {\n    extendText = (event.clipboardData || window.clipboardData).getData('text') || '';\n  } else if (event.key.length === 1 && !(event.ctrl && event.key === 'C')) {\n    extendText = event.key;\n  } else if (event.key === 'Enter') {\n    this.$nameInput.blur();\n  }\n\n  if (extendText.length > 0) {\n    this.$nameInput.addStyle('width', (0, _utils.measureText)(this.$nameInput.value + extendText, '14px Arial, Helvetica, sans-serif').width + 2 + 'px');\n  }\n\n  setTimeout(function () {\n    var name = this.$nameInput.value;\n    this.$nameInput.addStyle('width', (0, _utils.measureText)(name, '14px Arial, Helvetica, sans-serif').width + 2 + 'px');\n  }.bind(this), 0);\n};\n\nTOCItem.eventHandler.checkedChange = function (event) {\n  this.emit('checkedchange', {\n    type: 'checkedchange',\n    target: this,\n    originalEvent: event\n  }, this);\n};\n\nTOCItem.eventHandler.clickQuickMenuBtn = function (event) {\n  this.emit('pressquickmenu', {\n    type: 'pressquickmenu',\n    originalEvent: event\n  }, this);\n};\n\nTOCItem.eventHandler.click = function (event) {\n  if ((0, _EventEmitter.hitElement)(this.$checkbox, event) || (0, _EventEmitter.hitElement)(this.$quickMenuBtn, event)) return;\n  var now = Date.now();\n\n  if ((0, _EventEmitter.hitElement)(this.$toggleCtn, event)) {\n    this.emit('presstoggle', {\n      originalEvent: event,\n      type: 'presstoggle'\n    }, this);\n  } else {\n    if (now - this._lastClickTime > 500) {\n      this.emit('press', {\n        type: 'press',\n        originalEvent: event\n      }, this);\n    } else if (this.status === \"close\" || this.status === 'open') {\n      this.emit('presstoggle', {\n        originalEvent: event,\n        type: 'presstoggle'\n      }, this);\n    }\n\n    this._lastClickTime = now;\n  }\n};\n\n_ACore[\"default\"].install(TOCItem);\n\nvar _default = TOCItem;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/TOCItem.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/TOCList.js":
/*!************************************************!*\
  !*** ./node_modules/absol-acomp/js/TOCList.js ***!
  \************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _TOCItem = _interopRequireDefault(__webpack_require__(/*! ./TOCItem */ \"./node_modules/absol-acomp/js/TOCItem.js\"));\n\nvar _QuickMenu = _interopRequireDefault(__webpack_require__(/*! ./QuickMenu */ \"./node_modules/absol-acomp/js/QuickMenu.js\"));\n\nvar _BlurTrigger = _interopRequireDefault(__webpack_require__(/*! ./tool/BlurTrigger */ \"./node_modules/absol-acomp/js/tool/BlurTrigger.js\"));\n\nvar _search = _interopRequireWildcard(__webpack_require__(/*! ./list/search */ \"./node_modules/absol-acomp/js/list/search.js\"));\n\nvar _noop = _interopRequireDefault(__webpack_require__(/*! absol/src/Code/noop */ \"./node_modules/absol/src/Code/noop.js\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _EventEmitter = __webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction TOCList() {\n  this.$searchInput = null;\n  this.$body = (0, _ACore.$)('.as-toc-list-body', this);\n  this.$searching = (0, _ACore.$)('.as-toc-list-searching', this);\n  this.rootController = new TOCVirtualRootController(this, [], this.$body);\n  this.searchCache = {};\n  this.savedState = {\n    active: [],\n    status: {}\n  };\n  /***\r\n   * @name nodes\r\n   * @type {{}[]}\r\n   * @memberOf TOCList#\r\n   */\n}\n\nTOCList.tag = 'TOCList'.toLowerCase();\n\nTOCList.render = function () {\n  return (0, _ACore._)({\n    extendEvent: ['pressnode', 'checkednodechange', 'pressnodequickmmenu', 'statechange'],\n    \"class\": 'as-toc-list',\n    child: ['.as-toc-list-body', '.as-toc-list-searching']\n  });\n};\n\nTOCList.prototype.applySavedState = function () {\n  var savedStatus = this.savedState.status;\n\n  function visitArr(arr) {\n    arr.forEach(function (ct) {\n      var status = savedStatus[ct.ident];\n\n      if (status) {\n        ct.status = status;\n      }\n\n      savedStatus[ct.ident] = ct.status;\n      visitArr(ct.children);\n    });\n  }\n\n  visitArr(this.rootController.children);\n\n  if (this.savedState.active) {\n    this.savedState.active.forEach(function (ident) {\n      var activeCt = this.findControllerByIdent(ident);\n      if (activeCt) activeCt.active();\n    }.bind(this));\n  }\n};\n\nTOCList.prototype.resetSavedState = function () {\n  this.savedState = {\n    active: null,\n    status: {}\n  };\n};\n\nTOCList.prototype.saveState = function () {\n  var oldState = this.savedState;\n  var savedState = {\n    active: [],\n    status: {}\n  };\n  var changed = false;\n\n  function visitArr(arr) {\n    arr.forEach(function (ct) {\n      savedState.status[ct.ident] = ct.status;\n      changed = changed || savedState.status[ct.ident] !== oldState.status[ct.ident];\n\n      if (ct.nodeElt.hasClass('as-active')) {\n        savedState.active.push(ct.ident);\n      }\n\n      visitArr(ct.children);\n    });\n  }\n\n  var oldActive = (oldState.active || []).slice();\n  oldActive.sort();\n  var newActive = (savedState.active || []).slice();\n  newActive.sort();\n  changed = changed || oldActive.join('/') !== newActive.join('/');\n  visitArr(this.rootController.children);\n  this.savedState = savedState;\n  if (changed) this.notifySavedStateChange();\n};\n\nTOCList.prototype.notifySavedStateChange = function () {\n  this.emit('statechange', {\n    target: this,\n    type: 'statechange'\n  }, this);\n};\n\nTOCList.prototype.loadSavedState = function (savedState) {\n  savedState = savedState || {};\n  if (typeof savedState.active === 'string') savedState.active = [savedState.active];\n  this.savedState = {\n    active: savedState.active || [],\n    status: savedState.status || {}\n  };\n  this.applySavedState();\n};\n/***\r\n * @param {number=} n\r\n */\n\n\nTOCList.prototype.openAllNodeRecursive = function (n) {\n  this.rootController.openRecursive(n);\n  this.saveState();\n};\n\nTOCList.prototype.closeAllNodeRecursive = function () {\n  this.rootController.closeRecursive();\n  this.saveState();\n};\n\nTOCList.prototype.deactivateAllNode = function () {\n  this.rootController.deactivateRecursive();\n};\n/***\r\n *\r\n * @param ident\r\n * @returns {TOCNodeController|null}\r\n */\n\n\nTOCList.prototype.activeNode = function (ident) {\n  var nodeCt = this.findControllerByIdent(ident);\n  var parent;\n\n  if (nodeCt) {\n    nodeCt.active();\n    parent = nodeCt.parent;\n\n    while (parent) {\n      if (parent.open && parent.status === 'close') parent.open();\n      parent = parent.parent;\n    }\n\n    setTimeout(function () {\n      (0, _utils.vScrollIntoView)(nodeCt.nodeElt);\n    }, 100);\n  }\n\n  return nodeCt;\n};\n\nTOCList.prototype.getActivatedNodes = function () {\n  var res = [];\n  this.rootController.traverse(function (node) {\n    if (node.activated) {\n      res.push(node);\n    }\n  });\n  return res;\n};\n/***\r\n *\r\n * @param {string} ident\r\n * @param {TOCNodeController|TOCVirtualRootController=} rootController\r\n * @returns {TOCNodeController}\r\n */\n\n\nTOCList.prototype.findControllerByIdent = function (ident, rootController) {\n  var res = null;\n  rootController = rootController || this.rootController;\n\n  function visitArr(arr) {\n    arr.some(function (ct) {\n      if (ct.ident + '' === ident + '') {\n        res = ct;\n        return true;\n      }\n\n      visitArr(ct.children);\n    });\n  }\n\n  visitArr(rootController.children);\n  return res;\n};\n\nTOCList.prototype.makeNodeController = function (nodeData) {\n  return new TOCNodeController(this, nodeData, null);\n};\n/**\r\n *\r\n * @param query\r\n * @private\r\n * @returns {TOCVirtualRootController}\r\n */\n\n\nTOCList.prototype._calcSearch = function (query) {\n  var searchRootController = this.searchCache[query];\n  if (searchRootController) return searchRootController;\n  var itemTree = this.searchCache.__itemTree__;\n\n  if (!itemTree) {\n    itemTree = this.nodes.map(function visit(node) {\n      var item = (0, _search[\"default\"])({\n        text: node.name,\n        value: Object.assign({}, node)\n      });\n\n      if (node.children && node.children.length > 0) {\n        item.items = node.children.map(visit);\n      }\n\n      return item;\n    });\n    this.searchCache.__itemTree__ = itemTree;\n  }\n\n  var resultItemTree = (0, _search.searchTreeListByText)(query, itemTree);\n  var resultNodes = resultItemTree.map(function visit2(item) {\n    var node = Object.assign({}, item.value);\n    delete node.children;\n\n    if (item.items && item.items.length > 0) {\n      node.children = item.items.map(visit2);\n    }\n\n    return node;\n  });\n  this.searchCache[query] = new TOCVirtualRootController(this, resultNodes);\n  return this.searchCache[query];\n};\n\nTOCList.prototype.search = function (query) {\n  query = query || '';\n  query = query.trim().replace('\\s(\\s+)', ' ');\n\n  var searchRoot = this._calcSearch(query);\n\n  var activeNodeCt;\n\n  if (query.length === 0) {\n    this.removeClass('as-searching');\n    this.$searching.clearChild();\n  } else {\n    this.addClass('as-searching');\n    this.$searching.clearChild();\n    searchRoot.openRecursive();\n    activeNodeCt = this.findControllerByIdent(this.savedState.active, searchRoot);\n    if (activeNodeCt) activeNodeCt.active();\n    searchRoot.view = this.$searching;\n  }\n};\n\nTOCList.property = {};\nTOCList.property.nodes = {\n  /***\r\n   * @this TOCList\r\n   * @param nodes\r\n   */\n  set: function set(nodes) {\n    this.searchCache = {};\n    nodes = nodes || [];\n    this.rootController = new TOCVirtualRootController(this, nodes);\n    this.rootController.view = this.$body;\n    this.applySavedState();\n  },\n  get: function get() {\n    return this.rootController.nodes;\n  }\n};\nTOCList.property.searchInput = {\n  /***\r\n   * @this TOCList\r\n   */\n  set: function set(elt) {\n    if (this.$searchInput) {\n      this.$searchInput.off('stoptyping', this.eventHandler.searchTextInputModify);\n    }\n\n    this.$searchInput = elt;\n\n    if (this.$searchInput) {\n      this.$searchInput.on('stoptyping', this.eventHandler.searchTextInputModify);\n    }\n  },\n\n  /***\r\n   * @this TOCList\r\n   */\n  get: function get() {\n    return this.$searchInput;\n  }\n};\n/***\r\n * @memberOf TOCList#\r\n * @type {{}}\r\n */\n\nTOCList.eventHandler = {};\n\nTOCList.eventHandler.pressNode = function (nodeController, event) {\n  var newEvent = (0, _EventEmitter.copyEvent)(event.originalEvent || event, {\n    type: 'pressnode',\n    target: this,\n    originalEvent: event.originalEvent || event,\n    controller: nodeController,\n    nodeData: nodeController.nodeElt.nodeData,\n    nodeElt: nodeController.nodeElt\n  });\n  this.emit('pressnode', newEvent, this);\n};\n\nTOCList.eventHandler.checkedNodeChange = function (nodeController, event) {\n  var newEvent = {\n    type: 'checkednodechange',\n    target: this,\n    originalEvent: event.originalEvent || event,\n    controller: nodeController,\n    nodeData: nodeController.nodeElt.nodeData,\n    nodeElt: nodeController.nodeElt\n  };\n  this.emit('checkednodechange', newEvent, this);\n};\n\nTOCList.eventHandler.pressNodeQuickMenu = function (nodeController, event) {\n  var newEvent = {\n    type: 'pressnodequickmmenu',\n    target: this,\n    originalEvent: event.originalEvent || event,\n    controller: nodeController,\n    nodeData: nodeController.nodeElt.nodeData,\n    nodeElt: nodeController.nodeElt\n  };\n\n  newEvent.showMenu = function (menuProps, onSelect) {\n    var token = _QuickMenu[\"default\"].show(nodeController.nodeElt.$quickMenuBtn, menuProps, [3, 4], onSelect, false);\n\n    var blurTrigger = new _BlurTrigger[\"default\"]([], 'click', function () {\n      _QuickMenu[\"default\"].close(token);\n    }, 10, 30);\n  };\n\n  this.emit('pressnodequickmmenu', newEvent, this);\n};\n/***\r\n * @this TOCList\r\n */\n\n\nTOCList.eventHandler.searchTextInputModify = function () {\n  this.search(this.$searchInput.value);\n};\n\n_ACore[\"default\"].install(TOCList);\n/***\r\n *\r\n * @param {TOCList} listElt\r\n * @param {{}[]} nodes\r\n * @constructor\r\n */\n\n\nfunction TOCVirtualRootController(listElt, nodes) {\n  Object.defineProperties(this, {\n    root: {\n      value: this\n    }\n  });\n  this.listElt = listElt;\n  this.level = -1;\n  this.nodes = nodes;\n  /***\r\n   *\r\n   * @type {TOCNodeController[]}\r\n   */\n\n  this.children = nodes.map(function (nodeData) {\n    return new TOCNodeController(listElt, nodeData, this);\n  }.bind(this));\n  this._view = null;\n  /****\r\n   * @type {AElement}\r\n   * @name view\r\n   * @memberOf TOCVirtualRootController#\r\n   */\n}\n\nTOCVirtualRootController.prototype.deactivateRecursive = function () {\n  this.children.forEach(function (ct) {});\n};\n\nTOCVirtualRootController.prototype.openRecursive = function (n) {\n  this.children.forEach(function (ct) {\n    ct.openRecursive(n);\n  });\n};\n\nTOCVirtualRootController.prototype.closeRecursive = function () {\n  this.children.forEach(function (ct) {\n    ct.closeRecursive();\n  });\n};\n\nTOCVirtualRootController.prototype.getViewElements = function () {\n  var ac = [];\n  this.children.forEach(function (ct) {\n    ct.getViewElements(ac);\n  });\n  return ac;\n};\n\nTOCVirtualRootController.prototype.indexOfChild = function (child) {\n  for (var i = 0; i < this.children.length; ++i) {\n    if (child === this.children[i] || this.children[i].ident === child) return i;\n  }\n\n  return -1;\n};\n/***\r\n *\r\n * @param {TOCNodeController} controller\r\n * @param {TOCNodeController} at\r\n * @returns {TOCVirtualRootController}\r\n */\n\n\nTOCVirtualRootController.prototype.addChildBefore = function (controller, at) {\n  var atIdx;\n\n  if (at) {\n    atIdx = this.indexOfChild(at);\n\n    if (atIdx >= 0) {\n      if (controller.parent) controller.remove();\n      this.children.splice(atIdx, 0, controller);\n      controller.__parent__ = this;\n\n      if (at.nodeElt.parentElement) {\n        (0, _utils.addElementsBefore)(at.nodeElt.parentElement, controller.getViewElements(), at.nodeElt);\n      }\n\n      this.updateStatus();\n    } else {\n      throw new Error(\"The node before which the new node is to be inserted is not a child of this node.\");\n    }\n  } else {\n    if (controller.parent) controller.remove();\n    this.children.push(controller);\n    if (this.view) this.addChild(controller.getViewElements());\n    this.updateStatus();\n  }\n\n  controller.setLevelRecursive(this.level + 1);\n  return this;\n};\n\nTOCVirtualRootController.prototype.addChild = function (controller) {\n  this.addChildBefore(controller, null);\n  return this;\n};\n/***\r\n *\r\n * @param {TOCNodeController} controller\r\n * @param at\r\n */\n\n\nTOCVirtualRootController.prototype.addChildAfter = function (controller, at) {\n  var atIdx;\n  var lastElement;\n\n  if (at) {\n    atIdx = this.indexOfChild(at);\n\n    if (atIdx === this.children.length) {\n      if (controller.parent) controller.remove();\n      controller.__parent__ = this;\n      this.children.push(controller);\n      if (this.view) this.view.addChild(controller.getViewElements());\n    } else if (atIdx >= 0) {\n      if (controller.parent) controller.remove();\n      controller.__parent__ = this;\n      this.children.splice(atIdx, 0, controller);\n\n      if (at.nodeElt.parentElement) {\n        lastElement = at.getViewElements().pop();\n        (0, _utils.addElementAfter)(at.nodeElt.parentElement, controller.getViewElements(), lastElement);\n      }\n    } else {\n      throw new Error(\"The node before which the new node is to be inserted is not a child of this node.\");\n    }\n  } else {\n    if (controller.parent) controller.remove();\n    controller.__parent__ = this;\n    this.children.unshift(controller);\n    (0, _utils.addElementAfter)(this.view, controller.getViewElements(), this.view.firstChild);\n  }\n\n  return this;\n};\n\nTOCVirtualRootController.prototype.updateStatus = _noop[\"default\"];\n/***\r\n * @param {TOCNodeController} child\r\n * @returns {TOCVirtualRootController|TOCNodeController}\r\n */\n\nTOCVirtualRootController.prototype.removeChild = function (child) {\n  var idx = this.children.indexOf(child);\n\n  if (idx >= 0) {\n    this.children.splice(idx, 1);\n    child.getViewElements().forEach(function (elt) {\n      elt.remove();\n    });\n    this.updateStatus();\n  }\n\n  return this;\n};\n/***\r\n *\r\n * @param {function(nodeCt:TOCNodeController):(void|boolean)} callback return true to stop\r\n */\n\n\nTOCVirtualRootController.prototype.traverse = function (callback) {\n  this.children.some(function visit(ct) {\n    return callback(ct) || ct.children.some(visit);\n  });\n};\n\nObject.defineProperties(TOCVirtualRootController.prototype, {\n  firstChild: {\n    get: function get() {\n      return this.children[0] || null;\n    }\n  },\n  lastChild: {\n    get: function get() {\n      return this.children[this.children.length - 1] || null;\n    }\n  },\n  view: {\n    /***\r\n     * @this TOCVirtualRootController\r\n     * @param view\r\n     */\n    set: function set(view) {\n      view = view || null;\n      if (view === this._view) return;\n\n      if (this._view) {\n        this._view.clearChild();\n\n        this._view.rootController = null;\n        this._view = null;\n      }\n\n      if (view) {\n        if (view.rootController) {\n          view.rootController.view = null;\n        }\n\n        view.rootController = this;\n        this._view = view;\n\n        this._view.addChild(this.getViewElements());\n      }\n    },\n    get: function get() {\n      return this._view;\n    }\n  }\n});\n/***\r\n *\r\n * @param {TOCList} listElt\r\n * @param {{}} nodeData\r\n * @param {TOCNodeController|TOCVirtualRootController} parent\r\n * @constructor\r\n */\n\nfunction TOCNodeController(listElt, nodeData, parent) {\n  Object.defineProperties(this, {\n    listElt: {\n      value: listElt\n    },\n    __parent__: {\n      value: parent,\n      enumerable: false,\n      writable: true\n    }\n  });\n  this.level = parent ? parent.level + 1 : 0;\n  /***\r\n   * @type {TOCItem}\r\n   */\n\n  this.nodeElt = (0, _ACore._)({\n    tag: _TOCItem[\"default\"].tag,\n    props: {\n      nodeData: nodeData,\n      checked: !!nodeData.checked,\n      name: nodeData.name,\n      icon: nodeData.icon,\n      level: this.level,\n      controller: this,\n      status: 'none',\n      extendClasses: nodeData.extendClasses\n    },\n    on: {\n      presstoggle: this.toggle.bind(this),\n      press: this.ev_press.bind(this),\n      checkedchange: this.ev_checkedChange.bind(this),\n      pressquickmenu: this.ev_pressQuickMenu.bind(this)\n    }\n  });\n  if (nodeData.hasQuickMenu === false) this.nodeElt.hasQuickMenu = false;\n  this.nodeElt.on('presstoggle', this.listElt.saveState.bind(this.listElt));\n  /***\r\n   * @name children\r\n   * @type {TOCNodeController[]}\r\n   * @memberOf TOCNodeController#\r\n   */\n\n  if (nodeData.children && nodeData.children.length > 0) {\n    this.nodeElt.status = 'close';\n    this.children = nodeData.children.map(function (c) {\n      return new TOCNodeController(listElt, c, this);\n    }.bind(this));\n  } else {\n    this.children = [];\n  }\n}\n\nTOCNodeController.prototype.indexOfChild = TOCVirtualRootController.prototype.indexOfChild;\nTOCNodeController.prototype.traverse = TOCVirtualRootController.prototype.traverse;\n\nTOCNodeController.prototype.updateStatus = function () {\n  if (this.children.length === 0 && this.nodeElt.status !== 'none') {\n    this.nodeElt.status = 'none';\n  } else if (this.children.length > 0 && this.nodeElt.status === 'none') {\n    this.nodeElt.status = 'close';\n  }\n};\n\nTOCNodeController.prototype.deactivateRecursive = function () {\n  this.nodeElt.removeClass('as-active');\n  this.children.forEach(function (ct) {\n    ct.deactivateRecursive();\n  });\n};\n\nTOCNodeController.prototype.removeChild = TOCVirtualRootController.prototype.removeChild;\n\nTOCNodeController.prototype.remove = function () {\n  this.parent.removeChild(this);\n};\n/***\r\n *\r\n * @param {TOCNodeController} controller\r\n * @param {TOCNodeController} at\r\n * @returns {TOCNodeController}\r\n */\n\n\nTOCNodeController.prototype.addChildBefore = function (controller, at) {\n  var atIdx;\n\n  if (at) {\n    atIdx = this.indexOfChild(at);\n\n    if (atIdx >= 0) {\n      if (controller.parent) controller.remove();\n      this.children.splice(atIdx, 0, controller);\n      controller.__parent__ = this;\n\n      if (this.status === 'open') {\n        (0, _utils.addElementsBefore)(this.nodeElt.parentElement, controller.getViewElements(), at.nodeElt);\n      }\n\n      controller.setLevelRecursive(this.level + 1);\n      this.updateStatus();\n    } else {\n      throw new Error(\"The node before which the new node is to be inserted is not a child of this node.\");\n    }\n  } else {\n    if (controller.parent) controller.remove();\n    this.children.push(controller);\n    this.updateStatus();\n\n    if (this.status === \"open\") {\n      (0, _utils.addElementsBefore)(this.nodeElt.parentElement, controller.getViewElements(), at.nodeElt);\n    }\n  }\n\n  return this;\n};\n\nTOCNodeController.prototype.addChild = TOCVirtualRootController.prototype.addChild;\n\nTOCNodeController.prototype.addChildAfter = function (controller, at) {\n  throw new Error(\"Not implement!\");\n};\n\nTOCNodeController.prototype.toggle = function () {\n  if (this.status === 'close') this.open();else if (this.status === 'open') this.close();\n};\n\nTOCNodeController.prototype.open = function () {\n  if (this.status !== 'close') return;\n  this.nodeElt.status = 'open';\n  var pE = this.nodeElt.parentElement;\n  if (!pE) return;\n  var veArr = this.getViewElements();\n  veArr.shift();\n  var at = pE.findChildAfter(this.nodeElt);\n\n  if (at) {\n    while (veArr.length > 0) {\n      pE.addChildBefore(veArr.shift(), at);\n    }\n  } else {\n    pE.addChild(veArr);\n  }\n};\n\nTOCNodeController.prototype.close = function () {\n  if (this.status !== 'open') return;\n  var veArr = this.getViewElements();\n  veArr.shift();\n\n  while (veArr.length > 0) {\n    veArr.pop().remove();\n  }\n\n  this.nodeElt.status = 'close';\n};\n\nTOCNodeController.prototype.getViewElements = function (ac) {\n  if (ac === undefined) ac = [];\n  ac.push(this.nodeElt);\n\n  if (this.status === 'open' && this.children.length > 0) {\n    this.children.forEach(function (ct) {\n      ct.getViewElements(ac);\n    });\n  }\n\n  return ac;\n};\n\nTOCNodeController.prototype.setLevelRecursive = function (value) {\n  this.level = value;\n  this.nodeElt.level = value;\n  this.children.forEach(function (ct) {\n    ct.setLevelRecursive(value + 1);\n  });\n};\n/**\r\n *\r\n * @param {number=} level\r\n */\n\n\nTOCNodeController.prototype.openRecursive = function (level) {\n  if (typeof level === \"number\" && this.level >= level) return;\n\n  if (this.status === 'close') {\n    this.open();\n  }\n\n  this.children.forEach(function (ct) {\n    ct.openRecursive(level);\n  });\n};\n\nTOCNodeController.prototype.ev_press = function (event) {\n  this.listElt.eventHandler.pressNode(this, event);\n};\n\nTOCNodeController.prototype.ev_checkedChange = function (event) {\n  this.nodeElt.nodeData.checked = this.nodeElt.checked;\n  this.listElt.eventHandler.checkedNodeChange(this, event);\n};\n\nTOCNodeController.prototype.ev_pressQuickMenu = function (event) {\n  this.listElt.eventHandler.pressNodeQuickMenu(this, event);\n};\n\nTOCNodeController.prototype.ev_renameFinish = function (event) {};\n\nTOCNodeController.prototype.closeRecursive = function () {\n  if (this.status === 'open') {\n    this.close();\n  }\n\n  this.children.forEach(function (ct) {\n    ct.closeRecursive();\n  });\n};\n\nTOCNodeController.prototype.rename = function () {};\n/***\r\n *\r\n * @param {boolean=true} isActive default: true\r\n * @param {boolean=false} append default: false\r\n */\n\n\nTOCNodeController.prototype.active = function (isActive, append) {\n  var self = this;\n  if (arguments.length === 0) isActive = true;\n  append = !!append;\n  var idx = this.listElt.savedState.active ? this.listElt.savedState.active.indexOf(this.ident) : -1;\n\n  if (isActive) {\n    this.root.traverse(function (ct) {\n      if (ct === self) {\n        ct.nodeElt.addClass('as-active');\n      } else if (!append) ct.nodeElt.removeClass('as-active');\n    });\n\n    if (idx < 0) {\n      this.listElt.savedState.active = this.listElt.savedState.active || [];\n\n      if (append) {\n        this.listElt.savedState.active.push(this.ident);\n      } else {\n        this.listElt.savedState.active = [this.ident];\n      }\n\n      this.listElt.notifySavedStateChange();\n    }\n  } else {\n    if (idx >= 0) {\n      if (append) {\n        this.listElt.savedState.active.splice(idx, 1);\n        this.nodeElt.removeClass('as-active');\n      } else {\n        this.listElt.savedState.active = [];\n        this.root.traverse(function (ct) {\n          ct.nodeElt.removeClass('as-active');\n        });\n      }\n    }\n  }\n};\n\nObject.defineProperties(TOCNodeController.prototype, {\n  /***\r\n   * @memberOf TOCNodeController#\r\n   * @name status\r\n   * @type {\"open\"|\"close\"|\"none\"}\r\n   */\n  status: {\n    get: function get() {\n      return this.nodeElt.status;\n    },\n    set: function set(value) {\n      if (value === 'open' && this.nodeElt.status === 'close') this.open();else if (value === 'close' && this.nodeElt.status === 'open') this.close();\n    }\n  },\n  root: {\n    get: function get() {\n      return this.parent ? this.parent.root : this;\n    }\n  },\n  checked: {\n    get: function get() {\n      return !!this.nodeElt.nodeData.checked;\n    },\n    set: function set(value) {\n      this.nodeElt.checked = !!value;\n      this.nodeElt.nodeData.checked = !!value;\n    }\n  },\n  name: {\n    set: function set(value) {\n      value = value || '';\n      this.nodeElt.name = value;\n      this.nodeElt.nodeData.name = value;\n    },\n    get: function get() {\n      return this.nodeElt.nodeData.name;\n    }\n  },\n  ident: {\n    get: function get() {\n      return this.nodeElt.nodeData.ident;\n    },\n    set: function set(value) {\n      this.nodeElt.nodeData.ident = value;\n    }\n  },\n  nodeData: {\n    get: function get() {\n      return this.nodeElt.nodeData;\n    },\n    set: function set(value) {\n      this.nodeElt.nodeData = value;\n    }\n  },\n  parent: {\n    get: function get() {\n      return this.__parent__;\n    }\n  },\n  firstChild: {\n    get: function get() {\n      return this.children[0] || null;\n    }\n  },\n  lastChild: {\n    get: function get() {\n      return this.children[this.children.length - 1] || null;\n    }\n  },\n  activated: {\n    get: function get() {\n      return this.nodeElt.hasClass('as-active');\n    }\n  }\n});\nvar _default = TOCList;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/TOCList.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/TabBar.js":
/*!***********************************************!*\
  !*** ./node_modules/absol-acomp/js/TabBar.js ***!
  \***********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/tabview.css */ \"./node_modules/absol-acomp/css/tabview.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _TabButton = _interopRequireDefault(__webpack_require__(/*! ./TabButton */ \"./node_modules/absol-acomp/js/TabButton.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @extends HScroller\r\n * @constructor\r\n */\n\nfunction TabBar() {\n  this.$parent = null;\n  this.$addBtn = _({\n    tag: 'button',\n    \"class\": 'as-tab-bar-add-btn',\n    child: 'span.mdi.mdi-plus',\n    on: {\n      click: function () {\n        if (this.$parent) {\n          this.$parent.emit('pressaddtab', {\n            type: 'pressaddtab',\n            target: this.$parent\n          }, this.$parent);\n        }\n      }.bind(this)\n    }\n  });\n  this.addChild(this.$addBtn);\n  this.defineEvent(['active', 'close']);\n  this.on('wheel', function (event) {\n    var lastLeft = this.$viewport.scrollLeft;\n\n    if (event.deltaY > 1) {\n      this.$viewport.scrollLeft += 50;\n    } else if (event.deltaY < -1) {\n      this.$viewport.scrollLeft -= 50;\n    }\n\n    if (lastLeft != this.$viewport.scrollLeft) event.preventDefault();\n  });\n  this._tabs = [];\n}\n\nTabBar.tag = 'tabbar';\n\nTabBar.render = function () {\n  return _('hscroller.absol-tabbar');\n};\n\nTabBar.prototype.getAllTabButtons = function () {\n  var buttons = [];\n  $('tabbutton', this, function (e) {\n    buttons.push(e);\n  });\n  return buttons;\n};\n/***\r\n *\r\n * @param {string} ident\r\n * @return {TabButton}\r\n */\n\n\nTabBar.prototype.getButtonByIdent = function (ident) {\n  return $('tabbutton#tabbuton-' + ident, this);\n};\n\nTabBar.property = {};\nTabBar.property.tabs = {\n  set: function set(value) {\n    this.clearChild();\n    this._tabs = [];\n    (value || []).forEach(this.addTab.bind(this));\n  },\n  get: function get() {\n    //each hold item data\n    return this._tabs || [];\n  }\n};\n/***\r\n *\r\n * @param {{text}}\r\n * @return {tabbar}\r\n */\n\nTabBar.prototype.addTab = function (value) {\n  var self = this;\n  var props = {};\n\n  if (typeof value == \"string\") {\n    props.name = value;\n  } else {\n    if (value.name) {\n      props.name = value.name;\n    } else {\n      throw new Error('Tab must has name attribute');\n    }\n\n    if (value.desc) props.desc = value.desc;\n\n    if (value.tabIcon) {\n      props.icon = value.tabIcon;\n    }\n\n    if (value.preventClosing) {\n      props.preventClosing = value.preventClosing;\n    }\n  }\n\n  var tabButton = _({\n    tag: 'tabbutton',\n    props: props,\n    on: {\n      active: function active(event, sender) {\n        var prevented = false;\n        self.emit('active', {\n          target: this,\n          value: value,\n          preventDefault: function preventDefault() {\n            prevented = true;\n          }\n        }, self);\n\n        if (!prevented) {\n          self.getAllTabButtons().forEach(function (e) {\n            e.active = false;\n          });\n          this.active = true;\n        }\n      },\n      close: function close(event, sender) {\n        var prevented = false;\n        self.emit('close', {\n          target: this,\n          value: value,\n          preventDefault: function preventDefault() {\n            prevented = true;\n          }\n        }, self);\n\n        if (!prevented) {\n          //todo:active other\n          this.remove();\n        }\n      }\n    }\n  });\n\n  this.addChildBefore(tabButton, this.$addBtn);\n  if (value.id) tabButton.attr('id', 'tabbuton-' + value.id);\n\n  this._tabs.push(tabButton);\n\n  this.requestUpdateSize();\n  return tabButton;\n};\n\nTabBar.prototype.removeTab = function (id) {\n  this._tabs = this._tabs.filter(function (value) {\n    return value == id;\n  });\n  $('#tabbuton-' + id, this).remove();\n  this.requestUpdateSize();\n};\n\nTabBar.prototype.activeTab = function (id) {\n  var self = this;\n  var activedbtn = $('.absol-tabbar-button-active', this);\n\n  if (activedbtn && activedbtn.attr('id') != id) {\n    activedbtn.active = false;\n  }\n\n  var mButton = $('#tabbuton-' + id, this);\n\n  if (mButton) {\n    mButton.active = true;\n    setTimeout(function () {\n      self.scrollInto(mButton);\n    }, 30);\n  }\n};\n\nTabBar.prototype.setModified = function (ident, flag) {\n  var bt = this.getButtonByIdent(ident);\n\n  if (bt) {\n    bt.modified = flag;\n  }\n};\n\n_ACore[\"default\"].install(TabBar);\n\nvar _default = TabBar;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/TabBar.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/TabButton.js":
/*!**************************************************!*\
  !*** ./node_modules/absol-acomp/js/TabButton.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/tabview.css */ \"./node_modules/absol-acomp/css/tabview.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _stringGenerate = __webpack_require__(/*! absol/src/String/stringGenerate */ \"./node_modules/absol/src/String/stringGenerate.js\");\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction TabButton() {\n  var thisTB = this;\n  this._icon = null;\n  this.$extIconCtn = $('.as-tab-bar-button-ext-icon-ctn', this);\n  this.$close = $('.absol-tabbar-button-close', this);\n  this.$iconCtn = $('.absol-tabbar-button-icon-container', this).on('click', function (event) {\n    event.tabButtonEventName = 'delete';\n    thisTB.emit('close', event);\n  });\n  this.$modifiedFlag = $('.absol-tabbar-button-modified-flag', this).on('click', function (event) {\n    event.tabButtonEventName = 'delete';\n    thisTB.emit('close', event);\n  });\n  this.$textView = $('.absol-tabbar-button-text', this);\n  this.on({\n    click: function click(event) {\n      if (event.tabButtonEventName) return;\n      event.tabButtonEventName = 'active';\n      thisTB.emit('active', event);\n    }\n  });\n}\n\nTabButton.tag = 'TabButton'.toLowerCase();\n\nTabButton.render = function () {\n  return _({\n    tag: 'button',\n    \"class\": 'absol-tabbar-button',\n    extendEvent: ['close', 'active'],\n    id: (0, _stringGenerate.randomIdent)(20),\n    child: [{\n      \"class\": 'as-tab-bar-button-ext-icon-ctn'\n    }, {\n      \"class\": 'absol-tabbar-button-text'\n    }, {\n      \"class\": 'absol-tabbar-button-icon-container',\n      child: [{\n        tag: 'span',\n        \"class\": ['absol-tabbar-button-close', 'mdi-close', 'mdi'],\n        attr: {\n          title: 'Close'\n        }\n      }, {\n        tag: 'span',\n        \"class\": ['absol-tabbar-button-close-circle', 'mdi-close-circle', 'mdi'],\n        attr: {\n          title: 'Close'\n        }\n      }, {\n        tag: 'span',\n        \"class\": ['absol-tabbar-button-modified-flag', 'mdi', 'mdi-checkbox-blank-circle']\n      }]\n    }]\n  });\n};\n\nTabButton.property = {};\nTabButton.property.active = {\n  set: function set(value) {\n    this._active = value;\n    if (value) this.addClass('absol-tabbar-button-active');else this.removeClass('absol-tabbar-button-active');\n  },\n  get: function get() {\n    return this._active;\n  }\n};\nTabButton.property.name = {\n  set: function set(value) {\n    this._name = value || '';\n    this.$textView.innerHTML = this._name;\n  },\n  get: function get() {\n    return this._name;\n  }\n};\nTabButton.property.desc = {\n  set: function set(value) {\n    this.attr('title', value);\n  },\n  get: function get() {\n    return this.attr('title');\n  }\n};\nTabButton.property.icon = {\n  set: function set(value) {\n    value = value || null;\n    this._icon = value;\n    this.$extIconCtn.clearChild();\n\n    if (this._icon) {\n      this.$extIconCtn.addChild(_(value));\n    }\n  },\n  get: function get() {\n    return this._icon;\n  }\n};\nTabButton.property.modified = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('absol-tabbar-button-modified');\n    } else {\n      this.removeClass('absol-tabbar-button-modified');\n    }\n  },\n  get: function get() {\n    return this.hasClass('absol-tabbar-button-modified');\n  }\n};\nTabButton.property.preventClosing = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-prevent-closing');\n    } else {\n      this.removeClass('as-prevent-closing');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-prevent-closing');\n  }\n};\n\n_ACore[\"default\"].install(TabButton);\n\nvar _default = TabButton;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/TabButton.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/TabFrame.js":
/*!*************************************************!*\
  !*** ./node_modules/absol-acomp/js/TabFrame.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar $ = _ACore[\"default\"].$;\nvar _ = _ACore[\"default\"]._;\n\nfunction TabFrame() {}\n\nTabFrame.tag = 'tabframe';\n\nTabFrame.render = function () {\n  return _({\n    tag: 'frame',\n    \"class\": 'absol-tab-frame',\n    extendEvent: ['requestremove', 'remove']\n  }, true);\n};\n\nTabFrame.property = {};\nTabFrame.property.name = {\n  set: function set(value) {\n    if (typeof name == \"undefined\") {\n      this._name = undefined;\n    } else {\n      this._name = value + '';\n    }\n\n    if (this.$parent) {\n      if (this.$parent.notifyUpdateName) this.$parent.notifyUpdateName(this);\n    }\n  },\n  get: function get() {\n    return this._name;\n  }\n};\nTabFrame.property.modified = {\n  set: function set(value) {\n    this._modified = !!value;\n\n    if (this.$parent) {\n      if (this.$parent.notifyUpdateModified) this.$parent.notifyUpdateModified(this);\n    }\n  },\n  get: function get() {\n    return !!this._modified;\n  }\n};\nTabFrame.property.desc = {\n  set: function set(value) {\n    if (typeof value == \"undefined\") {\n      this._desc = undefined;\n    } else {\n      this._desc = value + '';\n    }\n\n    if (this.$parent) {\n      if (this.$parent.notifyUpdateDesc) this.$parent.notifyUpdateDesc(this);\n    }\n  },\n  get: function get() {\n    return this._desc;\n  }\n};\nTabFrame.property.preventClosing = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-prevent-closing');\n    } else {\n      this.removeClass('as-prevent-closing');\n    }\n\n    if (this.$parent && this.$parent.notifyUpdatePreventClosing) {\n      this.$parent.notifyUpdatePreventClosing(this);\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-prevent-closing');\n  }\n};\nTabFrame.attribute = {};\nTabFrame.attribute.name = {\n  set: function set(value) {\n    this.name = value;\n  },\n  get: function get() {\n    return this.name;\n  },\n  remove: function remove() {\n    this.name = undefined;\n  }\n};\nTabFrame.attribute.desc = {\n  set: function set(value) {\n    this.desc = value;\n  },\n  get: function get() {\n    return this.desc;\n  },\n  remove: function remove() {\n    this.desc = undefined;\n  }\n};\nTabFrame.attribute.modified = {\n  set: function set(value) {\n    this.modified = value == 'true' || value == '1' || value === true;\n  },\n  get: function get() {\n    return this.modified ? 'true' : undefined;\n  },\n  remove: function remove() {\n    this.desc = false;\n  }\n};\n\nTabFrame.prototype.requestRemove = function () {\n  if (this.$parent && this.$parent.removeTab) {\n    this.$parent.removeTab(this.id, false);\n  } else {\n    this.selfRemove();\n  }\n};\n\n_ACore[\"default\"].install(TabFrame);\n\nvar _default = TabFrame;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/TabFrame.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/TabView.js":
/*!************************************************!*\
  !*** ./node_modules/absol-acomp/js/TabView.js ***!
  \************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/tabview.css */ \"./node_modules/absol-acomp/css/tabview.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _TabBar = _interopRequireDefault(__webpack_require__(/*! ./TabBar */ \"./node_modules/absol-acomp/js/TabBar.js\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n\nfunction TabView() {\n  var thisTV = this;\n  /***\r\n   *\r\n   * @type {TabBar}\r\n   */\n\n  this.$tabbar = $('tabbar', this);\n  this.$tabbar.$parent = this;\n  this.$tabbar.on({\n    close: TabView.eventHandler.closeTab.bind(thisTV),\n    active: TabView.eventHandler.activeTab.bind(thisTV)\n  });\n  this._frameHolders = [];\n  this._history = [];\n  (0, _utils.forwardEvent)(this, 'inactivetab', 'deactivetab');\n}\n\nTabView.tag = 'TabView'.toLowerCase();\n\nTabView.render = function () {\n  return _({\n    \"class\": 'absol-tabview',\n    extendEvent: ['activetab', 'inactivetab', 'removetab', 'requestremovetab', 'pressaddtab'],\n    child: ['tabbar']\n  });\n};\n\nTabView.eventHandler = {};\n\nTabView.eventHandler.closeTab = function (event) {\n  event.preventDefault();\n  var id = event.value.id;\n  this.removeTab(id, true);\n};\n\nTabView.eventHandler.activeTab = function (event) {\n  event.preventDefault();\n  var id = event.value.id;\n  this.activeTab(id, true);\n};\n\nTabView.prototype.activeTab = function (id, userActive) {\n  var self = this;\n  var resPromise = [];\n  var needDeactivatedHolder = [];\n  var needActiveHolder = [];\n\n  this._frameHolders.forEach(function (holder) {\n    if (holder.containerElt.hasClass('absol-tabview-container-hidden')) {\n      if (holder.id == id) {\n        needActiveHolder.push(holder);\n      }\n    } else {\n      if (holder.id != id) {\n        needDeactivatedHolder.push(holder);\n      }\n    }\n  });\n\n  needDeactivatedHolder.forEach(function (holder) {\n    holder.containerElt.addClass('absol-tabview-container-hidden');\n    holder.tabFrame.emit('inactive', {\n      type: 'inactive',\n      target: holder.tabFrame,\n      id: holder.id,\n      userActive: !!userActive,\n      tabButton: holder.tabButton,\n      holder: holder\n    }, holder.tabFrame);\n  });\n  needActiveHolder.forEach(function (holder) {\n    self._history.push(holder.id);\n\n    holder.containerElt.removeClass('absol-tabview-container-hidden');\n    self.$tabbar.activeTab(holder.id);\n    holder.tabFrame.emit('active', {\n      type: 'active',\n      target: holder.tabFrame,\n      id: holder.id,\n      userActive: !!userActive,\n      tabButton: holder.tabButton,\n      holder: holder\n    }, holder.tabFrame);\n    self.emit('activetab', {\n      type: 'activetab',\n      target: self,\n      id: holder.id,\n      userActive: !!userActive,\n      tabButton: holder.tabButton,\n      holder: holder\n    }, self);\n  });\n};\n\nTabView.prototype.removeTab = function (id, userActive) {\n  var self = this;\n  var resPromise = [];\n\n  this._frameHolders.forEach(function (holder) {\n    if (holder.id == id) {\n      var eventData = {\n        type: 'requestremove',\n        id: id,\n        userActive: !!userActive,\n        target: holder.tabFrame,\n        tabFrame: holder.tabFrame,\n        tabButton: holder.tabButton,\n        holder: holder,\n        __promise__: Promise.resolve(),\n        waitFor: function waitFor(promise) {\n          this.__promise__ = promise;\n        }\n      };\n      holder.tabFrame.emit('requestremove', eventData, holder.tabFrame);\n      eventData.type = 'requestremovetab';\n      eventData.target = self;\n      self.emit('requestremovetab', eventData, self);\n      resPromise.push(eventData.__promise__.then(function () {\n        //if ok\n        var eventData2 = {\n          type: 'inactive',\n          target: holder.tabFrame,\n          id: holder.id,\n          userActive: !!userActive,\n          tabButton: holder.tabButton,\n          holder: holder\n        };\n        if (!holder.containerElt.hasClass('absol-tabview-container-hidden')) holder.tabFrame.emit('inactive', eventData2, holder.tabFrame);\n        eventData2.type = 'inactivetab';\n        eventData2.target = self;\n        if (!holder.containerElt.hasClass('absol-tabview-container-hidden')) self.emit('inactivetab', eventData2, self);\n        self._frameHolders = self._frameHolders.filter(function (x) {\n          return x.id != id;\n        });\n        holder.tabFrame.notifyDetached();\n        self.$tabbar.removeTab(holder.id);\n        holder.containerElt.remove();\n        eventData2.type = 'remove';\n        eventData2.target = holder.tabFrame;\n        holder.tabFrame.emit('remove', eventData2, holder.tabFrame);\n        eventData2.type = 'removetab';\n        eventData2.target = self;\n        self.emit('removetab', eventData2, self);\n        self.activeLastTab();\n      }, function () {//if reject\n      }));\n    }\n  });\n\n  return Promise.all(resPromise);\n};\n\nTabView.prototype.notifyUpdateDesc = function (elt) {\n  var holder = this.findHolder(elt);\n\n  if (holder) {\n    holder.tabButton.desc = elt.desc;\n  }\n};\n\nTabView.prototype.notifyUpdateName = function (elt) {\n  var holder = this.findHolder(elt);\n\n  if (holder) {\n    holder.tabButton.name = elt.name;\n  }\n};\n\nTabView.prototype.notifyUpdateModified = function (elt) {\n  var holder = this.findHolder(elt);\n\n  if (holder) {\n    holder.tabButton.modified = elt.modified;\n  }\n};\n\nTabView.prototype.notifyUpdatePreventClosing = function (elt) {\n  var holder = this.findHolder(elt);\n\n  if (holder) {\n    holder.tabButton.preventClosing = elt.preventClosing;\n  }\n};\n\nTabView.prototype.findHolder = function (elt) {\n  for (var i = 0; i < this._frameHolders.length; ++i) {\n    var holder = this._frameHolders[i];\n\n    if (holder.tabFrame == elt) {\n      return holder;\n    }\n  }\n};\n\nTabView.prototype.addChild = function () {\n  var self = this;\n  Array.prototype.forEach.call(arguments, function (elt) {\n    if (!elt.notifyAttached || !elt.notifyDetached) {\n      throw new Error('element is not a tabframe');\n    }\n\n    var containerElt = _('.absol-tabview-container.absol-tabview-container-hidden');\n\n    self.appendChild(containerElt); //origin function\n\n    elt.selfRemove();\n    var id = elt.attr('id');\n    var desc = elt.attr('desc') || undefined;\n    var name = elt.attr('name') || 'NoName';\n    var tabIcon = elt.tabIcon;\n    var modified = elt.modified;\n    var preventClosing = elt.preventClosing;\n    var tabButton = self.$tabbar.addTab({\n      name: name,\n      id: id,\n      desc: desc,\n      modified: modified,\n      tabIcon: tabIcon,\n      preventClosing: preventClosing\n    });\n    containerElt.addChild(elt);\n    elt.notifyAttached(self);\n    var holder = {};\n\n    _OOP[\"default\"].drillProperty(holder, elt, 'id');\n\n    _OOP[\"default\"].drillProperty(holder, elt, 'desc');\n\n    _OOP[\"default\"].drillProperty(holder, elt, 'name');\n\n    _OOP[\"default\"].drillProperty(holder, elt, 'preventClosing');\n\n    Object.defineProperties(holder, {\n      tabButton: {\n        value: tabButton,\n        writable: false\n      },\n      tabFrame: {\n        value: elt,\n        writable: false\n      },\n      containerElt: {\n        value: containerElt,\n        writable: false\n      }\n    });\n\n    self._frameHolders.push(holder);\n\n    self.activeTab(id);\n  });\n};\n\nTabView.prototype.activeLastTab = function () {\n  var dict = this._frameHolders.reduce(function (ac, holder) {\n    ac[holder.id] = true;\n    return ac;\n  }, {});\n\n  while (this._history.length > 0) {\n    var id = this._history[this._history.length - 1];\n\n    if (dict[id]) {\n      this.activeTab(id);\n      break;\n    } else {\n      this._history.pop();\n    }\n  }\n};\n\nTabView.prototype.getChildAt = function (index) {\n  return this._frameHolders[index].tabFrame;\n};\n\nTabView.prototype.getAllChild = function () {\n  return this._frameHolders.map(function (holder) {\n    return holder.tabFrame;\n  });\n};\n\nTabView.prototype.getActiveTabHolder = function () {\n  var holder = null;\n\n  for (var i = 0; i < this._frameHolders.length; ++i) {\n    holder = this._frameHolders[i];\n\n    if (!holder.containerElt.hasClass('absol-tabview-container-hidden')) {\n      return holder;\n    }\n  }\n\n  return null;\n};\n\nTabView.prototype.getActiveTab = function () {\n  var holder = this.getActiveTabHolder();\n  return holder && holder.tabFrame;\n};\n\nTabView.prototype.getActiveTabId = function () {\n  var holder = this.getActiveTabHolder();\n  return holder && holder.id;\n};\n\nTabView.prototype.getTabById = function (id) {\n  var holder = this.getTabHolderById(id);\n  return holder && holder.tabFrame;\n};\n\nTabView.prototype.getTabHolderById = function (id) {\n  var holder = null;\n\n  for (var i = 0; i < this._frameHolders.length; ++i) {\n    holder = this._frameHolders[i];\n\n    if (holder.id === id) {\n      return holder;\n    }\n  }\n\n  return null;\n};\n\nTabView.prototype.activeFrame = function (elt) {\n  if (typeof elt == \"string\") {\n    return this.activeTab(elt);\n  } else if (elt && elt.attr) {\n    return this.activeTab(elt.attr('id'));\n  } else {\n    throw new Error(\"Invalid param, must be id or elt!\");\n  }\n};\n\nTabView.property = {};\nTabView.property.historyOfTab = {\n  get: function get() {\n    return this._history.slice();\n  }\n};\n\n_ACore[\"default\"].install('tabview', TabView);\n\nvar _default = TabView;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/TabView.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/TableVScroller.js":
/*!*******************************************************!*\
  !*** ./node_modules/absol-acomp/js/TableVScroller.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/tablevscroller.css */ \"./node_modules/absol-acomp/css/tablevscroller.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Dom = _interopRequireWildcard(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n\nfunction TableVScroller() {\n  var _this = this;\n\n  var thisTS = this;\n  this.$attachHook = $('attachhook', this);\n\n  this.$attachHook.updateSize = function () {\n    _this.updateStyle();\n\n    _this.updateSize();\n  };\n\n  this.sync = new Promise(function (rs) {\n    thisTS.$attachHook.on('attached', rs);\n  });\n  this.$viewport = $('.absol-table-vscroller-viewport', this);\n  this.$attachHook.on('attached', function () {\n    _Dom[\"default\"].addToResizeSystem(thisTS.$attachHook);\n\n    this.updateSize();\n  });\n  this.$topTable = $('.absol-table-vscroller-head', this);\n  this.$headLine = $('.absol-table-vscroller-head-line', this);\n  this.swappedContentPairs = [];\n}\n\nTableVScroller.tag = 'TableVScroller'.toLowerCase();\n\nTableVScroller.render = function () {\n  return _({\n    \"class\": 'absol-table-vscroller',\n    child: ['.absol-table-vscroller-viewport', 'table.absol-table-vscroller-head', '.absol-table-vscroller-head-line', 'attachhook']\n  });\n};\n\nTableVScroller.prototype.clearChild = function () {\n  this.$viewport.clearChild();\n  this.$topTable.clearChild();\n};\n\nTableVScroller.prototype.addChild = function (elt) {\n  if (this.$viewport.childNodes.length == 0) {\n    this.$table = elt.$table || $('table', elt);\n\n    if (this.$table) {\n      this.$viewport.addChild(elt);\n      this.update();\n    } else {\n      throw new Error('Element must be a table!');\n    }\n  } else {\n    throw new Error(\"Only 1 table accepted!\");\n  }\n};\n\nTableVScroller.prototype._trackBackgroundColor = function (element) {\n  var current = this.$thead;\n  var res;\n\n  while (current && !res && res != 'rgba(0, 0, 0, 0)') {\n    res = window.getComputedStyle(element).getPropertyValue('background-color');\n    current = current.parentNode;\n  }\n\n  if (res == 'rgba(0, 0, 0, 0)') return 'white';\n  return res;\n};\n\nTableVScroller.prototype.updateStyle = function () {\n  if (!this.$thead) return;\n  var clazz = this.$table.attr('class');\n\n  if (clazz) {\n    clazz = clazz.trim().split(/\\s+/);\n\n    for (var i = 0; i < clazz.length; ++i) {\n      this.$topTable.addClass(clazz[i]);\n    }\n  }\n\n  var bgColor = this._trackBackgroundColor(this.$thead);\n\n  this.$topTable.addStyle('background-color', bgColor);\n};\n\nTableVScroller.prototype.updateSize = function () {\n  if (!this.$thead) return;\n  var theadBound = this.$thead.getBoundingClientRect();\n  var tableBound = this.$table.getBoundingClientRect();\n  this.$topTable.addStyle({\n    width: tableBound.width + 'px',\n    height: theadBound.height + 'px'\n  });\n  this.$headLine.addStyle({\n    top: theadBound.height + 'px',\n    maxWidth: tableBound.width + 'px'\n  });\n\n  if (this.$viewport.clientHeight < this.$viewport.scrollHeight) {\n    this.addClass('scroll-v');\n  } else {\n    this.removeClass('scroll-v');\n  }\n\n  var realNodes = this.$tr.childNodes;\n  var topNodes = this.$topTr.childNodes;\n  var widthStyle;\n  var displayStyle;\n\n  for (var i = 0; i < realNodes.length; ++i) {\n    if (!realNodes[i].tagName) continue;\n    widthStyle = $(realNodes[i]).getComputedStyleValue('width');\n    displayStyle = realNodes[i].getComputedStyleValue('display');\n\n    if (!widthStyle) {\n      widthStyle = realNodes[i].getBoundingClientRect().width;\n\n      if (!widthStyle) {\n        displayStyle = 'none';\n      }\n\n      widthStyle += 'px';\n    } // console.trace(getAncestorElementOf(realNodes[i]), widthStyle, displayStyle)\n\n\n    $(topNodes[i]).attr('style', realNodes[i].attr('style')).addStyle('width', widthStyle).addStyle('display', displayStyle);\n  }\n\n  this.$topTable.removeStyle('display');\n};\n\nTableVScroller.prototype.updateContent = function () {\n  var _this2 = this;\n\n  this.swappedContentPairs.forEach(function (originElt, copyElt) {\n    _this2.swappedContentPairs.push([originElt, copyElt]);\n  });\n  this.swappedContentPairs = [];\n  var elt = this.$table;\n  this.$thead = $('thead', elt);\n  this.$tr = $('tr', this.$thead);\n  this.$topThead = (0, _Dom.depthClone)(this.$thead, function (originElt, copyElt) {\n    if (originElt.tagName === 'TH') {\n      (0, _utils.swapChildrenInElt)(originElt, copyElt);\n\n      _this2.swappedContentPairs.push([originElt, copyElt]);\n    }\n  });\n  this.$topTr = $('tr', this.$topThead);\n  this.$topTable.clearChild().addChild(this.$topThead).addStyle('display', 'none');\n};\n\nTableVScroller.prototype.update = function () {\n  if (!this.$table) return;\n  this.updateContent();\n  this.updateStyle();\n  this.updateSize();\n};\n\n_ACore[\"default\"].install(TableVScroller);\n\nvar _default = TableVScroller;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/TableVScroller.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/TextArea2.js":
/*!**************************************************!*\
  !*** ./node_modules/absol-acomp/js/TextArea2.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/textarea2.css */ \"./node_modules/absol-acomp/css/textarea2.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _SelectMenu = _interopRequireDefault(__webpack_require__(/*! ./SelectMenu */ \"./node_modules/absol-acomp/js/SelectMenu.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n *\r\n *  @augments HTMLTextAreaElement\r\n *  @augments AElement\r\n *\r\n * @constructor\r\n */\n\nfunction TextArea2() {\n  this.on('keydown', this.eventHandler.keydown);\n  this.on('paste', this.eventHandler.paste);\n  this.on('cut', this.eventHandler.paste);\n}\n\nTextArea2.tag = 'TextArea2'.toLowerCase();\n\nTextArea2.render = function () {\n  return _('textarea.absol-textarea2');\n};\n\nTextArea2.getRenderPre = function () {\n  if (!TextArea2.$preSpace) {\n    TextArea2.$preSpace = _('textarea').addStyle({\n      'overflow': 'hidden',\n      'height': '12px',\n      'resize': 'none'\n    }).addTo(_SelectMenu[\"default\"].getRenderSpace());\n  }\n\n  return TextArea2.$preSpace;\n};\n\nTextArea2.prototype.updateSize = function () {\n  var heightStyle = this._measureHeight(this.value);\n\n  this.addStyle('--content-height', heightStyle);\n};\n\nTextArea2.eventHandler = {};\n\nTextArea2.eventHandler.keydown = function (event) {\n  if (event.altKey || event.ctrlKey) return;\n  var key = event.key;\n  var selectPost = this.getInputSelection();\n  var leftText = this.value.substring(0, selectPost.start);\n  var rightText = this.value.substring(selectPost.end);\n  var middText = '';\n\n  if (key == 'Enter') {\n    middText = '\\n';\n  } else if (key == 'Backspace') {\n    if (leftText.length > 0) {\n      leftText = leftText.substring(0, leftText.length - 1);\n    }\n  } else if (key == 'Delete') {\n    if (selectPost.start < selectPost.end) {\n      middText = '';\n    } else if (rightText.length > 0) {\n      rightText = rightText.substring(1);\n    }\n  } else if (key.length == 1) {\n    //char\n    middText = key;\n  } else {\n    return;\n  }\n\n  var newText = leftText + middText + rightText;\n\n  var heightStyle = this._measureHeight(newText);\n\n  this.addStyle('--content-height', heightStyle);\n};\n\nTextArea2.eventHandler.paste = function (event) {\n  // var text  = \n  var cl = event.clipboardData || window.clipboardData;\n  var middText = cl.getData('Text') || '';\n  var selectPost = this.getInputSelection();\n  var leftText = this.value.substring(0, selectPost.start);\n  var rightText = this.value.substring(selectPost.end);\n  var newText = leftText + middText + rightText;\n\n  var heightSyle = this._measureHeight(newText);\n\n  this.addStyle('--content-height', heightSyle);\n};\n\nTextArea2.eventHandler.cut = function (event) {\n  // var text  = \n  var cl = event.clipboardData || window.clipboardData;\n  var selectPost = this.getInputSelection();\n  var leftText = this.value.substring(0, selectPost.start);\n  var rightText = this.value.substring(selectPost.end);\n  var newText = leftText + rightText;\n\n  var heightSyle = this._measureHeight(newText);\n\n  this.addStyle('--content-height', heightSyle);\n};\n\nTextArea2.prototype._measureHeight = function (text) {\n  var pre = TextArea2.getRenderPre();\n  pre.addStyle('padding-left', this.getComputedStyleValue('padding-left'));\n  pre.addStyle('padding-right', this.getComputedStyleValue('padding-right'));\n  pre.addStyle('padding-top', this.getComputedStyleValue('padding-top'));\n  pre.addStyle('padding-bottom', this.getComputedStyleValue('padding-bottom'));\n  pre.addStyle('width', this.getComputedStyleValue('width'));\n  pre.addStyle('height', this.getFontSize() + 'px');\n  pre.addStyle('boder', this.getComputedStyleValue('boder'));\n  pre.addStyle('font-size', this.getComputedStyleValue('font-size'));\n  pre.addStyle('font-family', this.getComputedStyleValue('font-family'));\n  pre.value = text;\n  var result = pre.scrollHeight + 'px';\n  return result;\n};\n/**\r\n * Return an object with the selection range or cursor position (if both have the same value)\r\n * @param {DOMElement} el A dom element of a textarea or input text.\r\n * @return {Object} reference Object with 2 properties (start and end) with the identifier of the location of the cursor and selected text.\r\n **/\n\n\nTextArea2.prototype.getInputSelection = function () {\n  var start = 0,\n      end = 0,\n      normalizedValue,\n      range,\n      textInputRange,\n      len,\n      endRange;\n\n  if (typeof this.selectionStart == \"number\" && typeof this.selectionEnd == \"number\") {\n    start = this.selectionStart;\n    end = this.selectionEnd;\n  } else {\n    range = document.selection.createRange();\n\n    if (range && range.parentElement() == this) {\n      len = this.value.length;\n      normalizedValue = this.value.replace(/\\r\\n/g, \"\\n\"); // Create a working TextRange that lives only in the input\n\n      textInputRange = this.createTextRange();\n      textInputRange.moveToBookmark(range.getBookmark()); // Check if the start and end of the selection are at the very end\n      // of the input, since moveStart/moveEnd doesn't return what we want\n      // in those cases\n\n      endRange = this.createTextRange();\n      endRange.collapse(false);\n\n      if (textInputRange.compareEndPoints(\"StartToEnd\", endRange) > -1) {\n        start = end = len;\n      } else {\n        start = -textInputRange.moveStart(\"character\", -len);\n        start += normalizedValue.slice(0, start).split(\"\\n\").length - 1;\n\n        if (textInputRange.compareEndPoints(\"EndToEnd\", endRange) > -1) {\n          end = len;\n        } else {\n          end = -textInputRange.moveEnd(\"character\", -len);\n          end += normalizedValue.slice(0, end).split(\"\\n\").length - 1;\n        }\n      }\n    }\n  }\n\n  return {\n    start: start,\n    end: end\n  };\n};\n\n_ACore[\"default\"].install(TextArea2);\n\nvar _default = TextArea2;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/TextArea2.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/TextClipboard.js":
/*!******************************************************!*\
  !*** ./node_modules/absol-acomp/js/TextClipboard.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/textclipboard.css */ \"./node_modules/absol-acomp/css/textclipboard.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n\nfunction TextClipboard() {\n  this.$textarea = _('<textarea class=\"absol-text-clipboard\" wrap=\"off\" autocorrect=\"off\"' + ' autocapitalize=\"off\" spellcheck=\"false\"></textarea>').addTo(this);\n}\n\nTextClipboard.tag = 'TextClipboard'.toLowerCase();\n\nTextClipboard.render = function () {\n  return _({\n    style: {\n      positon: 'fixed',\n      opacity: 0,\n      width: '1px',\n      height: '1px',\n      top: 0,\n      left: 0\n    }\n  });\n};\n\nTextClipboard.prototype.copy = function (text) {\n  this.$textarea.value = text;\n  this.$textarea.select();\n  document.execCommand('copy');\n};\n\nTextClipboard.prototype.paste = function () {\n  this.$textarea.select();\n  document.execCommand('paste');\n};\n\n_ACore[\"default\"].install(TextClipboard);\n\nvar _default = TextClipboard;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/TextClipboard.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/TextMeasure.js":
/*!****************************************************!*\
  !*** ./node_modules/absol-acomp/js/TextMeasure.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _TextMeasureData = _interopRequireDefault(__webpack_require__(/*! ./TextMeasureData */ \"./node_modules/absol-acomp/js/TextMeasureData.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction TextMeasure() {\n  this.$canvas = null;\n  this.data = {};\n\n  this._loadComputedData(); // if the font is not in data, create it and copy console log to TextMeasureData.js\n  // this._makeFontSize('Times New Roman');\n  // this._makeFontSize('Arial');\n\n}\n\nTextMeasure.prototype._loadComputedData = function () {\n  var thisO = this;\n  this.data.chars = _TextMeasureData[\"default\"].chars;\n  this.data.fonts = Object.keys(_TextMeasureData[\"default\"].fonts).reduce(function (ac, fontName) {\n    var font = _TextMeasureData[\"default\"].fonts[fontName];\n    ac[fontName] = {\n      width: thisO._valueDict2KeyDict(font.width),\n      spacing: thisO._valueDict2KeyDict(font.spacing, 2),\n      fontBoundingBoxAscent: font.fontBoundingBoxAscent,\n      fontBoundingBoxDescent: font.fontBoundingBoxDescent\n    };\n    return ac;\n  }, {});\n};\n\nTextMeasure.prototype._valueDict2KeyDict = function (dict, keyLength) {\n  var thisO = this;\n  return Object.keys(dict).reduce(function (ac, valueText) {\n    var keys = thisO._splitKey(dict[valueText], keyLength || 1);\n\n    var value = parseFloat(valueText);\n    keys.reduce(function (ac1, key) {\n      ac1[key] = value;\n      return ac1;\n    }, ac);\n    return ac;\n  }, {});\n};\n\nTextMeasure.prototype._keyDic2ValueDict = function (keyDict) {\n  return Object.keys(keyDict).reduce(function (ac, cr) {\n    var vKey = keyDict[cr].toString();\n    ac[vKey] = ac[vKey] || '';\n    ac[vKey] += cr;\n    return ac;\n  }, {});\n};\n/***\r\n *\r\n * @param s\r\n * @param l\r\n * @returns {string[]}\r\n * @private\r\n */\n\n\nTextMeasure.prototype._splitKey = function (s, l) {\n  var cArr = s.split('');\n  if (!l || l < 2) return cArr;\n  return cArr.reduce(function (ac, cr) {\n    ac.last += cr;\n\n    if (ac.last.length >= l) {\n      ac.arr.push(ac.last);\n      ac.last = '';\n    }\n\n    return ac;\n  }, {\n    arr: [],\n    last: ''\n  }).arr;\n};\n\nTextMeasure.prototype._array2keyDict = function (arrKey, arrVal) {\n  return arrKey.reduce(function (ac, cr, i) {\n    ac[cr] = arrVal[i];\n    return ac;\n  }, {});\n};\n\nTextMeasure.prototype._makeFontSize = function (fontName) {\n  var thisO = this;\n  var charList = _TextMeasureData[\"default\"].chars;\n  var fontMt = this.measureTextByCanvas(\"demo-abgH\", '20px ' + fontName);\n  var cWidthArr = charList.map(function (c) {\n    return thisO.measureTextByCanvas(c).width;\n  });\n\n  var width = this._array2keyDict(charList, cWidthArr);\n\n  var spacing = charList.reduce(function (ac, c1, i1) {\n    return charList.reduce(function (ac1, c2, i2) {\n      var d = thisO.measureTextByCanvas(c1 + c2).width - cWidthArr[i1] - cWidthArr[i2];\n      if (d !== 0) ac1[c1 + c2] = d;\n      return ac1;\n    }, ac);\n  }, {});\n  _TextMeasureData[\"default\"][fontName] = {\n    width: thisO._keyDic2ValueDict(width),\n    spacing: thisO._keyDic2ValueDict(spacing),\n    fontBoundingBoxAscent: fontMt.fontBoundingBoxAscent,\n    fontBoundingBoxDescent: fontMt.fontBoundingBoxDescent\n  };\n  this.data.fonts[fontName] = {\n    width: width,\n    spacing: spacing,\n    fontBoundingBoxAscent: fontMt.fontBoundingBoxAscent,\n    fontBoundingBoxDescent: fontMt.fontBoundingBoxDescent\n  }; // copy from console and paste it to TextMeasureData\n  // console.log(fontName+\":\"+JSON.stringify(this.data.fonts[fontName]));\n};\n/***\r\n *\r\n * @param {string} text\r\n * @param {string} fontName\r\n * @param {number} fontSize\r\n * @return {number}\r\n */\n\n\nTextMeasure.prototype.measureWidth = function (text, fontName, fontSize) {\n  var width = this.data.fonts[fontName].width;\n  var spacing = this.data.fonts[fontName].spacing;\n  var res = 0;\n  var prevC = text[0];\n  var c = text[0];\n  res += width[c] || 0;\n\n  for (var i = 1; i < text.length; ++i) {\n    c = text[i];\n    res += spacing[prevC + c] || 0;\n    res += width[c] || 0;\n    prevC = c;\n  }\n\n  return res * fontSize / 20;\n};\n/***\r\n *\r\n * @param {string}text\r\n * @param {string=} font - without font-size, default is 20px\r\n * @returns {TextMetrics}\r\n */\n\n\nTextMeasure.prototype.measureTextByCanvas = function (text, font) {\n  if (!document || !document.createElement) throw new Error(\"Not support renderer!\");\n  var canvas = this.$canvas || (this.$canvas = document.createElement(\"canvas\"));\n  var context = canvas.getContext(\"2d\");\n  if (font) context.font = font;\n  var metrics = context.measureText(text);\n  return metrics;\n};\n\nvar _default = new TextMeasure();\n\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/TextMeasure.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/TextMeasureData.js":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/js/TextMeasureData.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\nvar _default = {\n  chars: (\" !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~©´ÀÁÂÊÍÒÔÙÚ\" + \"ÝàáâãèéêìíðòóôõùúýĂăĐđĩũƠơƯưɐɔɕɗəɛɡɣɲʃʒʝʰˆː˘̪̀̃͡τφχẠạẢảẤấẦầẩẫẬậắằẳặẸẹẻẽếỀềểễỆệỉịọỏỐốồổỗỘộỚớỜờởỡỢợụỦủỨứỪừửữựỳỷỹ\" + \"–‘“”…♥♪【】🤣️�\").split(''),\n  fonts: {\n    \"Times New Roman\": {\n      \"width\": {\n        \"0\": \"̪̀̃͡️\",\n        \"5\": \" ,.\",\n        \"10\": \"0123456789#$*_bdghknopquvxyðòóôõùúýđũɗɡɣɲọỏốồổỗộụủỳỷỹ–♪\",\n        \"20\": \"…【】\",\n        \"6.66015625\": \"!()-I[]`fr´Íʃˆ˘‘\",\n        \"8.1640625\": \"\\\"\",\n        \"16.66015625\": \"%\",\n        \"15.556640625\": \"&m\",\n        \"3.603515625\": \"'\",\n        \"11.279296875\": \"+<=>\",\n        \"5.556640625\": \"/:;\\\\ijltìíĩʝːỉị\",\n        \"8.876953125\": \"?acezàáâãèéêăɐɔɕəʒχạảấầẩẫậắằẳặẹẻẽếềểễệ“”\",\n        \"18.41796875\": \"@\",\n        \"14.443359375\": \"ADGHKNOQUVXYwÀÁÂÒÔÙÚÝĂĐƠẠẢẤẦẬỐỘỚỜỢỦ\",\n        \"13.33984375\": \"BCR\",\n        \"12.216796875\": \"ELTZÊẸỀỆ\",\n        \"11.123046875\": \"FPS\",\n        \"7.783203125\": \"Js\",\n        \"17.783203125\": \"M\",\n        \"18.876953125\": \"W\",\n        \"9.384765625\": \"^\",\n        \"9.599609375\": \"{}\",\n        \"4.00390625\": \"|\",\n        \"10.8203125\": \"~\",\n        \"15.1953125\": \"©\",\n        \"10.576171875\": \"ơớờởỡợ\",\n        \"15.517578125\": \"ƯỨỪ\",\n        \"10.83984375\": \"ưứừửữự\",\n        \"8.3984375\": \"ɛ\",\n        \"6.42578125\": \"ʰ\",\n        \"8.037109375\": \"τ\",\n        \"11.54296875\": \"φ\",\n        \"11.875\": \"♥\",\n        \"19.423828125\": \"🤣�\"\n      },\n      \"spacing\": {\n        \"-0.7421875\": \"11W:W;\",\n        \"-2.216796875\": \"ATP,P.VaVeVyWAY-YAYqYu\",\n        \"-2.578125\": \"AVV,V.VAVoY,Y.\",\n        \"-1.6015625\": \"AWF,F.RVTAWaWeWo\",\n        \"-1.8359375\": \"AYAwAyLTLVPAT-V-W,W.Y:Y;Yp\",\n        \"-1.484375\": \"AvFALWT,T.V:V;‘‘\",\n        \"-2.001953125\": \"LYYaYeYoYv\",\n        \"-1.103515625\": \"LyRWRYT;W-Yir.\",\n        \"-1.201171875\": \"RTViVrVuWy\",\n        \"-0.80078125\": \"RyWiWrWur,\",\n        \"-0.99609375\": \"T:\",\n        \"-0.361328125\": \"TOffrg\",\n        \"-1.396484375\": \"TaTcTeToTsTwTy\",\n        \"-0.703125\": \"TiTrTu\",\n        \"-0.400390625\": \"r-\",\n        \"-1.298828125\": \"v,v.w,w.y,y.\",\n        \"-0.439453125\": \"χφ\",\n        \"-4.443359375\": \"【̀【̃【̪【͡】̀】̃】̪】͡\",\n        \"-11.38671875\": \"🤣\"\n      },\n      \"fontBoundingBoxAscent\": 18,\n      \"fontBoundingBoxDescent\": 4\n    },\n    \"Arial\": {\n      \"width\": {\n        \"0\": \"̪̀̃͡️\",\n        \"10\": \"Jcksvxyzýɔɕỳỷỹ♪\",\n        \"20\": \"…【】\",\n        \"11.123046875\": \"0123456789#$?L_abdeghnopquàáâãèéêðòóôõùúăđũɐɗəɡɲạảấầẩẫậắằẳặẹẻẽếềểễệọỏốồổỗộụủ–\",\n        \"5.556640625\": \" !,./:;I[\\\\]ftÍìíĩː\",\n        \"7.099609375\": \"\\\"\",\n        \"17.783203125\": \"%\",\n        \"13.33984375\": \"&ABEKPSVXYÀÁÂÊÝĂẠẢẤẦẬẸỀỆ\",\n        \"3.818359375\": \"'\",\n        \"6.66015625\": \"()-`r´ˆ˘“”\",\n        \"7.783203125\": \"*\",\n        \"11.6796875\": \"+<=>~\",\n        \"20.302734375\": \"@\",\n        \"14.443359375\": \"CDHNRUwÙÚĐỦ\",\n        \"12.216796875\": \"FTZ\",\n        \"15.556640625\": \"GOQÒÔỐỘ\",\n        \"16.66015625\": \"Mm\",\n        \"18.876953125\": \"W\",\n        \"9.384765625\": \"^\",\n        \"4.443359375\": \"ijlʃỉị‘\",\n        \"6.6796875\": \"{}\",\n        \"5.1953125\": \"|\",\n        \"14.736328125\": \"©\",\n        \"17.1484375\": \"ƠỚỜỢ\",\n        \"13.115234375\": \"ơớờởỡợ\",\n        \"17.080078125\": \"ƯỨỪ\",\n        \"13.388671875\": \"ưứừửữự\",\n        \"9.169921875\": \"ɛ\",\n        \"10.01953125\": \"ɣ\",\n        \"10.8984375\": \"ʒ\",\n        \"7.94921875\": \"ʝ\",\n        \"7.666015625\": \"ʰ\",\n        \"7.900390625\": \"τ\",\n        \"12.96875\": \"φ\",\n        \"10.498046875\": \"χ\",\n        \"11.875\": \"♥\",\n        \"19.423828125\": \"🤣�\"\n      },\n      \"spacing\": {\n        \"-1.484375\": \"11ATAVAYLTLVLWLYPATAVAVaYAYaYpv,v.y,y.\",\n        \"-0.7421875\": \"AWLyTiTrTuV:V;VrVuVyWAWaYi\",\n        \"-0.361328125\": \"AvAwAyRTRVRWRYTOViW-W:W;WeWoWrWuff‘‘\",\n        \"-2.216796875\": \"F,F.T,T.T:T;TaTcTeToTs\",\n        \"-1.103515625\": \"FAT-TwTyV-VeVoW,W.Y:YuYvr,r.w,w.\",\n        \"-2.578125\": \"P,P.Y,Y.\",\n        \"-1.8359375\": \"V,V.Y-YeYoYq\",\n        \"-0.17578125\": \"Wy\",\n        \"-1.298828125\": \"Y;\",\n        \"1.11328125\": \"ìĩ\",\n        \"-0.283203125\": \"τφφτ\",\n        \"-0.537109375\": \"φχχφ\",\n        \"-5\": \"【̀【̃【̪【͡】̀】̃】̪】͡\",\n        \"-11.38671875\": \"🤣\"\n      },\n      \"fontBoundingBoxAscent\": 18,\n      \"fontBoundingBoxDescent\": 4\n    }\n  }\n};\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/TextMeasureData.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/Time24Input.js":
/*!****************************************************!*\
  !*** ./node_modules/absol-acomp/js/Time24Input.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _ChromeTime24Picker = _interopRequireDefault(__webpack_require__(/*! ./ChromeTime24Picker */ \"./node_modules/absol-acomp/js/ChromeTime24Picker.js\"));\n\nvar _datetime = __webpack_require__(/*! absol/src/Time/datetime */ \"./node_modules/absol/src/Time/datetime.js\");\n\nvar _EventEmitter = __webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\");\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _TimeInput = _interopRequireDefault(__webpack_require__(/*! ./TimeInput */ \"./node_modules/absol-acomp/js/TimeInput.js\"));\n\nvar _ResizeSystem = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/ResizeSystem */ \"./node_modules/absol/src/HTML5/ResizeSystem.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/**\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction Time24Input() {\n  this.$clockBtn = (0, _ACore.$)('.as-time-input-icon-btn', this).on('click', this.eventHandler.clickClockBtn);\n  this.$text = (0, _ACore.$)('.as-time-input-text', this);\n  this.$clearBtn = (0, _ACore.$)('button.as-time-input-clear-btn', this).on('click', this.clear.bind(this));\n  this._dayOffset = 0;\n  this._value = 0;\n  this._format = 'HH:mm';\n  this.dayOffset = this._dayOffset;\n  this.value = this._value;\n  this.format = this._format;\n  this.notNull = true;\n}\n\nTime24Input.tag = 'Time24Input'.toLowerCase();\n\nTime24Input.render = function () {\n  return (0, _ACore._)({\n    \"class\": ['ac-time-input', 'as-time-24-input'],\n    extendEvent: ['change'],\n    child: [{\n      tag: 'input',\n      \"class\": 'as-time-input-text',\n      attr: {\n        readOnly: 'true',\n        type: 'text'\n      }\n    }, {\n      tag: 'button',\n      \"class\": 'as-time-input-clear-btn',\n      child: 'span.mdi.mdi-close-circle'\n    }, {\n      tag: 'button',\n      \"class\": 'as-time-input-icon-btn',\n      child: 'span.mdi.mdi-clock-outline'\n    }]\n  });\n};\n\nTime24Input.prototype._updateText = function () {\n  var text;\n\n  if ((0, _utils.isRealNumber)(this._value) && (0, _utils.isRealNumber)(this._dayOffset)) {\n    text = (0, _datetime.formatDateTime)(new Date((0, _datetime.beginOfDay)(new Date()).getTime() + this._value + this._dayOffset), this._format);\n    if (this._value + this._dayOffset >= _datetime.MILLIS_PER_DAY) text += ' (Hôm sau)';\n    this.removeClass('as-value-null');\n  } else {\n    text = this._format;\n    this.addClass('as-value-null');\n  }\n\n  this.$text.value = text;\n};\n\nTime24Input.prototype._notifyChange = function (event) {\n  this.emit('change', {\n    type: 'change',\n    originalEvent: event.originalEvent || event.originEvent || event\n  }, this);\n};\n\nTime24Input.prototype.clear = function (event) {\n  if (this._value !== null && !this.notNull) {\n    this.value = null;\n\n    this._notifyChange(event);\n  }\n};\n\nTime24Input.prototype.share = {\n  $picker: null,\n\n  /***\r\n   * @type Time24Input\r\n   */\n  $holdingInput: null,\n  $follower: null,\n  $closeBtn: null\n};\n\nTime24Input.prototype._preparePicker = function () {\n  if (this.share.$picker) return;\n  this.share.$picker = (0, _ACore._)({\n    tag: _ChromeTime24Picker[\"default\"].tag\n  });\n  this.share.$follower = (0, _ACore._)({\n    tag: 'follower',\n    \"class\": ['as-chrome-time-24-picker-follower', 'as-dropdown-box-common-style'],\n    child: [this.share.$picker, {\n      \"class\": 'as-dropdown-box-footer',\n      child: [{\n        \"class\": 'as-dropdown-box-footer-right',\n        child: ['<a data-ml-key=\"txt_close\" class=\"as-select-list-box-close-btn\"></a>']\n      }]\n    }]\n  });\n  this.share.$closeBtn = (0, _ACore.$)('.as-select-list-box-close-btn', this.share.$follower);\n};\n\nTime24Input.prototype._attachPicker = function () {\n  this._preparePicker();\n\n  if (this.share.$holdingInput) {\n    this.share.$holdingInput._releasePicker();\n  }\n\n  this.share.$holdingInput = this;\n  this.share.$follower.addTo(document.body);\n  this.share.$follower.followTarget = this;\n  this.share.$follower.addStyle('visibility', 'hidden');\n  this.share.$picker.on('change', this.eventHandler.pickerChange);\n  this.$clockBtn.off('click', this.eventHandler.clickClockBtn);\n  this.share.$picker.dayOffset = (0, _utils.isRealNumber)(this._dayOffset) ? this._dayOffset : 0;\n  this.share.$picker.value = (0, _utils.isRealNumber)(this._value) ? this._value : 0;\n  setTimeout(function () {\n    document.addEventListener('click', this.eventHandler.clickOut);\n    this.share.$follower.removeStyle('visibility');\n  }.bind(this), 5);\n};\n\nTime24Input.prototype._releasePicker = function () {\n  if (this.share.$holdingInput !== this) return;\n  this.share.$picker.off('change', this.eventHandler.pickerChange);\n  this.share.$follower.remove();\n  this.share.$follower.followTarget = null;\n  this.share.$holdingInput = null;\n  document.removeEventListener('click', this.eventHandler.clickOut);\n  setTimeout(function () {\n    this.$clockBtn.on('click', this.eventHandler.clickClockBtn);\n  }.bind(this), 10);\n};\n\nTime24Input.property = {};\nTime24Input.property.dayOffset = {\n  set: function set(value) {\n    this._dayOffset = (0, _utils.isRealNumber)(value) ? value : null;\n\n    this._updateText();\n  },\n  get: function get() {\n    return this._dayOffset;\n  }\n};\nTime24Input.property.value = {\n  set: function set(value) {\n    this._value = (0, _utils.isRealNumber)(value) ? value : this.notNull ? 0 : null;\n\n    this._updateText();\n  },\n  get: function get() {\n    return this._value;\n  }\n};\nTime24Input.property.displayTime = {\n  get: function get() {\n    if ((0, _utils.isRealNumber)(this._value) && (0, _utils.isRealNumber)(this._dayOffset)) {\n      return this._value + this._dayOffset;\n    } else {\n      return null;\n    }\n  }\n};\nTime24Input.property.notNull = {\n  set: function set(value) {\n    if (value) {\n      if (this.value === null) {\n        this.value = 0;\n      }\n\n      this.addClass('as-must-not-null');\n    } else {\n      this.removeClass('as-must-not-null');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-must-not-null');\n  }\n};\nTime24Input.property.disabled = {\n  set: function set(value) {\n    value = !!value;\n    this._disabled = value;\n    if (value) this.addClass('as-disabled');else this.removeClass('as-disabled');\n    this.$text.disabled = value;\n  },\n  get: function get() {\n    return this._disabled;\n  }\n};\nTime24Input.property.readOnly = _TimeInput[\"default\"].property.readOnly;\nTime24Input.property.format = {\n  set: function set(value) {\n    this._format = value || 'HH:mm';\n\n    this._updateText();\n  },\n  get: function get() {\n    return this._format;\n  }\n};\nTime24Input.eventHandler = {};\n\nTime24Input.eventHandler.pickerChange = function (event) {\n  if (this.dayOffset === null) this.dayOffset = 0;\n  this.value = this.share.$picker.value;\n\n  this._notifyChange(event);\n\n  _ResizeSystem[\"default\"].requestUpdateSignal();\n};\n\nTime24Input.eventHandler.clickOut = function (event) {\n  if ((0, _EventEmitter.hitElement)(this.share.$follower, event) && !(0, _EventEmitter.hitElement)(this.share.$closeBtn, event)) return;\n\n  this._releasePicker();\n};\n\nTime24Input.eventHandler.clickClockBtn = function () {\n  this._attachPicker();\n};\n\n_ACore[\"default\"].install(Time24Input);\n\nvar _default = Time24Input;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/Time24Input.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/TimeInput.js":
/*!**************************************************!*\
  !*** ./node_modules/absol-acomp/js/TimeInput.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/timeinput.css */ \"./node_modules/absol-acomp/css/timeinput.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _datetime = __webpack_require__(/*! absol/src/Time/datetime */ \"./node_modules/absol/src/Time/datetime.js\");\n\nvar _ChromeTimePicker = _interopRequireDefault(__webpack_require__(/*! ./ChromeTimePicker */ \"./node_modules/absol-acomp/js/ChromeTimePicker.js\"));\n\nvar _DomSignal = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/DomSignal */ \"./node_modules/absol/src/HTML5/DomSignal.js\"));\n\nvar _DateTimeInput = _interopRequireDefault(__webpack_require__(/*! ./DateTimeInput */ \"./node_modules/absol-acomp/js/DateTimeInput.js\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _EventEmitter = __webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\");\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _ResizeSystem = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/ResizeSystem */ \"./node_modules/absol/src/HTML5/ResizeSystem.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar STATE_NEW = 1;\nvar STATE_EDITED = 2;\nvar STATE_NONE = 0;\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @extends {AElement}\r\n * @constructor\r\n */\n\nfunction TimeInput() {\n  this._editingData = {};\n  this._isOpenPicker = false;\n  this._lastEmitValue = null;\n  this._min = 0;\n  this._hour = null;\n  this._minute = null;\n  this._format = 'HH:mm';\n  this.$clockBtn = $('.as-time-input-icon-btn', this).on('click', this.eventHandler.clickClockBtn);\n  this.$text = $('input', this).on('mousedown', this.eventHandler.mouseDownInput).on('mouseup', this.eventHandler.mouseUpInput).on('dblclick', this.eventHandler.dblclickInput).on('keydown', this.eventHandler.keydown).on('blur', this.eventHandler.inputBlur).on('contextmenu', function (event) {\n    event.preventDefault();\n  });\n  this.$clearBtn = $('button.as-time-input-clear-btn', this).on('click', this.clear.bind(this));\n  this.$domSignal = _('attachhook').addTo(this);\n  this.domSignal = new _DomSignal[\"default\"](this.$domSignal);\n  this.domSignal.on('request_auto_select', this._autoSelect.bind(this));\n\n  _OOP[\"default\"].drillProperty(this, this, 'dayOffset', 'value');\n\n  this.dayOffset = null;\n  this.hour = null;\n  this.minute = null;\n  this.disabled = false;\n  this.notNull = true;\n  /***\r\n   * @memberOf TimeInput#\r\n   * @name min\r\n   * @type {number}\r\n   */\n\n  /***\r\n   * @memberOf TimeInput#\r\n   * @name s24\r\n   * @type {boolean}\r\n   * @readonly\r\n   */\n}\n\nTimeInput.tag = 'timeinput';\n\nTimeInput.render = function () {\n  return _({\n    \"class\": 'ac-time-input',\n    extendEvent: ['change'],\n    child: [{\n      tag: 'input',\n      \"class\": 'as-time-input-text',\n      attr: {\n        type: 'text'\n      }\n    }, {\n      tag: 'button',\n      \"class\": 'as-time-input-clear-btn',\n      child: 'span.mdi.mdi-close-circle'\n    }, {\n      tag: 'button',\n      \"class\": 'as-time-input-icon-btn',\n      child: 'span.mdi.mdi-clock-outline'\n    }]\n  });\n};\n\nTimeInput.prototype._autoSelect = _DateTimeInput[\"default\"].prototype._autoSelect;\nTimeInput.prototype.tokenMap = {\n  h: 'h',\n  H: 'H',\n  HH: 'H',\n  hh: 'h',\n  m: 'm',\n  mm: 'm',\n  a: 'a'\n};\nTimeInput.prototype.tokenRegex = _DateTimeInput[\"default\"].prototype.tokenRegex;\nTimeInput.prototype._tokenAt = _DateTimeInput[\"default\"].prototype._tokenAt;\nTimeInput.prototype._editNextToken = _DateTimeInput[\"default\"].prototype._editNextToken;\nTimeInput.prototype._editPrevToken = _DateTimeInput[\"default\"].prototype._editPrevToken;\nTimeInput.prototype._makeTokenDict = _DateTimeInput[\"default\"].prototype._makeTokenDict;\n\nTimeInput.prototype._makeValueDict = function (hour, minute) {\n  var res = {};\n\n  if (typeof hour == 'number' && hour >= 0 && hour < 24) {\n    res.h = {\n      value: 1 + (hour - 1) % 12\n    };\n    res.H = {\n      value: hour\n    };\n    res.a = {\n      value: hour >= 12 ? 'PM' : 'AM'\n    };\n  } else {\n    res.h = {\n      value: NaN\n    };\n    res.H = {\n      value: NaN\n    };\n    res.a = {\n      value: 'a'\n    };\n  }\n\n  if (typeof minute === \"number\" && minute >= 0 && minute < 60) {\n    res.m = {\n      value: minute\n    };\n  } else {\n    res.m = {\n      value: NaN\n    };\n  }\n\n  return res;\n};\n\nTimeInput.prototype._applyValue = function (hour, minute) {\n  this._hour = hour;\n  this._minute = minute;\n  this.$text.value = this._applyTokenDict(this._format, this._makeValueDict(hour, minute));\n\n  this._updateNullClass();\n};\n\nTimeInput.prototype._updateNullClass = function () {\n  if (this._hour == null && this._minute == null) {\n    this.addClass('as-value-null');\n  } else {\n    this.removeClass('as-value-null');\n  }\n};\n\nTimeInput.prototype._applyTokenDict = function (format, dict) {\n  var rgx = new RegExp(this.tokenRegex.source, 'g');\n  var tokenMap = this.tokenMap;\n  return format.replace(rgx, function (full, g1, g2, sourceText) {\n    if (g1 && g1 === 'a') {\n      return dict[g1].value;\n    } else if (g1 && tokenMap[g1]) {\n      var ident = tokenMap[g1];\n\n      if (dict[ident] && !isNaN(dict[ident].value)) {\n        return (0, _utils.zeroPadding)(dict[ident].value, g1.length);\n      } else {\n        return full;\n      }\n    } else return full;\n  });\n};\n\nTimeInput.prototype._correctingInput = function () {\n  var tkDict = this._makeTokenDict(this.$text.value); // TODO: check min, max,\n\n};\n\nTimeInput.prototype._correctingCurrentToken = function () {\n  var token = this._tokenAt(this.$text.selectionStart);\n\n  if (!token) return;\n  var value;\n\n  if (token.ident === 'a') {\n    if (token.text !== 'a' && token.text !== 'AM' && token.text !== 'PM') {\n      token.replace('a', false);\n    }\n  } else {\n    value = parseInt(token.text);\n    var rqMin = {\n      h: 1,\n      hh: 1,\n      m: 0,\n      mm: 0,\n      H: 0,\n      HH: 0\n    }[token.ident];\n    var rqMax = {\n      H: 23,\n      HH: 23,\n      h: 12,\n      hh: 12,\n      m: 59,\n      mm: 59\n    }[token.ident];\n\n    if (rqMin !== undefined) {\n      if (!isNaN(value)) {\n        if (value < rqMin || value > rqMin) {\n          value = Math.max(rqMin, Math.min(rqMax, value));\n          token.replace((0, _utils.zeroPadding)(value, token.ident.length), false);\n          this._editingData[this.tokenMap[token.ident]] = value;\n        }\n      } else if (token.text !== token.ident) {\n        token.replace(token.ident, false);\n      }\n    }\n  }\n};\n\nTimeInput.prototype._loadValueFromInput = function () {\n  var tkDick = this._makeTokenDict(this.$text.value);\n\n  var hour = NaN;\n  var minute = NaN;\n\n  if (tkDick.H) {\n    hour = Math.min(23, Math.max(0, tkDick.H.value));\n  } else if (tkDick.h) {\n    hour = Math.min(12, Math.max(1, tkDick.h.value));\n\n    if (tkDick.a && tkDick.a.value === 'PM') {\n      hour += 12;\n    }\n  }\n\n  if (tkDick.m) {\n    minute = Math.min(59, Math.max(0, tkDick.m.value));\n  }\n\n  this._hour = isNaN(hour) ? null : hour;\n  this._minute = isNaN(minute) ? null : minute;\n\n  this._updateNullClass();\n};\n\nTimeInput.prototype.clear = function (event) {\n  this._applyValue(null, null);\n\n  this._notifyIfChange(event);\n};\n\nTimeInput.prototype._notifyIfChange = function (event) {\n  if (this._lastEmitValue === this.dayOffset) return;\n  this.emit('change', {\n    type: 'change',\n    target: this,\n    dayOffset: this.dayOffset,\n    hour: this.hour,\n    minute: this.minute,\n    originEvent: event\n  }, this);\n  this._lastEmitValue = this.dayOffset;\n};\n\nTimeInput.property = {};\nTimeInput.property.hour = {\n  set: function set(value) {\n    if (typeof value == \"number\") {\n      value = value % 24 || 0;\n    } else {\n      value = null;\n    }\n\n    this._applyValue(value, this._minute);\n\n    this._lastEmitValue = this.dayOffset;\n  },\n  get: function get() {\n    return this._hour;\n  }\n};\nTimeInput.property.minute = {\n  set: function set(value) {\n    if (typeof value == \"number\") {\n      value = value % 60 || 0;\n    } else {\n      value = null;\n    }\n\n    this._applyValue(this._hour, value);\n\n    this._lastEmitValue = this.dayOffset;\n  },\n  get: function get() {\n    return this._minute;\n  }\n};\nTimeInput.property.value = {\n  set: function set(value) {\n    if (typeof value == \"number\" || value && value.getTime) {\n      value = value || 0;\n      if (value.getTime) value = value.getTime() - (0, _datetime.beginOfDay)(value).getTime();else {\n        value = value % _datetime.MILLIS_PER_DAY;\n      }\n      this.hour = Math.floor(value / _datetime.MILLIS_PER_HOUR);\n      this.minute = Math.floor(value % _datetime.MILLIS_PER_HOUR / _datetime.MILLIS_PER_MINUTE);\n    } else {\n      this.hour = null;\n      this.minute = null;\n    }\n  },\n  get: function get() {\n    if (this._hour === null || this._minute === null) return null;\n    return this._hour * _datetime.MILLIS_PER_HOUR + this._minute * _datetime.MILLIS_PER_MINUTE;\n  }\n};\nTimeInput.property.disabled = {\n  set: function set(value) {\n    value = !!value;\n    this._disabled = value;\n    if (value) this.addClass('as-disabled');else this.removeClass('as-disabled');\n    this.$text.disabled = value;\n  },\n  get: function get() {\n    return this._disabled;\n  }\n};\nTimeInput.property.format = {\n  enumerable: true,\n  configurable: true,\n  set: function set(value) {\n    if (typeof value !== \"string\") value = \"hh:mm a\";\n    value = value || 'hh:mm a';\n    this._format = value;\n    this.dayOffset = this['dayOffset'];\n  },\n  get: function get() {\n    return this._format;\n  }\n};\nTimeInput.property.s24 = {\n  get: function get() {\n    var t = this.format.match(new RegExp(this.tokenRegex.source, 'g'));\n    return !t || t.indexOf('a') < 0;\n  }\n};\nTimeInput.property.notNull = {\n  set: function set(value) {\n    if (value) {\n      if (this.dayOffset === null) {\n        this.dayOffset = 0;\n      }\n\n      this.addClass('as-must-not-null');\n    } else {\n      this.removeClass('as-must-not-null');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-must-not-null');\n  }\n};\nTimeInput.property.readOnly = {\n  set: function set(value) {\n    value = !!value;\n    if (value) this.addClass('as-read-only');else this.removeClass('as-read-only');\n  },\n  get: function get() {\n    return this.hasClass('as-read-only');\n  }\n};\nTimeInput.property.min = {\n  set: function set(value) {\n    if (!(0, _utils.isRealNumber)(value)) value = 0;\n    value = Math.floor(value);\n    value = Math.max(0, Math.min(_datetime.MILLIS_PER_DAY, value));\n    this._min = value;\n  },\n  get: function get() {\n    return this._min;\n  }\n};\nTimeInput.eventHandler = {};\n\nTimeInput.eventHandler.clickClockBtn = function () {\n  this._attachPicker(this);\n};\n\nTimeInput.eventHandler.mouseUpInput = _DateTimeInput[\"default\"].eventHandler.mouseUpInput;\nTimeInput.eventHandler.mouseDownInput = _DateTimeInput[\"default\"].eventHandler.mouseDownInput;\nTimeInput.eventHandler.dblclickInput = _DateTimeInput[\"default\"].eventHandler.dblclickInput;\nTimeInput.eventHandler.inputBlur = _DateTimeInput[\"default\"].eventHandler.inputBlur;\n\nTimeInput.eventHandler.clickOut = function (event) {\n  if ((0, _EventEmitter.hitElement)(this.share.$picker, event) && !(0, _EventEmitter.hitElement)(this.share.$closeBtn, event)) return;\n\n  this._releasePicker();\n};\n\nTimeInput.eventHandler.pickerChange = function (event) {\n  this._applyValue(event.hour, event.minute);\n\n  this._notifyIfChange(event);\n\n  _ResizeSystem[\"default\"].requestUpdateSignal();\n};\n/***\r\n *\r\n * @param {KeyboardEvent} event\r\n */\n\n\nTimeInput.eventHandler.keydown = function (event) {\n  var token = this._tokenAt(this.$text.selectionStart);\n\n  var endToken = this._tokenAt(this.$text.selectionEnd);\n\n  if (!token) {\n    if (event.key === 'Enter') {\n      this._correctingInput();\n\n      this._loadValueFromInput();\n\n      this._notifyIfChange(event);\n    }\n\n    return;\n  }\n\n  var newTokenText;\n  var value;\n\n  if (event.key.startsWith('Arrow')) {\n    event.preventDefault();\n\n    switch (event.key) {\n      case 'ArrowLeft':\n        this._editPrevToken();\n\n        break;\n\n      case 'ArrowRight':\n        this._editNextToken();\n\n        break;\n\n      case 'ArrowUp':\n      case 'ArrowDown':\n        switch (token.ident) {\n          case \"H\":\n          case \"HH\":\n            value = parseInt(token.text);\n\n            if (isNaN(value)) {\n              this._editingData.H = event.key === 'ArrowUp' ? 0 : 23;\n            } else {\n              this._editingData.H = (value + (event.key === 'ArrowUp' ? 1 : 23)) % 24;\n            }\n\n            newTokenText = (0, _utils.zeroPadding)(this._editingData.H, token.ident.length);\n            token.replace(newTokenText, true);\n            break;\n\n          case \"hh\":\n          case 'h':\n            value = parseInt(token.text);\n\n            if (isNaN(value)) {\n              this._editingData.h = event.key === 'ArrowUp' ? 1 : 12;\n            } else {\n              this._editingData.h = 1 + (value + (event.key === 'ArrowUp' ? 0 : 10)) % 12;\n            }\n\n            newTokenText = this._editingData.h + '';\n\n            while (newTokenText.length < token.ident.length) {\n              newTokenText = '0' + newTokenText;\n            }\n\n            token.replace(newTokenText, true);\n            break;\n\n          case \"mm\":\n          case 'm':\n            value = parseInt(token.text);\n\n            if (isNaN(value)) {\n              this._editingData.m = event.key === 'ArrowUp' ? 0 : 59;\n            } else {\n              this._editingData.m = (value + (event.key === 'ArrowUp' ? 1 : 59)) % 60;\n            }\n\n            newTokenText = this._editingData.m + '';\n\n            while (newTokenText.length < token.ident.length) {\n              newTokenText = '0' + newTokenText;\n            }\n\n            token.replace(newTokenText, true);\n            break;\n\n          case 'a':\n            value = token.text;\n            this._editingData.a = value === 'PM' ? \"AM\" : \"PM\";\n            newTokenText = this._editingData.a;\n            token.replace(newTokenText, true);\n            break;\n        }\n\n        break;\n    }\n  } else if (event.key === \"Delete\" || event.key === 'Backspace') {\n    event.preventDefault();\n\n    if (endToken.idx !== token.idx) {\n      if (this.notNull) {\n        this.$text.value = (0, _datetime.formatDateTime)((0, _datetime.beginOfDay)(new Date()), this.format);\n      } else {\n        this.$text.value = this._format;\n      }\n\n      this.$text.select();\n    } else {\n      if (this.notNull) {\n        token.replace(token.ident === 'a' ? 'AM' : (0, _utils.zeroPadding)(token.ident === 'hh' || token.ident === 'h' ? 12 : 0, token.ident.length), true);\n      } else {\n        token.replace(token.ident, true);\n      }\n\n      if (event.key === \"Delete\") this._editNextToken();else this._editPrevToken();\n    }\n  } else if (event.key === \"Enter\" || event.key === 'Tab') {\n    this._correctingInput();\n\n    this._loadValueFromInput();\n\n    this._notifyIfChange(event);\n  } else if (event.ctrlKey) {\n    switch (event.key) {\n      case 'a':\n      case 'A':\n        break;\n\n      case 'c':\n      case 'C':\n        break;\n\n      case 'x':\n      case 'X':\n        this.domSignal.once('clear_value', function () {\n          this.$text.value = this._format;\n          this.$text.select();\n        }.bind(this));\n        this.domSignal.emit('clear_value');\n        break;\n\n      default:\n        event.preventDefault();\n    }\n  } else if (event.key.match(/^[0-9]$/g)) {\n    event.preventDefault();\n    var dVal = parseInt(event.key);\n\n    if (this._editingData.state === STATE_NEW) {\n      switch (token.ident) {\n        case 'm':\n        case 'mm':\n          token.replace((0, _utils.zeroPadding)(dVal, token.ident.length), true);\n          this._editingData.state = STATE_EDITED;\n\n          if (dVal > 5) {\n            this._editNextToken();\n          }\n\n          break;\n\n        case 'h':\n        case 'hh':\n          token.replace((0, _utils.zeroPadding)(dVal, token.ident.length), true);\n          this._editingData.state = STATE_EDITED;\n\n          if (dVal > 1) {\n            this._editNextToken();\n          }\n\n          break;\n\n        case 'H':\n        case 'HH':\n          token.replace((0, _utils.zeroPadding)(dVal, token.ident.length), true);\n          this._editingData.state = STATE_EDITED;\n\n          if (dVal > 2) {\n            this._editNextToken();\n          }\n\n          break;\n      }\n    } else {\n      switch (token.ident) {\n        case 'm':\n        case 'mm':\n          dVal = (parseInt(token.text.split('').pop()) || 0) * 10 + dVal;\n          dVal = Math.max(0, Math.min(59, dVal));\n          this._editingData.m = dVal;\n          token.replace((0, _utils.zeroPadding)(dVal, token.ident.length), true);\n\n          this._editNextToken();\n\n          break;\n\n        case 'h':\n        case 'hh':\n          dVal = (parseInt(token.text.split('').pop()) || 0) * 10 + dVal;\n          dVal = Math.max(1, Math.min(12, dVal));\n          this._editingData.h = dVal;\n          token.replace((0, _utils.zeroPadding)(dVal, token.ident.length), true);\n\n          this._editNextToken();\n\n          break;\n\n        case 'H':\n        case 'HH':\n          dVal = (parseInt(token.text.split('').pop()) || 0) * 10 + dVal;\n          dVal = Math.max(0, Math.min(23, dVal));\n          this._editingData.H = dVal;\n          token.replace((0, _utils.zeroPadding)(dVal, token.ident.length), true);\n\n          this._editNextToken();\n\n          break;\n      }\n    }\n  } else if (event.key.match(/^[aApPSCsc]$/) && token.ident === 'a') {\n    event.preventDefault();\n\n    if (event.key.match(/^[aAsS]$/)) {\n      token.replace('AM', true);\n      this._editingData.a = \"AM\";\n    } else {\n      token.replace('PM', true);\n      this._editingData.a = \"PM\";\n    }\n\n    this._editNextToken();\n  } else {\n    event.preventDefault();\n  }\n};\n\nTimeInput.prototype.share = {\n  $picker: null,\n  $holdingInput: null,\n  $follower: null,\n  $closeBtn: null\n};\n\nTimeInput.prototype._preparePicker = function () {\n  if (this.share.$picker) return;\n  this.share.$picker = _({\n    tag: _ChromeTimePicker[\"default\"].tag,\n    \"class\": ['as-time-input-picker']\n  });\n  this.share.$follower = _({\n    tag: 'follower',\n    \"class\": ['as-time-input-follower', 'as-dropdown-box-common-style'],\n    child: [this.share.$picker, {\n      \"class\": 'as-dropdown-box-footer',\n      child: [{\n        \"class\": 'as-dropdown-box-footer-right',\n        child: ['<a data-ml-key=\"txt_close\" class=\"as-select-list-box-close-btn\"></a>']\n      }]\n    }]\n  });\n};\n\nTimeInput.prototype._attachPicker = function () {\n  this._preparePicker();\n\n  if (this.share.$holdingInput) this.share.$holdingInput._releasePicker();\n  this.share.$holdingInput = this;\n  this.share.$follower.addTo(document.body);\n  this.share.$follower.followTarget = this;\n  this.share.$follower.addStyle('visibility', 'hidden');\n  this.share.$picker.hour = this.hour || 0;\n  this.share.$picker.minute = this.minute || 0;\n  this.share.$picker.s24 = this.s24;\n  this.share.$picker.min = this.min;\n  this.share.$picker.domSignal.emit('request_scroll_into_selected');\n  this.$clockBtn.off('click', this.eventHandler.clickClockBtn);\n  this.share.$picker.on('change', this.eventHandler.pickerChange);\n  setTimeout(function () {\n    document.addEventListener('click', this.eventHandler.clickOut);\n    this.share.$follower.removeStyle('visibility');\n  }.bind(this), 5);\n};\n\nTimeInput.prototype._releasePicker = function () {\n  if (this.share.$holdingInput !== this) return; // this.share.$calendar.off('pick', this.eventHandler.calendarPick);\n\n  this.share.$follower.remove();\n  document.removeEventListener('click', this.eventHandler.clickOut);\n  this.share.$picker.off('change', this.eventHandler.pickerChange);\n  setTimeout(function () {\n    this.$clockBtn.on('click', this.eventHandler.clickClockBtn);\n  }.bind(this), 5);\n  this.share.$holdingInput = null;\n};\n\n_ACore[\"default\"].install(TimeInput);\n\nvar _default = TimeInput;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/TimeInput.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/TimePicker.js":
/*!***************************************************!*\
  !*** ./node_modules/absol-acomp/js/TimePicker.js ***!
  \***************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.isTouchDevice = exports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/timepicker.css */ \"./node_modules/absol-acomp/css/timepicker.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Svg = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Svg */ \"./node_modules/absol/src/HTML5/Svg.js\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _datetime = __webpack_require__(/*! absol/src/Time/datetime */ \"./node_modules/absol/src/Time/datetime.js\");\n\nvar _BrowserDetector = _interopRequireDefault(__webpack_require__(/*! absol/src/Detector/BrowserDetector */ \"./node_modules/absol/src/Detector/BrowserDetector.js\"));\n\nvar _NumberSpanInput = _interopRequireDefault(__webpack_require__(/*! ./NumberSpanInput */ \"./node_modules/absol-acomp/js/NumberSpanInput.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n//todo: add this to absol\nvar isTouchDevice = _BrowserDetector[\"default\"].hasTouch && !_BrowserDetector[\"default\"].os.type.match(/windows|X11|Ubuntu|Linux/); //todo: re select text after click\n\nexports.isTouchDevice = isTouchDevice;\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\nvar $g = _Svg[\"default\"].ShareInstance.$;\nvar _g = _Svg[\"default\"].ShareInstance._;\n\nfunction TimePicker() {\n  this._hour = 0;\n  this._minute = 0;\n  this._lastDayOffset = 0;\n  this._state = 'none';\n  this._mode = 'CLOCK';\n  this._latBound = {\n    width: 0,\n    height: 0\n  };\n  var thisPicker = this;\n  if (isTouchDevice) this.addClass('ac-time-picker-touch');\n  this.$attachook = _('attachhook').addTo(this).on('error', function () {\n    _Dom[\"default\"].addToResizeSystem(this);\n\n    this.requestUpdateSize();\n    thisPicker.addStyle('font-size', thisPicker.getComputedStyleValue('font-size'));\n  });\n  this.$attachook.requestUpdateSize = this.updateSize.bind(this);\n  /***\r\n   *\r\n   * @type {NumberSpanInput}\r\n   */\n\n  this.$hour = $('.ac-time-picker-hour', this).on({\n    focus: this.eventHandler.focusHour,\n    keydown: this.eventHandler.keydownHour,\n    blur: this.eventHandler.blurHour\n  });\n  /***\r\n   *\r\n   * @type {NumberSpanInput}\r\n   */\n\n  this.$minute = $('.ac-time-picker-minute', this).on({\n    keydown: this.eventHandler.keydownMinute,\n    focus: this.eventHandler.focusMinute,\n    blur: this.eventHandler.blurMinute\n  });\n  this.$hourInput = $('.ac-time-picker-hour-input', this).on({\n    click: this.eventHandler.clickHourInput,\n    keydown: this.eventHandler.keydownHourInput,\n    blur: this.eventHandler.blurHourInput\n  });\n  this.$minuteInput = $('.ac-time-picker-minute-input', this).on({\n    click: this.eventHandler.clickMinuteInput,\n    keydown: this.eventHandler.keydownMinuteInput,\n    blur: this.eventHandler.blurMinuteInput\n  }); //only support if is none touch device\n\n  if (isTouchDevice) {\n    this.$hour.readOnly = true;\n    this.$hour.on('click', this._editHourState.bind(this));\n    this.$minute.readOnly = true;\n    this.$minute.on('click', this._editMinuteState.bind(this));\n  }\n\n  this.$clock = $g('.ac-time-picker-clock', this).on(isTouchDevice ? 'touchstart' : 'mousedown', this.eventHandler.mousedownClock);\n  this._clockWidth = 400;\n  this._clockHeight = 400;\n  this._clockRadius = 150;\n  this._clockRadiusInner = 100;\n  this.$clockContent = $g('.ac-time-picker-clock-content', this);\n  this.$clockHourCtn = $g('.ac-time-picker-clock-hour-ctn', this);\n  this.$clockMinuteCtn = $g('.ac-time-picker-clock-minute-ctn', this);\n  this.$hourNumbers = Array(24).fill(0).map(function (u, i) {\n    var h = i;\n    if (h == 0) h = 12;else if (h == 12) h = '00';\n    return _g({\n      tag: 'text',\n      attr: {\n        'text-anchor': 'middle'\n      },\n      \"class\": 'ac-time-picker-clock-hour-' + (i < 12 ? 'am' : 'pm'),\n      child: {\n        text: h + ''\n      }\n    }).addTo(thisPicker.$clockHourCtn);\n  });\n  this.$minuteNumbers = Array(12).fill(0).map(function (u, i) {\n    return _g({\n      tag: 'text',\n      attr: {\n        'text-anchor': 'middle'\n      },\n      \"class\": 'ac-time-picker-clock-minute',\n      child: {\n        text: i * 5 + ''\n      }\n    }).addTo(thisPicker.$clockMinuteCtn);\n  });\n  this.$selectCtn = $g('.ac-time-picker-clock-select-ctn', this);\n  this.$clockCenter = _g({\n    tag: 'circle',\n    \"class\": 'ac-time-picker-clock-center',\n    attr: {\n      cx: \"0\",\n      cy: '0'\n    }\n  }).addTo(this.$selectCtn);\n  this.$clockSelectLine = _g({\n    tag: 'path',\n    \"class\": 'ac-time-picker-clock-select-line'\n  }).addTo(this.$selectCtn);\n  this.$clockSelectCicle = _g({\n    tag: 'circle',\n    \"class\": 'ac-time-picker-clock-select-circle',\n    attr: {\n      cx: 0,\n      cy: 0\n    }\n  }).addTo(this.$selectCtn);\n  this.$clockSelectCenter = _g({\n    tag: 'circle',\n    \"class\": 'ac-time-picker-clock-select-center'\n  }).addTo(this.$selectCtn);\n  this.$finishBtn = $('.ac-time-picker-finish-btn', this).on('click', this.finishSelect.bind(this));\n  this.$cancelBtn = $('.ac-time-picker-cancel-btn', this).on('click', this.cancelSelect.bind(this));\n  this.$keyboardBtn = $('.ac-time-picker-keyboard-btn', this).on('click', this.timeMode.bind(this));\n  this.$clockBtn = $('.ac-time-picker-clock-btn', this).on('click', this.clockMode.bind(this));\n}\n\n;\n\nTimePicker.prototype.updateSize = function () {\n  // var \n  this._fontSize = this.getFontSize();\n  var cBound = this.$clock.getBoundingClientRect();\n  this._clockWidth = cBound.width;\n  this._clockHeight = cBound.height;\n  this.$clock.attr({\n    width: this._clockWidth,\n    height: this._clockHeight,\n    viewBox: '0 0 ' + this._clockWidth + ' ' + this._clockHeight\n  });\n  this.$clockContent.attr('transform', 'translate(' + this._clockWidth / 2 + ',' + this._clockHeight / 2 + ')');\n  var clockRadius = this._clockWidth / 2 - this._fontSize;\n  var clockRadiusInner = clockRadius - this._fontSize * 1.5;\n  this._clockRadius = clockRadius;\n  this._clockRadiusInner = clockRadiusInner;\n  this.$clockCenter.attr('r', this._fontSize / 5);\n  this.$clockSelectCicle.attr({\n    r: this._fontSize * 0.7,\n    cx: clockRadius\n  });\n  this.$clockSelectCenter.attr({\n    r: this._fontSize / 10,\n    cx: clockRadius\n  });\n  this.$hourNumbers.forEach(function (elt, i) {\n    var angle = Math.PI * (i - 3) / 6;\n    var r = i < 12 ? clockRadius : clockRadiusInner;\n    var box = elt.getBBox();\n    var x = r * Math.cos(angle);\n    var y = r * Math.sin(angle) + box.height / 2;\n    elt.attr({\n      x: x,\n      y: y\n    });\n  });\n  this.$minuteNumbers.forEach(function (elt, i) {\n    var angle = Math.PI * (i - 3) / 6;\n    var box = elt.getBBox();\n    var x = clockRadius * Math.cos(angle);\n    var y = clockRadius * Math.sin(angle) + box.height / 3;\n    elt.attr({\n      x: x,\n      y: y\n    });\n  });\n  this.updateSelectPosition();\n  this.notifySizeChange();\n};\n\nTimePicker.prototype.updateSelectPosition = function () {\n  var angle, radius;\n\n  if (this._state == \"EDIT_MINUTE\") {\n    angle = Math.PI * (this._minute - 15) / 30;\n    radius = this._clockRadius;\n  } else if (this._state == \"EDIT_HOUR\") {\n    angle = Math.PI * (this._hour - 3) / 6;\n\n    if (this._hour > 0 && this._hour <= 12) {\n      radius = this._clockRadius;\n    } else {\n      radius = this._clockRadiusInner;\n    }\n  } else {\n    return;\n  }\n\n  this._drawSelect(radius, angle);\n};\n\nTimePicker.prototype.editHour = function () {\n  this.clockMode();\n\n  if (this.$hour.readOnly) {\n    this._editHourState();\n  } else {\n    this.$hour.focus();\n  }\n};\n\nTimePicker.prototype._drawSelect = function (radius, angle) {\n  var x = radius * Math.cos(angle);\n  var y = radius * Math.sin(angle);\n  this.$clockSelectCicle.attr({\n    cx: x,\n    cy: y\n  });\n  this.$clockSelectCenter.attr({\n    cx: x,\n    cy: y\n  });\n  this.$clockSelectLine.attr('d', 'M0,0L' + x + ',' + y);\n};\n\nTimePicker.prototype.notifyChange = function (force) {\n  if (this._lastDayOffset != this.dayOffset || force) {\n    this.emit('change', {\n      target: this,\n      hour: this.hour,\n      minute: this.minute,\n      dayOffset: this.dayOffset,\n      name: 'change'\n    }, this);\n    this._lastDayOffset = this.dayOffset;\n  }\n};\n\nTimePicker.prototype.notifySizeChange = function () {\n  var bound = this.getBoundingClientRect();\n\n  if (this._latBound.width != bound.width || this._latBound.height != bound.height) {\n    this._latBound.width = bound.width;\n    this._latBound.height = bound.height;\n    this.emit('sizechange', {\n      name: 'sizechange',\n      bound: bound,\n      target: this\n    }, this);\n  }\n};\n\nTimePicker.tag = 'TimePicker';\n\nTimePicker.render = function () {\n  return _({\n    extendEvent: ['change', 'finish', 'cancel', 'sizechange'],\n    \"class\": ['ac-time-picker', 'ac-time-picker-clock-mode'],\n    //clock mode is default\n    child: [{\n      \"class\": 'ac-time-picker-set-clock',\n      child: [{\n        \"class\": 'ac-time-picker-set-clock-header',\n        child: [{\n          tag: 'numberspaninput',\n          \"class\": 'ac-time-picker-hour',\n          props: {\n            value: 0,\n            zeroInt: 2\n          }\n        }, {\n          tag: 'span',\n          text: ':'\n        }, {\n          tag: 'numberspaninput',\n          \"class\": 'ac-time-picker-minute',\n          props: {\n            value: 0,\n            zeroInt: 2\n          }\n        }]\n      }, _g({\n        tag: 'svg',\n        \"class\": 'ac-time-picker-clock',\n        child: [{\n          \"class\": 'ac-time-picker-clock-content',\n          child: ['.ac-time-picker-clock-select-ctn', '.ac-time-picker-clock-hour-ctn', '.ac-time-picker-clock-minute-ctn']\n        }]\n      })]\n    }, {\n      \"class\": 'ac-time-picker-set-time',\n      child: [{\n        \"class\": 'ac-time-picker-set-time-header',\n        child: {\n          text: 'Set time'\n        }\n      }, {\n        \"class\": 'ac-time-picker-set-time-label',\n        child: {\n          text: 'Type in time'\n        }\n      }, {\n        \"class\": 'ac-time-picker-set-time-input-group',\n        child: [{\n          \"class\": 'ac-time-picker-set-time-input-hm',\n          child: [{\n            tag: 'input',\n            \"class\": 'ac-time-picker-hour-input',\n            attr: {\n              type: 'number',\n              placeHolder: '00',\n              tabindex: '2'\n            }\n          }, {\n            tag: 'span',\n            child: {\n              text: ':'\n            }\n          }, {\n            tag: 'input',\n            \"class\": 'ac-time-picker-minute-input',\n            attr: {\n              type: 'number',\n              placeHolder: '00',\n              tabindex: '3'\n            }\n          }]\n        }, {\n          \"class\": 'ac-time-picker-set-time-input-label-hm',\n          child: [{\n            tag: 'span',\n            child: {\n              text: 'hour'\n            }\n          }, {\n            tag: 'span',\n            style: {\n              visibility: 'hidden'\n            },\n            child: {\n              text: ':'\n            }\n          }, {\n            tag: 'span',\n            child: {\n              text: 'minute'\n            }\n          }]\n        }]\n      }]\n    }, {\n      \"class\": 'ac-time-picker-footer',\n      child: [{\n        tag: 'button',\n        \"class\": 'ac-time-picker-keyboard-btn',\n        child: 'span.mdi.mdi-keyboard-outline'\n      }, {\n        tag: 'button',\n        \"class\": 'ac-time-picker-clock-btn',\n        child: 'span.mdi.mdi-clock-outline'\n      }, {\n        \"class\": 'ac-time-picker-footer-right',\n        child: [{\n          tag: 'button',\n          \"class\": 'ac-time-picker-cancel-btn',\n          attr: {\n            tabindex: '4'\n          },\n          child: {\n            text: 'CANCEL'\n          }\n        }, {\n          tag: 'button',\n          attr: {\n            tabindex: '4'\n          },\n          \"class\": 'ac-time-picker-finish-btn',\n          child: {\n            text: 'OK'\n          }\n        }]\n      }]\n    }]\n  });\n};\n\nTimePicker.prototype.clockMode = function () {\n  if (this._mode == \"CLOCK\") return;\n  this._mode = 'CLOCK';\n  this.removeClass('ac-time-picker-time-mode').addClass('ac-time-picker-clock-mode');\n  this.$hour.value = this._hour < 10 ? '0' + this._hour : this._hour;\n  this.$minute.value = this._minute < 10 ? '0' + this._minute : this._minute;\n\n  this._editHourState();\n\n  this.updateSize();\n\n  this._showSelectHour(this._hour);\n};\n\nTimePicker.prototype.timeMode = function () {\n  if (this._mode == \"TIME\") return;\n  this._mode = 'TIME';\n  this.addClass('ac-time-picker-time-mode').removeClass('ac-time-picker-clock-mode');\n  this.$hourInput.value = this._hour < 10 ? '0' + this._hour : this._hour;\n  this.$minuteInput.value = this._minute < 10 ? '0' + this._minute : this._minute;\n  this.editHourInput();\n  this.updateSize();\n};\n\nTimePicker.prototype._editHourState = function () {\n  this._state = \"EDIT_HOUR\";\n  this._preHour = this._hour;\n  this.removeClass('ac-time-picker-edit-minute').addClass('ac-time-picker-edit-hour').removeClass('ac-time-picker-edit-hour-input').removeClass('ac-time-picker-edit-minute-input');\n  this.updateSize();\n};\n\nTimePicker.prototype._editMinuteState = function () {\n  this._state = \"EDIT_MINUTE\";\n  this._preMinute = this._minute;\n  this.addClass('ac-time-picker-edit-minute').removeClass('ac-time-picker-edit-hour').removeClass('ac-time-picker-edit-hour-input').removeClass('ac-time-picker-edit-minute-input');\n  this.updateSize();\n};\n\nTimePicker.prototype.editHourInput = function () {\n  var thisPicker = this;\n  this._state = \"EDIT_HOUR_INPUT\";\n  this._preHour = this._hour;\n  this.removeClass('ac-time-picker-edit-minute').removeClass('ac-time-picker-edit-hour').addClass('ac-time-picker-edit-hour-input').removeClass('ac-time-picker-edit-minute-input');\n  this.updateSize();\n  setTimeout(function () {\n    thisPicker.$hourInput.focus();\n    thisPicker.$hourInput.select();\n  }, 10);\n};\n\nTimePicker.prototype.editMinuteInput = function () {\n  var thisPicker = this;\n  this._state = \"EDIT_MINUTE_INPUT\";\n  this._preMinute = this._minute;\n  this.removeClass('ac-time-picker-edit-minute').removeClass('ac-time-picker-edit-hour').removeClass('ac-time-picker-edit-hour-input').addClass('ac-time-picker-edit-minute-input');\n  this.updateSize();\n  setTimeout(function () {\n    thisPicker.$minuteInput.focus();\n    thisPicker.$minuteInput.select();\n  }, 1);\n};\n\nTimePicker.prototype.finishSelect = function () {\n  this.emit('finish', {\n    target: this,\n    hour: this.hour,\n    minute: this.minute,\n    dayOffset: this.dayOffset,\n    name: 'finish'\n  }, this);\n};\n\nTimePicker.prototype.cancelSelect = function () {\n  this.emit('cancel', {\n    target: this,\n    name: 'cancel'\n  }, this);\n};\n\nTimePicker.eventHandler = {};\n\nTimePicker.eventHandler.focusHour = function () {\n  this._editHourState();\n\n  this.$hour.selectAll();\n};\n\nTimePicker.eventHandler.blurHour = function () {\n  var newText = this.$hour.value;\n  var hour = parseFloat(newText) || 0;\n  if (hour < 0 || hour >= 24) hour = this._preHour;\n  this.$hour.value = hour < 10 ? '0' + hour : hour;\n  this._hour = hour;\n\n  this._showSelectHour(hour);\n\n  this.notifyChange();\n};\n\nTimePicker.eventHandler.focusMinute = function () {\n  this._editMinuteState();\n\n  this.$minute.selectAll();\n};\n\nTimePicker.eventHandler.blurMinute = function () {\n  var newText = this.$minute.innerHTML;\n  var minute = parseFloat(newText) || 0;\n  if (minute < 0 || minute >= 60) minute = this._preMinute;\n  this.$minute.value = minute < 10 ? '0' + minute : minute;\n  this._minute = minute;\n\n  this._showSelectByMinuteText();\n\n  this.notifyChange();\n};\n\nTimePicker.eventHandler.clickHourInput = function () {\n  if (this._state != 'EDIT_HOUR') this.editHourInput();else {\n    this.$hourInput.focus();\n    this.$hourInput.select();\n  }\n};\n\nTimePicker.eventHandler.clickMinuteInput = function () {\n  if (this._state != 'EDIT_MINUTE_INPUT') this.editMinuteInput();else {\n    this.$minuteInput.focus();\n    this.$minuteInput.select();\n  }\n};\n\nTimePicker.eventHandler.blurHourInput = function () {\n  var hour = parseFloat(this.$hourInput.value) || 0;\n  if (hour < 0 || hour >= 24) hour = this._preHour;\n  this.hour = hour;\n};\n\nTimePicker.eventHandler.blurMinuteInput = function () {\n  var minute = parseFloat(this.$minuteInput.value) || 0;\n  if (minute < 0 || minute >= 60) minute = this._preMinute;\n  this.minute = minute;\n};\n\nTimePicker.property = {};\nTimePicker.property.hour = {\n  set: function set(value) {\n    value = value % 24 || 0;\n    this._hour = value;\n    var text = (value < 10 ? '0' : '') + value + '';\n    this.$hour.clearChild().addChild(_({\n      text: text\n    }));\n    this.$hourInput.value = text;\n    this.updateSelectPosition();\n  },\n  get: function get() {\n    return this._hour;\n  }\n};\nTimePicker.property.minute = {\n  set: function set(value) {\n    value = value % 60 || 0;\n    this._minute = value;\n    var text = (value < 10 ? '0' : '') + value + '';\n    this.$minute.value = text;\n    this.$minuteInput.value = text;\n    this.updateSelectPosition();\n  },\n  get: function get() {\n    return this._minute;\n  }\n};\nTimePicker.property.dayOffset = {\n  set: function set(value) {\n    value = value || 0;\n    if (value.getTime) value = value.getTime() - (0, _datetime.beginOfDay)(value).getTime();else {\n      value = value % _datetime.MILLIS_PER_DAY;\n    }\n    this.hour = Math.floor(value / _datetime.MILLIS_PER_HOUR);\n    this.minute = Math.floor(value % _datetime.MILLIS_PER_HOUR / _datetime.MILLIS_PER_MINUTE);\n  },\n  get: function get() {\n    return this._hour * _datetime.MILLIS_PER_HOUR + this._minute * _datetime.MILLIS_PER_MINUTE;\n  }\n};\n\nTimePicker.prototype._showSelectHour = function (hour) {\n  var radius;\n  var angle = Math.PI * (hour - 3) / 6;\n\n  if (hour < 24 && hour > 12 || hour == 0) {\n    radius = this._clockRadiusInner;\n  } else if (hour <= 12) {\n    radius = this._clockRadius;\n  } else {\n    return;\n  }\n\n  this._drawSelect(radius, angle);\n};\n\nTimePicker.prototype._showSelectByHourText = function () {\n  var hour = parseFloat(this.$hour.innerHTML) || 0;\n  if (hour < 0 || hour >= 24) return;\n\n  this._showSelectHour(hour);\n};\n\nTimePicker.prototype._showSelectMinute = function (minute) {\n  var angle = Math.PI * (minute - 15) / 30;\n\n  this._drawSelect(this._clockRadius, angle);\n};\n\nTimePicker.prototype._showSelectByMinuteText = function () {\n  var minute = parseFloat(this.$minute.innerHTML) || 0;\n  if (minute < 0 || minute >= 60) return;\n\n  this._showSelectMinute(minute);\n};\n/***\r\n *\r\n * @param {KeyboardEvent} event\r\n */\n\n\nTimePicker.eventHandler.keydownHour = function (event) {\n  var thisPicker = this;\n\n  if (event.key == 'Enter' || event.key == 'Tab') {\n    event.preventDefault();\n    this.$hour.blur();\n\n    this._editMinuteState();\n\n    setTimeout(function () {\n      thisPicker.$minute.focus();\n      thisPicker.$minute.selectAll();\n    }, 30);\n  } else {\n    setTimeout(function () {\n      var newText = thisPicker.$hour.value;\n      var hour = parseFloat(newText) || 0;\n      if (hour < 0 || hour >= 24) hour = thisPicker._preHour;else {\n        thisPicker._hour = hour;\n\n        thisPicker._showSelectHour(hour);\n      }\n    }, 30);\n  }\n};\n\nTimePicker.eventHandler.keydownMinute = function (event) {\n  var thisPicker = this;\n\n  if (event.key == 'Enter') {\n    this.$minute.blur();\n    event.preventDefault();\n    setTimeout(this.finishSelect.bind(this), 30);\n  } else if (event.key == 'Tab') {\n    this.$minute.selectNone();\n    this.$finishBtn.focus();\n    event.preventDefault();\n  } else {\n    setTimeout(function () {\n      var newText = thisPicker.$minute.value;\n      var minute = parseFloat(newText) || 0;\n      if (minute < 0 || minute >= 60) minute = thisPicker._preMinute;else {\n        thisPicker._minute = minute;\n\n        thisPicker._showSelectMinute(minute);\n      }\n    }, 30);\n  }\n};\n\nTimePicker.eventHandler.keydownHourInput = function (event) {\n  var thisPicker = this;\n\n  if (isTouchDevice && event.key == \"Unidentified\" || event.key && event.key.length == 1 && !event.ctrlKey && !event.altKey) {\n    if (event.key.match(/[0-9]/)) {\n      setTimeout(this.notifyChange.bind(this), 2);\n    } else {\n      event.preventDefault();\n    }\n  } else if (event.key == 'Enter') {\n    event.preventDefault();\n    this.$hourInput.blur();\n    this.editMinuteInput();\n  } else if (!event.key && !event.key.toLowerCase().match(/arrow|back/)) {\n    var cText = this.$hourInput.value;\n    setTimeout(function () {\n      var newText = thisPicker.$hourInput.value;\n\n      if (cText != newText) {\n        var hour = parseFloat(newText) || 0;\n        if (hour < 0 || hour >= 24) hour = thisPicker._preHour;\n        thisPicker.hour = hour;\n        thisPicker.$hourInput.blur();\n        thisPicker.editMinuteInput();\n        thisPicker.notifyChange();\n      }\n    }, 1);\n  }\n};\n\nTimePicker.eventHandler.keydownMinuteInput = function (event) {\n  var thisPicker = this;\n\n  if (isTouchDevice && event.key == \"Unidentified\" || event.key.length == 1 && !event.ctrlKey && !event.altKey) {\n    if (isTouchDevice && event.key == \"Unidentified\" || event.key.match(/[0-9]/)) {\n      setTimeout(this.notifyChange.bind(this), 2);\n    } else {\n      event.preventDefault();\n    }\n  } else if (event.key == 'Enter') {\n    this.$minute.blur();\n    this.eventHandler.blurMinuteInput();\n    event.preventDefault();\n    setTimeout(this.finishSelect.bind(this), 100);\n  } else if (event.key == \"Backspace\") {} else if (event.key != 'Enter') {\n    var cText = this.$minuteInput.value;\n    setTimeout(function () {\n      var newText = thisPicker.$minuteInput.value;\n\n      if (cText != newText) {\n        var minute = parseFloat(newText) || 0;\n        if (minute < 0 || minute >= 60) minute = thisPicker._preMinute;\n        thisPicker.minute = minute;\n        thisPicker.$minuteInput.focus();\n        thisPicker.$minuteInput.select();\n        thisPicker.notifyChange();\n      }\n    }, 1);\n  }\n};\n\nTimePicker.eventHandler.dragOnClock = function (event) {\n  event = event.changedTouches && event.changedTouches[0] || event;\n  var cBound = this.$clock.getBoundingClientRect();\n  var cx = (cBound.left + cBound.right) / 2;\n  var cy = (cBound.top + cBound.bottom) / 2;\n  var x = event.clientX - cx;\n  var y = event.clientY - cy;\n  var angle = Math.atan2(y, x);\n  var radius = Math.sqrt(x * x + y * y);\n  var index;\n\n  if (this._state == \"EDIT_HOUR\") {\n    angle += Math.PI * 2;\n    index = Math.round(angle / (Math.PI / 6));\n    var hour = (index + (12 + 3)) % 12;\n\n    if (radius < (this._clockRadiusInner + this._clockRadius) / 2) {\n      if (hour != 0) hour += 12;\n    } else {\n      if (hour == 0) hour = 12;\n    }\n\n    this._hour = hour;\n\n    this._showSelectHour(hour);\n\n    this.$hour.value = hour < 10 ? '0' + hour : hour;\n    this.$hour.selectEnd();\n  } else if (this._state == \"EDIT_MINUTE\") {\n    radius = this._clockRadius;\n    angle += Math.PI * 2;\n    index = Math.round(angle / (Math.PI / 30));\n    angle = index * (Math.PI / 30);\n    var minute = (index + (60 + 15)) % 60;\n    this._minute = minute;\n    this.$minute.value = minute < 10 ? '0' + minute : minute;\n\n    this._showSelectMinute(minute);\n\n    this.$minute.selectEnd();\n    this.notifyChange();\n  } else {\n    return;\n  }\n};\n\nTimePicker.eventHandler.mousedownClock = function (event) {\n  event.preventDefault();\n  this.eventHandler.dragOnClock(event);\n  document.body.addEventListener(isTouchDevice ? 'touchmove' : 'mousemove', this.eventHandler.mousemoveClock);\n  document.body.addEventListener(isTouchDevice ? 'touchend' : 'mouseup', this.eventHandler.mousefinishClock);\n  if (!isTouchDevice) document.body.addEventListener('mouseleave', this.eventHandler.mousefinishClock);\n};\n\nTimePicker.eventHandler.mousemoveClock = function (event) {\n  event.preventDefault();\n  this.eventHandler.dragOnClock(event);\n};\n\nTimePicker.eventHandler.mousefinishClock = function () {\n  document.body.removeEventListener('mousemove', this.eventHandler.mousemoveClock);\n  document.body.removeEventListener('mouseup', this.eventHandler.mousefinishClock);\n  document.body.removeEventListener('mouseleave', this.eventHandler.mousefinishClock);\n\n  if (this._state == 'EDIT_HOUR') {\n    if (this.$minute.readOnly) {\n      this._editMinuteState();\n    } else {\n      this.$minute.focus();\n    }\n  } else if (this._state == 'EDIT_MINUTE') {\n    this.$minute.selectAll(); // refocus\n  }\n};\n\n_ACore[\"default\"].install('timepicker', TimePicker);\n\nvar _default = TimePicker;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/TimePicker.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/TimeRange24Input.js":
/*!*********************************************************!*\
  !*** ./node_modules/absol-acomp/js/TimeRange24Input.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _TimeInput = _interopRequireDefault(__webpack_require__(/*! ./TimeInput */ \"./node_modules/absol-acomp/js/TimeInput.js\"));\n\nvar _Time24Input = _interopRequireDefault(__webpack_require__(/*! ./Time24Input */ \"./node_modules/absol-acomp/js/Time24Input.js\"));\n\n__webpack_require__(/*! ../css/timerange24input.css */ \"./node_modules/absol-acomp/css/timerange24input.css\");\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _datetime = __webpack_require__(/*! absol/src/Time/datetime */ \"./node_modules/absol/src/Time/datetime.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction TimeRange24Input() {\n  /***\r\n   *\r\n   * @type {TimeInput}\r\n   */\n  this.$offset = (0, _ACore.$)(_TimeInput[\"default\"].tag, this);\n  this.$offset.on('change', this.eventHandler.offsetChange);\n  /***\r\n   *\r\n   * @type {Time24Input}\r\n   */\n\n  this.$duration = (0, _ACore.$)(_Time24Input[\"default\"].tag, this);\n  this.$duration.on('change', this.eventHandler.durationChange);\n  /***\r\n   * @type {number}\r\n   * @name dayOffset\r\n   * @memberOf TimeRange24Input#\r\n   */\n\n  /***\r\n   * @type {number}\r\n   * @name duration\r\n   * @memberOf TimeRange24Input#\r\n   */\n\n  /***\r\n   * @type {string}\r\n   * @name format\r\n   * @memberOf TimeRange24Input#\r\n   */\n}\n\nTimeRange24Input.tag = 'TimeRange24Input'.toLowerCase();\n\nTimeRange24Input.render = function () {\n  return (0, _ACore._)({\n    extendEvent: ['change'],\n    \"class\": 'as-time-range-24-input',\n    child: [{\n      tag: _TimeInput[\"default\"].tag,\n      props: {\n        format: 'HH:mm'\n      }\n    }, _Time24Input[\"default\"].tag]\n  });\n};\n\nTimeRange24Input.prototype.init = function (props) {\n  props = props || {};\n  var cpProps = Object.assign(props);\n\n  if ('notNull' in props) {\n    this.notNull = props.notNull;\n    delete cpProps.notNull;\n  }\n\n  if ('dayOffset' in props) {\n    this.dayOffset = props.dayOffset;\n    delete cpProps.dayOffset;\n  }\n\n  Object.assign(this, cpProps);\n};\n\nTimeRange24Input.prototype._updateTextData = function () {\n  var dayOffset = this.dayOffset;\n  var duration = this.duration;\n  var format = this.format;\n  var bD = (0, _datetime.beginOfDay)(new Date()).getTime();\n  var text = (0, _datetime.formatDateTime)(new Date(bD + dayOffset), format || 'HH:mm');\n  text += ' - ' + (0, _datetime.formatDateTime)(new Date(bD + dayOffset + duration), format || 'HH:mm');\n  this.attr('data-text', text);\n};\n\nTimeRange24Input.property = {};\nTimeRange24Input.property.notNull = {\n  /***\r\n   * @this TimeRange24Input\r\n   * @param value\r\n   */\n  set: function set(value) {\n    value = !!value;\n    this.$offset.notNull = value;\n    this.$duration.notNull = value;\n\n    this._updateTextData();\n  },\n  get: function get() {\n    return this.$offset.notNull;\n  }\n};\nTimeRange24Input.property.disabled = {\n  set: function set(value) {\n    value = !!value;\n\n    if (value) {\n      this.addClass('as-disabled');\n    } else {\n      this.removeClass('as-disabled');\n    }\n\n    this.$offset.disabled = value;\n    this.$duration.disabled = value;\n  },\n  get: function get() {\n    return this.hasClass('as-disabled');\n  }\n};\nTimeRange24Input.property.dayOffset = {\n  set: function set(value) {\n    var notNull = this.notNull;\n\n    if ((0, _utils.isRealNumber)(value)) {\n      value = value << 0;\n      value = value % _datetime.MILLIS_PER_DAY;\n      value = (value + _datetime.MILLIS_PER_DAY) % _datetime.MILLIS_PER_DAY;\n      value = Math.floor(value / _datetime.MILLIS_PER_MINUTE) * _datetime.MILLIS_PER_MINUTE;\n    } else {\n      value = notNull ? 0 : null;\n    }\n\n    this.$offset.dayOffset = value;\n    this.$duration.dayOffset = value;\n\n    this._updateTextData();\n  },\n  get: function get() {\n    return this.$offset.dayOffset;\n  }\n};\nTimeRange24Input.property.duration = {\n  /***\r\n   * @this TimeRange24Input\r\n   * @param value\r\n   */\n  set: function set(value) {\n    var notNull = this.notNull;\n\n    if ((0, _utils.isRealNumber)(value)) {\n      value = Math.floor(Math.min(_datetime.MILLIS_PER_DAY, Math.max(0, value)));\n      value = Math.floor(value / _datetime.MILLIS_PER_MINUTE) * _datetime.MILLIS_PER_MINUTE;\n    } else {\n      value = notNull ? 0 : null;\n    }\n\n    this.$duration.value = value;\n\n    this._updateTextData();\n  },\n  get: function get() {\n    return this.$duration.value;\n  }\n};\nTimeRange24Input.property.readOnly = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-read-only');\n      this.$offset.readOnly = true;\n      this.$duration.readOnly = true;\n    } else {\n      this.removeClass('as-read-only');\n      this.$offset.readOnly = false;\n      this.$duration.readOnly = false;\n    }\n  },\n  get: function get() {\n    return this.containsClass('as-read-only');\n  }\n};\nTimeRange24Input.property.value = {\n  set: function set(value) {\n    var rangeValue = null;\n    if ((0, _utils.isRealNumber)(value)) rangeValue = {\n      dayOffset: value,\n      duration: 0\n    };else if (!value) {} else if (_typeof(rangeValue) === \"object\") {\n      if ((0, _utils.isRealNumber)(value.dayOffset)) {\n        rangeValue = {\n          dayOffset: value.dayOffset,\n          duration: 0\n        };\n      } else {\n        rangeValue = {\n          dayOffset: 0,\n          duration: 0\n        };\n      }\n\n      if ((0, _utils.isRealNumber)(value.duration)) {\n        rangeValue.duration = value.duration;\n      }\n    }\n\n    if (rangeValue) {\n      this.dayOffset = rangeValue.dayOffset;\n      this.duration = rangeValue.duration;\n    } else {\n      this.dayOffset = null;\n      this.duration = null;\n    }\n\n    return rangeValue;\n  },\n  get: function get() {\n    if (!(0, _utils.isRealNumber)(this.dayOffset) && !(0, _utils.isRealNumber)(this.duration)) return null;\n    return {\n      dayOffset: this.dayOffset || 0,\n      duration: this.duration || 0\n    };\n  }\n};\nTimeRange24Input.eventHandler = {};\n\nTimeRange24Input.eventHandler.offsetChange = function (event) {\n  this.$duration.dayOffset = this.$offset.dayOffset;\n\n  this._updateTextData();\n\n  this.emit('change', {\n    type: 'change',\n    property: 'dayOffset',\n    originalEvent: event.originalEvent || event.originEvent || event\n  });\n};\n\nTimeRange24Input.eventHandler.durationChange = function (event) {\n  if (this.$duration.dayOffset !== null && this.$offset.dayOffset === null) {\n    this.$offset.dayOffset = this.$duration.dayOffset;\n  }\n\n  this._updateTextData();\n\n  this.emit('change', {\n    type: 'change',\n    property: 'duration',\n    originalEvent: event.originalEvent || event.originEvent || event\n  });\n};\n\n_ACore[\"default\"].install(TimeRange24Input);\n\nvar _default = TimeRange24Input;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/TimeRange24Input.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/TimeSelectInput.js":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/js/TimeSelectInput.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/timeselectinput.css */ \"./node_modules/absol-acomp/css/timeselectinput.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nvar _datetime = __webpack_require__(/*! absol/src/Time/datetime */ \"./node_modules/absol/src/Time/datetime.js\");\n\nvar _TimeInput = _interopRequireDefault(__webpack_require__(/*! ./TimeInput */ \"./node_modules/absol-acomp/js/TimeInput.js\"));\n\nvar _EventEmitter = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _Dom = __webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction TimeSelectInput() {\n  /***\r\n   *\r\n   * @type {SelectListBox}\r\n   */\n  this.$selectlistBox = _({\n    tag: 'selectlistbox',\n    props: {\n      anchor: [1, 6, 2, 5]\n    },\n    on: {\n      preupdateposition: this.eventHandler.preUpdateListPosition\n    }\n  });\n  this.$text = $('.as-time-select-input-text', this).on('change', this.eventHandler.textChange).on('keyup', this.eventHandler.textKeyUp).on('keydown', this.eventHandler.textKeyDown);\n  this.$toggleBtn = $('absol-selectmenu-btn', this);\n  this.$selectlistBox.on('pressitem', this.eventHandler.selectListBoxPressItem);\n  this.$selectlistBox.followTarget = this;\n\n  this._makeTimeList(0, _datetime.MILLIS_PER_DAY, _datetime.MILLIS_PER_MINUTE * 15);\n\n  this._hour = 0;\n  this._minute = 0;\n  this._lastDayOffset = 0;\n  this.dayOffset = 0;\n  this.on('click', this.eventHandler.click);\n}\n\nTimeSelectInput.tag = 'TimeSelectInput'.toLowerCase();\n\nTimeSelectInput.render = function () {\n  return _({\n    \"class\": 'as-time-select-input',\n    extendEvent: 'change',\n    attr: {\n      tabindex: 0\n    },\n    child: [{\n      tag: 'input',\n      \"class\": 'as-time-select-input-text',\n      attr: {\n        type: 'text'\n      }\n    }, {\n      tag: 'button',\n      \"class\": 'absol-selectmenu-btn',\n      child: ['dropdown-ico']\n    }]\n  });\n};\n\nTimeSelectInput.prototype._makeTimeList = function (start, end, step) {\n  var items = [];\n\n  for (var t = 0; t < end; t += step) {\n    items.push({\n      text: this._mil2Text(t),\n      value: t\n    });\n  }\n\n  this.$selectlistBox.items = items;\n  this.addStyle('--list-min-width', this.$selectlistBox._estimateWidth / 14 + 'em');\n};\n\nTimeSelectInput.prototype.textRegx = /^((1[0-2])|[1-9]):([0-5][0-9]) (AM|PM)$/;\n\nTimeSelectInput.prototype._mil2Text = function (mil) {\n  if (mil < 0) {\n    mil = mil + Math.ceil(-mil / _datetime.MILLIS_PER_DAY) * _datetime.MILLIS_PER_DAY;\n  }\n\n  var min = Math.floor(mil / _datetime.MILLIS_PER_MINUTE);\n  var hour = Math.floor(min / 60) % 24;\n  min = min % 60;\n  return (hour % 12 == 0 ? 12 : hour % 12) + ':' + (min < 10 ? '0' : '') + min + ' ' + (hour < 12 ? 'AM' : 'PM');\n};\n/***\r\n *\r\n * @param {string} s\r\n * @private\r\n */\n\n\nTimeSelectInput.prototype._text2mil = function (s) {\n  s = s.toLowerCase();\n  var nums = s.match(/[0-9]+/g) || [0, 0];\n\n  while (nums.length < 2) {\n    nums.push(0);\n  }\n\n  var h = (0, _utils.positiveIntMod)(parseInt(nums[0]), 24);\n  var m = (0, _utils.positiveIntMod)(parseInt(nums[1]), 60);\n  var pm = s.indexOf('pm') > 0 || h > 12;\n\n  if (pm) {\n    if (h < 12) h += 12;\n  } else {\n    if (h == 12) h = 0;\n  }\n\n  return h * _datetime.MILLIS_PER_HOUR + m * _datetime.MILLIS_PER_MINUTE;\n};\n\nTimeSelectInput.prototype.isActive = function () {\n  return document.activeElement == this || _AElement[\"default\"].prototype.isDescendantOf.call(document.activeElement, this) || _AElement[\"default\"].prototype.isDescendantOf.call(document.activeElement, this.$selectlistBox);\n};\n\nTimeSelectInput.prototype._updateValueText = function () {\n  this.$text.value = this._mil2Text(this.dayOffset);\n};\n\nTimeSelectInput.prototype.notifyCanBeChange = function () {\n  var dayOffset = this.dayOffset;\n\n  if (this._lastDayOffset !== dayOffset) {\n    this.emit('change', {\n      type: 'change',\n      lastDayOffset: this._lastDayOffset,\n      dayOffset: dayOffset,\n      target: this\n    }, this);\n    this._lastDayOffset = dayOffset;\n  }\n};\n\nTimeSelectInput.property = {};\nTimeSelectInput.property.isFocus = {\n  get: function get() {\n    return this.hasClass('as-focus');\n  },\n  set: function set(value) {\n    value = !!value;\n    if (value && (this.disabled || this.readOnly)) return;\n    if (this.isFocus == value) return;\n\n    if (value) {\n      this.addClass('as-focus');\n    } else {\n      this.removeClass('as-focus');\n    }\n\n    var thisI = this;\n\n    if (value) {\n      document.body.appendChild(this.$selectlistBox);\n      this.$selectlistBox.domSignal.$attachhook.emit('attached');\n      var bound = this.getBoundingClientRect();\n      this.$selectlistBox.addStyle('min-width', bound.width + 'px');\n      this.$selectlistBox.refollow();\n      this.$selectlistBox.updatePosition();\n      setTimeout(function () {\n        if (thisI.enableSearch) {\n          thisI.$selectlistBox.$searchInput.focus();\n        }\n\n        $(document.body).on('click', thisI.eventHandler.bodyClick);\n      }, 1);\n      this.$selectlistBox.viewListAtFirstSelected();\n    } else {\n      $(document.body).off('click', thisI.eventHandler.bodyClick);\n      this.$selectlistBox.selfRemove();\n      this.$selectlistBox.unfollow();\n      this.$selectlistBox.resetSearchState();\n    }\n  }\n};\nTimeSelectInput.property.hour = {\n  set: function set(value) {\n    this._hour = (0, _utils.positiveIntMod)(value, 24);\n    this._lastDayOffset = this.dayOffset;\n\n    this._updateValueText();\n  },\n  get: function get() {\n    return this._hour;\n  }\n};\nTimeSelectInput.property.minute = {\n  set: function set(value) {\n    this._minute = (0, _utils.positiveIntMod)(value, 60);\n    this._lastDayOffset = this.dayOffset;\n\n    this._updateValueText();\n  },\n  get: function get() {\n    return this._minute;\n  }\n};\nTimeSelectInput.property.dayOffset = _TimeInput[\"default\"].property.dayOffset;\nTimeSelectInput.property.disabled = {\n  set: function set(value) {\n    this.$text.disabled = !!value;\n\n    if (value) {\n      this.addClass('as-disabled');\n    } else {\n      this.removeClass('as-disabled');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-disabled');\n  }\n};\n/***\r\n *\r\n * @type {{}|TimeSelectInput}\r\n */\n\nTimeSelectInput.eventHandler = {};\n\nTimeSelectInput.eventHandler.selectListBoxPressItem = function (event) {\n  var lastValue = this._lastDayOffset;\n  var value = event.value;\n\n  var text = this._mil2Text(value);\n\n  this.dayOffset = value;\n  this.$selectlistBox.values = [value];\n  this.focus();\n  setTimeout(function () {\n    this.isFocus = false;\n  }.bind(this), 100);\n  this._lastDayOffset = lastValue; // restore last value after set dayOffset\n\n  this.notifyCanBeChange();\n};\n\nTimeSelectInput.eventHandler.preUpdateListPosition = function () {\n  var bound = this.getBoundingClientRect();\n  var screenSize = (0, _Dom.getScreenSize)();\n  var availableTop = bound.top - 5;\n  var availableBot = screenSize.height - 5 - bound.bottom;\n  this.$selectlistBox.addStyle('--max-height', Math.max(availableBot, availableTop) + 'px');\n  var outBound = (0, _Dom.traceOutBoundingClientRect)(this);\n\n  if (bound.bottom < outBound.top || bound.top > outBound.bottom || bound.right < outBound.left || bound.left > outBound.right) {\n    this.isFocus = false;\n  }\n};\n\nTimeSelectInput.eventHandler.textChange = function () {\n  setTimeout(function () {\n    if (!this.textRegx.test(this.$text.value)) {\n      this.$text.value = this._mil2Text(this.dayOffset);\n    }\n  }.bind(this), 10);\n};\n/***\r\n *\r\n * @param {KeyboardEvent} event\r\n */\n\n\nTimeSelectInput.eventHandler.textKeyDown = function (event) {\n  if (event.key == 'Enter') {\n    this.isFocus = false;\n    this.$text.blur();\n    this.notifyCanBeChange();\n  }\n};\n\nTimeSelectInput.eventHandler.textKeyUp = function (event) {\n  var s = this.$text.value;\n\n  var mil = this._text2mil(s);\n\n  this._hour = Math.floor(mil / _datetime.MILLIS_PER_HOUR);\n  this._minute = Math.floor(mil / _datetime.MILLIS_PER_MINUTE) % 60;\n  this.$selectlistBox.values = [mil];\n  this.$selectlistBox.viewListAtFirstSelected();\n};\n\nTimeSelectInput.eventHandler.click = function (event) {\n  if (!_EventEmitter[\"default\"].hitElement(this.$text, event)) {\n    this.isFocus = !this.isFocus;\n    setTimeout(function () {\n      if (this.isFocus && this.$text != document.activeElement) {\n        this.$text.select();\n      }\n    }.bind(this), 1);\n  } else {\n    if (!this.isFocus) this.isFocus = true;\n  }\n};\n\nTimeSelectInput.eventHandler.bodyClick = function (event) {\n  if (_EventEmitter[\"default\"].hitElement(this, event) || _EventEmitter[\"default\"].hitElement(this.$selectlistBox, event)) return;\n  this.isFocus = false;\n};\n\n_ACore[\"default\"].install(TimeSelectInput);\n\nvar _default = TimeSelectInput;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/TimeSelectInput.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/Toast.js":
/*!**********************************************!*\
  !*** ./node_modules/absol-acomp/js/Toast.js ***!
  \**********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/toast.css */ \"./node_modules/absol-acomp/css/toast.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _Element = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Element */ \"./node_modules/absol/src/HTML5/Element.js\"));\n\nvar _VariantColors = _interopRequireDefault(__webpack_require__(/*! ./VariantColors */ \"./node_modules/absol-acomp/js/VariantColors.js\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _Dom = _interopRequireWildcard(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _Color = _interopRequireDefault(__webpack_require__(/*! absol/src/Color/Color */ \"./node_modules/absol/src/Color/Color.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar $ = _ACore[\"default\"].$;\nvar _ = _ACore[\"default\"]._;\nvar toastBg = {\n  success: \"#a4f3b6\",\n  info: \"#67d5e7\"\n};\nvar toastTextColor = {\n  success: '#454040',\n  info: '#48433b'\n};\n(0, _utils.buildCss)(_VariantColors[\"default\"].keys.reduce(function (ac, cr) {\n  var color = _Color[\"default\"].parse(toastBg[cr] || _VariantColors[\"default\"].base[cr]);\n\n  var textColor = color.getContrastYIQ();\n  var headerColor = toastTextColor[cr] || _VariantColors[\"default\"].mediumContract[cr] || color.getHightContrastColor();\n  ac['.as-toast.as-variant-' + cr + ' .as-toast-variant-color'] = {\n    'background-color': color.toString('hex6')\n  };\n  ac['.as-toast.as-variant-background.as-variant-' + cr] = {\n    'background-color': color.toString('hex6'),\n    color: textColor.toString('hex6')\n  };\n  ac['.as-toast.as-variant-background.as-variant-' + cr + ' .as-toast-header'] = {\n    color: headerColor.toString('hex6')\n  };\n  return ac;\n}, {}));\n/***\r\n * @extends {AElement}\r\n * @constructor\r\n */\n\nfunction Toast() {\n  this._state = 0;\n  this.$closeBtn = $('.as-toast-close-btn', this).on('click', this.disappear.bind(this));\n  this.$title = $('.as-toast-title', this);\n  this.$timeText = $('.as-toast-time-text', this);\n  this.$body = $('.toast-body', this);\n  this.$attachhook = $('attachhook', this).on('attached', this.appear.bind(this));\n\n  _OOP[\"default\"].drillProperty(this, this.$title.firstChild, 'htitle', 'data');\n\n  this._message = null;\n  this.$message = null;\n  this.disappearTimeout = 0;\n  this.htitle = 'Toast.htitle';\n  this.timeText = new Date();\n  this.message = null;\n  this.variant = null;\n}\n\nToast.tag = 'toast';\n['addChild', 'removeChild', 'clearChild', 'addChildBefore', 'addChildAfter'].forEach(function (key) {\n  Toast.prototype[key] = function () {\n    this.$body[key].apply(this.$body, arguments);\n  };\n});\n\nToast.render = function () {\n  return _({\n    extendEvent: ['appeared', 'disappeared'],\n    \"class\": ['as-toast', 'as-not-appeared'],\n    child: [{\n      \"class\": 'as-toast-header',\n      child: ['.as-toast-variant-color', {\n        tag: 'strong',\n        \"class\": 'as-toast-title',\n        child: {\n          text: \"Absol Js\"\n        }\n      }, {\n        tag: 'smal',\n        \"class\": 'as-toast-time-text',\n        child: {\n          text: '20 mis ago'\n        }\n      }, {\n        tag: 'button',\n        \"class\": 'as-toast-close-btn',\n        child: {\n          tag: 'span',\n          child: {\n            text: '×'\n          }\n        }\n      }]\n    }, {\n      \"class\": 'toast-body'\n    }, 'attachhook']\n  });\n};\n\nToast.prototype.disappear = function () {\n  if (this._state !== 2) return;\n  this._state = 3;\n  this.addClass('as-disappearing');\n  setTimeout(function () {\n    this.removeClass('as-disappeared').removeClass('as-disappearing').addClass('as-not-appeared');\n    this.remove();\n    this.emit('disappeared', {\n      target: this,\n      type: 'disappeared'\n    }, this);\n  }.bind(this), 500);\n};\n\nToast.prototype.appear = function () {\n  if (this._state !== 0) return;\n  this._state = 1;\n  this.addClass('as-appearing');\n  setTimeout(function () {\n    this.removeClass('as-not-appeared').addClass('as-appeared').removeClass('as-appearing');\n    this._state = 2;\n    this.emit('appeared', {\n      target: this,\n      type: 'appeared'\n    }, this);\n\n    if (this.disappearTimeout > 0 && this.disappearTimeout < Infinity) {\n      setTimeout(this.disappear.bind(this), this.disappearTimeout);\n    }\n  }.bind(this), 100);\n};\n\nToast.property = {};\nToast.property.variant = {\n  set: function set(value) {\n    if (this._variant && this._variant !== value) {\n      this.removeClass('as-variant-' + this._variant);\n    }\n\n    if (_VariantColors[\"default\"].has(value) || ['sticky-note'].indexOf(value) >= 0) {\n      this._variant = value;\n      this.addClass('as-variant-' + this._variant);\n    }\n  },\n  get: function get() {\n    return this._variant;\n  }\n};\nToast.property.message = {\n  set: function set(value) {\n    if (typeof value !== \"string\" || value.length === 0) {\n      value = null;\n    }\n\n    if (value) {\n      if (!this.$message) {\n        this.$message = _({\n          \"class\": 'as-toast-message',\n          child: {\n            text: ''\n          }\n        });\n      }\n\n      if (!this.$message.parentElement) this.$body.addChild(this.$message);\n      this.$message.firstChild.data = value;\n    } else {\n      if (this.$message && this.$message.parentElement) {\n        this.$message.remove();\n      }\n    }\n\n    this._message = value;\n  },\n  get: function get() {\n    return this._message;\n  }\n};\nToast.property.timeText = {\n  set: function set(value) {\n    if (value instanceof Date) {\n      value = value.toLocaleTimeString();\n    } else {\n      value = value + '';\n    }\n\n    this.$timeText.firstChild.data = value;\n  },\n  get: function get() {\n    return this.$timeText.firstChild.data;\n  }\n};\nToast.$toastList = _('.as-toast-list.as-se.as-bscroller');\nToast.$toastList4Pos = {\n  se: Toast.$toastList,\n  sw: _('.as-toast-list.as-sw.as-bscroller'),\n  nw: _('.as-toast-list.as-nw.as-bscroller'),\n  ne: _('.as-toast-list.as-ne.as-bscroller'),\n  sc: _('.as-toast-list.as-sc.as-bscroller')\n};\n\n_Dom[\"default\"].documentReady.then(function () {\n  Toast.$toastList.addTo(document.body);\n  Toast.$toastList4Pos.sw.addTo(document.body);\n  Toast.$toastList4Pos.nw.addTo(document.body);\n  Toast.$toastList4Pos.ne.addTo(document.body);\n  Toast.$toastList4Pos.sc.addTo(document.body);\n});\n/***\r\n *\r\n * @param {AbsolConstructDescriptor|{}} aObject,\r\n * @param {\"se\"|\"sw\"|\"ne\"|\"nw\"|\"sc\" } [pos=\"se\"]\r\n * @return {AElementNS|AElement|Text}\r\n */\n\n\nToast.make = function (aObject, pos) {\n  if (!Toast.$toastList4Pos[pos]) pos = \"se\";\n  aObject = aObject || {};\n  if (_typeof(aObject) !== \"object\") throw new Error(\"param must be AbsolConstructDescriptor object!\");\n\n  if ((0, _Dom.isDomNode)(aObject)) {} else {\n    aObject.tag = aObject.tag || 'toast';\n  }\n\n  var toastElt = _(aObject);\n\n  var toastListElt = Toast.$toastList4Pos[pos] || Toast.$toastList;\n  toastListElt.addChild(toastElt);\n  return toastElt;\n};\n\n_ACore[\"default\"].install(Toast);\n\nvar _default = Toast;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/Toast.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/TokenField.js":
/*!***************************************************!*\
  !*** ./node_modules/absol-acomp/js/TokenField.js ***!
  \***************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _SelectBoxItem = _interopRequireDefault(__webpack_require__(/*! ./SelectBoxItem */ \"./node_modules/absol-acomp/js/SelectBoxItem.js\"));\n\nvar _ResizeSystem = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/ResizeSystem */ \"./node_modules/absol/src/HTML5/ResizeSystem.js\"));\n\n__webpack_require__(/*! ../css/tokenfield.css */ \"./node_modules/absol-acomp/css/tokenfield.css\");\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _Vec = _interopRequireDefault(__webpack_require__(/*! absol/src/Math/Vec2 */ \"./node_modules/absol/src/Math/Vec2.js\"));\n\nvar _Text = __webpack_require__(/*! absol/src/HTML5/Text */ \"./node_modules/absol/src/HTML5/Text.js\");\n\nvar _Dom = __webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\");\n\nvar _EventEmitter = __webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction TokenField() {\n  this.on('click', this.eventHandler.click);\n  this.$input = (0, _ACore.$)('input', this).on('keydown', this.eventHandler.inputKeyDown).on('focus', this.eventHandler.inputInteract).on('click', this.eventHandler.inputInteract).on('keydown', this.eventHandler.inputInteract);\n  this.$attachhook = (0, _ACore.$)('attachhook', this).on('attached', function () {\n    _ResizeSystem[\"default\"].add(this);\n\n    this.requestUpdateSize();\n  });\n  this.$attachhook.requestUpdateSize = this.updateSize.bind(this);\n  /***\r\n   *\r\n   * @type {SelectListBox}\r\n   */\n\n  this.$selectlistBox = (0, _ACore._)({\n    tag: 'selectlistbox',\n    props: {\n      anchor: [1, 6, 2, 5]\n    },\n    on: {\n      preupdateposition: this.eventHandler.preUpdateListPosition\n    }\n  });\n  this.$selectlistBox.on('pressitem', this.eventHandler.selectListBoxPressItem);\n  this.$selectlistBox.followTarget = this;\n  this.autocomplete = null;\n  this.separator = ' ';\n  this.placeHolder = '';\n}\n\nTokenField.tag = 'TokenField'.toLowerCase();\n\nTokenField.render = function () {\n  return (0, _ACore._)({\n    \"class\": 'as-token-field',\n    extendEvent: ['change'],\n    child: [{\n      tag: 'input',\n      \"class\": 'as-token-field-input-text',\n      attr: {\n        type: 'text',\n        tabindex: '1'\n      }\n    }, 'attachhook']\n  });\n};\n\nTokenField.prototype._makeItem = function (text) {\n  var itemElt = (0, _ACore._)({\n    tag: _SelectBoxItem[\"default\"].tag,\n    \"class\": 'as-token-field-item',\n    attr: {\n      tabindex: 1\n    },\n    props: {\n      data: {\n        text: text,\n        value: text\n      }\n    }\n  });\n  itemElt.on({\n    keydown: this.eventHandler.itemKeyDown.bind(this, itemElt),\n    close: this.eventHandler.itemClose.bind(this, itemElt),\n    focus: this.eventHandler.itemFocus.bind(this, itemElt)\n  });\n  return itemElt;\n};\n\nTokenField.prototype._appendItem = function (itemElt) {\n  this.addChildBefore(itemElt, this.$input);\n};\n\nTokenField.prototype._updateInputWidth = function () {\n  var lastItem = this.findChildBefore(this.$input);\n\n  if (lastItem) {\n    var lastItemBound = lastItem.getBoundingClientRect();\n    var bound = this.getBoundingClientRect();\n    var aRight = bound.right - 4 - lastItemBound.right;\n\n    if (aRight > 60) {\n      this.$input.addStyle('width', aRight + 'px');\n    } else {\n      this.$input.addStyle('width', '100%');\n    }\n  } else {\n    this.$input.addStyle('width', '100%');\n  }\n};\n\nTokenField.prototype._isSeparatorKey = function (key) {\n  if (key === 'Enter') return true;\n  if (this.separator === ' ') return key === ' ';\n  if (this.separator === '\\n') return key === 'Enter';\n  if (this.separator === '\\t') return key === 'Tab';\n  return key === this.separator;\n};\n\nTokenField.prototype.updateSize = function () {\n  this._updateInputWidth();\n};\n\nTokenField.prototype._notifyChange = function (data) {\n  this.emit('change', Object.assign({\n    type: 'change',\n    target: this\n  }, data), this);\n};\n\nTokenField.prototype._searchInList = function () {\n  if (this._searchTimeout > 0) {\n    clearTimeout(this._searchTimeout);\n  }\n\n  this._searchTimeout = setTimeout(function () {\n    var text = this.$input.value;\n\n    if (this.$selectlistBox.isDescendantOf(document.body)) {\n      this.$selectlistBox.$searchInput.value = text;\n      this.$selectlistBox.eventHandler.searchModify();\n\n      if (this.$selectlistBox._displayItems.length === 0) {\n        this.$selectlistBox.addStyle('visibility', 'hidden');\n      } else {\n        this.$selectlistBox.removeStyle('visibility');\n      }\n    }\n  }.bind(this), 100);\n};\n\nTokenField.eventHandler = {};\nTokenField.property = {};\nTokenField.property.separator = {\n  set: function set(value) {\n    if (typeof value !== \"string\") value = ' ';\n    this._separator = value;\n  },\n  get: function get() {\n    return this._separator;\n  }\n};\nTokenField.property.placeHolder = {\n  set: function set(value) {\n    this.$input.attr('placeholder', value || '');\n  },\n  get: function get() {\n    return this.$input.attr('placeholder');\n  }\n};\nTokenField.property.items = {\n  set: function set(items) {\n    items = items || [];\n\n    while (this.firstChild && this.firstChild && this.firstChild.hasClass('as-token-field-item')) {\n      this.firstChild.remove();\n    }\n\n    for (var i = 0; i < items.length; ++i) {\n      this._appendItem(this._makeItem(items[i]));\n    }\n  },\n  get: function get() {\n    return Array.prototype.slice.call(this.childNodes).filter(function (elt) {\n      return elt.hasClass && elt.hasClass('as-token-field-item');\n    }).map(function (elt) {\n      return elt.data.value;\n    });\n  }\n};\nTokenField.property.autocomplete = {\n  set: function set(value) {\n    this._autocomplete = value || null;\n\n    if (this._autocomplete) {\n      this.$selectlistBox.items = this._autocomplete.map(function (it) {\n        return {\n          value: it + '',\n          text: it + ''\n        };\n      });\n    } else {\n      this.$selectlistBox.items = [];\n    }\n  },\n  get: function get() {\n    return this._autocomplete;\n  }\n};\n\nTokenField.eventHandler.inputKeyDown = function (event) {\n  if (this._isSeparatorKey(event.key)) {\n    var text = this.$input.value;\n\n    if (text.length > 0) {\n      this.$input.value = '';\n\n      var newItem = this._makeItem(text);\n\n      this._appendItem(newItem);\n\n      this.updateSize();\n\n      this._notifyChange({\n        action: 'add',\n        item: text,\n        itemElt: newItem\n      });\n\n      this.eventHandler.inputOut();\n    }\n\n    event.preventDefault();\n  } else if (event.key.startsWith('Arrow') || event.key === 'Backspace') {\n    if (this.$input.selectionStart === 0 && this.$input.selectionEnd === 0) {\n      if (event.key === 'ArrowLeft' || event.key === 'Backspace') {\n        event.preventDefault();\n        var prevChild = this.findChildBefore(this.$input);\n        if (prevChild) prevChild.focus();\n      } else if (event.key === 'ArrowUp') {\n        var item, itemBound;\n        var inputBound = this.$input.getBoundingClientRect();\n        var anchorPos = new _Vec[\"default\"](inputBound.left + 5, inputBound.top + inputBound.height / 2);\n        var minDis = Infinity;\n        var dis;\n        var aboveItem;\n\n        for (var i = 0; i < this.childNodes.length; ++i) {\n          item = this.childNodes[i];\n\n          if (item.hasClass && item.hasClass('as-token-field-item')) {\n            itemBound = item.getBoundingClientRect();\n\n            if (itemBound.bottom < inputBound.top) {\n              dis = new _Vec[\"default\"](itemBound.left + itemBound.width / 2, itemBound.top + itemBound.height / 2).sub(anchorPos).abs();\n\n              if (dis < minDis) {\n                minDis = dis;\n                aboveItem = item;\n              }\n            }\n          }\n        }\n\n        if (aboveItem) {\n          aboveItem.focus();\n          event.preventDefault();\n        }\n      }\n    } else {\n      this._searchInList();\n    }\n  } else {\n    this._searchInList();\n  }\n};\n\nTokenField.eventHandler.inputInteract = function (event) {\n  var lt = this._lastInteractTime;\n  this._lastInteractTime = new Date().getTime();\n\n  if (lt && this._lastInteractTime - lt < 100) {\n    return;\n  }\n\n  if (this.$selectlistBox.isDescendantOf(document.body)) return;\n  this.$selectlistBox.addTo(document.body);\n  this.$selectlistBox.domSignal.$attachhook.emit('attached');\n\n  this._searchInList();\n\n  var bound = this.getBoundingClientRect();\n  this.$selectlistBox.addStyle('min-width', bound.width + 'px');\n  this.$selectlistBox.refollow();\n  this.$selectlistBox.updatePosition();\n  setTimeout(document.addEventListener.bind(document, 'click', this.eventHandler.inputOut), 100);\n};\n\nTokenField.eventHandler.inputOut = function (event) {\n  if (event && ((0, _EventEmitter.hitElement)(this.$selectlistBox, event) || (0, _EventEmitter.hitElement)(this.$input, event))) return;\n  document.removeEventListener('click', this.eventHandler.inputOut);\n  this.$selectlistBox.remove();\n  this._lastInteractTime = new Date().getTime();\n};\n\nTokenField.eventHandler.itemKeyDown = function (itemElt, event) {\n  var nextElt;\n\n  if (event.key === 'Delete' || event.key === 'Backspace') {\n    if (event.key === 'Delete') {\n      nextElt = this.findChildAfter(itemElt);\n    } else {\n      nextElt = this.findChildBefore(itemElt) || this.$input;\n    }\n\n    itemElt.remove();\n\n    this._notifyChange({\n      item: itemElt.data.value,\n      action: 'remove',\n      itemElt: itemElt\n    });\n\n    if (nextElt === this.$input) {\n      this.$input.focus();\n      (0, _Text.setCaretPosition)(this.$input, 0);\n    } else {\n      nextElt.focus();\n    }\n  } else if (event.key === 'ArrowLeft') {\n    nextElt = this.findChildBefore(itemElt);\n    if (nextElt) nextElt.focus();\n  } else if (event.key === 'ArrowRight') {\n    nextElt = this.findChildAfter(itemElt);\n\n    if (nextElt === this.$input) {\n      this.$input.focus();\n      (0, _Text.setCaretPosition)(this.$input, 0);\n    } else {\n      nextElt.focus();\n    }\n  } else if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n    var currentItemBound = itemElt.getBoundingClientRect();\n    var center = new _Vec[\"default\"](currentItemBound.left + currentItemBound.width / 2, currentItemBound.top + currentItemBound.height / 2);\n    var childElt, itemBound, dis;\n    var minDis = Infinity;\n    var i;\n\n    if (event.key === 'ArrowUp') {\n      for (i = 0; i < this.childNodes.length; ++i) {\n        childElt = this.childNodes[i];\n\n        if (childElt.hasClass && childElt.hasClass('as-token-field-item') || childElt === this.$input) {\n          itemBound = childElt.getBoundingClientRect();\n\n          if (itemBound.bottom < currentItemBound.top) {\n            dis = new _Vec[\"default\"](itemBound.left + itemBound.width / 2, itemBound.top + itemBound.height / 2).sub(center).abs();\n\n            if (dis < minDis) {\n              minDis = dis;\n              nextElt = childElt;\n            }\n          }\n        }\n      }\n    } else {\n      for (i = 0; i < this.childNodes.length; ++i) {\n        childElt = this.childNodes[i];\n\n        if (childElt.hasClass && childElt.hasClass('as-token-field-item') || childElt === this.$input) {\n          itemBound = childElt.getBoundingClientRect();\n\n          if (itemBound.top > currentItemBound.bottom) {\n            dis = new _Vec[\"default\"](itemBound.left + itemBound.width / 2, itemBound.top + itemBound.height / 2).sub(center).abs();\n\n            if (dis < minDis) {\n              minDis = dis;\n              nextElt = childElt;\n            }\n          }\n        }\n      }\n    }\n\n    if (nextElt) {\n      nextElt.focus();\n    }\n  }\n};\n\nTokenField.eventHandler.itemFocus = function (itemElt) {\n  this.eventHandler.inputOut();\n};\n\nTokenField.eventHandler.itemClose = function (itemElt) {\n  itemElt.remove();\n\n  this._notifyChange({\n    action: 'remove',\n    item: itemElt.data.value,\n    itemElt: itemElt\n  });\n\n  this.$input.focus();\n};\n\nTokenField.eventHandler.click = function (event) {\n  if (event.target === this) this.$input.focus();\n};\n\nTokenField.eventHandler.preUpdateListPosition = function () {\n  var bound = this.getBoundingClientRect();\n  var screenSize = (0, _Dom.getScreenSize)();\n  var availableTop = bound.top - 5;\n  var availableBot = screenSize.height - 5 - bound.bottom;\n  this.$selectlistBox.addStyle('--max-height', Math.max(availableBot, availableTop) + 'px');\n  var outBound = (0, _Dom.traceOutBoundingClientRect)(this);\n\n  if (bound.bottom < outBound.top || bound.top > outBound.bottom || bound.right < outBound.left || bound.left > outBound.right) {// this.isFocus = false;\n    //\n  }\n};\n\nTokenField.eventHandler.selectListBoxPressItem = function (event) {\n  var text = event.data.value;\n\n  var newItem = this._makeItem(text);\n\n  this._appendItem(newItem);\n\n  this.updateSize();\n\n  this._notifyChange({\n    action: 'add',\n    item: text,\n    itemElt: newItem\n  });\n\n  this.eventHandler.inputOut();\n  this.$input.focus();\n  this.$input.value = '';\n};\n\n_ACore[\"default\"].install(TokenField);\n\nvar _default = TokenField;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/TokenField.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/Tooltip.js":
/*!************************************************!*\
  !*** ./node_modules/absol-acomp/js/Tooltip.js ***!
  \************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\nexports.updateTooltipPosition = updateTooltipPosition;\n\n__webpack_require__(/*! ../css/tooltip.css */ \"./node_modules/absol-acomp/css/tooltip.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Dom = _interopRequireWildcard(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _EventEmitter = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction ToolTip() {\n  this.$content = $('.absol-tooltip-content', this);\n  this.$arrow = $('.absol-tooltip-arrow', this);\n}\n\nToolTip.tag = 'ToolTip'.toLowerCase();\n\nToolTip.render = function () {\n  return _({\n    \"class\": 'absol-tooltip',\n    child: [{\n      \"class\": 'absol-tooltip-content'\n    }, '.absol-tooltip-arrow']\n  });\n};\n\n['addChild', 'addChildBefore', 'addChildAfter', 'clearChild'].forEach(function (key) {\n  ToolTip.prototype[key] = function () {\n    return this.$content[key].apply(this.$content, arguments);\n  };\n});\n\n_ACore[\"default\"].install(ToolTip);\n\nfunction updateTooltipPosition(toolTipClass) {\n  var element = toolTipClass.$element;\n  if (!element) return;\n  var orientation = toolTipClass._orientation;\n  var tBound = toolTipClass.$tooltip.$content.getBoundingClientRect();\n  var ebound = element.getBoundingClientRect();\n  var screenSize = (0, _Dom.getScreenSize)();\n  var sMargin = Math.round(Math.min(5, screenSize.width / 100, screenSize.height));\n  screenSize.width = Math.min(screenSize.width, document.body.getBoundingClientRect().width);\n  var fontSize = toolTipClass.$tooltip.getFontSize();\n  var dx = 0;\n  var dy = 0;\n  var arrowPos = null;\n  var aHCenter = ebound.left + ebound.width / 2 > tBound.width / 2 && screenSize.width - ebound.left - ebound.width / 2 > tBound.width / 2;\n  var aVCenter = ebound.top + ebound.height / 2 > tBound.height / 2 && screenSize.height - ebound.top - ebound.height / 2 > tBound.height / 2;\n  var aTop = tBound.height < ebound.top - sMargin;\n  var aBottom = tBound.height < screenSize.height - sMargin - ebound.bottom;\n  var aRight = tBound.width < screenSize.width - sMargin - ebound.right;\n  var aLeft = tBound.width < ebound.left - sMargin;\n  var aHLeft = ebound.left + ebound.width / 2 - tBound.width / 2 < sMargin && ebound.left + ebound.width / 2 >= sMargin + fontSize / 2;\n  var aHRight = ebound.left + ebound.width / 2 + tBound.width / 2 > screenSize.width - sMargin && ebound.left + ebound.width / 2 < screenSize.width - sMargin - fontSize / 2;\n  var aVTop = ebound.top + ebound.width / 2 - tBound.height / 2 < sMargin && ebound.top + ebound.height / 2 >= sMargin + fontSize / 2;\n  var aVBottom = ebound.top + ebound.width / 2 + tBound.height / 2 <= screenSize.height - sMargin && ebound.top + ebound.height / 2 > screenSize.height - sMargin - fontSize / 2;\n\n  if (orientation === 'auto' && aHCenter) {\n    if (aTop) {\n      orientation = 'top';\n    } else if (aBottom) {\n      orientation = 'bottom';\n    }\n  }\n\n  if (orientation === 'auto' && aVCenter) {\n    if (aRight) {\n      orientation = 'right';\n    } else if (aLeft) {\n      orientation = 'left';\n    }\n  }\n\n  if ((orientation === 'auto' || orientation === 'top' || orientation === 'bottom') && aHLeft) {\n    if (aTop || orientation === 'auto') orientation = \"top\";else if (aBottom || orientation === 'auto') orientation = 'bottom';\n\n    if (aTop || aBottom) {\n      dx += tBound.width / 2 - (ebound.left + ebound.width / 2) + sMargin;\n      arrowPos = tBound.width / 2 - dx + 'px';\n    }\n  }\n\n  if ((orientation === 'auto' || orientation === 'top' || orientation === 'bottom') && aHRight) {\n    if (aTop || orientation === 'auto') orientation = \"top\";else if (aBottom || orientation === 'auto') orientation = 'bottom';\n\n    if (aTop || aBottom) {\n      dx -= tBound.width / 2 - (screenSize.width - (ebound.left + ebound.width / 2)) + sMargin;\n      arrowPos = tBound.width / 2 - dx + 'px';\n    }\n  }\n\n  if ((orientation === 'auto' || orientation === 'left' || orientation === 'right') && aVTop) {\n    if (aLeft || orientation === 'auto') orientation = \"left\";else if (aRight || orientation === 'auto') {\n      orientation = 'right';\n    }\n\n    if (aLeft || aRight) {\n      dy += tBound.height / 2 - (ebound.top + ebound.height / 2) + sMargin;\n      arrowPos = tBound.height / 2 - dy + 'px';\n    }\n  }\n\n  if ((orientation === 'auto' || orientation === 'left' || orientation === 'right') && aVBottom) {\n    if (aLeft || orientation === 'auto') orientation = \"left\";else if (aRight || orientation === 'auto') {\n      orientation = 'right';\n    }\n\n    if (aLeft || aRight) {\n      dy -= tBound.height / 2 - (screenSize.height - (ebound.top + ebound.height / 2)) + sMargin;\n      arrowPos = tBound.height / 2 - dx + 'px';\n    }\n  }\n\n  if (orientation === 'auto') {\n    if (aRight) {\n      if (aTop) {\n        orientation = 'ne';\n      } else if (aBottom) {\n        orientation = 'se';\n      }\n    } else if (aLeft) {\n      if (aTop) {\n        orientation = 'nw';\n      } else if (aBottom) {\n        orientation = 'sw';\n      }\n    }\n  }\n\n  if (orientation === 'auto') orientation = \"error\";\n  toolTipClass.$tooltip.removeClass('top').removeClass('left').removeClass('right').removeClass('bottom').removeClass('ne').removeClass('nw').removeClass('se').removeClass('sw').addClass(orientation);\n  tBound = toolTipClass.$tooltip.getBoundingClientRect();\n\n  if (orientation == 'top') {\n    dy += ebound.top - tBound.height;\n    dx += ebound.left + ebound.width / 2 - tBound.width / 2;\n  } else if (orientation == 'left') {\n    dy += ebound.top + ebound.height / 2 - tBound.height / 2;\n    dx += ebound.left - tBound.width;\n  } else if (orientation == 'right') {\n    dy += ebound.top + ebound.height / 2 - tBound.height / 2;\n    dx += ebound.right;\n  } else if (orientation == 'bottom') {\n    dy += ebound.bottom;\n    dx += ebound.left + ebound.width / 2 - tBound.width / 2;\n  } else if (orientation === 'ne') {\n    dy += ebound.top - tBound.height;\n    dx += ebound.right;\n  } else if (orientation === 'nw') {\n    dy += ebound.top - tBound.height;\n    dx += ebound.left - tBound.width;\n  } else if (orientation === 'se') {\n    dy += ebound.bottom;\n    dx += ebound.right;\n  } else if (orientation === 'sw') {\n    dy += ebound.bottom;\n    dx += ebound.left - tBound.width;\n  } else {\n    throw new Error(\"Invalid orientation, orientation: ['left', 'right', 'top', 'bottom', 'auto', 'nw', 'ne', 'sw', 'se']\");\n  }\n\n  if (arrowPos) {\n    toolTipClass.$tooltip.addStyle('--tool-tip-arrow-pos', arrowPos);\n  } else {\n    toolTipClass.$tooltip.removeStyle('--tool-tip-arrow-pos');\n  }\n\n  toolTipClass.$holder.addStyle({\n    top: dy + 'px',\n    left: dx + 'px'\n  });\n}\n\nToolTip.$holder = _('.absol-tooltip-root-holder');\nToolTip.$tooltip = _('tooltip.top').addTo(ToolTip.$holder);\nToolTip.$element = undefined;\nToolTip.$content = undefined;\nToolTip._orientation = 'top';\nToolTip._session = Math.random() * 10000000000 >> 0;\n\nToolTip.updatePosition = function () {\n  if (!ToolTip.$element) return;\n  updateTooltipPosition(ToolTip);\n};\n\nToolTip.$tooltip.$arrow.updateSize = ToolTip.updatePosition.bind(ToolTip);\n\nToolTip.show = function (element, content, orientation) {\n  orientation = orientation || 'auto';\n\n  if (typeof content == 'string') {\n    content = _({\n      tag: 'span',\n      style: {\n        'white-space': 'nowrap'\n      },\n      props: {\n        innerHTML: content\n      }\n    });\n  }\n\n  $('', content, function (elt) {\n    if (elt.tagName == \"IMG\" && elt.src) {\n      _Dom[\"default\"].waitImageLoaded(elt).then(ToolTip.updatePosition.bind(ToolTip));\n    } else if (elt.sync) {\n      elt.sync.then(ToolTip.updatePosition.bind(ToolTip));\n    }\n  });\n  var currentSession = Math.random() * 10000000000 >> 0;\n  ToolTip.$holder.addTo(document.body);\n\n  _Dom[\"default\"].addToResizeSystem(ToolTip.$tooltip.$arrow);\n\n  ToolTip.$element = element;\n  ToolTip._session = currentSession;\n  ToolTip.$content = content;\n  ToolTip._orientation = orientation;\n  ToolTip.$tooltip.clearChild().addChild(content);\n  ToolTip.$holder.removeStyle('visibility');\n  ToolTip.$tooltip.removeClass('top').removeClass('left').removeClass('right').removeClass('bottom').removeClass('ne').removeClass('nw').removeClass('auto');\n  ToolTip.$tooltip.addClass(orientation);\n  ToolTip.updatePosition();\n  return currentSession;\n};\n\nToolTip.close = function (session) {\n  if (session === true || session === this._session) {\n    ToolTip.$holder.addStyle('visibility', 'hidden');\n    ToolTip.$tooltip.clearChild();\n    ToolTip.$holder.addStyle({\n      top: false,\n      left: false\n    });\n  }\n};\n\nToolTip.closeTooltip = ToolTip.close;\n\nToolTip.showWhenClick = function (element, content, orientation) {\n  var mSession = undefined;\n  element.addEventListener('click', function () {\n    if (mSession !== undefined) return;\n    mSession = ToolTip.show(element, content, orientation);\n\n    var finish = function finish(event) {\n      if (!_EventEmitter[\"default\"].hitElement(content, event)) {\n        $(document.body).off('click', finish);\n        ToolTip.closeTooltip(mSession);\n        mSession = undefined;\n      }\n    };\n\n    setTimeout(function () {\n      $(document.body).on('click', finish);\n    }, 100);\n  });\n};\n\nvar _default = ToolTip;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/Tooltip.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/TrackBar.js":
/*!*************************************************!*\
  !*** ./node_modules/absol-acomp/js/TrackBar.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/trackbar.css */ \"./node_modules/absol-acomp/css/trackbar.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Hanger = _interopRequireDefault(__webpack_require__(/*! ./Hanger */ \"./node_modules/absol-acomp/js/Hanger.js\"));\n\nvar _int = __webpack_require__(/*! absol/src/Math/int */ \"./node_modules/absol/src/Math/int.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @extends Hanger\r\n * @constructor\r\n */\n\nfunction TrackBar() {\n  this.$bar = $('.absol-trackbar', this);\n  this.$button = $('.absol-trackbar-button', this);\n  this.$line = $('.absol-trackbar-line', this);\n  this.on('predrag', this.eventHandler.predrag).on('drag', this.eventHandler.drag);\n  this.leftValue = 0;\n  this.rightValue = 1;\n  this._dragValue = 0;\n}\n\nTrackBar.tag = 'trackbar';\n\nTrackBar.render = function () {\n  return _({\n    tag: 'hanger',\n    extendEvent: 'change',\n    \"class\": 'absol-trackbar',\n    child: [{\n      \"class\": 'absol-trackbar-line',\n      child: '.absol-trackbar-button'\n    }, 'attachhook']\n  });\n};\n\nTrackBar.prototype._updateValue = function () {\n  var left = (0, _int.map)(this.value, this.leftValue, this.rightValue, 0, 100);\n  this.$button.addStyle('left', left + '%');\n};\n\nTrackBar.eventHandler = {};\n\nTrackBar.eventHandler.predrag = function (event) {\n  if (event.target === this || this.readOnly) {\n    event.cancel();\n  } else {\n    event.preventDefault();\n    var lineBound = this.$line.getBoundingClientRect();\n    var newValue = this.leftValue + (this.rightValue - this.leftValue) * (event.clientX - lineBound.left) / lineBound.width;\n    newValue = Math.max(this.leftValue, Math.min(this.rightValue, newValue));\n\n    if (newValue !== this.value) {\n      this.value = newValue;\n      event.trackbarValue = this.value;\n      this._dragValue = this.value;\n      this.emit('change', event);\n    }\n  }\n};\n\nTrackBar.eventHandler.drag = function (event) {\n  var lineWidth = this.$line.getBoundingClientRect().width;\n  var d = event.currentPoint.sub(event.startingPoint);\n  var delta = d.x / lineWidth * (this.rightValue - this.leftValue);\n  var newValue = Math.max(this.leftValue, Math.min(this.rightValue, this._dragValue + delta));\n\n  if (newValue != this.value) {\n    this.value = newValue;\n    event.trackbarValue = this.value;\n    this.emit('change', event);\n  }\n};\n\nTrackBar.property = {};\nTrackBar.property.value = {\n  set: function set(value) {\n    value = parseFloat(value + '');\n    if (isNaN(value)) value = 0;\n    this._value = value;\n\n    this._updateValue();\n  },\n  get: function get() {\n    return Math.max(this.leftValue, Math.min(this.rightValue, this._value));\n  }\n};\nTrackBar.property.leftValue = {\n  set: function set(value) {\n    value = parseFloat(value + '');\n    if (isNaN(value)) value = 0;\n    this._leftValue = value;\n\n    this._updateValue();\n  },\n  get: function get() {\n    return this._leftValue || 0;\n  }\n};\nTrackBar.property.rightValue = {\n  set: function set(value) {\n    value = parseFloat(value + '');\n    if (isNaN(value)) value = 1;\n    this._rightValue = value;\n\n    this._updateValue();\n  },\n  get: function get() {\n    return this._rightValue || 1;\n  }\n};\nTrackBar.property.disabled = {\n  get: function get() {\n    return this.hasClass('as-disabled');\n  },\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-disabled');\n    } else {\n      this.removeClass('as-disabled');\n    }\n  }\n};\nTrackBar.property.readOnly = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-read-only');\n    } else {\n      this.removeClass('as-read-only');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-read-only');\n  }\n};\n\n_ACore[\"default\"].install(TrackBar);\n\nvar _default = TrackBar;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/TrackBar.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/TrackBarInput.js":
/*!******************************************************!*\
  !*** ./node_modules/absol-acomp/js/TrackBarInput.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/trackbarinput.css */ \"./node_modules/absol-acomp/css/trackbarinput.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n *\r\n * @extends {AElement}\r\n * @constructor\r\n */\n\nfunction TrackBarInput() {\n  var thisTI = this;\n  this.$trackbar = $('trackbar', this);\n  this.$input = $('flexiconinput', this);\n  absol.OOP.drillProperty(this, this.$input, ['unit', 'icon']);\n  this.$trackbar.on('change', function () {\n    thisTI.$input.value = thisTI.value + '';\n    thisTI.emit('change', thisTI.value);\n  });\n  this.$input.on('keyup', this.eventHandler.inputChange);\n  this.inputTextWidth = 2;\n  this.valueFixed = undefined;\n  return this;\n}\n\nTrackBarInput.tag = 'TrackBarInput'.toLowerCase();\n\nTrackBarInput.render = function () {\n  return _({\n    \"class\": 'absol-trackbar-input',\n    extendEvent: 'change',\n    child: ['trackbar', 'flexiconinput']\n  });\n};\n\nTrackBarInput.prototype.init = function (props) {\n  props = props || {};\n  props.leftValue = props.leftValue || 0;\n  props.value = props.value || props.leftValue;\n  Object.assign(this, props);\n  this.value = props.value;\n};\n\nTrackBarInput.prototype._calInputTextWidth = function () {\n  var l = Math.max(this.leftValue.toFixed(this.valueFixed || 0).length, this.rightValue.toFixed(this.valueFixed || 0).length, 2);\n\n  if (this.valueFixed > 0) {\n    l -= 0.8;\n  }\n\n  this.inputTextWidth = l;\n}; // absol.OOP.drillProperty(this, this.$trackbar, ['leftValue', 'rightValue']);\n\n\nTrackBarInput.property = {};\nTrackBarInput.property.leftValue = {\n  set: function set(value) {\n    this.$trackbar.leftValue = value;\n\n    this._calInputTextWidth();\n  },\n  get: function get() {\n    return this.$trackbar.leftValue;\n  }\n};\nTrackBarInput.property.rightValue = {\n  set: function set(value) {\n    this.$trackbar.rightValue = value;\n\n    this._calInputTextWidth();\n  },\n  get: function get() {\n    return this.$trackbar.rightValue;\n  }\n};\nTrackBarInput.property.value = {\n  set: function set(value) {\n    this.$trackbar.value = value || 0;\n    this.$input.value = this.value + '';\n  },\n  get: function get() {\n    return parseFloat((this.valueFixed === undefined ? this.$trackbar.value : this.$trackbar.value.toFixed(this.valueFixed)) + '');\n  }\n};\nTrackBarInput.property.valueFixed = {\n  set: function set(value) {\n    if (value === undefined || value === null) value = undefined;\n    this._valueFixed = value;\n    this.$input.value = this.value + '';\n\n    this._calInputTextWidth();\n  },\n  get: function get() {\n    return this._valueFixed;\n  }\n};\nTrackBarInput.property.inputTextWidth = {\n  set: function set(value) {\n    if (typeof value == 'number') {\n      this._inputTextWidth = value;\n      this.addStyle('--input-width', 3 + (value - 2) * 0.42 + 0.3 + 'em');\n    } else {\n      this._inputTextWidth = value;\n      this.addStyle('--input-width', value);\n    }\n  },\n  get: function get() {\n    return this._inputTextWidth;\n  }\n};\nTrackBarInput.property.disabled = {\n  get: function get() {\n    return this.hasClass('as-disabled');\n  },\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-disabled');\n    } else {\n      this.removeClass('as-disabled');\n    }\n\n    this.$input.disabled = !!value;\n    this.$trackbar.disabled = !!value;\n  }\n};\nTrackBarInput.property.readOnly = {\n  set: function set(value) {\n    value = !!value;\n\n    if (value) {\n      this.addClass('as-read-only');\n    } else {\n      this.removeClass('as-read-only');\n    }\n\n    this.$input.readOnly = value;\n    this.$trackbar.readOnly = value;\n  },\n  get: function get() {\n    return this.hasClass('as-read-only');\n  }\n};\nTrackBarInput.eventHandler = {};\n\nTrackBarInput.eventHandler.inputChange = function (event) {\n  var newValue = parseFloat(this.$input.value);\n\n  if (!isNaN(newValue)) {\n    newValue = Math.max(this.leftValue, Math.min(this.rightValue, newValue));\n    this.$trackbar.value = newValue;\n    this.emit('change', this.value);\n  }\n};\n\nvar _default = TrackBarInput;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/TrackBarInput.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/TreeChart.js":
/*!**************************************************!*\
  !*** ./node_modules/absol-acomp/js/TreeChart.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/treechart.css */ \"./node_modules/absol-acomp/css/treechart.css\");\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _generator = __webpack_require__(/*! absol/src/JSMaker/generator */ \"./node_modules/absol/src/JSMaker/generator.js\");\n\nvar _ResizeSystem = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/ResizeSystem */ \"./node_modules/absol/src/HTML5/ResizeSystem.js\"));\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _Color = _interopRequireDefault(__webpack_require__(/*! absol/src/Color/Color */ \"./node_modules/absol/src/Color/Color.js\"));\n\nvar _DomSignal = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/DomSignal */ \"./node_modules/absol/src/HTML5/DomSignal.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction autoThemeVariable(viewElt) {\n  var cp = getComputedStyle(document.body);\n  var color = cp.getPropertyValue('--menu-background-color') || cp.getPropertyValue('--variant-color-primary') || 'blue';\n  color = _Color[\"default\"].parse(color.trim());\n  var hsla = color.toHSLA();\n  hsla[2] = (hsla[2] + 1) / 2;\n  hsla[1] = (hsla[1] + 0.2) / 2;\n\n  var nColor = _Color[\"default\"].fromHSLA(hsla[0], hsla[1], hsla[2], hsla[3]);\n\n  viewElt.addStyle('--node-background-color', nColor.toString('rgba'));\n  nColor = nColor.getContrastYIQ();\n  viewElt.addStyle('--node-text-color', nColor.toString('rgba'));\n}\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\n\nfunction TreeChart() {\n  autoThemeVariable(this);\n  this.$domSignal = (0, _ACore._)('attachhook').addTo(this);\n  this.domSignal = new _DomSignal[\"default\"](this.$domSignal);\n  this.domSignal.on('formatSize', this._formatSize.bind(this));\n  this.$root = null;\n  this._maxHorizonLevel = 2;\n  /***\r\n   * @name data\r\n   * @type {any}\r\n   * @memberOf TreeChart#\r\n   */\n\n  /***\r\n   * @name maxHorizonLevel\r\n   * @type {number}\r\n   * @memberOf TreeChart#\r\n   */\n}\n\nTreeChart.tag = 'TreeChart';\n\nTreeChart.render = function () {\n  return (0, _ACore._)({\n    \"class\": 'as-tree-chart'\n  });\n};\n\nTreeChart.prototype._updateContent = function () {\n  var _this = this;\n\n  if (this.$root) {\n    this.$root.remove();\n    this.$root = null;\n  }\n\n  var data = this.data;\n  if (!data) return;\n\n  var makeTree = function makeTree(nodeData, level) {\n    var textChildren = [];\n\n    if (nodeData.icon) {\n      textChildren.push((0, _ACore._)(nodeData.icon).addClass('as-as-tree-chart-icon'));\n    }\n\n    textChildren.push({\n      tag: 'span',\n      \"class\": 'as-tree-chart-text',\n      child: {\n        text: nodeData.text || nodeData.name\n      }\n    });\n    var elt = (0, _ACore._)({\n      \"class\": 'as-tree-chart-node',\n      attr: {\n        \"data-level\": level + ''\n      },\n      child: [{\n        \"class\": 'as-tree-chart-content-ctn',\n        child: {\n          \"class\": 'as-tree-chart-content',\n          child: textChildren\n        }\n      }, {\n        \"class\": 'as-tree-chart-child-ctn'\n      }]\n    });\n    elt.$content = (0, _ACore.$)('.as-tree-chart-content', elt);\n    elt.$childCtn = (0, _ACore.$)('.as-tree-chart-child-ctn', elt);\n    var fillColor, textColor;\n\n    if (typeof nodeData.fill === \"string\") {\n      fillColor = _Color[\"default\"].parse(nodeData.fill);\n    } else if (nodeData.fill instanceof _Color[\"default\"]) {\n      fillColor = nodeData.fill;\n    }\n\n    if (fillColor) {\n      textColor = fillColor.getContrastYIQ();\n      elt.$content.addStyle({\n        color: textColor.toString('hex8'),\n        backgroundColor: fillColor.toString('hex8')\n      });\n    }\n\n    if (level === _this.maxHorizonLevel) elt.addClass('as-horizontal');\n\n    if (nodeData.items && nodeData.items.length > 0) {\n      elt.addClass('as-has-children');\n      /***\r\n       * @type {AElement[]}\r\n       */\n\n      elt.$children = nodeData.items.map(function (it) {\n        return makeTree(it, level + 1);\n      });\n      elt.$childCtn.addChild(elt.$children);\n    }\n\n    return elt;\n  };\n\n  this.$root = makeTree(data, 0).addTo(this);\n  this.domSignal.emit('formatSize');\n};\n\nTreeChart.prototype._formatSize = function () {\n  if (!this.$root) return;\n  var cBound = this.getBoundingClientRect();\n  var maxHorizonLevel = this.maxHorizonLevel;\n\n  var visit = function visit(elt, level) {\n    if (!elt.$children) return;\n    var sArr, maxS;\n\n    if (level < maxHorizonLevel) {\n      sArr = elt.$children.map(function (e) {\n        return e.$content.getBoundingClientRect().height;\n      });\n      maxS = Math.max.apply(Math, sArr);\n      elt.$children.forEach(function (elt, i) {\n        if (sArr[i] < maxS) {\n          elt.$content.addStyle('height', maxS + 'px');\n        }\n      });\n    } else {\n      sArr = elt.$children.map(function (e) {\n        return e.$content.getBoundingClientRect().width;\n      });\n      maxS = Math.max.apply(Math, sArr);\n      console.log(elt.$children, sArr);\n      elt.$children.forEach(function (elt, i) {\n        if (sArr[i] < maxS) {\n          elt.$content.addStyle('width', maxS + 'px');\n        }\n      });\n    }\n\n    elt.$children.forEach(function (c) {\n      return visit(c, level + 1);\n    });\n  };\n\n  visit(this.$root, 0);\n  var newBound = this.getBoundingClientRect();\n\n  if (cBound.width !== newBound.width || cBound.height !== newBound.height) {\n    _ResizeSystem[\"default\"].update();\n  }\n};\n\nTreeChart.property = {};\nTreeChart.property.data = {\n  set: function set(data) {\n    data = (0, _generator.copyJSVariable)(data || null);\n    this._data = data;\n\n    this._updateContent();\n  },\n  get: function get() {\n    return this._data;\n  }\n};\nTreeChart.property.maxHorizonLevel = {\n  set: function set(value) {\n    if (!(0, _utils.isNaturalNumber)(value)) value = 2; //default\n\n    this._maxHorizonLevel = value;\n\n    this._updateContent();\n  },\n  get: function get() {\n    return this._maxHorizonLevel;\n  }\n};\n\n_ACore[\"default\"].install(TreeChart);\n\nvar _default = TreeChart;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/TreeChart.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/TreeList.js":
/*!*************************************************!*\
  !*** ./node_modules/absol-acomp/js/TreeList.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/treelist.css */ \"./node_modules/absol-acomp/css/treelist.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _TreeListItem = _interopRequireDefault(__webpack_require__(/*! ./TreeListItem */ \"./node_modules/absol-acomp/js/TreeListItem.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n\nfunction TreeList() {}\n\nTreeList.tag = 'treelist';\n\nTreeList.render = function () {\n  return _({\n    \"class\": 'absol-tree-list',\n    extendEvent: 'press'\n  });\n};\n\nTreeList.prototype.realignDescription = function (extMarginLeft) {\n  extMarginLeft = extMarginLeft || 0;\n  var maxWidth = 0;\n  var ctns = [];\n  $('.absol-tree-list-item-desc-container', this, function (elt) {\n    ctns.push(elt);\n    var bound = elt.getBoundingClientRect();\n    maxWidth = Math.max(maxWidth, bound.width);\n  });\n  var fontSize = this.getFontSize();\n  var cntWidth = maxWidth / fontSize + 'em';\n  var extMarginRight = maxWidth / fontSize + extMarginLeft + 'em';\n  ctns.forEach(function (e) {\n    e.addStyle('width', cntWidth);\n  });\n  $('span.absol-tree-list-item-text', this, function (elt) {\n    elt.addStyle('margin-right', extMarginRight);\n  });\n  return this;\n};\n\nTreeList.prototype.clearItems = function () {\n  this._items = [];\n  this.clearChild();\n};\n\nTreeList.prototype.getAllItem = function () {\n  return this._items || [];\n};\n\nTreeList.prototype.getAllItemElement = function () {\n  return Array.apply(null, this.childNodes);\n};\n\nTreeList.prototype.addItem = function (item) {\n  var self = this;\n  var props = {\n    level: this.level,\n    data: item\n  };\n\n  if (typeof item == 'string') {\n    props.text = item;\n  } else {\n    props.text = item.text;\n\n    if (item.items) {\n      props.items = item.items;\n    }\n\n    if (item.desc) {\n      props.desc = item.desc;\n    }\n\n    if (item.extendClasses) {\n      props.extendClasses = item.extendClasses;\n    }\n\n    if (item.extendStyle) {\n      props.extendStyle = item.extendStyle;\n    }\n  }\n\n  var elt = _({\n    tag: 'treelistitem',\n    props: props,\n    on: {\n      press: function press(event) {\n        self.emit('press', event, this);\n      }\n    }\n  });\n\n  this.addChild(elt);\n\n  this._items.push(item);\n\n  return this;\n};\n\nTreeList.property = {};\nTreeList.property.items = {\n  set: function set(value) {\n    this.clearItems();\n    (value || []).forEach(this.addItem.bind(this));\n  },\n  get: function get() {\n    return this.getAllItem();\n  }\n};\nTreeList.property.level = {\n  set: function set(value) {\n    value = value || 0;\n    if (this.level == value) return;\n    this._level = value;\n    this.getAllItemElement().forEach(function (e) {\n      e.level = value;\n    });\n  },\n  get: function get() {\n    return this._level || 0;\n  }\n};\n\n_ACore[\"default\"].install(TreeList);\n\nvar _default = TreeList;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/TreeList.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/TreeListItem.js":
/*!*****************************************************!*\
  !*** ./node_modules/absol-acomp/js/TreeListItem.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/treelist.css */ \"./node_modules/absol-acomp/css/treelist.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n\nfunction TreeListItem() {\n  var thisTI = this;\n  this.$list = $('treelist', this).on('press', function (event, sender) {\n    thisTI.emit('press', event, this);\n  });\n  this.$parent = $('.absol-tree-list-item-parent', this).on('mousedown', this.eventHandler.clickParent);\n  this.$text = $('span.absol-tree-list-item-text', this);\n  this.$desc = $('span.absol-tree-list-item-desc', this);\n  this.$descCtn = $('.absol-tree-list-item-desc-container', this);\n  this.$list.level = 1;\n\n  _OOP[\"default\"].drillProperty(this, this.$list, 'items');\n}\n\nTreeListItem.tag = 'TreeListItem'.toLowerCase();\n\nTreeListItem.render = function () {\n  return _({\n    extendEvent: ['press', 'clickparent'],\n    \"class\": 'absol-tree-list-item',\n    child: [{\n      \"class\": 'absol-tree-list-item-parent',\n      child: ['span.absol-tree-list-item-text', {\n        \"class\": 'absol-tree-list-item-desc-container',\n        child: 'span.absol-tree-list-item-desc'\n      }]\n    }, 'treelist']\n  });\n};\n\nTreeListItem.eventHandler = {};\n\nTreeListItem.eventHandler.clickParent = function (event) {\n  event.preventDefault();\n  var prevented = false;\n  var self = this;\n  this.emit('press', {\n    target: self,\n    preventDefault: function preventDefault() {\n      prevented = true;\n    },\n    isPrevented: function isPrevented() {\n      return prevented;\n    },\n    data: this.data\n  }, this);\n\n  if (!prevented) {\n    var top = self.getTopLevelElt();\n    $('treelistitem', top, function (e) {\n      if (e != self) e.active = false;\n    });\n    self.active = true;\n  }\n};\n\nTreeListItem.prototype.getTopLevelElt = function () {\n  var current = this;\n\n  while (current) {\n    var parent = current.parentNode;\n    if (!parent || !parent.classList.contains('absol-tree-list') && !parent.classList.contains('absol-tree-list-item')) break;\n    current = current.parentNode;\n  }\n\n  return current;\n};\n\nTreeListItem.property = {\n  text: {\n    set: function set(value) {\n      value = value + '';\n      this.$text.innerHTML = value;\n    },\n    get: function get() {\n      return this.$text.innerHTML;\n    }\n  },\n  desc: {\n    set: function set(value) {\n      value = value + '';\n      this.$desc.innerHTML = value;\n    },\n    get: function get() {\n      return this.$desc.innerHTML;\n    }\n  },\n  level: {\n    set: function set(value) {\n      value = value || 0;\n      if (value == this.level) return;\n      this._level = value;\n      this.$parent.addStyle('padding-left', this._level * 0.4 * 3 + 'em');\n      this.$list.level = value + 1;\n    },\n    get: function get() {\n      return this._level || 0;\n    }\n  },\n  active: {\n    set: function set(value) {\n      if (value) {\n        this.addClass('active');\n      } else {\n        this.removeClass('active');\n      }\n    },\n    get: function get() {\n      return this.hasClass('active');\n    }\n  },\n  data: {\n    set: function set(value) {\n      this._data = value;\n    },\n    get: function get() {\n      return this._data;\n    }\n  },\n  value: {\n    get: function get() {\n      var data = this.data;\n      if (typeof data == 'string') return data;\n\n      if (typeof data.value == \"undefined\") {\n        return data.text;\n      } else {\n        return data.value;\n      }\n    }\n  }\n};\nTreeListItem.property.extendClasses = {\n  set: function set(value) {\n    var self = this;\n    this.extendClasses.forEach(function (className) {\n      self.$parent.removeClass(className);\n    });\n    this._extendClass = [];\n    if (!value) return;\n\n    if (typeof value == 'string') {\n      value = value.split(/\\s+/).filter(function (c) {\n        return c.length > 0;\n      });\n    }\n\n    if (value instanceof Array) {\n      this._extendClass = value;\n\n      this._extendClass.forEach(function (className) {\n        self.$parent.addClass(className);\n      });\n    } else {\n      throw new Error('Invalid extendClasses');\n    }\n  },\n  get: function get() {\n    return this._extendClass || [];\n  }\n};\nTreeListItem.property.extendStyle = {\n  set: function set(value) {\n    this.$parent.removeStyle(this._extendStyle || {});\n    this._extendStyle = value || {};\n    this.$parent.addStyle(this.extendStyle);\n  },\n  get: function get() {\n    return this._extendStyle || {};\n  }\n};\n\n_ACore[\"default\"].install(TreeListItem);\n\nvar _default = TreeListItem;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/TreeListItem.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/VRuler.js":
/*!***********************************************!*\
  !*** ./node_modules/absol-acomp/js/VRuler.js ***!
  \***********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/vruler.css */ \"./node_modules/absol-acomp/css/vruler.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n\nfunction VRuler() {\n  var self = this;\n  this.$attachHook = _('attachhook').on('error', function () {\n    this.updateSize = self.update.bind(self);\n\n    _Dom[\"default\"].addToResizeSystem(this);\n\n    this.updateSize();\n  }).addTo(this);\n  this.$lines = [];\n  this.$numbers = [];\n  this.$measureTarget = undefined;\n  this._viewingNumberCount = 0;\n  this._viewingLineCount = 0;\n  this._spacing = 10;\n  this._major = 10;\n  this._valueFloat = 'top';\n}\n\nVRuler.tag = 'vruler';\n\nVRuler.render = function () {\n  return _({\n    \"class\": 'as-vruler'\n  });\n};\n\nVRuler.prototype.measureElement = function (elt) {\n  if (typeof elt == \"string\") elt = $(elt);\n  this.$measureTarget = elt;\n  this.update();\n};\n\nVRuler.prototype.update = function () {\n  var fontSize = this.getFontSize();\n  var measureBound;\n  var bound = this.getBoundingClientRect();\n  var contentBound = {\n    left: bound.left + 1,\n    right: bound.right - 1,\n    top: bound.top + 1,\n    bottom: bound.bottom - 1,\n    width: bound.width - 2,\n    height: bound.height - 2\n  };\n\n  if (this.$measureTarget) {\n    measureBound = this.$measureTarget.getBoundingClientRect();\n  } else {\n    measureBound = contentBound;\n  }\n\n  var startOfset = (measureBound[this._valueFloat] - contentBound[this._valueFloat]) * (this.inverse ? -1 : 1) % this._spacing;\n  if (startOfset < 0) startOfset += this._spacing;\n  var lineIndexOfset = Math.round(((contentBound[this._valueFloat] - measureBound[this._valueFloat]) * (this.inverse ? -1 : 1) + startOfset) / this._spacing);\n  var lineCount = Math.floor((contentBound.height - startOfset) / this._spacing) + 1;\n\n  while (this.$lines.length < lineCount) {\n    this.$lines.push(_('.as-vruler-line'));\n  }\n\n  var i;\n  var lineElt;\n\n  for (i = 0; i < lineCount; ++i) {\n    lineElt = this.$lines[i];\n\n    if ((i + lineIndexOfset) % this._major == 0) {\n      lineElt.addClass('major');\n    } else {\n      lineElt.removeClass('major');\n    }\n\n    lineElt.addStyle(this._valueFloat, startOfset + this._spacing * i - 0.5 + 'px');\n  }\n\n  while (this._viewingLineCount < lineCount) {\n    this.$lines[this._viewingLineCount++].addTo(this);\n  }\n\n  while (this._viewingLineCount > lineCount) {\n    this.$lines[--this._viewingLineCount].remove();\n  }\n\n  var numberCount = Math.floor((lineCount + lineIndexOfset - 1) / this._major) - Math.ceil(lineIndexOfset / this._major) + 1;\n\n  while (this.$numbers.length < numberCount) {\n    this.$numbers.push(_('.as-vruler-major-number'));\n  }\n\n  var numberElt;\n  var number;\n  var majorStartOfset = startOfset;\n\n  if (lineIndexOfset > 0) {\n    majorStartOfset += (this._major - lineIndexOfset % this._spacing) * this._spacing;\n  } else {\n    majorStartOfset += (this._major - (this._spacing + lineIndexOfset % this._spacing)) * this._spacing;\n  }\n\n  for (i = 0; i < numberCount; ++i) {\n    number = (Math.ceil(lineIndexOfset / this._major) + i) * this._spacing * this._major;\n    numberElt = this.$numbers[i];\n\n    if (numberElt.__cacheNumber__ != number) {\n      numberElt.__cacheNumber__ = number;\n      numberElt.innerHTML = number + '';\n    }\n\n    numberElt.addStyle(this._valueFloat, majorStartOfset + this._major * i * this._spacing - 0.7 * 0.5 * fontSize + 'px');\n  }\n\n  while (this._viewingNumberCount < numberCount) {\n    this.$numbers[this._viewingNumberCount++].addTo(this);\n  }\n\n  while (this._viewingNumberCount > numberCount) {\n    this.$numbers[--this._viewingNumberCount].remove();\n  }\n};\n\nVRuler.property = {};\nVRuler.property.major = {\n  set: function set(value) {\n    if (value > 0) {\n      this._major = value;\n      this.update();\n    }\n  },\n  get: function get() {\n    return this._major;\n  }\n};\nVRuler.property.spacing = {\n  set: function set(value) {\n    if (value > 0) {\n      this._spacing = value;\n      this.update();\n    }\n  },\n  get: function get() {\n    return this._spacing;\n  }\n};\nVRuler.property.inverse = {\n  set: function set(value) {\n    this._valueFloat = value ? 'bottom' : 'top';\n    this.update();\n  },\n  get: function get() {\n    return this._valueFloat == 'bottom';\n  }\n};\n\n_ACore[\"default\"].install('vruler', VRuler);\n\nvar _default = VRuler;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/VRuler.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/VariantColors.js":
/*!******************************************************!*\
  !*** ./node_modules/absol-acomp/js/VariantColors.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/variantcolors.css */ \"./node_modules/absol-acomp/css/variantcolors.css\");\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction VariantColor() {\n  this.keys = ['primary', 'secondary', 'success', 'info', 'warning', 'error', 'danger', 'light', 'dark', 'link', 'note'];\n  this.base = {\n    primary: \"#007bff\",\n    secondary: \"#6c757d\",\n    success: \"#28a745\",\n    info: \"#17a2b8\",\n    warning: \"#ffc107\",\n    error: \"#ff4052\",\n    danger: \"#dc3545\",\n    light: \"#f8f9fa\",\n    dark: \"#343a40\",\n    link: \"#007bff\",\n    note: '#ffff88'\n  };\n  this.mediumContract = {\n    primary: '#e2edd5',\n    secondary: '#fca75b',\n    success: '#fce8e8',\n    info: '#fcf5e8',\n    warning: '#5e5a75',\n    error: '#e0dfce',\n    danger: \"#e5e8d5\",\n    light: '#7a5b3c',\n    dark: \"#bf7d3b\",\n    link: \"#dde8c9\",\n    note: '#1e1ec8'\n  };\n\n  _Dom[\"default\"].documentReady.then(this.loadFromCss.bind(this));\n}\n\nVariantColor.prototype.has = function (name) {\n  return this.keys.indexOf(name) >= 0;\n};\n\nVariantColor.prototype.loadFromCss = function () {\n  this.base = this.keys.reduce(function (ac, name) {\n    var style = window.getComputedStyle(document.body);\n    ac[name] = style.getPropertyValue('--variant-color-' + name);\n    return ac;\n  }, {});\n  this.mediumContract = this.keys.reduce(function (ac, name) {\n    var style = window.getComputedStyle(document.body);\n    ac[name] = style.getPropertyValue('--variant-medium-contract-color-' + name);\n    return ac;\n  }, {});\n};\n\nvar _default = new VariantColor();\n\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/VariantColors.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/VerticalTimeline.js":
/*!*********************************************************!*\
  !*** ./node_modules/absol-acomp/js/VerticalTimeline.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\n__webpack_require__(/*! ../css/verticaltimeline.css */ \"./node_modules/absol-acomp/css/verticaltimeline.css\");\n\nvar _utils = __webpack_require__(/*! ./utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction VerticalTimeline() {\n  this._current = 0;\n  this._items = [];\n  this.$items = [];\n  this.current = 0;\n}\n\nVerticalTimeline.tag = 'VerticalTimeline'.toLowerCase();\n\nVerticalTimeline.render = function () {\n  return (0, _ACore._)({\n    \"class\": 'as-vertical-timeline',\n    child: []\n  });\n};\n\nVerticalTimeline.prototype._makeItem = function (item, i) {\n  var iconElt = (0, _ACore._)('span.mdi.mdi-circle');\n  return (0, _ACore._)({\n    \"class\": 'as-vertical-timeline-item',\n    props: {\n      $icon: iconElt\n    },\n    child: [{\n      \"class\": 'as-vertical-timeline-icon-ctn',\n      child: iconElt\n    }, {\n      \"class\": 'as-vertical-timeline-tile',\n      child: {\n        tag: 'span',\n        child: {\n          text: item.text\n        }\n      }\n    }]\n  });\n};\n\nVerticalTimeline.property = {};\nVerticalTimeline.property.items = {\n  /***\r\n   * @this VerticalTimeline\r\n   * @param items\r\n   */\n  set: function set(items) {\n    items = items || [];\n    this._items = items;\n    this.clearChild();\n    this.$items = items.map(function (item, i) {\n      return this._makeItem(item, i);\n    }.bind(this));\n    this.addChild(this.$items);\n    this.current = this._current; //update\n  },\n  get: function get() {}\n};\nVerticalTimeline.property.current = {\n  set: function set(value) {\n    value = (0, _utils.isRealNumber)(value) ? value >> 0 : -1;\n    this._current = value;\n    var itemElt;\n\n    for (var i = 0; i < this.$items.length; ++i) {\n      itemElt = this.$items[i]; //.$icon.removeClass('');\n\n      if (i < value) {\n        itemElt.$icon.removeClass('mdi-numeric-' + (i + 1) + '-circle').removeClass('mdi-circle').addClass('mdi-check-circle');\n        itemElt.removeClass('as-inactive').removeClass('as-active');\n      } else if (i === value) {\n        itemElt.$icon.addClass('mdi-numeric-' + (i + 1) + '-circle').removeClass('mdi-circle').removeClass('mdi-check-circle');\n        itemElt.removeClass('as-inactive').addClass('as-active');\n      } else {\n        itemElt.addClass('as-inactive').removeClass('as-active');\n        itemElt.$icon.removeClass('mdi-numeric-' + (i + 1) + '-circle').addClass('mdi-circle').removeClass('mdi-check-circle');\n      }\n    }\n  },\n  get: function get() {\n    return Math.max(-1, Math.min(this._current, this._items.length));\n  }\n};\n\n_ACore[\"default\"].install(VerticalTimeline);\n\nvar _default = VerticalTimeline;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/VerticalTimeline.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/VerticalTreeDiagram.js":
/*!************************************************************!*\
  !*** ./node_modules/absol-acomp/js/VerticalTreeDiagram.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.VerticalTreeDiagramNode = VerticalTreeDiagramNode;\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/verticaltreediagram.css */ \"./node_modules/absol-acomp/css/verticaltreediagram.css\");\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction VerticalTreeDiagramNode() {\n  this.$childCtn = (0, _ACore.$)('.as-vertical-tree-diagram-child-ctn', this);\n  this.$name = (0, _ACore.$)('.as-vertical-tree-diagram-node-name', this);\n\n  _OOP[\"default\"].drillProperty(this, this.$name.firstChild, 'name', 'data');\n\n  this.name = \"UndefinedNodeName\";\n}\n\nVerticalTreeDiagramNode.tag = 'VerticalTreeDiagramNode'.toLowerCase();\n\nVerticalTreeDiagramNode.render = function () {\n  return (0, _ACore._)({\n    \"class\": 'as-vertical-tree-diagram-node',\n    child: [{\n      \"class\": 'as-vertical-tree-diagram-node-name-ctn',\n      child: {\n        \"class\": 'as-vertical-tree-diagram-node-name',\n        child: {\n          text: \"\"\n        }\n      }\n    }, {\n      \"class\": 'as-vertical-tree-diagram-child-ctn'\n    }]\n  });\n};\n\n['addChild', 'removeChild', 'clearChild', 'addChildBefore', 'addChildAfter', 'findChildBefore', 'findChildAfter'].forEach(function (name) {\n  VerticalTreeDiagramNode.prototype[name] = function () {\n    this.$childCtn[name].apply(this.$childCtn, arguments);\n\n    if (this.$childCtn.childNodes.length > 0) {\n      this.addClass('as-has-child');\n\n      if (this.$childCtn.childNodes.length === 1) {\n        this.addClass('as-has-1-child');\n      } else {\n        this.removeClass('as-has-1-child');\n      }\n    } else {\n      this.removeClass('as-has-child');\n      this.removeClass('as-has-1-child');\n    }\n  };\n});\n\nfunction VerticalTreeDiagram(data) {\n  this.data = data || {};\n}\n\nVerticalTreeDiagram.tag = 'VerticalTreeDiagram'.toLowerCase();\n\nVerticalTreeDiagram.render = function () {\n  return (0, _ACore._)(VerticalTreeDiagramNode.tag, true);\n};\n\nVerticalTreeDiagram.property = {};\nVerticalTreeDiagram.property.data = {\n  set: function set(data) {\n    data = data || {};\n    this._data = data;\n\n    function makeNode(nodeData) {\n      return (0, _ACore._)({\n        tag: VerticalTreeDiagramNode.tag,\n        props: {\n          name: nodeData.name\n        },\n        child: nodeData.child && nodeData.child.length > 0 && nodeData.child.map(makeNode) || []\n      });\n    }\n\n    this.name = data.name + '';\n    this.clearChild();\n    if (data.child) this.addChild(data.child.map(makeNode));\n  },\n  get: function get() {\n    return this._data;\n  }\n};\n\n_ACore[\"default\"].install(VerticalTreeDiagramNode);\n\n_ACore[\"default\"].install(VerticalTreeDiagram);\n\nvar _default = VerticalTreeDiagram;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/VerticalTreeDiagram.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/WidthHeightSizer.js":
/*!*********************************************************!*\
  !*** ./node_modules/absol-acomp/js/WidthHeightSizer.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../css/widthheightresizer.css */ \"./node_modules/absol-acomp/css/widthheightresizer.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Draggable = _interopRequireDefault(__webpack_require__(/*! ./Draggable */ \"./node_modules/absol-acomp/js/Draggable.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n//can replace with other module\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n\nfunction WidthHeightResizer() {\n  var res = _({\n    extendEvent: 'sizechange',\n    \"class\": 'absol-width-height-resizer',\n    child: ['.absol-width-height-resizer-content', '.absol-width-height-resizer-anchor-bot-right', '.absol-width-height-resizer-anchor-bot-left', '.absol-width-height-resizer-anchor-top-right', '.absol-width-height-resizer-anchor-top-left']\n  });\n\n  res.eventHandler = _OOP[\"default\"].bindFunctions(res, WidthHeightResizer.eventHandler);\n  res.$anchorBotRight = $('.absol-width-height-resizer-anchor-bot-right', res);\n  res.$anchorTopRight = $('.absol-width-height-resizer-anchor-top-right', res);\n  res.$anchorBotLeft = $('.absol-width-height-resizer-anchor-bot-left', res);\n  res.$anchorTopLeft = $('.absol-width-height-resizer-anchor-top-left', res);\n  res.$content = $('.absol-width-height-resizer-content', res);\n  (0, _Draggable[\"default\"])(res.$anchorBotRight).on('drag', res.eventHandler.dragBotRight).on('predrag', res.eventHandler.preDrag);\n  (0, _Draggable[\"default\"])(res.$anchorTopRight).on('drag', res.eventHandler.dragTopRight).on('predrag', res.eventHandler.preDrag);\n  (0, _Draggable[\"default\"])(res.$anchorBotLeft).on('drag', res.eventHandler.dragBotLeft).on('predrag', res.eventHandler.preDrag);\n  (0, _Draggable[\"default\"])(res.$anchorTopLeft).on('drag', res.eventHandler.dragTopLeft).on('predrag', res.eventHandler.preDrag);\n  return res;\n}\n\n['addChild', 'addChildBefore', 'addChildAfter', 'clearChild'].forEach(function (key) {\n  WidthHeightResizer.prototype[key] = function () {\n    return this.$content[key].apply(this.$content, arguments);\n  };\n});\nWidthHeightResizer.tag = 'WidthHeightResizer'.toLowerCase();\nWidthHeightResizer.eventHandler = {};\n\nWidthHeightResizer.eventHandler.preDrag = function (event) {\n  this._whrWidth = parseFloat(this.getComputedStyleValue('width').replace('px', ''));\n  this._whrHeight = parseFloat(this.getComputedStyleValue('height').replace('px', ''));\n};\n\nWidthHeightResizer.eventHandler.dragBotRight = function (event) {\n  var newEvent = {\n    target: this,\n    data: {}\n  };\n\n  if (event.moveDX != 0) {\n    this.addStyle('width', this._whrWidth + event.moveDX + 'px');\n    newEvent.data.changeWidth = true;\n  }\n\n  if (event.moveDY != 0) {\n    this.addStyle('height', this._whrHeight + event.moveDY + 'px');\n    newEvent.data.changeHeight = true;\n  }\n\n  newEvent.data.height = this.getComputedStyleValue('height');\n  newEvent.data.width = this.getComputedStyleValue('width');\n  this.emit('sizechange', newEvent);\n};\n\nWidthHeightResizer.eventHandler.dragTopRight = function (event) {\n  var newEvent = {\n    target: this,\n    data: {}\n  };\n\n  if (event.moveDX != 0) {\n    this.addStyle('width', this._whrWidth + event.moveDX + 'px');\n    newEvent.data.changeWidth = true;\n  }\n\n  if (event.moveDY != 0) {\n    this.addStyle('height', this._whrHeight - event.moveDY + 'px');\n    newEvent.data.changeHeight = true;\n  }\n\n  newEvent.data.height = this.getComputedStyleValue('height');\n  newEvent.data.width = this.getComputedStyleValue('width');\n  this.emit('sizechange', newEvent);\n};\n\nWidthHeightResizer.eventHandler.dragBotLeft = function (event) {\n  var newEvent = {\n    target: this,\n    data: {}\n  };\n\n  if (event.moveDX != 0) {\n    this.addStyle('width', this._whrWidth - event.moveDX + 'px');\n    newEvent.data.changeWidth = true;\n  }\n\n  if (event.moveDY != 0) {\n    this.addStyle('height', this._whrHeight + event.moveDY + 'px');\n    newEvent.data.changeHeight = true;\n  }\n\n  newEvent.data.height = this.getComputedStyleValue('height');\n  newEvent.data.width = this.getComputedStyleValue('width');\n  this.emit('sizechange', newEvent);\n};\n\nWidthHeightResizer.eventHandler.dragTopLeft = function (event) {\n  var newEvent = {\n    target: this,\n    data: {}\n  };\n\n  if (event.moveDX != 0) {\n    this.addStyle('width', this._whrWidth - event.moveDX + 'px');\n    newEvent.data.changeWidth = true;\n  }\n\n  if (event.moveDY != 0) {\n    this.addStyle('height', this._whrHeight - event.moveDY + 'px');\n    newEvent.data.changeHeight = true;\n  }\n\n  newEvent.data.height = this.getComputedStyleValue('height');\n  newEvent.data.width = this.getComputedStyleValue('width');\n  this.emit('sizechange', newEvent);\n};\n\n_ACore[\"default\"].creator.widthheightresizer = WidthHeightResizer;\nvar _default = WidthHeightResizer;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/WidthHeightSizer.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/WindowBox.js":
/*!**************************************************!*\
  !*** ./node_modules/absol-acomp/js/WindowBox.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/**\r\n * @typedef WindowBoxAction\r\n * @property icon\r\n * @property name\r\n *\r\n */\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction WindowBox() {\n  this.$header = (0, _ACore.$)('.as-window-box-header', this);\n  /***\r\n   *\r\n   * @type {WindowBoxAction[]}\r\n   * @private\r\n   */\n\n  this._windowActions = [];\n  this.$windowActionButtonCtn = (0, _ACore.$)('.as-window-box-header-button-ctn', this);\n  this._windowIcon = null;\n  this.$windowIconCtn = (0, _ACore.$)('.as-window-box-header-icon-ctn', this);\n  /**\r\n   *\r\n   * @type {Text}\r\n   */\n\n  this.$windowTitleText = (0, _ACore.$)('.as-window-box-header-title', this).firstChild;\n  this.$body = (0, _ACore.$)('.as-window-box-body', this);\n  /***\r\n   * @type {WindowBoxAction[]}\r\n   * @name windowActions\r\n   */\n}\n\nWindowBox.tag = 'WindowBox'.toLowerCase();\n\nWindowBox.render = function () {\n  return (0, _ACore._)({\n    \"class\": 'as-window-box',\n    extendEvent: ['action'],\n    child: [{\n      \"class\": 'as-window-box-header',\n      child: [{\n        \"class\": 'as-window-box-header-icon-ctn'\n      }, {\n        \"class\": 'as-window-box-header-title',\n        child: {\n          text: ''\n        }\n      }, {\n        \"class\": \"as-window-box-header-button-ctn\"\n      }]\n    }, {\n      \"class\": 'as-window-box-body'\n    }]\n  });\n};\n\n['addChild', 'addChildBefore', 'addChildAfter', 'clearChild', 'findChildBefore', 'findChildAfter'].forEach(function (key) {\n  WindowBox.prototype[key] = function () {\n    return this.$body[key].apply(this.$body, arguments);\n  };\n});\nWindowBox.property = {};\nWindowBox.property.windowTitle = {\n  set: function set(value) {\n    this.$windowTitleText.data = (value || '') + '';\n  },\n  get: function get() {\n    return this.$windowTitleText.data;\n  },\n  enumerable: true\n};\nWindowBox.property.windowIcon = {\n  /***\r\n   * @this WindowBox\r\n   * @param value\r\n   */\n  set: function set(value) {\n    value = value || null;\n    this.$windowIconCtn.clearChild();\n\n    if (value) {\n      this.$windowIconCtn.addChild((0, _ACore._)(value));\n    }\n\n    this._windowIcon = value;\n  },\n  get: function get() {\n    return this._windowIcon;\n  },\n  enumerable: true\n};\nWindowBox.property.windowActions = {\n  set: function set(actions) {\n    var self = this;\n    this._windowActions = actions || [];\n    this.$windowActionButtonCtn.clearChild();\n\n    var buttons = this._windowActions.map(function (action) {\n      return (0, _ACore._)({\n        tag: 'button',\n        \"class\": action[\"class\"] || [],\n        child: action.icon,\n        on: {\n          click: function click(event) {\n            var eventData = {\n              type: 'action',\n              target: self,\n              action: action,\n              originalEvent: event\n            };\n\n            _OOP[\"default\"].drillProperty(eventData, eventData, 'actionData', 'action');\n\n            self.emit('action', eventData, self);\n          }\n        }\n      });\n    });\n\n    this.$windowActionButtonCtn.addChild(buttons);\n  },\n  get: function get() {\n    return this._windowActions;\n  }\n};\n\n_ACore[\"default\"].install(WindowBox);\n\nvar _default = WindowBox;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/WindowBox.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/YesNoQuestionDialog.js":
/*!************************************************************!*\
  !*** ./node_modules/absol-acomp/js/YesNoQuestionDialog.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\n__webpack_require__(/*! ../css/messagedialog.css */ \"./node_modules/absol-acomp/css/messagedialog.css\");\n\nvar _MessageDialog = _interopRequireDefault(__webpack_require__(/*! ./MessageDialog */ \"./node_modules/absol-acomp/js/MessageDialog.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends MessageDialog\r\n * @constructor\r\n */\nfunction YesNoQuestionDialog() {\n  this.dialogActions = [{\n    \"class\": 'secondary',\n    text: 'No',\n    name: 'no'\n  }, {\n    \"class\": 'primary',\n    text: 'Yes',\n    name: 'yes'\n  }];\n  this.$yesBtn = this.$actionBtns[1];\n  this.$noBtn = this.$actionBtns[0];\n  this.$message = (0, _ACore.$)('.as-message-dialog-message', this);\n  /*{\r\n          class: 'as-message-dialog-footer',\r\n          child: [\r\n              {\r\n                  tag: FlexiconButton.tag,\r\n                  class: ['as-message-dialog-no-btn', 'secondary'],\r\n                  props: {\r\n                      text: 'No'\r\n                  }\r\n              },\r\n              {\r\n                  tag: FlexiconButton.tag,\r\n                  class: ['as-message-dialog-yes-btn', 'primary'],\r\n                  props: {\r\n                      text: 'Yes'\r\n                  }\r\n              }\r\n          ]\r\n      }*/\n}\n\nYesNoQuestionDialog.tag = 'YesNoQuestionDialog'.toLowerCase();\n\nYesNoQuestionDialog.render = function () {\n  return (0, _ACore._)({\n    tag: _MessageDialog[\"default\"].tag,\n    child: [{\n      tag: 'span',\n      \"class\": 'as-message-dialog-message',\n      child: {\n        text: ''\n      }\n    }]\n  });\n};\n\nYesNoQuestionDialog.eventHandler = {};\nYesNoQuestionDialog.property = {};\nYesNoQuestionDialog.property.message = {\n  set: function set(value) {\n    value = (value || '') + '';\n    this.$message.firstChild.data = value;\n  },\n  get: function get() {\n    return this.$message.firstChild.data;\n  }\n};\nYesNoQuestionDialog.property.textYes = {\n  set: function set(value) {\n    value = (value || 'Yes') + '';\n    this.$yesBtn.text = value;\n    this.dialogActions[1].text = value;\n  },\n  get: function get() {\n    return this.$yesBtn.text;\n  }\n};\nYesNoQuestionDialog.property.textNo = {\n  set: function set(value) {\n    value = (value || 'No') + '';\n    this.$noBtn.text = value;\n    this.dialogActions[0].text = value;\n  },\n  get: function get() {\n    return this.$noBtn.text;\n  }\n};\n\n_ACore[\"default\"].install(YesNoQuestionDialog);\n\nvar _default = YesNoQuestionDialog;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/YesNoQuestionDialog.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/adapter/MaterialDesignIconsAdapter.js":
/*!***************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/adapter/MaterialDesignIconsAdapter.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.MaterialDesignIconsNameMap = exports.MaterialDesignIconsCode = void 0;\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * Old name to new name\r\n */\nvar MaterialDesignIconsNameMap = {\n  'settings-outline': 'cog-outline',\n  'contact-mail': 'card-account-mail'\n};\nexports.MaterialDesignIconsNameMap = MaterialDesignIconsNameMap;\nvar MaterialDesignIconsCode = {};\nexports.MaterialDesignIconsCode = MaterialDesignIconsCode;\n\n_Dom[\"default\"].documentReady.then(function () {\n  //because of merge tool handled it\n  return;\n  var _ = _ACore[\"default\"]._;\n\n  var a = _({\n    tag: 'span',\n    \"class\": ['mdi'],\n    style: {\n      display: 'none'\n    }\n  }).addTo(document.body);\n\n  var content;\n  var cssCodeLines = [];\n\n  for (var oldName in MaterialDesignIconsNameMap) {\n    a.addClass('mdi-' + MaterialDesignIconsNameMap[oldName]);\n    content = getComputedStyle(a, '::before').content;\n    MaterialDesignIconsCode[oldName] = content;\n    cssCodeLines.push('.mdi-' + oldName + '::before{content:' + content + '}');\n    a.removeClass('mdi-' + MaterialDesignIconsNameMap[oldName]);\n  }\n\n  a.remove();\n\n  var styleElt = _({\n    tag: 'style',\n    props: {\n      innerHTML: cssCodeLines.join('\\n')\n    }\n  }).addTo(document.head);\n});\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/adapter/MaterialDesignIconsAdapter.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/adapter/PlaceSearchAutoCompleteAdapter.js":
/*!*******************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/adapter/PlaceSearchAutoCompleteAdapter.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n/***\r\n *\r\n * @param {PlaceSearchAutoCompleteInput} inputElt\r\n * @constructor\r\n */\nfunction PlaceSearchAutoCompleteAdapter(inputElt) {\n  this.inputElt = inputElt;\n  this.service = new google.maps.places.AutocompleteService(this.inputElt.$service);\n}\n\nPlaceSearchAutoCompleteAdapter.prototype.queryItems = function (query, mInput) {\n  var request = {\n    input: query\n  };\n  return new Promise(function (resolve) {\n    this.service.getPlacePredictions(request, function (results, status) {\n      if (status === google.maps.places.PlacesServiceStatus.OK) {\n        resolve(results);\n      } else resolve([]);\n    });\n  }.bind(this));\n};\n\nPlaceSearchAutoCompleteAdapter.prototype.getItemText = function (item, mInput) {\n  return item.description;\n};\n\nPlaceSearchAutoCompleteAdapter.prototype.getItemView = function (item, index, _, $, query, reuseItem, refParent, mInput) {\n  return _({\n    \"class\": 'as-place-search-auto-complete-item',\n    child: [{\n      \"class\": 'as-place-search-auto-complete-item-desc',\n      child: {\n        text: item.description\n      }\n    }]\n  });\n};\n\nvar _default = PlaceSearchAutoCompleteAdapter;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/adapter/PlaceSearchAutoCompleteAdapter.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/adapter/SearchObjectArrayAdapter.js":
/*!*************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/adapter/SearchObjectArrayAdapter.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n/**\r\n * @typedef {Object} SearchObjectArrayAdapter\r\n * @property {function} getItemText\r\n * \r\n * \r\n * \r\n * @param {Array<Object>} arr \r\n * @param {SearchArrayAdapterOption} options\r\n */\nfunction SearchObjectArrayAdapter(objects, options) {\n  if (!this.queryItems) return new SearchObjectArrayAdapter(texts, options);\n  this.objects = objects;\n  this.options = options;\n}\n\nSearchObjectArrayAdapter.prototype.queryItems = function (query, mInput) {\n  var query = query.toLocaleLowerCase();\n  return this.objects.map(function (object) {\n    var text = this.getItemText(object);\n    var start = text.toLocaleLowerCase().indexOf(query);\n\n    if (start >= 0) {\n      var hightlightedText = text.substr(0, start) + '<strong style=\"color:red\">' + text.substr(start, query.length) + '</strong>' + text.substr(start + query.length);\n      return Object.assign(object, {\n        __hightlightedText__: hightlightedText\n      });\n    } else return null;\n  }.bind(this)).filter(function (it) {\n    return it !== null;\n  });\n};\n\nSearchObjectArrayAdapter.prototype.onAttached = function (parent) {\n  this.parent = parent;\n\n  parent.getSelectedObject = function () {\n    if (this._selectedIndex >= 0) {\n      return this.$poolItems[this._selectedIndex]._holderItem;\n    } else {\n      return null;\n    }\n  };\n};\n\nSearchObjectArrayAdapter.prototype.getItemText = function (item, mInput) {\n  if (this.options && this.options.getItemText) return this.options.getItemText.call(this, item, mInput);else if (typeof item.text == 'string') {\n    return item.text;\n  } else return item.toString();\n};\n\nSearchObjectArrayAdapter.prototype.getItemView = function (item, index, _, $, query, reuseItem, refParent, mInput) {\n  if (reuseItem) {\n    reuseItem.childNodes[0].innerHTML = item.__hightlightedText__;\n    return reuseItem;\n  } else return _({\n    tag: 'div',\n    child: {\n      tag: 'span',\n      props: {\n        innerHTML: item.__hightlightedText__\n      }\n    }\n  });\n};\n\nvar _default = SearchObjectArrayAdapter;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/adapter/SearchObjectArrayAdapter.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/adapter/SearchStringArrayAdapter.js":
/*!*************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/adapter/SearchStringArrayAdapter.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n/**\r\n * @typedef {Object} SearchArrayAdapterOption\r\n * @property {function} searchFuntion\r\n * \r\n * \r\n * \r\n * @param {Array<String>} arr \r\n * @param {SearchArrayAdapterOption} options not implement yet\r\n */\nfunction SearchStringArrayAdapter(texts, options) {\n  if (!this.queryItems) return new SearchStringArrayAdapter(texts, options);\n  this.texts = texts;\n}\n\nSearchStringArrayAdapter.prototype.queryItems = function (query, mInput) {\n  var query = query.toLocaleLowerCase();\n  return this.texts.map(function (text) {\n    var start = text.toLocaleLowerCase().indexOf(query);\n\n    if (start >= 0) {\n      var hightlightedText = text.substr(0, start) + '<strong style=\"color:red\">' + text.substr(start, query.length) + '</strong>' + text.substr(start + query.length);\n      return {\n        text: text,\n        hightlightedText: hightlightedText\n      };\n    } else return null;\n  }).filter(function (it) {\n    return it !== null;\n  });\n};\n\nSearchStringArrayAdapter.onAttached = function (parent) {\n  this.parent = parent;\n};\n\nSearchStringArrayAdapter.prototype.getItemText = function (item, mInput) {\n  return item.text;\n};\n\nSearchStringArrayAdapter.prototype.getItemView = function (item, index, _, $, query, reuseItem, refParent, mInput) {\n  if (reuseItem) {\n    reuseItem.childNodes[0].innerHTML = item.hightlightedText;\n    return reuseItem;\n  } else return _({\n    tag: 'div',\n    child: {\n      tag: 'span',\n      \"class\": 'absol-autocomplete-input-item-text',\n      props: {\n        innerHTML: item.hightlightedText\n      }\n    }\n  });\n};\n\nvar _default = SearchStringArrayAdapter;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/adapter/SearchStringArrayAdapter.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/checktreebox/CTBModes.js":
/*!**************************************************************!*\
  !*** ./node_modules/absol-acomp/js/checktreebox/CTBModes.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.CTBModeNormal = CTBModeNormal;\nexports.CTBModeSearch = CTBModeSearch;\n\nvar _MCTBItemHolder = _interopRequireDefault(__webpack_require__(/*! ./MCTBItemHolder */ \"./node_modules/absol-acomp/js/checktreebox/MCTBItemHolder.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n *\r\n * @param {MCheckTreeBox} elt\r\n * @param {[]} items\r\n * @constructor\r\n */\nfunction CTBModeNormal(elt, items) {\n  var _this = this;\n\n  this.level = -1;\n  this.selected = 'none';\n  this.elt = elt;\n  this.$list = this.elt.$list;\n  /***\r\n   *\r\n   * @type {MCTBItemHolder[]}\r\n   */\n\n  this.children = items.map(function (item) {\n    return new _this.elt.classes.ItemHolder(elt, _this, item);\n  });\n  this.hasLeaf = this.children.some(function (holder) {\n    return holder.hasLeaf;\n  });\n  this.hasNoSelect = this.children.some(function (holder) {\n    return holder.hasNoSelect;\n  });\n  this.hasDesc = this.children.some(function (holder) {\n    return holder.hasDesc;\n  });\n  this.hasIcon = this.children.some(function (holder) {\n    return holder.hasIcon;\n  });\n\n  if (this.hasLeaf) {\n    this.elt.addClass('as-has-leaf');\n  } else {\n    this.elt.removeClass('as-has-leaf');\n  }\n\n  if (this.hasNoSelect) {\n    this.elt.addClass('as-has-no-select');\n    this.elt.$chekAll.disabled = true;\n  } else {\n    this.elt.removeClass('as-has-no-select');\n    this.elt.$chekAll.disabled = false;\n  }\n\n  this.dict = this.children.reduce(function visit(ac, child) {\n    var key = (0, _utils.keyStringOf)(child.data.value);\n\n    if (ac[key]) {\n      console.error('Duplicate value:', ac[key].data, child.data);\n    }\n\n    ac[key] = child;\n\n    if (child.children) {\n      child.children.reduce(visit, ac);\n    }\n\n    return ac;\n  }, {});\n}\n\nCTBModeNormal.prototype.onStart = function () {\n  this.$list.clearChild();\n  var rootHolders = this.children;\n  var viewElements = [];\n  rootHolders.forEach(function (holder) {\n    holder.getViewElements(viewElements);\n  }, []);\n  this.$list.addChild(viewElements);\n};\n\nCTBModeNormal.prototype.onStop = function () {};\n\nCTBModeNormal.prototype.updateUp = function () {\n  var selected = {\n    child: 0,\n    all: 0,\n    none: 0\n    /*dont: 0*/\n\n  };\n  var childN = this.children.length;\n  this.children.reduce(function (ac, child) {\n    ac[child.selected]++;\n    return ac;\n  }, selected);\n\n  if (childN === selected.all) {\n    this.selected = 'all';\n  } else if (childN === selected.none) {\n    this.selected = \"none\";\n  } else {\n    this.selected = 'child';\n  }\n\n  this.elt.$chekAll.checked = this.selected === 'all';\n};\n\nCTBModeNormal.prototype.select = function (flag) {\n  this.children.forEach(function (child) {\n    return child.select(flag, true);\n  });\n  this.updateUp();\n};\n\nCTBModeNormal.prototype.getHolderByValue = function (value) {\n  return this.dict[(0, _utils.keyStringOf)(value)] || null;\n};\n\nCTBModeNormal.prototype.setValues = function (values) {\n  var _this2 = this;\n\n  this.children.forEach(function (node) {\n    return node.select(false);\n  });\n  values.forEach(function (value) {\n    var holder = _this2.getHolderByValue(value);\n\n    if (holder) holder.select(true);\n  });\n};\n\nCTBModeNormal.prototype.getValues = function () {\n  var values = [];\n  var leafOnly = this.elt.leafOnly;\n  this.children.forEach(function visit(node) {\n    if (node.selected === 'all' && !node.hasNoSelect) {\n      if (leafOnly) {\n        if (node.data.isLeaf) {\n          values.push(node.data.value);\n        } else if (node.data.items) {\n          node.data.items.forEach(function visitLeaf(item) {\n            if (item.isLeaf) {\n              values.push(item.value);\n            } else if (item.items) {\n              item.items.forEach(visitLeaf);\n            }\n          });\n        }\n      } else {\n        values.push(node.data.value);\n      }\n    } else if (node.children) {\n      node.children.forEach(visit);\n    }\n  });\n  return values;\n};\n\nCTBModeNormal.prototype.getViewValues = function () {\n  var values = [];\n  this.children.forEach(function visit(node) {\n    if (node.selected === 'all' && !node.hasNoSelect) {\n      values.push(node.data.value);\n    } else if (node.children) {\n      node.children.forEach(visit);\n    }\n  });\n  return values;\n};\n/***\r\n *\r\n * @param {MCheckTreeBox} elt\r\n * @param {[]} items\r\n * @constructor\r\n */\n\n\nfunction CTBModeSearch(elt, items) {\n  var _this3 = this;\n\n  this.level = -1;\n  this.selected = 'none';\n  this.elt = elt;\n  this.$list = this.elt.$list;\n  this.children = items.map(function (item) {\n    return new _this3.elt.classes.ItemHolder(elt, _this3, item);\n  });\n}\n\nCTBModeSearch.prototype.onStart = function () {\n  CTBModeNormal.prototype.onStart.call(this);\n  this.updateSelectedFromRef();\n};\n\nCTBModeSearch.prototype.onStop = function () {};\n\nCTBModeSearch.prototype.updateSelectedFromRef = function () {\n  var normalMode = this.elt.modes.normal;\n  this.children.forEach(function visit(holder) {\n    holder.selected = holder.ref.selected;\n\n    if (holder._elt) {\n      holder._elt.selected = holder.selected;\n    }\n\n    if (holder.children) holder.children.forEach(visit);\n  });\n};\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/checktreebox/CTBModes.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/checktreebox/CTBPropHandlers.js":
/*!*********************************************************************!*\
  !*** ./node_modules/absol-acomp/js/checktreebox/CTBPropHandlers.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\nvar CTBPropHandlers = {};\nCTBPropHandlers.items = {\n  /***\r\n   * @this CheckTreeBox|MCheckTreeBox\r\n   * @param items\r\n   */\n  set: function set(items) {\n    this.itemListCtrl.setItems(items);\n    var values = this.pendingValues || this.values;\n    this.modes.normal.setValues(values);\n\n    if (this.mode !== this.modes.normal) {\n      this.mode.updateSelectedFromRef();\n    }\n  },\n  get: function get() {\n    return this.itemListCtrl.getItems();\n  }\n};\nCTBPropHandlers.values = {\n  /***\r\n   * @this CheckTreeBox|MCheckTreeBox\r\n   * @param values\r\n   */\n  set: function set(values) {\n    this.pendingValues = values || [];\n    this.modes.normal.setValues(values);\n\n    if (this.mode !== this.modes.normal) {\n      this.mode.updateSelectedFromRef();\n    }\n  },\n  get: function get() {\n    return this.modes.normal.getValues();\n  }\n};\nCTBPropHandlers.viewValues = {\n  get: function get() {\n    return this.modes.normal.getViewValues();\n  }\n};\nCTBPropHandlers.enableSearch = {\n  /***\r\n   * @this CheckTreeBox|MCheckTreeBox\r\n   * @param value\r\n   */\n  set: function set(value) {\n    if (value) {\n      this.$box.addClass('as-enable-search');\n    } else {\n      this.$box.removeClass('as-enable-search');\n    }\n  },\n  get: function get() {\n    return this.$box.hasClass('as-enable-search');\n  }\n};\nCTBPropHandlers.leafOnly = {\n  /***\r\n   * @this CheckTreeBox|MCheckTreeBox\r\n   * @param value\r\n   */\n  set: function set(value) {\n    if (value) {\n      this.$box.addClass('as-leaf-only');\n    } else {\n      this.$box.removeClass('as-leaf-only');\n    }\n\n    var values = this.pendingValues || this.values;\n    this.modes.normal.setValues(values);\n  },\n  get: function get() {\n    return this.$box.hasClass('as-leaf-only');\n  }\n};\nvar _default = CTBPropHandlers;\n/***\r\n *\r\n * @type {boolean}\r\n * @name enableSearch\r\n * @memberOf MCheckTreeBox#\r\n */\n\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/checktreebox/CTBPropHandlers.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/checktreebox/CTIPropHandlers.js":
/*!*********************************************************************!*\
  !*** ./node_modules/absol-acomp/js/checktreebox/CTIPropHandlers.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar CTIPropHandlers = {};\nCTIPropHandlers.data = {\n  /***\r\n   * @this MCheckTreeItem|CheckTreeItem\r\n   * @param data\r\n   */\n  set: function set(data) {\n    this._data = data;\n\n    this._updateData();\n  },\n  get: function get() {\n    return this._data;\n  }\n};\nCTIPropHandlers.text = {\n  get: function get() {\n    if (!this._data) return '';\n    if (this._data.charAt) return this._data;\n    var text = this._data.text;\n    if (text === undefined || text === null) return '';\n    return this._data.text + '';\n  }\n};\nCTIPropHandlers.value = {\n  get: function get() {\n    if (!this._data) return null;\n    if (this._data.charAt) return this._data;\n    return this._data.value;\n  }\n};\nCTIPropHandlers.desc = {\n  get: function get() {\n    if (!this._data) return '';\n    var desc = this._data.desc;\n    if (desc === undefined || desc === null) return '';\n    return desc + '';\n  }\n};\nCTIPropHandlers.level = {\n  set: function set(value) {\n    if (!(0, _utils.isNaturalNumber)(value)) value = 0;\n    this._level = value;\n    this.addStyle('--level', value + '');\n  },\n  get: function get() {\n    return this._level;\n  }\n};\nCTIPropHandlers.status = {\n  set: function set(value) {\n    value = value === 'open' || value === 'close' ? value : 'none';\n    this._status = value;\n    this.removeClass('as-status-open').removeClass('as-status-close');\n\n    if (value !== \"none\") {\n      this.addClass('as-status-' + value);\n    }\n  },\n  get: function get() {\n    return this._status || 'none';\n  }\n};\nCTIPropHandlers.selected = {\n  set: function set(value) {\n    if (value === 'all') {\n      this.$checkbox.checked = true;\n      this.$checkbox.removeClass('as-has-minus');\n    } else if (value === 'child') {\n      this.$checkbox.checked = false;\n      this.$checkbox.addClass('as-has-minus');\n    } else {\n      this.$checkbox.checked = false;\n      this.$checkbox.removeClass('as-has-minus');\n    }\n  },\n  get: function get() {\n    if (this.$checkbox.checked) {\n      return 'all';\n    } else {\n      if (this.$checkbox.hasClass('as-has-minus')) {\n        return 'child';\n      } else {\n        return 'none';\n      }\n    }\n  }\n};\nCTIPropHandlers.hasLeaf = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-has-leaf');\n    } else {\n      this.removeClass('as-has-leaf');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-has-leaf');\n  }\n};\nCTIPropHandlers.noSelect = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-no-select');\n    } else {\n      this.removeClass('as-no-select');\n    }\n\n    this.$checkbox.disabled = !!value;\n  },\n  get: function get() {\n    return this.hasClass('as-no-select');\n  }\n};\nvar _default = CTIPropHandlers;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/checktreebox/CTIPropHandlers.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/checktreebox/MCTBItemHolder.js":
/*!********************************************************************!*\
  !*** ./node_modules/absol-acomp/js/checktreebox/MCTBItemHolder.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _MCheckTreeItem = _interopRequireDefault(__webpack_require__(/*! ./MCheckTreeItem */ \"./node_modules/absol-acomp/js/checktreebox/MCheckTreeItem.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n *\r\n * @param {MCheckTreeBox} boxElt\r\n * @param {MCTBItemHolder|CTBModeNormal|CTBModeSearch}parent\r\n * @param data\r\n * @constructor\r\n */\nfunction MCTBItemHolder(boxElt, parent, data) {\n  var _this = this;\n\n  this.ref = null;\n  this.boxElt = boxElt;\n  this.$list = this.boxElt.$list;\n  this.data = data;\n  this.parent = parent;\n  this.level = parent ? parent.level + 1 : 0;\n  this._elt = null;\n  this.children = null;\n  this.hasIcon = !!data.icon;\n  this.hasDesc = !!data.desc;\n  this.status = 'none';\n  this.selected = 'none';\n  this.hasLeaf = data.isLeaf;\n  this.noSelect = data.noSelect;\n  this.hasNoSelect = this.noSelect;\n\n  if (data.items && data.items.map && data.items.length > 0) {\n    this.children = data.items.map(function (it) {\n      return new MCTBItemHolder(boxElt, _this, it);\n    });\n    this.hasIcon = this.hasIcon || this.children.some(function (child) {\n      return child.hasIcon;\n    });\n    this.hasDesc = this.hasDesc || this.children.some(function (child) {\n      return child.hasDesc;\n    });\n    this.hasLeaf = this.hasLeaf || this.children.some(function (child) {\n      return child.hasLeaf;\n    });\n    this.hasNoSelect = this.hasNoSelect || this.children.some(function (child) {\n      return child.hasNoSelect;\n    });\n    this.status = 'close';\n  }\n}\n\nMCTBItemHolder.prototype.getViewElements = function (ac) {\n  ac = ac || [];\n  ac.push(this.elt);\n\n  if (this.status === 'open' && this.children) {\n    this.children.forEach(function (child) {\n      return child.getViewElements(ac);\n    });\n  }\n\n  return ac;\n};\n\nObject.defineProperty(MCTBItemHolder.prototype, 'elt', {\n  get: function get() {\n    if (!this._elt) {\n      this._elt = (0, _ACore._)({\n        tag: this.boxElt.classes.ItemElement,\n        props: {\n          data: this.data,\n          level: this.level,\n          status: this.status,\n          selected: this.selected,\n          hasLeaf: this.hasLeaf,\n          noSelect: this.hasNoSelect\n        },\n        on: {\n          checkedchange: this.ev_checkedChange.bind(this),\n          statuschange: this.ev_statusChange.bind(this)\n        }\n      });\n    }\n\n    return this._elt;\n  }\n});\n\nMCTBItemHolder.prototype.ev_checkedChange = function () {\n  var selected = this._elt.selected;\n\n  if (this.ref) {\n    if (selected === 'all') {\n      this.ref.select(true);\n    } else {\n      this.ref.select(false);\n    }\n\n    this.getRoot().updateSelectedFromRef();\n  } else {\n    if (selected === 'all') {\n      this.select(true);\n    } else {\n      this.select(false);\n    }\n  }\n\n  this.boxElt.notifyChange();\n};\n\nMCTBItemHolder.prototype.ev_statusChange = function () {\n  if (this._elt.status === this.status) return;\n  var viewElements;\n\n  if (this.status === 'open') {\n    viewElements = this.getViewElements();\n    viewElements.shift();\n    viewElements.forEach(function (elt) {\n      elt.remove();\n    });\n    this.status = this._elt.status;\n  } else if (this.status === 'close') {\n    this.status = this._elt.status;\n    viewElements = this.getViewElements();\n    viewElements.shift();\n    (0, _utils.addElementAfter)(this.$list, viewElements, this._elt);\n  }\n};\n\nMCTBItemHolder.prototype.updateUp = function () {\n  var selected = {\n    child: 0,\n    all: 0,\n    none: 0\n    /*dont: 0*/\n\n  };\n  var childN = this.children.length;\n  this.children.reduce(function (ac, child) {\n    ac[child.selected]++;\n    return ac;\n  }, selected);\n\n  if (childN === selected.all) {\n    this.selected = 'all';\n  } else if (childN === selected.none) {\n    this.selected = \"none\";\n  } else {\n    this.selected = 'child';\n  }\n\n  if (this._elt) {\n    this._elt.selected = this.selected;\n  }\n\n  if (this.parent) this.parent.updateUp();\n};\n\nMCTBItemHolder.prototype.select = function (flag, isDownUpdate) {\n  var leafOnly = this.boxElt.leafOnly;\n  if (flag && leafOnly && !this.hasLeaf) return;\n  var selected = {\n    child: 0,\n    all: 0,\n    none: 0,\n    exclude: 0\n    /*dont: 0*/\n\n  };\n  var childN = 0;\n\n  if (this.children && this.children.length > 0) {\n    childN = this.children.length;\n    this.children.reduce(function (ac, child) {\n      child.select(flag, true);\n\n      if (leafOnly && !child.hasLeaf) {\n        ac.exclude++;\n      } else {\n        ac[child.selected]++;\n      }\n\n      return ac;\n    }, selected);\n\n    if (leafOnly) {\n      if (this.hasLeaf) {\n        if (childN === selected.all + selected.exclude) {\n          this.selected = 'all';\n        } else if (selected.all + selected.child > 0) {\n          this.selected = 'child';\n        } else {\n          this.selected = 'none';\n        }\n      } else {\n        this.selected = \"none\";\n      }\n    } else {\n      if (childN === selected.all) {\n        this.selected = 'all';\n      } else if (childN === selected.none) {\n        this.selected = \"none\";\n      } else {\n        this.selected = 'child';\n      }\n    }\n  } else {\n    if (flag && (!leafOnly || this.hasLeaf)) {\n      this.selected = 'all';\n    } else {\n      this.selected = 'none';\n    }\n  }\n\n  if (this._elt) {\n    this._elt.selected = this.selected;\n  }\n\n  if (!isDownUpdate && this.parent) {\n    this.parent.updateUp();\n  }\n};\n\nMCTBItemHolder.prototype.getRoot = function () {\n  var c = this;\n\n  while (c.parent) {\n    c = c.parent;\n  }\n\n  return c;\n};\n\nvar _default = MCTBItemHolder;\n/*********************************** ADAPT OLD VERSION ***************************************************************/\n\nexports[\"default\"] = _default;\nObject.defineProperty(MCTBItemHolder.prototype, 'item', {\n  get: function get() {\n    return this.data;\n  }\n});\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/checktreebox/MCTBItemHolder.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/checktreebox/MCTBItemListController.js":
/*!****************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/checktreebox/MCTBItemListController.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ListDictionary = _interopRequireDefault(__webpack_require__(/*! ../list/ListDictionary */ \"./node_modules/absol-acomp/js/list/ListDictionary.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _CTBModes = __webpack_require__(/*! ./CTBModes */ \"./node_modules/absol-acomp/js/checktreebox/CTBModes.js\");\n\nvar _search = _interopRequireWildcard(__webpack_require__(/*! ../list/search */ \"./node_modules/absol-acomp/js/list/search.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * not optimize\r\n * @param {MCheckTreeBox} elt\r\n * @constructor\r\n */\nfunction MCTBItemListController(elt) {\n  this.elt = elt;\n}\n\n_OOP[\"default\"].mixClass(MCTBItemListController, _ListDictionary[\"default\"]);\n\nMCTBItemListController.prototype.setItems = function (items) {\n  items = items || [];\n  if (!items.forEach || !items.map) items = [];\n  this.items = (0, _utils.copySelectionItemArray)(items, {\n    removeNoView: true\n  });\n  this.update();\n};\n\nMCTBItemListController.prototype.update = function () {\n  var mode = new this.elt.classes.ModeNormal(this.elt, this.items);\n  this.elt.modes.normal = mode;\n\n  if (mode.hasDesc) {\n    this.elt.$list.addClass('as-has-desc');\n  } else {\n    this.elt.$list.removeClass('as-has-desc');\n  }\n\n  if (mode.hasIcon) {\n    this.elt.$list.addClass('as-has-icon');\n  } else {\n    this.elt.$list.removeClass('as-has-icon');\n  }\n\n  this.elt.mode = mode;\n  mode.onStart();\n  this._searchItems = (0, _search.prepareSearchForList)((0, _utils.copySelectionItemArray)(this.items));\n  this._searchCache = {};\n};\n\nMCTBItemListController.prototype.getItems = function () {\n  return (0, _utils.copySelectionItemArray)(this.items);\n};\n\nMCTBItemListController.prototype.makeSearch = function (query) {\n  if (this._searchCache[query]) return this._searchCache[query].resetAndGet();\n  var searchItem = (0, _search[\"default\"])({\n    text: query\n  });\n  var minScore = Infinity;\n  var maxScore = -Infinity;\n\n  var scoredHolders = this._searchItems.map(function visit(item) {\n    var holder = {\n      item: item,\n      score: (0, _search.calcItemMatchScore)(searchItem, item),\n      childMaxScore: -Infinity\n    };\n    minScore = Math.min(minScore, holder.score);\n    maxScore = Math.max(maxScore, holder.score);\n\n    if (item.items && item.items.length > 0) {\n      holder.children = item.items.map(visit);\n      holder.childMaxScore = holder.children.reduce(function (ac, cr) {\n        return Math.max(ac, cr.score, cr.childMaxScore);\n      }, 0);\n    }\n\n    return holder;\n  });\n\n  var threshHold = maxScore - (maxScore - minScore) / 3;\n  var result = scoredHolders.reduce(function filterVisit(ac, cr) {\n    var subItems;\n\n    if (Math.max(cr.score, cr.childMaxScore) >= threshHold) {\n      ac.items.push(cr.item);\n\n      if (cr.children && cr.childMaxScore >= cr.score) {\n        ac.status[(0, _utils.keyStringOf)(cr.item.value)] = 'open';\n        subItems = cr.children.reduce(filterVisit, {\n          items: [],\n          status: ac.status\n        }).items;\n        cr.item.items = subItems;\n      } else {\n        if (cr.children && cr.children.length > 0) {\n          ac.status[(0, _utils.keyStringOf)(cr.item.value)] = 'open';\n        }\n      }\n    }\n\n    return ac;\n  }, {\n    items: [],\n    status: {}\n  });\n  var normalMode = this.elt.modes.normal;\n  result.mode = new this.elt.classes.ModeSearch(this.elt, result.items);\n\n  result.resetAndGet = function () {\n    this.mode.children && this.mode.children.forEach(function resetVisit(holder) {\n      var key = (0, _utils.keyStringOf)(holder.data.value);\n      holder.ref = normalMode.getHolderByValue(holder.data.value);\n\n      if (holder.status === 'open' && result.status[key] !== 'open') {\n        holder.status = 'close';\n\n        if (holder._elt) {\n          holder._elt.status = 'close';\n        }\n      } else if (holder.status === 'close' && result.status[key] === 'open') {\n        holder.status = 'open';\n\n        if (holder._elt) {\n          holder._elt.status = 'open';\n        }\n      }\n\n      if (holder.children) holder.children.forEach(resetVisit);\n    });\n    return this.mode;\n  };\n\n  this._searchCache[query] = result;\n  return result.resetAndGet();\n};\n\nvar _default = MCTBItemListController;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/checktreebox/MCTBItemListController.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/checktreebox/MCheckTreeBox.js":
/*!*******************************************************************!*\
  !*** ./node_modules/absol-acomp/js/checktreebox/MCheckTreeBox.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../../css/dropdownbox.css */ \"./node_modules/absol-acomp/css/dropdownbox.css\");\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _CTBPropHandlers = _interopRequireDefault(__webpack_require__(/*! ./CTBPropHandlers */ \"./node_modules/absol-acomp/js/checktreebox/CTBPropHandlers.js\"));\n\nvar _MCTBItemListController = _interopRequireDefault(__webpack_require__(/*! ./MCTBItemListController */ \"./node_modules/absol-acomp/js/checktreebox/MCTBItemListController.js\"));\n\nvar _Searcher = _interopRequireDefault(__webpack_require__(/*! ../Searcher */ \"./node_modules/absol-acomp/js/Searcher.js\"));\n\nvar _CTBModes = __webpack_require__(/*! ./CTBModes */ \"./node_modules/absol-acomp/js/checktreebox/CTBModes.js\");\n\nvar _LanguageSystem = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/LanguageSystem */ \"./node_modules/absol/src/HTML5/LanguageSystem.js\"));\n\nvar _EventEmitter = __webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\");\n\nvar _MCTBItemHolder = _interopRequireDefault(__webpack_require__(/*! ./MCTBItemHolder */ \"./node_modules/absol-acomp/js/checktreebox/MCTBItemHolder.js\"));\n\nvar _MCheckTreeItem = _interopRequireDefault(__webpack_require__(/*! ./MCheckTreeItem */ \"./node_modules/absol-acomp/js/checktreebox/MCheckTreeItem.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction MCheckTreeBox() {\n  this.$box = (0, _ACore.$)('.am-check-tree-box', this);\n  this.$body = (0, _ACore.$)('.am-check-tree-box-body', this);\n  this.$list = (0, _ACore.$)('.am-check-tree-box-list', this);\n  this.$chekAll = (0, _ACore.$)('.as-select-list-box-check-all', this).on('change', function () {\n    this.modes.normal.select(this.$chekAll.checked);\n    if (this.mode.updateSelectedFromRef) this.mode.updateSelectedFromRef();\n    this.notifyChange();\n  }.bind(this));\n  this.$searchInput = (0, _ACore.$)(_Searcher[\"default\"].tag, this).on('stoptyping', this.eventHandler.searchTextInputModify);\n  this.$cancelBtn = (0, _ACore.$)('.as-select-list-box-cancel-btn', this).on('click', function () {\n    this.emit('cancel', {\n      type: 'cancel',\n      target: this\n    }, this);\n  }.bind(this));\n  this.$closeBtn = (0, _ACore.$)('.as-select-list-box-close-btn', this);\n  this.$boxCloseBtn = (0, _ACore.$)('.am-dropdown-box-close-btn', this);\n  this.on('click', function (event) {\n    if (event.target === this || (0, _EventEmitter.hitElement)(this.$closeBtn, event) || (0, _EventEmitter.hitElement)(this.$boxCloseBtn, event)) {\n      this.emit('close', {\n        type: 'close',\n        target: this\n      }, this);\n    }\n  }.bind(this));\n  this.pendingValues = null;\n  this.modes = {\n    normal: new this.classes.ModeNormal(this, [])\n  };\n  /***\r\n   *\r\n   * @type {CTBModeNormal | CTBModeSearch}\r\n   */\n\n  this.mode = this.modes.normal;\n  this.itemListCtrl = new this.classes.ListController(this);\n}\n\nMCheckTreeBox.prototype.classes = {\n  ListController: _MCTBItemListController[\"default\"],\n  ModeSearch: _CTBModes.CTBModeSearch,\n  ModeNormal: _CTBModes.CTBModeNormal,\n  ItemHolder: _MCTBItemHolder[\"default\"],\n  ItemElement: _MCheckTreeItem[\"default\"]\n};\nMCheckTreeBox.tag = 'MCheckTreeBox'.toLowerCase();\n\nMCheckTreeBox.render = function () {\n  return (0, _ACore._)({\n    extendEvent: ['change', 'close', 'cancel'],\n    \"class\": ['am-modal', 'am-dropdown-box-modal'],\n    child: {\n      \"class\": ['am-check-tree-box', 'am-dropdown-box', 'as-dropdown-box-common-style'],\n      child: [{\n        \"class\": 'am-dropdown-box-header',\n        child: [{\n          tag: _Searcher[\"default\"].tag\n        }, {\n          tag: 'button',\n          \"class\": 'am-dropdown-box-close-btn',\n          child: 'span.mdi.mdi-close'\n        }]\n      }, {\n        \"class\": ['am-dropdown-box-body', 'am-check-tree-box-body'],\n        child: {\n          \"class\": 'am-check-tree-box-list'\n        }\n      }, {\n        \"class\": 'as-dropdown-box-footer',\n        child: [{\n          tag: 'checkbox',\n          \"class\": 'as-select-list-box-check-all',\n          props: {\n            checked: false,\n            text: _LanguageSystem[\"default\"].getText('txt_check_all') || _LanguageSystem[\"default\"].getText('txt_all') || 'Check All'\n          }\n        }, {\n          \"class\": 'as-dropdown-box-footer-right',\n          child: [{\n            tag: 'a',\n            \"class\": 'as-select-list-box-cancel-btn',\n            attr: {\n              \"data-ml-key\": 'txt_cancel'\n            }\n          }, {\n            tag: 'a',\n            \"class\": 'as-select-list-box-close-btn',\n            attr: {\n              \"data-ml-key\": 'txt_close'\n            }\n          }]\n        }]\n      }]\n    }\n  });\n};\n\nMCheckTreeBox.prototype.getHolderByValue = function (value) {\n  return this.modes.normal.getHolderByValue(value);\n};\n\nMCheckTreeBox.prototype.select = function (value, flag) {\n  var holder = this.modes.normal.getHolderByValue(value);\n\n  if (holder) {\n    holder.select(flag);\n\n    if (this.mode !== this.modes.normal) {\n      this.mode.updateSelectedFromRef();\n    }\n\n    return true;\n  }\n\n  return false;\n};\n\nMCheckTreeBox.prototype.getItemByValue = function (value) {\n  var holder = this.modes.normal.getHolderByValue(value);\n  if (holder) return holder.data;\n  return null;\n};\n\nMCheckTreeBox.prototype.focus = function () {\n  if (this.enableSearch) {\n    this.$searchInput.focus();\n  }\n};\n\nMCheckTreeBox.prototype.resetSearchState = function () {\n  this.$searchInput.value = '';\n  this.eventHandler.searchTextInputModify();\n};\n\nMCheckTreeBox.prototype.notifyChange = function () {\n  this.pendingValues = null;\n  this.emit('change', {\n    type: 'change',\n    target: this\n  }, this);\n};\n/***\r\n * @name eventHandler\r\n * @type {{}}\r\n * @memberOf MCheckTreeBox#\r\n */\n\n\nMCheckTreeBox.eventHandler = {};\n\nMCheckTreeBox.eventHandler.searchTextInputModify = function () {\n  var query = this.$searchInput.value.trim().replace(/\\s+/g, ' ');\n\n  if (query.length > 0) {\n    if (this.mode === this.modes.normal) {\n      this.mode.onStop();\n    }\n\n    this.mode.search = this.itemListCtrl.makeSearch(query);\n    this.mode = this.mode.search;\n    this.mode.onStart();\n  } else {\n    if (this.mode !== this.modes.normal) {\n      this.mode.onStop();\n      this.mode = this.modes.normal;\n      this.mode.onStart();\n    }\n  }\n};\n\nMCheckTreeBox.property = _CTBPropHandlers[\"default\"];\nvar _default = MCheckTreeBox;\n/*********************************** ADAPT OLD VERSION ***************************************************************/\n\nexports[\"default\"] = _default;\n\nMCheckTreeBox.prototype.findItemHoldersByValue = function (value) {\n  var holder = this.getHolderByValue(value);\n\n  if (holder) {\n    return [holder];\n  } else {\n    return [];\n  }\n};\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/checktreebox/MCheckTreeBox.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/checktreebox/MCheckTreeItem.js":
/*!********************************************************************!*\
  !*** ./node_modules/absol-acomp/js/checktreebox/MCheckTreeItem.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _CTIPropHandlers = _interopRequireDefault(__webpack_require__(/*! ./CTIPropHandlers */ \"./node_modules/absol-acomp/js/checktreebox/CTIPropHandlers.js\"));\n\nvar _EventEmitter = __webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\");\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction MCheckTreeItem() {\n  this._data = null;\n  this._status = 'none';\n  this.$text = (0, _ACore.$)('.am-check-tree-item-text', this).firstChild;\n  this.$desc = (0, _ACore.$)('.am-check-tree-item-desc', this).firstChild;\n  this.$iconCtn = (0, _ACore.$)('.am-check-tree-item-icon-ctn', this);\n  this.$checkbox = (0, _ACore.$)('checkboxinput', this).on('change', this.eventHandler.checkboxChange);\n  this.addEventListener('click', this.eventHandler.click);\n}\n\nMCheckTreeItem.tag = 'MCheckTreeItem'.toLowerCase();\n\nMCheckTreeItem.render = function () {\n  return (0, _ACore._)({\n    extendEvent: ['checkedchange', 'click', 'statuschange'],\n    \"class\": ['am-check-tree-item', 'am-dropdown-box-item'],\n    child: [{\n      \"class\": 'am-check-tree-item-toggle-ctn',\n      child: 'toggler-ico'\n    }, {\n      \"class\": 'am-check-tree-item-icon-ctn'\n    }, {\n      \"class\": 'am-check-tree-item-checkbox-ctn',\n      child: 'checkboxinput'\n    }, {\n      \"class\": 'am-check-tree-item-text',\n      child: {\n        text: ''\n      }\n    }, {\n      \"class\": 'am-check-tree-item-desc',\n      child: {\n        text: ''\n      }\n    }]\n  });\n};\n\nMCheckTreeItem.prototype._updateData = function () {\n  this.$text.data = this.text;\n  this.$desc.data = this.desc;\n  this.$iconCtn.clearChild();\n  this.$icon = null;\n  this.attr('data-key', (0, _utils.keyStringOf)(this.value));\n\n  if (this._data && this._data.icon) {\n    this.$icon = (0, _ACore._)(this._data.icon);\n\n    if (this.$icon.parentElement) {\n      this.$icon = this.$icon.cloneNode(true);\n    }\n\n    this.$iconCtn.addChild(this.$icon);\n    this.addClass('as-has-icon');\n  } else {\n    this.removeClass('as-has-icon');\n  }\n\n  if (this._data && this._data.isLeaf) {\n    this.addClass('as-is-leaf');\n  } else {\n    this.removeClass('as-is-leaf');\n  }\n};\n\nMCheckTreeItem.eventHandler = {};\n\nMCheckTreeItem.eventHandler.click = function (event) {\n  if ((0, _EventEmitter.hitElement)(this.$checkbox, event)) return;\n  var checkboxBound = this.$checkbox.getBoundingClientRect();\n  var canCheck = this.$checkbox.getComputedStyleValue('pointer-events') !== 'none' && !this.$checkbox.disabled && checkboxBound.width > 0;\n\n  if (this.status === 'none' && canCheck) {\n    this.$checkbox.checked = !this.$checkbox.checked;\n    this.$checkbox.notifyChange();\n  } else if (this.status !== 'none') {\n    if (!checkboxBound.width) {\n      checkboxBound = this.$iconCtn.getBoundingClientRect();\n    }\n\n    if (!checkboxBound.width) {\n      checkboxBound = {\n        left: this.getBoundingClientRect().left + parseFloat(this.$text.parentElement.getComputedStyleValue('padding-left').replace('px'))\n      };\n    }\n\n    if (event.clientX < checkboxBound.left || !canCheck) {\n      this.status = this.status === 'open' ? 'close' : 'open';\n      this.emit('statuschange', {\n        type: 'statuschange',\n        target: this\n      }, this);\n    } else if (canCheck) {\n      this.$checkbox.checked = !this.$checkbox.checked;\n      this.$checkbox.notifyChange();\n    }\n  }\n};\n\nMCheckTreeItem.eventHandler.checkboxChange = function () {\n  this.emit('checkedchange', {\n    type: 'checkedchange'\n  }, this);\n};\n\nMCheckTreeItem.property = _CTIPropHandlers[\"default\"];\n/***\r\n * @name data\r\n * @memberOf MCheckTreeItem#\r\n */\n\n/***\r\n * @name text\r\n * @type {string}\r\n * @memberOf MCheckTreeItem#\r\n */\n\n/***\r\n * @name desc\r\n * @type {string}\r\n * @memberOf MCheckTreeItem#\r\n */\n\n/***\r\n * @name value\r\n * @memberOf MCheckTreeItem#\r\n */\n\nvar _default = MCheckTreeItem;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/checktreebox/MCheckTreeItem.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/checktreeleafbox/CTLBModes.js":
/*!*******************************************************************!*\
  !*** ./node_modules/absol-acomp/js/checktreeleafbox/CTLBModes.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.CTLBModeNormal = CTLBModeNormal;\n\nvar _CTBModes = __webpack_require__(/*! ../checktreebox/CTBModes */ \"./node_modules/absol-acomp/js/checktreebox/CTBModes.js\");\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends CTBModeNormal\r\n * @param {MCheckTreeBox} elt\r\n * @param {[]} items\r\n * @constructor\r\n */\nfunction CTLBModeNormal(elt, items) {\n  _CTBModes.CTBModeNormal.apply(this, arguments);\n}\n\n_OOP[\"default\"].mixClass(CTLBModeNormal, _CTBModes.CTBModeNormal);\n\nCTLBModeNormal.prototype.getViewValues = function () {\n  var values = [];\n  this.children.forEach(function visit(node) {\n    if (node.selected === 'all' && node.data.isLeaf) {\n      values.push(node.data.value);\n    } else if (node.children) {\n      node.children.forEach(visit);\n    }\n  });\n  return values;\n};\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/checktreeleafbox/CTLBModes.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/checktreeleafbox/CTLBPropHandlers.js":
/*!**************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/checktreeleafbox/CTLBPropHandlers.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _CTBPropHandlers = _interopRequireDefault(__webpack_require__(/*! ../checktreebox/CTBPropHandlers */ \"./node_modules/absol-acomp/js/checktreebox/CTBPropHandlers.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar CTLBPropHandlers = Object.keys(_CTBPropHandlers[\"default\"]).reduce(function (ac, key) {\n  ac[key] = Object.assign({}, _CTBPropHandlers[\"default\"][key]);\n  return ac;\n}, {});\nCTLBPropHandlers.leafOnly = {\n  enumerable: true,\n  value: true\n};\nvar _default = CTLBPropHandlers;\n/***\r\n *\r\n * @type {boolean}\r\n * @name enableSearch\r\n * @memberOf MCheckTreeBox#\r\n */\n\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/checktreeleafbox/CTLBPropHandlers.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/checktreeleafbox/CTLIPropHandlers.js":
/*!**************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/checktreeleafbox/CTLIPropHandlers.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _CTIPropHandlers = _interopRequireDefault(__webpack_require__(/*! ../checktreebox/CTIPropHandlers */ \"./node_modules/absol-acomp/js/checktreebox/CTIPropHandlers.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar CTLIPropHandlers = Object.keys(_CTIPropHandlers[\"default\"]).reduce(function (ac, key) {\n  ac[key] = Object.assign({}, _CTIPropHandlers[\"default\"][key]);\n  return ac;\n}, {});\nvar _default = CTLIPropHandlers;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/checktreeleafbox/CTLIPropHandlers.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/checktreeleafbox/CheckTreeLeafItem.js":
/*!***************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/checktreeleafbox/CheckTreeLeafItem.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _CTLIPropHandlers = _interopRequireDefault(__webpack_require__(/*! ./CTLIPropHandlers */ \"./node_modules/absol-acomp/js/checktreeleafbox/CTLIPropHandlers.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _MCheckTreeItem = _interopRequireDefault(__webpack_require__(/*! ../checktreebox/MCheckTreeItem */ \"./node_modules/absol-acomp/js/checktreebox/MCheckTreeItem.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction CheckTreeLeafItem() {\n  this._data = null;\n  this._status = 'none';\n  this.$text = (0, _ACore.$)('.am-check-tree-item-text', this).firstChild;\n  this.$desc = (0, _ACore.$)('.am-check-tree-item-desc', this).firstChild;\n  this.$iconCtn = (0, _ACore.$)('.am-check-tree-item-icon-ctn', this);\n  this.$checkbox = (0, _ACore.$)('checkboxinput', this).on('change', this.eventHandler.checkboxChange);\n  this.addEventListener('click', this.eventHandler.click);\n}\n\n_OOP[\"default\"].mixClass(CheckTreeLeafItem, _MCheckTreeItem[\"default\"]);\n\nCheckTreeLeafItem.tag = 'CheckTreeLeafItem'.toLowerCase();\n\nCheckTreeLeafItem.render = function () {\n  return (0, _ACore._)({\n    extendEvent: ['checkedchange', 'click', 'statuschange'],\n    \"class\": ['am-check-tree-leaf-item', 'am-check-tree-item', 'am-dropdown-box-item'],\n    child: [{\n      \"class\": 'am-check-tree-item-toggle-ctn',\n      child: 'toggler-ico'\n    }, {\n      \"class\": 'am-check-tree-item-icon-ctn'\n    }, {\n      \"class\": 'am-check-tree-item-checkbox-ctn',\n      child: 'checkboxinput'\n    }, {\n      \"class\": 'am-check-tree-item-text',\n      child: {\n        text: ''\n      }\n    }, {\n      \"class\": 'am-check-tree-item-desc',\n      child: {\n        text: ''\n      }\n    }]\n  });\n};\n\nCheckTreeLeafItem.eventHandler = Object.assign({}, _MCheckTreeItem[\"default\"].eventHandler);\nCheckTreeLeafItem.property = _CTLIPropHandlers[\"default\"];\n/***\r\n * @name data\r\n * @memberOf CheckTreeLeafItem#\r\n */\n\n/***.\r\n * @name text\r\n * @type {string}\r\n * @memberOf CheckTreeLeafItem#\r\n */\n\n/***\r\n * @name desc\r\n * @type {string}\r\n * @memberOf CheckTreeLeafItem#\r\n */\n\n/***\r\n * @name value\r\n * @memberOf CheckTreeLeafItem#\r\n */\n\nvar _default = CheckTreeLeafItem;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/checktreeleafbox/CheckTreeLeafItem.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/checktreeleafbox/MCheckTreeLeafBox.js":
/*!***************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/checktreeleafbox/MCheckTreeLeafBox.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _MCheckTreeBox = _interopRequireDefault(__webpack_require__(/*! ../checktreebox/MCheckTreeBox */ \"./node_modules/absol-acomp/js/checktreebox/MCheckTreeBox.js\"));\n\nvar _CTLBPropHandlers = _interopRequireDefault(__webpack_require__(/*! ./CTLBPropHandlers */ \"./node_modules/absol-acomp/js/checktreeleafbox/CTLBPropHandlers.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _CheckTreeLeafItem = _interopRequireDefault(__webpack_require__(/*! ./CheckTreeLeafItem */ \"./node_modules/absol-acomp/js/checktreeleafbox/CheckTreeLeafItem.js\"));\n\nvar _CTLBModes = __webpack_require__(/*! ./CTLBModes */ \"./node_modules/absol-acomp/js/checktreeleafbox/CTLBModes.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends MCheckTreeBox\r\n * @constructor\r\n */\nfunction MCheckTreeLeafBox() {\n  _MCheckTreeBox[\"default\"].apply(this, arguments);\n\n  this.$box.addClass('as-check-tree-leaf-box');\n}\n\n_OOP[\"default\"].mixClass(MCheckTreeLeafBox, _MCheckTreeBox[\"default\"]);\n\nMCheckTreeLeafBox.tag = 'MCheckTreeLeafBox'.toLowerCase();\nMCheckTreeLeafBox.prototype.classes = Object.assign({}, _MCheckTreeBox[\"default\"].prototype.classes, {\n  ItemElement: _CheckTreeLeafItem[\"default\"],\n  ModeNormal: _CTLBModes.CTLBModeNormal\n});\n\nMCheckTreeLeafBox.render = function () {\n  return _MCheckTreeBox[\"default\"].render();\n};\n\nMCheckTreeLeafBox.property = _CTLBPropHandlers[\"default\"];\nMCheckTreeLeafBox.eventHandler = Object.assign({}, _MCheckTreeBox[\"default\"].eventHandler);\n\n_ACore[\"default\"].install(MCheckTreeLeafBox);\n\nvar _default = MCheckTreeLeafBox;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/checktreeleafbox/MCheckTreeLeafBox.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/ckeditor/CKInlineShortText.js":
/*!*******************************************************************!*\
  !*** ./node_modules/absol-acomp/js/ckeditor/CKInlineShortText.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _CKPlaceholder = _interopRequireDefault(__webpack_require__(/*! ./CKPlaceholder */ \"./node_modules/absol-acomp/js/ckeditor/CKPlaceholder.js\"));\n\nvar _Array = __webpack_require__(/*! absol/src/DataStructure/Array */ \"./node_modules/absol/src/DataStructure/Array.js\");\n\nvar _plugins = __webpack_require__(/*! ./plugins */ \"./node_modules/absol-acomp/js/ckeditor/plugins.js\");\n\nvar _Dom = _interopRequireWildcard(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _file = __webpack_require__(/*! absol/src/Converter/file */ \"./node_modules/absol/src/Converter/file.js\");\n\nvar _stringGenerate = __webpack_require__(/*! absol/src/String/stringGenerate */ \"./node_modules/absol/src/String/stringGenerate.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends CKPlaceholder\r\n * @constructor\r\n */\nfunction CKInlineShortText() {\n  _CKPlaceholder[\"default\"].call(this);\n\n  this.once('editorcreated', this.eventHandler.afterEditorCreated).on('paste', this.eventHandler.paste, true).once('editorready', this.eventHandler.afterEditorReady);\n}\n\n_OOP[\"default\"].mixClass(CKInlineShortText, _CKPlaceholder[\"default\"]);\n\nCKInlineShortText.tag = 'CKInlineShortText'.toLowerCase();\nCKInlineShortText.property = Object.assign({}, _CKPlaceholder[\"default\"].property);\nCKInlineShortText.eventHandler = Object.assign({}, _CKPlaceholder[\"default\"].eventHandler);\n\nCKInlineShortText.render = function () {\n  return (0, _ACore._)({\n    \"class\": 'as-ck-inline-short-text',\n    extendEvent: ['editorcreated', 'editorready', 'change', 'command'],\n    id: (0, _stringGenerate.randomIdent)(8),\n    attr: {\n      contenteditable: 'true'\n    }\n  });\n};\n\nCKInlineShortText.prototype.mode = 'inline';\n\nCKInlineShortText.prototype._makeInitConfig = function () {\n  var config = {\n    toolbar: [{\n      name: 'extension',\n      items: (0, _Array.arrayRemoveNone)(this._extensions.map(function (eName) {\n        if (_plugins.CKExtensionDict[eName] && _plugins.CKExtensionDict[eName].command) {\n          return _plugins.CKExtensionDict[eName].command;\n        }\n      }))\n    }],\n    keystrokes: [[13\n    /* Enter */\n    , 'blur'], [CKEDITOR.SHIFT + 13\n    /* Shift + Enter */\n    , 'blur']]\n  };\n  return config;\n};\n\nCKInlineShortText.property.extensions = Object.assign({}, _CKPlaceholder[\"default\"].property.extensions, {\n  set: function set(value) {\n    value = value || [];\n    value.push('simple_text');\n    value = (0, _Array.arrayUnique)(value);\n\n    _CKPlaceholder[\"default\"].property.extensions.set.call(this, value);\n\n    this._config = this._makeInitConfig();\n  }\n});\n\nCKInlineShortText.prototype._hookScroll = function () {\n  this.$scrollers = [];\n  var c = this.parentElement;\n\n  while (c) {\n    this.$scrollers.push(c);\n    c = c.parentElement;\n  }\n\n  this.$scrollers.push(document);\n  this.$scrollers.forEach(function (elt) {\n    elt.addEventListener('scroll', this.eventHandler.scroll);\n  }.bind(this));\n};\n\nCKInlineShortText.prototype._unhookScroll = function () {\n  this.$scrollers.forEach(function (elt) {\n    elt.removeEventListener('scroll', this.eventHandler.scroll);\n  }.bind(this));\n};\n\nCKInlineShortText.eventHandler.afterEditorCreated = function () {\n  this.editor.on('paste', function (evt) {\n    evt.cancel();\n  });\n};\n\nCKInlineShortText.eventHandler.afterEditorReady = function () {\n  this.$toolbarElt = this.$toolbarElt || (0, _ACore.$)('#cke_' + this.attr('id'));\n  this['removeToolbar'] = this.removeToolbar;\n\n  this._hookScroll();\n\n  setTimeout(this.eventHandler.tick, 5000);\n};\n\nCKInlineShortText.eventHandler.paste = function (event) {\n  var self = this;\n  var clipboardData = event.clipboardData || window.clipboardData;\n  /**Safari bug */\n\n  event.preventDefault();\n\n  if (clipboardData) {\n    if (clipboardData.items) {\n      var items = Array.prototype.slice.call(clipboardData.items);\n      var plainTextItems = items.filter(function (item) {\n        return item.type.indexOf('text/plain') >= 0;\n      });\n\n      if (plainTextItems.length > 0) {\n        var plainTextItem = plainTextItems[0]; //only one item\n\n        plainTextItem.getAsString(function (text) {\n          self.editor.insertHtml(self._implicit(text));\n        });\n      }\n    } else {\n      var text = event.clipboardData.getData('text/plain');\n\n      if (text) {\n        self.editor.insertHtml(self._implicit(text));\n      }\n    }\n  }\n};\n\nCKInlineShortText.eventHandler.tick = function () {\n  if (!this.isDescendantOf(document.body)) {\n    this._unhookScroll();\n\n    return;\n  }\n\n  setTimeout(this.eventHandler.tick, 5000);\n};\n/***\r\n * @this CKInlineShortText\r\n */\n\n\nCKInlineShortText.eventHandler.scroll = function () {\n  // If we don't have any active instance of CKEDITOR - return\n  if (!CKEDITOR.currentInstance) {\n    return;\n  }\n\n  if (CKEDITOR.currentInstance.element.$ !== this) return; // Save the elements we need to work with\n\n  if (!this.isDescendantOf(document.body)) {\n    this._unhookScroll();\n\n    return;\n  }\n\n  this.$toolbarElt = this.$toolbarElt || (0, _ACore.$)('#cke_' + this.attr('id'));\n  var toolbarElt = this.$toolbarElt;\n  if (!toolbarElt) return;\n  var bound = this.getBoundingClientRect();\n  var toolBound = toolbarElt.getBoundingClientRect();\n  var outbound = (0, _Dom.traceOutBoundingClientRect)(this);\n  var left = Math.max(0, bound.left);\n  var top = bound.top - toolBound.height;\n\n  if (outbound.top > bound.bottom || outbound.bottom < bound.top) {\n    top = -1000;\n  } else if (bound.top < toolBound.height) {\n    top = bound.bottom;\n  }\n\n  toolbarElt.addStyle({\n    top: top + 'px',\n    left: left + 'px'\n  });\n};\n\nCKInlineShortText.property.removeToolbar = {\n  set: function set(value) {\n    this._removeToolbar = !!value;\n\n    if (this.$toolbarElt) {\n      if (this._removeToolbar) {\n        this.$toolbarElt.addClass('as-hidden');\n      } else {\n        this.$toolbarElt.removeClass('as-hidden');\n      }\n    }\n  },\n  get: function get() {\n    return this._removeToolbar;\n  }\n};\n\n_ACore[\"default\"].install(CKInlineShortText);\n\nvar _default = CKInlineShortText;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/ckeditor/CKInlineShortText.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/ckeditor/CKPlaceholder.js":
/*!***************************************************************!*\
  !*** ./node_modules/absol-acomp/js/ckeditor/CKPlaceholder.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\n__webpack_require__(/*! ../../css/ckplaceholder.css */ \"./node_modules/absol-acomp/css/ckplaceholder.css\");\n\nvar _plugins = __webpack_require__(/*! ./plugins */ \"./node_modules/absol-acomp/js/ckeditor/plugins.js\");\n\nvar _CKStickyToolbarController = _interopRequireDefault(__webpack_require__(/*! ./CKStickyToolbarController */ \"./node_modules/absol-acomp/js/ckeditor/CKStickyToolbarController.js\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n_Dom[\"default\"].documentReady.then(function () {\n  setTimeout(_plugins.ckInit, 100);\n});\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\n\nfunction CKPlaceholder() {\n  var _this = this;\n\n  (0, _plugins.ckInit)();\n  this.$attachhook = (0, _ACore._)('attachhook').addTo(this);\n  this.$attachhook.once('attached', this.eventHandler.attached);\n  this._pendingData = '';\n  this.isReady = false;\n  this.editor = null;\n  this._extensions = [];\n  this._config = this._makeInitConfig();\n  this.afterReady = new Promise(function (rs) {\n    _this.on('editorready', rs);\n  });\n  this.stickyToolbarCtrl = null;\n  /***\r\n   * @type {{}}\r\n   * @name config\r\n   * @memberOf CKPlaceholder#\r\n   */\n\n  /***\r\n   * @type {string[]}\r\n   * @name extensions\r\n   * @memberOf CKPlaceholder#\r\n   */\n\n  /***\r\n   *\r\n   * @type {boolean}\r\n   */\n\n  this.stickyToolbar = true;\n}\n\nCKPlaceholder.tag = 'CKPlaceholder'.toLowerCase();\n\nCKPlaceholder.render = function () {\n  return (0, _ACore._)({\n    extendEvent: ['editorcreated', 'editorready', 'change', 'command', 'focus'],\n    \"class\": 'as-ck-placeholder'\n  });\n};\n\nCKPlaceholder.prototype.mode = 'replace';\n/**\r\n *\r\n * @param {string}data\r\n * @private\r\n * @returns {string}\r\n */\n\nCKPlaceholder.prototype._implicit = function (data) {\n  if (typeof data !== \"string\") data = '';\n  var self = this;\n  return this._extensions.reverse().reduce(function (ac, cr) {\n    var extension = _plugins.CKExtensionDict[cr];\n\n    if (extension.implicit) {\n      ac = extension.implicit(ac, self);\n    }\n\n    return ac;\n  }, data);\n};\n/**\r\n *\r\n * @param {string}data\r\n * @private\r\n * @returns {string}\r\n */\n\n\nCKPlaceholder.prototype._explicit = function (data) {\n  var self = this;\n  return this._extensions.reduce(function (ac, cr) {\n    var extension = _plugins.CKExtensionDict[cr];\n\n    if (extension && extension.explicit) {\n      ac = extension.explicit(ac, self);\n    }\n\n    return ac;\n  }, data);\n};\n/***\r\n * @returns {{}}\r\n * @protected\r\n */\n\n\nCKPlaceholder.prototype._makeInitConfig = function () {\n  return {};\n};\n\nCKPlaceholder.prototype.selectNext = function () {\n  var editor = this.editor;\n  if (!editor) return;\n  var ranges = editor.getSelection().getRanges(); // var startIndex = editor.element.getHtml().indexOf(findString);\n  // if (startIndex != -1)  {\n  //     ranges[0].setStart(element.getFirst(), startIndex);\n  //     ranges[0].setEnd(element.getFirst(), startIndex + findString.length);\n  //     sel.selectRanges([ranges[0]]);\n  // }\n};\n/***\r\n * @memberOf CKPlaceholder#\r\n * @type {{}}\r\n */\n\n\nCKPlaceholder.eventHandler = {};\n/***\r\n * @this CKPlaceholder\r\n */\n\nCKPlaceholder.eventHandler.attached = function () {\n  this.$attachhook.remove();\n  this.editor = this.mode === 'replace' ? CKEDITOR.replace(this, (0, _plugins.ckMakeDefaultConfig)(this.config, this.extensions, this)) : CKEDITOR.inline(this, (0, _plugins.ckMakeDefaultConfig)(this.config, this.extensions, this));\n  this.editor.placeHolderElt = this;\n  this.editor.on('instanceReady', this.eventHandler.instanceReady);\n  this.editor.on('change', this.eventHandler.change);\n\n  if (this.mode === 'replace') {\n    this.editor.on('focus', function (event) {\n      this.emit('focus', {\n        target: this,\n        type: 'focus',\n        originalEvent: event\n      });\n    }.bind(this));\n  }\n\n  this._extensions.forEach(function (name) {\n    var e = _plugins.CKExtensionDict[name];\n\n    if (e && e.extendMethods) {\n      Object.assign(this, e.extendMethods);\n    }\n  }.bind(this));\n\n  this.emit('editorcreated', {\n    type: 'editorcreated',\n    target: this,\n    editor: this.editor\n  }, this);\n};\n\nCKPlaceholder.eventHandler.instanceReady = function () {\n  this.isReady = true;\n\n  if (this._pendingData && this._pendingData.length > 0) {\n    this.editor.setData(this._implicit(this._pendingData));\n    this._pendingData = null;\n  }\n\n  this.emit('editorready', {\n    type: 'editorready',\n    target: this,\n    editor: this.editor\n  }, this);\n};\n\nCKPlaceholder.eventHandler.change = function () {\n  this.emit('change', {\n    type: 'change',\n    target: this,\n    editor: this.editor\n  }, this);\n};\n\nCKPlaceholder.property = {};\nCKPlaceholder.property.data = {\n  /***\r\n   * @this CKPlaceholder\r\n   * @param data\r\n   */\n  set: function set(data) {\n    if (typeof data !== \"string\") data = '';\n\n    if (this.isReady) {\n      this.editor.setData(this._implicit(data));\n    } else {\n      this._pendingData = data;\n    }\n  },\n\n  /***\r\n   * @this CKPlaceholder\r\n   * @returns {string}\r\n   */\n  get: function get() {\n    if (this.isReady) return this._explicit(this.editor.getData());\n    return this._pendingData;\n  }\n};\nCKPlaceholder.property.rawData = {\n  get: function get() {\n    if (this.editor) this.editor.getData();else return this._implicit(this._pendingData);\n  }\n};\nCKPlaceholder.property.config = {\n  set: function set(value) {\n    if (this.editor) {\n      throw new Error(\"Can not set config after the CKEditor created\");\n    }\n\n    this._config = Object.assign(this._makeInitConfig(), value);\n  },\n  get: function get() {\n    return this._config;\n  }\n};\nCKPlaceholder.property.extensions = {\n  set: function set(value) {\n    if (this.editor) {\n      throw new Error(\"Can not set extensions after the CKEditor created\");\n    }\n\n    value = value || [];\n    if (typeof value === \"string\") value = [value];\n    if (!(value instanceof Array)) value = [];\n    this._extensions = value.filter(function (c) {\n      return typeof c === \"string\" && c.length > 0 && _plugins.CKExtensionDict[c];\n    });\n    this._extensions = value;\n  },\n  get: function get() {\n    return this._extensions;\n  }\n};\nCKPlaceholder.property.stickyToolbar = {\n  set: function set(value) {\n    var _this2 = this;\n\n    if (value) {\n      this.addClass('as-has-sticky-toolbar');\n    } else {\n      return this.removeClass('as-has-sticky-toolbar');\n    }\n\n    this.afterReady.then(function () {\n      if (_this2.mode !== 'replace') return;\n\n      if (_this2.stickyToolbar) {\n        if (!_this2.stickyToolbarCtrl) {\n          _this2.stickyToolbarCtrl = new _CKStickyToolbarController[\"default\"](_this2);\n        }\n\n        _this2.stickyToolbarCtrl.start();\n      } else {\n        _this2.editor.container.$.classList.remove('as-has-sticky-toolbar');\n\n        if (_this2.stickyToolbarCtrl) _this2.stickyToolbarCtrl.stop();\n      }\n    });\n  },\n  get: function get() {\n    return this.hasClass('as-has-sticky-toolbar');\n  }\n};\n\n_ACore[\"default\"].install(CKPlaceholder);\n\nvar _default = CKPlaceholder;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/ckeditor/CKPlaceholder.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/ckeditor/CKStickyToolbarController.js":
/*!***************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/ckeditor/CKStickyToolbarController.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _Dom = __webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\");\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction CKStickyToolbarController(holderElt) {\n  this.editor = holderElt.editor;\n  this.$elt = this.editor.container.$;\n  this.activated = false;\n  this['onScroll'] = this.onScroll.bind(this);\n  this.trackedScroller = [];\n}\n\nCKStickyToolbarController.prototype.start = function () {\n  if (this.activated) return;\n  var c = this.$elt.parentElement;\n\n  while (c) {\n    c.addEventListener('scroll', this.onScroll);\n    c = c.parentElement;\n  }\n};\n\nCKStickyToolbarController.prototype.stop = function () {\n  if (!this.activated) return;\n\n  while (this.trackedScroller.length > 0) {\n    this.trackedScroller.pop().removeEventListener('scroll', this.onScroll);\n  }\n};\n\nCKStickyToolbarController.prototype.onScroll = function (event) {\n  if (!_AElement[\"default\"].prototype.isDescendantOf.call(this.$elt, document.body)) {\n    this.stop();\n    return;\n  }\n\n  this.$toolbar = this.$toolbar || (0, _ACore.$)('.cke_top', this.$elt);\n  if (!this.$toolbar) return;\n  var oBound = (0, _Dom.traceOutBoundingClientRect)(this.$elt.parentElement);\n  var bound = this.$elt.getBoundingClientRect();\n  var tBound = this.$toolbar.getBoundingClientRect();\n\n  if (bound.top < oBound.top && oBound.top + tBound.height + 30 < bound.bottom) {\n    this.$toolbar.addStyle('transform', 'translate(0, ' + (oBound.top - bound.top) + 'px)');\n  } else {\n    this.$toolbar.removeStyle('transform');\n  }\n};\n\nvar _default = CKStickyToolbarController;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/ckeditor/CKStickyToolbarController.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/ckeditor/DynamicLinkExtension.js":
/*!**********************************************************************!*\
  !*** ./node_modules/absol-acomp/js/ckeditor/DynamicLinkExtension.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar name = 'dynamic_link';\nvar command = 'insert_dynamic_link';\n\nfunction init(editor) {\n  editor.widgets.add(name, {\n    button: 'Create Dynamic Link',\n    template: '<a class=\"as-ck-widget-dynamic-link\" data-link-id=\"1234\" href=\"https://absol.cf\">absol.cf</a>',\n    allowedContent: 'a(!as-ck-widget-dynamic-link)',\n    requiredContent: 'a(as-ck-widget-dynamic-link)',\n    upcast: function upcast(element) {\n      return element.name === 'a' && element.hasClass('as-ck-widget-dynamic-link');\n    }\n  });\n  editor.ui.addButton(command, {\n    label: 'Insert Dynamic Link',\n    command: command\n  });\n  editor.addCommand(command, {\n    exec: function exec(editor) {\n      if (editor.placeHolderElt) {\n        editor.placeHolderElt.emit('command', {\n          command: command,\n          target: editor,\n          type: 'command'\n        });\n      }\n    }\n  });\n}\n\nvar parserDiv = (0, _ACore._)('div');\n\nfunction explicit(data, placeHolderElt) {\n  parserDiv.innerHTML = data;\n  (0, _ACore.$$)('.as-ck-widget-dynamic-link', parserDiv).forEach(function (elt) {});\n  return parserDiv.innerHTML;\n}\n\nfunction implicit(data, placeHolderElt) {\n  parserDiv.innerHTML = data;\n  (0, _ACore.$$)('.as-ck-widget-dynamic-link', parserDiv).forEach(function (elt) {\n    var id = elt.getAttribute('data-link-id');\n    var info = placeHolderElt.dynamicLinks && placeHolderElt.dynamicLinks[id];\n\n    if (info) {\n      elt.setAttribute('href', info.href);\n      elt.innerHTML = info.text || info.href;\n    }\n  });\n  return parserDiv.innerHTML;\n}\n\nvar _default = {\n  name: name,\n  command: command,\n  implicit: implicit,\n  explicit: explicit,\n  plugin: {\n    requires: 'widget',\n    init: init\n  },\n  extendMethods: {\n    /***\r\n     * @this CKPlaceholder\r\n     * @memberOf CKPlaceholder#\r\n     * @param {string} id\r\n     * @param {string=} href\r\n     * @param {string=} text\r\n     *\r\n     */\n    insertDynamicLink: function insertDynamicLink(id, href, text) {\n      var info = this.dynamicLinks && this.dynamicLinks[id] || {\n        href: '.',\n        text: 'undefined'\n      };\n\n      if (!href) {\n        href = info.href;\n      }\n\n      if (!text) {\n        text = info.text;\n      }\n\n      this.editor.insertHtml('<a class=\"as-ck-widget-dynamic-link\" data-link-id=\"' + id + '\" href=\"' + href + '\">' + text + '</a>');\n    },\n    getSelectedDynamicLink: function getSelectedDynamicLink() {\n      var sel = this.editor.getSelection();\n      if (!sel) return null;\n      var elt = sel.getSelectedElement();\n      if (!elt) return null;\n      if (!elt.hasClass('cke_widget_wrapper_as-ck-widget-dynamic-link')) return null;\n      return elt.$.firstChild && elt.$.firstChild.getAttribute('data-link-id') || null;\n    }\n  }\n};\n/***\r\n * @name dynamicLinks\r\n * @type {{}}\r\n * @memberOf CKPlaceholder#\r\n */\n\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/ckeditor/DynamicLinkExtension.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/ckeditor/ExpressionExtension.js":
/*!*********************************************************************!*\
  !*** ./node_modules/absol-acomp/js/ckeditor/ExpressionExtension.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _TemplateString = _interopRequireDefault(__webpack_require__(/*! absol/src/JSMaker/TemplateString */ \"./node_modules/absol/src/JSMaker/TemplateString.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar name = 'expression';\nvar command = 'insert_expression';\n\nfunction init(editor) {\n  editor.widgets.add(name, {\n    button: 'Create Expression',\n    template: '<span class=\"as-ck-widget-expression\">&#0123;&#0123; expression &#0125;&#0125;</span>',\n    allowedContent: 'span(!as-ck-widget-expression)',\n    requiredContent: 'span(as-ck-widget-expression)',\n    upcast: function upcast(element) {\n      return element.name === 'span' && element.hasClass('as-ck-widget-expression');\n    }\n  });\n  editor.ui.addButton(command, {\n    label: 'Insert expression',\n    command: command\n  });\n  editor.addCommand(command, {\n    exec: function exec(editor) {\n      if (editor.placeHolderElt) {\n        editor.placeHolderElt.emit('command', {\n          command: command,\n          target: editor,\n          type: 'command'\n        });\n      }\n    }\n  });\n}\n\nvar parserDiv = (0, _ACore._)('div');\n\nfunction explicit(data, placeHolderElt) {\n  parserDiv.innerHTML = data;\n  (0, _ACore.$$)('.as-ck-widget-expression', parserDiv).forEach(function (elt) {\n    var text = elt.innerHTML;\n    text.replace(/&#0123;/g, '{').replace(/&#0125;/g, '}');\n    elt.parentElement.replaceChild((0, _ACore._)({\n      text: text\n    }), elt);\n  });\n  return parserDiv.innerHTML;\n}\n\nfunction implicit(data, placeHolderElt) {\n  var template = _TemplateString[\"default\"].parse(data);\n\n  return template.parts.slice().map(function (part) {\n    if (part.type === 1) {\n      return '<span class=\"as-ck-widget-expression\">&#0123;&#0123; ' + part.data.trim() + ' &#0125;&#0125;</span>';\n    } else return part.data;\n  }).join('');\n}\n\nvar _default = {\n  name: name,\n  command: command,\n  implicit: implicit,\n  explicit: explicit,\n  plugin: {\n    requires: 'widget',\n    init: init\n  },\n  extendMethods: {\n    /***\r\n     * @this CKPlaceholder\r\n     * @memberOf CKPlaceholder#\r\n     * @param expression\r\n     *\r\n     */\n    insertExpression: function insertExpression(expression) {\n      this.editor.insertHtml('<span class=\"as-ck-widget-expression\">&#0123;&#0123; ' + expression.trim() + ' &#0125;&#0125;</span>');\n    },\n    getSelectedExpression: function getSelectedExpression() {\n      var sel = this.editor.getSelection();\n      if (!sel) return null;\n      var elt = sel.getSelectedElement();\n      if (!elt) return null;\n      if (!elt.hasClass('cke_widget_wrapper_as-ck-widget-expression')) return null;\n      var exp = elt.getText();\n      exp = exp.replace(/&#0123;|&#0125;|\\{|\\}/g, '').trim();\n      return exp;\n    }\n  }\n};\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/ckeditor/ExpressionExtension.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/ckeditor/ImageFileExtension.js":
/*!********************************************************************!*\
  !*** ./node_modules/absol-acomp/js/ckeditor/ImageFileExtension.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar name = 'image_mgn';\nvar command = 'image_mgn_dialog';\n\nfunction init(editor) {\n  editor.ui.addButton(command, {\n    label: 'Insert Image',\n    command: command\n  });\n  editor.addCommand(command, {\n    exec: function exec(editor) {\n      if (window.contentModule && window.contentModule.chooseFile) {\n        window.contentModule.chooseFile({\n          type: \"image_file\"\n        }).then(function (result) {\n          if (result instanceof Array) result = result[0];\n\n          if (result) {\n            editor.insertHtml('<img alt=\"' + (result.title || result.name) + '\" src=\"' + result.url + '\"  style=\"max-width: 100%; border-width: 1px; border-style: solid;\"/>');\n          }\n        }.bind(this));\n      }\n    }\n  });\n}\n\nfunction explicit(data, placeHolderElt) {\n  return data;\n}\n\nvar tokenRgx = /(\"([^\\\\\"]|(\\\\.))*\")|([a-zA-Z_$A-Z]([a-zA-Z_$A-Z0-9]*))/g;\n\nfunction implicit(data, placeHolderElt) {\n  return data;\n}\n\nvar _default = {\n  name: name,\n  command: command,\n  // implicit: implicit,\n  // explicit: explicit,\n  plugin: {\n    init: init\n  }\n};\n/***\r\n * @name variables\r\n * @type {{}}\r\n * @memberOf CKPlaceholder#\r\n */\n\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/ckeditor/ImageFileExtension.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/ckeditor/SimpleTextExtension.js":
/*!*********************************************************************!*\
  !*** ./node_modules/absol-acomp/js/ckeditor/SimpleTextExtension.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar name = 'simple_text';\nvar parserDiv = (0, _ACore._)('div');\n\nfunction explicit(data, placeHolderElt) {\n  parserDiv.innerHTML = data.replace(/&nbsp;/g, ' ');\n  return parserDiv.innerText;\n}\n\nfunction implicit(data, placeHolderElt) {\n  return data //.replace(/</g, '&lt;').replace(/</g, '&gt;').replace(/\"/g, '&quot;').replace(/&/g, '&amp;')\n  .replace(/[\\r\\n]/g, '');\n}\n\nvar _default = {\n  name: name,\n  implicit: implicit,\n  explicit: explicit\n};\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/ckeditor/SimpleTextExtension.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/ckeditor/VariableExtension.js":
/*!*******************************************************************!*\
  !*** ./node_modules/absol-acomp/js/ckeditor/VariableExtension.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _TemplateString = _interopRequireDefault(__webpack_require__(/*! absol/src/JSMaker/TemplateString */ \"./node_modules/absol/src/JSMaker/TemplateString.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar name = 'variable';\nvar command = 'insert_variable';\n\nfunction init(editor) {\n  editor.widgets.add(name, {\n    button: 'Create Variable',\n    template: '<span class=\"as-ck-widget-variable\" title=\"variable\">variable</span>',\n    allowedContent: 'span(!as-ck-widget-variable)',\n    requiredContent: 'span(as-ck-widget-variable)',\n    upcast: function upcast(element) {\n      return element.name === 'span' && element.hasClass('as-ck-widget-variable');\n    }\n  });\n  editor.ui.addButton(command, {\n    label: 'Insert Variable',\n    command: command\n  });\n  editor.addCommand(command, {\n    exec: function exec(editor) {\n      if (editor.placeHolderElt) {\n        editor.placeHolderElt.emit('command', {\n          command: command,\n          target: editor,\n          type: 'command'\n        });\n      }\n    }\n  });\n}\n\nvar parserDiv = (0, _ACore._)('div');\n\nfunction explicit(data, placeHolderElt) {\n  parserDiv.innerHTML = data;\n  (0, _ACore.$$)('.as-ck-widget-variable', parserDiv).forEach(function (elt) {\n    var text = elt.innerHTML;\n    elt.parentElement.replaceChild((0, _ACore._)({\n      text: text\n    }), elt);\n  });\n  return parserDiv.innerHTML;\n}\n\nvar tokenRgx = /(\"([^\\\\\"]|(\\\\.))*\")|([a-zA-Z_$A-Z]([a-zA-Z_$A-Z0-9]*))/g;\n\nfunction implicit(data, placeHolderElt) {\n  data = (data || '') + '';\n  data = data.replace(tokenRgx, function (full, isString, u1, u2, isIdent) {\n    if (isIdent && placeHolderElt.variables && placeHolderElt.variables[isIdent]) {\n      return placeHolderElt.makeVariableHtml(isIdent);\n    } else return full;\n  });\n  return data;\n}\n\nvar _default = {\n  name: name,\n  command: command,\n  implicit: implicit,\n  explicit: explicit,\n  plugin: {\n    requires: 'widget',\n    init: init\n  },\n  extendMethods: {\n    makeVariableHtml: function makeVariableHtml(variable, text) {\n      variable = variable.trim();\n\n      if (this.variables && this.variables[variable]) {\n        text = this.variables[variable].text;\n      }\n\n      text = text || variable;\n      return '<span class=\"as-ck-widget-variable\"  title=\"' + text + '\">' + variable.trim() + '</span>';\n    },\n\n    /***\r\n     * @this CKPlaceholder\r\n     * @memberOf CKPlaceholder#\r\n     * @param variable\r\n     *\r\n     */\n    insertVariable: function insertVariable(variable, text) {\n      this.editor.insertHtml(this.makeVariableHtml(variable, text));\n    },\n    getSelectedVariable: function getSelectedVariable() {\n      var sel = this.editor.getSelection();\n      if (!sel) return null;\n      var elt = sel.getSelectedElement();\n      if (!elt) return null;\n      if (!elt.hasClass('cke_widget_wrapper_as-ck-widget-variable')) return null;\n      var exp = elt.getText();\n      exp = exp.trim();\n      return exp;\n    }\n  }\n};\n/***\r\n * @name variables\r\n * @type {{}}\r\n * @memberOf CKPlaceholder#\r\n */\n\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/ckeditor/VariableExtension.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/ckeditor/VideoExtension.js":
/*!****************************************************************!*\
  !*** ./node_modules/absol-acomp/js/ckeditor/VideoExtension.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _VideoUrlDialog = __webpack_require__(/*! ../videourldialog/VideoUrlDialog */ \"./node_modules/absol-acomp/js/videourldialog/VideoUrlDialog.js\");\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _base = __webpack_require__(/*! absol/src/Converter/base64 */ \"./node_modules/absol/src/Converter/base64.js\");\n\nvar name = 'video';\nvar command = 'insert_video';\n\nfunction getInfoFromCKImage(elt) {\n  var initInfo = null;\n\n  if (elt.getAttribute('data-node-type') === 'video') {\n    initInfo = JSON.parse((0, _base.base64DecodeUnicode)(elt.getAttribute('data-info')));\n    initInfo.embedUrl = elt.getAttribute('data-embed-url');\n    initInfo.image = elt.getAttribute('src');\n    initInfo.image = elt.getAttribute('src');\n  }\n\n  return initInfo;\n}\n\nfunction init(editor) {\n  editor.ui.addButton(command, {\n    label: 'Insert Video',\n    command: command\n  });\n  editor.on('doubleclick', function (event) {\n    var info;\n\n    if (event.data && event.data.element) {\n      info = getInfoFromCKImage(event.data.element);\n\n      if (info) {\n        event.cancel();\n        editor.execCommand(command);\n      }\n    }\n  });\n  editor.addCommand(command, {\n    exec: function exec(editor) {\n      var initInfo;\n      var sel = editor.getSelection();\n      var elt;\n\n      if (sel) {\n        elt = sel.getSelectedElement();\n      }\n\n      if (elt) {\n        initInfo = getInfoFromCKImage(elt);\n      }\n\n      (0, _VideoUrlDialog.openVideUrlDialog)(initInfo).then(function (result) {\n        var savedInfo = Object.assign({}, result);\n        delete savedInfo.image;\n        delete savedInfo.embedUrl;\n\n        if (result) {\n          var html = \"<img src=\\\"\".concat(result.image, \"\\\" data-type=\\\"\").concat(result.type, \"\\\"                         onload=\\\"window.ckeditorVideoInit && window.ckeditorVideoInit(this)\\\"                         data-embed-url=\\\"\").concat(result.embedUrl, \"\\\"                         width=\\\"\").concat(result.displayWidth, \"px\\\"  height=\\\"\").concat(result.displayHeight, \"px\\\"                          data-node-type=\\\"video\\\"                           data-info=\\\"\").concat((0, _base.base64EncodeUnicode)(JSON.stringify(savedInfo)), \"\\\"\\n                          \\n                         >\");\n          editor.insertHtml(html);\n        }\n      });\n    }\n  });\n}\n\nwindow.ckeditorVideoInit = function (elt) {\n  (0, _ACore.$)(elt);\n  if (!elt.isDescendantOf(document.body)) return;\n  var newElt;\n  var type = elt.attr('data-type');\n\n  if (type.startsWith('video/')) {\n    newElt = (0, _ACore._)({\n      tag: 'video',\n      attr: {\n        crossorigin: \"anonymous\",\n        crossOrigin: \"anonymous\",\n        preload: 'auto',\n        src: elt.attr('data-embed-url'),\n        width: elt.attr('width'),\n        height: elt.attr('height'),\n        controls: true\n      }\n    });\n  } else {\n    newElt = (0, _ACore._)({\n      tag: 'iframe',\n      attr: {\n        src: elt.attr('data-embed-url'),\n        width: elt.attr('width'),\n        height: elt.attr('height')\n      }\n    });\n  }\n\n  elt.selfReplace(newElt);\n};\n\nvar _default = {\n  name: name,\n  command: command,\n  plugin: {\n    init: init\n  },\n  extendMethods: {}\n};\n/***\r\n * @name variables\r\n * @type {{}}\r\n * @memberOf CKPlaceholder#\r\n */\n\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/ckeditor/VideoExtension.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/ckeditor/plugins.js":
/*!*********************************************************!*\
  !*** ./node_modules/absol-acomp/js/ckeditor/plugins.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.CKStylesSetDefault = exports.CKExtensions = exports.CKExtensionDict = void 0;\nexports.ckAddDefaultStyleSet = ckAddDefaultStyleSet;\nexports.ckInit = ckInit;\nexports.ckMakeDefaultConfig = ckMakeDefaultConfig;\n\nvar _ckcontentstyleCss = _interopRequireDefault(__webpack_require__(/*! ./ckcontentstyle.css.tpl */ \"./node_modules/absol-acomp/js/ckeditor/ckcontentstyle.css.tpl\"));\n\nvar _file = __webpack_require__(/*! absol/src/Converter/file */ \"./node_modules/absol/src/Converter/file.js\");\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _Array = __webpack_require__(/*! absol/src/DataStructure/Array */ \"./node_modules/absol/src/DataStructure/Array.js\");\n\nvar _ExpressionExtension = _interopRequireDefault(__webpack_require__(/*! ./ExpressionExtension */ \"./node_modules/absol-acomp/js/ckeditor/ExpressionExtension.js\"));\n\nvar _SimpleTextExtension = _interopRequireDefault(__webpack_require__(/*! ./SimpleTextExtension */ \"./node_modules/absol-acomp/js/ckeditor/SimpleTextExtension.js\"));\n\nvar _VariableExtension = _interopRequireDefault(__webpack_require__(/*! ./VariableExtension */ \"./node_modules/absol-acomp/js/ckeditor/VariableExtension.js\"));\n\nvar _DynamicLinkExtension = _interopRequireDefault(__webpack_require__(/*! ./DynamicLinkExtension */ \"./node_modules/absol-acomp/js/ckeditor/DynamicLinkExtension.js\"));\n\nvar _ImageFileExtension = _interopRequireDefault(__webpack_require__(/*! ./ImageFileExtension */ \"./node_modules/absol-acomp/js/ckeditor/ImageFileExtension.js\"));\n\nvar _VideoExtension = _interopRequireDefault(__webpack_require__(/*! ./VideoExtension */ \"./node_modules/absol-acomp/js/ckeditor/VideoExtension.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar ckContentStyleUrl;\nvar ckPluginInitialized = false;\nvar CKExtensions = [_ExpressionExtension[\"default\"], _SimpleTextExtension[\"default\"], _VariableExtension[\"default\"], _DynamicLinkExtension[\"default\"], _ImageFileExtension[\"default\"], _VideoExtension[\"default\"]];\nexports.CKExtensions = CKExtensions;\nvar CKExtensionDict = CKExtensions.reduce(function (ac, cr) {\n  ac[cr.name] = cr;\n  return ac;\n}, {});\nexports.CKExtensionDict = CKExtensionDict;\nvar CKStylesSetDefault = [{\n  name: 'Notice',\n  element: 'p',\n  attributes: {\n    \"class\": 'as-ck-alert as-variant-notice'\n  }\n}, {\n  name: 'Warning',\n  element: 'p',\n  attributes: {\n    \"class\": 'as-ck-alert as-variant-warning'\n  }\n}, {\n  name: 'Tip',\n  element: 'p',\n  attributes: {\n    \"class\": 'as-ck-alert as-variant-info'\n  }\n}, {\n  name: 'Success',\n  element: 'p',\n  attributes: {\n    \"class\": 'as-ck-alert as-variant-success'\n  }\n}];\nexports.CKStylesSetDefault = CKStylesSetDefault;\n\nfunction ckInit() {\n  if (!window.CKEDITOR) return;\n  if (ckPluginInitialized) return;\n\n  var styleCode = _ckcontentstyleCss[\"default\"].replace(/\\$basePath/g, CKEDITOR.basePath);\n\n  ckContentStyleUrl = URL.createObjectURL((0, _file.stringToBlob)(styleCode, 'css'));\n  ckPluginInitialized = true;\n  document.head.appendChild((0, _ACore._)('<link rel=\"stylesheet\" href=\"' + ckContentStyleUrl + '\">'));\n  CKEDITOR.stylesSet.add('as_styles_set_default', CKStylesSetDefault);\n  CKExtensions.forEach(function (e) {\n    if (e.plugin) {\n      CKEDITOR.plugins.add(e.name, e.plugin);\n    }\n  });\n}\n\nfunction ckMakeDefaultConfig(config, extensions, holderElt) {\n  ckInit();\n  var userImageFileDialog = !!(window.contentModule && window.contentModule.chooseFile);\n  /*\r\n  * if (!this.attributes.directUpload && window.contentModule && window.contentModule.chooseFile) {\r\n      window.contentModule.chooseFile({ type: \"image_file\" }).then(function (result) {\r\n          if (result) {\r\n              this.attributes.value = result;\r\n          }\r\n      }.bind(this));\r\n  }\r\n  * */\n\n  config = config || {}; //disable special chars encode\n\n  config.entities = false;\n  config.stylesSet = ['as_styles_set_default'].concat((0, _Array.arrayUnique)((config.stylesSet || '').trim().split(/\\s*,\\s*/))).filter(function (c) {\n    return !!c;\n  }).join(',');\n  if (extensions) extensions.push('video');\n\n  if (extensions && extensions.indexOf(_VariableExtension[\"default\"].name) >= 0) {\n    config.title = false;\n  }\n\n  if (config.toolbar === 'SIMPLE') {\n    config.toolbar = [{\n      name: 'basicstyles',\n      items: ['Bold', 'Italic', 'Underline', 'TextColor', 'BGColor', 'NumberedList', 'BulletedList', 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock', userImageFileDialog ? 'image_mgn_dialog' : 'Image']\n    }, // { name: 'styles', items: ['Styles', 'Format', 'Font', 'FontSize'] },\n    {\n      name: \"extensions\",\n      items: extensions.map(function (eName) {\n        if (CKExtensionDict[eName] && CKExtensionDict[eName].command) {\n          return CKExtensionDict[eName].command;\n        }\n      }).filter(function (u) {\n        return !!u;\n      })\n    }, {\n      name: 'tools',\n      items: ['Maximize']\n    }];\n  } else if (!config.toolbar || config.toolbar === \"ADVANCED\") {\n    config.toolbar = [{\n      name: 'basicstyles',\n      items: ['Bold', 'Italic', 'Underline', 'Strike', 'Subscript', 'Superscript']\n    }, {\n      name: 'colors',\n      items: ['TextColor', 'BGColor']\n    }, {\n      name: \"format\",\n      items: ['CopyFormatting', 'RemoveFormat']\n    }, {\n      name: 'paragraph',\n      items: ['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', '-', 'Blockquote', 'CreateDiv', '-', 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock']\n    }, {\n      name: 'styles',\n      items: ['Styles', 'Format', 'Font', 'FontSize']\n    }, {\n      name: 'links',\n      items: ['Link', 'Unlink', 'Anchor']\n    }, {\n      name: 'insert',\n      items: [userImageFileDialog ? 'image_mgn_dialog' : 'Image', 'Table', 'HorizontalRule', 'Smiley', 'SpecialChar', 'PageBreak', 'Iframe']\n    }, {\n      name: 'tools',\n      items: ['Maximize', 'ShowBlocks']\n    }, {\n      name: 'editing',\n      items: ['Find', 'Replace']\n    }, {\n      name: \"extensions\",\n      items: extensions.map(function (eName) {\n        if (CKExtensionDict[eName] && CKExtensionDict[eName].command) {\n          return CKExtensionDict[eName].command;\n        }\n      }).filter(function (u) {\n        return !!u;\n      })\n    }, {\n      name: 'document',\n      items: ['Source']\n    }];\n  }\n\n  config.toolbar = config.toolbar.filter(function (i) {\n    return i.items && i.items.length > 0;\n  });\n  config.toolbar = [config.toolbar.reduce(function (ac, cr) {\n    // if (ac.items.length > 0)\n    //     ac.items.push('-');\n    var items = cr.items.filter(function (it) {\n      return it !== '-';\n    });\n    ac.items.push.apply(ac.items, items);\n    return ac;\n  }, {\n    name: 'nogroup',\n    items: []\n  })];\n\n  if (!config.height) {\n    config.height = '500px';\n  }\n\n  var contentsCss = [ckContentStyleUrl];\n\n  if (typeof config.contentsCss === \"string\") {\n    contentsCss.push(config.contentsCss);\n  } else if (config.contentsCss instanceof Array) {\n    contentsCss.push.apply(contentsCss, config.contentsCss);\n  }\n\n  var has = contentsCss.some(function (url) {\n    return url.indexOf('family=Material+Icons') >= 0;\n  });\n\n  if (!has) {\n    contentsCss.push('https://fonts.googleapis.com/icon?family=Material+Icons');\n  }\n\n  has = contentsCss.some(function (url) {\n    return url.indexOf(CKEDITOR.basePath + 'contents.css') >= 0;\n  });\n\n  if (!has) {\n    contentsCss.push(CKEDITOR.basePath + 'contents.css?time=' + Math.random());\n  }\n\n  config.contentsCss = contentsCss;\n  var extraPlugins = ['image_mgn'];\n\n  if (holderElt.stickyToolbar) {\n    extraPlugins.push('autogrow');\n    config.autoGrow_minHeight = 400;\n  }\n\n  if (typeof config.extraPlugins === 'string') {\n    extraPlugins.push.apply(extraPlugins, config.extraPlugins.trim().split(/\\s*,\\s*/));\n  } else if (extraPlugins instanceof Array) {\n    extraPlugins.push.apply(extraPlugins, config.extraPlugins);\n  }\n\n  extraPlugins = extraPlugins.filter(function (c) {\n    return typeof c === 'string' && !!c;\n  });\n  CKExtensions.forEach(function (e) {\n    if (extensions.indexOf(e.name) >= 0 && e.plugin) extraPlugins.push(e.name);\n  });\n  extraPlugins = (0, _Array.arrayUnique)(extraPlugins);\n  config.extraPlugins = extraPlugins.join(',');\n  config.allowedContent = true; //false: you must add button ui => bug\n\n  Object.assign(config, {//style\n    // htmlEncodeOutput: false,\n    // entities: false,\n    // basicEntities: false,\n    // // config.cloudServices_uploadUrl: 'DDFFE2739B83A73DDF16AB641ECA2',\n    // // config.cloudServices_tokenUrl: 'https://lab.daithangminh.vn/hr_system_settings/php/uploadMedia.php',\n    // extraPlugins: 'LinkDB, Note',\n    // filebrowserBrowseUrl: 'js/ckfinder/ckfinder.html',\n    // filebrowserImageBrowseUrl: 'js/ckfinder/ckfinder.html?type=Images',\n    // filebrowserFlashBrowseUrl: 'js/ckfinder/ckfinder.html?type=Flash',\n    // filebrowserUploadUrl: 'js/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files',\n    // filebrowserImageUploadUrl: 'js/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images',\n    // filebrowserFlashUploadUrl: 'js/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash'\n  });\n  return config;\n}\n\nfunction ckAddDefaultStyleSet(ckEditor) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/ckeditor/plugins.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/dom/install.js":
/*!****************************************************!*\
  !*** ./node_modules/absol-acomp/js/dom/install.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.publicCreators = exports[\"default\"] = void 0;\n\nvar _AutoCompleteInput = _interopRequireDefault(__webpack_require__(/*! ../AutoCompleteInput */ \"./node_modules/absol-acomp/js/AutoCompleteInput.js\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _BoardTable = _interopRequireDefault(__webpack_require__(/*! ../BoardTable */ \"./node_modules/absol-acomp/js/BoardTable.js\"));\n\nvar _Board = _interopRequireDefault(__webpack_require__(/*! ../Board */ \"./node_modules/absol-acomp/js/Board.js\"));\n\nvar _BScroller = _interopRequireDefault(__webpack_require__(/*! ../BScroller */ \"./node_modules/absol-acomp/js/BScroller.js\"));\n\nvar _ButtonArray = _interopRequireDefault(__webpack_require__(/*! ../ButtonArray */ \"./node_modules/absol-acomp/js/ButtonArray.js\"));\n\nvar _CalendarInput = _interopRequireWildcard(__webpack_require__(/*! ../CalendarInput */ \"./node_modules/absol-acomp/js/CalendarInput.js\"));\n\nvar _CheckBoxInput = _interopRequireDefault(__webpack_require__(/*! ../CheckBoxInput */ \"./node_modules/absol-acomp/js/CheckBoxInput.js\"));\n\nvar _CheckBox = _interopRequireDefault(__webpack_require__(/*! ../CheckBox */ \"./node_modules/absol-acomp/js/CheckBox.js\"));\n\nvar _ChromeCalendar = _interopRequireDefault(__webpack_require__(/*! ../ChromeCalendar */ \"./node_modules/absol-acomp/js/ChromeCalendar.js\"));\n\nvar _CircleSectionLabel = _interopRequireDefault(__webpack_require__(/*! ../CircleSectionLabel */ \"./node_modules/absol-acomp/js/CircleSectionLabel.js\"));\n\nvar _Scroller = __webpack_require__(/*! ../Scroller */ \"./node_modules/absol-acomp/js/Scroller.js\");\n\nvar _ContextMenu = _interopRequireDefault(__webpack_require__(/*! ../ContextMenu */ \"./node_modules/absol-acomp/js/ContextMenu.js\"));\n\nvar _Menu = __webpack_require__(/*! ../Menu */ \"./node_modules/absol-acomp/js/Menu.js\");\n\nvar _DateInput = _interopRequireDefault(__webpack_require__(/*! ../DateInput2 */ \"./node_modules/absol-acomp/js/DateInput2.js\"));\n\nvar _DraggableHStack = _interopRequireDefault(__webpack_require__(/*! ../DraggableHStack */ \"./node_modules/absol-acomp/js/DraggableHStack.js\"));\n\nvar _DraggableVStack = _interopRequireDefault(__webpack_require__(/*! ../DraggableVStack */ \"./node_modules/absol-acomp/js/DraggableVStack.js\"));\n\nvar _Hanger = _interopRequireDefault(__webpack_require__(/*! ../Hanger */ \"./node_modules/absol-acomp/js/Hanger.js\"));\n\nvar _DropPanel = _interopRequireDefault(__webpack_require__(/*! ../DropPanel */ \"./node_modules/absol-acomp/js/DropPanel.js\"));\n\nvar _DropPanelStack = _interopRequireDefault(__webpack_require__(/*! ../DropPanelStack */ \"./node_modules/absol-acomp/js/DropPanelStack.js\"));\n\nvar _EditableText = _interopRequireDefault(__webpack_require__(/*! ../EditableText */ \"./node_modules/absol-acomp/js/EditableText.js\"));\n\nvar _EmojiPicker = _interopRequireDefault(__webpack_require__(/*! ../EmojiPicker */ \"./node_modules/absol-acomp/js/EmojiPicker.js\"));\n\nvar _Sprite = _interopRequireDefault(__webpack_require__(/*! ../Sprite */ \"./node_modules/absol-acomp/js/Sprite.js\"));\n\nvar _ExpTree = _interopRequireWildcard(__webpack_require__(/*! ../ExpTree */ \"./node_modules/absol-acomp/js/ExpTree.js\"));\n\nvar _FlexiconButton = _interopRequireDefault(__webpack_require__(/*! ../FlexiconButton */ \"./node_modules/absol-acomp/js/FlexiconButton.js\"));\n\nvar _FlexiconInput = _interopRequireDefault(__webpack_require__(/*! ../FlexiconInput */ \"./node_modules/absol-acomp/js/FlexiconInput.js\"));\n\nvar _Follower = _interopRequireDefault(__webpack_require__(/*! ../Follower */ \"./node_modules/absol-acomp/js/Follower.js\"));\n\nvar _Frame = _interopRequireDefault(__webpack_require__(/*! ../Frame */ \"./node_modules/absol-acomp/js/Frame.js\"));\n\nvar _FrameView = _interopRequireDefault(__webpack_require__(/*! ../FrameView */ \"./node_modules/absol-acomp/js/FrameView.js\"));\n\nvar _TabFrame = _interopRequireDefault(__webpack_require__(/*! ../TabFrame */ \"./node_modules/absol-acomp/js/TabFrame.js\"));\n\nvar _TabView = _interopRequireDefault(__webpack_require__(/*! ../TabView */ \"./node_modules/absol-acomp/js/TabView.js\"));\n\nvar _SinglePage = _interopRequireDefault(__webpack_require__(/*! ../SinglePage */ \"./node_modules/absol-acomp/js/SinglePage.js\"));\n\nvar _HexaSectionLabel = _interopRequireDefault(__webpack_require__(/*! ../HexaSectionLabel */ \"./node_modules/absol-acomp/js/HexaSectionLabel.js\"));\n\nvar _VRuler = _interopRequireDefault(__webpack_require__(/*! ../VRuler */ \"./node_modules/absol-acomp/js/VRuler.js\"));\n\nvar _HRuler = _interopRequireDefault(__webpack_require__(/*! ../HRuler */ \"./node_modules/absol-acomp/js/HRuler.js\"));\n\nvar _IconSprite = _interopRequireDefault(__webpack_require__(/*! ../IconSprite */ \"./node_modules/absol-acomp/js/IconSprite.js\"));\n\nvar _LinearColorBar = _interopRequireDefault(__webpack_require__(/*! ../LinearColorBar */ \"./node_modules/absol-acomp/js/LinearColorBar.js\"));\n\nvar _MediaInput = _interopRequireDefault(__webpack_require__(/*! ../MediaInput */ \"./node_modules/absol-acomp/js/MediaInput.js\"));\n\nvar _MessageInput = _interopRequireWildcard(__webpack_require__(/*! ../messageinput/MessageInput */ \"./node_modules/absol-acomp/js/messageinput/MessageInput.js\"));\n\nvar _NumberInput = _interopRequireDefault(__webpack_require__(/*! ../numberinput/NumberInput */ \"./node_modules/absol-acomp/js/numberinput/NumberInput.js\"));\n\nvar _NumberSpanInput = _interopRequireDefault(__webpack_require__(/*! ../NumberSpanInput */ \"./node_modules/absol-acomp/js/NumberSpanInput.js\"));\n\nvar _OnsScreenWindow = _interopRequireDefault(__webpack_require__(/*! ../OnsScreenWindow */ \"./node_modules/absol-acomp/js/OnsScreenWindow.js\"));\n\nvar _PageSelector = _interopRequireDefault(__webpack_require__(/*! ../PageSelector */ \"./node_modules/absol-acomp/js/PageSelector.js\"));\n\nvar _PreInput = _interopRequireDefault(__webpack_require__(/*! ../PreInput */ \"./node_modules/absol-acomp/js/PreInput.js\"));\n\nvar _ProgressBar = _interopRequireDefault(__webpack_require__(/*! ../ProgressBar */ \"./node_modules/absol-acomp/js/ProgressBar.js\"));\n\nvar _QuickListButton = _interopRequireDefault(__webpack_require__(/*! ../QuickListButton */ \"./node_modules/absol-acomp/js/QuickListButton.js\"));\n\nvar _FollowerToggler = _interopRequireDefault(__webpack_require__(/*! ../FollowerToggler */ \"./node_modules/absol-acomp/js/FollowerToggler.js\"));\n\nvar _SelectList = _interopRequireDefault(__webpack_require__(/*! ../SelectList */ \"./node_modules/absol-acomp/js/SelectList.js\"));\n\nvar _QuickMenu = _interopRequireDefault(__webpack_require__(/*! ../QuickMenu */ \"./node_modules/absol-acomp/js/QuickMenu.js\"));\n\nvar _QuickPath = _interopRequireDefault(__webpack_require__(/*! ../QuickPath */ \"./node_modules/absol-acomp/js/QuickPath.js\"));\n\nvar _RadioButton = _interopRequireDefault(__webpack_require__(/*! ../RadioButton */ \"./node_modules/absol-acomp/js/RadioButton.js\"));\n\nvar _Radio = _interopRequireDefault(__webpack_require__(/*! ../Radio */ \"./node_modules/absol-acomp/js/Radio.js\"));\n\nvar _RemoteSvg = _interopRequireDefault(__webpack_require__(/*! ../RemoteSvg */ \"./node_modules/absol-acomp/js/RemoteSvg.js\"));\n\nvar _ResizeBox = _interopRequireDefault(__webpack_require__(/*! ../ResizeBox */ \"./node_modules/absol-acomp/js/ResizeBox.js\"));\n\nvar _Searcher = _interopRequireDefault(__webpack_require__(/*! ../Searcher */ \"./node_modules/absol-acomp/js/Searcher.js\"));\n\nvar _SelectBox = _interopRequireDefault(__webpack_require__(/*! ../SelectBox */ \"./node_modules/absol-acomp/js/SelectBox.js\"));\n\nvar _SelectBoxItem = _interopRequireDefault(__webpack_require__(/*! ../SelectBoxItem */ \"./node_modules/absol-acomp/js/SelectBoxItem.js\"));\n\nvar _SelectTable = _interopRequireDefault(__webpack_require__(/*! ../SelectTable */ \"./node_modules/absol-acomp/js/SelectTable.js\"));\n\nvar _SelectTable2 = _interopRequireDefault(__webpack_require__(/*! ../SelectTable2 */ \"./node_modules/absol-acomp/js/SelectTable2.js\"));\n\nvar _SpanInput = _interopRequireDefault(__webpack_require__(/*! ../SpanInput */ \"./node_modules/absol-acomp/js/SpanInput.js\"));\n\nvar _StaticTabbar = _interopRequireDefault(__webpack_require__(/*! ../StaticTabbar */ \"./node_modules/absol-acomp/js/StaticTabbar.js\"));\n\nvar _Switch = _interopRequireDefault(__webpack_require__(/*! ../Switch */ \"./node_modules/absol-acomp/js/Switch.js\"));\n\nvar _CheckboxButton = _interopRequireDefault(__webpack_require__(/*! ../CheckboxButton */ \"./node_modules/absol-acomp/js/CheckboxButton.js\"));\n\nvar _TableScroller = _interopRequireDefault(__webpack_require__(/*! ../tablescroller/TableScroller */ \"./node_modules/absol-acomp/js/tablescroller/TableScroller.js\"));\n\nvar _TableVScroller = _interopRequireDefault(__webpack_require__(/*! ../TableVScroller */ \"./node_modules/absol-acomp/js/TableVScroller.js\"));\n\nvar _TextArea = _interopRequireDefault(__webpack_require__(/*! ../TextArea2 */ \"./node_modules/absol-acomp/js/TextArea2.js\"));\n\nvar _TextClipboard = _interopRequireDefault(__webpack_require__(/*! ../TextClipboard */ \"./node_modules/absol-acomp/js/TextClipboard.js\"));\n\nvar _TimeInput = _interopRequireDefault(__webpack_require__(/*! ../TimeInput */ \"./node_modules/absol-acomp/js/TimeInput.js\"));\n\nvar _TimePicker = _interopRequireDefault(__webpack_require__(/*! ../TimePicker */ \"./node_modules/absol-acomp/js/TimePicker.js\"));\n\nvar _Tooltip = _interopRequireDefault(__webpack_require__(/*! ../Tooltip */ \"./node_modules/absol-acomp/js/Tooltip.js\"));\n\nvar _TreeList = _interopRequireDefault(__webpack_require__(/*! ../TreeList */ \"./node_modules/absol-acomp/js/TreeList.js\"));\n\nvar _TreeListItem = _interopRequireDefault(__webpack_require__(/*! ../TreeListItem */ \"./node_modules/absol-acomp/js/TreeListItem.js\"));\n\nvar _SelectTreeMenu = _interopRequireDefault(__webpack_require__(/*! ../SelectTreeMenu */ \"./node_modules/absol-acomp/js/SelectTreeMenu.js\"));\n\nvar _WidthHeightSizer = _interopRequireDefault(__webpack_require__(/*! ../WidthHeightSizer */ \"./node_modules/absol-acomp/js/WidthHeightSizer.js\"));\n\nvar _Modal = _interopRequireDefault(__webpack_require__(/*! ../Modal */ \"./node_modules/absol-acomp/js/Modal.js\"));\n\nvar _TrackBar = _interopRequireDefault(__webpack_require__(/*! ../TrackBar */ \"./node_modules/absol-acomp/js/TrackBar.js\"));\n\nvar _TrackBarInput = _interopRequireDefault(__webpack_require__(/*! ../TrackBarInput */ \"./node_modules/absol-acomp/js/TrackBarInput.js\"));\n\nvar _SelectMenu = _interopRequireDefault(__webpack_require__(/*! ../SelectMenu2 */ \"./node_modules/absol-acomp/js/SelectMenu2.js\"));\n\nvar _ButtonRange = _interopRequireDefault(__webpack_require__(/*! ../ButtonRange */ \"./node_modules/absol-acomp/js/ButtonRange.js\"));\n\nvar _DropZone = _interopRequireDefault(__webpack_require__(/*! ../DropZone */ \"./node_modules/absol-acomp/js/DropZone.js\"));\n\nvar _RadioInput = _interopRequireDefault(__webpack_require__(/*! ../RadioInput */ \"./node_modules/absol-acomp/js/RadioInput.js\"));\n\nvar _OnScreenWidget = _interopRequireDefault(__webpack_require__(/*! ../OnScreenWidget */ \"./node_modules/absol-acomp/js/OnScreenWidget.js\"));\n\nvar _SelectListBox = _interopRequireDefault(__webpack_require__(/*! ../SelectListBox */ \"./node_modules/absol-acomp/js/SelectListBox.js\"));\n\nvar _SelectTreeBox = _interopRequireDefault(__webpack_require__(/*! ../SelectTreeBox */ \"./node_modules/absol-acomp/js/SelectTreeBox.js\"));\n\nvar _RibbonSplitButton = _interopRequireDefault(__webpack_require__(/*! ../RibbonSplitButton */ \"./node_modules/absol-acomp/js/RibbonSplitButton.js\"));\n\nvar _RibbonButton = _interopRequireDefault(__webpack_require__(/*! ../RibbonButton */ \"./node_modules/absol-acomp/js/RibbonButton.js\"));\n\nvar _TimeSelectInput = _interopRequireDefault(__webpack_require__(/*! ../TimeSelectInput */ \"./node_modules/absol-acomp/js/TimeSelectInput.js\"));\n\nvar _Snackbar = _interopRequireDefault(__webpack_require__(/*! ../Snackbar */ \"./node_modules/absol-acomp/js/Snackbar.js\"));\n\nvar _MultiSelectMenu = _interopRequireDefault(__webpack_require__(/*! ../MultiSelectMenu */ \"./node_modules/absol-acomp/js/MultiSelectMenu.js\"));\n\nvar _CountdownClock = _interopRequireDefault(__webpack_require__(/*! ../CountdownClock */ \"./node_modules/absol-acomp/js/CountdownClock.js\"));\n\nvar _Toast = _interopRequireDefault(__webpack_require__(/*! ../Toast */ \"./node_modules/absol-acomp/js/Toast.js\"));\n\nvar _Icons = __webpack_require__(/*! ../Icons */ \"./node_modules/absol-acomp/js/Icons.js\");\n\nvar _EmojiPickerTooltip = _interopRequireDefault(__webpack_require__(/*! ../EmojiPickerTooltip */ \"./node_modules/absol-acomp/js/EmojiPickerTooltip.js\"));\n\nvar _PageIndicator = _interopRequireDefault(__webpack_require__(/*! ../PageIndicator */ \"./node_modules/absol-acomp/js/PageIndicator.js\"));\n\nvar _EmojiCounter = _interopRequireDefault(__webpack_require__(/*! ../EmojiCounter */ \"./node_modules/absol-acomp/js/EmojiCounter.js\"));\n\nvar _EmojiCounterList = _interopRequireDefault(__webpack_require__(/*! ../EmojiCounterList */ \"./node_modules/absol-acomp/js/EmojiCounterList.js\"));\n\nvar _RotatedText = _interopRequireDefault(__webpack_require__(/*! ../RotatedText */ \"./node_modules/absol-acomp/js/RotatedText.js\"));\n\nvar _VerticalTreeDiagram = _interopRequireWildcard(__webpack_require__(/*! ../VerticalTreeDiagram */ \"./node_modules/absol-acomp/js/VerticalTreeDiagram.js\"));\n\nvar _TokenField = _interopRequireDefault(__webpack_require__(/*! ../TokenField */ \"./node_modules/absol-acomp/js/TokenField.js\"));\n\nvar _DateTimeInput = _interopRequireDefault(__webpack_require__(/*! ../DateTimeInput */ \"./node_modules/absol-acomp/js/DateTimeInput.js\"));\n\nvar _ChromeTimePicker = _interopRequireDefault(__webpack_require__(/*! ../ChromeTimePicker */ \"./node_modules/absol-acomp/js/ChromeTimePicker.js\"));\n\nvar _DVExpTree = _interopRequireDefault(__webpack_require__(/*! ../DVExpTree */ \"./node_modules/absol-acomp/js/DVExpTree.js\"));\n\nvar _CheckListItem = _interopRequireDefault(__webpack_require__(/*! ../CheckListItem */ \"./node_modules/absol-acomp/js/CheckListItem.js\"));\n\nvar _CheckListBox = _interopRequireDefault(__webpack_require__(/*! ../CheckListBox */ \"./node_modules/absol-acomp/js/CheckListBox.js\"));\n\nvar _MultiCheckMenu = _interopRequireDefault(__webpack_require__(/*! ../MultiCheckMenu */ \"./node_modules/absol-acomp/js/MultiCheckMenu.js\"));\n\nvar _ChromeTime24Picker = _interopRequireDefault(__webpack_require__(/*! ../ChromeTime24Picker */ \"./node_modules/absol-acomp/js/ChromeTime24Picker.js\"));\n\nvar _Time24Input = _interopRequireDefault(__webpack_require__(/*! ../Time24Input */ \"./node_modules/absol-acomp/js/Time24Input.js\"));\n\nvar _TimeRange24Input = _interopRequireDefault(__webpack_require__(/*! ../TimeRange24Input */ \"./node_modules/absol-acomp/js/TimeRange24Input.js\"));\n\nvar _CheckTreeItem = _interopRequireDefault(__webpack_require__(/*! ../CheckTreeItem */ \"./node_modules/absol-acomp/js/CheckTreeItem.js\"));\n\nvar _CheckTreeBox = _interopRequireDefault(__webpack_require__(/*! ../CheckTreeBox */ \"./node_modules/absol-acomp/js/CheckTreeBox.js\"));\n\nvar _MultiCheckTreeMenu = _interopRequireDefault(__webpack_require__(/*! ../MultiCheckTreeMenu */ \"./node_modules/absol-acomp/js/MultiCheckTreeMenu.js\"));\n\nvar _FileInputBox = _interopRequireDefault(__webpack_require__(/*! ../FileInputBox */ \"./node_modules/absol-acomp/js/FileInputBox.js\"));\n\nvar _CountdownText = _interopRequireDefault(__webpack_require__(/*! ../CountdownText */ \"./node_modules/absol-acomp/js/CountdownText.js\"));\n\nvar _YesNoQuestionDialog = _interopRequireDefault(__webpack_require__(/*! ../YesNoQuestionDialog */ \"./node_modules/absol-acomp/js/YesNoQuestionDialog.js\"));\n\nvar _LoadingCubeModal = _interopRequireDefault(__webpack_require__(/*! ../LoadingCubeModal */ \"./node_modules/absol-acomp/js/LoadingCubeModal.js\"));\n\nvar _SelectTreeLeafBox = _interopRequireDefault(__webpack_require__(/*! ../SelectTreeLeafBox */ \"./node_modules/absol-acomp/js/SelectTreeLeafBox.js\"));\n\nvar _SelectTreeLeafMenu = _interopRequireDefault(__webpack_require__(/*! ../SelectTreeLeafMenu */ \"./node_modules/absol-acomp/js/SelectTreeLeafMenu.js\"));\n\nvar _MultiCheckTreeLeafBox = _interopRequireDefault(__webpack_require__(/*! ../MultiCheckTreeLeafBox */ \"./node_modules/absol-acomp/js/MultiCheckTreeLeafBox.js\"));\n\nvar _MultiCheckTreeLeafMenu = _interopRequireDefault(__webpack_require__(/*! ../MultiCheckTreeLeafMenu */ \"./node_modules/absol-acomp/js/MultiCheckTreeLeafMenu.js\"));\n\nvar _FileListInput = _interopRequireDefault(__webpack_require__(/*! ../FileListInput */ \"./node_modules/absol-acomp/js/FileListInput.js\"));\n\nvar _DateInYearPicker = _interopRequireDefault(__webpack_require__(/*! ../DateInYearPicker */ \"./node_modules/absol-acomp/js/DateInYearPicker.js\"));\n\nvar _DateInYearInput = _interopRequireDefault(__webpack_require__(/*! ../DateInYearInput */ \"./node_modules/absol-acomp/js/DateInYearInput.js\"));\n\nvar _CheckTreeLeafOnlyBox = _interopRequireDefault(__webpack_require__(/*! ../CheckTreeLeafOnlyBox */ \"./node_modules/absol-acomp/js/CheckTreeLeafOnlyBox.js\"));\n\nvar _FileListItem = _interopRequireDefault(__webpack_require__(/*! ../FileListItem */ \"./node_modules/absol-acomp/js/FileListItem.js\"));\n\nvar _DualSelectBox = _interopRequireDefault(__webpack_require__(/*! ../DualSelectBox */ \"./node_modules/absol-acomp/js/DualSelectBox.js\"));\n\nvar _DualSelectMenu = _interopRequireDefault(__webpack_require__(/*! ../DualSelectMenu */ \"./node_modules/absol-acomp/js/DualSelectMenu.js\"));\n\nvar _TOCItem = _interopRequireDefault(__webpack_require__(/*! ../TOCItem */ \"./node_modules/absol-acomp/js/TOCItem.js\"));\n\nvar _TOCList = _interopRequireDefault(__webpack_require__(/*! ../TOCList */ \"./node_modules/absol-acomp/js/TOCList.js\"));\n\nvar _CKPlaceholder = _interopRequireDefault(__webpack_require__(/*! ../ckeditor/CKPlaceholder */ \"./node_modules/absol-acomp/js/ckeditor/CKPlaceholder.js\"));\n\nvar _CKInlineShortText = _interopRequireDefault(__webpack_require__(/*! ../ckeditor/CKInlineShortText */ \"./node_modules/absol-acomp/js/ckeditor/CKInlineShortText.js\"));\n\nvar _VerticalTimeline = _interopRequireDefault(__webpack_require__(/*! ../VerticalTimeline */ \"./node_modules/absol-acomp/js/VerticalTimeline.js\"));\n\nvar _LocationView = _interopRequireDefault(__webpack_require__(/*! ../LocationView */ \"./node_modules/absol-acomp/js/LocationView.js\"));\n\nvar _PlaceSearchAutoCompleteInput = _interopRequireDefault(__webpack_require__(/*! ../PlaceSearchAutoCompleteInput */ \"./node_modules/absol-acomp/js/PlaceSearchAutoCompleteInput.js\"));\n\nvar _LocationPicker = _interopRequireDefault(__webpack_require__(/*! ../LocationPicker */ \"./node_modules/absol-acomp/js/LocationPicker.js\"));\n\nvar _LocationInput = _interopRequireDefault(__webpack_require__(/*! ../LocationInput */ \"./node_modules/absol-acomp/js/LocationInput.js\"));\n\nvar _MKNavigator = _interopRequireDefault(__webpack_require__(/*! ../MKNavigator */ \"./node_modules/absol-acomp/js/MKNavigator.js\"));\n\nvar _ProcessLBar = _interopRequireDefault(__webpack_require__(/*! ../ProcessLBar */ \"./node_modules/absol-acomp/js/ProcessLBar.js\"));\n\nvar _KVCommentItem = _interopRequireDefault(__webpack_require__(/*! ../KVCommentItem */ \"./node_modules/absol-acomp/js/KVCommentItem.js\"));\n\nvar _DynamicTable = _interopRequireDefault(__webpack_require__(/*! ../dynamictable/DynamicTable */ \"./node_modules/absol-acomp/js/dynamictable/DynamicTable.js\"));\n\nvar _WindowBox = _interopRequireDefault(__webpack_require__(/*! ../WindowBox */ \"./node_modules/absol-acomp/js/WindowBox.js\"));\n\nvar _MessageDialog = _interopRequireDefault(__webpack_require__(/*! ../MessageDialog */ \"./node_modules/absol-acomp/js/MessageDialog.js\"));\n\nvar _ObjectMergeTool = _interopRequireDefault(__webpack_require__(/*! ../objectmergetool/ObjectMergeTool */ \"./node_modules/absol-acomp/js/objectmergetool/ObjectMergeTool.js\"));\n\nvar _TokenizeHyperInput = _interopRequireDefault(__webpack_require__(/*! ../tokenizeiput/TokenizeHyperInput */ \"./node_modules/absol-acomp/js/tokenizeiput/TokenizeHyperInput.js\"));\n\nvar _SelectListBox2 = _interopRequireDefault(__webpack_require__(/*! ../selectlistbox/SelectListBox */ \"./node_modules/absol-acomp/js/selectlistbox/SelectListBox.js\"));\n\nvar _MCheckTreeBox = _interopRequireDefault(__webpack_require__(/*! ../checktreebox/MCheckTreeBox */ \"./node_modules/absol-acomp/js/checktreebox/MCheckTreeBox.js\"));\n\nvar _PathMenu = _interopRequireDefault(__webpack_require__(/*! ../PathMenu */ \"./node_modules/absol-acomp/js/PathMenu.js\"));\n\nvar _MultiCheckTreeMenu2 = _interopRequireDefault(__webpack_require__(/*! ../multichecktreemenu/MultiCheckTreeMenu */ \"./node_modules/absol-acomp/js/multichecktreemenu/MultiCheckTreeMenu.js\"));\n\nvar _MultiCheckTreeLeafMenu2 = _interopRequireDefault(__webpack_require__(/*! ../multichecktreeleafmenu/MultiCheckTreeLeafMenu */ \"./node_modules/absol-acomp/js/multichecktreeleafmenu/MultiCheckTreeLeafMenu.js\"));\n\nvar _BrowserDetector = _interopRequireDefault(__webpack_require__(/*! absol/src/Detector/BrowserDetector */ \"./node_modules/absol/src/Detector/BrowserDetector.js\"));\n\nvar _MCheckTreeLeafBox = _interopRequireDefault(__webpack_require__(/*! ../checktreeleafbox/MCheckTreeLeafBox */ \"./node_modules/absol-acomp/js/checktreeleafbox/MCheckTreeLeafBox.js\"));\n\nvar _MSelectTreeLeafBox = _interopRequireDefault(__webpack_require__(/*! ../selecttreeleafbox/MSelectTreeLeafBox */ \"./node_modules/absol-acomp/js/selecttreeleafbox/MSelectTreeLeafBox.js\"));\n\nvar _SelectTreeLeafMenu2 = _interopRequireDefault(__webpack_require__(/*! ../selecttreeleafmenu/SelectTreeLeafMenu */ \"./node_modules/absol-acomp/js/selecttreeleafmenu/SelectTreeLeafMenu.js\"));\n\nvar _MDualSelectBox = _interopRequireDefault(__webpack_require__(/*! ../dualselectbox/MDualSelectBox */ \"./node_modules/absol-acomp/js/dualselectbox/MDualSelectBox.js\"));\n\nvar _DualSelectMenu2 = _interopRequireDefault(__webpack_require__(/*! ../dualselectmenu/DualSelectMenu */ \"./node_modules/absol-acomp/js/dualselectmenu/DualSelectMenu.js\"));\n\nvar _TreeTable = _interopRequireDefault(__webpack_require__(/*! ../treetable/TreeTable */ \"./node_modules/absol-acomp/js/treetable/TreeTable.js\"));\n\nvar _LinearColorTinyBar = _interopRequireDefault(__webpack_require__(/*! ../LinearColorTinyBar */ \"./node_modules/absol-acomp/js/LinearColorTinyBar.js\"));\n\nvar _Finder = _interopRequireDefault(__webpack_require__(/*! ../finder/Finder */ \"./node_modules/absol-acomp/js/finder/Finder.js\"));\n\nvar _TreeChart = _interopRequireDefault(__webpack_require__(/*! ../TreeChart */ \"./node_modules/absol-acomp/js/TreeChart.js\"));\n\nvar _CopyableIconTooltip = _interopRequireDefault(__webpack_require__(/*! ../CopyableIconTooltip */ \"./node_modules/absol-acomp/js/CopyableIconTooltip.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar publicCreators = [_Icons.MdiStoreMarkerOutline, _AutoCompleteInput[\"default\"], _BoardTable[\"default\"], _Board[\"default\"], _BScroller[\"default\"], _ButtonArray[\"default\"], _ButtonRange[\"default\"], _CalendarInput[\"default\"], _CalendarInput.OldCalendarInput, _CheckBoxInput[\"default\"], _CheckBox[\"default\"], _CheckboxButton[\"default\"], _CheckListItem[\"default\"], _CheckListBox[\"default\"], _CheckTreeLeafOnlyBox[\"default\"], _ChromeCalendar[\"default\"], _ChromeTimePicker[\"default\"], _ChromeTime24Picker[\"default\"], _CircleSectionLabel[\"default\"], _CountdownClock[\"default\"], _CountdownText[\"default\"], _DateInYearPicker[\"default\"], _DateInYearInput[\"default\"], _DateTimeInput[\"default\"], _DropZone[\"default\"], _EmojiPickerTooltip[\"default\"], _FileInputBox[\"default\"], _FileListItem[\"default\"], _FileListInput[\"default\"], _Finder[\"default\"], _Scroller.Scrollbar, _Scroller.VScrollbar, _Scroller.HScrollbar, _Scroller.VScroller, _Scroller.HScroller, _ContextMenu[\"default\"], _Menu.HMenu, _Menu.VMenuItem, _Menu.VMenu, _Menu.Dropright, _Menu.VMenuLine, _Menu.Dropdown, _Menu.HMenuItem, _Menu.VMenu, _Menu.VRootMenu, _Menu.MenuButton, _DateInput[\"default\"], _Hanger[\"default\"], _DraggableHStack[\"default\"], _DraggableVStack[\"default\"], _DropPanel[\"default\"], _DropPanelStack[\"default\"], _EditableText[\"default\"], _EmojiPicker[\"default\"], _EmojiCounter[\"default\"], _EmojiCounterList[\"default\"], _Sprite[\"default\"], _ExpTree.ExpNode, _ExpTree[\"default\"], _ExpTree.ExpGroup, _DVExpTree[\"default\"], _FlexiconButton[\"default\"], _FlexiconInput[\"default\"], _Follower[\"default\"], _FollowerToggler[\"default\"], _Frame[\"default\"], _FrameView[\"default\"], _TabFrame[\"default\"], _TabView[\"default\"], _SinglePage[\"default\"], _HexaSectionLabel[\"default\"], _VRuler[\"default\"], _HRuler[\"default\"], _IconSprite[\"default\"], _LinearColorBar[\"default\"], _LinearColorTinyBar[\"default\"], _MediaInput[\"default\"], _MessageInput[\"default\"], _MessageInput.MessageQuote, _Modal[\"default\"], _LoadingCubeModal[\"default\"], _NumberInput[\"default\"], _NumberSpanInput[\"default\"], _OnsScreenWindow[\"default\"], _OnScreenWidget[\"default\"], _PageIndicator[\"default\"], _PageSelector[\"default\"], _PreInput[\"default\"], _ProgressBar[\"default\"], _QuickListButton[\"default\"], _QuickMenu[\"default\"], _QuickPath[\"default\"], _PathMenu[\"default\"], _Radio[\"default\"], _RadioButton[\"default\"], _RadioInput[\"default\"], _RibbonSplitButton[\"default\"], _RibbonButton[\"default\"], _RotatedText[\"default\"], _SelectList[\"default\"], _RemoteSvg[\"default\"], _ResizeBox[\"default\"], _Searcher[\"default\"], _SelectListBox[\"default\"], _SelectTreeBox[\"default\"], _SelectMenu[\"default\"], _SelectBox[\"default\"], _MultiSelectMenu[\"default\"], _MultiCheckTreeLeafBox[\"default\"], _BrowserDetector[\"default\"].isMobile ? _MultiCheckTreeLeafMenu2[\"default\"] : _MultiCheckTreeLeafMenu[\"default\"], _SelectBoxItem[\"default\"], _DualSelectBox[\"default\"], _BrowserDetector[\"default\"].isMobile ? _DualSelectMenu2[\"default\"] : _DualSelectMenu[\"default\"], _SelectTable[\"default\"], _SelectTable2[\"default\"], _SelectTreeMenu[\"default\"], _SelectTreeLeafBox[\"default\"], _BrowserDetector[\"default\"].isMobile ? _SelectTreeLeafMenu2[\"default\"] : _SelectTreeLeafMenu[\"default\"], _SpanInput[\"default\"], _Snackbar[\"default\"], _StaticTabbar[\"default\"], _Switch[\"default\"], _TableScroller[\"default\"], _TableVScroller[\"default\"], _TreeTable[\"default\"], _TextArea[\"default\"], _TextClipboard[\"default\"], _TimeInput[\"default\"], _Time24Input[\"default\"], _TimeRange24Input[\"default\"], _TimeSelectInput[\"default\"], _TimePicker[\"default\"], _DateTimeInput[\"default\"], _Tooltip[\"default\"], _CopyableIconTooltip[\"default\"], _Toast[\"default\"], _TreeList[\"default\"], _TreeListItem[\"default\"], _TokenField[\"default\"], _WidthHeightSizer[\"default\"], _TrackBar[\"default\"], _TrackBarInput[\"default\"], _Icons.SpinnerIco, _VerticalTreeDiagram.VerticalTreeDiagramNode, _VerticalTreeDiagram[\"default\"], _MultiCheckMenu[\"default\"], _CheckTreeItem[\"default\"], _CheckTreeBox[\"default\"], _BrowserDetector[\"default\"].isMobile ? _MultiCheckTreeMenu2[\"default\"] : _MultiCheckTreeMenu[\"default\"], _MessageDialog[\"default\"], _YesNoQuestionDialog[\"default\"], _TOCItem[\"default\"], _TOCList[\"default\"], _CKPlaceholder[\"default\"], _CKInlineShortText[\"default\"], _VerticalTimeline[\"default\"], _WindowBox[\"default\"], _LocationView[\"default\"], _LocationPicker[\"default\"], _LocationInput[\"default\"], _PlaceSearchAutoCompleteInput[\"default\"], _MKNavigator[\"default\"], _ProcessLBar[\"default\"], _KVCommentItem[\"default\"], _DynamicTable[\"default\"], _ObjectMergeTool[\"default\"], _TokenizeHyperInput[\"default\"], _SelectListBox2[\"default\"], _MCheckTreeBox[\"default\"], _MCheckTreeLeafBox[\"default\"], _MSelectTreeLeafBox[\"default\"], _MDualSelectBox[\"default\"], _TreeChart[\"default\"]];\n/***\r\n *\r\n * @param {Dom} core\r\n */\n\nexports.publicCreators = publicCreators;\n\nfunction install(core) {\n  core.install(publicCreators);\n  core.install('checkboxbutton', _CheckBoxInput[\"default\"]);\n  core.install('selectbox', _MultiSelectMenu[\"default\"]);\n}\n\nvar _default = install;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/dom/install.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/dualselectbox/DSBModes.js":
/*!***************************************************************!*\
  !*** ./node_modules/absol-acomp/js/dualselectbox/DSBModes.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.DSBModeNormal = DSBModeNormal;\nexports.DSBModeSearch = DSBModeSearch;\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _noop = _interopRequireDefault(__webpack_require__(/*! absol/src/Code/noop */ \"./node_modules/absol/src/Code/noop.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction DSBModeNormal(elt, items) {\n  var _this = this;\n\n  this.items = items;\n  this.value = [undefined, undefined];\n  this.elt = elt;\n  this.$lists = this.elt.$lists;\n  this.$leftItems = items.map(function (item) {\n    return _this._makeLeftItem(item);\n  });\n  this.$leftItemDict = this.$leftItems.reduce(function (ac, cr) {\n    ac[(0, _utils.keyStringOf)(cr.itemData.value)] = cr;\n    return ac;\n  }, {});\n  this.$rightItemDict = {};\n  this.$rightItems = [];\n  this.rightListDict = {};\n\n  if (items.length > 0) {\n    this.viewRight(items[0].value);\n  }\n\n  this.$selectedLeft = null;\n  this.$selectedRight = null;\n}\n\nDSBModeNormal.prototype._makeLeftItem = function (item) {\n  var self = this;\n  var itemElt = (0, _ACore._)({\n    \"class\": 'absol-selectlist-item',\n    attr: {\n      'data-key': (0, _utils.keyStringOf)(item.value)\n    },\n    child: {\n      tag: 'span',\n      \"class\": 'absol-selectlist-item-text',\n      child: {\n        text: item.text\n      }\n    },\n    on: {\n      click: function click() {\n        self.selectLeft(item.value);\n        self.viewToSelected();\n        self.elt.notifyChange();\n      }\n    }\n  });\n  itemElt.itemData = item;\n  return itemElt;\n};\n\nDSBModeNormal.prototype._makeRightItem = function (leftItem, item) {\n  var self = this;\n  var itemElt = (0, _ACore._)({\n    \"class\": 'absol-selectlist-item',\n    attr: {\n      'data-key': (0, _utils.keyStringOf)(item.value)\n    },\n    child: {\n      tag: 'span',\n      \"class\": 'absol-selectlist-item-text',\n      child: {\n        text: item.text\n      }\n    },\n    on: {\n      click: function click() {\n        self.selectLeft(leftItem.value);\n        self.selectRight(item.value);\n        self.elt.notifyChange();\n      }\n    }\n  });\n  itemElt.itemData = item;\n  return itemElt;\n};\n\nDSBModeNormal.prototype.selectLeft = function (leftValue) {\n  var itemElt = this.$leftItemDict[(0, _utils.keyStringOf)(leftValue)];\n  if (!itemElt) return false;\n  if (this.$selectedLeft === itemElt) return true;\n\n  if (this.$selectedLeft) {\n    this.$selectedLeft.removeClass('as-selected');\n    this.$selectedLeft = null;\n  }\n\n  itemElt.addClass('as-selected');\n  this.$selectedLeft = itemElt;\n  this.value[0] = leftValue;\n  this.viewRight(leftValue);\n  var ok = this.selectRight(this.value[1]);\n  var sItems;\n\n  if (!ok) {\n    sItems = itemElt.itemData.items;\n    if (sItems && sItems.length > 0) this.selectRight(sItems[0].value);\n  }\n\n  return true;\n};\n\nDSBModeNormal.prototype.viewRight = function (leftValue) {\n  var _this2 = this;\n\n  var key = (0, _utils.keyStringOf)(leftValue);\n  var holder = this.rightListDict[key];\n  var items;\n  var leftItem;\n\n  if (!holder) {\n    leftItem = this.$leftItemDict[key] && this.$leftItemDict[key].itemData;\n    items = leftItem && leftItem.items;\n\n    if (items) {\n      holder = {};\n      holder.list = items.map(function (sItem) {\n        return _this2._makeRightItem(leftItem, sItem);\n      });\n      holder.dict = holder.list.reduce(function (ac, cr) {\n        ac[(0, _utils.keyStringOf)(cr.itemData.value)] = cr;\n        return ac;\n      }, {});\n      this.rightListDict[key] = holder;\n    }\n  }\n\n  if (holder) {\n    if (this.$rightItems !== holder.list) {\n      this.$rightItems = holder.list;\n      this.$rightItemDict = holder.dict;\n      this.$lists[1].clearChild().addChild(this.$rightItems);\n    }\n  } else {\n    this.$lists[1].clearChild();\n    this.$rightItems = null;\n    this.$rightItemDict = {};\n  }\n};\n\nDSBModeNormal.prototype.selectRight = function (value) {\n  var itemElt = this.$rightItemDict[(0, _utils.keyStringOf)(value)];\n  if (!itemElt) return false;\n  if (this.$selectedRight === itemElt) return true;\n\n  if (this.$selectedRight) {\n    this.$selectedRight.removeClass('as-selected');\n    this.$selectedRight = null;\n  }\n\n  itemElt.addClass('as-selected');\n  this.$selectedRight = itemElt;\n  this.value[1] = value;\n  return true;\n};\n\nDSBModeNormal.prototype.onStart = function () {\n  this.$lists[0].clearChild().addChild(this.$leftItems);\n  this.$lists[1].clearChild().addChild(this.$rightItems);\n  this.viewToSelected();\n};\n\nDSBModeNormal.prototype.onStop = _noop[\"default\"];\n\nDSBModeNormal.prototype.setValue = function (value, strictValue) {\n  if (!(value instanceof Array)) {\n    value = [undefined, undefined];\n  }\n\n  while (value.length < 2) {\n    value.push(undefined);\n  }\n\n  while (value.length > 2) {\n    value.pop();\n  }\n\n  var leftOK = this.selectLeft(value[0]);\n\n  if (!leftOK && strictValue) {\n    if (this.items.length > 0) {\n      leftOK = this.selectLeft(this.items[0].value);\n    }\n  }\n\n  if (leftOK) this.viewRight(this.value[0]);\n  var rightOK = this.selectRight(value[1]);\n\n  if (!rightOK && strictValue) {\n    if (this.$selectedLeft && this.$selectedLeft.itemData.items && this.$selectedLeft.itemData.items.length > 0) {\n      rightOK = this.selectRight(this.$selectedLeft.itemData.items[0].value);\n    }\n  }\n\n  this.viewToSelected();\n};\n\nDSBModeNormal.prototype.getValue = function (strictValue) {\n  var value = this.value.slice();\n  if (!strictValue) return value;\n\n  if (!this.$leftItemDict[(0, _utils.keyStringOf)(value[0])]) {\n    value[0] = this.items[0] && this.items[0].value;\n  }\n\n  var rightHolder = this.rightListDict[(0, _utils.keyStringOf)(value[0])];\n\n  if (rightHolder) {\n    if (!rightHolder.dict[(0, _utils.keyStringOf)(value[1])]) {\n      if (rightHolder.list.length > 0) {\n        value[1] = rightHolder.list[0].itemData.value;\n      }\n    }\n  }\n\n  return value;\n};\n\nDSBModeNormal.prototype.getSelectedItem = function () {\n  var value = this.value.slice();\n  var item = [null, null];\n\n  if (this.$leftItemDict[(0, _utils.keyStringOf)(value[0])]) {\n    item[0] = this.$leftItemDict[(0, _utils.keyStringOf)(value[0])].itemData;\n  }\n\n  var rightHolder = this.rightListDict[(0, _utils.keyStringOf)(value[0])];\n\n  if (rightHolder) {\n    if (rightHolder.dict[(0, _utils.keyStringOf)(value[1])]) {\n      item[1] = rightHolder.dict[(0, _utils.keyStringOf)(value[1])].itemData;\n    }\n  }\n\n  return item;\n};\n\nDSBModeNormal.prototype.viewToSelected = function () {\n  var _this3 = this;\n\n  setTimeout(function () {\n    if (_this3.$selectedLeft) {\n      (0, _utils.vScrollIntoView)(_this3.$selectedLeft);\n    }\n\n    if (_this3.$selectedRight) {\n      (0, _utils.vScrollIntoView)(_this3.$selectedRight);\n    }\n  }, 50);\n};\n/***\r\n * @extends DSBModeNormal\r\n * @param elt\r\n * @param items\r\n * @constructor\r\n */\n\n\nfunction DSBModeSearch(elt, items) {\n  DSBModeNormal.apply(this, arguments);\n}\n\n_OOP[\"default\"].mixClass(DSBModeSearch, DSBModeNormal);\n\ndelete DSBModeSearch.prototype.getValue;\ndelete DSBModeSearch.prototype.setValue;\n\nDSBModeSearch.prototype.onStart = function () {\n  DSBModeNormal.prototype.onStart.call(this);\n  this.$lists[0].scrollTop = 0;\n  this.$lists[1].scrollTop = 0;\n\n  if (this.$selectedLeft) {\n    this.$selectedLeft.removeClass('as-selected');\n    this.$selectedLeft = null;\n  }\n\n  if (this.$selectedRight) {\n    this.$selectedRight.removeClass('as-selected');\n    this.$selectedRight = null;\n  }\n};\n\nDSBModeSearch.prototype.updateSelectedFromRef = function () {\n  var normalMode = this.elt.modes.normal;\n\n  if (normalMode.$selectedLeft) {\n    this.selectLeft(normalMode.$selectedLeft.itemData.value, true);\n  }\n\n  if (normalMode.$selectedRight) {\n    this.selectRight(normalMode.$selectedRight.itemData.value, true);\n  }\n};\n\nDSBModeSearch.prototype.selectLeft = function (leftValue, viewOnly) {\n  if (!viewOnly) this.elt.modes.normal.selectLeft(leftValue);\n  var itemElt = this.$leftItemDict[(0, _utils.keyStringOf)(leftValue)];\n  if (this.$selectedLeft === itemElt) return true;\n\n  if (this.$selectedLeft) {\n    this.$selectedLeft.removeClass('as-selected');\n    this.$selectedLeft = null;\n  }\n\n  if (!itemElt) return false;\n  itemElt.addClass('as-selected');\n  this.$selectedLeft = itemElt;\n  this.viewRight(leftValue);\n  var sItems = itemElt.itemData.items;\n  if (sItems && sItems.length > 0 && !viewOnly) this.selectRight(sItems[0].value);\n  return true;\n};\n\nDSBModeSearch.prototype.selectRight = function (value, viewOnly) {\n  if (!viewOnly) this.elt.modes.normal.selectRight(value);\n  var itemElt = this.$rightItemDict[(0, _utils.keyStringOf)(value)];\n  if (this.$selectedRight === itemElt) return true;\n\n  if (this.$selectedRight) {\n    this.$selectedRight.removeClass('as-selected');\n    this.$selectedRight = null;\n  }\n\n  if (!itemElt) return false;\n  itemElt.addClass('as-selected');\n  this.$selectedRight = itemElt;\n  return true;\n};\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/dualselectbox/DSBModes.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/dualselectbox/DSBPropHandlers.js":
/*!**********************************************************************!*\
  !*** ./node_modules/absol-acomp/js/dualselectbox/DSBPropHandlers.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\nvar DSBPropHandlers = {};\nDSBPropHandlers.items = {\n  set: function set(items) {\n    this.itemListCtrl.setItems(items);\n\n    if ('savedValue' in this) {\n      this.modes.normal.setValue(this.savedValue, this.strictValue);\n    }\n  },\n  get: function get() {\n    return this.itemListCtrl.getItems();\n  }\n};\nDSBPropHandlers.value = {\n  set: function set(value) {\n    this.savedValue = value;\n    this.modes.normal.setValue(value, this.strictValue);\n  },\n  get: function get() {\n    return this.modes.normal.getValue(this.strictValue);\n  }\n};\nDSBPropHandlers.selectedItem = {\n  get: function get() {\n    return this.modes.normal.getSelectedItem();\n  }\n};\nDSBPropHandlers.strictValue = {\n  set: function set(value) {\n    if (value) {\n      this.$box.addClass('as-strict-value');\n    } else {\n      this.$box.removeClass('as-strict-value');\n    }\n  },\n  get: function get() {\n    return this.$box.hasClass('as-strict-value');\n  }\n};\nDSBPropHandlers.enableSearch = {\n  set: function set(value) {\n    if (value) {\n      this.$box.addClass('as-enable-search');\n    } else {\n      this.$box.removeClass('as-enable-search');\n    }\n  },\n  get: function get() {\n    return this.$box.hasClass('as-enable-search');\n  }\n};\nvar _default = DSBPropHandlers;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/dualselectbox/DSBPropHandlers.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/dualselectbox/MDSBItemListController.js":
/*!*****************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/dualselectbox/MDSBItemListController.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _search = _interopRequireWildcard(__webpack_require__(/*! ../list/search */ \"./node_modules/absol-acomp/js/list/search.js\"));\n\nvar _DSBModes = __webpack_require__(/*! ./DSBModes */ \"./node_modules/absol-acomp/js/dualselectbox/DSBModes.js\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction MDSBItemListController(elt) {\n  this.elt = elt;\n  this.items = [];\n  this._searchItems = [];\n  this._searchCache = {};\n}\n\nMDSBItemListController.prototype.setItems = function (items) {\n  this.items = (0, _utils.copySelectionItemArray)(items);\n  this._searchItems = (0, _search.prepareSearchForList)((0, _utils.copySelectionItemArray)(this.items));\n  this._searchCache = {};\n  var mode = new _DSBModes.DSBModeNormal(this.elt, this.items);\n  this.elt.modes.normal = mode;\n  this.elt.mode = mode;\n  mode.onStart();\n};\n\nMDSBItemListController.prototype.getItems = function () {\n  return (0, _utils.copySelectionItemArray)(this.items);\n};\n\nMDSBItemListController.prototype.makeSearch = function (query) {\n  if (this._searchCache[query]) return this._searchCache[query].resetAndGet();\n  var items = this._searchItems;\n  var queryItem = (0, _search[\"default\"])({\n    text: query\n  });\n  var maxScore = 0;\n  var holders = items.map(function (item) {\n    var h = {\n      item: item,\n      itemScore: (0, _search.calcItemMatchScore)(queryItem, item)\n    };\n    maxScore = Math.max(maxScore, h.itemScore);\n    var childMaxScore = 0;\n\n    if (item.items && item.items.length > 0) {\n      h.child = item.items.map(function (cItem) {\n        var cItemScore = (0, _search.calcItemMatchScore)(queryItem, cItem);\n        maxScore = Math.max(maxScore, cItemScore);\n        childMaxScore = Math.max(childMaxScore, cItemScore);\n        return {\n          item: cItem,\n          itemScore: cItemScore\n        };\n      });\n      h.childScore = childMaxScore;\n    }\n\n    return h;\n  });\n  holders.sort(function (a, b) {\n    return -Math.max(a.itemScore, a.childScore) + Math.max(b.itemScore, b.childScore);\n  });\n  var midScore = maxScore / 2;\n  holders = holders.filter(function (holder) {\n    return Math.max(holder.itemScore, holder.childScore) >= midScore;\n  });\n  var searchingResultItems = holders.map(function (holder) {\n    var oldItem = holder.item;\n    var item = {\n      text: oldItem.text,\n      value: oldItem.value\n    };\n    var childHolders;\n\n    if (holder.child) {\n      childHolders = holder.child.slice();\n      childHolders.sort(function (a, b) {\n        return -a.itemScore + b.itemScore;\n      });\n      item.items = childHolders.map(function (cHolder) {\n        return cHolder.item;\n      });\n      item.isSearchItem = true;\n    }\n\n    return item;\n  });\n  var mode = new _DSBModes.DSBModeSearch(this.elt, searchingResultItems);\n  this._searchCache[query] = {\n    mode: mode,\n    resetAndGet: function resetAndGet() {\n      return this.mode;\n    }\n  };\n  return mode;\n};\n\nvar _default = MDSBItemListController;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/dualselectbox/MDSBItemListController.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/dualselectbox/MDualSelectBox.js":
/*!*********************************************************************!*\
  !*** ./node_modules/absol-acomp/js/dualselectbox/MDualSelectBox.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Searcher = _interopRequireDefault(__webpack_require__(/*! ../Searcher */ \"./node_modules/absol-acomp/js/Searcher.js\"));\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _DSBPropHandlers = _interopRequireDefault(__webpack_require__(/*! ./DSBPropHandlers */ \"./node_modules/absol-acomp/js/dualselectbox/DSBPropHandlers.js\"));\n\nvar _MDSBItemListController = _interopRequireDefault(__webpack_require__(/*! ./MDSBItemListController */ \"./node_modules/absol-acomp/js/dualselectbox/MDSBItemListController.js\"));\n\nvar _DSBModes = __webpack_require__(/*! ./DSBModes */ \"./node_modules/absol-acomp/js/dualselectbox/DSBModes.js\");\n\n__webpack_require__(/*! ../../css/dualselectbox.css */ \"./node_modules/absol-acomp/css/dualselectbox.css\");\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _EventEmitter = __webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends {AElement}\r\n * @constructor\r\n */\nfunction MDualSelectBox() {\n  this.$box = (0, _ACore.$)('.am-dropdown-box', this);\n  this.$lists = (0, _ACore.$$)('.as-dual-select-box-list', this);\n  this.itemListCtrl = new _MDSBItemListController[\"default\"](this);\n  this.$searchInput = (0, _ACore.$)(_Searcher[\"default\"].tag, this).on('stoptyping', this.eventHandler.searchModify);\n  this.$closeBtn = (0, _ACore.$)('.am-dropdown-box-close-btn', this);\n  this.modes = {\n    normal: new _DSBModes.DSBModeNormal(this, [])\n  };\n  this.mode = this.modes.normal;\n  this.strictValue = true;\n  this.on('click', this.eventHandler.click);\n}\n\nMDualSelectBox.tag = 'MDualSelectBox'.toLowerCase();\n\nMDualSelectBox.render = function () {\n  return (0, _ACore._)({\n    extendEvent: ['change', 'close'],\n    \"class\": ['am-modal', 'am-dropdown-box-modal'],\n    child: {\n      \"class\": ['am-dual-select-box', 'am-dropdown-box', 'as-dropdown-box-common-style'],\n      child: [{\n        \"class\": 'am-dropdown-box-header',\n        child: [{\n          tag: _Searcher[\"default\"].tag\n        }, {\n          tag: 'button',\n          \"class\": 'am-dropdown-box-close-btn',\n          child: 'span.mdi.mdi-close'\n        }]\n      }, {\n        \"class\": ['am-dropdown-box-body', 'am-check-tree-box-body', 'as-dual-select-box-list-ctn'],\n        child: [{\n          \"class\": ['as-dual-select-box-list', 'absol-selectlist']\n        }, {\n          \"class\": 'as-dual-select-box-arrow-ctn',\n          child: 'span.mdi.mdi-menu-right'\n        }, {\n          \"class\": ['as-dual-select-box-list', 'absol-selectlist']\n        }]\n      }]\n    }\n  });\n};\n\nMDualSelectBox.prototype.viewToSelected = function () {\n  this.modes.normal.viewToSelected();\n};\n\nMDualSelectBox.prototype.notifyChange = function () {\n  var newValue = this.value;\n\n  if ((0, _utils.keyStringOf)(newValue) !== (0, _utils.keyStringOf)(this['savedValue'])) {\n    this.savedValue = newValue;\n    this.emit('change', {\n      type: 'change',\n      target: this\n    }, this);\n  }\n};\n\nMDualSelectBox.prototype.resetSearchState = function () {\n  this.$searchInput.value = '';\n  this.eventHandler.searchModify();\n};\n\nMDualSelectBox.property = _DSBPropHandlers[\"default\"];\nMDualSelectBox.eventHandler = {};\n\nMDualSelectBox.eventHandler.searchModify = function () {\n  var query = this.$searchInput.value.trim().replace(/\\s+/g, ' ');\n\n  if (query.length > 0) {\n    if (this.mode === this.modes.normal) {\n      this.mode.onStop();\n      this.$box.addClass('as-searching');\n    }\n\n    this.mode.search = this.itemListCtrl.makeSearch(query);\n    this.mode = this.mode.search;\n    this.mode.onStart();\n  } else {\n    if (this.mode !== this.modes.normal) {\n      this.mode.onStop();\n      this.mode = this.modes.normal;\n      this.mode.onStart();\n      this.$box.removeClass('as-searching');\n    }\n  }\n};\n\nMDualSelectBox.eventHandler.click = function (event) {\n  if (event.target === this || (0, _EventEmitter.hitElement)(this.$closeBtn, event)) {\n    this.emit('close', {\n      type: 'close',\n      target: this,\n      originalEvent: event\n    }, this);\n  }\n};\n\nvar _default = MDualSelectBox;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/dualselectbox/MDualSelectBox.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/dualselectmenu/DSMPropsHandlers.js":
/*!************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/dualselectmenu/DSMPropsHandlers.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _VarScope = _interopRequireDefault(__webpack_require__(/*! absol/src/AppPattern/VarScope */ \"./node_modules/absol/src/AppPattern/VarScope.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar DSMPropsHandlers = {};\nDSMPropsHandlers.isFocus = {\n  set: function set(value) {\n    if (this.disabled || this.readOnly) value = false;\n    value = !!value;\n    if (value === this.hasClass('as-focus')) return;\n\n    if (value) {\n      this.savedValue = this.$box.value;\n      this.addClass('as-focus');\n      this.boxCtrl.onFocus();\n    } else {\n      this.removeClass('as-focus');\n      this.boxCtrl.onBlur();\n      this.updateText();\n\n      if ((0, _utils.keyStringOf)(this.savedValue) !== (0, _utils.keyStringOf)(this.$box.value)) {\n        delete this.savedValue;\n        this.notifyChange();\n      }\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-focus');\n  }\n};\nDSMPropsHandlers.items = {\n  set: function set(items) {\n    this.$box.items = items;\n\n    if ('pendingValue' in this) {\n      this.$box.value = this.pendingValue;\n    }\n\n    this.updateText();\n  },\n  get: function get() {\n    return this.$box.items;\n  }\n};\nDSMPropsHandlers.value = {\n  set: function set(value) {\n    this.pendingValue = value;\n    this.$box.value = value;\n    this.updateText();\n  },\n  get: function get() {\n    if (!this.strictValue && 'pendingValue' in this) {\n      return this.pendingValue;\n    }\n\n    var value = this.$box.value;\n    var selectedItem = this.$box.selectedItem;\n    if (!selectedItem || !selectedItem[0] || !selectedItem[1]) return null;\n    return value;\n  }\n};\nDSMPropsHandlers.format = {\n  set: function set(value) {\n    this.attr('data-format', value);\n    this.updateText();\n  },\n  get: function get() {\n    return this.attr('data-format') || '$0, $1';\n  }\n};\nDSMPropsHandlers.strictValue = {\n  set: function set(value) {\n    this.$box.strictValue = value;\n\n    if (value) {\n      this.addClass('as-strict-value');\n    } else {\n      this.removeClass('as-strict-value');\n    }\n  },\n  get: function get() {\n    return this.$box.strictValue;\n  }\n};\nDSMPropsHandlers.disabled = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-disabled');\n    } else {\n      this.removeClass('as-disabled');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-disabled');\n  }\n};\nDSMPropsHandlers.readOnly = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-read-only');\n    } else {\n      this.removeClass('as-read-only');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-read-only');\n  }\n};\nvar _default = DSMPropsHandlers;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/dualselectmenu/DSMPropsHandlers.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/dualselectmenu/DualSelectMenu.js":
/*!**********************************************************************!*\
  !*** ./node_modules/absol-acomp/js/dualselectmenu/DualSelectMenu.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _MDualSelectBox = _interopRequireDefault(__webpack_require__(/*! ../dualselectbox/MDualSelectBox */ \"./node_modules/absol-acomp/js/dualselectbox/MDualSelectBox.js\"));\n\nvar _MDSMBoxController = _interopRequireDefault(__webpack_require__(/*! ./MDSMBoxController */ \"./node_modules/absol-acomp/js/dualselectmenu/MDSMBoxController.js\"));\n\nvar _DSMPropsHandlers = _interopRequireDefault(__webpack_require__(/*! ./DSMPropsHandlers */ \"./node_modules/absol-acomp/js/dualselectmenu/DSMPropsHandlers.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction DualSelectMenu() {\n  this.$box = (0, _ACore._)({\n    tag: _MDualSelectBox[\"default\"]\n  });\n  this.$item = (0, _ACore.$)('.absol-selectlist-item', this);\n\n  _OOP[\"default\"].drillProperty(this, this.$box, 'enableSearch');\n\n  this.boxCtrl = new _MDSMBoxController[\"default\"](this);\n  this.strictValue = true;\n}\n\nDualSelectMenu.tag = 'DualSelectMenu'.toLowerCase();\n\nDualSelectMenu.render = function () {\n  return (0, _ACore._)({\n    \"class\": ['am-dual-select-menu', 'absol-selectmenu', 'as-dual-select-menu'],\n    extendEvent: ['change'],\n    attr: {\n      tabindex: '1'\n    },\n    child: [{\n      \"class\": 'absol-selectmenu-holder-item',\n      child: '.absol-selectlist-item'\n    }, {\n      tag: 'button',\n      \"class\": 'absol-selectmenu-btn',\n      child: ['dropdown-ico']\n    }, 'attachhook']\n  });\n};\n\nDualSelectMenu.prototype.notifyChange = function () {\n  // console.log('change')\n  delete this['pendingValue'];\n  this.emit('change', {\n    type: 'change',\n    target: this\n  }, this);\n};\n\nDualSelectMenu.prototype.updateText = function () {\n  var selectedItem = this.$box.selectedItem;\n  var format = this.format;\n  var firstToken = '__';\n  var secToken = '__';\n\n  if (selectedItem[0]) {\n    firstToken = selectedItem[0].text + '';\n  }\n\n  if (selectedItem[1]) {\n    secToken = selectedItem[1].text + '';\n  }\n\n  var text = format.replace('$0', firstToken).replace('$1', secToken);\n  this.$item.clearChild().addChild((0, _ACore._)({\n    tag: 'span',\n    \"class\": 'absol-selectlist-item-text',\n    child: {\n      text: text\n    }\n  }));\n};\n\nDualSelectMenu.property = _DSMPropsHandlers[\"default\"];\nDualSelectMenu.eventHandler = {};\nvar _default = DualSelectMenu;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/dualselectmenu/DualSelectMenu.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/dualselectmenu/MDSMBoxController.js":
/*!*************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/dualselectmenu/MDSMBoxController.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nfunction MDSMBoxController(elt) {\n  this.elt = elt;\n  this.$box = elt.$box;\n\n  for (var key in this) {\n    if (key.startsWith('ev_')) {\n      this[key] = this[key].bind(this);\n    }\n  }\n\n  this.elt.on('click', this.ev_click);\n  this.$box.on('close', this.ev_close);\n}\n\nMDSMBoxController.prototype.ev_click = function () {\n  this.elt.isFocus = true;\n};\n\nMDSMBoxController.prototype.ev_close = function () {\n  this.elt.isFocus = false;\n};\n\nMDSMBoxController.prototype.onFocus = function () {\n  this.$box.addTo(document.body);\n  this.$box.viewToSelected();\n  this.elt.off('click', this.ev_click);\n};\n\nMDSMBoxController.prototype.onBlur = function () {\n  var _this = this;\n\n  this.$box.remove();\n  setTimeout(function () {\n    _this.elt.on('click', _this.ev_click);\n  }, 50);\n};\n\nvar _default = MDSMBoxController;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/dualselectmenu/MDSMBoxController.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/dynamictable/DTBody.js":
/*!************************************************************!*\
  !*** ./node_modules/absol-acomp/js/dynamictable/DTBody.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _DTBodyRow = _interopRequireDefault(__webpack_require__(/*! ./DTBodyRow */ \"./node_modules/absol-acomp/js/dynamictable/DTBodyRow.js\"));\n\nvar _DTRowDragController = _interopRequireDefault(__webpack_require__(/*! ./DTRowDragController */ \"./node_modules/absol-acomp/js/dynamictable/DTRowDragController.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _BrowserDetector = _interopRequireDefault(__webpack_require__(/*! absol/src/Detector/BrowserDetector */ \"./node_modules/absol/src/Detector/BrowserDetector.js\"));\n\nvar _Thread = _interopRequireDefault(__webpack_require__(/*! absol/src/Network/Thread */ \"./node_modules/absol/src/Network/Thread.js\"));\n\nvar _DTSearchFactor = _interopRequireDefault(__webpack_require__(/*! ./DTSearchFactor */ \"./node_modules/absol-acomp/js/dynamictable/DTSearchFactor.js\"));\n\nvar _stringGenerate = __webpack_require__(/*! absol/src/String/stringGenerate */ \"./node_modules/absol/src/String/stringGenerate.js\");\n\nvar _ResizeSystem = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/ResizeSystem */ \"./node_modules/absol/src/HTML5/ResizeSystem.js\"));\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _Rectangle = _interopRequireDefault(__webpack_require__(/*! absol/src/Math/Rectangle */ \"./node_modules/absol/src/Math/Rectangle.js\"));\n\nvar _Dom = __webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\");\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n *\r\n * @param {DTBody} body\r\n * @constructor\r\n */\nfunction SearchingMaster(body) {\n  this.body = body;\n  this.mode = body.modes.searching;\n  this.waitingCtrl = body.table.wrapper.waitingCtl;\n  this.initWorker();\n  this.id = (0, _stringGenerate.randomIdent)(10);\n  this.transferSession = Math.random() + '';\n  this.transferred = 0;\n  this.isTranferring = false;\n  this.share.instances[this.id] = this;\n  this.itemVersion = 0;\n  this.outputCache = {};\n  this.lastTaskIdx = 0;\n}\n\nSearchingMaster.prototype.destroy = function () {\n  this.share.thread.invoke('destroySlave', this.id);\n  this.share.instances[this.id] = null;\n  this.transferSession = \"DIE\";\n  delete this.share.instances[this.id];\n};\n\nSearchingMaster.prototype.transferFrom = function (offset) {\n  if (this.transferSession === \"DIE\") {\n    return;\n  }\n\n  this.outputCache = {};\n\n  if (offset < this.transferred) {\n    this.transferred = offset;\n    this.itemVersion++;\n  }\n\n  if (this.isTranferring) return;\n  var waitingCtrl = this.waitingCtrl;\n  var wTkn = waitingCtrl.begin();\n  var self = this;\n  var transferSession = Math.random() + '';\n  self.transferSession = transferSession;\n  self.isTranferring = true;\n  setTimeout(function tick() {\n    if (self.transferSession !== transferSession) {\n      waitingCtrl.end(wTkn);\n      return;\n    }\n\n    var i = self.transferred;\n    var rows = self.body.rows;\n    var n = self.body.rows.length;\n\n    if (i >= n) {\n      if (n === 0) {\n        self.share.thread.invoke('transferSearchItems', self.id, n, 0, 0, [], self.itemVersion);\n      }\n\n      self.isTranferring = false;\n      self.onFinishTransfer();\n      waitingCtrl.end(wTkn);\n      return;\n    }\n\n    self.share.benchmark = self.share.benchmark || _BrowserDetector[\"default\"].calcBenchmark();\n    var k = self.share.benchmark >> 2;\n    var items = [];\n    var item;\n    var start = i;\n\n    while (i < n && k--) {\n      item = {\n        text: rows[i].innerText,\n        value: i,\n        keys: rows[i].data.keys\n      };\n      items.push(item);\n      ++i;\n    }\n\n    var sync = self.share.thread.invoke('transferSearchItems', self.id, n, start, i, items, self.itemVersion);\n    self.transferred = i;\n    Promise.all([sync, new Promise(function (rs) {\n      setTimeout(rs, 5);\n    })]).then(tick);\n  }, 5);\n};\n\nSearchingMaster.prototype.onFinishTransfer = function () {// console.log('finish');\n};\n\nSearchingMaster.prototype.sendTask = function (query) {\n  if (this.transferSession === \"DIE\") {\n    return;\n  }\n\n  this.lastTaskIdx++;\n  var taskData = {\n    idx: this.lastTaskIdx,\n    query: query,\n    hash: (0, _utils.calcDTQueryHash)(query)\n  };\n\n  if (this.outputCache[taskData.hash]) {\n    setTimeout(this.onResult.bind(this, this.outputCache[taskData.hash], true), 5);\n  } else {\n    this.share.thread.invoke('transferTask', this.id, taskData);\n  }\n\n  return taskData;\n};\n\nSearchingMaster.prototype.onResult = function (response, dontCache) {\n  if (this.itemVersion !== response.itemVersion) return;\n\n  if (!dontCache) {\n    this.outputCache[response.hash] = response;\n  }\n\n  this.body.modes.searching.onResult(response);\n};\n\nSearchingMaster.prototype.share = {\n  thread: null,\n  benchmark: 0,\n  instances: {}\n};\n\nSearchingMaster.prototype.initWorker = function () {\n  if (!this.share.thread) {\n    this.share.thread = new _Thread[\"default\"]({\n      methods: {\n        init: _DTSearchFactor[\"default\"],\n        calcBenchmark: _BrowserDetector[\"default\"].calcBenchmark\n      },\n      extendCode: 'init(this);'\n    });\n    this.share.thread.on('alert', function (mess) {\n      alert(mess);\n    });\n    this.share.thread.on('searchEnd', function (id, response) {\n      this.share.instances[id] && this.share.instances[id].onResult(response);\n    }.bind(this));\n    setTimeout(function () {\n      this.share.benchmark = this.share.benchmark || _BrowserDetector[\"default\"].calcBenchmark();\n    }.bind(this));\n  }\n};\n/***\r\n *\r\n * @param {DTBody}  body\r\n * @constructor\r\n */\n\n\nfunction BaseMode(body) {\n  this.body = body;\n  this.offset = 0;\n  this.rowOffset = -1000;\n  this.boundCache = null;\n  this.viewedRows = null;\n}\n\nBaseMode.prototype.name = 'base';\n\nBaseMode.prototype.resetViewParam = function () {\n  this.offset = 0;\n  this.rowOffset = -1000;\n  this.boundCache = null;\n  this.viewedRows = null;\n};\n\nBaseMode.prototype.getBoundOfRows = function () {\n  if (this.boundCache) return this.boundCache;\n  if (!this.body.table.wrapper.isDescendantOf(document.body)) return null;\n  var bodyBound = this.body.elt.getBoundingClientRect();\n  var elt = this.body.elt;\n  var childNodes = elt.childNodes;\n  this.boundCache = Array.prototype.map.call(childNodes, function (elt) {\n    var eBound = _Rectangle[\"default\"].fromClientRect(elt.getBoundingClientRect());\n\n    eBound.y -= bodyBound.top;\n    return eBound;\n  });\n  this.boundCache.body = _Rectangle[\"default\"].fromClientRect(bodyBound);\n  this.boundCache.header = _Rectangle[\"default\"].fromClientRect(this.body.table.header.elt.getBoundingClientRect());\n  return this.boundCache;\n};\n\nBaseMode.prototype.updateRowsIfNeed = function () {\n  throw Error(\"Not implement!\");\n};\n\nBaseMode.prototype.render = function () {\n  var _this = this;\n\n  this.updateRowsIfNeed();\n  var bounds = this.getBoundOfRows();\n\n  if (!bounds) {\n    setTimeout(function () {\n      if (_this.body.elt.isDescendantOf(document.body)) {\n        _this.render();\n      }\n    }, 0);\n    return;\n  }\n\n  var dy = 0,\n      rowIdx;\n\n  if (bounds.length > 0) {\n    rowIdx = Math.floor(this.offset - this.rowOffset);\n    dy = bounds[rowIdx].y + (this.offset - this.rowOffset - rowIdx) * bounds[rowIdx].height;\n  }\n\n  var availableHeight;\n\n  if (bounds.length > 0) {\n    availableHeight = this.body.table.wrapper.$viewport.getBoundingClientRect().height - bounds.header.height;\n\n    if (bounds[bounds.length - 1].y + bounds[bounds.length - 1].height - dy < availableHeight - 1) {\n      dy = -availableHeight + bounds[bounds.length - 1].y + bounds[bounds.length - 1].height + 1; //1: last border\n    }\n  }\n\n  dy = Math.max(0, dy);\n  this.body.table.wrapper.$space.addStyle('top', -dy + 'px');\n  this.body.table.wrapper.$fixedXCtn.addStyle('top', -dy + 'px');\n};\n/***\r\n * @extends BaseMode\r\n * @param {DTBody} body\r\n * @constructor\r\n */\n\n\nfunction SearchingMode(body) {\n  BaseMode.call(this, body);\n  this.status = 'STANDBY';\n  this.waitingToken = 'none';\n  this.waitingCtrl = body.table.wrapper.waitingCtl;\n  this.taskHash = 0;\n  this.renderingHash = -1;\n  this.resultItems = [];\n  this.viewedRows = [];\n}\n\n_OOP[\"default\"].mixClass(SearchingMode, BaseMode);\n\nSearchingMode.prototype.name = 'search';\n\nSearchingMode.prototype.start = function () {\n  this.status = \"RUNNING\";\n  this.searchingCache = {};\n  this.body.table.wrapper.addClass('as-searching');\n  this.renderingHash = -1;\n};\n\nSearchingMode.prototype.end = function () {\n  this.body.table.wrapper.removeClass('as-searching');\n  this.searchingItems = null;\n  this.status = \"STOP\";\n  this.waitingCtrl.end(this.waitingToken);\n  this.body.master.sendTask(null);\n};\n\nSearchingMode.prototype.updateRowsIfNeed = function () {\n  var _this2 = this;\n\n  var screenSize = (0, _Dom.getScreenSize)();\n  var rowPerPage = Math.ceil(Math.ceil(screenSize.height / 40) / 25) * 25;\n  var newRowOffset = Math.floor(this.offset / rowPerPage) * rowPerPage;\n\n  if (this.resultItems.length - newRowOffset < rowPerPage) {\n    newRowOffset = Math.max(0, newRowOffset - rowPerPage);\n  }\n\n  if (newRowOffset === this.rowOffset) return;\n  this.rowOffset = newRowOffset;\n  var start = this.rowOffset;\n  var end = Math.min(start + rowPerPage * 2, this.resultItems.length);\n  var elt = this.body.elt;\n  var fixedXElt = this.body.fixedXElt;\n  var rows = this.body.rows;\n  var nRows = [];\n\n  for (var i = start; i < end; ++i) {\n    nRows.push(rows[this.resultItems[i]]);\n  }\n\n  var nChildren = nRows.map(function (r) {\n    return r.elt;\n  });\n  var nFixedXChildren = nRows.map(function (r) {\n    return r.fixedXElt;\n  });\n  (0, _utils.replaceChildrenInElt)(elt, nChildren);\n  (0, _utils.replaceChildrenInElt)(fixedXElt, nFixedXChildren);\n  this.boundCache = null;\n  var bounds = this.getBoundOfRows();\n\n  if (bounds) {\n    for (var i = 0; i < nRows.length; ++i) {\n      nRows[i].updateCopyEltSize();\n    }\n\n    this.body.table.wrapper.layoutCtrl.onResize();\n    this.body.table.updateCopyEltSize();\n  }\n\n  if (!bounds) {\n    setTimeout(function () {\n      if (_this2.body.elt.isDescendantOf(document.body)) {\n        var bounds = _this2.getBoundOfRows();\n\n        if (bounds) {\n          for (var i = 0; i < nRows.length; ++i) {\n            nRows[i].updateCopyEltSize();\n          }\n\n          _this2.body.table.wrapper.layoutCtrl.onResize();\n\n          _this2.body.table.updateCopyEltSize();\n        }\n      }\n    }, 0);\n  }\n};\n\nSearchingMode.prototype.onRowSplice = function (idx) {\n  this.rowOffset = -1000;\n  this.render();\n};\n\nSearchingMode.prototype.onRowRemoved = function (idx, n) {\n  n = n || 1;\n  this.resultItems = this.resultItems.reduce(function (ac, cr) {\n    if (cr >= idx + n) {\n      ac.push(cr - n);\n    } else if (cr < idx) {\n      ac.push(cr);\n    }\n\n    return ac;\n  }, []);\n};\n\nSearchingMode.prototype.onRowAdded = function (idx, n) {\n  n = n || 1;\n  this.resultItems = this.resultItems.reduce(function (ac, cr) {\n    if (cr >= idx) {\n      ac.push(cr + n);\n    } else {\n      ac.push(cr);\n    }\n\n    return ac;\n  }, []);\n};\n\nSearchingMode.prototype.viewIntoRow = function (row) {\n  console.log(row);\n};\n\nSearchingMode.prototype.query = function (query) {\n  this.waitingCtrl.end(this.waitingToken);\n  this.waitingToken = this.waitingCtrl.begin();\n  var taskHolder = this.body.master.sendTask(query);\n  this.taskHash = taskHolder.hash;\n};\n\nSearchingMode.prototype.onResult = function (response) {\n  var _this3 = this;\n\n  if (this.status !== 'RUNNING' || response.hash !== this.taskHash) return;\n  this.waitingCtrl.end(this.waitingToken);\n\n  if (this.renderingHash !== response.hash) {\n    this.renderingHash = response.hash;\n    this.offset = 0;\n    this.rowOffset = -1000;\n  }\n\n  this.resultItems = response.result;\n  this.viewedRows = this.resultItems.map(function (rIdx) {\n    return _this3.body.rows[rIdx];\n  });\n  this.render();\n};\n\nSearchingMode.prototype.share = {\n  thread: null\n};\n/***\r\n * @extends BaseMode\r\n * @param {DTBody} body\r\n * @constructor\r\n */\n\nfunction NormalMode(body) {\n  BaseMode.call(this, body);\n}\n\n_OOP[\"default\"].mixClass(NormalMode, BaseMode);\n\nNormalMode.prototype.name = 'normal';\n\nNormalMode.prototype.start = function () {\n  this.resetViewParam();\n  this.viewedRows = this.body.rows;\n  this.render();\n};\n\nNormalMode.prototype.end = function () {};\n\nNormalMode.prototype.updateRowsIfNeed = function () {\n  var _this4 = this;\n\n  var screenSize = (0, _Dom.getScreenSize)();\n  var rowPerPage = Math.ceil(Math.ceil(screenSize.height / 40) / 25) * 25;\n  var newRowOffset = Math.floor(this.offset / rowPerPage) * rowPerPage;\n  var data = this.body.data;\n\n  if (data.rows.length - newRowOffset < rowPerPage) {\n    newRowOffset = Math.max(0, newRowOffset - rowPerPage);\n  }\n\n  if (newRowOffset === this.rowOffset) return;\n  this.rowOffset = newRowOffset;\n  var start = this.rowOffset;\n  var elt = this.body.elt;\n  var fixedXElt = this.body.fixedXElt;\n  var end = Math.min(start + rowPerPage * 2, data.rows.length);\n  var rows = this.body.rows;\n  elt.clearChild();\n  fixedXElt.clearChild();\n\n  for (var i = start; i < end; ++i) {\n    elt.addChild(rows[i].elt);\n    fixedXElt.addChild(rows[i].fixedXElt);\n  }\n\n  this.boundCache = null;\n  var bounds = this.getBoundOfRows();\n\n  if (bounds) {\n    for (var i = start; i < end; ++i) {\n      rows[i].updateCopyEltSize();\n    }\n\n    this.body.table.wrapper.layoutCtrl.onResize();\n    this.body.table.updateCopyEltSize();\n  }\n\n  if (!bounds) {\n    setTimeout(function () {\n      if (_this4.body.elt.isDescendantOf(document.body)) {\n        var bounds = _this4.getBoundOfRows();\n\n        if (bounds) {\n          for (var i = start; i < end; ++i) {\n            rows[i].updateCopyEltSize();\n          }\n\n          _this4.body.table.wrapper.layoutCtrl.onResize();\n\n          _this4.body.table.updateCopyEltSize();\n        }\n      }\n    }, 0);\n  }\n\n  this.body.table.wrapper.rowDragCtrl.ev_rowRenderChange();\n};\n\nNormalMode.prototype.onRowSplice = function (idx) {\n  this.rowOffset = -1;\n  this.render();\n};\n\nNormalMode.prototype.viewIntoRow = function (row) {\n  var idx = this.viewedRows.indexOf(row);\n  if (idx <= 0) return;\n  this.offset = idx;\n  this.render();\n};\n/***\r\n *\r\n * @param {DTTable} table\r\n * @param data\r\n * @constructor\r\n */\n\n\nfunction DTBody(table, data) {\n  this.table = table;\n  this.data = data;\n  this._elt = null;\n  this._fixedXElt = null;\n  this.rows = this.data.rows.map(function (rowData, i) {\n    var row = new _DTBodyRow[\"default\"](this, rowData);\n    row.idx = i;\n    return row;\n  }.bind(this)); // this.rowDragCtrl = new DTRowDragController(this);\n\n  this.modes = {\n    normal: new NormalMode(this),\n    searching: new SearchingMode(this)\n  }; //\n  //\n\n  this.curentMode = this.modes.normal;\n  this.curentMode.start();\n  this.curentMode.render(); //\n\n  this.master = new SearchingMaster(this);\n  this.master.transferFrom(0);\n  /***\r\n   * @name offset\r\n   * @type {number}\r\n   * @memberOf DTBody#\r\n   */\n}\n\nDTBody.prototype.revokeResource = function () {\n  this.master.destroy();\n};\n\nDTBody.prototype.requireRows = function (start, end) {\n  if (typeof start !== \"number\") start = 0;\n  if (typeof end !== \"number\") end = Infinity;\n  end = Math.min(end, this.data.rows.length);\n  return this.rows.slice(start, end);\n};\n\nDTBody.prototype.reindexRows = function (start, end) {\n  if (typeof start !== \"number\") start = 0;\n  if (typeof end !== \"number\") end = Infinity;\n  end = Math.min(end, this.data.rows.length);\n\n  for (var i = start; i < end; ++i) {\n    if (this.rows[i]) this.rows[i].idx = i;\n  }\n};\n\nDTBody.prototype.onRowSplice = function (idx) {\n  this.curentMode.onRowSplice(idx);\n  this.master.transferFrom(idx);\n\n  _ResizeSystem[\"default\"].requestUpdateSignal();\n};\n\nDTBody.prototype.rowIndexOf = function (o) {\n  var n = this.rows.length;\n\n  for (var i = 0; i < n; ++i) {\n    if (o === this.rows[i]._elt) return i;\n    if (o === this.rows[i]) return i;\n    if (o === this.data.rows[i]) return i;\n    if (o === this.data.rows[i].id) return i;\n  }\n\n  return -1;\n};\n\nDTBody.prototype.addRowBefore = function (rowData, bf) {\n  var idx;\n\n  if (bf === null || bf === undefined) {\n    return this.addRow(rowData);\n  } else {\n    idx = this.rowIndexOf(bf);\n    if (idx < 0) throw new Error(\"$bf not is a row in table\");\n    return this.addRow(rowData, idx);\n  }\n};\n\nDTBody.prototype.addRowAfter = function (rowData, at) {\n  var idx;\n\n  if (at === null || at === undefined) {\n    return this.addRow(rowData, 0);\n  } else {\n    idx = this.rowIndexOf(at);\n    if (idx < 0) throw new Error(\"$bf not is a row in table\");\n    return this.addRow(rowData, idx + 1);\n  }\n};\n\nDTBody.prototype.addRow = function (rowData, idx) {\n  if (!(0, _utils.isNaturalNumber)(idx) || idx >= this.rows.length) {\n    idx = this.rows.length;\n  }\n\n  var row;\n\n  if (idx >= this.rows.length) {\n    idx = this.rows.length;\n    this.data.rows.push(rowData);\n    row = new _DTBodyRow[\"default\"](this, rowData);\n    row.idx = idx;\n    this.rows.push(row);\n    if (this.curentMode.onRowAdded) this.curentMode.onRowAdded(idx, 1);\n    this.onRowSplice(this.rows.length - 1);\n  } else {\n    row = new _DTBodyRow[\"default\"](this, rowData);\n    row.idx = idx;\n    this.rows.splice(idx, 0, row);\n    this.data.rows.splice(idx, 0, rowData);\n    this.reindexRows(idx + 1);\n    this.onRowSplice(idx);\n  }\n\n  return row;\n};\n\nDTBody.prototype.addRows = function (rowsData, idx) {\n  if (!(0, _utils.isNaturalNumber)(idx) || idx >= this.rows.length) {\n    idx = this.rows.length;\n  }\n\n  var res = [];\n  var row, i, rowData;\n\n  if (idx >= this.rows.length) {\n    idx = this.rows.length;\n\n    for (i = 0; i < rowsData.length; ++i) {\n      rowData = rowsData[i];\n      row = new _DTBodyRow[\"default\"](this, rowData);\n      row.idx = i + idx;\n      this.data.rows.push(rowData);\n      res.push(row);\n      this.rows.push(row);\n    }\n  } else {\n    for (i = 0; i < rowsData.length; ++i) {\n      rowData = rowsData[i];\n      row = new _DTBodyRow[\"default\"](this, rowData);\n      row.idx = i + idx;\n      res.push(row);\n      this.data.rows.splice(idx + i, 0, rowData);\n      this.rows.splice(idx + i, 0, row);\n    }\n\n    this.reindexRows(idx + rowsData.length);\n  }\n\n  if (this.curentMode.onRowAdded) this.curentMode.onRowAdded(idx, rowsData.length);\n  this.onRowSplice(idx);\n  return res;\n};\n\nDTBody.prototype.removeRow = function (row) {\n  var idx = this.rowIndexOf(row);\n  if (idx < 0) return;\n  this.rows.splice(idx, 1);\n  this.data.rows.splice(idx, 1);\n  this.reindexRows(idx);\n  if (this.curentMode.onRowRemoved) this.curentMode.onRowRemoved(idx);\n  this.onRowSplice(idx);\n};\n\nDTBody.prototype.moveRowAt = function (idx, newIdx) {\n  var row = this.rows.splice(idx, 1)[0];\n  var rowData = this.data.rows.splice(idx, 1)[0];\n  this.rows.splice(newIdx, 0, row);\n  this.data.rows.splice(newIdx, 0, rowData);\n  this.reindexRows(Math.min(idx, newIdx));\n  this.onRowSplice(Math.min(idx, newIdx));\n};\n\nDTBody.prototype.clearRows = function () {\n  var n = this.rows.length;\n  this.rows.splice(0);\n  this.data.rows.splice(0);\n  if (this.curentMode.onRowRemoved) this.curentMode.onRowRemoved(0, n);\n  this.onRowSplice(0);\n};\n\nDTBody.prototype.rowAt = function (idx) {\n  if (this.rows[idx]) return this.rows[idx];\n  var rowData = this.data.rows[idx];\n\n  if (rowData) {\n    this.rows[idx] = new _DTBodyRow[\"default\"](this, rowData);\n    this.rows[idx].idx = idx;\n  } else return null;\n};\n\nDTBody.prototype.rowOf = function (o) {\n  var idx = this.rowIndexOf(o);\n  return this.rowAt(idx);\n};\n\nDTBody.prototype.viewIntoRow = function (row) {\n  return this.curentMode.viewIntoRow(row);\n};\n\nDTBody.prototype.startSearchingIfNeed = function () {\n  if (this.curentMode !== this.modes.searching) {\n    this.curentMode.end();\n    this.curentMode = this.modes.searching;\n    this.curentMode.start();\n  }\n};\n\nDTBody.prototype.stopSearchIfNeed = function () {\n  if (this.curentMode === this.modes.searching) {\n    this.curentMode.end();\n    this.curentMode = this.modes.normal;\n    this.curentMode.start();\n  }\n};\n\nDTBody.prototype.query = function (query) {\n  var now = new Date().getTime();\n\n  if (query) {\n    this.startSearchingIfNeed();\n  } else if (!query) {\n    this.stopSearchIfNeed();\n    this.curentMode.render();\n  }\n\n  if (this.curentMode.query && query) {\n    this.curentMode.query(query);\n  }\n};\n\nDTBody.prototype.updateCopyEltSize = function () {\n  this.rows.forEach(function (row) {\n    return row.updateCopyEltSize();\n  });\n};\n\nObject.defineProperties(DTBody.prototype, {\n  offset: {\n    set: function set(value) {\n      this._offset = value;\n      this.curentMode.offset = value;\n      this.curentMode.render();\n    },\n    get: function get() {\n      return this._offset;\n    }\n  },\n  searching: {\n    get: function get() {\n      return this.elt.hasClass('as-searching');\n    }\n  }\n});\nObject.defineProperty(DTBody.prototype, 'elt', {\n  get: function get() {\n    if (this._elt) return this._elt;\n    this._elt = (0, _ACore._)({\n      tag: 'tbody',\n      \"class\": 'as-dt-body'\n    });\n    return this._elt;\n  }\n});\nObject.defineProperty(DTBody.prototype, 'fixedXElt', {\n  get: function get() {\n    if (this._fixedXElt) return this._fixedXElt;\n    this._fixedXElt = (0, _ACore._)({\n      elt: this.elt.cloneNode(false),\n      \"class\": 'as-fixed-x'\n    });\n    return this._fixedXElt;\n  }\n});\nObject.defineProperty(DTBody.prototype, 'adapter', {\n  get: function get() {\n    return this.table.adapter;\n  }\n});\nvar _default = DTBody;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/dynamictable/DTBody.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/dynamictable/DTBodyCell.js":
/*!****************************************************************!*\
  !*** ./node_modules/absol-acomp/js/dynamictable/DTBodyCell.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _datetime = __webpack_require__(/*! absol/src/Time/datetime */ \"./node_modules/absol/src/Time/datetime.js\");\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/***\r\n *\r\n * @param {DTBodyRow} row\r\n * @param data\r\n * @constructor\r\n */\nfunction DTBodyCell(row, data) {\n  this.row = row;\n  this._elt = null;\n  this._copyElt = null;\n  this._idx = null;\n  this.data = data;\n}\n\nObject.defineProperty(DTBodyCell.prototype, 'elt', {\n  get: function get() {\n    if (this._elt) return this._elt;\n    this._elt = (0, _ACore._)({\n      tag: 'td',\n      \"class\": 'as-dt-body-cell'\n    });\n    this._elt.holder = this;\n    if (this.data.attr) this._elt.attr(this.data.attr);\n    if (this.data[\"class\"]) this._elt.addClass(this.data[\"class\"]);\n    if (this.data.style) this._elt.addStyle(this.data.style);\n    if (this.data.on) this._elt.on(this.data.on);\n    if (this._idx !== null) this._elt.attr('data-col-idx', this._idx + '');\n    this.row.body.table.adapter.renderBodyCell(this.elt, this.data, this);\n    return this._elt;\n  }\n});\nObject.defineProperty(DTBodyCell.prototype, 'copyElt', {\n  get: function get() {\n    if (this._copyElt) return this._copyElt;\n    this._copyElt = (0, _ACore.$)(this.elt.cloneNode(true)).addClass('as-copy-elt');\n    return this._copyElt;\n  }\n});\nObject.defineProperty(DTBodyCell.prototype, 'innerText', {\n  get: function get() {\n    var text = this.data.innerText;\n    if (text === undefined || text === null) text = '';else if (!text) {\n      text = text + '';\n    } else if (text.substring) {} else if (typeof text === \"number\") {\n      text = text + '';\n    } else if (_typeof(text) === \"object\") {\n      if (text instanceof Date) {\n        return (0, _datetime.formatDateTime)(text, 'dd/MM/yyyy hh:mm a');\n      } else {\n        return (0, _utils.jsStringOf)(text);\n      }\n    } else if (typeof text === \"function\") {\n      text = text.call(this.data, this);\n    }\n    return text;\n    if (this.data.innerText) return this.data.innerText;\n    if (this.data.getInnerText) return this.data.getInnerText(); // if ('innerText' in this.data)\n\n    return this.data.innerText || '';\n    var res = [];\n\n    function visit(node) {\n      if (node.nodeType === 3 && node.data) {\n        res.push(node.data);\n      } else if (node.childNodes && node.childNodes.length > 0) {\n        Array.prototype.forEach.call(node.childNodes, visit);\n      }\n    }\n\n    visit(this.elt);\n    return res.join(' ');\n  }\n});\nObject.defineProperty(DTBodyCell.prototype, 'idx', {\n  set: function set(value) {\n    this._idx = value;\n    if (this._elt) this._elt.attr('data-col-idx', value + '');\n  },\n  get: function get() {\n    return this._idx;\n  }\n});\nvar _default = DTBodyCell;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/dynamictable/DTBodyCell.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/dynamictable/DTBodyRow.js":
/*!***************************************************************!*\
  !*** ./node_modules/absol-acomp/js/dynamictable/DTBodyRow.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _DTBodyCell = _interopRequireDefault(__webpack_require__(/*! ./DTBodyCell */ \"./node_modules/absol-acomp/js/dynamictable/DTBodyCell.js\"));\n\nvar _stringGenerate = __webpack_require__(/*! absol/src/String/stringGenerate */ \"./node_modules/absol/src/String/stringGenerate.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n *\r\n * @param {DTBody} body\r\n * @param data\r\n * @constructor\r\n */\nfunction DTBodyRow(body, data) {\n  this.body = body;\n  this.data = data;\n  this._elt = null;\n  this._fixedXElt = null;\n\n  if ('id' in data) {\n    this.id = data.id;\n  } else {\n    this.id = (0, _stringGenerate.randomIdent)(8);\n  }\n\n  this._idx = null;\n  /***\r\n   * @type {DTBodyCell[]}\r\n   */\n\n  this.cells = this.data.cells.map(function (cellData, i) {\n    var cell = new _DTBodyCell[\"default\"](this, cellData);\n    cell.idx = i;\n    return cell;\n  }.bind(this));\n}\n\nDTBodyRow.prototype.remove = function () {\n  this.body.removeRow(this);\n};\n\nDTBodyRow.prototype.viewInto = function () {\n  return this.body.viewIntoRow(this);\n};\n\nDTBodyRow.prototype.updateCopyEltSize = function () {\n  if (!this._fixedXElt) return;\n  if (!this._elt.parentElement) return;\n  if (this._fixedXElt.childNodes.length === 0) return; //has no fixed column\n\n  var bound = this._elt.getBoundingClientRect();\n\n  this._fixedXElt.addStyle('height', bound.height + 'px');\n};\n\nDTBodyRow.prototype.updateData = function (data) {\n  var rowIdx = this.body.rowIndexOf(this.data);\n  this.body.data.rows[rowIdx] = data;\n  this.data = data;\n\n  if ('id' in data) {\n    this.id = data.id;\n  } else {\n    this.id = (0, _stringGenerate.randomIdent)(8);\n  }\n\n  this.cells = this.data.cells.map(function (cellData, i) {\n    var cell = new _DTBodyCell[\"default\"](this, cellData);\n    cell.idx = i;\n    return cell;\n  }.bind(this));\n\n  if (this._elt) {\n    this._elt.attr('data-id', this.id + '');\n\n    this._elt.clearChild().addChild(this.cells.map(function (cell) {\n      return cell.elt;\n    }));\n\n    this.$idx = (0, _ACore.$)('.as-dt-row-index', this._elt);\n    this.draggable = !!(0, _ACore.$)('.as-drag-zone', this._elt);\n    if (this.$idx) this.$idx.attr('data-idx', this._idx + 1 + '');\n  }\n\n  this.body.onRowSplice(rowIdx);\n};\n\nObject.defineProperty(DTBodyRow.prototype, 'elt', {\n  get: function get() {\n    if (this._elt) return this._elt;\n    var fixedCol = this.adapter.fixedCol || 0;\n    var child = this.cells.slice(0, fixedCol).map(function (c) {\n      return c.copyElt;\n    });\n    var child1 = this.cells.slice(fixedCol).map(function (c) {\n      return c.elt;\n    });\n    this._elt = (0, _ACore._)({\n      tag: 'tr',\n      \"class\": 'as-dt-body-row',\n      props: {\n        dtBodyRow: this\n      },\n      child: child.concat(child1)\n    });\n\n    this._elt.attr('data-id', this.id + '');\n\n    if (this.data.attr) {\n      this._elt.attr(this.data.attr);\n    }\n\n    if (this.data.style) {\n      this._elt.addStyle(this.data.style);\n    }\n\n    if (this.data.on) {\n      this._elt.on(this.data.on);\n    }\n\n    this.$idx = this.cells.reduce(function (ac, c) {\n      return ac || (0, _ACore.$)('.as-dt-row-index', c.elt);\n    }, null);\n    this.draggable = !!(0, _ACore.$)('.as-drag-zone', this._elt);\n    if (this.$idx) this.$idx.attr('data-idx', this._idx + 1 + '');\n    return this._elt;\n  }\n});\nObject.defineProperty(DTBodyRow.prototype, 'fixedXElt', {\n  get: function get() {\n    if (this._fixedXElt) return this._fixedXElt;\n    var fixedCol = this.adapter.fixedCol || 0;\n    this._fixedXElt = (0, _ACore._)({\n      elt: this.elt.cloneNode(false),\n      \"class\": 'as-dt-fixed-x',\n      child: this.cells.slice(0, fixedCol).map(function (cell) {\n        return cell.elt;\n      })\n    });\n    return this._fixedXElt;\n  }\n});\nObject.defineProperty(DTBodyRow.prototype, 'innerText', {\n  get: function get() {\n    if (this.data.innerText) return this.data.innerText;\n    if (this.data.getInnerText) return this.data.getInnerText();\n    if ('innerText' in this.data) return this.data.innerText || '';\n    return this.cells.map(function (cell) {\n      return cell.innerText.trim();\n    }).filter(function (text) {\n      return !!text;\n    }).join(' / ');\n  }\n});\nObject.defineProperty(DTBodyRow.prototype, 'idx', {\n  set: function set(value) {\n    if (this.$idx) this.$idx.attr('data-idx', value + 1 + '');\n    this._idx = value;\n  },\n  get: function get() {\n    return this._idx;\n  }\n});\nObject.defineProperty(DTBodyRow.prototype, 'adapter', {\n  get: function get() {\n    return this.body.adapter;\n  }\n});\nvar _default = DTBodyRow;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/dynamictable/DTBodyRow.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/dynamictable/DTDataAdapter.js":
/*!*******************************************************************!*\
  !*** ./node_modules/absol-acomp/js/dynamictable/DTDataAdapter.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _DTTable = _interopRequireDefault(__webpack_require__(/*! ./DTTable */ \"./node_modules/absol-acomp/js/dynamictable/DTTable.js\"));\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @typedef DTDataRow\r\n * @property\r\n */\n\n/***\r\n * @typedef DTDataBody\r\n * @property {DTDataRow[]} row\r\n */\n\n/***\r\n * @typedef DTDataHead\r\n * @property {DTDataHRow[]} row\r\n */\n\n/***\r\n * @typedef DTDataTable\r\n * @property head\r\n * @property body\r\n * @property {number} rowsPerPage\r\n * @property {number} fixedCol\r\n */\n\n/***\r\n *\r\n * @param {DynamicTable} tableElt\r\n * @param {DTDataAdapter} opt\r\n * @constructor\r\n */\nfunction DTDataAdapter(tableElt, opt) {\n  this.tableElt = tableElt;\n  /***\r\n   *\r\n   * @type {null|DTDataTable}\r\n   */\n\n  this.data = null;\n  this.rowsPerPage = 20;\n  this.fixedCol = 0;\n  Object.assign(this, opt);\n\n  if (this.fixedCol === 0) {\n    this.tableElt.removeClass('as-has-fixed-col');\n  } else {\n    this.tableElt.addClass('as-has-fixed-col');\n  }\n}\n\nDTDataAdapter.prototype.render = function () {\n  if (this.tableElt.table) this.tableElt.table.revokeResource();\n  this.tableElt.table = new _DTTable[\"default\"](this.tableElt, this.data);\n};\n\nDTDataAdapter.prototype.renderHeadCell = function (elt, data, controller) {\n  if (data.child) {\n    if (data.child.map) {\n      elt.addChild(data.child.map(function (it) {\n        return (0, _ACore._)(it);\n      }));\n    } else {\n      elt.addChild((0, _ACore._)(data.child));\n    }\n  }\n\n  if (data.render) {\n    data.render.call(null, elt, data, controller);\n  }\n};\n\nDTDataAdapter.prototype.renderBodyCell = function (elt, data, controller) {\n  if (data.child) {\n    if (data.child.map) {\n      elt.addChild(data.child.map(function (it) {\n        return (0, _ACore._)(it);\n      }));\n    } else {\n      elt.addChild((0, _ACore._)(data.child));\n    }\n  }\n\n  if (data.render) {\n    data.render.call(null, elt, data, controller);\n  }\n\n  if (data.style) {\n    elt.addStyle(data.style);\n  }\n};\n\nvar _default = DTDataAdapter;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/dynamictable/DTDataAdapter.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/dynamictable/DTHead.js":
/*!************************************************************!*\
  !*** ./node_modules/absol-acomp/js/dynamictable/DTHead.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _DTHeadRow = _interopRequireDefault(__webpack_require__(/*! ./DTHeadRow */ \"./node_modules/absol-acomp/js/dynamictable/DTHeadRow.js\"));\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n *\r\n * @param {DTTable} table\r\n * @param {} data\r\n * @constructor\r\n */\nfunction DTHead(table, data) {\n  var _this = this;\n\n  this.table = table;\n  this._elt = null;\n  this._copyElt = null;\n  this._fixedXYElt = null;\n  this._fixedXElt = null;\n  this.data = data;\n  this.rows = this.data.rows.map(function (rowData) {\n    return new _DTHeadRow[\"default\"](_this, rowData);\n  });\n}\n\nDTHead.prototype.lockWidth = function () {\n  this.rows.forEach(function (r) {\n    return r.lockWidth();\n  });\n};\n\nDTHead.prototype.updateCopyEltSize = function () {\n  if (!this._copyElt) return;\n  this.rows.forEach(function (r) {\n    return r.updateCopyEltSize();\n  });\n};\n\nObject.defineProperty(DTHead.prototype, 'elt', {\n  get: function get() {\n    if (this._elt) return this._elt;\n    this._elt = (0, _ACore._)({\n      tag: 'thead',\n      \"class\": 'as-dt-header',\n      child: this.rows.map(function (r) {\n        return r.elt;\n      })\n    });\n    if (this.data.style) this._elt.addStyle(this.data.style);\n    return this._elt;\n  }\n});\nObject.defineProperty(DTHead.prototype, 'copyElt', {\n  get: function get() {\n    if (this._copyElt) return this._copyElt;\n    this._copyElt = (0, _ACore._)({\n      elt: this.elt.cloneNode(false),\n      child: this.rows.map(function (r) {\n        return r.copyElt;\n      })\n    });\n    return this._copyElt;\n  }\n});\nObject.defineProperty(DTHead.prototype, 'fixedXYElt', {\n  get: function get() {\n    if (this._fixedXYElt) return this._fixedXYElt;\n    this._fixedXYElt = (0, _ACore._)({\n      elt: this.elt.cloneNode(false),\n      \"class\": 'as-dt-fixed-xy',\n      child: this.rows.map(function (r) {\n        return r.fixedXYElt;\n      })\n    });\n    return this._fixedXYElt;\n  }\n});\nObject.defineProperty(DTHead.prototype, 'fixedXElt', {\n  get: function get() {\n    if (this._fixedXElt) return this._fixedXElt;\n    this._fixedXElt = (0, _ACore._)({\n      elt: this.elt.cloneNode(false),\n      \"class\": 'as-dt-fixed-x',\n      child: this.rows.map(function (r) {\n        return r.fixedXElt;\n      })\n    });\n    return this._fixedXElt;\n  }\n});\nObject.defineProperty(DTHead.prototype, 'adapter', {\n  get: function get() {\n    return this.table.wrapper.adapter;\n  }\n});\nvar _default = DTHead;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/dynamictable/DTHead.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/dynamictable/DTHeadCell.js":
/*!****************************************************************!*\
  !*** ./node_modules/absol-acomp/js/dynamictable/DTHeadCell.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\n/***\r\n *\r\n * @param {DTHeadRow} row\r\n * @param data\r\n * @constructor\r\n */\nfunction DTHeadCell(row, data) {\n  this.row = row;\n  this._elt = null;\n  this._copyElt = null;\n  this._copyElt1 = null;\n  this._copyElt2 = null;\n  this.data = data;\n  this._idx = null;\n}\n\nObject.defineProperty(DTHeadCell.prototype, 'idx', {\n  set: function set(value) {\n    this._idx = value;\n    this.elt.attr('data-col-idx', value + '');\n  },\n  get: function get() {\n    return this._idx;\n  }\n});\n\nDTHeadCell.prototype.nextSortState = function (event) {\n  var _this = this;\n\n  if (!this.elt.attr('data-sort-key')) return;\n  var c = this.elt.attr('data-sort-order');\n  var n = {\n    none: 'ascending',\n    ascending: 'descending',\n    descending: 'none'\n  }[c] || 'none'; //todo\n\n  console.log(\"TODO this??\");\n  (0, _ACore.$$)('th', this.row.elt).forEach(function (elt) {\n    if (elt === _this.elt) return;\n\n    if (elt.attr('data-sort-key')) {\n      elt.attr('data-sort-order', 'none');\n    }\n  });\n  this.elt.attr('data-sort-order', n);\n  this.row.head.table.wrapper.requestQuery();\n};\n\nDTHeadCell.prototype.updateCopyEltSize = function () {\n  if (!this._copyElt && !this._copyElt1 && !this._copyElt2) return; // copyElt is in space\n\n  var bound = this._copyElt.getBoundingClientRect();\n\n  this._elt.addStyle('width', bound.width + 'px');\n\n  if (this._copyElt1) {\n    this._copyElt1.addStyle('width', bound.width + 'px');\n  }\n\n  if (this._copyElt2) {\n    this._copyElt2.addStyle('width', bound.width + 'px');\n  }\n};\n\nObject.defineProperty(DTHeadCell.prototype, 'elt', {\n  get: function get() {\n    var _this2 = this;\n\n    if (this._elt) return this._elt;\n    var eventAdded = false;\n\n    var onPointerDown = function onPointerDown(event) {\n      if (event.target.hasClass && event.target.hasClass('as-dt-header-cell-resizer')) return;\n\n      if (!eventAdded) {\n        document.addEventListener('pointerup', onPointerUp);\n        eventAdded = true;\n      }\n    };\n\n    var onPointerUp = function onPointerUp() {\n      document.removeEventListener('pointerup', onPointerUp);\n      eventAdded = false;\n\n      _this2.nextSortState.bind(_this2);\n    };\n\n    this._elt = (0, _ACore._)({\n      tag: 'th',\n      \"class\": 'as-dt-header-cell'\n    }).on('pointerdown', onPointerDown);\n\n    if (this.data.attr) {\n      this._elt.attr(this.data.attr);\n    }\n\n    if (this.data.style) {\n      this._elt.addStyle(this.data.style);\n    }\n\n    if (this.data.id !== null && this.data.id !== undefined) {\n      this._elt.attr('data-col-id', this.data.id + '');\n    }\n\n    this.row.head.table.adapter.renderHeadCell(this._elt, this.data, this);\n\n    if (this.data.sortKey) {\n      this._elt.attr('data-sort-key', this.data.sortKey);\n\n      this._elt.attr('data-sort-order', 'none');\n    }\n\n    this.$sortBtn = (0, _ACore._)({\n      tag: 'span',\n      \"class\": 'as-dt-sort-btn',\n      child: [{\n        tag: 'span',\n        \"class\": ['mdi', 'mdi-menu-up'] // child: { text: '🡑' }\n\n      }, {\n        tag: 'span',\n        \"class\": ['mdi', 'mdi-menu-down']\n      }]\n    });\n    this.$resizer = (0, _ACore._)({\n      \"class\": 'as-dt-header-cell-resizer'\n    });\n\n    this._elt.addChild(this.$sortBtn);\n\n    this._elt.addChild(this.$resizer);\n\n    return this._elt;\n  }\n});\nObject.defineProperty(DTHeadCell.prototype, 'copyElt', {\n  get: function get() {\n    if (this._copyElt) return this._copyElt;\n    this._copyElt = (0, _ACore.$)(this.elt.cloneNode(true)).addClass('as-copy-elt');\n    return this._copyElt;\n  }\n});\nObject.defineProperty(DTHeadCell.prototype, 'copyElt1', {\n  get: function get() {\n    if (this._copyElt1) return this._copyElt1;\n    this._copyElt1 = (0, _ACore.$)(this.elt.cloneNode(true)).addClass('as-copy-elt-1');\n    return this._copyElt1;\n  }\n});\nObject.defineProperty(DTHeadCell.prototype, 'copyElt2', {\n  get: function get() {\n    if (this._copyElt2) return this._copyElt2;\n    this._copyElt2 = (0, _ACore.$)(this.elt.cloneNode(true)).addClass('as-copy-elt-2');\n    return this._copyElt2;\n  }\n});\nvar _default = DTHeadCell;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/dynamictable/DTHeadCell.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/dynamictable/DTHeadRow.js":
/*!***************************************************************!*\
  !*** ./node_modules/absol-acomp/js/dynamictable/DTHeadRow.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _DTHeadCell = _interopRequireDefault(__webpack_require__(/*! ./DTHeadCell */ \"./node_modules/absol-acomp/js/dynamictable/DTHeadCell.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/****\r\n * table layer: copyElt\r\n * fixY layer : copyElt1 -  elt\r\n * fixXY layer: elt\r\n *\r\n */\n\n/***\r\n *\r\n * @param {DTHead} head\r\n * @param data\r\n * @constructor\r\n */\nfunction DTHeadRow(head, data) {\n  this.head = head;\n  this.data = data;\n  this.cells = this.data.cells.map(function (cellData, i) {\n    var cell = new _DTHeadCell[\"default\"](this, cellData);\n    cell.idx = i;\n    return cell;\n  }.bind(this));\n  this._elt = null;\n  this._copyElt = null;\n  this._fixedXYElt = null;\n  this._fixedXElt = null;\n}\n\nDTHeadRow.prototype.updateCopyEltSize = function () {\n  if (!this._fixedXElt) return;\n\n  var bound = this._copyElt.getBoundingClientRect();\n\n  if (this._fixedXElt) this._fixedXElt.addStyle('height', bound.height + 'px');\n  if (this._fixedXYElt) this._fixedXYElt.addStyle('height', bound.height + 'px');\n\n  this._elt.addStyle('height', bound.height + 'px');\n\n  this.cells.forEach(function (c) {\n    return c.updateCopyEltSize();\n  });\n};\n\nObject.defineProperty(DTHeadRow.prototype, 'elt', {\n  get: function get() {\n    if (this._elt) return this._elt;\n    var fixedCol = this.adapter.fixedCol || 0;\n    var child = this.cells.slice(0, fixedCol).map(function (c) {\n      return c.copyElt1;\n    });\n    var child1 = this.cells.slice(fixedCol).map(function (c) {\n      return c.elt;\n    });\n    this._elt = (0, _ACore._)({\n      tag: 'tr',\n      \"class\": 'as-dt-head-row',\n      child: child.concat(child1)\n    });\n\n    if (this.data.attr) {\n      this.elt.attr(this.data.attr);\n    }\n\n    if (this.data.style) {\n      this.elt.addStyle(this.data.style);\n    }\n\n    return this._elt;\n  }\n});\nObject.defineProperty(DTHeadRow.prototype, 'fixedXYElt', {\n  get: function get() {\n    if (this._fixedXYElt) return this._fixedXYElt;\n    var fixedCol = this.adapter.fixedCol || 0;\n    this._fixedXYElt = (0, _ACore._)({\n      elt: this.elt.cloneNode(false),\n      \"class\": 'as-dt-fixed-xy',\n      child: this.cells.slice(0, fixedCol).map(function (c) {\n        return c.elt;\n      })\n    });\n    return this._fixedXYElt;\n  }\n});\nObject.defineProperty(DTHeadRow.prototype, 'fixedXElt', {\n  get: function get() {\n    if (this._fixedXElt) return this._fixedXElt;\n    var fixedCol = this.adapter.fixedCol || 0;\n    this._fixedXElt = (0, _ACore._)({\n      elt: this.elt.cloneNode(false),\n      \"class\": 'as-dt-fixed-x',\n      child: this.cells.slice(0, fixedCol).map(function (c) {\n        return c.copyElt2;\n      })\n    });\n    return this._fixedXElt;\n  }\n});\nObject.defineProperty(DTHeadRow.prototype, 'copyElt', {\n  get: function get() {\n    if (this._copyElt) return this.copyElt;\n    var adapter = this.adapter;\n    this._copyElt = (0, _ACore._)({\n      elt: this.elt.cloneNode(false),\n      child: this.cells.map(function (c) {\n        return c.copyElt;\n      })\n    });\n    return this._copyElt;\n  }\n});\nObject.defineProperty(DTHeadRow.prototype, 'adapter', {\n  get: function get() {\n    return this.head.adapter;\n  }\n});\nvar _default = DTHeadRow;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/dynamictable/DTHeadRow.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/dynamictable/DTRowDragController.js":
/*!*************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/dynamictable/DTRowDragController.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _Hanger = _interopRequireDefault(__webpack_require__(/*! ../Hanger */ \"./node_modules/absol-acomp/js/Hanger.js\"));\n\nvar _Vec = _interopRequireDefault(__webpack_require__(/*! absol/src/Math/Vec2 */ \"./node_modules/absol/src/Math/Vec2.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n *\r\n * @param {DTBody} body\r\n * @constructor\r\n */\nfunction DTRowDragController(body) {\n  this.body = body;\n\n  for (var key in this) {\n    if (key.startsWith('ev_')) {\n      this[key] = this[key].bind(this);\n    }\n  }\n\n  (0, _ACore._)({\n    tag: _Hanger[\"default\"].tag,\n    elt: this.body.elt,\n    on: {\n      predrag: this.ev_preDrag,\n      dragstart: this.ev_dragStart,\n      drag: this.ev_drag,\n      dragend: this.ev_dragEnd\n    }\n  });\n}\n\nDTRowDragController.prototype.ev_preDrag = function (event) {\n  var dragZone = this._finDragZone(event.target);\n\n  if (!dragZone) {\n    event.cancel();\n    return;\n  }\n\n  var row = this._findRow(event.target);\n\n  if (!row) {\n    event.cancel();\n    return;\n  }\n\n  var range = this._findDraggableRange(row);\n\n  if (range.length < 2) {\n    event.cancel();\n    return;\n  }\n\n  var rangeBounds = range.map(function (row) {\n    return row.elt.getBoundingClientRect();\n  });\n  var rowBound = row.elt.getBoundingClientRect();\n  var bodyBound = this.body.elt.getBoundingClientRect();\n  event.preventDefault();\n  var rowIdx = range.indexOf(row);\n  var rangeDataOffset = this.body.data.rows.indexOf(range[0].data);\n  this.dragData = {\n    row: row,\n    rowIdx: rowIdx,\n    //index in range\n    dragZone: dragZone,\n    rowBound: rowBound,\n    bodyBound: bodyBound,\n    bodyPos: new _Vec[\"default\"](bodyBound.left, bodyBound.top),\n    range: range,\n    rangeDataOffset: rangeDataOffset,\n    //first index in rows data\n    rangeBounds: rangeBounds,\n    started: false\n  };\n};\n\nDTRowDragController.prototype.ev_dragStart = function (event) {\n  var dragData = this.dragData;\n  dragData.started = true;\n  dragData.offset = event.currentPoint.sub(new _Vec[\"default\"](dragData.rowBound.left, dragData.rowBound.top));\n  dragData.row.elt.addClass('as-dragging');\n  dragData.range.forEach(function (row) {\n    if (row !== dragData.row) {\n      row.elt.addClass('as-drag-neighbor');\n    }\n  });\n};\n\nDTRowDragController.prototype.ev_drag = function (event) {\n  var dragData = this.dragData;\n  var currentBodyBound = this.body.elt.getBoundingClientRect();\n  var dView = new _Vec[\"default\"](currentBodyBound.left, currentBodyBound.top).sub(dragData.bodyPos);\n  var d = event.currentPoint.sub(event.startingPoint).add(dView);\n  dragData.row.elt.addStyle('transform', 'translate(0, ' + d.y + 'px)');\n  var y0 = event.currentPoint.sub(dragData.offset).y;\n\n  var beforeIdx = this._findIBeforeIdx(y0);\n\n  dragData.beforeIdx = beforeIdx;\n  var rowIdx = dragData.rowIdx;\n  var range = dragData.range;\n  var rowHeight = dragData.rowBound.height;\n  var i;\n\n  for (i = 0; i < beforeIdx && i < rowIdx; ++i) {\n    range[i].elt.addStyle('transform', 'translate(0,' + 0 + 'px)');\n  }\n\n  for (i = beforeIdx; i < rowIdx; ++i) {\n    range[i].elt.addStyle('transform', 'translate(0,' + rowHeight + 'px)');\n  }\n\n  for (i = rowIdx + 1; i < beforeIdx; ++i) {\n    range[i].elt.addStyle('transform', 'translate(0,' + -rowHeight + 'px)');\n  }\n\n  for (i = Math.max(rowIdx + 1, beforeIdx); i < range.length; ++i) {\n    range[i].elt.addStyle('transform', 'translate(0,' + 0 + 'px)');\n  }\n};\n\nDTRowDragController.prototype.ev_dragEnd = function (event) {\n  var dragData = this.dragData;\n  var fromIdx;\n  var toIdx;\n\n  if (dragData.beforeIdx === dragData.rowIdx || dragData.beforeIdx === dragData.rowIdx + 1) {\n    dragData.row.elt.addClass('as-homing');\n    dragData.range.forEach(function (row) {\n      if (row !== dragData.row) row.elt.addStyle('transform', 'translate(0,' + 0 + 'px)');\n    });\n    setTimeout(function () {\n      dragData.row.elt.addStyle('transform', 'translate(0, ' + 0 + 'px)');\n      setTimeout(function () {\n        dragData.range.forEach(function (row) {\n          if (row !== dragData.row) row.elt.removeClass('as-drag-neighbor');\n        });\n        dragData.row.elt.removeStyle('transform').removeClass('as-homing').removeClass('as-dragging');\n      }, 100);\n    }, 1);\n  } else {\n    dragData.range.forEach(function (row) {\n      if (row !== dragData.row) row.elt.removeClass('as-drag-neighbor').removeStyle('transform');\n    });\n    fromIdx = dragData.rangeDataOffset + dragData.rowIdx;\n\n    if (dragData.beforeIdx < dragData.range.length) {\n      this.body.elt.addChildBefore(dragData.row.elt, dragData.range[dragData.beforeIdx].elt);\n\n      if (dragData.beforeIdx <= dragData.rowIdx) {\n        toIdx = dragData.rangeDataOffset + dragData.beforeIdx;\n      } else {\n        toIdx = dragData.rangeDataOffset + dragData.beforeIdx - 1;\n      }\n    } else {\n      //end of range\n      this.body.elt.addChildAfter(dragData.row.elt, dragData.range[dragData.range.length - 1].elt);\n      toIdx = dragData.rangeDataOffset + dragData.range.length - 1;\n    }\n\n    dragData.row.elt.removeClass('as-dragging').removeStyle('transform');\n    this.body.rows.splice(fromIdx, 1);\n    this.body.rows.splice(toIdx, 0, dragData.row);\n    this.body.data.rows.splice(fromIdx, 1);\n    this.body.data.rows.splice(toIdx, 0, dragData.row.data);\n    this.body.reindexRows(Math.min(fromIdx, toIdx), Math.max(fromIdx, toIdx) + 1);\n    var eventData = {\n      type: 'otherchange',\n      target: dragData.row,\n      from: fromIdx,\n      to: toIdx,\n      originalEvent: event,\n      row: dragData.row,\n      data: dragData.row.data\n    };\n\n    if (dragData.row.data.on && dragData.row.data.on.orderchange) {\n      dragData.row.data.on.orderchange.call(dragData.row, eventData, dragData.row);\n    }\n\n    this.body.table.wrapper.emit('orderchange', eventData, this.body.table.wrapper);\n  }\n};\n\nDTRowDragController.prototype._finDragZone = function (elt) {\n  var cur = elt;\n\n  while (cur) {\n    if (cur.classList.contains('as-drag-zone')) return cur;\n    if (cur === this.body.elt) break;\n    cur = cur.parentElement;\n  }\n\n  return null;\n};\n\nDTRowDragController.prototype._findRow = function (elt) {\n  var cur = elt;\n\n  while (cur) {\n    if (cur.dtBodyRow) return cur.dtBodyRow;\n    if (cur === this.body.elt) break;\n    cur = cur.parentElement;\n  }\n\n  return null;\n};\n\nDTRowDragController.prototype._findDraggableRange = function (row) {\n  var children = Array.prototype.slice.call(this.body.elt.childNodes);\n  var idx = children.indexOf(row.elt);\n  if (idx < 0) return [];\n  var res = [];\n  var i;\n\n  for (i = idx - 1; i >= 0; --i) {\n    if (!children[i].dtBodyRow.draggable) break;\n    res.unshift(children[i].dtBodyRow);\n  }\n\n  for (i = idx; i < children.length; ++i) {\n    if (!children[i].dtBodyRow.draggable) break;\n    res.push(children[i].dtBodyRow);\n  }\n\n  return res;\n};\n\nDTRowDragController.prototype._findIBeforeIdx = function (y0) {\n  var currentBodyBound = this.body.elt.getBoundingClientRect();\n  var range = this.dragData.range;\n  var rangeBounds = this.dragData.rangeBounds;\n  var row = this.dragData.row;\n  var y = currentBodyBound.top - this.dragData.bodyPos.y + this.dragData.rangeBounds[0].top;\n  var dy = 0;\n  var resIdx = range.length;\n\n  for (var i = 0; i < range.length; ++i) {\n    if (range[i] === row) continue;\n    dy = rangeBounds[i].height;\n\n    if (y0 <= y + dy / 2) {\n      resIdx = i;\n      break;\n    }\n\n    y += dy;\n  }\n\n  return resIdx;\n};\n\nvar _default = DTRowDragController;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/dynamictable/DTRowDragController.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/dynamictable/DTSearchFactor.js":
/*!********************************************************************!*\
  !*** ./node_modules/absol-acomp/js/dynamictable/DTSearchFactor.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction DTSearchFactor(global) {\n  /***\r\n   * @typedef SelectionItem2\r\n   * @property {String} text\r\n   * @property {String} desc\r\n   * @property {String} __text__\r\n   * @property {String} __nvnText__\r\n   * @property {Array<String>} __words__\r\n   * @property {Array<String>} __nvnWords__\r\n   * @property {object} __wordDict__\r\n   * @property {object} __nvnWordDict__\r\n   * @module SelectionItem2\r\n   */\n  function nonAccentVietnamese(s) {\n    return s.replace(/à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ/g, \"a\").replace(/À|Á|Ạ|Ả|Ã|Â|Ầ|Ấ|Ậ|Ẩ|Ẫ|Ă|Ằ|Ắ|Ặ|Ẳ|Ẵ/g, \"A\").replace(/è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ/g, \"e\").replace(/È|É|Ẹ|Ẻ|Ẽ|Ê|Ề|Ế|Ệ|Ể|Ễ/g, \"E\").replace(/ì|í|ị|ỉ|ĩ/g, \"i\").replace(/Ì|Í|Ị|Ỉ|Ĩ/g, \"I\").replace(/ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ/g, \"o\").replace(/Ò|Ó|Ọ|Ỏ|Õ|Ô|Ồ|Ố|Ộ|Ổ|Ỗ|Ơ|Ờ|Ớ|Ợ|Ở|Ỡ/g, \"O\").replace(/ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ/g, \"u\").replace(/Ù|Ú|Ụ|Ủ|Ũ|Ư|Ừ|Ứ|Ự|Ử|Ữ/g, \"U\").replace(/ỳ|ý|ỵ|ỷ|ỹ/g, \"y\").replace(/Ỳ|Ý|Ỵ|Ỷ|Ỹ/g, \"Y\").replace(/đ/g, \"d\").replace(/Đ/g, \"D\").replace(/\\u0300|\\u0301|\\u0303|\\u0309|\\u0323/g, \"\").replace(/\\u02C6|\\u0306|\\u031B/g, \"\");\n  }\n\n  function harmonicMean(a, b) {\n    return 2 / (1 / a + 1 / b);\n  }\n\n  function wordLike(a, b) {\n    var m = a.length;\n    var n = b.length;\n\n    function map(i, j) {\n      return i * (n + 1) + j;\n    }\n\n    var Q = Array((m + 1) * (n + 1)).fill(0);\n\n    for (var i = 0; i < m; ++i) {\n      for (var j = 0; j < n; ++j) {\n        if (a.charAt(i) == b.charAt(j)) {\n          if (Q[map(i + 1, j + 1)]) {\n            if (Q[map(i + 1, j + 1)] < Q[map(i, j)] + 1) Q[map(i + 1, j + 1)] = Q[map(i, j)] + 1;\n          } else Q[map(i + 1, j + 1)] = Q[map(i, j)] + 1;\n        } else Q[map(i + 1, j + 1)] = Math.max(Q[map(i + 1, j)], Q[map(i, j + 1)]);\n      }\n    }\n\n    return Q[map(m, n)] / harmonicMean(m, n);\n  }\n\n  function wordsMatch(sq1, sq2, matchWordPow) {\n    matchWordPow = matchWordPow === undefined ? 1 : matchWordPow;\n    var m = sq1.length;\n    var n = sq2.length;\n\n    function map(i, j) {\n      return i * (n + 1) + j;\n    }\n\n    var Q = Array((m + 1) * (n + 1)).fill(0);\n    var e = 0.0;\n\n    for (var i = 0; i < m; ++i) {\n      for (var j = 0; j < n; ++j) {\n        e = Math.pow(wordLike(sq1[i], sq2[j]), matchWordPow);\n\n        if (Q[map(i + 1, j + 1)]) {\n          if (Q[map(i + 1, j + 1)] < Q[map(i, j)] + e) Q[map(i + 1, j + 1)] = Q[map(i, j)] + e;\n        } else Q[map(i + 1, j + 1)] = Q[map(i, j)] + e;\n\n        e = Math.max(Q[map(i + 1, j)], Q[map(i, j + 1)]);\n        if (e > Q[map(i + 1, j + 1)]) Q[map(i + 1, j + 1)] = e;\n      }\n    }\n\n    return Q[map(m, n)];\n  }\n\n  var EXTRA_MATCH_SCORE = 9;\n  var NVN_EXTRA_MATCH_SCORE = 8;\n  var EQUAL_MATCH_SCORE = 10;\n  var WORD_MATCH_SCORE = 3;\n  var HAS_WORD_SCORE = 30;\n  var HAS_NVN_WORD_SCORE = 29;\n  /***\r\n   *\r\n   * @param {SelectionItem2} item\r\n   * @returns {*}\r\n   */\n\n  function prepareSearchForItem(item) {\n    if (!item.text || !item.text.charAt) item.text = item.text + '';\n    var spliter = /[\\s/]+/;\n\n    var __text__ = item.text.replace(/([\\s\\b\\-()\\[\\]\"']|&#8239;|&nbsp;|&#xA0;|\\s\")+/g, ' ').trim().toLowerCase();\n\n    var __nvnText__ = nonAccentVietnamese(__text__);\n\n    item.__words__ = __text__.split(spliter);\n    item.__text__ = item.__words__.join(' ');\n\n    item.__words__.sort();\n\n    item.__wordDict__ = item.__words__.reduce(function (ac, cr, i) {\n      ac[cr] = i + 1;\n      return ac;\n    }, {});\n    item.__nvnWords__ = __nvnText__.split(spliter);\n    item.__nvnText__ = item.__nvnWords__.join(' ');\n\n    item.__nvnWords__.sort();\n\n    item.__nvnWordDict__ = item.__nvnWords__.reduce(function (ac, cr, i) {\n      ac[cr] = i + 1;\n      return ac;\n    }, {});\n    return item;\n  }\n\n  function calcItemMatchScore(queryItem, item) {\n    var score = 0;\n    if (!item.__text__) return 0;\n    var hwScore = 0;\n    var i;\n\n    for (i = 0; i < queryItem.__words__.length; ++i) {\n      if (item.__wordDict__[queryItem.__words__[i]]) {\n        hwScore += HAS_WORD_SCORE;\n      } else if (item.__nvnWordDict__[queryItem.__nvnWords__[i]]) {\n        hwScore += HAS_NVN_WORD_SCORE;\n      }\n    }\n\n    score = hwScore;\n\n    if (item.__text__ === queryItem.__text__) {\n      score += EQUAL_MATCH_SCORE;\n    }\n\n    var extraIndex = item.__text__.indexOf(queryItem.__text__);\n\n    if (extraIndex >= 0) {\n      score += EXTRA_MATCH_SCORE;\n    }\n\n    extraIndex = item.__nvnText__.indexOf(queryItem.__nvnText__);\n\n    if (extraIndex >= 0) {\n      score += EXTRA_MATCH_SCORE;\n    }\n\n    var n = Math.max(queryItem.__words__.length + 1, 1);\n    score = Math.max(score, wordsMatch(queryItem.__words__, item.__words__), wordsMatch(queryItem.__nvnWords__, item.__nvnWords__)) / n * 2 * WORD_MATCH_SCORE;\n    return score;\n  }\n\n  function scoreCmp(a, b) {\n    if (b.score === a.score) {\n      if (b.item.__nvnText__ > a.item.__nvnText__) return -1;\n      return 1;\n    }\n\n    return b.score - a.score;\n  }\n\n  function keyStringOf(o) {\n    var type = _typeof(o);\n\n    var keys;\n\n    if (o && type === \"object\") {\n      if (o.getTime) {\n        return 'd(' + o.getTime() + ')';\n      } else if (o.length && o.map) {\n        return 'a(' + o.map(function (val) {\n          return keyStringOf(val);\n        }).join(',') + ')';\n      } else {\n        keys = Object.keys(o);\n        keys.sort();\n        return 'o(' + keys.map(function (key) {\n          return key + ':' + keyStringOf(o[key]);\n        }).join(',') + ')';\n      }\n    } else {\n      return type[0] + '(' + o + ')';\n    }\n  }\n\n  function matchFilter(item, filter) {\n    if (!filter) return true;\n    var keys = item.keys;\n    if (!keys) return false;\n\n    for (var i in filter) {\n      if (!keyCmp(keys[i], filter[i])) return false;\n    }\n\n    return true;\n  }\n\n  function toComparable(x) {\n    if (!x) return x;\n\n    var type = _typeof(x);\n\n    if (type === 'string') return x;\n    if (type === \"number\") return x;\n    if (type === \"boolean\") return x;\n    if (type.getTime) return type.getTime();\n    return x;\n  }\n\n  function keyCmp(itemKey, filterKey) {\n    if (itemKey === filterKey) return true;\n    if (!itemKey !== !filterKey) return false;\n    if (!itemKey || !filterKey) return false;\n    var filterKeyString = keyStringOf(filterKey);\n\n    function withFilter(x) {\n      var xString = keyStringOf(x);\n      var res = xString === filterKeyString;\n\n      if (!res && _typeof(filterKey) === \"object\") {\n        if (filterKey.some) {\n          res = filterKey.some(function (y) {\n            return keyStringOf(y) === x;\n          });\n        } else if ('min' in filterKey || 'max' in filterKey) {\n          res = true;\n\n          if ('min' in filterKey) {\n            res = res && toComparable(x) >= toComparable(filterKey.min);\n          }\n\n          if ('max' in filterKey) {\n            res = res && toComparable(x) <= toComparable(filterKey.max);\n          }\n        }\n      }\n\n      return res;\n    }\n\n    if (itemKey.some) {\n      return itemKey.some(withFilter);\n    } else return withFilter(itemKey);\n  }\n\n  var benchmark = global.calcBenchmark();\n  /******************************************************************************************************************/\n\n  var slaves = {};\n\n  function SearchingSlave(id) {\n    this.id = id;\n    this.items = [];\n    this.itemVersion = -1;\n    this.tranferFinished = true;\n    this.pendingTask = null;\n    this.taskSession = Math.random() + '';\n    this.scoredHolders = [];\n    this.searchingSession = Math.random() + '';\n  }\n\n  SearchingSlave.prototype.onReceiveItems = function (n, start, end, items, version) {\n    if (this.scoredHolders.length > start) {\n      this.scoredHolders.splice(start);\n    }\n\n    var cItems = this.items;\n\n    if (cItems.length < n) {\n      // sessionItems\n      cItems.push(null);\n    }\n\n    if (cItems.length > n) {\n      cItems.splice(n);\n    }\n\n    this.itemVersion = version;\n\n    for (var i = start; i < end; ++i) {\n      cItems[i] = items[i - start];\n    }\n\n    if (end === n) {\n      this.tranferFinished = true;\n      this.doTask();\n    } else {\n      this.tranferFinished = false;\n    }\n  };\n\n  SearchingSlave.prototype.doTask = function () {\n    if (!this.pendingTask) return;\n    if (this.searchingSession === this.taskSession) return;\n    var self = this;\n    this.searchingSession = this.taskSession;\n    var session = this.searchingSession;\n    var items = this.items;\n    var its = this.scoredHolders;\n    var taskData = this.pendingTask;\n    var itemVersion = this.itemVersion;\n    var queryText = taskData.query.text;\n    var filter = taskData.query.filter;\n    var sort = taskData.query.sort;\n    var queryTextItem = null;\n    if (queryText) queryTextItem = prepareSearchForItem({\n      text: queryText\n    });\n\n    var sortCmp = function sortCmp(a, b) {\n      var aKeys = a.item.keys;\n      var bKeys = b.item.keys;\n      var key;\n      var av, bv;\n      var d = 0;\n\n      if (aKeys && !bKeys) {\n        d = 1;\n      } else if (!aKeys && bKeys) {\n        d = -1;\n      } else if (aKeys && bKeys) {\n        for (var i = 0; i < sort.length; ++i) {\n          key = sort[i].key;\n          d = aKeys[key] - bKeys[key];\n\n          if (isNaN(d)) {\n            if (aKeys[key] < bKeys[key]) {\n              d = -1;\n            } else if (aKeys[key] === bKeys[key]) {\n              d = 0;\n            } else {\n              d = 1;\n            }\n          }\n\n          if (sort[i].order === 'descending') d = -d;\n          if (d !== 0) break;\n        }\n      }\n\n      if (d === 0) {\n        d = a.i - b.i;\n      }\n\n      return d;\n    };\n\n    function likeSort(items) {\n      var minValue = Infinity;\n      var maxValue = -Infinity;\n      var i;\n      var n = items.length;\n      var item;\n\n      for (i = 0; i < n; ++i) {\n        item = items[i];\n        if (item.score < minValue) minValue = item.score;\n        if (item.score > maxValue) maxValue = item.score;\n      }\n\n      var segments = [[], [], [], [], [], [], [], []];\n      var threshold = maxValue - (maxValue - minValue) / 4;\n      if (maxValue < 3) threshold = maxValue - (maxValue - minValue) / 8;\n      var d = (maxValue - threshold) / (segments.length - 1);\n      var v;\n      var k;\n\n      for (i = 0; i < n; ++i) {\n        item = items[i];\n        v = item.score;\n        if (v < threshold || v < 0.8) continue;\n        if (v >= maxValue) segments[segments.length - 1].push(item);else {\n          k = (v - threshold) / d >> 0;\n          segments[k].push(item);\n        }\n      }\n\n      var res = [];\n      var segment;\n\n      while (segments.length > 0) {\n        segment = segments.pop();\n\n        if (segment.length > 0) {\n          if (sort) {\n            segment.sort(sortCmp);\n          } else {\n            if (segment.length + res.length < 1000) segment.sort(scoreCmp);\n          }\n\n          res = res.concat(segment);\n        }\n      }\n\n      return res;\n    }\n\n    function sortScore() {\n      var result = its;\n\n      if (filter) {\n        result = result.filter(function (x) {\n          return !!x;\n        });\n      } // var now = new Date().getTime();\n\n\n      if (queryTextItem) {\n        result = likeSort(result);\n      } else if (sort) {\n        result.sort(sortCmp);\n      } // console.log(\"SortTime:\", new Date().getTime() - now)\n\n\n      result = result.map(function (it) {\n        return it.i;\n      });\n      self.searchingSession = 'done';\n      global.emit('searchEnd', self.id, Object({\n        hash: taskData.hash,\n        idx: taskData.idx,\n        result: result,\n        itemVersion: self.itemVersion\n      }));\n    }\n\n    function tick() {\n      if (self.taskSession !== session) return;\n\n      if (self.itemVersion !== itemVersion) {\n        return;\n      }\n\n      if (its.length >= items.length) {\n        sortScore();\n        return;\n      }\n\n      var k = benchmark * 5;\n      if (!queryTextItem) k *= 30;\n      var i = its.length;\n      var n = items.length;\n\n      while (k-- && i < n) {\n        if (!filter || matchFilter(items[i], filter)) {\n          if (!items[i].prepare && queryTextItem) {\n            items[i].prepare = true;\n            prepareSearchForItem(items[i]);\n          }\n\n          its.push({\n            i: i,\n            item: items[i],\n            score: queryTextItem ? calcItemMatchScore(queryTextItem, items[i]) : 0\n          });\n        } else {\n          its.push(null);\n        }\n\n        ++i;\n      }\n\n      setTimeout(tick, 5);\n    }\n\n    tick();\n  };\n\n  SearchingSlave.prototype.receiveTask = function (taskData) {\n    this.pendingTask = taskData && taskData.query && taskData;\n    this.taskSession = taskData && taskData.idx;\n    this.scoredHolders = [];\n    if (this.tranferFinished && this.pendingTask) this.doTask();\n  };\n\n  SearchingSlave.prototype.destroy = function () {\n    this.items = null;\n    delete slaves[this.id];\n  };\n\n  global.destroySlave = function (id) {\n    slaves[id] && slaves[id].destroy();\n  };\n  /******************************************************************************************************************/\n\n\n  var data = {};\n\n  global.transferTask = function (id, taskData) {\n    slaves[id] = slaves[id] || new SearchingSlave(id);\n    slaves[id] && slaves[id].receiveTask(taskData);\n  };\n\n  global.transferSearchItems = function (id, n, start, end, items, version) {\n    slaves[id] = slaves[id] || new SearchingSlave(id);\n    slaves[id].onReceiveItems(n, start, end, items, version);\n  };\n\n  global.search = function (session, query) {\n    var holder = data[session];\n    if (!holder) return false;\n    var searchingSession = Math.random() + '';\n    holder.searchingSession = searchingSession;\n    var now = new Date().getTime();\n    var items = data[session] && data[session].items;\n    var its = Array(items.length);\n    var queryItem = prepareSearchForItem({\n      text: query\n    });\n    var resolve;\n    var sync = new Promise(function (rs) {\n      resolve = rs;\n    });\n\n    function calcValue() {\n      var i = 0;\n      var n = items.length;\n\n      function tick() {\n        if (searchingSession !== holder.searchingSession) {\n          resolve(false);\n          return;\n        }\n\n        var c = benchmark * 5;\n\n        while (c-- && i < n) {\n          its[i] = {\n            i: i,\n            item: items[i],\n            score: calcItemMatchScore(queryItem, items[i])\n          };\n          ++i;\n        }\n\n        if (i < n) {\n          setTimeout(tick, 3);\n        } else {\n          setTimeout(sortScore, 3);\n        }\n      }\n\n      tick();\n    }\n\n    function sortScore() {\n      if (searchingSession !== holder.searchingSession) {\n        resolve(false);\n        return;\n      }\n\n      now = new Date().getTime();\n      var result = likeSort(its).map(function (it) {\n        return it.i;\n      });\n      resolve(result);\n    }\n\n    setTimeout(calcValue, 3);\n    return sync;\n  };\n}\n\nvar _default = DTSearchFactor;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/dynamictable/DTSearchFactor.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/dynamictable/DTTable.js":
/*!*************************************************************!*\
  !*** ./node_modules/absol-acomp/js/dynamictable/DTTable.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _DTHead = _interopRequireDefault(__webpack_require__(/*! ./DTHead */ \"./node_modules/absol-acomp/js/dynamictable/DTHead.js\"));\n\nvar _DTBody = _interopRequireDefault(__webpack_require__(/*! ./DTBody */ \"./node_modules/absol-acomp/js/dynamictable/DTBody.js\"));\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n *\r\n * @param {DynamicTable} elt\r\n * @param {} data\r\n * @constructor\r\n */\nfunction DTTable(wrapper, data) {\n  this.wrapper = wrapper;\n  this._elt = null;\n  this._fixedXElt = null;\n  this._fixedXYElt = null;\n  this._fixedYElt = null;\n  /***\r\n   *\r\n   * @type {DTDataTable|null|*|string}\r\n   */\n\n  this.adapter = this.wrapper._adapter;\n  this.data = data;\n  this.header = new _DTHead[\"default\"](this, this.data.head);\n  this.body = new _DTBody[\"default\"](this, this.data.body);\n}\n\nDTTable.prototype.updateCopyEltSize = function () {\n  if (!this._fixedYElt) return;\n\n  var bound = this._elt.getBoundingClientRect();\n\n  if (this._fixedYElt) this._fixedYElt.addStyle('width', bound.width + 'px');\n  this.header.updateCopyEltSize();\n  this.body.updateCopyEltSize();\n};\n\nDTTable.prototype.revokeResource = function () {\n  this.body.revokeResource();\n};\n\nObject.defineProperty(DTTable.prototype, 'elt', {\n  get: function get() {\n    if (this._elt) return this._elt;\n    this._elt = (0, _ACore._)({\n      tag: 'table',\n      \"class\": 'as-dynamic-table',\n      child: [this.header.copyElt, this.body.elt]\n    });\n    return this._elt;\n  }\n});\nObject.defineProperty(DTTable.prototype, 'fixedXElt', {\n  get: function get() {\n    if (this._fixedXElt) return this._fixedXElt;\n    this._fixedXElt = (0, _ACore._)({\n      elt: this.elt.cloneNode(false),\n      \"class\": 'as-fixed-x',\n      child: [this.header.fixedXElt, this.body.fixedXElt]\n    });\n    return this._fixedXElt;\n  }\n});\nObject.defineProperty(DTTable.prototype, 'fixedYElt', {\n  get: function get() {\n    if (this._fixedYElt) return this._fixedYElt;\n    this._fixedYElt = (0, _ACore._)({\n      elt: this.elt.cloneNode(false),\n      \"class\": 'as-dt-fixed-y',\n      child: [this.header.elt]\n    });\n    return this._fixedYElt;\n  }\n});\nObject.defineProperty(DTTable.prototype, 'fixedXYElt', {\n  get: function get() {\n    if (this._fixedXYElt) return this._fixedXYElt;\n    this._fixedXYElt = (0, _ACore._)({\n      elt: this.elt.cloneNode(false),\n      \"class\": 'as-dt-fixed-y',\n      child: [this.header.fixedXYElt]\n    });\n    return this._fixedXYElt;\n  }\n});\nvar _default = DTTable;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/dynamictable/DTTable.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/dynamictable/DTWaitingViewController.js":
/*!*****************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/dynamictable/DTWaitingViewController.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n/***\r\n *\r\n * @param {DynamicTable} tableElt\r\n * @constructor\r\n */\nfunction DTWaitingViewController(tableElt) {\n  this.tableElt = tableElt;\n  this.tokens = {};\n  this.traceToken = {};\n  this.timeoutIdx = -1;\n}\n\nDTWaitingViewController.prototype.begin = function () {\n  var token = Math.random() + '';\n  if (this.tableElt.$searchInput) this.tableElt.$searchInput.waiting = true;\n  this.tokens[token] = true;\n  this.traceToken[token] = new Error(token);\n\n  if (this.timeoutIdx > 0) {\n    clearTimeout(this.timeoutIdx);\n    this.timeoutIdx = -1;\n  }\n\n  return token;\n};\n\nDTWaitingViewController.prototype.end = function (token) {\n  delete this.tokens[token];\n  delete this.traceToken[token];\n\n  if (this.timeoutIdx > 0) {\n    clearTimeout(this.timeoutIdx);\n  }\n\n  this.timeoutIdx = setTimeout(function () {\n    this.timeoutIdx = -1;\n\n    for (var i in this.tokens) {\n      return;\n    }\n\n    if (this.tableElt.$searchInput) this.tableElt.$searchInput.waiting = false;\n  }.bind(this), 100);\n};\n\nvar _default = DTWaitingViewController;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/dynamictable/DTWaitingViewController.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/dynamictable/DynamicTable.js":
/*!******************************************************************!*\
  !*** ./node_modules/absol-acomp/js/dynamictable/DynamicTable.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _DTDataAdapter = _interopRequireDefault(__webpack_require__(/*! ./DTDataAdapter */ \"./node_modules/absol-acomp/js/dynamictable/DTDataAdapter.js\"));\n\n__webpack_require__(/*! ../../css/dynamictable.css */ \"./node_modules/absol-acomp/css/dynamictable.css\");\n\nvar _DTWaitingViewController = _interopRequireDefault(__webpack_require__(/*! ./DTWaitingViewController */ \"./node_modules/absol-acomp/js/dynamictable/DTWaitingViewController.js\"));\n\nvar _noop = _interopRequireDefault(__webpack_require__(/*! absol/src/Code/noop */ \"./node_modules/absol/src/Code/noop.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _ResizeSystem = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/ResizeSystem */ \"./node_modules/absol/src/HTML5/ResizeSystem.js\"));\n\nvar _DomSignal = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/DomSignal */ \"./node_modules/absol/src/HTML5/DomSignal.js\"));\n\nvar _Dom = __webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\");\n\nvar _Scroller = __webpack_require__(/*! ../Scroller */ \"./node_modules/absol-acomp/js/Scroller.js\");\n\nvar _Vec = _interopRequireDefault(__webpack_require__(/*! absol/src/Math/Vec2 */ \"./node_modules/absol/src/Math/Vec2.js\"));\n\nvar _DTTable = _interopRequireDefault(__webpack_require__(/*! ./DTTable */ \"./node_modules/absol-acomp/js/dynamictable/DTTable.js\"));\n\nvar _Hanger = _interopRequireDefault(__webpack_require__(/*! ../Hanger */ \"./node_modules/absol-acomp/js/Hanger.js\"));\n\nvar _DynamicCSS = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/DynamicCSS */ \"./node_modules/absol/src/HTML5/DynamicCSS.js\"));\n\nvar _Rectangle = _interopRequireDefault(__webpack_require__(/*! absol/src/Math/Rectangle */ \"./node_modules/absol/src/Math/Rectangle.js\"));\n\nvar _stringGenerate = __webpack_require__(/*! absol/src/String/stringGenerate */ \"./node_modules/absol/src/String/stringGenerate.js\");\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nvar _attribute = __webpack_require__(/*! absol/src/JSX/attribute */ \"./node_modules/absol/src/JSX/attribute.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar _loadStyleSheet = function loadStyleSheet() {\n  var dynamicStyleSheet = {};\n  var key = Array(20).fill(0).map(function (u, i) {\n    return ['.as-dynamic-table-wrapper.as-hide-col-' + i + ' td[data-col-idx=\"' + i + '\"]', '.as-dynamic-table-wrapper.as-hide-col-' + i + ' th[data-col-idx=\"' + i + '\"]'].join(', ');\n  }).join(',\\n');\n  dynamicStyleSheet[key] = {\n    display: 'none'\n  };\n  (0, _utils.buildCss)(dynamicStyleSheet);\n  _loadStyleSheet = _noop[\"default\"];\n};\n\nfunction DynamicTableManager() {\n  this.tables = [];\n  this.storageChanged = false;\n}\n\nDynamicTableManager.prototype.STORE_KEY = 'DynamicTableSetting';\nDynamicTableManager.prototype.VER = 2;\n\nDynamicTableManager.prototype.initIfNeed = function () {\n  if (this.css) return;\n  this.css = new _DynamicCSS[\"default\"]();\n  this.tables = [];\n\n  try {\n    var json = localStorage.getItem(this.STORE_KEY);\n\n    if (json) {\n      this.data = JSON.parse(json);\n      if (!this.data || this.data.ver !== this.VER) this.data = null;\n    }\n  } catch (er) {}\n\n  this.data = this.data || {\n    ver: this.VER,\n    colWidth: {}\n  };\n  this.initCss();\n};\n\nDynamicTableManager.prototype.initCss = function () {\n  var _this = this;\n\n  Object.keys(this.data.colWidth).forEach(function (tableId) {\n    Object.keys(_this.data.colWidth[tableId]).forEach(function (colId) {\n      var value = _this.data.colWidth[tableId][colId];\n\n      _this.css.setProperty(\"#\".concat(tableId, \" th[data-col-id=\\\"\").concat(colId, \"\\\"]\"), 'width', value + 'px');\n    });\n  });\n  this.css.commit();\n};\n\nDynamicTableManager.prototype.add = function (table) {\n  this.tables.push(table);\n};\n\nDynamicTableManager.prototype.removeTrash = function () {\n  this.tables = this.tables.filter(function (table) {\n    return table.isDescendantOf(document.body);\n  });\n};\n\nDynamicTableManager.prototype.commitColWidth = function (sender, tableId, colId, value, storage) {\n  this.setColWidth(tableId, colId, value, storage);\n  this.removeTrash();\n  this.commit();\n  this.tables.forEach(function (table) {\n    if (table.id === table && table !== sender) {\n      table.requestUpdateSize();\n    }\n  });\n};\n\nDynamicTableManager.prototype.hasColSize = function (tableId, colId) {\n  return this.data.colWidth[tableId] && this.data.colWidth[tableId][colId];\n};\n\nDynamicTableManager.prototype.setColWidth = function (tableId, colId, value, storage) {\n  if (storage) {\n    this.data.colWidth[tableId] = this.data.colWidth[tableId] || {};\n    this.data.colWidth[tableId][colId] = value;\n    this.storageChanged = true;\n  }\n\n  this.css.setProperty(\"#\".concat(tableId, \" th[data-col-id=\\\"\").concat(colId, \"\\\"]\"), 'width', value + 'px');\n};\n\nDynamicTableManager.prototype.commit = function () {\n  if (this.storageChanged) {\n    localStorage.setItem(this.STORE_KEY, JSON.stringify(this.data));\n    this.storageChanged = false;\n  }\n\n  this.css.commit();\n};\n\nvar manager = new DynamicTableManager();\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction DynamicTable() {\n  var _this2 = this;\n\n  manager.initIfNeed();\n\n  _loadStyleSheet();\n\n  this.css = new _DynamicCSS[\"default\"]();\n  this._hiddenColumns = [];\n  /***\r\n   *\r\n   * @type {SearchTextInput|null}\r\n   */\n\n  this.$searchInput = null;\n  /***\r\n   *\r\n   * @type {AElement}\r\n   */\n\n  this.$table = (0, _ACore.$)('.as-dynamic-table', this);\n  /***\r\n   *\r\n   * @type {AElement}\r\n   */\n\n  this.$thead = (0, _ACore.$)('.as-dynamic-table>thead', this.$table);\n  /***\r\n   *\r\n   * @type {AElement}\r\n   */\n\n  this.$tbody = (0, _ACore.$)('.as-dynamic-table>tbody', this.$table);\n  this.$filterInputs = [];\n  this.$attachhook = (0, _ACore._)('attachhook').addTo(this);\n  this.domSignal = new _DomSignal[\"default\"]((0, _ACore._)('attachhook').addTo(this)); //controller\n\n  this.table = null;\n  this.$space = (0, _ACore.$)('.as-dynamic-table-space', this);\n  this.$fixedYCtn = (0, _ACore.$)('.as-dynamic-table-fixed-y-ctn', this);\n  this.$fixedXCtn = (0, _ACore.$)('.as-dynamic-table-fixed-x-ctn', this);\n  this.$fixedXYCtn = (0, _ACore.$)('.as-dynamic-table-fixed-xy-ctn', this);\n  this.$viewport = (0, _ACore.$)('.as-dynamic-table-viewport', this);\n  this.$hscrollbar = (0, _ACore.$)('.as-dynamic-table-hb', this);\n  this.$vscrollbar = (0, _ACore.$)('.as-dynamic-table-vb', this);\n  this.$pageSelector = new VirtualPageSelector(this);\n  this.extendStyle = {}; // this.$attachhook.requestUpdateSize = this.fixedContentCtrl.updateSize.bind(this.fixedContentCtrl);\n\n  this.$attachhook.requestUpdateSize = this.requestUpdateSize.bind(this);\n  this.$attachhook.on('attached', function () {\n    _ResizeSystem[\"default\"].add(_this2.$attachhook);\n\n    _this2.layoutCtrl.onAttached();\n\n    _this2.colSizeCtrl.onAttached();\n\n    manager.add(_this2);\n  });\n  /***\r\n   *\r\n   * @type {DTDataTable||null}\r\n   */\n\n  this.adapter = null;\n  this.waitingCtl = new _DTWaitingViewController[\"default\"](this);\n  this.layoutCtrl = new LayoutController(this);\n  this.pointerCtrl = new PointerController(this);\n  this.colSizeCtrl = new ColSizeController(this);\n  this.rowDragCtrl = new RowDragController(this);\n\n  var checkAlive = function checkAlive() {\n    if (_this2.isDescendantOf(document.body)) {\n      setTimeout(checkAlive, 5000);\n    } else {\n      _this2.revokeResource();\n    }\n  };\n\n  setTimeout(checkAlive, 30000);\n}\n\nDynamicTable.tag = 'DynamicTable'.toLowerCase();\n\nDynamicTable.render = function () {\n  return (0, _ACore._)({\n    id: 'no-id-' + (0, _stringGenerate.randomIdent)(10),\n    extendEvent: ['orderchange', 'colresize'],\n    \"class\": 'as-dynamic-table-wrapper',\n    child: [{\n      tag: _Hanger[\"default\"].tag,\n      \"class\": 'as-dynamic-table-viewport',\n      child: [{\n        \"class\": 'as-dynamic-table-space'\n      }, {\n        \"class\": 'as-dynamic-table-fixed-y-ctn'\n      }, {\n        \"class\": 'as-dynamic-table-fixed-x-ctn'\n      }, {\n        \"class\": 'as-dynamic-table-fixed-xy-ctn'\n      }]\n    }, {\n      tag: _Scroller.VScrollbar,\n      \"class\": 'as-dynamic-table-vb'\n    }, {\n      tag: _Scroller.HScrollbar,\n      \"class\": 'as-dynamic-table-hb'\n    }]\n  });\n};\n\nDynamicTable.prototype.styleHandlers = {};\n/***\r\n * @this {DynamicTable}\r\n * @param value\r\n */\n\nDynamicTable.prototype.styleHandlers.minWidth = function (value) {\n  this.extendStyle.minWidth = value; //todo\n};\n\nDynamicTable.prototype.styleHandlers['min-width'] = DynamicTable.prototype.styleHandlers.minWidth;\n\nDynamicTable.prototype.addStyle = function (arg0, arg1) {\n  if (this.styleHandlers[arg0]) {\n    this.styleHandlers[arg0].call(this, arg1);\n  } else {\n    _AElement[\"default\"].prototype.addStyle.apply(this, arguments);\n  }\n};\n\nDynamicTable.prototype.requestUpdateSize = function () {\n  this.layoutCtrl.onResize();\n};\n\nDynamicTable.prototype.revokeResource = function () {\n  this.css.stop();\n  this.table && this.table.revokeResource();\n  this.attachSearchInput(null);\n  this.filterInputs = [];\n};\n\nDynamicTable.prototype.addRowBefore = function (rowData, bf) {\n  return this.table.body.addRowBefore(rowData, bf);\n};\n\nDynamicTable.prototype.addRowAfter = function (rowData, at) {\n  return this.table.body.addRowAfter(rowData, at);\n};\n\nDynamicTable.prototype.replaceRow = function (rowData, rp) {\n  var row = this.rowOf(rp);\n\n  if (row) {\n    row.updateData(rowData);\n  }\n\n  _ResizeSystem[\"default\"].requestUpdateSignal();\n};\n\nDynamicTable.prototype.addRow = function (rowData, idx) {\n  return this.table.body.addRow(rowData, idx);\n};\n\nDynamicTable.prototype.addRows = function (rowsData, idx) {\n  return this.table.body.addRows(rowsData, idx);\n};\n\nDynamicTable.prototype.removeRow = function (row) {\n  return this.table.body.removeRow(row);\n};\n\nDynamicTable.prototype.rowAt = function (idx) {\n  return this.table.body.rowAt(idx);\n};\n\nDynamicTable.prototype.rowOf = function (o) {\n  return this.table.body.rowOf(o);\n};\n\nDynamicTable.prototype.rowIndexOf = function (o) {\n  return this.table.body.rowIndexOf(o);\n};\n\nDynamicTable.prototype.getRows = function () {\n  return this.table.body.rows;\n};\n\nDynamicTable.prototype.requireRows = function (start, end) {\n  return this.table.body.requireRows(start, end);\n};\n\nDynamicTable.prototype.clearRows = function () {\n  return this.table.body.clearRows();\n};\n\nDynamicTable.prototype.viewIntoRow = function (row) {\n  this.table.body.viewIntoRow(row);\n};\n\nDynamicTable.prototype.attachSearchInput = function (inputElt) {\n  if (this.$searchInput) {\n    this.$searchInput.off('stoptyping', this.eventHandler.searchModify);\n    this.$searchInput.off('keyup', this.eventHandler.searchKeyUp);\n  }\n\n  this.$searchInput = inputElt;\n\n  if (this.$searchInput) {\n    if (this.$searchInput.$table) {\n      this.$searchInput.off('stoptyping', this.$searchInput.$table.eventHandler.searchModify);\n      this.$searchInput.off('keyup', this.$searchInput.$table.eventHandler.searchKeyUp);\n    }\n\n    this.$searchInput.$table = this;\n    this.$searchInput.on('stoptyping', this.eventHandler.searchModify);\n    this.$searchInput.on('keyup', this.eventHandler.searchKeyUp);\n  }\n};\n\nDynamicTable.prototype.filter = function (filter) {\n  var query = {};\n  var queryText = this.$searchInput && this.$searchInput.value || '';\n  queryText = queryText.trim().replace(/\\s\\s+/g, ' ');\n  var i;\n\n  if (filter) {\n    for (i in filter) {\n      query.filter = filter;\n      break;\n    }\n  }\n\n  if (queryText && queryText.length > 0) query.text = queryText;\n\n  for (i in query) {\n    this.query(query);\n    return;\n  }\n\n  this.query(null);\n};\n\nDynamicTable.prototype.makeQuery = function () {\n  var query = {};\n  var textQuery = this.$searchInput && this.$searchInput.value.trim().replace(/\\s\\s+/, ' ');\n  if (textQuery && textQuery.length > 0) query.text = textQuery;\n  var i;\n  var filter = this.$filterInputs.reduce(function (ac, elt) {\n    if (elt.exportFilter) {\n      elt.exportFilter(ac);\n    } else if (elt.name) {\n      ac[elt.name] = elt.value;\n    }\n\n    return ac;\n  }, {});\n  var sort = (0, _ACore.$$)('th', this.table.header.elt).reduce(function (ac, cr) {\n    var key = cr.attr('data-sort-key');\n    var order = cr.attr('data-sort-order');\n\n    if (key && order && order !== 'none') {\n      ac.push({\n        key: key,\n        order: order\n      });\n    }\n\n    return ac;\n  }, []);\n\n  for (i in filter) {\n    query.filter = filter;\n    break;\n  }\n\n  if (sort.length > 0) {\n    query.sort = sort;\n  }\n\n  for (i in query) {\n    return query;\n  }\n\n  return null;\n};\n\nDynamicTable.prototype.requestQuery = function () {\n  var query = this.makeQuery();\n  this.query(query);\n};\n\nDynamicTable.prototype.query = function (query) {\n  this.table.body.query(query);\n};\n\nDynamicTable.prototype.addFilter = function (inputElt) {\n  if (inputElt.$dynamicTable) {\n    inputElt.$dynamicTable.removeFilter(inputElt);\n  }\n\n  inputElt.$dynamicTable = this;\n  inputElt.on('change', this.eventHandler.searchModify);\n  this.$filterInputs.push(inputElt);\n};\n\nDynamicTable.prototype.removeFilter = function (inputElt) {\n  if (inputElt.$dynamicTable !== this) return;\n  inputElt.$dynamicTable = null;\n  inputElt.off('change', this.eventHandler.searchModify);\n  var idx = this.$filterInputs.indexOf(inputElt);\n  if (idx >= 0) this.$filterInputs.splice(idx, 1);\n};\n\nDynamicTable.prototype.notifyRowChange = function (row) {\n  var idx = this.table.body.rowIndexOf(row);\n  if (idx >= 0) this.table.body.onRowSplice(idx);\n};\n\nDynamicTable.prototype.notifyRowsChange = _noop[\"default\"];\nDynamicTable.property = {};\nDynamicTable.property.adapter = {\n  /***\r\n   * @this DynamicTable\r\n   * @param data\r\n   */\n  set: function set(data) {\n    if (!data) return;\n    this._adapterData = data;\n    this._adapter = new _DTDataAdapter[\"default\"](this, data);\n    this.layoutCtrl.onAdapter();\n    this.table = new _DTTable[\"default\"](this, this._adapterData.data);\n    this.$space.clearChild().addChild(this.table.elt);\n    this.$fixedYCtn.clearChild().addChild(this.table.fixedYElt);\n    this.$fixedXCtn.clearChild().addChild(this.table.fixedXElt);\n    this.$fixedXYCtn.clearChild().addChild(this.table.fixedXYElt);\n    if (this.extendStyle) this.addStyle(this.extendStyle);\n  },\n  get: function get() {\n    return this._adapterData;\n  }\n};\nDynamicTable.property.filterInputs = {\n  set: function set(inputs) {\n    var _this3 = this;\n\n    inputs = inputs || [];\n    this.$filterInputs.slice().forEach(function (input) {\n      _this3.removeFilter(input);\n    });\n    inputs.forEach(function (input) {\n      return _this3.addFilter(input);\n    });\n  },\n  get: function get() {\n    return this.$filterInputs;\n  }\n};\nDynamicTable.property.hiddenColumns = {\n  set: function set(value) {\n    value = value || [];\n\n    this._hiddenColumns.forEach(function (idxV) {\n      this.removeClass('as-hide-col-' + idxV);\n    }.bind(this));\n\n    this._hiddenColumns = value;\n\n    this._hiddenColumns.forEach(function (idxV) {\n      this.addClass('as-hide-col-' + idxV);\n    }.bind(this));\n\n    var c = this.parentElement;\n\n    while (c) {\n      if (c.hasClass && c.hasClass('absol-table-vscroller') && c.update) {\n        c.update();\n        break;\n      }\n\n      c = c.parentElement;\n    }\n  },\n  get: function get() {\n    return this._hiddenColumns;\n  }\n};\n/***\r\n * @memberOf {DynamicTable#}\r\n * @type {{}}\r\n */\n\nDynamicTable.eventHandler = {};\n/***\r\n * @this DynamicTable#\r\n * @param event\r\n */\n\nDynamicTable.eventHandler.searchModify = function (event) {\n  this.requestQuery();\n};\n/***\r\n * @this DynamicTable#\r\n * @param event\r\n */\n\n\nDynamicTable.eventHandler.searchKeyUp = function (event) {\n  setTimeout(function () {\n    var query = this.$searchInput.value;\n    query = query.trim().replace(/\\s+/, ' ');\n    if (query.length) this.table.body.startSearchingIfNeed();\n  }.bind(this), 30);\n};\n\nDynamicTable.prototype.getColWidth = function () {\n  return this.colSizeCtrl.getColWidth();\n};\n\nDynamicTable.prototype.setColWidth = function (colId, value) {\n  return this.colSizeCtrl.setColWidth(colId, value);\n};\n\n_ACore[\"default\"].install(DynamicTable);\n\nvar _default = DynamicTable;\n/***\r\n *\r\n * @param {DynamicTable} elt\r\n * @constructor\r\n */\n\nexports[\"default\"] = _default;\n\nfunction LayoutController(elt) {\n  var _this4 = this;\n\n  /***\r\n   *\r\n   * @type {DynamicTable}\r\n   */\n  this.elt = elt;\n  this.maxRows = Math.ceil(Math.max((0, _Dom.getScreenSize)().height / 40, 1080 / 40));\n  this.offset = _Vec[\"default\"].ZERO;\n  Object.keys(this.constructor.prototype).forEach(function (key) {\n    if (key.startsWith('ev_')) _this4[key] = _this4[key].bind(_this4);\n  });\n  this.elt.$hscrollbar.on('scroll', this.ev_hScrollbarScroll);\n  this.elt.$vscrollbar.on('scroll', this.ev_vScrollbarScroll);\n  this.elt.on('wheel', this.ev_wheel);\n  this.scrollingDir = _Vec[\"default\"].ZERO;\n  this.scrollingStartOffset = _Vec[\"default\"].ZERO;\n}\n/***\r\n *\r\n * @param {WheelEvent} event\r\n */\n\n\nLayoutController.prototype.ev_wheel = function (event) {\n  var isOverflowY = this.elt.hasClass('as-overflow-y');\n  var isOverflowX = this.elt.hasClass('as-overflow-x');\n  var dy = event.deltaY;\n  var prevOffset;\n\n  if (isOverflowY && (!event.shiftKey || !isOverflowX)) {\n    prevOffset = this.elt.$vscrollbar.innerOffset;\n\n    if (dy > 0) {\n      this.elt.$vscrollbar.innerOffset = Math.max(Math.min(prevOffset + 100 / 40, this.elt.$vscrollbar.innerHeight - this.elt.$vscrollbar.outerHeight), 0);\n\n      if (prevOffset !== this.elt.$vscrollbar.innerOffset) {\n        event.preventDefault();\n        this.elt.$vscrollbar.emit('scroll');\n      }\n    } else if (dy < 0) {\n      this.elt.$vscrollbar.innerOffset = Math.max(Math.min(prevOffset - 100 / 40, this.elt.$vscrollbar.innerHeight - this.elt.$vscrollbar.outerHeight), 0);\n\n      if (prevOffset !== this.elt.$vscrollbar.innerOffset) {\n        event.preventDefault();\n        this.elt.$vscrollbar.emit('scroll');\n      }\n    }\n  } else if (isOverflowX && (event.shiftKey || !isOverflowY)) {\n    prevOffset = this.elt.$hscrollbar.innerOffset;\n\n    if (dy > 0) {\n      this.elt.$hscrollbar.innerOffset = Math.max(Math.min(prevOffset + 100, this.elt.$hscrollbar.innerWidth - this.elt.$hscrollbar.outerWidth), 0);\n\n      if (prevOffset !== this.elt.$hscrollbar.innerOffset) {\n        event.preventDefault();\n        this.elt.$hscrollbar.emit('scroll');\n      }\n    } else if (dy < 0) {\n      this.elt.$hscrollbar.innerOffset = Math.max(Math.min(prevOffset - 100, this.elt.$hscrollbar.innerWidth - this.elt.$hscrollbar.outerWidth), 0);\n\n      if (prevOffset !== this.elt.$hscrollbar.innerOffset) {\n        event.preventDefault();\n        this.elt.$hscrollbar.emit('scroll');\n      }\n    }\n  }\n};\n\nLayoutController.prototype.onAdapter = function () {\n  var adapter = this.elt.adapter;\n  if (this.elt.style.height === 'auto') this.elt.removeStyle('height');\n\n  if (adapter.fixedCol > 0) {\n    this.elt.addClass('as-has-fixed-col');\n  } else {\n    this.elt.removeClass('as-has-fixed-col');\n  }\n\n  if ((adapter === null || adapter === void 0 ? void 0 : adapter.rowsPerPage) === Infinity) {\n    this.elt.addStyle('as-adapt-infinity-grow');\n  } else {\n    this.elt.addStyle('as-adapt-infinity-grow');\n  }\n};\n\nLayoutController.prototype.handleMinWidth = function () {\n  var minWidth = this.elt.extendStyle.minWidth || this.elt.table.elt.getComputedStyleValue('min-width');\n  var mv = (0, _attribute.parseMeasureValue)(minWidth);\n  if (!mv) return;\n  if (mv.unit !== 'px') return;\n  if (!this.elt.table.elt.firstChild || !this.elt.table.elt.firstChild.firstChild) return;\n  var bound = this.elt.table.elt.firstChild.firstChild.getBoundingClientRect();\n  if (bound.width >= mv.value) return; //copyElt\n\n  var cells = this.elt.table.header.rows[0].cells;\n  var freeCells = cells.filter(function (cell) {\n    return !cell.data.style || !cell.data.style.width;\n  });\n  if (freeCells.length === 0) return;\n  var cellWidths = freeCells.map(function (cell) {\n    return cell.copyElt.getBoundingClientRect().width;\n  });\n  var sumWidth = cellWidths.reduce(function (ac, w) {\n    return ac + w;\n  }, 0);\n  var needGrowUp = mv.value - bound.width;\n  freeCells.forEach(function (cell, i) {\n    var width = cellWidths[i];\n    var newWidth = width + width / sumWidth * needGrowUp;\n    cell.copyElt.addStyle('width', newWidth + 'px');\n  });\n};\n\nLayoutController.prototype.onAttached = function () {\n  var _this5 = this;\n\n  var c = this.elt.parentElement;\n\n  while (c) {\n    if (c.isSupportedEvent && c.isSupportedEvent('sizechange')) {\n      c.on('sizechange', function () {\n        _this5.onResize();\n      });\n    }\n\n    c = c.parentElement;\n  }\n\n  if (this.elt.table) {\n    this.handleMinWidth();\n    this.elt.table.updateCopyEltSize();\n    this.updateOverflowStatus();\n    this.elt.$vscrollbar.once('scroll', function () {\n      setTimeout(function () {\n        if (_this5.elt.table.body.rows.length === 0) return;\n        var tableId = _this5.elt.id;\n        var cells = _this5.elt.table.header.rows[0] && _this5.elt.table.header.rows[0].cells;\n        if (!cells) return;\n        var changed = false;\n        cells.forEach(function (cell) {\n          var colId = cell.data.id;\n          var bound;\n\n          if (!colId) {\n            //local style\n            bound = cell.copyElt.getBoundingClientRect();\n\n            _this5.elt.css.setProperty(\"#\".concat(_this5.elt.id, \" th[data-col-idx=\\\"\").concat(cell.idx, \"\\\"]\"), 'width', bound.width + 'px').commit();\n\n            return;\n          }\n\n          if (!manager.hasColSize(tableId, colId)) {\n            bound = cell.copyElt.getBoundingClientRect();\n\n            if (bound.width) {\n              manager.setColWidth(tableId, colId, bound.width);\n              changed = true;\n            }\n          }\n        });\n        if (changed) manager.commit();\n      }, 100);\n    });\n  }\n};\n\nLayoutController.prototype.onResize = function () {\n  this.updateOverflowStatus();\n  this.updateScrollbarStatus();\n\n  if (this.elt.table) {\n    this.elt.table.updateCopyEltSize();\n    this.updateLines();\n  }\n};\n\nLayoutController.prototype.updateOverflowStatus = function () {\n  var contentBound = this.elt.table ? this.elt.table.elt.getBoundingClientRect() : {\n    width: 0,\n    height: 0\n  };\n  this.elt.addStyle('--dt-content-height', contentBound.height + 'px');\n  this.elt.addStyle('--dt-content-width', contentBound.width + 'px');\n  var bound = this.elt.getBoundingClientRect();\n\n  if (bound.width < contentBound.width) {\n    this.elt.addClass('as-overflow-x');\n  } else {\n    this.elt.removeClass('as-overflow-x');\n    this.elt.$space.removeStyle('left');\n  }\n\n  if (bound.height < contentBound.height) {\n    this.elt.addClass('as-overflow-y');\n  } else {\n    this.elt.removeClass('as-overflow-y');\n    this.elt.$space.removeStyle('top');\n  }\n};\n\nLayoutController.prototype.updateScrollbarStatus = function () {\n  //todo: not overflow y\n  if (!this.elt.table) return;\n  var childNodes = this.elt.table.body.elt.childNodes;\n  var vBound = this.elt.$viewport.getBoundingClientRect();\n  var headBound = this.elt.table.header.elt.getBoundingClientRect();\n  var availableHeight = vBound.height - headBound.height;\n  var rBound;\n  var outer = 0;\n  var sHeight = 1; //border of last row\n\n  for (var i = 0; i < childNodes.length; ++i) {\n    rBound = childNodes[childNodes.length - 1 - i].getBoundingClientRect();\n    sHeight += rBound.height;\n\n    if (sHeight >= availableHeight) {\n      outer = i + (1 - (sHeight - availableHeight) / rBound.height);\n      break;\n    }\n  }\n\n  this.elt.$vscrollbar.outerHeight = outer;\n  this.elt.$vscrollbar.innerHeight = this.elt.table.body.curentMode.viewedRows.length;\n  this.elt.$vscrollbar.innerOffset = this.elt.table.body.curentMode.offset;\n  var viewportBound = this.elt.$viewport.getBoundingClientRect();\n  var tableBound = this.elt.table.elt.getBoundingClientRect();\n  this.elt.$hscrollbar.innerWidth = tableBound.width;\n  this.elt.$hscrollbar.outerWidth = viewportBound.width;\n};\n\nLayoutController.prototype.updateLines = function () {\n  var fixXBound, headerBound;\n\n  if (this.elt.hasClass('as-overflow-x') && this.elt.hasClass('as-has-fixed-col')) {\n    fixXBound = this.elt.$fixedXCtn.getBoundingClientRect();\n    this.elt.addStyle('--dt-fixed-x-width', fixXBound.width + 'px');\n  }\n\n  if (this.elt.hasClass('as-overflow-y')) {\n    headerBound = this.elt.$fixedYCtn.firstChild.getBoundingClientRect();\n    this.elt.addStyle('--dt-header-height', headerBound.height + 'px');\n  }\n};\n\nLayoutController.prototype.ev_hScrollbarScroll = function (event) {\n  this.elt.$space.addStyle('left', -this.elt.$hscrollbar.innerOffset + 'px');\n  this.elt.$fixedYCtn.addStyle('left', -this.elt.$hscrollbar.innerOffset + 'px');\n  this.elt.$viewport.emit('scroll');\n};\n\nLayoutController.prototype.ev_vScrollbarScroll = function () {\n  this.elt.$viewport.emit('scroll');\n  this.elt.table.body.offset = this.elt.$vscrollbar.innerOffset;\n};\n\nLayoutController.prototype.ev_dragStart = function (event) {\n  var isOverflowY = this.elt.hasClass('as-overflow-y');\n  var isOverflowX = this.elt.hasClass('as-overflow-x');\n  var dir = event.currentPoint.sub(event.startingPoint);\n\n  if (isOverflowY && Math.abs(dir.y) > Math.abs(dir.x)) {\n    this.scrollingDir = new _Vec[\"default\"](0, 1);\n    event.preventDefault();\n  } else if (isOverflowX && Math.abs(dir.y) < Math.abs(dir.x)) {\n    this.scrollingDir = new _Vec[\"default\"](1, 0);\n    event.preventDefault();\n  } else {\n    this.scrollingDir = _Vec[\"default\"].ZERO;\n  }\n\n  this.scrollingStartOffset = new _Vec[\"default\"](this.elt.$hscrollbar.innerOffset, this.elt.$vscrollbar.innerOffset);\n};\n\nLayoutController.prototype.ev_drag = function (event) {\n  var changed = false;\n  var dir = event.currentPoint.sub(event.startingPoint);\n  var newOffset = new _Vec[\"default\"](0, 0);\n\n  if (this.scrollingDir.x !== 0) {\n    newOffset.x = Math.max(0, Math.min(this.elt.$hscrollbar.innerWidth - this.elt.$hscrollbar.outerWidth, this.scrollingStartOffset.x - dir.x));\n\n    if (this.elt.$hscrollbar.innerOffset !== newOffset.x) {\n      changed = true;\n      this.elt.$hscrollbar.innerOffset = newOffset.x;\n      this.elt.$hscrollbar.emit('scroll');\n    }\n  } else if (this.scrollingDir.y !== 0) {\n    newOffset.y = Math.max(0, Math.min(this.elt.$vscrollbar.innerHeight - this.elt.$vscrollbar.outerHeight, this.scrollingStartOffset.y - dir.y / 40));\n\n    if (this.elt.$vscrollbar.innerOffset !== newOffset.y) {\n      changed = true;\n      this.elt.$vscrollbar.innerOffset = newOffset.y;\n      this.elt.$vscrollbar.emit('scroll');\n    }\n  }\n\n  if (changed) event.preventDefault();\n};\n\nLayoutController.prototype.ev_dragEnd = function (event) {};\n/***\r\n *\r\n * @param {DynamicTable} elt\r\n * @constructor\r\n */\n\n\nfunction PointerController(elt) {\n  var _this6 = this;\n\n  Object.keys(this.constructor.prototype).forEach(function (key) {\n    if (key.startsWith('ev_')) _this6[key] = _this6[key].bind(_this6);\n  });\n  /***\r\n   *\r\n   * @type {DynamicTable}\r\n   */\n\n  this.elt = elt;\n  this.elt.$viewport.hangon = 5;\n  this.elt.$viewport.on('draginit', this.ev_dragInit);\n  this.elt.$viewport.on('dragstart', this.ev_dragStart);\n  this.elt.$viewport.on('drag', this.ev_drag);\n  this.elt.$viewport.on('dragend', this.ev_dragEnd);\n  this.destHandler = null;\n}\n\nPointerController.prototype.isInDragZone = function (elt) {\n  while (elt && elt !== this.elt) {\n    if (elt.classList.contains('as-drag-zone')) return true;\n    elt = elt.parentElement;\n  }\n\n  return false;\n};\n\nPointerController.prototype.isInInput = function (elt) {\n  while (elt) {\n    if (elt.tagName === 'INPUT') return true;\n    if (elt.tagName === 'TD') return false;\n    var clazz = elt.getAttribute('class') || '';\n    if (clazz.indexOf('input') >= 0) return true;\n    if (clazz.indexOf('input') >= 0) return true;\n    if (clazz.indexOf('menu') >= 0) return true;\n    elt = elt.parentElement;\n  }\n\n  return false;\n};\n\nPointerController.prototype.isInColResizer = function (elt) {\n  return !!(elt.hasClass && elt.hasClass('as-dt-header-cell-resizer'));\n};\n\nPointerController.prototype.ev_dragInit = function (event) {\n  if (this.isInDragZone(event.target)) {\n    event.preventDefault();\n    this.destHandler = this.elt.rowDragCtrl;\n  }\n\n  if (this.isInColResizer(event.target)) {\n    event.preventDefault();\n    this.destHandler = this.elt.colSizeCtrl;\n  } else if (this.isInInput(event.target)) {\n    event.cancel();\n    return;\n  } else if (event.isTouch) {// event.preventDefault();//todo: check\n  }\n};\n\nPointerController.prototype.ev_dragStart = function (event) {\n  var dir = event.currentPoint.sub(event.startingPoint).normalized();\n  var ox = new _Vec[\"default\"](1, 0);\n  var oy = new _Vec[\"default\"](0, 1);\n\n  if (this.destHandler) {\n    event.preventDefault && event.preventDefault();\n    this.destHandler.ev_dragStart(event);\n  } else if (event.isTouch && (Math.abs(dir.dot(ox)) < 0.3 || Math.abs(dir.dot(oy)) < 0.3)) {\n    event.preventDefault && event.preventDefault();\n    this.destHandler = this.elt.layoutCtrl;\n    this.destHandler.ev_dragStart(event);\n  } else {\n    this.destHandler = null;\n  }\n};\n\nPointerController.prototype.ev_drag = function (event) {\n  if (this.destHandler) {\n    event.preventDefault && event.preventDefault();\n    this.destHandler.ev_drag(event);\n  }\n};\n\nPointerController.prototype.ev_dragEnd = function (event) {\n  if (this.destHandler) {\n    event.preventDefault && event.preventDefault();\n    this.destHandler.ev_dragEnd(event);\n  }\n\n  this.destHandler = null;\n};\n\nPointerController.prototype.ev_dragDeinit = function (event) {};\n/***\r\n *\r\n * @param {DynamicTable} elt\r\n * @constructor\r\n */\n\n\nfunction ColSizeController(elt) {\n  this.elt = elt;\n  this.colId = null; //number: col index, string: ident\n\n  this.startingBound = null;\n  this.cellElt = null;\n  this.cell = null;\n}\n\nColSizeController.prototype.onAttached = function () {};\n\nColSizeController.prototype.onAdapter = function () {};\n\nColSizeController.prototype.ev_dragStart = function (event) {\n  var _this7 = this;\n\n  this.colId = event.target.parentElement.attr('data-col-id') || parseInt(event.target.parentElement.attr('data-col-idx'));\n  this.cell = this.elt.table.header.rows[0].cells.find(function (cell) {\n    return cell.data.id === _this7.colId || cell.idx === _this7.colId;\n  });\n  this.cellElt = this.cell.copyElt;\n  this.startingBound = _Rectangle[\"default\"].fromClientRect(this.cellElt.getBoundingClientRect());\n};\n\nColSizeController.prototype.ev_drag = function (event) {\n  var newWidth = this.startingBound.width + event.currentPoint.sub(event.startingPoint).x;\n  this.cellElt.addStyle('width', newWidth + 'px');\n  this.elt.table.updateCopyEltSize();\n};\n\nColSizeController.prototype.ev_dragEnd = function (event) {\n  var _this8 = this;\n\n  if (typeof this.colId === \"string\") {\n    manager.commitColWidth(this.elt, this.elt.id, this.cell.data.id, this.cellElt.getBoundingClientRect().width, true);\n    this.notifyColResize(event);\n  } else {\n    this.elt.css.setProperty(\"#\".concat(this.elt.id, \" th[data-col-idx=\\\"\").concat(this.colId, \"\\\"]\"), 'width', this.cellElt.getBoundingClientRect().width + 'px').commit();\n  }\n\n  this.elt.requestUpdateSize();\n  setTimeout(function () {\n    _this8.cellElt.removeStyle('width');\n\n    _this8.elt.requestUpdateSize();\n  }, 150);\n};\n\nColSizeController.prototype.getColWidth = function () {\n  var res = {};\n  this.elt.table.header.rows[0].cells.forEach(function (cell) {\n    var id = cell.data.id;\n    if (typeof id === \"string\" || typeof id === \"number\") id = '' + id;\n    if (!id) return;\n    Object.defineProperty(res, id, {\n      enumerable: true,\n      get: function get() {\n        return cell.copyElt.getBoundingClientRect().width;\n      }\n    });\n  });\n  return res;\n};\n\nColSizeController.prototype.setColWidth = function (colId, value) {\n  var cell = this.elt.table.header.rows[0].cells.find(function (cell) {\n    return cell.data.id === colId || cell.idx === colId;\n  });\n  cell.copyElt.removeStyle('width');\n\n  if (typeof colId === \"string\") {\n    manager.commitColWidth(this.elt, this.elt.id, colId, value, true);\n  } else {\n    this.elt.css.setProperty(\"#\".concat(this.elt.id, \" th[data-col-idx=\\\"\").concat(colId, \"\\\"]\"), 'width', value + 'px').commit();\n  }\n\n  this.elt.requestUpdateSize();\n};\n\nColSizeController.prototype.notifyColResize = function (originalEvent) {\n  var _this9 = this;\n\n  var event = {\n    type: 'colresize',\n    target: this,\n    colId: this.colId,\n    width: this.cellElt.getBoundingClientRect().width,\n    originalEvent: originalEvent.originalEvent || event\n  };\n  var colWidth;\n  Object.defineProperty(event, 'colWidth', {\n    get: function get() {\n      if (colWidth) return colWidth;\n      colWidth = _this9.getColWidth();\n      return colWidth;\n    }\n  });\n  this.elt.emit('colresize', event, this);\n};\n/**\r\n * new version\r\n * @param {DynamicTable} elt\r\n * @constructor\r\n */\n\n\nfunction RowDragController(elt) {\n  this.elt = elt;\n  this._isDragging = false;\n}\n\nRowDragController.prototype._findRow = function (cElt) {\n  while (cElt && cElt !== this.elt) {\n    if (cElt.dtBodyRow) {\n      return cElt.dtBodyRow;\n    }\n\n    cElt = cElt.parentElement;\n  }\n\n  return null;\n};\n\nRowDragController.prototype._getZIndex = function () {\n  var e = this.elt.$fixedXYCtn;\n  var style;\n  var res = 0;\n\n  while (e && e !== document.body) {\n    style = getComputedStyle(e);\n    res = Math.max(parseFloat(style.getPropertyValue('z-index')) || 0);\n    e = e.parentElement;\n  }\n\n  return res;\n};\n\nRowDragController.prototype._updateClass = function () {\n  var _this10 = this;\n\n  this.row.body.rows.forEach(function (row, i) {\n    if (!row._elt) return;\n\n    if (_this10.newIdx < _this10.rowIdx) {\n      if (i < _this10.newIdx || i >= _this10.rowIdx) {\n        row._elt.addStyle('transform', \"translate(0, 0)\");\n      } else if (i < _this10.rowIdx) {\n        row._elt.addStyle('transform', \"translate(0, \".concat(_this10.rowRect.height, \"px)\"));\n      }\n    } else if (_this10.newIdx > _this10.rowIdx) {\n      if (i <= _this10.rowIdx || i > _this10.newIdx) {\n        row._elt.addStyle('transform', \"translate(0, 0)\");\n\n        row._elt._transformY = _this10.rowRect.height;\n      } else if (i <= _this10.newIdx) {\n        row._elt.addStyle('transform', \"translate(0, \".concat(-_this10.rowRect.height, \"px)\"));\n\n        row._elt._transformY = -_this10.rowRect.height;\n      }\n    } else {\n      row._elt.addStyle('transform', \"translate(0, 0)\");\n\n      row._elt._transformY = 0;\n    }\n  });\n};\n\nRowDragController.prototype._computeRowBound = function () {\n  this.firstBoundIdx = this.elt.rowIndexOf(this.row.body.elt.firstChild);\n  this.bounds = Array.prototype.map.call(this.row.body.elt.childNodes, function (elt) {\n    var rect = _Rectangle[\"default\"].fromClientRect(elt.getBoundingClientRect());\n\n    rect.y -= elt._transformY || 0;\n    return rect;\n  });\n};\n\nRowDragController.prototype._computeNewIdx = function () {\n  var firstBound = _Rectangle[\"default\"].fromClientRect(this.row.body.elt.firstChild.getBoundingClientRect());\n\n  var delta = firstBound.A().sub(this.bounds[0].A());\n\n  var cBound = _Rectangle[\"default\"].fromClientRect(this.ctn.getBoundingClientRect());\n\n  var y0 = this.bounds[0].y + delta.y;\n  var nearest = Infinity;\n  this.newIdx = this.firstBoundIdx;\n  var cur;\n  var S = [];\n  S['-1'] = 0;\n  var i, y;\n\n  for (i = 0; i < this.bounds.length; ++i) {\n    S.push(S[i - 1] + this.bounds[i].height);\n  }\n\n  for (i = 0; i < this.bounds.length; ++i) {\n    cur = this.firstBoundIdx + i;\n\n    if (cur <= this.rowIdx) {\n      y = y0 + S[i - 1];\n    } else {\n      y = y0 + S[i] - cBound.height;\n    }\n\n    if (nearest > Math.abs(cBound.y - y) + 0.1) {\n      nearest = Math.abs(cBound.y - y);\n      this.newIdx = cur;\n    }\n  }\n};\n\nRowDragController.prototype.ev_dragStart = function (event) {\n  if (this.elt.table.body.curentMode.name !== 'normal') return;\n  this.elt.addClass('as-row-dragging');\n  this.row = this._findRow(event.target);\n  this.body = this.row.body;\n  this.rowIdx = this.elt.rowIndexOf(this.row);\n  this.newIdx = this.rowIdx;\n  this.clonedTable = this._cloneTableRow(this.row);\n  this.ctn = (0, _ACore._)({\n    \"class\": 'as-dt-body-row-cloned-ctn',\n    style: {\n      zIndex: this._getZIndex() + 20,\n      cursor: 'move',\n      opacity: 0.9\n    },\n    child: (0, _ACore.$)(this._cloneTableRow(this.row)).removeStyle('transform')\n  }).addTo(document.body);\n  this.row.elt.addClass('as-dragging');\n  this.rowRect = _Rectangle[\"default\"].fromClientRect(this.row.elt.getBoundingClientRect());\n  this.elt.addStyle('--dt-dragging-row-height', this.rowRect.height);\n  this.viewportRect = _Rectangle[\"default\"].fromClientRect(this.elt.$viewport.getBoundingClientRect());\n  this.headerRect = _Rectangle[\"default\"].fromClientRect(this.elt.$fixedYCtn.getBoundingClientRect());\n  this.pointeroffset = event.startingPoint.sub(this.rowRect.A());\n  this.ctn.addStyle({\n    top: this.rowRect.y + 'px',\n    left: this.rowRect.x + 'px'\n  });\n\n  this._computeRowBound();\n\n  this._computeNewIdx();\n\n  this._updateClass();\n\n  this._isDragging = true;\n};\n\nRowDragController.prototype.ev_rowRenderChange = function () {\n  if (!this._isDragging) return;\n\n  this._computeRowBound();\n\n  this._computeNewIdx();\n\n  this._computeNewIdx();\n\n  this._updateClass();\n};\n/**\r\n *\r\n * @param {DTBodyRow}row\r\n * @private\r\n */\n\n\nRowDragController.prototype._cloneTableRow = function (row) {\n  var tableElt = (0, _ACore.$)(row.body.table.elt.cloneNode(false)).addStyle({\n    tableLayout: 'fixed',\n    width: row.body.table.elt.getBoundingClientRect().width + 'px'\n  });\n  var tBodyElt = (0, _ACore.$)(row.body.elt.cloneNode(false));\n  tableElt.addChild(tBodyElt);\n  var rowElt = (0, _ACore.$)(this.row.elt.cloneNode(false)).addStyle({\n    height: this.row.elt.getBoundingClientRect().height + 'px',\n    backgroundColor: this.row.elt.getComputedStyleValue('background-color')\n  });\n  tBodyElt.addChild(rowElt);\n  this.row.cells.forEach(function (cell) {\n    var width = cell.elt.getBoundingClientRect().width;\n    (0, _ACore.$)(cell.elt.cloneNode(true)).addStyle({\n      width: width + 'px'\n    }).addTo(rowElt);\n  });\n  return tableElt;\n};\n\nRowDragController.prototype.ev_drag = function (event) {\n  var _this11 = this;\n\n  var newY = event.currentPoint.sub(this.pointeroffset).y;\n  this.ctn.addStyle('top', newY + 'px');\n  clearTimeout(this._dragOutTO);\n\n  var ctnBound = _Rectangle[\"default\"].fromClientRect(this.ctn.getBoundingClientRect());\n\n  var onDragOutPositive = function onDragOutPositive() {\n    var dy = ctnBound.D().y - _this11.viewportRect.D().y;\n\n    dy /= 1000 / 60 / 4 * _this11.rowRect.height;\n    dy = Math.min(dy, _this11.elt.$vscrollbar.innerHeight - _this11.elt.$vscrollbar.outerHeight - _this11.elt.$vscrollbar.innerOffset);\n\n    if (dy > 0) {\n      _this11.elt.$vscrollbar.innerOffset += dy;\n\n      _this11.elt.$vscrollbar.emit('scroll');\n    }\n\n    _this11._computeNewIdx();\n\n    _this11._updateClass();\n\n    clearTimeout(_this11._dragOutTO);\n    _this11._dragOutTO = setTimeout(onDragOutPositive, 33);\n  };\n\n  var onDragOutNegative = function onDragOutNegative() {\n    var dy = ctnBound.y - _this11.headerRect.D().y;\n\n    dy /= 1000 / 60 / 4 * _this11.rowRect.height;\n    dy = Math.max(dy, -_this11.elt.$vscrollbar.innerOffset);\n\n    if (dy < 0) {\n      _this11.elt.$vscrollbar.innerOffset += dy;\n\n      _this11.elt.$vscrollbar.emit('scroll');\n    }\n\n    _this11._computeNewIdx();\n\n    _this11._updateClass();\n\n    clearTimeout(_this11._dragOutTO);\n    _this11._dragOutTO = setTimeout(onDragOutNegative, 33);\n  };\n\n  if (this.viewportRect.D().y < ctnBound.D().y) {\n    this._dragOutTO = setTimeout(onDragOutPositive, 1000 / 60);\n  } else if (this.headerRect.D().y > ctnBound.y) {\n    this._dragOutTO = setTimeout(onDragOutNegative, 100 / 60);\n  } else {\n    this._computeNewIdx();\n\n    this._updateClass();\n  }\n};\n\nRowDragController.prototype.ev_dragEnd = function (event) {\n  this.elt.addClass('as-row-dragging');\n  this.elt.removeClass('as-row-dragging');\n  this.elt.removeStyle('--dragging-row-height');\n  this.row.elt.removeClass('as-dragging');\n  this._isDragging = false;\n  clearTimeout(this._dragOutTO);\n  this.ctn.remove();\n  this.row.body.rows.forEach(function (row) {\n    if (row._elt) {\n      row._elt.removeStyle('transform');\n\n      row._elt._transformY = 0;\n    }\n  });\n\n  if (this.newIdx !== this.rowIdx) {\n    this.row.body.moveRowAt(this.rowIdx, this.newIdx);\n    var eventData = {\n      type: 'otherchange',\n      target: this.row,\n      from: this.rowIdx,\n      to: this.newIdx,\n      originalEvent: event,\n      row: this.row,\n      data: this.row.data\n    };\n\n    if (this.row.data.on && this.row.data.on.orderchange) {\n      this.row.data.on.orderchange.call(this.row, eventData, this.row);\n    }\n\n    this.elt.emit('orderchange', eventData, this.body.table.wrapper);\n  }\n};\n\nfunction VirtualPageSelector(elt) {\n  this.elt = elt;\n}\n\nVirtualPageSelector.prototype.getSelectedPage = function () {\n  return this.elt.$vscrollbar.innerOffset / 25;\n};\n\nVirtualPageSelector.prototype.selectPage = function (value) {\n  this.elt.$vscrollbar.innerOffset = value * 25;\n  this.elt.$vscrollbar.emit('scroll');\n};\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/dynamictable/DynamicTable.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/finder/FileThumbnail.js":
/*!*************************************************************!*\
  !*** ./node_modules/absol-acomp/js/finder/FileThumbnail.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _catalog = _interopRequireDefault(__webpack_require__(/*! ../../assets/exticons/catalog.json */ \"./node_modules/absol-acomp/assets/exticons/catalog.json\"));\n\nvar _MessageInput = _interopRequireDefault(__webpack_require__(/*! ../messageinput/MessageInput */ \"./node_modules/absol-acomp/js/messageinput/MessageInput.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar thumbnailCache = {};\nvar dbSync;\n\nvar getDb = function getDb() {\n  dbSync = dbSync || new Promise(function (resolve) {\n    var request = window.indexedDB.open('FileThumbnailDB', 1);\n\n    request.onupgradeneeded = function (event) {\n      var db = event.target.result;\n      db.createObjectStore(\"files\", {});\n    };\n\n    request.onsuccess = function (event) {\n      var db = event.target.result;\n      var request1;\n\n      if (localStorage.getItem('FileThumbnail_clear_cache') === '1') {\n        localStorage.removeItem('FileThumbnail_clear_cache');\n        request1 = db.transaction('files', 'readwrite').objectStore('files').clear();\n\n        request1.onsuccess = function () {\n          resolve(db);\n        };\n\n        request1.onerror = function () {\n          resolve(null);\n        };\n      } else resolve(db);\n    };\n\n    request.onerror = function () {\n      resolve(null);\n    };\n  });\n  return dbSync;\n};\n\nvar dbGetItem = function dbGetItem(key) {\n  return getDb().then(function (db) {\n    if (!db) return null;\n    var request = db.transaction('files').objectStore('files').get(key);\n    return new Promise(function (resolve) {\n      request.onsuccess = function (event) {\n        var data = event.target.result;\n        resolve(data);\n      };\n\n      request.onerror = function () {\n        resolve(null);\n      };\n    });\n  });\n};\n\nvar dbSetItem = function dbSetItem(key, value) {\n  return getDb().then(function (db) {\n    if (!db) return null;\n    var objectStore = db.transaction('files', 'readwrite').objectStore('files');\n    var request = objectStore.put(value, key);\n    return new Promise(function (resolve) {\n      request.onsuccess = function (event) {\n        var data = event.target.result;\n        resolve(data);\n      };\n\n      request.onerror = function () {\n        resolve(null);\n      };\n    });\n  });\n};\n\ndocument.addEventListener('keydown', function (event) {\n  if (event.ctrlKey && event.key === 'F5') {\n    localStorage.setItem('FileThumbnail_clear_cache', '1');\n  }\n});\n\nvar url2small = function url2small(url) {\n  return new Promise(function (resolve) {\n    var image = new Image();\n    image.crossOrigin = 'anonymous';\n    image.crossorigin = 'anonymous';\n    image.src = url;\n\n    image.onload = function () {\n      var now = new Date();\n\n      if (image.naturalWidth <= 200 && image.naturalHeight < 200) {\n        resolve(url);\n        return;\n      }\n\n      var scale = Math.min(200 / image.naturalWidth, 200 / image.naturalHeight);\n      var width = Math.round(image.naturalWidth * scale);\n      var height = Math.round(image.naturalHeight * scale);\n      var canvas = document.createElement('canvas');\n      canvas.width = width;\n      canvas.height = height;\n      var ctx = canvas.getContext('2d');\n\n      for (var i = 0; i < 20; ++i) {\n        for (var j = 0; j < 20; ++j) {\n          ctx.fillStyle = (i ^ j) & 1 ? '#BBBBBB' : '#FFFFFF';\n          ctx.fillRect(i * 10, j * 10, 10, 10);\n        }\n      }\n\n      ctx.drawImage(image, 0, 0, width, height);\n      resolve(canvas.toDataURL('image/jpeg', 0.5));\n    };\n  });\n};\n\nvar getThumbnailUrl = function getThumbnailUrl(url) {\n  if (!thumbnailCache[url]) {\n    thumbnailCache[url] = dbGetItem(url).then(function (result) {\n      if (!result) {\n        result = url2small(url).then(function (canvasResult) {\n          if (canvasResult) dbSetItem(url, canvasResult);\n          return canvasResult;\n        });\n      }\n\n      return result;\n    });\n  }\n\n  return thumbnailCache[url];\n};\n\nfunction FileThumbnail() {\n  this._value = null;\n  this.$fileName = (0, _ACore.$)('.as-file-thumbnail-file-name', this);\n  this.$bg = (0, _ACore.$)('.as-file-thumbnail-background', this);\n  /***\r\n   * @type {string}\r\n   * @name fileName\r\n   * @memberOf FileThumbnail#\r\n   */\n\n  /***\r\n   * @type {string|null}\r\n   * @name fileType\r\n   * @memberOf FileThumbnail#\r\n   */\n\n  /***\r\n   * @type {string|null}\r\n   * @name thumbnail\r\n   * @memberOf FileThumbnail#\r\n   */\n\n  /***\r\n   * @type {boolean}\r\n   * @name isDirectory\r\n   * @memberOf FileThumbnail#\r\n   */\n}\n\nFileThumbnail.tag = 'FileThumbnail'.toLowerCase();\n\nFileThumbnail.render = function () {\n  return (0, _ACore._)({\n    \"class\": 'as-file-thumbnail',\n    child: [{\n      \"class\": 'as-file-thumbnail-background'\n    }, {\n      \"class\": 'as-file-thumbnail-file-name',\n      child: []\n    }, {\n      \"class\": 'as-file-thumbnail-check',\n      child: 'span.mdi.mdi-check-bold'\n    }]\n  });\n};\n\nFileThumbnail.prototype._updateFileName = function () {\n  var fileName = this.fileName;\n\n  if (!fileName) {\n    return;\n  }\n\n  var parts;\n  var matched;\n  matched = fileName.match(/([^_+\\-.]+)|([_+\\-.]+)/g);\n  parts = matched || [];\n\n  if (parts.length > 2 && parts[parts.length - 2] === '.') {\n    parts[parts.length - 2] += parts[parts.length - 1];\n    parts.pop();\n  }\n\n  parts = parts.map(function (txt) {\n    return (0, _ACore._)({\n      tag: 'span',\n      child: {\n        text: txt\n      }\n    });\n  });\n  this.$fileName.clearChild().addChild(parts);\n};\n\nFileThumbnail.prototype._updateThumbnail = function () {\n  var _this = this;\n\n  var previewUrl;\n  var thumbnail = this.thumbnail;\n  var fileType = this.isDirectory ? 'folder' : this.fileType;\n\n  if (thumbnail) {\n    if (typeof thumbnail === \"string\") {\n      this._previewUrl = thumbnail;\n      getThumbnailUrl(thumbnail).then(function (smallerUrl) {\n        if (thumbnail !== _this._previewUrl) return;\n\n        _this.$bg.addStyle('backgroundImage', 'url(\"' + smallerUrl + '\")');\n      });\n    } else if (thumbnail instanceof Blob || thumbnail instanceof File) {\n      thumbnail.url = thumbnail.url || URL.createObjectURL(thumbnail);\n      this._previewUrl = thumbnail.url;\n    }\n  }\n\n  if (_catalog[\"default\"].indexOf(fileType) >= 0) {\n    previewUrl = _MessageInput[\"default\"].iconAssetRoot + '/' + fileType + '.svg';\n  } else {\n    previewUrl = _MessageInput[\"default\"].iconAssetRoot + '/' + 'blank' + '.svg';\n  }\n\n  if (previewUrl) {\n    this.$bg.addStyle('backgroundImage', 'url(\"' + encodeURI(previewUrl) + '\")');\n  } else {\n    this.$bg.removeStyle('backgroundImage');\n  }\n};\n\nFileThumbnail.property = {};\nFileThumbnail.property.value = {\n  set: function set(value) {\n    value = value || null;\n    this._value = value;\n    this._valueInfo = (0, _utils.fileInfoOf)(value);\n\n    this._updateFileName();\n\n    this._updateThumbnail();\n  },\n  get: function get() {\n    return this._value;\n  }\n};\nFileThumbnail.property.fileName = {\n  set: function set(value) {\n    this._fileName = value;\n\n    this._updateFileName();\n  },\n  get: function get() {\n    return this._fileName || this._valueInfo && this._valueInfo.name || null;\n  }\n};\nFileThumbnail.property.fileType = {\n  set: function set(value) {\n    this._fileType = value;\n\n    this._updateThumbnail();\n  },\n\n  /***\r\n   * @this FileInputBox\r\n   * @return {*}\r\n   */\n  get: function get() {\n    if (this.isDirectory) return null;\n    return this._fileType || this._valueInfo && this._valueInfo.type || null;\n  }\n};\nFileThumbnail.property.checked = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-checked');\n    } else {\n      this.removeClass('as-checked');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-checked');\n  }\n};\nFileThumbnail.property.thumbnail = {\n  set: function set(value) {\n    this._thumbnail = value || null;\n\n    this._updateThumbnail();\n  },\n  get: function get() {\n    return this._thumbnail;\n  }\n};\nFileThumbnail.property.isDirectory = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-is-directory');\n    } else {\n      this.removeClass('as-is-directory');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-is-directory');\n  }\n};\n\n_ACore[\"default\"].install(FileThumbnail);\n\nvar _default = FileThumbnail;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/finder/FileThumbnail.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/finder/Finder.js":
/*!******************************************************!*\
  !*** ./node_modules/absol-acomp/js/finder/Finder.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.FinderCommands = void 0;\nexports.FinderFileSystem = FinderFileSystem;\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../../css/finder.css */ \"./node_modules/absol-acomp/css/finder.css\");\n\n__webpack_require__(/*! ../../css/mobileapp.css */ \"./node_modules/absol-acomp/css/mobileapp.css\");\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _ResizeSystem = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/ResizeSystem */ \"./node_modules/absol/src/HTML5/ResizeSystem.js\"));\n\nvar _FlexiconButton = _interopRequireDefault(__webpack_require__(/*! ../FlexiconButton */ \"./node_modules/absol-acomp/js/FlexiconButton.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _ExpTree = __webpack_require__(/*! ../ExpTree */ \"./node_modules/absol-acomp/js/ExpTree.js\");\n\nvar _MessageInput = _interopRequireDefault(__webpack_require__(/*! ../messageinput/MessageInput */ \"./node_modules/absol-acomp/js/messageinput/MessageInput.js\"));\n\nvar _ext2MineType = _interopRequireDefault(__webpack_require__(/*! absol/src/Converter/ext2MineType */ \"./node_modules/absol/src/Converter/ext2MineType.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _random = __webpack_require__(/*! absol/src/Math/random */ \"./node_modules/absol/src/Math/random.js\");\n\nvar _TaskManager = _interopRequireDefault(__webpack_require__(/*! absol/src/AppPattern/TaskManager */ \"./node_modules/absol/src/AppPattern/TaskManager.js\"));\n\nvar _Modal = _interopRequireDefault(__webpack_require__(/*! ../Modal */ \"./node_modules/absol-acomp/js/Modal.js\"));\n\nvar _MessageDialog = _interopRequireDefault(__webpack_require__(/*! ../MessageDialog */ \"./node_modules/absol-acomp/js/MessageDialog.js\"));\n\nvar _Hanger = _interopRequireDefault(__webpack_require__(/*! ../Hanger */ \"./node_modules/absol-acomp/js/Hanger.js\"));\n\nvar _Vec = _interopRequireDefault(__webpack_require__(/*! absol/src/Math/Vec2 */ \"./node_modules/absol/src/Math/Vec2.js\"));\n\nvar _Rectangle = _interopRequireDefault(__webpack_require__(/*! absol/src/Math/Rectangle */ \"./node_modules/absol/src/Math/Rectangle.js\"));\n\nvar _WindowBox = _interopRequireDefault(__webpack_require__(/*! ../WindowBox */ \"./node_modules/absol-acomp/js/WindowBox.js\"));\n\nvar _FileSaver = __webpack_require__(/*! absol/src/Network/FileSaver */ \"./node_modules/absol/src/Network/FileSaver.js\");\n\nvar _DropZone = _interopRequireDefault(__webpack_require__(/*! ../DropZone */ \"./node_modules/absol-acomp/js/DropZone.js\"));\n\nvar _BrowserDetector = _interopRequireDefault(__webpack_require__(/*! absol/src/Detector/BrowserDetector */ \"./node_modules/absol/src/Detector/BrowserDetector.js\"));\n\nvar _EventEmitter = _interopRequireWildcard(__webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nvar _ContextMenu = _interopRequireDefault(__webpack_require__(/*! ../ContextMenu */ \"./node_modules/absol-acomp/js/ContextMenu.js\"));\n\nvar _TextArea = _interopRequireDefault(__webpack_require__(/*! ../TextArea2 */ \"./node_modules/absol-acomp/js/TextArea2.js\"));\n\nvar _FileThumbnail = _interopRequireDefault(__webpack_require__(/*! ./FileThumbnail */ \"./node_modules/absol-acomp/js/finder/FileThumbnail.js\"));\n\nvar _noop = _interopRequireDefault(__webpack_require__(/*! absol/src/Code/noop */ \"./node_modules/absol/src/Code/noop.js\"));\n\nvar _Searcher = _interopRequireDefault(__webpack_require__(/*! ../Searcher */ \"./node_modules/absol-acomp/js/Searcher.js\"));\n\nvar _Context = _interopRequireDefault(__webpack_require__(/*! absol/src/AppPattern/Context */ \"./node_modules/absol/src/AppPattern/Context.js\"));\n\nvar _stringFormat = __webpack_require__(/*! absol/src/String/stringFormat */ \"./node_modules/absol/src/String/stringFormat.js\");\n\nvar _stringGenerate = __webpack_require__(/*! absol/src/String/stringGenerate */ \"./node_modules/absol/src/String/stringGenerate.js\");\n\nvar _DomSignal = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/DomSignal */ \"./node_modules/absol/src/HTML5/DomSignal.js\"));\n\nvar _RibbonButton = _interopRequireDefault(__webpack_require__(/*! ../RibbonButton */ \"./node_modules/absol-acomp/js/RibbonButton.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar isMobile = _BrowserDetector[\"default\"].isMobile;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction Finder() {\n  var _this = this;\n\n  if (isMobile) this.addClass('as-mobile'); // if (BrowserDetector.isMobile) alert(\"Chưa hỗ trợ điện thoại!\");\n\n  this.$attachhook = (0, _ACore._)('attachhook').addTo(this);\n\n  this.$attachhook.requestUpdateSize = function () {\n    _this.layoutCtn.update();\n\n    _this.navCtrl.notifyVisibleContentItems();\n  };\n\n  this.$attachhook.once('attached', function () {\n    _ResizeSystem[\"default\"].add(_this.$attachhook);\n\n    _this.layoutCtn.update();\n\n    _this.navCtrl.onStart();\n\n    _this.navCtrl.notifyVisibleContentItems();\n\n    _ContextMenu[\"default\"].auto();\n  });\n  this.domSignal = new _DomSignal[\"default\"]((0, _ACore._)('attachhook').addTo(this));\n  this.$header = (0, _ACore.$)('.as-finder-header', this);\n  this.$nomalActionCtn = (0, _ACore.$)('.as-finder-normal-action-button-ctn', this);\n  this.$tinyActionCtn = (0, _ACore.$)('.as-finder-tiny-action-button-ctn', this);\n  this.$contentHeader = (0, _ACore.$)('.as-finder-content-header', this);\n  this.$navCtn = (0, _ACore.$)('.as-finder-nav-ctn', this);\n  this.$nav = (0, _ACore.$)(_ExpTree.ExpGroup.tag, this.$navCtn);\n  this.$searchCtn = (0, _ACore.$)('.as-finder-search-ctn', this);\n  this.$contentCtn = (0, _ACore.$)('.as-finder-content-ctn', this);\n  this.$content = (0, _ACore.$)('.as-finder-content', this);\n  this.$body = (0, _ACore.$)('.as-finder-body', this);\n  this.$commandButtons = (0, _ACore.$$)('.as-finder-nav-header button', this).concat((0, _ACore.$$)('.as-finder-content-header button', this)).concat((0, _ACore.$$)('.as-finder-search-footer button', this)).concat((0, _ACore.$$)('.as-finder-search-header button', this)).reduce(function (ac, cr) {\n    var name = cr.attr('name');\n    ac[name] = cr;\n\n    if (cr.items) {\n      //ribbon button\n      cr.on('select', function (event) {\n        _this.execCommand(name, event.item.value, event.item);\n      });\n    } else {\n      cr.on('click', function () {\n        _this.execCommand(name);\n      });\n    }\n\n    return ac;\n  }, {});\n  this.$searchTypeSelect = (0, _ACore.$)('.as-finder-search-type-select', this);\n  this.$searchText = (0, _ACore.$)('.as-finder-search-text', this);\n  this.fileSystem = new AbsolFileSystem();\n  this.layoutCtn = new LayoutController(this);\n  this.navCtrl = new NavigatorController(this);\n  this.selectCtrl = isMobile ? new MobileSelectController(this) : new SelectController(this);\n  this.uploadCtrl = new UploadController(this);\n  this.commandCtrl = new CommandController(this);\n  this.folderDialog = new FolderDialog(this);\n  this.searchCtrl = new SearchController(this);\n  /***\r\n   * @type {string}\r\n   * @name displayPath\r\n   * @memberOf Finder#\r\n   */\n\n  /***\r\n   * @type {string}\r\n   * @name path\r\n   * @memberOf Finder#\r\n   */\n\n  /***\r\n   * @type {string}\r\n   * @name rootPath\r\n   * @memberOf Finder#\r\n   */\n}\n\nFinder.tag = 'Finder'.toLowerCase();\n\nFinder.render = function () {\n  return (0, _ACore._)({\n    \"class\": 'as-finder',\n    extendEvent: ['selectedchange', 'dblclickfile'],\n    attr: {\n      'data-selected-file-count': '0',\n      'data-selected-folder-count': '0'\n    },\n    child: [{\n      \"class\": 'as-finder-header',\n      child: [{\n        \"class\": 'as-finder-normal-action-button-ctn'\n        /* child: Finder.prototype.actions.map(act => ({\r\n             tag: FlexiconButton.tag,\r\n             attr: { name: act.name },\r\n             props: {\r\n                 text: act.text,\r\n                 // icon: act.icon\r\n             }\r\n         }))*/\n\n      }, {\n        \"class\": 'as-finder-tiny-action-button-ctn'\n        /*child: Finder.prototype.actions.map(act => ({\r\n            tag: 'button',\r\n            attr: { name: act.name, title: act.text },\r\n            child: act.icon\r\n        }))*/\n\n      }]\n    }, {\n      \"class\": ['as-finder-nav-ctn'],\n      child: [{\n        \"class\": 'as-finder-nav-header',\n        child: [{\n          \"class\": 'as-finder-nav-header-left',\n          child: [{\n            tag: 'button',\n            \"class\": 'as-transparent-button',\n            attr: {\n              title: \"Close Navigator\",\n              name: 'nav_toggle'\n            },\n            child: 'span.mdi.mdi-menu-open'\n          }]\n        }, {\n          \"class\": 'as-finder-nav-header-right',\n          child: [{\n            tag: 'button',\n            \"class\": 'as-transparent-button',\n            attr: {\n              title: \"Search\",\n              name: 'switch_to_search'\n            },\n            child: 'span.mdi.mdi-magnify'\n          }, {\n            tag: 'button',\n            \"class\": 'as-transparent-button',\n            attr: {\n              title: \"Expand All\",\n              name: 'nav_expand_all'\n            },\n            child: 'span.mdi.mdi-arrow-expand-vertical'\n          }, {\n            tag: 'button',\n            \"class\": 'as-transparent-button',\n            attr: {\n              title: \"Collapse All\",\n              name: 'nav_collapse_all'\n            },\n            child: 'span.mdi.mdi-arrow-collapse-vertical'\n          }, {\n            tag: 'button',\n            \"class\": 'as-transparent-button',\n            attr: {\n              title: \"Reload\",\n              name: 'reload'\n            },\n            child: 'span.mdi.mdi-reload'\n          }]\n        }]\n      }, {\n        tag: _ExpTree.ExpGroup.tag,\n        \"class\": 'as-bscroller'\n      }]\n    }, {\n      \"class\": 'as-finder-search-ctn',\n      child: [{\n        \"class\": 'as-finder-search-header',\n        child: [{\n          tag: 'button',\n          \"class\": 'as-transparent-button',\n          attr: {\n            title: \"Close Navigator\",\n            name: 'nav_toggle'\n          },\n          child: 'span.mdi.mdi-menu-open'\n        }]\n      }, {\n        \"class\": 'as-finder-search-body',\n        child: [{\n          tag: _Searcher[\"default\"].tag,\n          \"class\": 'as-finder-search-text'\n        }, {\n          \"class\": 'as-finder-search-field',\n          child: [{\n            child: {\n              text: 'Kiểu'\n            }\n          }, {\n            child: {\n              tag: 'selectmenu',\n              \"class\": 'as-finder-search-type-select',\n              props: {\n                items: [{\n                  text: 'Tất cả',\n                  value: 'all',\n                  icon: 'span.mdi.mdi-asterisk'\n                }, {\n                  text: 'Hình ảnh',\n                  value: 'image',\n                  icon: 'span.mdi.mdi-image-outline'\n                }, {\n                  text: 'Tài liệu',\n                  value: 'document',\n                  icon: 'span.mdi.mdi-file-document'\n                }]\n              }\n            }\n          }]\n        }, {\n          \"class\": 'as-finder-search-footer',\n          child: [{\n            tag: _FlexiconButton[\"default\"].tag,\n            attr: {\n              name: 'start_search'\n            },\n            props: {\n              text: 'OK'\n            }\n          }, {\n            tag: _FlexiconButton[\"default\"].tag,\n            attr: {\n              name: 'cancel_search'\n            },\n            props: {\n              text: 'Hủy'\n            }\n          }]\n        }]\n      }]\n    }, {\n      tag: _DropZone[\"default\"].tag,\n      attr: {\n        'data-view-as': 'list'\n      },\n      \"class\": ['as-finder-body'],\n      child: [{\n        \"class\": 'as-finder-content-header',\n        child: [{\n          \"class\": 'as-finder-content-header-left',\n          child: [{\n            tag: 'button',\n            attr: {\n              title: 'Open Navigator',\n              name: 'nav_toggle'\n            },\n            \"class\": 'as-transparent-button',\n            child: ['span.mdi.mdi-menu']\n          }, {\n            tag: _RibbonButton[\"default\"],\n            attr: {\n              title: 'View As',\n              name: 'content_view_as'\n            },\n            \"class\": 'as-transparent-button',\n            props: {\n              text: 'List',\n              icon: 'span.mdi.mdi-format-list-bulleted-square',\n              items: [{\n                icon: 'span.mdi.mdi-format-list-bulleted-square',\n                text: 'List',\n                value: 'list'\n              }, {\n                text: 'Medium Icons',\n                icon: 'span.mdi.mdi-grid',\n                value: 'content'\n              }, {\n                text: 'Lage Icons',\n                icon: 'span.mdi.mdi-image-outline',\n                value: 'lage_icons'\n              }]\n            } // child: ['span.mdi.mdi-format-list-bulleted-square']\n\n          }]\n        }, {\n          \"class\": 'as-finder-content-header-right'\n        }]\n      }, {\n        tag: _Hanger[\"default\"].tag,\n        \"class\": 'as-finder-content-ctn',\n        props: {\n          hangOn: 5\n        },\n        child: {\n          \"class\": ['as-finder-content']\n        }\n      }, {\n        \"class\": 'as-finder-upload-overlay',\n        child: [{\n          \"class\": 'as-finder-upload-overlay-icon-ctn',\n          child: 'span.mdi.mdi-cloud-upload-outline'\n        }, {\n          child: {\n            text: 'Thả file vào đây để tải lên'\n          }\n        }]\n      }]\n    }]\n  });\n};\n\nFinder.property = {};\nFinder.property.fileSystem = {\n  set: function set(fs) {\n    this._fileSystem = fs;\n  },\n  get: function get() {\n    return this._fileSystem;\n  }\n};\nFinder.property.path = {\n  set: function set(path) {\n    this.navCtrl.path = path;\n  },\n  get: function get() {\n    return this.navCtrl.path;\n  }\n};\nFinder.property.displayPath = {\n  // set: function (path) {\n  //     this.navCtrl.path = path;\n  // },\n  get: function get() {\n    return this.navCtrl.displayPath;\n  }\n};\nFinder.property.rootPath = {\n  set: function set(path) {\n    this.navCtrl.rootPath = path;\n  },\n  get: function get() {\n    return this.navCtrl.rootPath;\n  }\n};\nFinder.property.selectedFiles = {\n  get: function get() {\n    return this.selectCtrl.$selectedItems.filter(function (elt) {\n      return elt.stat && !elt.stat.isDirectory;\n    }).map(function (elt) {\n      return elt.stat;\n    });\n  }\n};\n\nFinder.prototype.execCommand = function (name) {\n  return this.commandCtrl.execCommand.apply(this.commandCtrl, arguments);\n};\n\nFinder.prototype.addCommand = function (name, descriptor) {\n  this.commandCtrl.addCommand(name, descriptor);\n};\n\nFinder.prototype.addButton = function (name, bf) {\n  this.commandCtrl.addButton(name, bf);\n};\n/****\r\n *\r\n * @param {string} name\r\n * @param {string=} bf\r\n */\n\n\nFinder.prototype.addFolderMenuItem = function (name, bf) {\n  this.commandCtrl.addFolderMenuItem(name, bf);\n};\n\nFinder.prototype.findZIndex = function () {\n  var c = this;\n  var res = 0;\n  var zIndex;\n\n  while (c) {\n    zIndex = parseInt(getComputedStyle(c).getPropertyValue('z-index'));\n    if (!isNaN(zIndex)) res = Math.max(zIndex, res);\n    c = c.parentElement;\n  }\n\n  return res;\n};\n\n_ACore[\"default\"].install(Finder);\n\nvar _default = Finder;\nexports[\"default\"] = _default;\nvar FinderCommands = {};\nexports.FinderCommands = FinderCommands;\nFinder.prototype.commands = FinderCommands;\nFinderCommands.upload = {\n  text: 'Tải lên',\n  icon: 'span.mdi.mdi-upload-outline',\n  match: function match(fileElt) {\n    return !fileElt && this.searchCtrl.state !== 'RUNNING' && this.dirStat && this.dirStat.writable;\n  },\n\n  /***\r\n   * @this Finder\r\n   */\n  exec: function exec() {\n    var _this2 = this;\n\n    (0, _utils.openFileDialog)({\n      multiple: true\n    }).then(function (files) {\n      if (files && files.length > 0) {\n        _this2.uploadCtrl.upload(files);\n      }\n    });\n  }\n};\nFinderCommands.upload_to_folder = {\n  text: 'Tải lên',\n  icon: 'span.mdi.mdi-upload-outline',\n  match: function match(treElt) {\n    return treElt && treElt.stat && treElt.stat.writable;\n  },\n\n  /***\r\n   * @this Finder\r\n   */\n  exec: function exec() {\n    var _this3 = this;\n\n    //todo: selected folder\n    (0, _utils.openFileDialog)({\n      multiple: true\n    }).then(function (files) {\n      if (files && files.length > 0) {\n        _this3.uploadCtrl.upload(files);\n      }\n    });\n  }\n};\nFinderCommands[\"delete\"] = {\n  icon: 'span.mdi.mdi-delete-outline',\n  text: 'Xóa',\n\n  /***\r\n   * @this Finder\r\n   */\n  match: function match(fileElt) {\n    return fileElt && this.selectCtrl.$selectedItems.length > 0 && this.selectCtrl.$selectedItems.every(function (elt) {\n      return elt.stat && !elt.stat.isDirectory && elt.stat.writable;\n    });\n  },\n\n  /***\r\n   * @this Finder\r\n   */\n  exec: function exec() {\n    var _this4 = this;\n\n    var paths = this.selectCtrl.$selectedItems.map(function (elt) {\n      return elt.stat.path;\n    });\n    var names = this.selectCtrl.$selectedItems.map(function (elt) {\n      return elt.fileName;\n    });\n    if (names.length === 0) return;\n    var contentElt = (0, _ACore._)({\n      style: {\n        maxHeight: '50vh',\n        overflow: 'auto'\n      },\n      child: {\n        style: {\n          display: 'table'\n        },\n        child: names.map(function (name) {\n          return {\n            style: {\n              display: 'table-row'\n            },\n            child: [{\n              style: {\n                display: 'table-cell',\n                padding: '5px 20px 5px 10px'\n              },\n              child: {\n                style: {\n                  'min-width': '30em'\n                },\n                child: {\n                  text: name\n                }\n              }\n            }, {\n              style: {\n                display: 'table-cell',\n                padding: '5px 10px'\n              },\n              child: {\n                \"class\": 'as-finder-task-check',\n                style: {\n                  'min-width': '3em',\n                  textAlign: 'right'\n                },\n                child: 'span'\n              }\n            }]\n          };\n        })\n      }\n    });\n    var modal = (0, _ACore._)({\n      tag: _Modal[\"default\"].tag,\n      style: {\n        zIndex: this.findZIndex() + 9000\n      },\n      child: {\n        tag: _MessageDialog[\"default\"].tag,\n        props: {\n          dialogTitle: 'Xóa file',\n          dialogActions: [{\n            name: \"ok\",\n            text: \"OK\"\n          }, {\n            name: 'cancel',\n            text: 'Hủy'\n          }]\n        },\n        child: [{\n          child: {\n            tag: 'span',\n            child: {\n              text: \"Xác nhận xóa những file dưới đây: \"\n            }\n          }\n        }, contentElt],\n        on: {\n          action: function action(event, sender) {\n            var promises;\n            var errors = [];\n\n            if (event.action.name === 'ok') {\n              sender.$actionBtns[0].disabled = true;\n              sender.$actionBtns[0].text = \"Đang tiến hành xóa..\";\n              sender.$actionBtns[1].disabled = true;\n              promises = paths.map(function (path, i) {\n                return _this4.fileSystem.unlink(path).then(function () {\n                  (0, _ACore.$)('.as-finder-task-check', contentElt.firstChild.childNodes[i]).addChild((0, _ACore._)('span.mdi.mdi-check'));\n                })[\"catch\"](function (err) {\n                  errors.push(err);\n                  (0, _ACore.$)('.as-finder-task-check', contentElt.firstChild.childNodes[i]).addChild((0, _ACore._)('span.mdi.mdi-alert-decagram-outline')).addChild((0, _ACore._)({\n                    tag: 'span',\n                    \"class\": '.as-finder-task-error-message',\n                    child: {\n                      text: err.message\n                    }\n                  }));\n                });\n              });\n              Promise.all(promises).then(function () {\n                var commands = {};\n\n                if (errors.length > 0) {\n                  errors.forEach(function (err) {\n                    if (err.command) {\n                      commands[err.command] = true;\n                    }\n                  });\n                  if (commands.reload) _this4.execCommand('reload');\n                  sender.$actionBtns[1].disabled = false;\n                  sender.$actionBtns[0].text = \"Hoàn thành\";\n                } else {\n                  _this4.navCtrl.reload(_this4.path, true).then(function () {\n                    return modal.remove();\n                  });\n                }\n              });\n            } else {\n              modal.remove();\n            }\n          }\n        }\n      }\n    }).addTo(document.body);\n  }\n};\nFinderCommands.view = {\n  icon: 'span.mdi.mdi-eye-outline',\n  text: 'Xem',\n  match: function match(fileElt) {\n    return !!fileElt;\n  },\n\n  /***\r\n   * @this Finder\r\n   */\n  exec: function exec() {\n    var elt = this.selectCtrl.$selectedItems[0];\n    if (!elt) return;\n\n    if (elt.stat.isDirectory) {\n      this.navCtrl.viewDir(elt.stat.path);\n      return;\n    }\n\n    var url = elt.stat.url;\n    if (!url) return;\n    var type = elt.fileType;\n\n    if (type === 'xlsx' || type === 'docx' || type === 'xls' || type === 'doc' || type === 'ppt' || type === 'pptx') {\n      url = 'https://view.officeapps.live.com/op/embed.aspx?src=' + encodeURIComponent(url);\n    } else {\n      url = encodeURI(url);\n    }\n\n    var mineType = _ext2MineType[\"default\"][type] || 'none';\n    var content;\n\n    if (mineType.startsWith('video')) {\n      content = (0, _ACore._)({\n        tag: 'video',\n        style: {\n          maxWidth: 'calc(90vw - 20px)',\n          maxHeight: 'calc(90vh - 80px)',\n          width: '900px',\n          height: 'auto'\n        },\n        attr: {\n          autoplay: 'true',\n          controls: 'true'\n        },\n        props: {\n          src: url\n        }\n      });\n    } else if (mineType.startsWith('audio')) {\n      content = (0, _ACore._)({\n        tag: 'audio',\n        style: {\n          margin: '5px'\n        },\n        attr: {\n          autoplay: 'true',\n          controls: 'true'\n        },\n        props: {\n          src: url\n        }\n      });\n    } else if (mineType.startsWith('image')) {\n      content = (0, _ACore._)({\n        tag: 'img',\n        style: {\n          maxWidth: 'calc(90vw - 20px)',\n          maxHeight: 'calc(90vh - 80px)',\n          width: 'auto',\n          height: 'auto'\n        },\n        attr: {},\n        props: {\n          src: url\n        }\n      });\n    } else {\n      content = (0, _ACore._)({\n        tag: 'iframe',\n        style: {\n          maxWidth: 'calc(90vw - 20px)',\n          maxHeight: 'calc(90vh - 80px)',\n          width: '900px',\n          height: '600px'\n        },\n        props: {\n          src: url,\n          onload: function onload() {// console.log(this.contentWindow.document.body.offsetHeight, this.contentWindow.document.body.offsetWidth)\n          }\n        }\n      });\n    }\n\n    var modal = (0, _ACore._)({\n      tag: _Modal[\"default\"].tag,\n      style: {\n        zIndex: this.findZIndex() + 9000\n      },\n      child: {\n        tag: _WindowBox[\"default\"].tag,\n        child: content,\n        props: {\n          windowTitle: elt.stat.displayName || elt.stat.name,\n          windowActions: [{\n            name: 'close',\n            icon: 'span.mdi.mdi-close'\n          }]\n        },\n        on: {\n          action: function action() {\n            modal.remove();\n          }\n        }\n      }\n    }).addTo(document.body);\n  }\n};\nFinderCommands.download = {\n  icon: 'span.mdi.mdi-download-outline',\n  text: 'Tải về',\n  match: function match(elt) {\n    return elt && this.selectCtrl.$selectedItems.length > 0 && this.selectCtrl.$selectedItems.every(function (elt) {\n      return elt.stat && !elt.stat.isDirectory;\n    });\n  },\n\n  /***\r\n   * @this Finder\r\n   */\n  exec: function exec() {\n    var taskMng = new _TaskManager[\"default\"]({\n      limit: 4\n    });\n    this.selectCtrl.$selectedItems.forEach(function (elt) {\n      if (elt.isDirectory) return;\n      var url = elt.stat.url;\n      if (!url) return;\n      taskMng.requestTask(function (onFinish, bundle) {\n        (0, _FileSaver.saveAs)(bundle.url, bundle.name);\n        setTimeout(onFinish, 100);\n      }, {\n        url: url,\n        name: elt.fileName\n      });\n    });\n  }\n};\nFinderCommands.rename = {\n  icon: 'span.mdi.mdi-rename',\n  text: 'Đổi tên',\n\n  /***\r\n   * @this Finder\r\n   */\n  match: function match(elt) {\n    return elt && this.selectCtrl.$selectedItems.length === 1 && elt.stat && !elt.stat.isDirectory && elt.stat.writable; //todo: rename folder\n  },\n\n  /***\r\n   * @this Finder\r\n   */\n  exec: function exec() {\n    var _this5 = this;\n\n    var elt = this.selectCtrl.$selectedItems[0];\n    if (!elt) return;\n    var path = elt.stat.path;\n    var value = elt.fileName;\n    var input = (0, _ACore._)({\n      tag: _TextArea[\"default\"].tag,\n      style: {\n        outline: 'none',\n        position: 'absolute',\n        zIndex: 100,\n        left: 0,\n        bottom: 0,\n        width: '100%'\n      },\n      props: {\n        value: elt.fileName\n      },\n      on: {\n        blur: function blur() {\n          var newValue = input.value.replace(/<>:\\\\\\/\\|\\?\\*\\^/g, '').trim();\n          input.remove();\n          if (!value) return;\n          if (value === newValue) return;\n\n          _this5.fileSystem.rename(path, newValue).then(function (newStat) {\n            elt.stat = newStat;\n            elt.value = newStat.url;\n            elt.fileName = newStat.displayName || newStat.name;\n          });\n        }\n      }\n    });\n    elt.addChild(input);\n    input.on('keydown', function (event) {\n      if (event.key.match(/<>:\\\\\\/\\|\\?\\*\\^/)) {\n        event.preventDefault();\n        setTimeout(function () {\n          return input.updateSize();\n        }, 30);\n      } else if (event.key === 'Enter') {\n        input.blur();\n      } else if (event.key === 'Escape') {\n        input.value = value;\n        input.updateSize();\n        input.blur();\n      }\n    }, true);\n    input.updateSize();\n    input.focus();\n    var ext = value.match(/\\.[a-zA-Z0-9]+$/);\n\n    if (ext) {\n      ext = ext[0];\n    } else {\n      ext = '';\n    }\n\n    input.setSelectionRange(0, value.length - ext.length);\n  }\n};\nFinderCommands.copy = {\n  icon: 'span.mdi.mdi-content-copy',\n  text: 'Sao chép',\n  exec: function exec() {}\n};\nFinderCommands.move = {\n  text: 'Di chuyển',\n  icon: 'span.mdi.mdi-file-move-outline',\n  match: function match(fileElt) {\n    if (arguments.length === 0) {\n      return this.selectCtrl.$selectedItems.every(function (elt) {\n        return elt.stat.writable;\n      });\n    }\n\n    return fileElt && fileElt.stat && fileElt.stat.writable;\n  },\n\n  /***\r\n   * @this Finder\r\n   */\n  exec: function exec() {\n    var _this6 = this;\n\n    var itemElements = this.selectCtrl.$selectedItems.slice();\n    var paths = itemElements.map(function (elt) {\n      return elt.stat.path;\n    });\n    var names = itemElements.map(function (elt) {\n      return elt.fileName;\n    });\n    if (names.length === 0) return;\n    var currentFolderPath = this.path;\n    this.folderDialog.open(currentFolderPath, false, function (newFolderPath, stat) {\n      return newFolderPath !== currentFolderPath && stat.writable;\n    }, 'Di chuyển file').then(function (newFolderPath) {\n      if (!newFolderPath) return;\n      if (newFolderPath === currentFolderPath) return;\n      var contentElt = (0, _ACore._)({\n        style: {\n          maxHeight: '50vh',\n          overflow: 'auto'\n        },\n        child: {\n          style: {\n            display: 'table'\n          },\n          child: names.map(function (name) {\n            return {\n              style: {\n                display: 'table-row'\n              },\n              child: [{\n                style: {\n                  display: 'table-cell',\n                  padding: '5px 20px 5px 10px'\n                },\n                child: {\n                  style: {\n                    'min-width': '30em'\n                  },\n                  child: {\n                    text: name\n                  }\n                }\n              }, {\n                style: {\n                  display: 'table-cell',\n                  padding: '5px 10px'\n                },\n                child: {\n                  \"class\": 'as-finder-task-check',\n                  style: {\n                    'min-width': '3em',\n                    textAlign: 'right'\n                  },\n                  child: 'span'\n                }\n              }]\n            };\n          })\n        }\n      });\n      var modal = (0, _ACore._)({\n        tag: _Modal[\"default\"].tag,\n        style: {\n          zIndex: _this6.findZIndex() + 9000\n        },\n        child: {\n          tag: _MessageDialog[\"default\"].tag,\n          props: {\n            dialogTitle: 'Di chuyển file',\n            dialogActions: [{\n              name: 'close',\n              text: 'Đóng'\n            }]\n          },\n          child: [{\n            child: {\n              tag: 'span',\n              child: {\n                text: \"Danh sách đang di chuyển: \"\n              }\n            }\n          }, contentElt],\n          on: {\n            action: function action(event, sender) {\n              modal.remove();\n            }\n          }\n        }\n      }).addTo(document.body);\n      var errors = [];\n      var promises = paths.map(function (path, i) {\n        var newPath = newFolderPath + '/' + path.split('/').pop();\n        return _this6.fileSystem.move(path, newPath).then(function () {\n          (0, _ACore.$)('.as-finder-task-check', contentElt.firstChild.childNodes[i]).addChild((0, _ACore._)('span.mdi.mdi-check'));\n        })[\"catch\"](function (err) {\n          errors.push(err);\n          (0, _ACore.$)('.as-finder-task-check', contentElt.firstChild.childNodes[i]).addChild((0, _ACore._)('span.mdi.mdi-alert-decagram-outline')).addChild((0, _ACore._)({\n            tag: 'span',\n            \"class\": '.as-finder-task-error-message',\n            child: {\n              text: err.message\n            }\n          }));\n        });\n      });\n      Promise.all(promises).then(function () {\n        var commands = {};\n\n        if (errors.length > 0) {\n          errors.forEach(function (err) {\n            if (err.command) {\n              commands[err.command] = true;\n            }\n          });\n          if (commands.reload) _this6.execCommand('reload');\n        } else {\n          _this6.navCtrl.reload(_this6.path, true).then(function () {\n            return modal.remove();\n          });\n        }\n      });\n    });\n  }\n};\nFinderCommands.move_dir = {\n  text: 'Di chuyển',\n  icon: 'span.mdi.mdi-folder-arrow-right-outline',\n  match: function match(expElt) {\n    return expElt && expElt.stat && expElt.stat.writable && !expElt.stat.isVirtual;\n  },\n\n  /***\r\n   * @this Finder\r\n   */\n  exec: function exec(expElt) {\n    var _this7 = this;\n\n    var path = expElt.stat.path;\n    var currentFolderPath = path.split('/');\n    var name = currentFolderPath.pop();\n    currentFolderPath = currentFolderPath.join('/');\n    this.folderDialog.open(currentFolderPath, true, function (newPath) {\n      return !newPath.startsWith(path);\n    }, 'Di chuyển thư mục').then(function (newFolderPath) {\n      if (!newFolderPath) return;\n      return _this7.fileSystem.move(path, newFolderPath + '/' + name).then(function () {\n        _this7.path = newFolderPath + '/' + name;\n\n        _this7.navCtrl.reload(_this7.rootPath).then(function () {\n          _this7.navCtrl.viewDir(_this7.path);\n        });\n      });\n    });\n  }\n};\nFinderCommands.rmdir = {\n  text: 'Xóa',\n  icon: 'span.mdi.mdi-delete-outline',\n\n  /***\r\n   * @this Finder\r\n   * @param elt\r\n   */\n  match: function match(elt) {\n    if (elt.stat && elt.stat.isVirtual) return false;\n    if (elt) return elt.stat && elt.stat.writable;\n    return false;\n  },\n  exec: function exec(elt) {}\n};\nFinderCommands.select_all = {\n  text: 'Chọn tất cả',\n  icon: 'span.mdi.mdi-select-all',\n  match: function match(fileElt) {\n    return !fileElt;\n  },\n\n  /***\r\n   * @this Finder\r\n   */\n  exec: function exec() {\n    this.selectCtrl.selectAll();\n  }\n};\nFinderCommands.nav_expand_all = {\n  /***\r\n   * @this Finder\r\n   */\n  exec: function exec() {\n    this.navCtrl.expandAll();\n  }\n};\nFinderCommands.nav_collapse_all = {\n  /***\r\n   * @this Finder\r\n   */\n  exec: function exec() {\n    this.navCtrl.collapseAll();\n  }\n};\nFinderCommands.reload = {\n  /***\r\n   * @this Finder\r\n   */\n  exec: function exec() {\n    var _this8 = this;\n\n    this.fileSystem.clearCache();\n    this.navCtrl.reload().then(function () {\n      _this8.navCtrl.viewDir(_this8.path);\n    });\n  }\n};\nFinderCommands.content_view_as = {\n  /***\r\n   * @this Finder\r\n   */\n  exec: function exec(value, item) {\n    this.$commandButtons['content_view_as'].text = item.text;\n    this.$commandButtons['content_view_as'].icon = item.icon;\n    this.$body.attr('data-view-as', value);\n  }\n};\nFinderCommands.switch_to_search = {\n  /***\r\n   * @this Finder\r\n   */\n  exec: function exec() {\n    this.searchCtrl.start();\n  }\n};\nFinderCommands.cancel_search = {\n  /***\r\n   * @this Finder\r\n   */\n  exec: function exec() {\n    this.searchCtrl.stop();\n    this.navCtrl.viewDir(this.path);\n  }\n};\nFinderCommands.start_search = {\n  /***\r\n   * @this Finder\r\n   */\n  exec: function exec() {\n    this.searchCtrl.search();\n  }\n};\nFinderCommands.nav_toggle = {\n  icon: 'span.mdi.mdi-menu',\n  exec: function exec() {\n    if (this.hasClass('as-nav-open')) {\n      this.removeClass('as-nav-open');\n    } else {\n      this.addClass('as-nav-open');\n    }\n  }\n};\n/***\r\n *\r\n * @param {Finder} elt\r\n * @constructor\r\n */\n\nfunction LayoutController(elt) {\n  this.elt = elt;\n  this.actionButtonWidth = 0;\n  this.elt.domSignal.on('requestUpdateActionButtonSize', this.updateActionButtonSize.bind(this));\n  this.elt.on('click', this.ev_click.bind(this));\n}\n\nLayoutController.prototype.requestUpdateActionButtonSize = function () {\n  this.elt.domSignal.emit('requestUpdateActionButtonSize');\n};\n\nLayoutController.prototype.updateActionButtonSize = function () {\n  var font = this.elt.$nomalActionCtn.getComputedStyleValue('font');\n  var fontSize = this.elt.$nomalActionCtn.getFontSize();\n  this.actionButtonWidth = Array.prototype.reduce.call(this.elt.$nomalActionCtn.childNodes, function (ac, cr) {\n    return ac + Math.max(110, 0.715 * fontSize * 2 + (0, _utils.measureText)(cr.text, font).width) + 10;\n  }, 60);\n  this.update();\n};\n\nLayoutController.prototype.update = function () {\n  var bound = this.elt.getBoundingClientRect();\n\n  if (bound.width < 500) {\n    if (!this.elt.hasClass('as-mini-layout')) this.elt.addClass('as-mini-layout');\n  } else {\n    if (this.elt.hasClass('as-mini-layout')) {\n      this.elt.removeClass('as-mini-layout');\n      this.elt.removeClass('as-nav-open');\n    }\n  }\n\n  if (this.elt.hasClass('as-action-button-minimized')) {\n    if (this.actionButtonWidth <= bound.width) {\n      this.elt.removeClass('as-action-button-minimized');\n    }\n  } else {\n    if (this.actionButtonWidth > bound.width) {\n      this.elt.addClass('as-action-button-minimized');\n    }\n  }\n\n  var bodyBound = this.elt.$body.getBoundingClientRect();\n  var col = Math.floor(bodyBound.width / 300) || 1;\n  this.elt.$body.addStyle('--col', col + '');\n};\n\nLayoutController.prototype.ev_click = function (event) {\n  if (event.target === this.elt) {\n    this.elt.removeClass('as-nav-open');\n  }\n};\n/***\r\n *\r\n * @param {Finder} elt\r\n * @constructor\r\n */\n\n\nfunction CommandController(elt) {\n  var _this9 = this;\n\n  Object.keys(this.constructor.prototype).forEach(function (key) {\n    if (key.startsWith('ev_')) {\n      _this9[key] = _this9[key].bind(_this9);\n    }\n  });\n  this.elt = elt;\n  this.$normalActionCtn = this.elt.$nomalActionCtn;\n  this.$tinyActionCtn = this.elt.$tinyActionCtn;\n  this.commands = Object.assign({}, this.elt.commands);\n  this.buttonNames = ['upload', 'view', 'download', 'move', 'rename', 'delete'];\n  this.folderMenuItemNames = ['upload_to_folder', 'move_dir'];\n  this.contentMenuItemNames = ['view', 'download', 'upload', 'select_all', 'move', 'delete', 'rename'];\n  this.$navCtn = this.elt.$navCtn;\n  this.$navCtn.defineEvent('contextmenu').on('contextmenu', this.ev_navContextMenu);\n  this.$contentCtn = this.elt.$contentCtn;\n  this.$contentCtn.defineEvent('contextmenu').on('contextmenu', this.ev_contentContextMenu);\n  this.updateButtons();\n}\n\nCommandController.prototype.updateButtons = function () {\n  var _this10 = this;\n\n  this.$normalActionCtn.clearChild();\n  var buttons = this.buttonNames.map(function (name) {\n    var desc = _this10.commands[name] || {};\n    return (0, _ACore._)({\n      tag: _FlexiconButton[\"default\"].tag,\n      attr: {\n        name: name\n      },\n      props: {\n        text: desc.text || name\n      },\n      on: {\n        click: function click() {\n          _this10.execCommand(name);\n        }\n      }\n    });\n  });\n  this.$normalActionCtn.addChild(buttons);\n  buttons = this.buttonNames.map(function (name) {\n    var desc = _this10.commands[name] || {};\n    return (0, _ACore._)({\n      tag: 'button',\n      \"class\": 'as-transparent-button',\n      attr: {\n        name: name\n      },\n      child: desc.icon,\n      on: {\n        click: function click() {\n          _this10.execCommand(name);\n        }\n      }\n    });\n  });\n  this.$tinyActionCtn.addChild(buttons);\n  this.elt.layoutCtn.requestUpdateActionButtonSize();\n};\n\nCommandController.prototype.execCommand = function (name) {\n  var args = Array.prototype.slice.call(arguments, 1);\n  var desc = this.commands[name];\n\n  if (desc && typeof desc.exec === 'function') {\n    return desc.exec.apply(this.elt, args);\n  }\n\n  return null;\n};\n\nCommandController.prototype.addCommand = function (name, desc) {\n  this.commands[name] = Object.assign({}, this.commands[name], desc);\n};\n/****\r\n *\r\n * @param {string} name\r\n * @param {string=} bf\r\n */\n\n\nCommandController.prototype.addButton = function (name, bf) {\n  var _this11 = this;\n\n  var idx = this.buttonNames.indexOf(bf);\n  var bfElt, smallBfElt;\n\n  if (idx >= 0) {\n    this.buttonNames.splice(idx, 0, name);\n    bfElt = (0, _ACore.$)(\"button[name=\\\"\".concat(name, \"\\\"]\"), this.$normalActionCtn);\n    smallBfElt = (0, _ACore.$)(\"button[name=\\\"\".concat(name, \"\\\"]\"), this.$tinyActionCtn);\n  } else {\n    this.buttonNames.push(name);\n  }\n\n  var desc = this.commands[name] || {};\n  this.$normalActionCtn.addChildBefore((0, _ACore._)({\n    tag: _FlexiconButton[\"default\"].tag,\n    attr: {\n      name: name\n    },\n    props: {\n      text: desc.text || name\n    },\n    on: {\n      click: function click() {\n        _this11.execCommand(name);\n      }\n    }\n  }), bfElt);\n  this.$tinyActionCtn.addChild((0, _ACore._)({\n    tag: 'button',\n    \"class\": 'as-transparent-button',\n    attr: {\n      name: name\n    },\n    child: desc.icon,\n    on: {\n      click: function click() {\n        _this11.execCommand(name);\n      }\n    }\n  }), smallBfElt);\n  this.elt.layoutCtn.requestUpdateActionButtonSize();\n};\n/****\r\n *\r\n * @param {string} name\r\n * @param {string=} bf\r\n */\n\n\nCommandController.prototype.addFolderMenuItem = function (name, bf) {\n  idx = this.folderMenuItemNames.indexOf(name);\n  if (idx >= 0) return;\n  var idx = this.folderMenuItemNames.indexOf(bf);\n  if (idx >= 0) this.folderMenuItemNames.splice(idx, 0, name);else this.folderMenuItemNames.push(name);\n};\n/****\r\n *\r\n * @param {string} name\r\n * @param {string=} bf\r\n */\n\n\nCommandController.prototype.addContentMenuItem = function (name, bf) {\n  idx = this.folderMenuItemNames.indexOf(name);\n  if (idx >= 0) return; //todo\n\n  var idx = this.folderMenuItemNames.indexOf(bf);\n  if (idx >= 0) this.folderMenuItemNames.splice(idx, 0, name);else this.folderMenuItemNames.push(name);\n};\n\nCommandController.prototype.ev_navContextMenu = function (event) {\n  var _this12 = this;\n\n  var expTree;\n  var c = event.target;\n\n  while (c && !expTree) {\n    if (c.stat) expTree = c;\n    c = c.parentElement;\n  }\n\n  if (expTree) this.elt.navCtrl.viewDir(expTree.stat.path, [this.elt.rootPath].concat(expTree.getPath()).join('/'));\n  var items = this.folderMenuItemNames.map(function (name) {\n    var desc = _this12.commands[name];\n    if (!desc) return null;\n\n    if (typeof desc.match === \"function\") {\n      if (!desc.match.call(_this12.elt, expTree)) return null;\n    }\n\n    return {\n      text: desc.text,\n      icon: desc.icon,\n      cmd: name\n    };\n  }).filter(function (x) {\n    return !!x;\n  });\n\n  if (items.length > 0) {\n    event.showContextMenu({\n      items: items\n    }, function (event) {\n      var cmd = event.menuItem.cmd;\n\n      _this12.execCommand(cmd, expTree);\n    });\n  }\n};\n\nCommandController.prototype.ev_contentContextMenu = function (event) {\n  var _this13 = this;\n\n  var fileElt;\n  var c = event.target;\n\n  while (c && !fileElt) {\n    if (c.stat) fileElt = c;\n    c = c.parentElement;\n  }\n\n  var selectedElements = this.elt.selectCtrl.$selectedItems;\n\n  if (fileElt && selectedElements.indexOf(fileElt) < 0) {\n    this.elt.selectCtrl.deselectAll();\n    this.elt.selectCtrl.select(fileElt);\n  } // if (expTree) this.elt.navCtrl.viewDir(expTree.stat.path, [this.elt.rootPath].concat(expTree.getPath()).join('/'));\n\n\n  var items = this.contentMenuItemNames.map(function (name) {\n    var desc = _this13.commands[name];\n    if (!desc) return null;\n\n    if (typeof desc.match === \"function\") {\n      if (!desc.match.call(_this13.elt, fileElt)) return null;\n    }\n\n    return {\n      text: desc.text,\n      icon: desc.icon,\n      cmd: name\n    };\n  }).filter(function (x) {\n    return !!x;\n  });\n\n  if (items.length > 0) {\n    event.showContextMenu({\n      items: items\n    }, function (event) {\n      var cmd = event.menuItem.cmd;\n\n      _this13.execCommand(cmd, fileElt);\n    });\n  }\n};\n/***\r\n * for desktop\r\n * @param {Finder} elt\r\n * @constructor\r\n */\n\n\nfunction SelectController(elt) {\n  var _this14 = this;\n\n  this.elt = elt;\n  this.$selectedItems = []; // first element is focus\n\n  this.$content = this.elt.$content;\n  this.$contentCtn = this.elt.$contentCtn;\n  Object.keys(this.constructor.prototype).forEach(function (key) {\n    if (key.startsWith('ev_')) {\n      _this14[key] = _this14[key].bind(_this14);\n    }\n  });\n\n  this._setupSelectTool();\n}\n/***\r\n *\r\n * @protected\r\n */\n\n\nSelectController.prototype._setupSelectTool = function () {\n  this._draged = false;\n  this._dragOffset = new _Vec[\"default\"](0, 0);\n  this.$selectArea = (0, _ACore._)('.as-finder-select-area');\n  this.$contentCtn.on('draginit', this.ev_dragInit).on('dragdeinit', this.ev_dragDeinit).on('dragstart', this.ev_dragStart).on('drag', this.ev_drag).on('dragend', this.ev_dragEnd);\n};\n\nSelectController.prototype.deselectAll = function () {\n  while (this.$selectedItems.length > 0) {\n    this.$selectedItems.pop().checked = false;\n  }\n\n  this._updateCount();\n\n  this.elt.emit('selectedchange');\n};\n\nSelectController.prototype.select = function (elt) {\n  //todo: more option\n  this.deselectAll();\n  this.$selectedItems.push(elt);\n  elt.checked = true;\n\n  this._updateCount();\n\n  this.elt.emit('selectedchange');\n};\n\nSelectController.prototype.selectAll = function () {\n  //todo: more option\n  this.deselectAll();\n  var fileElements = Array.prototype.slice.call(this.$content.childNodes);\n  this.$selectedItems.push.apply(this.$selectedItems, fileElements);\n  fileElements.forEach(function (elt) {\n    elt.checked = true;\n  });\n\n  this._updateCount();\n\n  this.elt.emit('selectedchange');\n};\n\nSelectController.prototype.ev_dragInit = function (event) {\n  if (event.target.tagName === 'INPUT' || event.target.tagName === 'TEXTAREA') {\n    event.cancel();\n    return;\n  } // event.preventDefault();\n\n\n  this._draged = false;\n};\n\nSelectController.prototype.ev_dragDeinit = function (event) {\n  if (!this._draged) this.ev_click(event);\n};\n\nSelectController.prototype.ev_dragStart = function (event) {\n  this._draged = true;\n  this.elt.addClass('as-dragging');\n  this.$selectArea.addStyle('z-index', this.elt.findZIndex() + 100 + '').addTo(document.body);\n\n  var bound = _Rectangle[\"default\"].fromClientRect(this.$content.getBoundingClientRect());\n\n  this._dragOffset = event.currentPoint.sub(bound.A());\n  var pos = bound.A().add(this._dragOffset);\n  this.$selectArea.addStyle({\n    left: pos.x + 'px',\n    top: pos.y + 'px'\n  });\n};\n\nSelectController.prototype.ev_drag = function (event) {\n  this._draged = true;\n\n  var bound = _Rectangle[\"default\"].fromClientRect(this.$content.getBoundingClientRect());\n\n  var A = bound.A().add(this._dragOffset);\n  var C = event.currentPoint;\n\n  var sRect = _Rectangle[\"default\"].boundingPoints([A, C]);\n\n  this.$selectArea.addStyle({\n    left: sRect.x + 'px',\n    top: sRect.y + 'px',\n    width: sRect.width + 'px',\n    height: sRect.height + 'px'\n  });\n};\n\nSelectController.prototype.ev_dragEnd = function () {\n  var _this15 = this;\n\n  while (this.$selectedItems.length > 0) {\n    this.$selectedItems.pop().checked = false;\n  }\n\n  var selectBound = _Rectangle[\"default\"].fromClientRect(this.$selectArea.getBoundingClientRect());\n\n  Array.prototype.forEach.call(this.$content.childNodes, function (elt) {\n    var bound = _Rectangle[\"default\"].fromClientRect(elt.getBoundingClientRect());\n\n    if (selectBound.isCollapse(bound, 0)) {\n      _this15.$selectedItems.push(elt);\n\n      elt.checked = true;\n    }\n  });\n  this._draged = true;\n  this.$selectArea.remove();\n  this.elt.removeClass('as-dragging');\n\n  this._updateCount();\n\n  this.elt.layoutCtn.update();\n  this.elt.emit('selectedchange');\n};\n\nSelectController.prototype._updateCount = function () {\n  var folderCount = this.$selectedItems.filter(function (elt) {\n    return elt.stat.isDirectory;\n  }).length;\n  this.elt.attr('data-selected-file-count', this.$selectedItems.length - folderCount + '');\n  this.elt.attr('data-selected-folder-count', folderCount + '');\n};\n\nSelectController.prototype.ev_click = function (event) {\n  event = event.originalEvent || event.originEvent || event;\n  var c = event.target;\n  var itemElt;\n\n  while (c && !itemElt) {\n    if (c.hasClass && c.hasClass('as-file-thumbnail')) {\n      itemElt = c;\n      break;\n    }\n\n    c = c.parentElement;\n  }\n\n  var focusIdx;\n  var currentIdx;\n\n  if (this.$selectedItems.length === 0 && itemElt) {\n    this.$selectedItems.push(itemElt);\n    itemElt.checked = true;\n  } else if ((0, _EventEmitter.isMouseRight)(event)) {} else if (!event.ctrlKey && !event.shiftKey) {\n    while (this.$selectedItems.length > 0) {\n      this.$selectedItems.pop().checked = false;\n    }\n\n    if (itemElt) {\n      this.$selectedItems.push(itemElt);\n      itemElt.checked = true;\n    }\n  } else if (event.shiftKey) {\n    if (itemElt) {\n      focusIdx = Array.prototype.indexOf.call(this.$content.childNodes, this.$selectedItems[0]);\n      currentIdx = Array.prototype.indexOf.call(this.$content.childNodes, itemElt);\n\n      while (this.$selectedItems.length > 1) {\n        this.$selectedItems.pop().checked = false;\n      }\n\n      while (currentIdx !== focusIdx) {\n        itemElt = this.$content.childNodes[currentIdx];\n        this.$selectedItems.push(itemElt);\n        itemElt.checked = true;\n        if (currentIdx < focusIdx) currentIdx++;else currentIdx--;\n      }\n    }\n  } else if (event.ctrlKey) {\n    if (itemElt) {\n      currentIdx = this.$selectedItems.indexOf(itemElt);\n\n      if (currentIdx >= 0) {\n        this.$selectedItems.splice(currentIdx, 1);\n        itemElt.checked = false;\n      } else {\n        this.$selectedItems.unshift(itemElt);\n        itemElt.checked = true;\n      }\n    }\n  }\n\n  this._updateCount();\n\n  this.elt.layoutCtn.update();\n  this.elt.emit('selectedchange');\n};\n/***\r\n * @extends SelectController\r\n * @param elt\r\n * @constructor\r\n */\n\n\nfunction MobileSelectController(elt) {\n  SelectController.apply(this, arguments);\n}\n\n_OOP[\"default\"].mixClass(MobileSelectController, SelectController);\n\nMobileSelectController.prototype._setupSelectTool = function () {\n  this.$content.on('click', this.ev_click);\n};\n/***\r\n *\r\n * @param {Finder} elt\r\n * @constructor\r\n */\n\n\nfunction UploadController(elt) {\n  var _this16 = this;\n\n  /***\r\n   *\r\n   * @type {Finder}\r\n   */\n  this.elt = elt;\n  this.$body = this.elt.$body;\n  Object.keys(this.constructor.prototype).forEach(function (key) {\n    if (key.startsWith('ev_')) {\n      _this16[key] = _this16[key].bind(_this16);\n    }\n  });\n  this.$body.on({\n    fileenter: this.ev_fileEnter,\n    filedrop: this.ev_fileDrop\n  });\n}\n\nUploadController.prototype.upload = function (files) {\n  var _this17 = this;\n\n  var contentElt = (0, _ACore._)({\n    style: {\n      maxHeight: '50vh',\n      overflow: 'auto'\n    },\n    child: {\n      style: {\n        display: 'table'\n      },\n      child: files.map(function (file) {\n        return {\n          style: {\n            display: 'table-row'\n          },\n          child: [{\n            style: {\n              display: 'table-cell',\n              padding: '5px 20px 5px 10px'\n            },\n            child: {\n              style: {\n                'min-width': '30em'\n              },\n              child: {\n                text: file.name\n              }\n            }\n          }, {\n            style: {\n              display: 'table-cell',\n              padding: '5px 10px'\n            },\n            child: {\n              \"class\": 'as-upload-percent',\n              style: {\n                'min-width': '3em',\n                textAlign: 'right',\n                color: 'rgb(30,237,219)'\n              },\n              child: {\n                text: ''\n              }\n            }\n          }]\n        };\n      })\n    }\n  });\n  var modal = (0, _ACore._)({\n    tag: _Modal[\"default\"].tag,\n    style: {\n      zIndex: this.elt.findZIndex() + 9000\n    },\n    child: {\n      tag: _MessageDialog[\"default\"].tag,\n      props: {\n        dialogTitle: 'Tải lên'\n      },\n      child: contentElt\n    }\n  }).addTo(document.body);\n  var syncs = files.map(function (file, i) {\n    var percentText = (0, _ACore.$)('.as-upload-percent', contentElt.firstChild.childNodes[i]);\n    return _this17.elt.fileSystem.writeFile(_this17.elt.path + '/' + file.name, file, function (done) {\n      var textBound = percentText.getBoundingClientRect();\n      var ctnBound = contentElt.getBoundingClientRect();\n\n      if (textBound.bottom > ctnBound.bottom) {\n        contentElt.scrollTop += textBound.bottom - ctnBound.bottom;\n      }\n\n      percentText.firstChild.data = Math.round(done * 100) + '%';\n    });\n  });\n  Promise.all(syncs).then(function () {\n    _this17.elt.navCtrl.reload(_this17.elt.path, true).then(function () {\n      return modal.remove();\n    });\n  });\n};\n\nUploadController.prototype.ev_fileEnter = function (event) {\n  var files = Array.prototype.slice.call(event.dataTransfer.files);\n  if (files.length === 0) return;\n};\n\nUploadController.prototype.ev_fileDrop = function (event) {\n  if (this.elt.searchCtrl.state === \"RUNNING\") return;\n  var files = event.files;\n  if (files.length > 0) this.upload(files);\n};\n/***\r\n * @extends EventEmitter\r\n * @param {Finder} elt\r\n * @constructor\r\n */\n\n\nfunction FolderDialog(elt) {\n  _EventEmitter[\"default\"].call(this);\n\n  this.elt = elt;\n}\n\n_OOP[\"default\"].mixClass(FolderDialog, _EventEmitter[\"default\"]);\n\nFolderDialog.prototype._init = function () {\n  if (this.$modal) return;\n  this.$modal = (0, _ACore._)({\n    tag: 'modal',\n    \"class\": 'as-finder-folder-dialog-modal',\n    child: {\n      tag: _MessageDialog[\"default\"].tag,\n      props: {\n        dialogTitle: 'Duyệt thư mục',\n        dialogActions: [{\n          name: 'ok',\n          text: 'OK'\n        }, {\n          name: 'cancel',\n          text: 'Hủy'\n        }]\n      },\n      child: [{\n        \"class\": 'as-finder-folder-dialog-content',\n        child: [{\n          \"class\": 'as-finder-folder-dialog-selected-ctn',\n          child: [{\n            tag: 'span',\n            child: {\n              text: 'Đã chọn thư mục: '\n            }\n          }, {\n            tag: 'span',\n            child: {\n              text: ' ... '\n            }\n          }]\n        }, {\n          \"class\": 'as-finder-folder-dialog-tree-ctn',\n          child: [{\n            tag: _ExpTree.ExpGroup.tag\n          }, {\n            tag: _ExpTree.ExpTree.tag,\n            \"class\": 'as-finder-folder-dialog-tree-root',\n            props: {\n              name: 'root',\n              icon: 'span.mdi.mdi-harddisk'\n            }\n          }]\n        }]\n      }]\n    }\n  });\n  this.$dialog = (0, _ACore.$)(_MessageDialog[\"default\"].tag, this.$modal);\n  this.$treeCtn = (0, _ACore.$)('.as-finder-folder-dialog-tree-ctn', this.$modal);\n  this.$rootTree = (0, _ACore.$)('.as-finder-folder-dialog-tree-root', this.$modal);\n  this.$content = (0, _ACore.$)('.as-finder-folder-dialog-content', this.$modal);\n  this.$expGroup = (0, _ACore.$)(_ExpTree.ExpGroup.tag, this.$content);\n  this.$selectedCtn = (0, _ACore.$)('.as-finder-folder-dialog-selected-ctn', this.$content);\n  this.$selectedPath = this.$selectedCtn.childNodes[1];\n  this.$activeNode = null;\n};\n\nFolderDialog.prototype.open = function (initPath, showRoot, checkFunc, title) {\n  var _this18 = this;\n\n  var cPath = initPath;\n\n  this._init();\n\n  var fileSystem = this.elt.fileSystem;\n  var zIndex = this.elt.findZIndex() + 9000;\n  this.$modal.addStyle('z-index', zIndex + '');\n  this.$modal.addTo(document.body);\n\n  if (this.$activeNode) {\n    this.$activeNode.active = false;\n    this.$activeNode = null;\n  }\n\n  this.$dialog.$actionBtns[0].disabled = true;\n  this.$dialog.dialogTitle = title || 'Duyệt';\n\n  var makeTree = function makeTree(path, ctnElt, level) {\n    level = level || 0;\n    return fileSystem.readDir(path).then(function (dirs) {\n      return Promise.all(dirs.map(function (dir) {\n        return fileSystem.stat(path + '/' + dir);\n      }));\n    }).then(function (stats) {\n      return stats.filter(function (stat) {\n        return stat.isDirectory;\n      });\n    }).then(function (stats) {\n      var syncs = [];\n      ctnElt.clearChild();\n      var children = stats.map(function (stat) {\n        var nodePath = path + '/' + stat.name;\n        var node = (0, _ACore._)({\n          tag: _ExpTree.ExpTree.tag,\n          props: {\n            stat: stat,\n            name: stat.displayName || stat.name,\n            icon: {\n              tag: 'img',\n              props: {\n                src: _MessageInput[\"default\"].iconAssetRoot + '/folder.svg'\n              }\n            },\n            path: nodePath\n          },\n          on: {\n            statuschage: function statuschage() {},\n            press: function press() {\n              if (_this18.$activeNode) _this18.$activeNode.active = false;\n              _this18.$activeNode = node;\n              _this18.$activeNode.active = true;\n              _this18.$selectedPath.firstChild.data = node.getPath().join('/');\n              cPath = nodePath;\n\n              if (checkFunc && !checkFunc(cPath, stat)) {\n                _this18.$dialog.$actionBtns[0].disabled = true;\n              } else {\n                _this18.$dialog.$actionBtns[0].disabled = false;\n              }\n            }\n          }\n        });\n\n        if (nodePath === cPath) {\n          node.active = true;\n          _this18.$activeNode = node;\n        }\n\n        if (checkFunc && !checkFunc(nodePath, stat)) {\n          node.getNode().addStyle('opacity', 0.3 + '');\n        }\n\n        node.getNode().on({\n          dblclick: function dblclick() {\n            if (node.status === 'close') {\n              node.status = 'open';\n            } else if (node.status === 'open') {\n              node.status = 'close';\n            }\n          }\n        });\n        if (stat.name !== 'node_modules') syncs.push(makeTree(nodePath, node, level + 1));\n        return node;\n      });\n      children.forEach(function (c) {\n        ctnElt.addChild(c);\n      });\n\n      if (children.length) {\n        ctnElt.status = level > 1 ? 'close' : 'open';\n      } else {\n        ctnElt.status = 'none';\n      }\n\n      return Promise.all(syncs);\n    });\n  };\n\n  var onRootPress;\n\n  if (showRoot) {\n    this.$expGroup.addStyle('display', 'none');\n    this.$rootTree.removeStyle('display');\n\n    if (cPath === this.elt.rootPath) {\n      this.$activeNode = this.$rootTree;\n      this.$activeNode.active = true;\n    }\n\n    onRootPress = function onRootPress() {\n      var node = _this18.$rootTree;\n      var nodePath = _this18.elt.rootPath;\n      if (_this18.$activeNode) _this18.$activeNode.active = false;\n      _this18.$activeNode = node;\n      _this18.$activeNode.active = true;\n      _this18.$selectedPath.firstChild.data = node.getPath().join('/');\n      cPath = nodePath;\n\n      if (cPath === initPath || checkFunc && !checkFunc(cPath, {\n        writable: true\n      })) {\n        _this18.$dialog.$actionBtns[0].disabled = true;\n      } else {\n        _this18.$dialog.$actionBtns[0].disabled = false;\n      }\n    };\n\n    this.$rootTree.on('press', onRootPress);\n  } else {\n    this.$expGroup.removeStyle('display');\n    this.$rootTree.addStyle('display', 'none');\n  }\n\n  makeTree(this.elt.rootPath, showRoot ? this.$rootTree : this.$expGroup).then(function () {\n    var p;\n\n    if (_this18.$activeNode) {\n      _this18.$selectedPath.firstChild.data = _this18.$activeNode.getPath().join('/');\n      p = _this18.$activeNode.getParent();\n\n      while (p) {\n        if (p.status === 'close') {\n          p.status = 'open';\n        }\n\n        p = p.getParent && p.getParent();\n      }\n\n      setTimeout(function () {\n        (0, _utils.vScrollIntoView)(_this18.$activeNode.firstChild);\n      }, 10);\n    }\n  });\n  return new Promise(function (resolve) {\n    var finish = function finish(event) {\n      _this18.$dialog.off('action', finish);\n\n      _this18.$modal.remove();\n\n      if (event.action.name === 'cancel') resolve(null);else resolve(cPath);\n\n      if (onRootPress) {\n        _this18.$rootTree.off('press', onRootPress);\n      }\n    };\n\n    _this18.$dialog.on('action', finish);\n  });\n};\n/***\r\n *\r\n * @param {Finder} elt\r\n * @constructor\r\n */\n\n\nfunction NavigatorController(elt) {\n  var _this19 = this;\n\n  this.elt = elt;\n  this.path = '';\n  this.rootPath = '';\n  this._states = {};\n  this._notifiedVisibleIdx = 0;\n  this.$navCtn = this.elt.$navCtn;\n  this.$nav = this.elt.$nav;\n  this.$contentCtn = this.elt.$contentCtn;\n  this.$content = this.elt.$content;\n  Object.keys(this.constructor.prototype).forEach(function (key) {\n    if (key.startsWith('ev_')) {\n      _this19[key] = _this19[key].bind(_this19);\n    }\n  });\n  this.$contentCtn.on('scroll', this.ev_contentScroll);\n}\n\nNavigatorController.prototype.onStart = function () {\n  /**\r\n   *\r\n   * @type {AbsolFileSystem}\r\n   */\n  this.fileSystem = this.elt.fileSystem;\n  this.$treeByPath = {};\n  this.$treeByPath[this.rootPath || '..'] = this.$nav;\n  this.reload(this.rootPath, true);\n};\n\nNavigatorController.prototype.reload = function (fromPath, autoOpen) {\n  var _this20 = this;\n\n  var opened = !autoOpen;\n\n  var makeTree = function makeTree(path, ctnElt) {\n    if (!opened && ctnElt.path) {\n      _this20.viewDir(ctnElt.path, [_this20.elt.rootPath].concat(ctnElt.getPath()).join('/'));\n\n      opened = true;\n    }\n\n    return _this20.fileSystem.readDir(path).then(function (dirs) {\n      return Promise.all(dirs.map(function (dir) {\n        return _this20.fileSystem.stat(path + '/' + dir);\n      }));\n    }).then(function (stats) {\n      return stats.filter(function (stat) {\n        return stat.isDirectory;\n      });\n    }).then(function (stats) {\n      var syncs = [];\n      ctnElt.clearChild();\n      var children = stats.map(function (stat) {\n        var nodePath = path + '/' + stat.name;\n        var node = (0, _ACore._)({\n          tag: _ExpTree.ExpTree.tag,\n          props: {\n            stat: stat,\n            name: stat.displayName || stat.name,\n            icon: {\n              tag: 'img',\n              props: {\n                src: _MessageInput[\"default\"].iconAssetRoot + '/folder.svg'\n              }\n            },\n            path: nodePath\n          },\n          on: {\n            statuschage: function statuschage() {\n              _this20._states[path + '/' + stat.name] = node.status;\n            },\n            press: function press() {\n              if (_this20.path !== nodePath) _this20.viewDir(nodePath, [_this20.elt.rootPath].concat(node.getPath()).join('/'));\n            }\n          }\n        });\n        node.getNode().on({\n          dblclick: function dblclick() {\n            if (node.status === 'close') {\n              node.status = 'open';\n            } else if (node.status === 'open') {\n              node.status = 'close';\n            }\n\n            _this20._states[nodePath] = node.status;\n          }\n        });\n        _this20.$treeByPath[nodePath] = node;\n        if (stat.name !== 'node_modules') syncs.push(makeTree(nodePath, node));\n\n        if (!opened) {\n          _this20.viewDir(nodePath, [_this20.elt.rootPath].concat(node.getPath()).join('/'));\n\n          opened = true;\n        }\n\n        return node;\n      });\n      children.forEach(function (c) {\n        ctnElt.addChild(c);\n      });\n\n      if (children.length) {\n        if (_this20._states[ctnElt.path] === 'close' || _this20._states[ctnElt.path] === 'open') {\n          ctnElt.status = _this20._states[ctnElt.path];\n        } else {\n          ctnElt.status = 'close';\n        }\n      } else {\n        ctnElt.status = 'none';\n      }\n\n      return Promise.all(syncs);\n    });\n  };\n\n  if (this.$treeByPath[fromPath || '..']) return makeTree(fromPath, this.$treeByPath[fromPath || '..']);\n  return Promise.resolve();\n};\n\nNavigatorController.prototype.viewDir = function (path) {\n  var _this21 = this;\n\n  this.elt.selectCtrl.deselectAll();\n\n  if (this.$treeByPath[this.path]) {\n    this.$treeByPath[this.path].active = false;\n    this.$treeByPath[this.path].active = false;\n  }\n\n  this.path = path;\n  this.$treeByPath[this.path].active = true;\n  var c = this.$treeByPath[this.path].getParent();\n\n  while (c) {\n    if (c.status === 'close') c.status = 'open';\n    c = c.getParent && c.getParent();\n  }\n\n  (0, _utils.vScrollIntoView)(this.$treeByPath[this.path].firstChild);\n  this.fileSystem.stat(path).then(function (stat) {\n    _this21.elt.dirStat = stat;\n    if (_this21.path !== path) return;\n    if (stat.writable) _this21.elt.addClass('as-writable-folder');else _this21.elt.removeClass('as-writable-folder');\n\n    if (stat.isVirtual) {\n      _this21.elt.addClass('as-virtual-folder');\n    } else {\n      _this21.elt.removeClass('as-virtual-folder');\n    }\n  });\n  this.fileSystem.readDir(path).then(function (dirs) {\n    return Promise.all(dirs.map(function (dir) {\n      return _this21.fileSystem.stat(path + '/' + dir);\n    }));\n  }).then(function (stats) {\n    if (_this21.path !== path) return;\n    stats.sort(function (a, b) {\n      var aName, bName;\n\n      if (a.isDirectory === b.isDirectory) {\n        aName = a.displayName || a.name;\n        bName = b.displayName || b.name;\n        if (aName < bName) return -1;\n        return 1;\n      } else {\n        if (a.isDirectory) return -1;\n        return 1;\n      }\n    });\n\n    _this21.viewContent(stats);\n  });\n};\n\nNavigatorController.prototype.viewContent = function (stats) {\n  var _this22 = this;\n\n  this.clearContent();\n  stats.forEach(function (stat) {\n    _this22.pushContentItem(stat);\n  });\n  this.notifyVisibleContentItems();\n};\n\nNavigatorController.prototype.clearContent = function () {\n  this._notifiedVisibleIdx = 0;\n  this.$content.clearChild();\n};\n\nNavigatorController.prototype.pushContentItem = function (stat) {\n  var _this23 = this;\n\n  var elt = (0, _ACore._)({\n    tag: _FileThumbnail[\"default\"].tag,\n    extendEvent: ['visible'],\n    attr: {\n      title: stat.displayName || stat.name\n    },\n    props: {\n      isDirectory: stat.isDirectory,\n      value: stat.url,\n      fileName: stat.displayName || stat.name,\n      stat: stat\n    },\n    on: {\n      visible: function visible() {\n        var mineType = _ext2MineType[\"default\"][elt.fileType];\n\n        if (mineType && mineType.startsWith('image/')) {\n          elt.thumbnail = stat.url;\n        }\n      },\n      dblclick: function dblclick() {\n        var prevented = false;\n        var event;\n\n        if (!stat.isDirectory) {\n          event = {\n            fileElt: elt,\n            stat: stat,\n            preventDefault: function preventDefault() {\n              prevented = true;\n            }\n          };\n\n          _this23.elt.emit('dblclickfile', event);\n        }\n\n        if (!prevented) _this23.elt.execCommand('view');\n      }\n    }\n  });\n  this.$content.addChild(elt);\n};\n\nNavigatorController.prototype.notifyVisibleContentItems = function () {\n  var elt;\n  var bound = this.$contentCtn.getBoundingClientRect();\n  var eBound;\n\n  while (this._notifiedVisibleIdx < this.$content.childNodes.length) {\n    elt = this.$content.childNodes[this._notifiedVisibleIdx];\n    eBound = elt.getBoundingClientRect();\n\n    if (eBound.top < bound.bottom) {\n      elt.emit('visible');\n    } else {\n      break;\n    }\n\n    this._notifiedVisibleIdx++;\n  }\n};\n\nNavigatorController.prototype.expandAll = function () {\n  var _this24 = this;\n\n  var visit = function visit(nodeElt) {\n    if (nodeElt.status === 'close') {\n      nodeElt.status = 'open';\n      _this24._states[nodeElt.path] = 'open';\n    }\n\n    if (nodeElt.status === 'open') {\n      nodeElt.getChildren().forEach(visit);\n    }\n  };\n\n  Array.prototype.forEach.call(this.$nav.childNodes, visit);\n};\n\nNavigatorController.prototype.collapseAll = function () {\n  var _this25 = this;\n\n  var visit = function visit(nodeElt) {\n    if (nodeElt.status === 'open') {\n      nodeElt.status = 'close';\n      _this25._states[nodeElt.path] = 'close';\n    }\n\n    if (nodeElt.status === 'close') {\n      nodeElt.getChildren().forEach(visit);\n    }\n  };\n\n  Array.prototype.forEach.call(this.$nav.childNodes, visit);\n};\n\nNavigatorController.prototype.ev_contentScroll = function (event) {\n  this.notifyVisibleContentItems();\n};\n\nvar fileTextQuery2Regex = function fileTextQuery2Regex(text) {\n  var code = (0, _stringFormat.nonAccentVietnamese)(text.toLowerCase()).replace(/[.,+^$()\\[\\]{}|\\\\]/g, function (x) {\n    return '\\\\' + x;\n  }).replace(/\\*+/g, '(.*)').replace(/\\?/g, '.');\n  return new RegExp(code, 'i');\n};\n/***\r\n * @extends Context\r\n * @param {Finder} elt\r\n * @constructor\r\n */\n\n\nfunction SearchController(elt) {\n  var _this26 = this;\n\n  _Context[\"default\"].apply(this);\n\n  this.elt = elt;\n  this.$searchText = this.elt.$searchText.on('keydown', function (event) {\n    if (event.key === 'Enter') {\n      _this26.$searchText.blur();\n\n      _this26.search();\n    }\n  });\n}\n\n_OOP[\"default\"].mixClass(SearchController, _Context[\"default\"]);\n\nSearchController.prototype.onStart = function () {\n  // console.log('start')\n  this.elt.addClass('as-searching');\n  this.$searchText.value = '';\n  this.$searchText.focus();\n};\n\nSearchController.prototype.onStop = function () {\n  this.elt.removeClass('as-searching');\n  this.session = (0, _stringGenerate.randomIdent)(10);\n  this.$searchText.waiting = false;\n};\n\nSearchController.prototype.search = function () {\n  var _this27 = this;\n\n  var session = (0, _stringGenerate.randomIdent)(10);\n  this.session = session;\n  this.elt.navCtrl.clearContent();\n  this.$searchText.waiting = true;\n  var fileSystem = this.elt.fileSystem;\n  var rootPath = this.elt.rootPath;\n  var result = [];\n  var type = this.elt.$searchTypeSelect.value;\n  var text = this.$searchText.value.trim();\n  var regex = fileTextQuery2Regex(text);\n\n  var isMatched = function isMatched(stat) {\n    var fileInfo = (0, _utils.fileInfoOf)(stat.displayName || stat.name);\n    var mineType = fileInfo.mimeType || '';\n    var fileType = fileInfo.type || '';\n    fileType = fileType.toLowerCase();\n\n    if (mineType && type !== 'all') {\n      if (type === 'image' && !mineType.startsWith('image') && type !== 'svg') {\n        return false;\n      } else if (type === 'document' && ['doc', 'docx', 'pdf', 'xlsx'].indexOf(fileType) < 0 && !mineType.startsWith('text')) {\n        return false;\n      }\n    }\n\n    if (text.length === 0) return true;\n    if (stat.displayName && stat.displayName.match(regex)) return true;\n    if (stat.name && (0, _stringFormat.nonAccentVietnamese)(stat.name.toLowerCase()).match(regex)) return true;\n    return false;\n  };\n\n  var handleStat = function handleStat(stat) {\n    if (session !== _this27.session) return;\n    if (stat.isDirectory) return visitDir(stat.path);\n\n    if (isMatched(stat)) {\n      _this27.elt.navCtrl.pushContentItem(stat);\n\n      _this27.elt.navCtrl.notifyVisibleContentItems();\n    }\n  };\n\n  var handleDirResult = function handleDirResult(dir, names) {\n    var syncs = names.map(function (name) {\n      return fileSystem.stat(dir + '/' + name).then(function (stat) {\n        if (session !== _this27.session) return;\n        if (stat) return handleStat(stat);\n      });\n    });\n    return Promise.all(syncs);\n  };\n\n  var visitDir = function visitDir(path) {\n    return fileSystem.readDir(path).then(function (names) {\n      return handleDirResult(path, names);\n    });\n  };\n\n  visitDir(rootPath).then(function () {\n    if (session !== _this27.session) return;\n    _this27.$searchText.waiting = false;\n  });\n};\n/***\r\n *\r\n * @constructor\r\n */\n\n\nfunction FinderFileSystem() {}\n\nFinderFileSystem.prototype.supporteDisplayName = false;\n\nFinderFileSystem.prototype.readDir = function (path) {};\n\nFinderFileSystem.prototype.unlink = function (path) {\n  console.log(path);\n};\n\nFinderFileSystem.prototype.stat = function (path) {};\n\nFinderFileSystem.prototype.rmdir = function (path) {};\n\nFinderFileSystem.prototype.mkdir = function (path) {};\n\nFinderFileSystem.prototype.writeFile = function (file, data) {};\n\nFinderFileSystem.prototype.copy = function () {};\n\nFinderFileSystem.prototype.rename = function (path, name) {};\n\nFinderFileSystem.prototype.move = function (oldPath, newPath) {};\n\nFinderFileSystem.prototype.clearCache = function () {};\n/***\r\n * @extends FinderFileSystem\r\n * @constructor\r\n */\n\n\nfunction AbsolFileSystem() {\n  FinderFileSystem.apply(this, arguments);\n  this.sync = Promise.resolve();\n  this.cache = {\n    readDir: {},\n    stats: {}\n  };\n  this.taskMng = new _TaskManager[\"default\"]({\n    limit: 4\n  });\n}\n\n_OOP[\"default\"].mixClass(AbsolFileSystem, FinderFileSystem);\n\nAbsolFileSystem.prototype.clearCache = function () {\n  this.cache = {\n    readDir: {},\n    stats: {}\n  };\n};\n\nAbsolFileSystem.prototype.readDir = function (path) {\n  var _this28 = this;\n\n  this.sync = this.sync.then(function () {\n    if (_this28.cache.readDir[path || '..']) return _this28.cache.readDir[path || '..'];\n    return fetch('https://absol.cf/filesystem/ls.php', {\n      method: 'POST',\n      cache: \"no-cache\",\n      headers: {\n        \"Content-Type\": \"application/json\"\n      },\n      body: JSON.stringify({\n        path: path\n      })\n    }).then(function (res) {\n      return res.json();\n    }).then(function (res) {\n      res = res.filter(function (c) {\n        return c.path.startsWith('/html');\n      });\n      res.forEach(function (c) {\n        c.name = c.path.split('/').pop();\n        c.url = c.path.replace('/html', 'https://absol.cf');\n      });\n      _this28.cache.readDir[path || '..'] = res.map(function (c) {\n        return c.name;\n      });\n      res.forEach(function (c) {\n        _this28.cache.stats[c.path] = c;\n      });\n    }).then(function () {\n      return _this28.cache.readDir[path || '..'];\n    });\n  });\n  return this.sync;\n};\n\nAbsolFileSystem.prototype.stat = function (path) {\n  var _this29 = this;\n\n  return this.sync.then(function () {\n    path = path || '';\n    if (_this29.cache.stats[path || '..']) return _this29.cache.stats[path || '..'];\n    var dir = path.split('/');\n    dir.pop();\n    dir = dir.join('/');\n    return _this29.readDir(dir).then(function () {\n      return _this29.cache.stats[path || '..'];\n    });\n  });\n};\n/***\r\n *\r\n * @param file\r\n * @param {File|Blob}data\r\n * @param {function(done: number):void=}onProcess\r\n */\n\n\nAbsolFileSystem.prototype.writeFile = function (file, data, onProcess) {\n  var _this30 = this;\n\n  if (file.toLowerCase().endsWith('.php')) file += '.txt';\n  var folderPath = file.split('/');\n  folderPath.pop();\n  folderPath = folderPath.join('/');\n  delete this.cache.readDir[folderPath];\n  var prefix = ['file', new Date().getTime(), (0, _random.randomArbitrary)(0, 1000000) >> 0].join('_');\n  var parts = [];\n  var chuck_limit = 2 << 20;\n  var partName;\n  var fileSize = data.size;\n  var fileStartOffset = 0;\n  var fileEndOffset = 0;\n  var idx = 0;\n  var syncs = [];\n  var syncDone = 0;\n  var bundle;\n  var began = false;\n\n  var handle = function handle(bundle) {\n    return new Promise(function (rs) {\n      _this30.taskMng.requestTask(function (finishTask, bundle) {\n        if (typeof onProcess === \"function\" && !began) {\n          began = true;\n          onProcess(syncDone / (syncs.length || 1));\n        }\n\n        var form = new FormData();\n        form.append('action', 'upload_part');\n        form.append('fileUpload', bundle.file, bundle.name);\n        fetch('https://absol.cf/filesystem/writefile.php', {\n          method: 'POST',\n          body: form\n        }).then(function (res) {\n          return res.text();\n        }).then(function (text) {\n          if (text !== 'OK') throw new Error(text);\n          syncDone++;\n\n          if (typeof onProcess === \"function\") {\n            onProcess(syncDone / (syncs.length || 1));\n          }\n\n          rs('https://absol.cf');\n          finishTask();\n        });\n      }, bundle);\n    });\n  };\n\n  while (fileStartOffset < fileSize) {\n    fileEndOffset = Math.min(fileStartOffset + chuck_limit, fileSize);\n    partName = prefix + '.p' + idx;\n    parts.push(partName);\n    bundle = {\n      file: data.slice(fileStartOffset, fileEndOffset),\n      idx: idx,\n      name: partName\n    };\n    idx++;\n    fileStartOffset = fileEndOffset;\n    syncs.push(handle(bundle));\n  }\n\n  return Promise.all(syncs).then(function () {\n    var form = new FormData();\n    form.append('action', 'join_parts');\n    form.append('parts', parts.join(';'));\n    form.append('path', file);\n    fetch('https://absol.cf/filesystem/writefile.php', {\n      method: 'POST',\n      body: form\n    }).then(function (res) {\n      return res.text();\n    }).then(function (text) {\n      if (text !== 'OK') throw new Error(text);\n    });\n  });\n};\n\nAbsolFileSystem.prototype.unlink = function (path) {\n  var folderPath = path.split('/');\n  folderPath.pop();\n  folderPath = folderPath.join('/');\n  delete this.cache.readDir[folderPath];\n  var form = new FormData();\n  form.append('action', 'delete_files');\n  form.append('paths', path);\n  return fetch('https://absol.cf/filesystem/writefile.php', {\n    method: 'POST',\n    body: form\n  }).then(function (res) {\n    return res.text();\n  }).then(function (text) {\n    if (text !== 'OK') throw new Error(text);\n  });\n};\n\nAbsolFileSystem.prototype.rename = function (path, name) {\n  var _this31 = this;\n\n  var folderPath = path.split('/');\n  folderPath.pop();\n  folderPath = folderPath.join('/');\n  var form = new FormData();\n  form.append('action', 'rename');\n  form.append('path', path);\n  form.append('new_name', name);\n  return fetch('https://absol.cf/filesystem/writefile.php', {\n    method: 'POST',\n    body: form\n  }).then(function (res) {\n    return res.text();\n  }).then(function (text) {\n    if (text !== 'OK') throw new Error(text);\n    var newPath = folderPath + '/' + name;\n    delete _this31.cache.readDir[folderPath];\n    delete _this31.cache.stats[path];\n    return {\n      url: newPath.replace('/html', 'https://absol.cf'),\n      path: newPath,\n      name: name\n    };\n  });\n};\n\nAbsolFileSystem.prototype.move = function (oldPath, newPath) {\n  var _this32 = this;\n\n  var oldFolderPath = oldPath.split('/');\n  oldFolderPath.pop();\n  oldFolderPath = oldFolderPath.join('/');\n  var newFolderPath = newPath.split('/');\n  newFolderPath.pop();\n  newFolderPath = newFolderPath.join('/');\n  var form = new FormData();\n  form.append('action', 'move');\n  form.append('old_path', oldPath);\n  form.append('new_path', newPath);\n  return fetch('https://absol.cf/filesystem/writefile.php', {\n    method: 'POST',\n    body: form\n  }).then(function (res) {\n    return res.text();\n  }).then(function (text) {\n    if (text !== 'OK') throw new Error(text);\n    delete _this32.cache.readDir[oldFolderPath];\n    delete _this32.cache.readDir[newFolderPath];\n    delete _this32.cache.stats[oldPath];\n  });\n};\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/finder/Finder.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/keeview/OWModalManager.js":
/*!***************************************************************!*\
  !*** ./node_modules/absol-acomp/js/keeview/OWModalManager.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\n__webpack_require__(/*! ../../css/keeview/owmodal.css */ \"./node_modules/absol-acomp/css/keeview/owmodal.css\");\n\nvar _Dom = __webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\");\n\nvar _FlexiconButton = _interopRequireDefault(__webpack_require__(/*! ../FlexiconButton */ \"./node_modules/absol-acomp/js/FlexiconButton.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction implicitNode(data) {\n  if (!data) return (0, _ACore._)('div');\n\n  if (data instanceof Array) {\n    return data.map(implicitNode);\n  } else if ((0, _Dom.isDomNode)(data)) {\n    return data;\n  } else if (typeof data === \"string\") {\n    return (0, _ACore._)({\n      tag: 'span',\n      child: {\n        text: data\n      }\n    });\n  } else if (_typeof(data) === \"object\") {\n    return (0, _ACore._)(data);\n  } else return (0, _ACore._)('div');\n}\n/***\r\n *\r\n * @constructor\r\n */\n\n\nfunction OWModalManager() {}\n\nOWModalManager.prototype.getView = function () {\n  if (!this.$view) this.createView();\n  return this.$view;\n};\n\nOWModalManager.prototype.createView = function () {\n  this.$view = (0, _ACore._)('.kv-ow-modal-manager');\n};\n\nOWModalManager.prototype.createModal = function (opt, caller) {\n  console.trace(1);\n  opt = opt || {};\n  var modal = (0, _ACore._)({\n    \"class\": 'kv-ow-modal',\n    child: {\n      \"class\": 'kv-ow-modal-window',\n      child: [{\n        \"class\": 'kv-ow-modal-header',\n        child: [{\n          \"class\": 'kv-ow-modal-title',\n          child: {\n            text: 'Tiêu đề'\n          }\n        }]\n      }, {\n        \"class\": 'kv-ow-modal-body',\n        child: Array(3).fill({\n          tag: 'span',\n          child: {\n            text: 'Bạn có chắc muốn thoát khỏi nhóm? Đây là nội dung hơi bị dài luôn nè'\n          }\n        })\n      }, {\n        \"class\": 'kv-ow-modal-footer'\n      }]\n    }\n  });\n  modal.$body = (0, _ACore.$)('.kv-ow-modal-body', modal);\n  modal.$title = (0, _ACore.$)('.kv-ow-modal-title', modal);\n  modal.$footer = (0, _ACore.$)('.kv-ow-modal-footer', modal);\n\n  if (modal.$title) {\n    if (typeof opt.title === \"string\") {\n      modal.$title.clearChild().addChild((0, _ACore._)({\n        text: opt.title\n      }));\n    } else {\n      modal.$title.clearChild().addChild(implicitNode(opt.title));\n    }\n  } else {\n    modal.$title.addStyle('display', 'none');\n  }\n\n  modal.$body.clearChild();\n\n  if (opt.content || opt.contentbody) {\n    modal.$body.addChild(implicitNode(opt.content || opt.contentbody));\n  }\n\n  modal.$footer.clearChild();\n\n  if (opt.buttons || opt.buttonlist) {\n    modal.$footer.addChild((opt.buttons || opt.buttonlist).map(function (bt) {\n      var props = Object.assign({}, bt);\n      delete props.onclick;\n      var onclick = bt.onclick;\n      return (0, _ACore._)({\n        tag: _FlexiconButton[\"default\"].tag,\n        props: props,\n        on: {\n          click: function click(event) {\n            if (typeof onclick === \"function\") {\n              onclick.call(this, event, modal, caller);\n            }\n          }\n        }\n      });\n    }));\n  }\n\n  return modal;\n};\n\nOWModalManager.prototype.showModal = function (opt, caller) {\n  var modal = this.createModal(opt, caller);\n  var minZIndex = Array.prototype.reduce.call(this.getView(), function (ac, cr) {\n    return Math.max(ac, parseFloat(cr.style.zIndex) || 0);\n  }, 0);\n  modal.addStyle('zIndex', minZIndex + 1 + '');\n  this.$view.addChild(modal);\n  return modal;\n};\n\nvar _default = OWModalManager;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/keeview/OWModalManager.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/keeview/OverviewPage.js":
/*!*************************************************************!*\
  !*** ./node_modules/absol-acomp/js/keeview/OverviewPage.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Fragment = _interopRequireDefault(__webpack_require__(/*! absol/src/AppPattern/Fragment */ \"./node_modules/absol/src/AppPattern/Fragment.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _stringGenerate = __webpack_require__(/*! absol/src/String/stringGenerate */ \"./node_modules/absol/src/String/stringGenerate.js\");\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends Fragment\r\n * @param {{}} host\r\n * @constructor\r\n */\nfunction OverviewPage(host) {\n  _Fragment[\"default\"].call(this);\n\n  this.host = host;\n  this.id = (0, _stringGenerate.randomIdent)(5);\n  this._counter = 0;\n}\n\n_OOP[\"default\"].mixClass(OverviewPage, _Fragment[\"default\"]);\n\nOverviewPage.prototype.tabIcon = 'span.mdi.mdi-cube-outline';\nOverviewPage.prototype.name = 'Overview Page';\n\nOverviewPage.prototype.createView = function () {\n  return (0, _ACore._)({\n    child: {\n      tag: 'span',\n      child: {\n        text: 'OverviewPage'\n      }\n    }\n  });\n};\n\nOverviewPage.prototype.showModal = function (opt) {\n  if (this.parent && this.parent.showModal) return this.parent.showModal(opt, this);\n};\n\nObject.defineProperty(OverviewPage.prototype, 'counter', {\n  set: function set(value) {\n    /***\r\n     *\r\n     * @type {OverviewWidget}\r\n     */\n    var parent = this.parent;\n    if (!(0, _utils.isRealNumber)(value)) value = 0;\n    value = Math.max(0, value >> 0);\n    this._counter = value;\n    parent.updateCounter();\n  },\n  get: function get() {\n    return this._counter;\n  }\n});\nvar _default = OverviewPage;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/keeview/OverviewPage.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/keeview/OverviewWidget.js":
/*!***************************************************************!*\
  !*** ./node_modules/absol-acomp/js/keeview/OverviewWidget.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Fragment = _interopRequireDefault(__webpack_require__(/*! absol/src/AppPattern/Fragment */ \"./node_modules/absol/src/AppPattern/Fragment.js\"));\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\n__webpack_require__(/*! ../../css/keeview/overviewwidget.css */ \"./node_modules/absol-acomp/css/keeview/overviewwidget.css\");\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _TabView = _interopRequireDefault(__webpack_require__(/*! ../TabView */ \"./node_modules/absol-acomp/js/TabView.js\"));\n\nvar _Hanger = _interopRequireDefault(__webpack_require__(/*! ../Hanger */ \"./node_modules/absol-acomp/js/Hanger.js\"));\n\nvar _Vec = _interopRequireDefault(__webpack_require__(/*! absol/src/Math/Vec2 */ \"./node_modules/absol/src/Math/Vec2.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _Dom = __webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\");\n\nvar _OnScreenWidget = _interopRequireDefault(__webpack_require__(/*! ../OnScreenWidget */ \"./node_modules/absol-acomp/js/OnScreenWidget.js\"));\n\nvar _EventEmitter = __webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\");\n\nvar _ResizeSystem = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/ResizeSystem */ \"./node_modules/absol/src/HTML5/ResizeSystem.js\"));\n\nvar _OWModalManager = _interopRequireDefault(__webpack_require__(/*! ./OWModalManager */ \"./node_modules/absol-acomp/js/keeview/OWModalManager.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends Fragment\r\n * @param {{}} host\r\n * @param {Fragment[]} children\r\n * @constructor\r\n */\nfunction OverviewWidget(host, children) {\n  _Fragment[\"default\"].call(this);\n\n  this.setting = {\n    viewPos: {\n      x: 0,\n      y: 0\n    },\n    minimize: true\n  };\n  this.host = host;\n  this.children = children || [];\n  this.childrenById = this.children.reduce(function (ac, child) {\n    ac[child.id] = child;\n    return ac;\n  }, {});\n  this._position = new _Vec[\"default\"](0, 0);\n  this.setContext(\"OVERVIEW_WIDGET\", this);\n  this.children.forEach(function (fg) {\n    fg.attach(this);\n  }.bind(this));\n  this.modalMng = new _OWModalManager[\"default\"]();\n}\n\n_OOP[\"default\"].mixClass(OverviewWidget, _Fragment[\"default\"]);\n\nOverviewWidget.prototype.createView = function () {\n  this.$title = (0, _ACore._)({\n    tag: 'span',\n    \"class\": 'kv-overview-widget-title',\n    child: {\n      text: '...'\n    }\n  });\n  this.$tabs = this.children.map(function (fg) {\n    return (0, _ACore._)({\n      tag: 'tabframe',\n      \"class\": 'kv-overview-widget-page',\n      child: fg.getView(),\n      props: {\n        name: '&nbsp;'.repeat(5),\n        //||fg.name,\n        tabIcon: fg.tabIcon,\n        id: fg.id\n      }\n    });\n  });\n  this.$view = (0, _ACore._)({\n    \"class\": 'kv-overview-widget',\n    style: {\n      '--x': '0px',\n      '--y': '0px',\n      visibility: 'hidden'\n    },\n    child: [{\n      tag: _Hanger[\"default\"].tag,\n      \"class\": 'kv-overview-widget-header',\n      child: [this.$title, {\n        \"class\": 'kv-overview-widget-header-window-action',\n        child: [{\n          tag: 'button',\n          child: 'span.mdi.mdi-window-minimize',\n          on: {\n            click: this.minimize.bind(this)\n          }\n        }]\n      }],\n      on: {\n        predrag: this.ev_headerPredrag.bind(this),\n        dragstart: this.ev_headerDragStart.bind(this),\n        drag: this.ev_headerDrag.bind(this),\n        dragend: this.ev_headerDragEnd.bind(this)\n      }\n    }, {\n      \"class\": 'kv-overview-widget-body',\n      child: {\n        tag: _TabView[\"default\"].tag,\n        \"class\": ['kv-overview-widget-tab-view', 'xp-tiny'],\n        child: this.$tabs,\n        on: {\n          activetab: this.ev_activeTab.bind(this)\n        }\n      }\n    }, this.modalMng.getView()]\n  });\n\n  this._updateViewPosition();\n\n  this.$bubble = (0, _ACore._)({\n    tag: _OnScreenWidget[\"default\"].tag,\n    \"class\": 'kv-overview-widget-bubble',\n    id: 'overview_widget_bubble',\n    style: {\n      // visibility: 'hidden'\n      '--cx': '0.02',\n      '--cy': '0.96'\n    },\n    child: ['<svg class=\"kv-overview-widget-bubble-background\"  viewBox=\"0 0 24 24\">\\n' + '    <path fill=\"currentColor\" d=\"M3 11H11V3H3M5 5H9V9H5M13 21H21V13H13M15 15H19V19H15M3 21H11V13H3M5 15H9V19H5M13 3V11H21V3M19 9H15V5H19Z\" />\\n' + '</svg>', {\n      \"class\": 'kv-overview-widget-bubble-badge',\n      child: {\n        tag: 'span',\n        child: {\n          text: '0'\n        }\n      }\n    }],\n    on: {\n      click: this.toggle.bind(this)\n    }\n  });\n  this.$tabview = (0, _ACore.$)('.kv-overview-widget-tab-view', this.$view);\n  this.$action = (0, _ACore.$)('.kv-overview-widget-header-window-action', this.$view);\n  this.$bubbleBadge = (0, _ACore.$)('.kv-overview-widget-bubble-badge', this.$bubble);\n  this.$badgeText = (0, _ACore.$)('span', this.$bubbleBadge);\n  this.$badgeText.requestUpdateSize = this._updateViewPosition.bind(this);\n  var self = this;\n  this.$tabs.forEach(function (tabElt) {\n    tabElt.on('active', function () {\n      self.childrenById[this.id].start();\n    });\n    tabElt.on('deactive', function () {\n      self.childrenById[this.id].pause();\n    });\n  });\n  this.updateCounter();\n};\n\nOverviewWidget.prototype.saveSetting = function () {\n  localStorage.setItem('overview_widget_setting', JSON.stringify(this.setting));\n};\n\nOverviewWidget.prototype.loadSetting = function () {\n  var setting = {};\n\n  try {\n    var settingJson = localStorage.getItem('overview_widget_setting');\n    if (settingJson) setting = JSON.parse(settingJson);\n  } catch (err) {}\n\n  Object.assign(this.setting, setting);\n  this._position = new _Vec[\"default\"](this.setting.viewPos.x, this.setting.viewPos.y);\n\n  this._updateViewPosition();\n};\n\nOverviewWidget.prototype.updateCounter = function (from) {\n  var id;\n  var tabElt;\n  var counter;\n\n  if (from) {\n    id = from.id;\n    tabElt = this.$tabview.getTabById(id);\n    counter = from.counter;\n    if (counter) tabElt.name = '(' + counter + ')';else tabElt.name = '&nbsp;'.repeat(5);\n  } else {\n    this.$tabs.forEach(function (tabElt) {\n      id = tabElt.id;\n      var frg = this.childrenById[id];\n      var counter = frg.counter;\n      if (counter) tabElt.name = '(' + counter + ')';else tabElt.name = '&nbsp;'.repeat(5);\n    }.bind(this));\n  }\n\n  var sumCounter = this.children.reduce(function (ac, cr) {\n    return ac + cr.counter;\n  }, 0);\n  this.$badgeText.firstChild.data = sumCounter + '';\n\n  if (sumCounter > 0) {\n    this.$bubbleBadge.removeStyle('visibility');\n  } else {\n    this.$bubbleBadge.addStyle('visibility', 'hidden');\n  }\n};\n\nOverviewWidget.prototype.onStart = function () {\n  this.getView();\n  this.loadSetting();\n  this.$view.addTo(document.body);\n  this.$bubble.addTo(document.body);\n\n  _ResizeSystem[\"default\"].add(this.$badgeText);\n\n  this._updateViewPosition();\n\n  if (this.setting.minimize) {\n    this.$bubble.removeStyle('visibility');\n  } else {\n    this.$view.removeStyle('visibility');\n  }\n\n  this.children.forEach(function (fg) {\n    fg.start(true);\n  });\n  var activeTabId = this.$tabview.getActiveTabId();\n  this.childrenById[activeTabId].start();\n};\n\nOverviewWidget.prototype.onStop = function () {\n  this.getView().remove();\n};\n\nOverviewWidget.prototype.ev_activeTab = function (event) {\n  var frag = this.childrenById[event.id];\n  this.$title.firstChild.data = frag.name + '';\n};\n\nOverviewWidget.prototype.ev_headerPredrag = function (event) {\n  if ((0, _EventEmitter.hitElement)(this.$action, event)) {\n    event.cancel();\n  }\n};\n\nOverviewWidget.prototype.ev_headerDragStart = function (event) {\n  var bound = this.$view.getBoundingClientRect();\n  this._dragData = {\n    bound: bound,\n    p0: new _Vec[\"default\"](bound.left, bound.top),\n    modal: (0, _ACore._)({\n      style: {\n        position: 'fixed',\n        zIndex: '1000000000',\n        left: 0,\n        right: 0,\n        top: 0,\n        bottom: 0,\n        background: 'transparent'\n      }\n    }).addTo(document.body)\n  };\n};\n\nOverviewWidget.prototype.ev_headerDrag = function (event) {\n  var d = event.currentPoint.sub(event.startingPoint);\n  this._position = this._dragData.p0.add(d);\n\n  this._updateViewPosition();\n};\n\nOverviewWidget.prototype.ev_headerDragEnd = function (event) {\n  this._dragData.modal.remove();\n\n  this.setting.viewPos.x = this._position.x;\n  this.setting.viewPos.y = this._position.y;\n  this.saveSetting();\n};\n\nOverviewWidget.prototype._updateViewPosition = function () {\n  if (!this.$view) return;\n  var screenSize = (0, _Dom.getScreenSize)();\n  var bound = this.$view.getBoundingClientRect();\n  var x = Math.max(0, Math.min(this._position.x, screenSize.width - bound.width));\n  var y = Math.max(0, Math.min(this._position.y, screenSize.height - bound.height));\n  this.$view.addStyle({\n    '--x': x + 'px',\n    '--y': y + 'px'\n  });\n};\n\nOverviewWidget.prototype.showModal = function (opt) {\n  return this.modalMng.showModal(opt, this);\n};\n\nObject.defineProperty(OverviewWidget.prototype, 'position', {\n  set: function set(value) {\n    if (!value) value = new _Vec[\"default\"](0, 0);\n\n    if (value instanceof Array) {\n      if ((0, _utils.isRealNumber)(value[0] && (0, _utils.isRealNumber)(value[1]))) {\n        value = new _Vec[\"default\"](value[0], value[1]);\n      } else {\n        value = new _Vec[\"default\"](0, 0);\n      }\n    } else if (!(value instanceof _Vec[\"default\"])) {\n      if ((0, _utils.isRealNumber)(value.x && (0, _utils.isRealNumber)(value.y))) {\n        value = new _Vec[\"default\"](value[0], value[1]);\n      } else {\n        value = new _Vec[\"default\"](0, 0);\n      }\n    }\n\n    this._position = value;\n\n    this._updateViewPosition();\n  },\n  get: function get() {\n    return this._position;\n  }\n});\n\nOverviewWidget.prototype.minimize = function () {\n  this.$view.addStyle('visibility', 'hidden'); // this.$bubble.removeStyle('visibility');\n\n  this.setting.minimize = true;\n  this.saveSetting();\n  var activeTabId = this.$tabview.getActiveTabId();\n  this.childrenById[activeTabId].pause();\n};\n\nOverviewWidget.prototype.maximize = function () {\n  // this.$bubble.addStyle('visibility', 'hidden');\n  this.$view.removeStyle('visibility');\n  this.setting.minimize = false;\n  this.saveSetting();\n  var activeTabId = this.$tabview.getActiveTabId();\n  this.childrenById[activeTabId].start();\n};\n\nOverviewWidget.prototype.toggle = function () {\n  if (this.setting.minimize) {\n    this.maximize();\n  } else {\n    this.minimize();\n  }\n};\n\nvar _default = OverviewWidget;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/keeview/OverviewWidget.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/list/ListDictionary.js":
/*!************************************************************!*\
  !*** ./node_modules/absol-acomp/js/list/ListDictionary.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\n/***\r\n *\r\n * @param {SelectionItem[]} arr\r\n * @constructor\r\n */\nfunction ItemDictionary(arr, opt) {\n  this.opt = Object.assign({\n    depth: true\n  }, opt || {});\n  this.arr = arr;\n  this.dict = {};\n  this.dupKeys = [];\n  this.update();\n}\n\nItemDictionary.prototype.update = function () {\n  this.dict = {};\n  var dict = this.dict;\n  var depth = this.opt.depth;\n  var dupKeyDict = {};\n\n  function scan(arr) {\n    var item;\n    var key;\n\n    for (var i = 0; i < arr.length; ++i) {\n      item = arr[i];\n      key = (0, _utils.keyStringOf)(item.value);\n\n      if (dict[key]) {\n        dict[key].dupItems = dict[key].dupItems || [];\n        dict[key].dupItems.push(item);\n        dupKeyDict[key] = 1;\n      } else {\n        dict[key] = {\n          idx: i,\n          item: item\n        };\n      }\n\n      if (depth && item.items && item.items.length > 0) {\n        scan(item.items);\n      }\n    }\n  }\n\n  scan(this.arr);\n  this.dupKeys = Object.keys(dupKeyDict);\n};\n/***\r\n *\r\n * @param {String | Number} value\r\n * @returns {SelectionItem | null}\r\n */\n\n\nItemDictionary.prototype.getItemByValue = function (value) {\n  var iDict = this.dict[(0, _utils.keyStringOf)(value)];\n  if (iDict) return iDict.item;\n  return null;\n};\n/***\r\n *\r\n * @param {String | Number} value\r\n * @returns {Array<SelectionItem> }\r\n */\n\n\nItemDictionary.prototype.getAllItemByValue = function (value) {\n  var key = (0, _utils.keyStringOf)(value);\n  var iDict = this.dict[key];\n  if (iDict) return [iDict.item].concat(iDict.dupItems[key] || []);\n  return [];\n};\n\nItemDictionary.prototype.getDuplicateKeys = function () {\n  return this.dupKeys;\n};\n\nvar _default = ItemDictionary;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/list/ListDictionary.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/list/ListSearchFactor.js":
/*!**************************************************************!*\
  !*** ./node_modules/absol-acomp/js/list/ListSearchFactor.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = ListSearchFactor;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction ListSearchFactor(global) {\n  /***\r\n   * @typedef SelectionItem2\r\n   * @property {String} text\r\n   * @property {String} desc\r\n   * @property {String} __text__\r\n   * @property {String} __nvnText__\r\n   * @property {Array<String>} __words__\r\n   * @property {Array<String>} __nvnWords__\r\n   * @property {object} __wordDict__\r\n   * @property {object} __nvnWordDict__\r\n   * @module SelectionItem2\r\n   */\n  function nonAccentVietnamese(s) {\n    return s.replace(/à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ/g, \"a\").replace(/À|Á|Ạ|Ả|Ã|Â|Ầ|Ấ|Ậ|Ẩ|Ẫ|Ă|Ằ|Ắ|Ặ|Ẳ|Ẵ/g, \"A\").replace(/è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ/g, \"e\").replace(/È|É|Ẹ|Ẻ|Ẽ|Ê|Ề|Ế|Ệ|Ể|Ễ/g, \"E\").replace(/ì|í|ị|ỉ|ĩ/g, \"i\").replace(/Ì|Í|Ị|Ỉ|Ĩ/g, \"I\").replace(/ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ/g, \"o\").replace(/Ò|Ó|Ọ|Ỏ|Õ|Ô|Ồ|Ố|Ộ|Ổ|Ỗ|Ơ|Ờ|Ớ|Ợ|Ở|Ỡ/g, \"O\").replace(/ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ/g, \"u\").replace(/Ù|Ú|Ụ|Ủ|Ũ|Ư|Ừ|Ứ|Ự|Ử|Ữ/g, \"U\").replace(/ỳ|ý|ỵ|ỷ|ỹ/g, \"y\").replace(/Ỳ|Ý|Ỵ|Ỷ|Ỹ/g, \"Y\").replace(/đ/g, \"d\").replace(/Đ/g, \"D\").replace(/\\u0300|\\u0301|\\u0303|\\u0309|\\u0323/g, \"\").replace(/\\u02C6|\\u0306|\\u031B/g, \"\");\n  }\n\n  function harmonicMean(a, b) {\n    return 2 / (1 / a + 1 / b);\n  }\n\n  function wordLike(a, b) {\n    var m = a.length;\n    var n = b.length;\n\n    function map(i, j) {\n      return i * (n + 1) + j;\n    }\n\n    var Q = Array((m + 1) * (n + 1)).fill(0);\n\n    for (var i = 0; i < m; ++i) {\n      for (var j = 0; j < n; ++j) {\n        if (a.charAt(i) == b.charAt(j)) {\n          if (Q[map(i + 1, j + 1)]) {\n            if (Q[map(i + 1, j + 1)] < Q[map(i, j)] + 1) Q[map(i + 1, j + 1)] = Q[map(i, j)] + 1;\n          } else Q[map(i + 1, j + 1)] = Q[map(i, j)] + 1;\n        } else Q[map(i + 1, j + 1)] = Math.max(Q[map(i + 1, j)], Q[map(i, j + 1)]);\n      }\n    }\n\n    return Q[map(m, n)] / harmonicMean(m, n);\n  }\n\n  function wordsMatch(sq1, sq2, matchWordPow) {\n    matchWordPow = matchWordPow === undefined ? 1 : matchWordPow;\n    var m = sq1.length;\n    var n = sq2.length;\n\n    function map(i, j) {\n      return i * (n + 1) + j;\n    }\n\n    var Q = Array((m + 1) * (n + 1)).fill(0);\n    var e = 0.0;\n\n    for (var i = 0; i < m; ++i) {\n      for (var j = 0; j < n; ++j) {\n        e = Math.pow(wordLike(sq1[i], sq2[j]), matchWordPow);\n\n        if (Q[map(i + 1, j + 1)]) {\n          if (Q[map(i + 1, j + 1)] < Q[map(i, j)] + e) Q[map(i + 1, j + 1)] = Q[map(i, j)] + e;\n        } else Q[map(i + 1, j + 1)] = Q[map(i, j)] + e;\n\n        e = Math.max(Q[map(i + 1, j)], Q[map(i, j + 1)]);\n        if (e > Q[map(i + 1, j + 1)]) Q[map(i + 1, j + 1)] = e;\n      }\n    }\n\n    return Q[map(m, n)];\n  }\n\n  var EXTRA_MATCH_SCORE = 9;\n  var NVN_EXTRA_MATCH_SCORE = 8;\n  var EQUAL_MATCH_SCORE = 10;\n  var WORD_MATCH_SCORE = 3;\n  var HAS_WORD_SCORE = 30;\n  var HAS_NVN_WORD_SCORE = 29;\n  /***\r\n   *\r\n   * @param {SelectionItem2} item\r\n   * @returns {*}\r\n   */\n\n  function prepareSearchForItem(item) {\n    if (!item.text || !item.text.charAt) item.text = item.text + '';\n    var spliter = /[\\s/]+/;\n\n    var __text__ = item.text.replace(/([\\s\\b\\-()\\[\\]\"']|&#8239;|&nbsp;|&#xA0;|\\s\")+/g, ' ').trim().toLowerCase();\n\n    var __nvnText__ = nonAccentVietnamese(__text__);\n\n    item.__words__ = __text__.split(spliter);\n    item.__text__ = item.__words__.join(' ');\n\n    item.__words__.sort();\n\n    item.__wordDict__ = item.__words__.reduce(function (ac, cr, i) {\n      ac[cr] = i + 1;\n      return ac;\n    }, {});\n    item.__nvnWords__ = __nvnText__.split(spliter);\n    item.__nvnText__ = item.__nvnWords__.join(' ');\n\n    item.__nvnWords__.sort();\n\n    item.__nvnWordDict__ = item.__nvnWords__.reduce(function (ac, cr, i) {\n      ac[cr] = i + 1;\n      return ac;\n    }, {});\n    return item;\n  }\n\n  function calcItemMatchScore(queryItem, item) {\n    var score = 0;\n    if (!item.__text__) return 0;\n    var hwScore = 0;\n    var i;\n\n    for (i = 0; i < queryItem.__words__.length; ++i) {\n      if (item.__wordDict__[queryItem.__words__[i]]) {\n        hwScore += HAS_WORD_SCORE;\n      } else if (item.__nvnWordDict__[queryItem.__nvnWords__[i]]) {\n        hwScore += HAS_NVN_WORD_SCORE;\n      }\n    }\n\n    score = hwScore;\n\n    if (item.__text__ === queryItem.__text__) {\n      score += EQUAL_MATCH_SCORE;\n    }\n\n    var extraIndex = item.__text__.indexOf(queryItem.__text__);\n\n    if (extraIndex >= 0) {\n      score += EXTRA_MATCH_SCORE;\n    }\n\n    extraIndex = item.__nvnText__.indexOf(queryItem.__nvnText__);\n\n    if (extraIndex >= 0) {\n      score += EXTRA_MATCH_SCORE;\n    }\n\n    var n = Math.max(queryItem.__words__.length + 1, 1);\n    score = Math.max(score, wordsMatch(queryItem.__words__, item.__words__) / n * 2 * WORD_MATCH_SCORE, wordsMatch(queryItem.__nvnWords__, item.__nvnWords__) / n * 2 * WORD_MATCH_SCORE);\n    return score;\n  }\n\n  function scoreCmp(a, b) {\n    if (b.score === a.score) {\n      if (b.item.__nvnText__ > a.item.__nvnText__) return -1;\n      return 1;\n    }\n\n    return b.score - a.score;\n  }\n\n  function keyStringOf(o) {\n    var type = _typeof(o);\n\n    var keys;\n\n    if (o && type === \"object\") {\n      if (o.getTime) {\n        return 'd(' + o.getTime() + ')';\n      } else if (o.length && o.map) {\n        return 'a(' + o.map(function (val) {\n          return keyStringOf(val);\n        }).join(',') + ')';\n      } else {\n        keys = Object.keys(o);\n        keys.sort();\n        return 'o(' + keys.map(function (key) {\n          return key + ':' + keyStringOf(o[key]);\n        }).join(',') + ')';\n      }\n    } else {\n      return type[0] + '(' + o + ')';\n    }\n  }\n\n  function matchFilter(item, filter) {\n    if (!filter) return true;\n    var keys = item.keys;\n    if (!keys) return false;\n\n    for (var i in filter) {\n      if (!keyCmp(keys[i], filter[i])) return false;\n    }\n\n    return true;\n  }\n\n  function toComparable(x) {\n    if (!x) return x;\n\n    var type = _typeof(x);\n\n    if (type === 'string') return x;\n    if (type === \"number\") return x;\n    if (type === \"boolean\") return x;\n    if (type.getTime) return type.getTime();\n    return x;\n  }\n\n  function keyCmp(itemKey, filterKey) {\n    if (itemKey === filterKey) return true;\n    if (!itemKey !== !filterKey) return false;\n    if (!itemKey || !filterKey) return false;\n    var filterKeyString = keyStringOf(filterKey);\n\n    function withFilter(x) {\n      var xString = keyStringOf(x);\n      var res = xString === filterKeyString;\n\n      if (!res && _typeof(filterKey) === \"object\") {\n        if (filterKey.some) {\n          res = filterKey.some(function (y) {\n            return keyStringOf(y) === x;\n          });\n        } else if ('min' in filterKey || 'max' in filterKey) {\n          res = true;\n\n          if ('min' in filterKey) {\n            res = res && toComparable(x) >= toComparable(filterKey.min);\n          }\n\n          if ('max' in filterKey) {\n            res = res && toComparable(x) <= toComparable(filterKey.max);\n          }\n        }\n      }\n\n      return res;\n    }\n\n    if (itemKey.some) {\n      return itemKey.some(withFilter);\n    } else return withFilter(itemKey);\n  }\n\n  function Slave() {\n    this.items = [];\n  }\n\n  Slave.prototype.processItems = function (items) {\n    this.items = items;\n    this.items.forEach(function visit(item) {\n      prepareSearchForItem(item);\n      if (item.items) item.items.forEach(visit);\n    });\n  };\n\n  Slave.prototype.callQuery = function (query) {\n    prepareSearchForItem(query);\n    var minScore = Infinity;\n    var maxScore = -Infinity;\n    var scoreHolders = this.items.map(function visit(item) {\n      var res = {};\n      res.score = calcItemMatchScore(query, item);\n      res.value = item.value;\n      res.maxChildScore = -Infinity;\n\n      if (item.items) {\n        res.child = item.items.map(visit);\n        res.maxChildScore = res.child.reduce(function (ac, cr) {\n          return Math.max(ac, cr.maxChildScore, cr.score);\n        }, res.maxChildScore);\n      }\n\n      minScore = Math.min(minScore, res.score);\n      maxScore = Math.max(maxScore, res.score);\n      return res;\n    });\n    var threshold = maxScore - (maxScore - minScore) / 4;\n    if (maxScore < 3) threshold = maxScore - (maxScore - minScore) / 8;\n    var resDict = scoreHolders.reduce(function rValue(ac, cr) {\n      if (Math.max(cr.maxChildScore, cr.score) >= threshold) ac[cr.value] = [cr.score, cr.maxChildScore];\n      if (cr.child) cr.child.reduce(rValue, ac);\n      return ac;\n    }, {});\n    return resDict;\n  };\n\n  var slaves = {};\n\n  global.transferSearchItems = function (id, items) {\n    if (!slaves[id]) slaves[id] = new Slave();\n    slaves[id].processItems(items);\n  };\n\n  global.callQuery = function (id, query) {\n    if (slaves[id]) return slaves[id].callQuery(query);\n    return null;\n  };\n\n  global.destroySlave = function (id) {\n    delete slaves[id];\n  };\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/list/ListSearchFactor.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/list/ListSearchMaster.js":
/*!**************************************************************!*\
  !*** ./node_modules/absol-acomp/js/list/ListSearchMaster.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _stringGenerate = __webpack_require__(/*! absol/src/String/stringGenerate */ \"./node_modules/absol/src/String/stringGenerate.js\");\n\nvar _Thread = _interopRequireDefault(__webpack_require__(/*! absol/src/Network/Thread */ \"./node_modules/absol/src/Network/Thread.js\"));\n\nvar _ListSearchFactor = _interopRequireDefault(__webpack_require__(/*! ./ListSearchFactor */ \"./node_modules/absol-acomp/js/list/ListSearchFactor.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ListSearchMaster() {\n  this.prepare();\n  this.id = (0, _stringGenerate.randomIdent)(8);\n  this.cache = {};\n}\n\nListSearchMaster.prototype.share = {\n  worker: null\n};\n\nListSearchMaster.prototype.prepare = function () {\n  if (this.share.worker) return;\n  this.share.worker = new _Thread[\"default\"]({\n    methods: {\n      init: _ListSearchFactor[\"default\"]\n    },\n    extendCode: 'init(this)'\n  });\n};\n\nListSearchMaster.prototype.transfer = function (items) {\n  this.cache = {};\n  return this.share.worker.invoke('transferSearchItems', this.id, items);\n};\n\nListSearchMaster.prototype.query = function (query) {\n  var key = (0, _utils.calcDTQueryHash)(query);\n\n  if (!this.cache[key]) {\n    this.cache[key] = this.share.worker.invoke('callQuery', this.id, query);\n  }\n\n  return this.cache[key];\n};\n\nListSearchMaster.prototype.destroy = function () {\n  this.share.worker.invoke('destroySlave', this.id);\n};\n\nvar _default = ListSearchMaster;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/list/ListSearchMaster.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/list/listIndexing.js":
/*!**********************************************************!*\
  !*** ./node_modules/absol-acomp/js/list/listIndexing.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.depthIndexingByValue = depthIndexingByValue;\nexports.indexingByValue = indexingByValue;\n\nfunction depthIndexingByValue(items, context) {\n  context = context || {\n    idx: 0,\n    dict: {}\n  };\n  return items.reduce(function (ac, cr, idx) {\n    var value = typeof cr === \"string\" ? cr : cr.value + '';\n    ac[value] = ac[value] || [];\n    ac[value].push({\n      idx: context.idx++,\n      item: cr\n    });\n\n    if (cr && cr.items && cr.items.length > 0) {\n      depthIndexingByValue(cr.items, context);\n    }\n\n    return ac;\n  }, context.dict);\n}\n\nfunction indexingByValue(items, dict) {\n  return items.reduce(function (ac, cr, idx) {\n    var value = typeof cr === \"string\" ? cr : cr.value + '';\n    ac[value] = ac[value] || [];\n    ac[value].push({\n      idx: idx,\n      item: cr\n    });\n    return ac;\n  }, dict || {});\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/list/listIndexing.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/list/search.js":
/*!****************************************************!*\
  !*** ./node_modules/absol-acomp/js/list/search.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.calcItemMatchScore = calcItemMatchScore;\nexports[\"default\"] = prepareSearchForItem;\nexports.prepareSearchForList = prepareSearchForList;\nexports.searchListByText = searchListByText;\nexports.searchTreeListByText = searchTreeListByText;\n\nvar _stringFormat = __webpack_require__(/*! absol/src/String/stringFormat */ \"./node_modules/absol/src/String/stringFormat.js\");\n\nvar _stringMatching = __webpack_require__(/*! absol/src/String/stringMatching */ \"./node_modules/absol/src/String/stringMatching.js\");\n\nvar UNCASE_MATCH_SCORE = 4;\nvar UVN_MATCH_SCORE = 3;\nvar EXTRA_MATCH_SCORE = 9;\nvar NVN_EXTRA_MATCH_SCORE = 8;\nvar EQUAL_MATCH_SCORE = 10;\nvar WORD_MATCH_SCORE = 3;\nvar HAS_WORD_SCORE = 30;\nvar HAS_NVN_WORD_SCORE = 29;\n/***\r\n *\r\n * @param {SelectionItem} item\r\n * @returns {*}\r\n */\n\nfunction prepareSearchForItem(item) {\n  if (!item.text || !item.text.charAt) item.text = item.text + '';\n  var spliter = /\\s+/;\n\n  var __text__ = item.text.replace(/([\\s\\b\\-()\\[\\]\"']|&#8239;|&nbsp;|&#xA0;|\\s\")+/g, ' ').trim().toLowerCase();\n\n  var __words__ = __text__.split(spliter);\n\n  __text__ = __words__.join(' ');\n\n  var __wordDict__ = __words__.reduce(function (ac, cr, i) {\n    ac[cr] = ac[cr] || i + 1;\n    return ac;\n  }, {});\n\n  var __textNoneCase__ = __text__;\n\n  var __nvnText__ = (0, _stringFormat.nonAccentVietnamese)(__text__);\n\n  var __nvnTextNoneCase__ = __nvnText__;\n\n  var __nvnWordDict__ = __words__.reduce(function (ac, cr, i) {\n    ac[cr] = ac[cr] || i + 1;\n    return ac;\n  }, {});\n\n  Object.defineProperties(item, {\n    __text__: {\n      configurable: true,\n      enumerable: false,\n      writable: true,\n      value: __text__\n    },\n    __words__: {\n      configurable: true,\n      enumerable: false,\n      writable: true,\n      value: __text__.split(spliter)\n    },\n    __wordDict__: {\n      configurable: true,\n      enumerable: false,\n      writable: true,\n      value: __wordDict__\n    },\n    __textNoneCase__: {\n      configurable: true,\n      enumerable: false,\n      writable: true,\n      value: __textNoneCase__\n    },\n    __wordsNoneCase__: {\n      configurable: true,\n      enumerable: false,\n      writable: true,\n      value: __textNoneCase__.split(spliter)\n    },\n    __nvnText__: {\n      configurable: true,\n      enumerable: false,\n      writable: true,\n      value: __nvnText__\n    },\n    __nvnWords__: {\n      configurable: true,\n      enumerable: false,\n      writable: true,\n      value: __nvnText__.split(spliter)\n    },\n    __nvnWordDict__: {\n      configurable: true,\n      enumerable: false,\n      writable: true,\n      value: __nvnWordDict__\n    },\n    __nvnTextNoneCase__: {\n      configurable: true,\n      enumerable: false,\n      writable: true,\n      value: __nvnTextNoneCase__\n    },\n    __nvnWordsNoneCase__: {\n      configurable: true,\n      enumerable: false,\n      writable: true,\n      value: __nvnTextNoneCase__.split(spliter)\n    }\n  });\n  return item;\n}\n\nfunction prepareSearchForList(items) {\n  var item;\n\n  for (var i = 0; i < items.length; ++i) {\n    if (typeof items[i] == 'string') {\n      items[i] = {\n        text: items[i],\n        value: items[i]\n      };\n    }\n\n    item = items[i];\n    prepareSearchForItem(item);\n    if (item.items) prepareSearchForList(item.items);\n  }\n\n  return items;\n}\n\nfunction calcItemMatchScore(queryItem, item) {\n  var score = 0;\n  if (!item.__text__) return 0;\n  var hwScore = 0;\n  var i;\n\n  for (i = 0; i < queryItem.__words__.length; ++i) {\n    if (item.__wordDict__[queryItem.__words__[i]]) {\n      hwScore += HAS_WORD_SCORE;\n    } else if (item.__nvnWordDict__[queryItem.__nvnWords__[i]]) {\n      hwScore += HAS_NVN_WORD_SCORE;\n    }\n  }\n\n  score = hwScore;\n\n  if (item.__text__ === queryItem.__text__) {\n    score += EQUAL_MATCH_SCORE;\n  }\n\n  var extraIndex = item.__text__.indexOf(queryItem.__text__);\n\n  if (extraIndex >= 0) {\n    score += EXTRA_MATCH_SCORE;\n  }\n\n  extraIndex = item.__nvnText__.indexOf(queryItem.__nvnText__);\n\n  if (extraIndex >= 0) {\n    score += EXTRA_MATCH_SCORE;\n  }\n\n  var n = Math.max(queryItem.__words__.length + 1, 1);\n  score = Math.max(score, (0, _stringMatching.wordsMatch)(queryItem.__words__, item.__words__), (0, _stringMatching.wordsMatch)(queryItem.__nvnWords__, item.__nvnWords__)) / n * 2 * WORD_MATCH_SCORE;\n  return score;\n}\n/***\r\n *\r\n * @param  {String} query\r\n * @param {Array<SelectionItem>} items\r\n */\n\n\nfunction searchListByText(query, items) {\n  query = (query || '').trim();\n  if (query.length == 0 || items.length == 0) return items;\n  var queryItem = prepareSearchForItem({\n    text: query\n  });\n  var its = items.map(function (item) {\n    return {\n      item: item,\n      score: calcItemMatchScore(queryItem, item)\n    };\n  });\n  its.sort(function (a, b) {\n    if (b.score - a.score == 0) {\n      if (b.item.__nvnText__ > a.item.__nvnText__) return -1;\n      return 1;\n    }\n\n    return b.score - a.score;\n  });\n  var midValue = (its[0].score + its[its.length - 1].score) / 2;\n  if (midValue === 0) midValue += 0.1;\n  if (midValue < 1) midValue = 1;\n  return its.filter(function (it) {\n    return it.score >= midValue;\n  }).map(function (it) {\n    return it.item;\n  });\n}\n/***\r\n *\r\n * @param  {String} query\r\n * @param {Array<SelectionItem>} items\r\n */\n\n\nfunction searchTreeListByText(query, items) {\n  query = (query || '').trim();\n  if (query.length == 0 || items.length == 0) return items;\n  var queryItem = prepareSearchForItem({\n    text: query\n  });\n  var gmaxScore = 0;\n  var gminScore = 1000;\n\n  function makeScoreRecursive(item) {\n    var score = calcItemMatchScore(queryItem, item);\n    gmaxScore = Math.max(score, gmaxScore);\n    gminScore = Math.min(score, gminScore);\n    var children = (item.items || []).map(function (item) {\n      return makeScoreRecursive(item);\n    });\n    var maxScore = children.reduce(function (ac, cr) {\n      return Math.max(ac, cr.maxScore);\n    }, score);\n    return {\n      score: score,\n      maxScore: maxScore,\n      item: item,\n      children: children\n    };\n  }\n\n  function sortcmp(a, b) {\n    return b.maxScore - a.maxScore;\n  }\n\n  function filterItems(nodes, medScore) {\n    nodes.sort(sortcmp);\n    return nodes.filter(function (node) {\n      return node.maxScore >= medScore;\n    }).map(function (node) {\n      var res;\n\n      if (typeof node.item == 'string') {\n        res = node.item;\n      } else {\n        res = Object.assign({}, node.item);\n        res.ref = node.item;\n\n        if (node.children && node.children.length > 0) {\n          res.items = filterItems(node.children, medScore);\n          if (res.items.length == 0) delete res.items;\n        }\n      }\n\n      return res;\n    });\n  }\n\n  var scoredItems = items.map(makeScoreRecursive);\n  var medianScore = (gminScore + gmaxScore) / 2;\n  var items = filterItems(scoredItems, medianScore);\n  return items;\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/list/search.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/list/treeListToList.js":
/*!************************************************************!*\
  !*** ./node_modules/absol-acomp/js/list/treeListToList.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = treeListToList;\n\n/***\r\n *\r\n * @param {Array<SelectionItem>} items\r\n * @returns {Array<SelectionItem>}\r\n */\nfunction treeListToList(items) {\n  var arr = [];\n\n  function visit(level, node) {\n    Object.defineProperty(node, 'level', {\n      configurable: true,\n      writable: true,\n      value: level\n    });\n    arr.push(node);\n    if (node.items && node.items.length > 0) node.items.forEach(visit.bind(null, level + 1));\n  }\n\n  items.forEach(visit.bind(null, 0));\n  return arr;\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/list/treeListToList.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/materializeIconTrigger.js":
/*!***************************************************************!*\
  !*** ./node_modules/absol-acomp/js/materializeIconTrigger.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = materializeIconTrigger;\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _ResizeSystem = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/ResizeSystem */ \"./node_modules/absol/src/HTML5/ResizeSystem.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction materializeIconTrigger() {\n  _Dom[\"default\"].documentReady.then(function () {\n    var linkMaterial = _ACore[\"default\"].$('link', document.head, function (elt) {\n      if (elt.href && elt.href.indexOf('Material+Icons')) return true;\n    });\n\n    if (!linkMaterial) return;\n    var checkInv = -1;\n\n    function onLoaded() {\n      if (checkInv > 0) {\n        clearTimeout(checkInv);\n        checkInv = -1;\n      }\n\n      linkMaterial.off('loaded', onLoaded).off('load', onLoaded).off('error', onLoaded);\n      i.remove();\n      requestAnimationFrame(function () {\n        _ResizeSystem[\"default\"].update();\n\n        if (document.cookie.indexOf('absol_debug') >= 0) {\n          console.info('Resize after MaterialIcons load');\n        }\n      });\n    }\n\n    linkMaterial.on('loaded', onLoaded).on('load', onLoaded).on('error', onLoaded);\n\n    var i = _ACore[\"default\"]._({\n      tag: 'i',\n      \"class\": \"material-icons\",\n      style: {\n        fontSize: '14px',\n        position: 'fixed',\n        top: '0',\n        left: '0',\n        zIndex: '-1000',\n        visibility: 'hidden'\n      },\n      child: {\n        text: 'account_balance_wallet'\n      }\n    }).addTo(document.body);\n\n    var iBox = i.getBoundingClientRect();\n\n    if (iBox.width < iBox.height * 3) {\n      onLoaded();\n      return;\n    }\n\n    var intervalCount = 50;\n    checkInv = setInterval(function () {\n      intervalCount--;\n\n      if (intervalCount < 0) {\n        onLoaded();\n      }\n\n      iBox = i.getBoundingClientRect();\n\n      if (iBox.width < iBox.height * 3) {\n        onLoaded();\n      }\n    }, 200);\n  });\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/materializeIconTrigger.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/messageinput/MIEmojiPlugin.js":
/*!*******************************************************************!*\
  !*** ./node_modules/absol-acomp/js/messageinput/MIEmojiPlugin.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _MessageInputPlugin = _interopRequireDefault(__webpack_require__(/*! ./MessageInputPlugin */ \"./node_modules/absol-acomp/js/messageinput/MessageInputPlugin.js\"));\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/****\r\n * @extends MessageInputPlugin\r\n * @constructor\r\n */\nfunction MIEmojiPlugin(inputElt) {\n  _MessageInputPlugin[\"default\"].call(this, inputElt, {\n    id: 'emoji_picker',\n    icon: 'span.mdi.mdi-emoticon-happy-outline'\n  });\n\n  for (var key in this) {\n    if (key.startsWith('ev_')) {\n      this[key] = this[key].bind(this);\n    }\n  }\n}\n\n_OOP[\"default\"].mixClass(MIEmojiPlugin, _MessageInputPlugin[\"default\"]);\n\nMIEmojiPlugin.prototype.createContent = function () {\n  return (0, _ACore._)('emojipicker') //.addTo(this.$emojiPickerCtn)\n  .on('pick', this.ev_PickEmoji);\n};\n\nMIEmojiPlugin.prototype.ev_PickEmoji = function (event) {\n  var text = this.inputElt.$preInput.value;\n  var selected = this._lastInputSelectPosion;\n  var newText = text.substr(0, selected.start) + event.key + text.substr(selected.end);\n  var newOffset = selected.start + event.key.length;\n  this._lastInputSelectPosion = {\n    start: newOffset,\n    end: newOffset\n  };\n  this.inputElt.$preInput.focus();\n  this.inputElt.$preInput.applyData(newText, newOffset);\n  this.inputElt.$preInput.commitChange(newText, newOffset);\n  this.inputElt.notifySizeChange();\n  this.inputElt.$preInput.focus();\n};\n\nMIEmojiPlugin.prototype.onOpen = function () {\n  var value = this.inputElt.$preInput.value;\n  this._lastInputSelectPosion = this.inputElt.$preInput.getSelectPosition() || {\n    start: value.length,\n    end: value.length\n  };\n  this.inputElt.$preInput.focus();\n};\n\nvar _default = MIEmojiPlugin;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/messageinput/MIEmojiPlugin.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/messageinput/MessageInput.js":
/*!******************************************************************!*\
  !*** ./node_modules/absol-acomp/js/messageinput/MessageInput.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.MODE_NEW = exports.MODE_EDIT = void 0;\nexports.MessageQuote = MessageQuote;\nexports[\"default\"] = void 0;\nexports.parseMessage = parseMessage;\nexports.prepareIcon = prepareIcon;\n\n__webpack_require__(/*! ../../css/messageinput.css */ \"./node_modules/absol-acomp/css/messageinput.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _EventEmitter = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _EmojiAnims = __webpack_require__(/*! ../EmojiAnims */ \"./node_modules/absol-acomp/js/EmojiAnims.js\");\n\nvar _EmojiPicker = _interopRequireDefault(__webpack_require__(/*! ../EmojiPicker */ \"./node_modules/absol-acomp/js/EmojiPicker.js\"));\n\nvar _BrowserDetector = _interopRequireDefault(__webpack_require__(/*! absol/src/Detector/BrowserDetector */ \"./node_modules/absol/src/Detector/BrowserDetector.js\"));\n\nvar _stringGenerate = __webpack_require__(/*! absol/src/String/stringGenerate */ \"./node_modules/absol/src/String/stringGenerate.js\");\n\nvar _CMDRunner = _interopRequireDefault(__webpack_require__(/*! absol/src/AppPattern/CMDRunner */ \"./node_modules/absol/src/AppPattern/CMDRunner.js\"));\n\nvar _keyboard = __webpack_require__(/*! absol/src/Input/keyboard */ \"./node_modules/absol/src/Input/keyboard.js\");\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _tiutils = __webpack_require__(/*! ../tokenizeiput/tiutils */ \"./node_modules/absol-acomp/js/tokenizeiput/tiutils.js\");\n\nvar _MessageInputPlugin = _interopRequireDefault(__webpack_require__(/*! ./MessageInputPlugin */ \"./node_modules/absol-acomp/js/messageinput/MessageInputPlugin.js\"));\n\nvar _MIEmojiPlugin = _interopRequireDefault(__webpack_require__(/*! ./MIEmojiPlugin */ \"./node_modules/absol-acomp/js/messageinput/MIEmojiPlugin.js\"));\n\nvar _catalog = _interopRequireDefault(__webpack_require__(/*! ../../assets/exticons/catalog.json */ \"./node_modules/absol-acomp/assets/exticons/catalog.json\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\nvar $$ = _ACore[\"default\"].$$;\n/***\r\n *\r\n * @typedef {{text:string, desc: string, img?:string, file?:string}|string} MessageInputQuote\r\n */\n\nvar MODE_NEW = 0;\nexports.MODE_NEW = MODE_NEW;\nvar MODE_EDIT = 1;\nexports.MODE_EDIT = MODE_EDIT;\nvar isMobile = _BrowserDetector[\"default\"].isMobile;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction MessageInput() {\n  this._cmdRunner = new _CMDRunner[\"default\"](this);\n  this._keyMaps = {};\n  this._plugins = [];\n  this._mode = MODE_NEW; //edit\n\n  this._editingText = \"\";\n  prepareIcon();\n  /**\r\n   * @type {import('../PreInput').default}\r\n   */\n\n  this.$preInput = $('.as-message-input-pre', this);\n  this.$preInput.on('change', this.eventHandler.preInputChange).on('keyup', this.eventHandler.preInputKeyUp).on('keydown', this.eventHandler.preInputKeyDown).on('pasteimg', this.eventHandler.preInputPasteImg).on('focus', this.eventHandler.preInputFocus).on('blur', this.eventHandler.preInputBlur); // //every can make size change\n\n  this._imageFiles = [];\n  this._files = [];\n  this._latBound = {};\n  this.$quote = $('messagequote.as-message-input-quote', this).on('pressremove', this.eventHandler.clickQuoteRemoveBtn);\n  this.$left = $('.as-message-input-left', this);\n  this.$right = $('.as-message-input-right', this);\n  this.$attachmentCtn = $('.as-message-input-attachment-ctn', this);\n  this.$fileBtn = $('.as-message-input-plugin-file', this).on('click', this.openFileDialog.bind(this));\n  this.$attachmentAddBtn = $('.as-message-input-attachment-add-btn', this).on('click', this.openFileDialog.bind(this));\n  this.$sendBtn = $('.as-message-input-plugin-send', this).on('click', this.notifySend.bind(this));\n  this.$cancelBtn = $('.as-message-input-plugin-cancel', this).on('click', this.notifyCancel.bind(this));\n  this.$attachhook = _('attachhook').addTo(this).on('attached', this.notifySizeChange.bind(this)).on('attached', this._updateSize.bind(this));\n  this.on('drop', this.eventHandler.drop).on('dragover', this.eventHandler.dragover);\n\n  _OOP[\"default\"].drillProperty(this, this.$preInput, 'tagList');\n\n  this.autoSend = false;\n  /***\r\n   *\r\n   * @type {MessageInputQuote|null}\r\n   */\n\n  this.quote = null;\n  this.addPlugin(new _MIEmojiPlugin[\"default\"](this));\n}\n\nMessageInput.MODE_EDIT = MODE_EDIT;\nMessageInput.MODE_NEW = MODE_NEW;\n\nMessageInput.iconAssetRoot = function () {\n  if (location.hostname.match(/^.*(\\.?absol\\.cf|absol\\.ddns\\.net)$/) || location.hostname === 'localhost') return 'https://absol.cf/exticons/vivid';\n  return '/vivid_exticons';\n}();\n\nMessageInput.tag = 'MessageInput'.toLowerCase();\n\nMessageInput.render = function (data) {\n  data = data || {};\n  data.iconAssetRoot = data.iconAssetRoot || MessageInput.iconAssetRoot;\n  return _({\n    attr: {\n      'data-icon-asset-root': MessageInput.iconAssetRoot\n    },\n    \"class\": ['as-message-input'].concat(data.v2 ? ['as-v2'] : []),\n    extendEvent: ['sendtext', 'sendimage', 'sendfile', 'sendquote', 'cancel', 'change', 'sizechange', 'send', 'useraddfile'],\n    child: [{\n      \"class\": 'as-message-input-right',\n      child: [{\n        tag: 'button',\n        \"class\": ['as-message-input-plugin-btn', 'as-message-input-plugin-file'],\n        child: 'span.mdi.mdi-attachment.mdi-rotate-90'\n      }, {\n        tag: 'button',\n        \"class\": ['as-message-input-plugin-btn', 'as-message-input-plugin-send'],\n        child: 'span.mdi.mdi-send'\n      }, {\n        tag: 'button',\n        \"class\": ['as-message-input-plugin-btn', 'as-message-input-plugin-cancel'],\n        child: 'span.mdi.mdi-close'\n      }]\n    }, {\n      \"class\": 'as-message-input-pre-ctn',\n      child: ['messagequote.as-message-input-quote.as-removable.as-shorten-text', {\n        \"class\": 'as-message-input-left'\n      }, {\n        \"class\": ['as-message-input-attachment-ctn', 'as-bscroller'],\n        child: [{\n          tag: 'button',\n          \"class\": 'as-message-input-attachment-add-btn',\n          child: ['span.mdi.mdi-arrow-down-bold.as-message-input-attachment-add-btn-drop', {\n            tag: 'span',\n            \"class\": 'as-message-input-attachment-add-btn-plus',\n            child: {\n              text: \"+\"\n            }\n          }]\n        }]\n      }, (data.v2 ? 'tokenizehyperinput' : 'preinput') + '.as-message-input-pre.absol-bscroller']\n    }]\n  });\n};\n\nMessageInput.prototype.notifyChange = function () {\n  this.emit('change', {\n    name: 'change',\n    target: this\n  }, this);\n\n  if (this.autoSend) {\n    if (this.files.length > 0 || this.images.length > 0) this.notifySend();\n  }\n};\n\nMessageInput.prototype.notifySend = function () {\n  var eventData = {\n    imageRemovePrevented: false,\n    fileRemovePrevented: false,\n    textRemovePrevented: false,\n    quoteRemovePrevented: false,\n    target: this,\n    files: this.files,\n    images: this.images,\n    text: this.text\n  };\n\n  if (eventData.files.length > 0) {\n    this.emit('sendfile', Object.assign(eventData, {\n      type: 'sendfile',\n      preventDefault: function preventDefault() {\n        this.fileRemovePrevented = true;\n      }\n    }), this);\n  }\n\n  if (eventData.images.length > 0) {\n    this.emit('sendimage', Object.assign(eventData, {\n      type: 'sendimage',\n      preventDefault: function preventDefault() {\n        this.imageRemovePrevented = true;\n      }\n    }), this);\n  }\n\n  if (typeof this.quote === \"string\" || this.quote) {\n    this.emit('sendquote', Object.assign(eventData, {\n      type: 'sendquote',\n      preventDefault: function preventDefault() {\n        this.quoteRemovePrevented = true;\n      }\n    }), this);\n  }\n\n  if (this.files.length > 0 || eventData.images.length > 0 || eventData.text || typeof this.quote === \"string\" || this.quote) {\n    if (eventData.text) this.$preInput.focus();\n    this.emit('send', Object.assign(eventData, {\n      type: 'send',\n      preventDefault: function preventDefault() {\n        this.imageRemovePrevented = true;\n        this.fileRemovePrevented = true;\n        this.imageRemovePrevented = true;\n        this.quoteRemovePrevented = true;\n      }\n    }), this);\n  }\n\n  if (!eventData.fileRemovePrevented) this.files = [];\n  if (!eventData.imageRemovePrevented) this.images = [];\n  if (!eventData.textRemovePrevented) this.text = '';\n  if (!eventData.quoteRemovePrevented) this.quote = null;\n};\n\nMessageInput.prototype.notifyCancel = function () {\n  this.emit('cancel', {\n    type: 'cancel',\n    name: 'send',\n    target: this,\n    clearAllContent: this.clearAllContent.bind(this)\n  }, this);\n};\n\nMessageInput.prototype.clearAllContent = function () {\n  this.text = '';\n  this.quote = null;\n  this.files = [];\n  this.images = [];\n};\n\nMessageInput.prototype.focus = function () {\n  var value = this.$preInput.value;\n  var range = this.$preInput.getSelectPosition() || {\n    start: value.length,\n    end: value.length\n  };\n  this.$preInput.focus();\n  this.$preInput.applyData(value, range);\n};\n\nMessageInput.prototype.blur = function () {\n  this.$preInput.blur();\n};\n\nMessageInput.prototype._updateAttachmentClass = function () {\n  if (this._imageFiles.length + this._files.length) {\n    this.addClass(\"as-has-attachment\");\n  } else {\n    this.removeClass(\"as-has-attachment\");\n  }\n\n  this._updateSize();\n};\n\nMessageInput.prototype._updateSize = function () {\n  var fs = this.getFontSize() || 14;\n  this.addStyle('--right-width', this.$right.getBoundingClientRect().width / fs + 'em');\n};\n\nMessageInput.prototype.addImageFiles = function (imageFiles, urls) {\n  var thisMi = this;\n  Array.prototype.forEach.call(imageFiles, function (file, index) {\n    thisMi._imageFiles.push(file);\n\n    var src;\n\n    if (urls) {\n      src = urls[index];\n    }\n\n    if (!src) {\n      src = URL.createObjectURL(file);\n    }\n\n    var itemElt = _({\n      \"class\": ['as-message-input-attach-preview', 'as-image'],\n      attr: {\n        title: file.name\n      },\n      child: [{\n        \"class\": 'as-message-input-attach-preview-image',\n        style: {\n          backgroundImage: 'url(' + src + ')'\n        }\n      }, {\n        tag: 'button',\n        \"class\": 'as-message-input-attach-preview-close-btn',\n        child: 'span.mdi.mdi-close',\n        attr: {\n          title: 'remove'\n        },\n        on: {\n          click: function click() {\n            thisMi._imageFiles = thisMi._imageFiles.filter(function (it) {\n              return it !== file;\n            });\n            itemElt.remove();\n\n            thisMi._updateAttachmentClass();\n\n            thisMi.notifySizeChange();\n            thisMi.notifyChange();\n          }\n        }\n      }, {\n        \"class\": 'as-message-input-attach-preview-info',\n        child: [{\n          \"class\": 'as-message-input-attach-preview-name',\n          child: {\n            text: file.name\n          }\n        }, {\n          \"class\": 'as-message-input-attach-preview-size',\n          child: {\n            text: (0, _utils.fileSize2Text)(file.size)\n          }\n        }]\n      }]\n    }).addTo(thisMi.$attachmentCtn);\n\n    thisMi.$attachmentCtn.addChildBefore(itemElt, thisMi.$attachmentAddBtn);\n  });\n\n  this._updateAttachmentClass();\n\n  this.notifySizeChange();\n};\n\nMessageInput.prototype.addFiles = function (files) {\n  var thisMi = this;\n  Array.prototype.forEach.call(files, function (file, index) {\n    thisMi._files.push(file);\n\n    MessageInput.iconSupportAsync.then(function (ExtensionIcons) {\n      var src;\n      var ext = file.name.split('.').pop().toLowerCase();\n\n      if (ExtensionIcons.indexOf(ext) > 0) {\n        src = MessageInput.iconAssetRoot + '/' + ext + '.svg';\n      } else {\n        src = MessageInput.iconAssetRoot + '/' + 'default' + '.svg';\n      }\n\n      var itemElt = _({\n        \"class\": ['as-message-input-attach-preview', 'as-file'],\n        attr: {\n          title: file.name\n        },\n        child: [{\n          tag: 'img',\n          \"class\": 'as-message-input-attach-preview-file',\n          props: {\n            src: src\n          }\n        }, {\n          tag: 'button',\n          \"class\": 'as-message-input-attach-preview-close-btn',\n          child: 'span.mdi.mdi-close',\n          attr: {\n            title: 'remove'\n          },\n          on: {\n            click: function click() {\n              thisMi._files = thisMi._files.filter(function (it) {\n                return it !== file;\n              });\n              itemElt.remove();\n\n              thisMi._updateAttachmentClass();\n\n              thisMi.notifySizeChange();\n              thisMi.notifyChange();\n            }\n          }\n        }, {\n          \"class\": 'as-message-input-attach-preview-info',\n          child: [{\n            \"class\": 'as-message-input-attach-preview-name',\n            child: {\n              text: file.name\n            }\n          }, {\n            \"class\": 'as-message-input-attach-preview-size',\n            child: {\n              text: (0, _utils.fileSize2Text)(file.size)\n            }\n          }]\n        }]\n      });\n\n      thisMi.$attachmentCtn.addChildBefore(itemElt, thisMi.$attachmentAddBtn);\n    });\n  });\n\n  this._updateAttachmentClass();\n\n  thisMi.notifySizeChange();\n};\n\nMessageInput.prototype.closeEmoji = function () {\n  if (!this.hasClass('as-message-input-show-emoji')) return;\n  this.removeClass('as-message-input-show-emoji');\n  this.removeChild(this.$emojiPickerCtn);\n  $(document.body).off('mousedown', this.eventHandler.mousedownOutEmoji);\n};\n\nMessageInput.prototype.notifyAddFiles = function (files) {\n  var event = {\n    resolvedAsync: Promise.resolve(files),\n    files: files,\n    resolve: function resolve(result) {\n      if (!result) {\n        this.resolvedAsync = Promise.resolve(undefined);\n      } else if (result.then) {\n        this.resolvedAsync = result;\n      } else {\n        this.resolvedAsync = Promise.resolve(result);\n      }\n    }\n  };\n  this.emit('useraddfile', event);\n  return event.resolvedAsync;\n};\n\nMessageInput.prototype.openFileDialog = function () {\n  var thisMi = this;\n  (0, _utils.openFileDialog)({\n    multiple: true\n  }).then(function (files) {\n    if (!thisMi.autoSend) thisMi.$preInput.focus();\n    thisMi.notifyAddFiles(files).then(function (files) {\n      if (files && files.length > 0) thisMi.handleAddingFileByType(files);\n    });\n  });\n};\n\nMessageInput.prototype.handleAddingFileByType = function (files) {\n  if (files.length > 0) {\n    var imageFiles = [];\n    var otherFiles = [];\n    var file;\n\n    for (var i = 0; i < files.length; ++i) {\n      file = files[i];\n\n      if (!!file.type && file.type.match && file.type.match(/^image\\//)) {\n        imageFiles.push(file);\n      } else {\n        otherFiles.push(file);\n      }\n    }\n\n    this.addImageFiles(imageFiles);\n    this.addFiles(otherFiles);\n    this.notifyChange();\n  }\n};\n\nMessageInput.prototype.notifySizeChange = function () {\n  var bound = this.getBoundingClientRect();\n\n  if (this._latBound.width != bound.width || this._latBound.height != bound.height) {\n    this._latBound.width = bound.width;\n    this._latBound.height = bound.height;\n    this.emit('sizechange', {\n      name: 'sizechange',\n      bound: bound,\n      target: this\n    }, this);\n  }\n};\n\nMessageInput.prototype.addPlugin = function (option) {\n  var plugin;\n\n  if (option.isMessagePlugin) {\n    plugin = option;\n  } else {\n    plugin = new this.PluginConstructor(this, option);\n  }\n\n  plugin.idx = this._plugins.length + 1;\n\n  this._plugins.push(plugin);\n\n  this._plugins.sort(function (a, b) {\n    var av = typeof a.opt.order === \"number\" ? a.opt.order : a.idx * 1000;\n    var bv = typeof b.opt.order === \"number\" ? b.opt.order : b.idx * 1000;\n    return av - bv;\n  });\n\n  var plugins = this._plugins.slice();\n\n  plugins.forEach(function (pl) {\n    return pl.getTriggerButton().remove();\n  });\n  this.$left.addChild(plugins.shift().getTriggerButton());\n\n  while (plugins.length > 0) {\n    this.$right.addChildBefore(plugins.shift().getTriggerButton(), this.$right.firstChild);\n  }\n\n  return plugin;\n};\n/***\r\n *\r\n * @param {{name?:string, exec:function(_this:MessageInput):void, keyBiding?:string}} option\r\n */\n\n\nMessageInput.prototype.addCommand = function (option) {\n  option.name = option.name || (0, _stringGenerate.randomIdent)(20);\n\n  this._cmdRunner.add(option.name, option.exec);\n\n  if (option.keyBiding && option.keyBiding.trim) {\n    var keyBindingIdent = (0, _keyboard.normalizeKeyBindingIdent)(option.keyBiding);\n    this._keyMaps[keyBindingIdent] = option.name;\n  }\n};\n\nMessageInput.prototype.exeCmd = function (name) {\n  var args = Array.prototype.slice.call(arguments);\n  args[0] = this;\n  args.unshift(name);\n\n  this._cmdRunner.invoke.apply(this._cmdRunner, args);\n};\n\nMessageInput.prototype._updateQuote = function () {\n  this.$quote.data = this._quote;\n  if (this._quote) this.addClass('as-has-quote');else this.removeClass('as-has-quote');\n\n  this._updateSize();\n\n  this.notifySizeChange();\n};\n/**\r\n * @type {MessageInput}\r\n */\n\n\nMessageInput.eventHandler = {};\n\nMessageInput.eventHandler.preInputChange = function (event) {\n  var text = this.$preInput.value;\n\n  if (text.length > 0) {\n    this.addClass('as-has-text');\n  } else {\n    this.removeClass('as-has-text');\n  }\n\n  if (text === this._editingText) {\n    this.removeClass('as-text-changed');\n  } else {\n    this.addClass('as-text-changed');\n  }\n\n  this._updateSize();\n\n  this.notifySizeChange();\n  this.notifyChange();\n};\n\nMessageInput.eventHandler.preInputKeyDown = function (event) {\n  if (!(event.shiftKey || event.ctrlKey || event.altKey) && event.key === 'Enter') {\n    this.notifySend();\n    event.preventDefault();\n  } else if ((event.shiftKey || event.ctrlKey || event.altKey) && event.key === 'Enter') {\n    event.preventDefault();\n    var text = this.$preInput.value;\n    var selectedPos = this.$preInput.getSelectPosition();\n    var newText = text.substr(0, selectedPos.start) + '\\n' + text.substr(selectedPos.end);\n    this.$preInput.applyData(newText, selectedPos.start + 1);\n    this.notifySizeChange();\n    this.$preInput.commitChange(newText, selectedPos.start + 1);\n  } else if (event.key === \"Escape\" && this._mode === MODE_EDIT) {\n    this.notifyCancel();\n    event.preventDefault();\n  }\n\n  var keyBindingIdent = (0, _keyboard.keyboardEventToKeyBindingIdent)(event);\n\n  if (this._keyMaps[keyBindingIdent]) {\n    event.preventDefault();\n    this.exeCmd(this._keyMaps[keyBindingIdent]);\n  }\n\n  setTimeout(this.notifySizeChange.bind(this), 1);\n};\n\nMessageInput.eventHandler.preInputKeyUp = function (event) {\n  var value = this.$preInput.value;\n  this._lastInputSelectPosion = this.$preInput.getSelectPosition() || {\n    start: value.length,\n    end: value.length\n  };\n  this.notifySizeChange();\n};\n\nMessageInput.eventHandler.preInputPasteImg = function (event) {\n  if (this._mode == 'edit') return;\n  var files = Array.prototype.slice.call(event.imageFiles);\n  var urls = event.urls && Array.prototype.slice.call(event.urls);\n  this.notifyAddFiles(files).then(function (newFiles) {\n    if (!newFiles || newFiles.length === 0) return;\n    var newUrls = urls && newFiles.map(function (file) {\n      return urls[files.indexOf(file)];\n    });\n    this.addImageFiles(newFiles, newUrls);\n    this.notifyChange();\n  }.bind(this));\n};\n\nMessageInput.eventHandler.preInputFocus = function () {\n  this.addClass('as-focus');\n};\n\nMessageInput.eventHandler.preInputBlur = function () {\n  this.removeClass('as-focus');\n};\n\nMessageInput.eventHandler.clickEmojiBtn = function () {\n  this.toggleEmoji();\n};\n\nMessageInput.eventHandler.mousedownOutEmoji = function (event) {\n  if (_EventEmitter[\"default\"].hitElement(this.$emojiPicker, event) || _EventEmitter[\"default\"].hitElement(this.$emojiBtn, event)) return;\n  this.closeEmoji();\n};\n\nMessageInput.eventHandler.pickEmoji = function (event) {\n  var text = this.$preInput.value;\n  var newText = text.substr(0, this._lastInputSelectPosion.start) + event.key + text.substr(this._lastInputSelectPosion.end);\n  var selected = this._lastInputSelectPosion;\n  var newOffset = selected.start + event.key.length;\n  this._lastInputSelectPosion = {\n    start: newOffset,\n    end: newOffset\n  };\n  this.$preInput.focus();\n  this.$preInput.applyData(newText, newOffset);\n  this.$preInput.commitChange(newText, newOffset);\n  this.notifySizeChange();\n  this.$preInput.focus(); //older firefox version will be lost focus\n  // this.notifyChange();//not need\n};\n\nMessageInput.eventHandler.dragover = function (event) {\n  event.preventDefault();\n  this.addClass('as-drag-hover');\n  this.notifySizeChange();\n  if (this._hoverTimeout > 0) clearTimeout(this._hoverTimeout);\n  var thisMi = this;\n  this._hoverTimeout = setTimeout(function () {\n    thisMi._hoverTimeout = -1;\n    thisMi.removeClass('as-drag-hover');\n    thisMi.notifySizeChange();\n  }, 200); //todo:\n\n  this._updateSize();\n};\n\nMessageInput.eventHandler.drop = function (event) {\n  event.preventDefault();\n  var files = [];\n  var file;\n\n  if (event.dataTransfer.items) {\n    for (var i = 0; i < event.dataTransfer.items.length; i++) {\n      if (event.dataTransfer.items[i].kind === 'file') {\n        file = event.dataTransfer.items[i].getAsFile();\n\n        if (!file.type && file.size % 4096 == 0) {//todo: folder\n        } else {\n          files.push(file);\n        }\n      }\n    }\n  } else {\n    for (var i = 0; i < event.dataTransfer.files.length; i++) {\n      file = event.dataTransfer.files[i];\n\n      if (!file.type && file.size % 4096 == 0) {} else {\n        files.push(file);\n      }\n    }\n  }\n\n  this.notifyAddFiles(files).then(function (files) {\n    this.handleAddingFileByType(files);\n  }.bind(this));\n};\n\nMessageInput.eventHandler.clickQuoteRemoveBtn = function () {\n  this.quote = null;\n  this.notifyChange();\n};\n\nMessageInput.property = {};\nMessageInput.property.files = {\n  set: function set(value) {\n    $$('.as-file', this.$attachmentCtn).forEach(function (elt) {\n      elt.remove();\n    });\n    value = value || [];\n    this._files = [];\n    this.addFiles(value);\n  },\n  get: function get() {\n    return this._files;\n  }\n};\nMessageInput.property.images = {\n  set: function set(value) {\n    $$('.as-image', this.$attachmentCtn).forEach(function (elt) {\n      elt.remove();\n    });\n    value = value || [];\n    this._imageFiles = [];\n    this.addImageFiles(value);\n  },\n  get: function get() {\n    return this._imageFiles;\n  }\n};\nMessageInput.property.text = {\n  set: function set(text) {\n    this.$preInput.value = '' + text;\n\n    if (text.length > 0) {\n      this.addClass('as-has-text');\n    } else {\n      this.removeClass('as-has-text');\n    }\n\n    if (this._mode === MODE_EDIT) {\n      this._editingText = text;\n    }\n\n    this.removeClass('as-text-changed');\n\n    this._updateSize();\n  },\n  get: function get() {\n    return this.$preInput.value;\n  }\n};\n/**\r\n * @type {MessageInput}\r\n */\n\nMessageInput.property.mode = {\n  set: function set(value) {\n    value = value || MODE_NEW;\n\n    if (value === MODE_EDIT || value.toLowerCase && value.toLowerCase() === 'edit') {\n      this.addClass('as-mode-edit');\n      value = MODE_EDIT;\n      this._editingText = this.$preInput.value;\n    } else {\n      value = MODE_NEW;\n      this._editingText = '';\n      this.removeClass('as-mode-edit');\n    }\n\n    this.removeClass('as-text-changed');\n    this._mode = value;\n\n    this._updateSize();\n  },\n  get: function get() {\n    return this._mode === MODE_EDIT ? 'edit' : 'new';\n  }\n};\nMessageInput.property.autoSend = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-auto-send');\n    } else {\n      this.removeClass('as-auto-send');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-auto-send');\n  }\n};\nMessageInput.property.quote = {\n  set: function set(quote) {\n    this._quote = quote;\n\n    this._updateQuote();\n  },\n  get: function get() {\n    return this._quote;\n  }\n};\nMessageInput.property.tagMap = {\n  set: function set(value) {\n    this.$preInput.tagMap = value || {};\n    this.$quote.tagMap = value || {};\n  },\n  get: function get() {\n    return this.$preInput.tagMap;\n  }\n};\n\n_ACore[\"default\"].install(MessageInput);\n\nvar _default = MessageInput;\nexports[\"default\"] = _default;\nvar urlRex = /^(firefox|opera|chrome|https|http|wss|ws):\\/\\/[^\\s]+$/;\n/***\r\n *\r\n * @param {string}text\r\n * @param {{emojiAssetRoot?:string, staticSize?:number, animSize?:number, tagMap?:{}, lengthLimit?:number, inline?:boolean}=} data\r\n * @returns {Array}\r\n */\n\nfunction parseMessage(text, data) {\n  data = data || {};\n  data.emojiAssetRoot = data.emojiAssetRoot || _EmojiPicker[\"default\"].assetRoot;\n  data.staticSize = data.staticSize || 20;\n  data.animSize = data.animSize || 60;\n  var tagMap = data.tagMap || {};\n  var tokens = (0, _tiutils.tokenizeMessageText)(text).reduce(function (ac, token) {\n    if (token.type !== 'TEXT') {\n      ac.push(token);\n      return ac;\n    }\n\n    var urls = token.value.match(/(firefox|opera|chrome|https|http|wss|ws):\\/\\/[^\\s]+/g);\n    var splitter = Math.random() + '';\n    var normals = token.value.replace(/(firefox|opera|chrome|https|http|wss|ws):\\/\\/[^\\s]+/, splitter).split(splitter);\n\n    for (var i = 0; i < normals.length; ++i) {\n      if (i > 0) {\n        ac.push({\n          type: 'URL',\n          value: urls[i - 1]\n        });\n      }\n\n      ac.push({\n        type: 'TEXT',\n        value: normals[i]\n      });\n    }\n\n    return ac;\n  }, []);\n\n  if (data.lengthLimit > 0) {\n    tokens = tokens.reduce(function (ac, token) {\n      if (ac.l >= data.lengthLimit) {\n        return ac;\n      }\n\n      switch (token.type) {\n        case 'TAG':\n          ac.l += ('@' + (tagMap[token.value] ? tagMap[token.value] : '[id:' + token.value + ']')).length;\n          break;\n\n        case 'EMOJI':\n          ac.l += 1;\n          break;\n\n        case 'NEW_LINE':\n          ac.l += 1;\n          break;\n\n        default:\n          ac.l += token.value.length;\n      }\n\n      if (ac.l > data.lengthLimit) {\n        if (token.type === 'TEXT') {\n          token.value = token.value.substring(0, Math.max(0, token.value.length - (ac.l - data.lengthLimit) - 3)) + '...';\n          ac.tokens.push(token);\n        }\n      } else {\n        ac.tokens.push(token);\n      }\n\n      return ac;\n    }, {\n      l: 0,\n      tokens: []\n    }).tokens;\n  }\n\n  var res = tokens.reduce(function (ac, token) {\n    switch (token.type) {\n      case 'TAG':\n        ac.push({\n          tag: 'span',\n          \"class\": 'as-tag-token',\n          child: {\n            text: '@' + (tagMap[token.value] ? tagMap[token.value] : '[id:' + token.value + ']')\n          }\n        });\n        break;\n\n      case 'EMOJI':\n        ac.push({\n          tag: 'span',\n          \"class\": 'as-emoji-text',\n          child: {\n            text: token.value\n          }\n        });\n        ac.push({\n          tag: 'img',\n          \"class\": 'as-emoji',\n          props: {\n            src: data.emojiAssetRoot + '/static/x' + data.staticSize + '/' + _EmojiAnims.EmojiAnimByIdent[token.value][1]\n          }\n        });\n        break;\n\n      case 'NEW_LINE':\n        ac.push({\n          tag: 'br'\n        });\n        break;\n\n      case 'URL':\n        ac.push({\n          tag: 'a',\n          \"class\": 'as-protocal-' + token.value.split(':').shift(),\n          child: {\n            text: token.value\n          },\n          props: {\n            href: token.value,\n            target: '_blank'\n          }\n        });\n        break;\n\n      case 'TEXT':\n      default:\n        ac.push({\n          tag: 'span',\n          child: {\n            text: token.value\n          }\n        });\n        break;\n    }\n\n    return ac;\n  }, []);\n\n  if (!data.inline && res.length === 2 && res[1][\"class\"] === 'as-emoji') {\n    res[1].tag = 'iconsprite';\n    res[1].props.fps = 30;\n    res[1].props.src = res[1].props.src.replace('/static/x' + data.staticSize, '/anim/x' + data.animSize);\n  }\n\n  return res;\n}\n\nMessageInput.parseMessage = parseMessage;\n\nfunction prepareIcon() {\n  if (!MessageInput.iconSupportAsync) {\n    MessageInput.iconSupportAsync = Promise.resolve(_catalog[\"default\"]);\n  }\n\n  return MessageInput.iconSupportAsync;\n}\n\nfunction MessageQuote() {\n  prepareIcon();\n  this._tagMap = {};\n  /***\r\n   *\r\n   * @type {null|MessageInputQuote}\r\n   * @private\r\n   */\n\n  this._data = null;\n  this.$img = $('.as-message-quote-img', this);\n  this.$text = $('.as-message-quote-text', this);\n  this.$desc = $('.as-message-quote-desc', this);\n  this.$removeBtn = $('.as-message-quote-remove-btn', this).on('click', this.eventHandler.clickRemoveBtn);\n  Object.defineProperty(this, '$text', {\n    set: function set() {\n      console.trace();\n    },\n    get: function get() {\n      return $('.as-message-quote-text', this);\n    }\n  });\n}\n\nMessageQuote.tag = 'MessageQuote'.toLowerCase();\n\nMessageQuote.render = function () {\n  return _({\n    extendEvent: 'pressremove',\n    \"class\": 'as-message-quote-box',\n    child: [{\n      \"class\": 'as-message-quote-img'\n    }, {\n      \"class\": 'as-message-quote-sym',\n      child: 'span.mdi.mdi-format-quote-open-outline'\n    }, {\n      \"class\": 'as-message-quote-content',\n      child: [{\n        \"class\": 'as-message-quote-text',\n        child: {\n          text: ''\n        }\n      }, {\n        \"class\": 'as-message-quote-desc',\n        child: {\n          text: ''\n        }\n      }]\n    }, {\n      tag: 'button',\n      \"class\": 'as-message-quote-remove-btn',\n      child: 'span.mdi.mdi-close'\n    }]\n  });\n};\n\nMessageQuote.property = {};\nMessageQuote.eventHandler = {};\nMessageQuote.property.removable = {\n  set: function set(val) {\n    if (val) {\n      this.addClass('as-removable');\n    } else {\n      this.removeClass('as-removable');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-removable');\n  }\n};\nMessageQuote.property.shortenText = {\n  set: function set(val) {\n    if (val) {\n      this.addClass('as-shorten-text');\n    } else {\n      this.removeClass('as-shorten-text');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-shorten-text');\n  }\n};\nMessageQuote.property.data = {\n  set: function set(quote) {\n    this._data = quote;\n    var text, desc;\n    var file, img;\n\n    if (typeof quote === \"string\") {\n      text = quote;\n      desc = '';\n    } else if (quote && _typeof(quote) === \"object\") {\n      text = quote.text;\n      desc = quote.desc;\n      file = quote.file;\n      img = quote.img;\n    }\n\n    if (text === undefined) {\n      this.$text.clearChild();\n      this.$desc.firstChild.data = '';\n      this.removeClass('as-has-file');\n      this.removeClass('as-has-img');\n    } else {\n      if (file) {\n        file = file.toLowerCase().split('.').pop();\n        MessageInput.iconSupportAsync.then(function (iconSupport) {\n          if (iconSupport.indexOf(file) < 0) file = 'default';\n          this.$img.addStyle('background-image', 'url(' + MessageInput.iconAssetRoot + '/' + file + '.svg)');\n        }.bind(this));\n        this.addClass('as-has-file');\n      } else this.removeClass('as-has-file');\n\n      if (img) {\n        this.$img.addStyle('background-image', 'url(' + img + ')');\n        this.addClass('as-has-img');\n      } else this.removeClass('as-has-img');\n\n      if (this.shortenText) text = text.split(/\\r?\\n/).shift();\n      var parsedText = parseMessage(text, {\n        tagMap: this.tagMap\n      });\n      var textEltChain = parsedText.map(function (c) {\n        return _(c);\n      });\n      this.$text.clearChild().addChild(textEltChain);\n      this.$desc.firstChild.data = desc;\n    }\n  },\n  get: function get() {\n    return this._data;\n  }\n};\nMessageQuote.property.tagMap = {\n  set: function set(value) {\n    this._tagMap = value || {};\n    this.data = this['data'];\n  },\n  get: function get() {\n    return this._tagMap;\n  }\n};\n\nMessageQuote.eventHandler.clickRemoveBtn = function () {\n  this.emit('pressremove', {\n    target: this,\n    type: 'pressclose'\n  }, this);\n};\n\n_ACore[\"default\"].install(MessageQuote);\n\nMessageInput.prototype.PluginConstructor = _MessageInputPlugin[\"default\"];\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/messageinput/MessageInput.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/messageinput/MessageInputPlugin.js":
/*!************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/messageinput/MessageInputPlugin.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _stringGenerate = __webpack_require__(/*! absol/src/String/stringGenerate */ \"./node_modules/absol/src/String/stringGenerate.js\");\n\nvar _EventEmitter = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _noop = _interopRequireDefault(__webpack_require__(/*! absol/src/Code/noop */ \"./node_modules/absol/src/Code/noop.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @typedef MessageInputPluginOption\r\n * @property {string} [id]\r\n * @property {string|Object|AElement} icon\r\n * @property {function(_thisAdapter: MessageInputPlugin, _:Dom._, Dom.$):AElement} createContent\r\n * @property {function(_thisAdapter:MessageInputPlugin):void} onPressTrigger\r\n * @property {\"left\"|\"right\"} popupAlign\r\n * @property {boolean=} alwaysVisible\r\n */\n\n/***\r\n *\r\n * @param {MessageInput} inputElt\r\n * @param {MessageInputPluginOption} opt\r\n * @constructor\r\n */\nfunction MessageInputPlugin(inputElt, opt) {\n  this.opt = opt || {};\n  this.inputElt = inputElt;\n  this.icon = opt.icon;\n  this.id = opt.id || (0, _stringGenerate.randomIdent)(16);\n  this.alwaysVisible = !!opt.alwaysVisible;\n  this.$icon = null;\n  this.$triggerBtn = null;\n  this.$content = null;\n  this.$popup = null;\n  if (opt.createContent) this.createContent = opt.createContent;\n  if (opt.onPressTrigger) this.onPressTrigger = opt.onPressTrigger;\n  this.autoClose = true;\n\n  if ('autoClose' in opt) {\n    this.autoClose = !!opt.autoClose;\n  }\n\n  this.popupAlign = opt.popupAlign || 'left';\n  this.ev_pressTrigger = this.ev_pressTrigger.bind(this);\n  this.ev_pressOut = this.ev_pressOut.bind(this);\n}\n\nMessageInputPlugin.prototype.isMessagePlugin = true;\n\nMessageInputPlugin.prototype.ev_pressTrigger = function (event) {\n  var value = this.inputElt.$preInput.value;\n  this._lastInputSelectPosion = this.inputElt.$preInput.getSelectPosition() || {\n    start: value.length,\n    end: value.length\n  };\n\n  if (this.onPressTrigger) {\n    this.onPressTrigger(this);\n  } else {\n    if (this.isPopupOpened()) {\n      this.closePopup();\n    } else {\n      this.openPopup();\n    }\n  }\n};\n\nMessageInputPlugin.prototype.insertText = function (itext) {\n  if (!this._lastInputSelectPosion) {\n    throw new Error('Invalid call');\n  }\n\n  var text = this.inputElt.$preInput.value;\n  var newText = text.substr(0, this._lastInputSelectPosion.start) + itext + text.substr(this._lastInputSelectPosion.end);\n  var selected = this._lastInputSelectPosion;\n  var newOffset = selected.start + itext.length;\n  this.inputElt.$preInput.focus();\n  this.inputElt.$preInput.applyData(newText, newOffset);\n  this.inputElt.$preInput.commitChange(newText, newOffset);\n  this.inputElt.notifySizeChange();\n  this.inputElt.$preInput.focus();\n};\n\nMessageInputPlugin.prototype.appendText = function (itext) {\n  if (!this._lastInputSelectPosion) {\n    throw new Error('Invalid call');\n  }\n\n  var text = this.inputElt.$preInput.value;\n  var newText = text + itext;\n  var newOffset = newText.length;\n  this.inputElt.$preInput.focus();\n  this.inputElt.$preInput.applyData(newText, newOffset);\n  this.inputElt.$preInput.commitChange(newText, newOffset);\n  this.inputElt.notifySizeChange();\n  this.inputElt.$preInput.focus();\n};\n\nMessageInputPlugin.prototype.replaceText = function (itext) {\n  if (!this._lastInputSelectPosion) {\n    throw new Error('Invalid call');\n  }\n\n  var newText = itext;\n  var newOffset = newText.length;\n  this.inputElt.$preInput.focus();\n  this.inputElt.$preInput.applyData(newText, newOffset);\n  this.inputElt.$preInput.commitChange(newText, newOffset);\n  this.inputElt.notifySizeChange();\n  this.inputElt.$preInput.focus();\n};\n\nMessageInputPlugin.prototype.ev_pressOut = function (event) {\n  if (_EventEmitter[\"default\"].hitElement(this.getTriggerButton(), event)) return;\n  if (_EventEmitter[\"default\"].hitElement(this.getPopup(), event)) return;\n  if (!this.autoClose) return;\n  this.closePopup();\n};\n\nMessageInputPlugin.prototype.getIconElt = function () {\n  if (!this.$icon) this.$icon = (0, _ACore._)(this.icon);\n  return this.$icon;\n};\n\nMessageInputPlugin.prototype.getTriggerButton = function () {\n  if (!this.$triggerBtn) {\n    this.$triggerBtn = (0, _ACore._)({\n      tag: 'button',\n      \"class\": ['as-message-input-plugin-btn', 'as-message-input-plugin-' + this.id],\n      child: this.getIconElt(),\n      on: {\n        click: this.ev_pressTrigger\n      }\n    });\n\n    if (this.alwaysVisible) {\n      this.$triggerBtn.addClass('as-always-visible');\n    }\n  }\n\n  return this.$triggerBtn;\n};\n\nMessageInputPlugin.prototype.createContent = function (_thisAdapter, _, $) {\n  return _({\n    tag: 'div'\n  });\n};\n/***\r\n *\r\n * @type {null|function(_thisAdapter:MessageInputPlugin):void}\r\n */\n\n\nMessageInputPlugin.prototype.onPressTrigger = null;\n\nMessageInputPlugin.prototype.getContent = function () {\n  if (!this.$content) this.$content = this.createContent(this.inputElt, _ACore._, _ACore.$);\n  return this.$content;\n};\n\nMessageInputPlugin.prototype.getPopup = function () {\n  if (!this.$popup) {\n    this.$popup = (0, _ACore._)({\n      \"class\": ['as-message-input-external-tools-popup', 'as-align-' + this.popupAlign],\n      child: this.getContent()\n    });\n  }\n\n  return this.$popup;\n};\n\nMessageInputPlugin.prototype.openPopup = function () {\n  if (this.isPopupOpened()) return;\n  this.inputElt.appendChild(this.getPopup());\n  document.body.addEventListener('click', this.ev_pressOut);\n  this.onOpen();\n\n  if (this.opt.onOpen) {\n    this.opt.onOpen.call(this, this.inputElt, _ACore._, _ACore.$);\n  }\n};\n\nMessageInputPlugin.prototype.closePopup = function () {\n  if (!this.isPopupOpened()) return;\n\n  if (this.opt.onClose) {\n    this.opt.onClose.call(this, this.inputElt, _ACore._, _ACore.$);\n  }\n\n  this.onClose();\n  this.getPopup().remove();\n  document.body.removeEventListener('click', this.ev_pressOut);\n};\n\nMessageInputPlugin.prototype.isPopupOpened = function () {\n  return !!this.getPopup().parentElement;\n};\n\nMessageInputPlugin.prototype.onOpen = _noop[\"default\"];\nMessageInputPlugin.prototype.onClose = _noop[\"default\"];\nObject.defineProperty(MessageInputPlugin.prototype, 'contentElt', {\n  get: function get() {\n    return this.getContent();\n  }\n});\nvar _default = MessageInputPlugin;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/messageinput/MessageInputPlugin.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/multichecktreeleafmenu/MCTLMPropHandler.js":
/*!********************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/multichecktreeleafmenu/MCTLMPropHandler.js ***!
  \********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _MCTMPropHandlers = _interopRequireDefault(__webpack_require__(/*! ../multichecktreemenu/MCTMPropHandlers */ \"./node_modules/absol-acomp/js/multichecktreemenu/MCTMPropHandlers.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar MCTLMPropHandler = Object.assign({}, _MCTMPropHandlers[\"default\"]);\nMCTLMPropHandler.leafOnly = {\n  value: true,\n  enumerable: true\n};\nvar _default = MCTLMPropHandler;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/multichecktreeleafmenu/MCTLMPropHandler.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/multichecktreeleafmenu/MultiCheckTreeLeafMenu.js":
/*!**************************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/multichecktreeleafmenu/MultiCheckTreeLeafMenu.js ***!
  \**************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _MCTLMPropHandler = _interopRequireDefault(__webpack_require__(/*! ./MCTLMPropHandler */ \"./node_modules/absol-acomp/js/multichecktreeleafmenu/MCTLMPropHandler.js\"));\n\nvar _MultiCheckTreeMenu = _interopRequireDefault(__webpack_require__(/*! ../multichecktreemenu/MultiCheckTreeMenu */ \"./node_modules/absol-acomp/js/multichecktreemenu/MultiCheckTreeMenu.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _MCheckTreeLeafBox = _interopRequireDefault(__webpack_require__(/*! ../checktreeleafbox/MCheckTreeLeafBox */ \"./node_modules/absol-acomp/js/checktreeleafbox/MCheckTreeLeafBox.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction MultiCheckTreeLeafMenu() {\n  _MultiCheckTreeMenu[\"default\"].apply(this, arguments);\n}\n\n_OOP[\"default\"].mixClass(MultiCheckTreeLeafMenu, _MultiCheckTreeMenu[\"default\"]);\n\nMultiCheckTreeLeafMenu.tag = 'MultiCheckTreeLeafMenu'.toLowerCase();\nMultiCheckTreeLeafMenu.prototype.classes = {\n  Box: _MCheckTreeLeafBox[\"default\"]\n};\n\nMultiCheckTreeLeafMenu.render = function () {\n  return _MultiCheckTreeMenu[\"default\"].render().addClass('as-multi-check-tree-leaf-menu');\n};\n\nMultiCheckTreeLeafMenu.property = _MCTLMPropHandler[\"default\"];\n\n_ACore[\"default\"].install(MultiCheckTreeLeafMenu);\n\nvar _default = MultiCheckTreeLeafMenu;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/multichecktreeleafmenu/MultiCheckTreeLeafMenu.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/multichecktreemenu/MCTMPropHandlers.js":
/*!****************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/multichecktreemenu/MCTMPropHandlers.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _datetime = __webpack_require__(/*! absol/src/Time/datetime */ \"./node_modules/absol/src/Time/datetime.js\");\n\nvar _Array = __webpack_require__(/*! absol/src/DataStructure/Array */ \"./node_modules/absol/src/DataStructure/Array.js\");\n\nvar MCTMPropHandlers = {};\nMCTMPropHandlers.readOnly = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-read-only');\n    } else {\n      this.removeClass('as-read-only');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-read-only');\n  }\n};\nMCTMPropHandlers.disabled = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-disabled');\n    } else {\n      this.removeClass('as-disabled');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-disabled');\n  }\n};\nMCTMPropHandlers.items = {\n  set: function set(items) {\n    this.$box.items = items;\n    this.tokenCtrl.updateFromViewValues();\n  },\n  get: function get() {\n    return this.$box.items;\n  }\n};\nMCTMPropHandlers.values = {\n  set: function set(values) {\n    this.$box.values = values || [];\n    this.tokenCtrl.updateFromViewValues();\n  },\n  get: function get() {\n    if (this.isFocus) {\n      return this.savedValues;\n    } else {\n      return this.$box.values;\n    }\n  }\n};\nMCTMPropHandlers.leafOnly = {\n  set: function set(value) {\n    if (!!value === this.hasClass('as-leaf-only')) return;\n\n    if (value) {\n      this.addClass('as-leaf-only');\n      this.$box.leafOnly = true;\n    } else {\n      this.removeClass('as-leaf-only');\n      this.$box.leafOnly = false;\n    }\n\n    this.tokenCtrl.updateFromViewValues();\n  },\n  get: function get() {\n    return this.hasClass('as-leaf-only');\n  }\n};\nMCTMPropHandlers.isFocus = {\n  /***\r\n   * @this MultiCheckTreeMenu\r\n   * @param value\r\n   */\n  set: function set(value) {\n    if (value && (this.disabled || this.readOnly)) return;\n    if (!!value === this.hasClass('as-focus')) return;\n\n    if (value) {\n      this.savedValues = this.$box.values;\n      this.addClass('as-focus');\n      this.boxCtrl.onFocus();\n    } else {\n      this.removeClass('as-focus');\n      this.boxCtrl.onBlur();\n      var newValues = this.values;\n\n      if (!(0, _Array.arrayCompare)(this.savedValues, newValues)) {\n        this.notifyChange();\n      } else {\n        this.tokenCtrl.updateFromViewValues();\n      }\n\n      this.savedValues = this.values;\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-focus');\n  }\n};\nMCTMPropHandlers.enableSearch = {\n  set: function set(value) {\n    this.$box.enableSearch = value;\n  },\n  get: function get() {\n    return this.$box.enableSearch;\n  }\n};\nvar _default = MCTMPropHandlers;\n/**************************** ADAPT OLD VERSION **********************************************************************/\n\nexports[\"default\"] = _default;\nMCTMPropHandlers.$checkTreeBox = {\n  get: function get() {\n    return this.$box;\n  }\n};\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/multichecktreemenu/MCTMPropHandlers.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/multichecktreemenu/MCTMTokenController.js":
/*!*******************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/multichecktreemenu/MCTMTokenController.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _SelectBoxItem = _interopRequireDefault(__webpack_require__(/*! ../SelectBoxItem */ \"./node_modules/absol-acomp/js/SelectBoxItem.js\"));\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/****\r\n *\r\n * @param {MultiCheckTreeMenu} elt\r\n * @constructor\r\n */\nfunction MCTMTokenController(elt) {\n  this.elt = elt;\n  this.$box = elt.$box;\n  this.$itemCtn = elt.$itemCtn;\n}\n\nMCTMTokenController.prototype.updateFromViewValues = function () {\n  var values = this.$box.viewValues;\n  this.requireItems(values.length);\n  var holder;\n\n  for (var i = 0; i < values.length; ++i) {\n    holder = this.$box.getHolderByValue(values[i]);\n    this.$itemCtn.childNodes[i].data = holder.data;\n  }\n};\n\nMCTMTokenController.prototype.requireItems = function (count) {\n  while (this.$itemCtn.childNodes.length < count) {\n    this.$itemCtn.addChild(this.makeToken());\n  }\n\n  while (this.$itemCtn.childNodes.length > count) {\n    this.$itemCtn.lastChild.remove();\n  }\n};\n\nMCTMTokenController.prototype.removeValue = function (targetValue) {\n  this.$box.select(targetValue, false);\n  this.updateFromViewValues();\n\n  if (!this.elt.isFocus) {\n    this.elt.notifyChange();\n  }\n};\n\nMCTMTokenController.prototype.makeToken = function () {\n  var ctrl = this;\n  return (0, _ACore._)({\n    tag: _SelectBoxItem[\"default\"],\n    on: {\n      close: function close() {\n        ctrl.removeValue(this.value);\n      }\n    }\n  });\n};\n\nvar _default = MCTMTokenController;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/multichecktreemenu/MCTMTokenController.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/multichecktreemenu/MMCTMBoxController.js":
/*!******************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/multichecktreemenu/MMCTMBoxController.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n/***\r\n *\r\n * @param elt\r\n * @constructor\r\n */\nfunction MMCTMBoxController(elt) {\n  this.elt = elt;\n  this.$box = elt.$box;\n\n  for (var key in this) {\n    if (key.startsWith('ev_')) this[key] = this[key].bind(this);\n  }\n\n  this.elt.on('click', this.ev_click);\n  this.$box.on('close', this.ev_close);\n  this.$box.on('cancel', this.ev_cancel);\n  this.$box.on('change', this.ev_boxValuesChange);\n}\n\nMMCTMBoxController.prototype.onFocus = function () {\n  this.$box.addTo(document.body);\n  this.elt.off('click', this.ev_click);\n};\n\nMMCTMBoxController.prototype.onBlur = function () {\n  var _this = this;\n\n  this.$box.remove();\n  setTimeout(function () {\n    _this.elt.on('click', _this.ev_click);\n  }, 50);\n};\n\nMMCTMBoxController.prototype.ev_click = function (event) {\n  if (!this.elt.disabled && !this.elt.readOnly && (event.target === this.elt || event.target === this.elt.$itemCtn)) {\n    this.elt.isFocus = true;\n  }\n};\n\nMMCTMBoxController.prototype.ev_close = function (event) {\n  this.elt.isFocus = false;\n};\n\nMMCTMBoxController.prototype.ev_cancel = function (event) {\n  this.$box.values = this.elt.savedValues;\n  this.elt.isFocus = false;\n};\n\nMMCTMBoxController.prototype.ev_boxValuesChange = function () {\n  this.elt.tokenCtrl.updateFromViewValues();\n};\n\nvar _default = MMCTMBoxController;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/multichecktreemenu/MMCTMBoxController.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/multichecktreemenu/MultiCheckTreeMenu.js":
/*!******************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/multichecktreemenu/MultiCheckTreeMenu.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _MCTMPropHandlers = _interopRequireDefault(__webpack_require__(/*! ./MCTMPropHandlers */ \"./node_modules/absol-acomp/js/multichecktreemenu/MCTMPropHandlers.js\"));\n\nvar _MMCTMBoxController = _interopRequireDefault(__webpack_require__(/*! ./MMCTMBoxController */ \"./node_modules/absol-acomp/js/multichecktreemenu/MMCTMBoxController.js\"));\n\nvar _MCheckTreeBox = _interopRequireDefault(__webpack_require__(/*! ../checktreebox/MCheckTreeBox */ \"./node_modules/absol-acomp/js/checktreebox/MCheckTreeBox.js\"));\n\nvar _MCTMTokenController = _interopRequireDefault(__webpack_require__(/*! ./MCTMTokenController */ \"./node_modules/absol-acomp/js/multichecktreemenu/MCTMTokenController.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction MultiCheckTreeMenu() {\n  this.$box = (0, _ACore._)({\n    tag: this.classes.Box\n  });\n  this.$itemCtn = (0, _ACore.$)('.as-multi-select-menu-item-ctn', this);\n  this.boxCtrl = new _MMCTMBoxController[\"default\"](this);\n  this.tokenCtrl = new _MCTMTokenController[\"default\"](this);\n}\n\nMultiCheckTreeMenu.tag = 'MultiCheckTreeMenu'.toLowerCase();\nMultiCheckTreeMenu.prototype.classes = {\n  Box: _MCheckTreeBox[\"default\"]\n};\n\nMultiCheckTreeMenu.render = function () {\n  return (0, _ACore._)({\n    \"class\": ['as-multi-select-menu', 'as-multi-check-tree-menu'],\n    extendEvent: ['change'],\n    attr: {\n      tabindex: '1'\n    },\n    child: [{\n      \"class\": ['as-multi-select-menu-item-ctn', 'as-bscroller']\n    }, {\n      tag: 'button',\n      \"class\": 'as-multi-select-menu-toggle-btn',\n      child: 'dropdown-ico'\n    }, 'attachhook']\n  });\n};\n\nMultiCheckTreeMenu.prototype.notifyChange = function () {\n  this.emit('change', {\n    type: 'change',\n    target: this\n  }, this);\n};\n\nMultiCheckTreeMenu.property = _MCTMPropHandlers[\"default\"];\n\n_ACore[\"default\"].install(MultiCheckTreeMenu);\n\nvar _default = MultiCheckTreeMenu;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/multichecktreemenu/MultiCheckTreeMenu.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/numberinput/NITextController.js":
/*!*********************************************************************!*\
  !*** ./node_modules/absol-acomp/js/numberinput/NITextController.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _keyboard = __webpack_require__(/*! absol/src/Input/keyboard */ \"./node_modules/absol/src/Input/keyboard.js\");\n\nvar _Text = __webpack_require__(/*! absol/src/HTML5/Text */ \"./node_modules/absol/src/HTML5/Text.js\");\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _ResizeSystem = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/ResizeSystem */ \"./node_modules/absol/src/HTML5/ResizeSystem.js\"));\n\nvar _noop = _interopRequireDefault(__webpack_require__(/*! absol/src/Code/noop */ \"./node_modules/absol/src/Code/noop.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n *\r\n * @param {NumberInput} elt\r\n * @constructor\r\n */\nfunction NITextController(elt) {\n  var _this = this;\n\n  this.elt = elt;\n  /***\r\n   *\r\n   * @type {HTMLInputElement|AElement}\r\n   */\n\n  this.$input = this.elt.$input;\n  Object.keys(NITextController.prototype).forEach(function (key) {\n    if (key.startsWith('on')) _this[key] = _this[key].bind(_this);\n  });\n  this.elt.$input.on('keydown', this.onKeyDown).on('paste', this.onKeyDown).on('blur', this.onBlur);\n}\n\nNITextController.prototype.estimateWidthBy = function (text) {\n  if (this.elt.hasClass('as-pressing')) return;\n  var bound = this.elt.getBoundingClientRect();\n  var width = (0, _Text.measureText)(text, this.$input.getComputedStyleValue('font')).width;\n  this.elt.addStyle('--text-width', width + 'px');\n  var newBound = this.elt.getBoundingClientRect();\n  if (newBound.width !== bound.width) _ResizeSystem[\"default\"].requestUpdateUpSignal(this.elt, true);\n};\n\nNITextController.prototype.flushTextToValue = function () {\n  var thousandsSeparator = this.elt.thousandsSeparator || '';\n  var decimalSeparator = this.elt.decimalSeparator;\n  var text = this.$input.value;\n  var floatText = text.split(thousandsSeparator).join('').split(decimalSeparator).join('.');\n  this.elt._value = parseFloat(floatText);\n  if (!(0, _utils.isRealNumber)(this.elt._value)) this.elt._value = null;\n};\n\nNITextController.prototype.flushValueToText = function () {\n  var formatter;\n  var opt = Object.assign({}, this.elt._format);\n  var value = this.elt.value;\n  var text, parts;\n\n  if (value === null) {\n    text = '';\n  } else if (opt.locales === 'none') {\n    if (opt.maximumFractionDigits === 20) {\n      text = value + '';\n    } else if (opt.maximumFractionDigits === opt.minimumIntegerDigits) {\n      text = value.toFixed(opt.maximumFractionDigits);\n    } else {\n      text = value + '';\n      parts = text.split('.');\n      parts[1] = parts[1] || '';\n\n      if (parts[1].length < opt.minimumIntegerDigits) {\n        text = value.toFixed(opt.minimumIntegerDigits);\n      }\n    }\n  } else {\n    formatter = new Intl.NumberFormat(this.elt._format.locales, opt);\n    text = formatter.format(value);\n  }\n\n  this.$input.value = text;\n  this.estimateWidthBy(text);\n};\n\nNITextController.prototype.reformat = function () {\n  var thousandsSeparator = this.elt.thousandsSeparator || '';\n  var decimalSeparator = this.elt.decimalSeparator;\n  var caretPos = this.$input.selectionEnd;\n  var value = this.$input.value;\n  var parts = value.split(decimalSeparator);\n  var caretWTSPos = value.substring(0, caretPos).split(thousandsSeparator).join('').length;\n  parts[0] = parts[0].split('').filter(function (x) {\n    return x.match(/[0-9\\-]/);\n  }).reduce(function (ac, c, i, arr) {\n    ac += c;\n\n    if (i + 1 < arr.length && (arr.length - i) % 3 === 1 && arr[i] !== '-') {\n      ac += thousandsSeparator;\n    }\n\n    return ac;\n  }, '');\n  if (parts[1]) parts[1] = parts[1].split('').filter(function (x) {\n    return x.match(/[0-9]/);\n  }).join('');\n  var newValue = parts.join(decimalSeparator);\n  var newCaretPos = 0;\n  var counter = 0;\n\n  for (newCaretPos = 0; newCaretPos < newValue.length && counter < caretWTSPos; ++newCaretPos) {\n    if (newValue[newCaretPos].match(/[0-9\\-]/) || newValue[newCaretPos] === decimalSeparator) {\n      counter++;\n    }\n  }\n\n  this.$input.value = newValue;\n  this.$input.setSelectionRange(newCaretPos, newCaretPos);\n  this.estimateWidthBy(newValue);\n};\n\nNITextController.prototype.onBlur = function () {\n  this.flushValueToText();\n  this.elt.notifyChanged({\n    by: 'blur'\n  });\n};\n/***\r\n * @param {KeyboardEvent|ClipboardEvent|{}} event\r\n * @param {boolean=} event\r\n */\n\n\nNITextController.prototype.onKeyDown = function (event, dontInsert) {\n  var _this2 = this;\n\n  var key = event.type === 'keydown' ? (0, _keyboard.keyboardEventToKeyBindingIdent)(event) : '';\n\n  if (key.length === 1 && !key.match(/[0-9.,\\-]/) || key.match(/^shift-.$/)) {\n    event.preventDefault();\n    return;\n  }\n\n  var thousandsSeparator = this.elt.thousandsSeparator;\n  var decimalSeparator = this.elt.decimalSeparator;\n  var value = this.$input.value;\n  var sStart = this.$input.selectionStart;\n  var sEnd = this.$input.selectionEnd;\n  var sDir = this.$input.selectionDirection;\n  var onKeys = {};\n\n  onKeys.unidentified = function () {\n    var oldText = _this2.$input.value;\n    setTimeout(function () {\n      var newText = _this2.$input.value;\n      if (oldText === newText) return;\n      var key = newText[sStart];\n      var fakeEvent = {\n        type: 'keydown',\n        preventDefault: _noop[\"default\"],\n        key: key\n      };\n\n      if (key.match(/^[0-9.]$/)) {\n        _this2.onKeyDown(fakeEvent, true);\n      } else {\n        _this2.$input.value = oldText;\n\n        _this2.$input.setSelectionRange(sStart, sStart);\n\n        _this2.onKeyDown(fakeEvent);\n      }\n    }, 10);\n  };\n\n  onKeys.paste = function () {\n    var clipboardData = event.clipboardData || window.clipboardData;\n    var pastedData = clipboardData.getData('Text');\n    var hasSeparator = value.indexOf(decimalSeparator) >= 0;\n    pastedData = pastedData.split('').filter(function (c) {\n      if (c.match(/[0-9]/)) return true;\n\n      if (!hasSeparator && c === hasSeparator) {\n        hasSeparator = true;\n        return true;\n      }\n    }).join('');\n    if (_this2.elt.readOnly) return;\n\n    if (!dontInsert) {\n      _this2.$input.value = value.substring(0, sStart) + pastedData + value.substring(sEnd);\n\n      _this2.$input.setSelectionRange(sStart + pastedData.length, sStart + pastedData.length);\n    }\n\n    _this2.reformat();\n\n    _this2.flushTextToValue();\n  };\n\n  onKeys.arrowleft = function () {\n    if (sStart === sEnd) {\n      if (value[sStart - 2] === thousandsSeparator) {\n        _this2.$input.setSelectionRange(sStart - 2, sStart - 2);\n      } else if (sStart > 0) {\n        _this2.$input.setSelectionRange(sStart - 1, sStart - 1);\n      }\n    } else {\n      _this2.$input.setSelectionRange(sStart, sStart);\n    }\n  };\n\n  onKeys['shift-arrowleft'] = function () {\n    var newSStart;\n    var newSEnd;\n\n    if (sDir === 'backward') {\n      newSStart = sEnd;\n      newSEnd = sStart - 1;\n    } else {\n      newSStart = sStart;\n      newSEnd = sEnd - 1;\n    }\n\n    if (value[newSEnd - 1] === thousandsSeparator) newSEnd--;\n    newSEnd = Math.max(0, newSEnd);\n\n    if (newSStart <= newSEnd) {\n      _this2.$input.setSelectionRange(newSStart, newSEnd, \"forward\");\n    } else {\n      _this2.$input.setSelectionRange(newSEnd, newSStart, \"backward\");\n    }\n  };\n\n  onKeys.arrowright = function () {\n    if (sStart === sEnd) {\n      if (value[sStart] === thousandsSeparator) {\n        _this2.$input.setSelectionRange(sStart + 2, sStart + 2);\n      } else if (sStart < value.length) {\n        _this2.$input.setSelectionRange(sStart + 1, sStart + 1);\n      }\n    } else {\n      _this2.$input.setSelectionRange(sStart, sStart);\n    }\n  };\n\n  onKeys['shift-arrowright'] = function () {\n    var newSStart;\n    var newSEnd;\n\n    if (sDir === 'backward') {\n      newSStart = sEnd;\n      newSEnd = sStart + 1;\n    } else {\n      newSStart = sStart;\n      newSEnd = sEnd + 1;\n    }\n\n    if (value[newSEnd - 1] === thousandsSeparator) newSEnd++;\n    newSEnd = Math.min(value.length, newSEnd);\n\n    if (newSStart <= newSEnd) {\n      _this2.$input.setSelectionRange(newSStart, newSEnd, \"forward\");\n    } else {\n      _this2.$input.setSelectionRange(newSEnd, newSStart, \"backward\");\n    }\n  };\n\n  onKeys.number = function () {\n    if (_this2.elt.readOnly) return;\n\n    if (!dontInsert) {\n      _this2.$input.value = value.substring(0, sStart) + key + value.substring(sEnd);\n\n      _this2.$input.setSelectionRange(sStart + 1, sStart + 1);\n    }\n\n    _this2.reformat();\n\n    _this2.flushTextToValue();\n  };\n\n  onKeys['-'] = function () {\n    if (_this2.elt.readOnly) return;\n    if (value.indexOf('-') >= 0 || sStart > 0) return;\n    _this2.$input.value = '-' + value.substring(sEnd);\n\n    _this2.$input.setSelectionRange(1, 1);\n\n    _this2.reformat();\n\n    _this2.flushTextToValue();\n  };\n\n  onKeys.backspace = function () {\n    if (_this2.elt.readOnly) return;\n    var delStart, delEnd;\n\n    if (sStart === sEnd) {\n      if (sStart > 0) {\n        delStart = sStart - 1;\n        delEnd = sStart;\n      }\n    } else {\n      delStart = sStart;\n      delEnd = sEnd;\n    }\n\n    if (delStart === undefined || delEnd === undefined) return;\n    _this2.$input.value = value.substring(0, delStart) + value.substring(delEnd);\n\n    _this2.$input.setSelectionRange(delStart, delStart);\n\n    _this2.reformat();\n\n    _this2.flushTextToValue();\n  };\n\n  onKeys.enter = function () {\n    if (_this2.elt.readOnly) return;\n\n    _this2.flushValueToText();\n\n    _this2.$input.setSelectionRange(_this2.$input.value.length, _this2.$input.value.length);\n\n    _this2.elt.notifyChanged({\n      by: 'enter'\n    });\n  };\n\n  onKeys[\"delete\"] = function () {\n    if (_this2.elt.readOnly) return;\n    var delStart, delEnd;\n\n    if (sStart === sEnd) {\n      if (sStart < value.length) {\n        delStart = sStart;\n        delEnd = sStart + 1;\n        if (value[delStart] === thousandsSeparator) delEnd++;\n      }\n    } else {\n      delStart = sStart;\n      delEnd = sEnd;\n    }\n\n    _this2.$input.value = value.substring(0, delStart) + value.substring(delEnd);\n\n    _this2.$input.setSelectionRange(delStart, delStart);\n\n    _this2.reformat();\n\n    _this2.flushTextToValue();\n  };\n\n  onKeys.decimalSeparator = function () {\n    if (_this2.elt.readOnly) return;\n    var idx = value.indexOf(decimalSeparator);\n\n    if (idx >= 0) {\n      if (idx < sStart) {\n        _this2.$input.value = value.substring(0, sStart).replace(decimalSeparator, '') + decimalSeparator + value.substring(sEnd);\n\n        _this2.$input.setSelectionRange(sStart, sStart);\n      } else if (idx < sEnd) {\n        _this2.$input.value = value.substring(0, sStart) + decimalSeparator + value.substring(sEnd);\n\n        _this2.$input.setSelectionRange(sStart + 1, sStart + 1);\n      } else {\n        _this2.$input.value = value.substring(0, sStart) + decimalSeparator + value.substring(sEnd).replace(decimalSeparator, '');\n\n        _this2.$input.setSelectionRange(sStart + 1, sStart + 1);\n      }\n    } else {\n      _this2.$input.value = value.substring(0, sStart) + decimalSeparator + value.substring(sEnd);\n\n      _this2.$input.setSelectionRange(sStart + 1, sStart + 1);\n    }\n\n    _this2.reformat();\n\n    _this2.flushTextToValue();\n  };\n\n  if (key === 'ctrl-x') {\n    onKeys[\"delete\"]();\n  } else if (onKeys[event.type]) {\n    event.preventDefault();\n    onKeys[event.type]();\n  } else if (onKeys[key]) {\n    event.preventDefault();\n    onKeys[key]();\n  } else if (key.match(/^[0-9.]$/)) {\n    event.preventDefault();\n    onKeys.number();\n  } else if (key === decimalSeparator) {\n    event.preventDefault();\n    onKeys.decimalSeparator();\n  }\n};\n\nvar _default = NITextController;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/numberinput/NITextController.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/numberinput/NumberInput.js":
/*!****************************************************************!*\
  !*** ./node_modules/absol-acomp/js/numberinput/NumberInput.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../../css/numberinput.css */ \"./node_modules/absol-acomp/css/numberinput.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _EventEmitter = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _NITextController = _interopRequireDefault(__webpack_require__(/*! ./NITextController */ \"./node_modules/absol-acomp/js/numberinput/NITextController.js\"));\n\nvar _int = __webpack_require__(/*! absol/src/Math/int */ \"./node_modules/absol/src/Math/int.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _ACore[\"default\"]._;\nvar $ = _ACore[\"default\"].$;\n/***\r\n * @typedef NumberInputFormat\r\n * @property {string} locales\r\n * @property {string|null} decimalSeparator\r\n * @property {string|null} thousandSeparator\r\n */\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction NumberInput() {\n  var _this = this;\n\n  /***\r\n   *\r\n   * @type {HTMLInputElement|AElement}\r\n   */\n  this.$input = $('input', this); // .on('keyup', this.eventHandler.keyup)\n  // .on('paste', this.eventHandler.paste)\n  // .on('change', this.eventHandler.change);\n\n  this.$input.value = '0';\n  this._prevValue = 0; //to know whenever the value changed\n\n  this._value = 0;\n  this._max = Infinity;\n  this._min = -Infinity;\n  this._step = 1;\n  this._format = this._makeDefaultFormat();\n  this.$upBtn = $('.absol-number-input-button-up-container button', this).on('mousedown', this.eventHandler.mouseDownBtn.bind(this, 1));\n  this.$downBtn = $('.absol-number-input-button-down-container button', this).on('mousedown', this.eventHandler.mouseDownBtn.bind(this, -1));\n  this.textCtrl = new _NITextController[\"default\"](this);\n  this.$domSignal = _('attachhook').addTo(this);\n  this.$domSignal.once('attached', function () {\n    _this.textCtrl.estimateWidthBy(_this.$input.value);\n  });\n  /****\r\n   * @name min\r\n   * @type {number}\r\n   * @memberOf NumberInput#\r\n   */\n\n  /****\r\n   * @name max\r\n   * @type {number}\r\n   * @memberOf NumberInput#\r\n   */\n\n  /****\r\n   * @name value\r\n   * @type {number}\r\n   * @memberOf NumberInput#\r\n   */\n\n  /****\r\n   * @name format\r\n   * @type {NumberInputFormat}\r\n   * @memberOf NumberInput#\r\n   */\n\n  /****\r\n   * @name thousandsSeparator\r\n   * @type {string|null}\r\n   * @memberOf NumberInput#\r\n   */\n\n  /****\r\n   * @name decimalSeparator\r\n   * @type {string|null}\r\n   * @memberOf NumberInput#\r\n   */\n\n  /****\r\n   * @name readOnly\r\n   * @type {boolean}\r\n   * @memberOf NumberInput#\r\n   */\n\n  /****\r\n   * @name disabled\r\n   * @type {boolean}\r\n   * @memberOf NumberInput#\r\n   */\n}\n\nNumberInput.tag = 'NumberInput'.toLowerCase();\n\nNumberInput.render = function () {\n  return _({\n    \"class\": ['absol-number-input', 'as-must-not-null'],\n    extendEvent: ['change'],\n    child: [{\n      \"class\": 'absol-number-input-text-container',\n      child: 'input[type=\"text\"]'\n    }, {\n      \"class\": 'absol-number-input-button-up-container',\n      child: {\n        tag: 'button',\n        child: 'span.mdi.mdi-menu-up'\n      }\n    }, {\n      \"class\": 'absol-number-input-button-down-container',\n      child: {\n        tag: 'button',\n        child: 'span.mdi.mdi-menu-down'\n      }\n    }]\n  });\n};\n\nNumberInput.prototype._makeDefaultFormat = function () {\n  var res = {\n    locales: 'vi-VN',\n    maximumFractionDigits: 20,\n    minimumFractionDigits: 0\n  };\n\n  if (window['systemconfig'] && window['systemconfig']['numberFormatLocales']) {\n    res.locales = window['systemconfig']['numberFormatLocales'];\n  }\n\n  return res;\n};\n/*****17 number********/\n\n\nNumberInput.prototype.nextStep = function () {\n  var ofs = 0;\n\n  if ((0, _utils.isRealNumber)(this.min)) {\n    ofs = this.min;\n  }\n\n  var idx = (0, _utils.nearFloor)((this.value - ofs) / this._step, 0.01);\n  this._value = Math.min(this._step * (idx + 1) + ofs, this.max);\n  this.textCtrl.flushValueToText();\n};\n\nNumberInput.prototype.prevStep = function () {\n  var ofs = 0;\n\n  if ((0, _utils.isRealNumber)(this.min)) {\n    ofs = this.min;\n  }\n\n  var idx = (0, _utils.nearFloor)((this.value - ofs) / this._step, 0.01);\n  this._value = Math.max(this._step * (idx - 1) + ofs, this.min);\n  this.textCtrl.flushValueToText();\n};\n\nNumberInput.eventHandler = {};\n\nNumberInput.eventHandler.mouseDownBtn = function (dir, event) {\n  var _this2 = this;\n\n  if (_EventEmitter[\"default\"].isMouseRight(event)) return;\n  var self = this;\n  var pressing = true;\n  var timeout = -1;\n  var i = 0;\n  this.addClass('as-pressing');\n\n  var tick = function tick() {\n    if (pressing) {\n      if (i === 0 || i >= 4) {\n        if (dir > 0) _this2.nextStep();else _this2.prevStep();\n\n        if (i === 0) {\n          _this2.notifyChanged({\n            by: 'press_button'\n          });\n        } else {\n          _this2.notifyChanged({\n            by: 'long_press_button'\n          });\n        }\n      }\n\n      ++i;\n      self.__pressingUpTimeout__ = setTimeout(tick, 100);\n    }\n  };\n\n  var finish = function finish(event) {\n    pressing = false;\n\n    _this2.removeClass('as-pressing');\n\n    if (timeout >= 0) {\n      clearTimeout(timeout);\n      timeout = -1;\n    }\n\n    document.removeEventListener('mouseup', finish);\n    document.removeEventListener('mouseleave', finish);\n\n    if (event.type === 'mouseup') {\n      _this2.$input.focus();\n    }\n\n    _this2.notifyChanged({\n      originEvent: event,\n      by: 'press_button'\n    });\n\n    _this2.textCtrl.estimateWidthBy(_this2.$input.value);\n  };\n\n  document.addEventListener('mouseup', finish);\n  document.addEventListener('mouseleave', finish);\n  tick();\n};\n\nNumberInput.prototype.notifyChanged = function (option) {\n  option = option || {};\n  var value = this.value;\n\n  if (this._prevValue !== value) {\n    this.emit('change', Object.assign({\n      target: this,\n      value: value,\n      previousValue: this._prevValue\n    }, option || {}), this);\n    this._prevValue = value;\n    this._prevBy = option.by;\n  }\n};\n\nNumberInput.property = {};\nNumberInput.property.value = {\n  set: function set(value) {\n    if (typeof value === \"string\") value = parseFloat(value);\n    if (typeof value != 'number' || isNaN(value)) value = null;\n    this._value = value;\n    this._prevValue = this.value;\n    this.textCtrl.flushValueToText();\n  },\n  get: function get() {\n    var value = this._value;\n\n    if (value === null) {\n      if (this.notNull) {\n        value = 0;\n      } else {\n        return null;\n      }\n    }\n\n    value = Math.min(this.max, Math.max(value, this.min));\n\n    if (this._format.maximumFractionDigits === 0) {\n      return Math.round(value);\n    }\n\n    if (this._format.maximumFractionDigits < 20) return (0, _int.numberAutoFixed)(value, this._format.maximumFractionDigits);\n    return value;\n  }\n};\nNumberInput.property.step = {\n  set: function set(value) {\n    if (!(0, _utils.isRealNumber)(value)) value = 1;\n    if (value === 0) value = 1;\n    value = Math.abs(value);\n    this._step = value;\n  },\n  get: function get() {\n    return this._step;\n  }\n};\nNumberInput.property.max = {\n  set: function set(value) {\n    if (!(0, _utils.isRealNumber)(value)) {\n      value = Infinity;\n    }\n\n    this._max = value;\n    this._prevValue = this.value;\n    this.textCtrl.flushValueToText();\n  },\n  get: function get() {\n    return Math.max(this._max, this._min);\n  }\n};\nNumberInput.property.min = {\n  set: function set(value) {\n    if (!(0, _utils.isRealNumber)(value)) {\n      value = -Infinity;\n    }\n\n    this._min = value;\n    this._prevValue = this.value;\n    this.textCtrl.flushValueToText();\n  },\n  get: function get() {\n    return Math.min(this._min, this._max);\n  }\n};\nNumberInput.prototype.locales2Format = {\n  'vi-VN': {\n    decimalSeparator: ',',\n    thousandsSeparator: '.'\n  },\n  'en-US': {\n    decimalSeparator: '.',\n    thousandsSeparator: ','\n  },\n  'none': {\n    decimalSeparator: '.',\n    thousandsSeparator: ''\n  }\n};\nNumberInput.property.decimalSeparator = {\n  get: function get() {\n    var lF = this.locales2Format[this._format.locales];\n    if (lF) return lF.decimalSeparator;\n    return '.';\n  },\n  set: function set() {}\n};\nNumberInput.property.thousandsSeparator = {\n  get: function get() {\n    var lF = this.locales2Format[this._format.locales];\n    if (lF) return lF.thousandsSeparator;\n    return null;\n  },\n  set: function set() {}\n};\nNumberInput.property.disabled = {\n  set: function set(value) {\n    this.$input.disabled = !!value;\n    this.$upBtn.disabled = !!value;\n    this.$downBtn.disabled = !!value;\n    if (value) this.addClass('absol-disabled');else this.removeClass('absol-disabled');\n  },\n  get: function get() {\n    return this.$input.disabled;\n  }\n};\nNumberInput.property.readOnly = {\n  set: function set(value) {\n    this.$input.readOnly = !!value;\n    if (value) this.addClass('as-read-only');else this.removeClass('as-read-only');\n  },\n  get: function get() {\n    return this.$input.readOnly;\n  }\n};\nNumberInput.property.format = {\n  /***\r\n   * @this NumberInput\r\n   * @param value\r\n   * @this NumberInput\r\n   */\n  set: function set(value) {\n    if (value in this.locales2Format) {\n      this._format = {\n        locales: value,\n        maximumFractionDigits: this._format.maximumFractionDigits,\n        minimumFractionDigits: this._format.minimumFractionDigits\n      };\n    } else if (!value) {\n      this._format = this._makeDefaultFormat();\n    } else {\n      this._format = Object.assign(this._makeDefaultFormat(), value);\n    } // console.log(this._format)\n\n\n    this.textCtrl.flushValueToText();\n  },\n  get: function get() {\n    return this._format;\n  }\n};\nNumberInput.property.floatFixed = {\n  set: function set(value) {\n    if ((0, _utils.isNaturalNumber)(value) && value >= 0 && value < 20) {\n      this._format.maximumFractionDigits = Math.floor(value);\n      this._format.minimumFractionDigits = Math.floor(value);\n    } else {\n      this._format.maximumFractionDigits = 20;\n      delete this._format.minimumFractionDigits;\n    }\n\n    this.textCtrl.flushValueToText();\n  },\n  get: function get() {\n    if (this._format.maximumFractionDigits === 20) return null;\n    return this._format.maximumFractionDigits;\n  }\n};\nNumberInput.property.notNull = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-must-not-null');\n    } else {\n      this.removeClass('as-must-not-null');\n    }\n\n    this._prevValue = this.value;\n    this.textCtrl.flushValueToText();\n  },\n  get: function get() {\n    return this.hasClass('as-must-not-null');\n  }\n};\n\n_ACore[\"default\"].install('NumberInput'.toLowerCase(), NumberInput);\n\nvar _default = NumberInput;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/numberinput/NumberInput.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/objectmergetool/ObjectMergeTool.js":
/*!************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/objectmergetool/ObjectMergeTool.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../../css/objectmergetool.css */ \"./node_modules/absol-acomp/css/objectmergetool.css\");\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _OMTBaseType = _interopRequireDefault(__webpack_require__(/*! ./type/OMTBaseType */ \"./node_modules/absol-acomp/js/objectmergetool/type/OMTBaseType.js\"));\n\n__webpack_require__(/*! ./type/OMTStruct */ \"./node_modules/absol-acomp/js/objectmergetool/type/OMTStruct.js\");\n\n__webpack_require__(/*! ./type/OMTString */ \"./node_modules/absol-acomp/js/objectmergetool/type/OMTString.js\");\n\n__webpack_require__(/*! ./type/OMTImage */ \"./node_modules/absol-acomp/js/objectmergetool/type/OMTImage.js\");\n\n__webpack_require__(/*! ./type/OMTEnum */ \"./node_modules/absol-acomp/js/objectmergetool/type/OMTEnum.js\");\n\n__webpack_require__(/*! ./type/OMTArray */ \"./node_modules/absol-acomp/js/objectmergetool/type/OMTArray.js\");\n\n__webpack_require__(/*! ./type/OMTEnumSet */ \"./node_modules/absol-acomp/js/objectmergetool/type/OMTEnumSet.js\");\n\n__webpack_require__(/*! ./type/OMTFile */ \"./node_modules/absol-acomp/js/objectmergetool/type/OMTFile.js\");\n\n__webpack_require__(/*! ./type/OMTFileArray */ \"./node_modules/absol-acomp/js/objectmergetool/type/OMTFileArray.js\");\n\n__webpack_require__(/*! ./type/OMTColor */ \"./node_modules/absol-acomp/js/objectmergetool/type/OMTColor.js\");\n\n__webpack_require__(/*! ./type/OMTBool */ \"./node_modules/absol-acomp/js/objectmergetool/type/OMTBool.js\");\n\n__webpack_require__(/*! ./type/OMTHtml */ \"./node_modules/absol-acomp/js/objectmergetool/type/OMTHtml.js\");\n\n__webpack_require__(/*! ./type/OMDateTime */ \"./node_modules/absol-acomp/js/objectmergetool/type/OMDateTime.js\");\n\n__webpack_require__(/*! ./type/OMDate */ \"./node_modules/absol-acomp/js/objectmergetool/type/OMDate.js\");\n\n__webpack_require__(/*! ./type/OMTEnumOfPair */ \"./node_modules/absol-acomp/js/objectmergetool/type/OMTEnumOfPair.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction ObjectMergeTool() {\n  this._descriptors = null;\n  this._objects = null;\n  this.root = null;\n  this.$body = (0, _ACore.$)('.as-omt-body', this).on('mouseover', this.eventHandler.mouseOverNode);\n  this.hoveringNode = null;\n  /**\r\n   * @type {Object[]}\r\n   * @memberOf ObjectMergeTool#\r\n   * @name objects\r\n   */\n\n  /**\r\n   * @type {Object}\r\n   * @memberOf ObjectMergeTool#\r\n   * @name descriptors\r\n   */\n}\n\nObjectMergeTool.tag = 'ObjectMergeTool'.toLowerCase();\n\nObjectMergeTool.render = function () {\n  return (0, _ACore._)({\n    \"class\": 'as-omt',\n    extendEvent: ['change'],\n    child: [{\n      \"class\": 'as-omt-body'\n    }]\n  });\n};\n\nObjectMergeTool.prototype._tryFlushData = function () {\n  if (this.root && this.objects && this.objects.length > 0) {\n    this.root.assign(this.objects[0]);\n  }\n};\n\nObjectMergeTool.prototype._findNode = function (targetElt) {\n  while (targetElt && targetElt !== this) {\n    if (targetElt.omtNode) return targetElt.omtNode;\n    targetElt = targetElt.parentElement;\n  }\n\n  return null;\n};\n\nObjectMergeTool.prototype.notifyChange = function () {\n  this.emit('change', {\n    type: 'change',\n    target: this\n  }, this);\n};\n\nObjectMergeTool.property = {};\nObjectMergeTool.property.descriptor = {\n  set: function set(value) {\n    this._descriptor = value || {};\n    this.$body.clearChild();\n    this.root = _OMTBaseType[\"default\"].make(this, null, this._descriptor);\n    this.$body.addChild(this.root.elt);\n\n    this._tryFlushData();\n  },\n  get: function get() {\n    return this._descriptor;\n  }\n};\nObjectMergeTool.property.objects = {\n  set: function set(value) {\n    this._objects = value || [];\n\n    this._tryFlushData();\n  },\n  get: function get() {\n    return this._objects;\n  }\n};\nObjectMergeTool.property.data = {\n  get: function get() {\n    if (this.root) {\n      return this.root[\"export\"]();\n    }\n\n    if (this._objects && this.objects.length > 0) return this._objects[0];\n    return null;\n  }\n};\n/***\r\n * @type {{}}\r\n * @memberOf ObjectMergeTool#\r\n */\n\nObjectMergeTool.eventHandler = {};\n/***\r\n * @this ObjectMergeTool\r\n * @param {MouseEvent} event\r\n */\n\nObjectMergeTool.eventHandler.mouseOverNode = function (event) {\n  var node = this._findNode(event.target);\n\n  if (this.hoveringNode === node) return;\n\n  if (this.hoveringNode) {\n    this.hoveringNode.elt.removeClass('as-hover');\n  }\n\n  this.hoveringNode = node;\n\n  if (this.hoveringNode) {\n    this.hoveringNode.elt.addClass('as-hover');\n  }\n};\n\n_ACore[\"default\"].install(ObjectMergeTool);\n\nvar _default = ObjectMergeTool;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/objectmergetool/ObjectMergeTool.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/objectmergetool/dialog/OMTArrayMergeDialog.js":
/*!***********************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/objectmergetool/dialog/OMTArrayMergeDialog.js ***!
  \***********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Fragment = _interopRequireDefault(__webpack_require__(/*! absol/src/AppPattern/Fragment */ \"./node_modules/absol/src/AppPattern/Fragment.js\"));\n\nvar _ACore = __webpack_require__(/*! ../../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _MessageDialog = _interopRequireDefault(__webpack_require__(/*! ../../MessageDialog */ \"./node_modules/absol-acomp/js/MessageDialog.js\"));\n\nvar _Modal = _interopRequireDefault(__webpack_require__(/*! ../../Modal */ \"./node_modules/absol-acomp/js/Modal.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _MultiCheckTreeMenu = _interopRequireDefault(__webpack_require__(/*! ../../MultiCheckTreeMenu */ \"./node_modules/absol-acomp/js/MultiCheckTreeMenu.js\"));\n\nvar _CheckBoxInput = _interopRequireDefault(__webpack_require__(/*! ../../CheckBoxInput */ \"./node_modules/absol-acomp/js/CheckBoxInput.js\"));\n\nvar _Array = __webpack_require__(/*! absol/src/DataStructure/Array */ \"./node_modules/absol/src/DataStructure/Array.js\");\n\nvar _RadioButton = _interopRequireDefault(__webpack_require__(/*! ../../RadioButton */ \"./node_modules/absol-acomp/js/RadioButton.js\"));\n\nvar _OMTSelectOptionsDialog = _interopRequireDefault(__webpack_require__(/*! ./OMTSelectOptionsDialog */ \"./node_modules/absol-acomp/js/objectmergetool/dialog/OMTSelectOptionsDialog.js\"));\n\nvar _stringGenerate = __webpack_require__(/*! absol/src/String/stringGenerate */ \"./node_modules/absol/src/String/stringGenerate.js\");\n\nvar _CheckboxButton = _interopRequireDefault(__webpack_require__(/*! ../../CheckboxButton */ \"./node_modules/absol-acomp/js/CheckboxButton.js\"));\n\nvar _stringUtils = __webpack_require__(/*! absol/src/String/stringUtils */ \"./node_modules/absol/src/String/stringUtils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction hashArrayOf(node) {\n  var res = (node.children || []).map(function (child) {\n    return child.getHash();\n  });\n  res.sort(function (a, b) {\n    return a - b;\n  });\n  return (0, _Array.arrayUnique)(res);\n}\n/***\r\n * @extends Fragment\r\n * @param {OMTArray} node\r\n * @constructor\r\n */\n\n\nfunction OMTArrayMergeDialog(node) {\n  _Fragment[\"default\"].call(this);\n\n  this.node = node;\n  this.calc();\n  this.getView();\n  this.start();\n}\n\n_OOP[\"default\"].mixClass(OMTArrayMergeDialog, _Fragment[\"default\"]);\n\nOMTArrayMergeDialog.prototype.calc = function () {\n  this.options = this.node.getSelectOptions();\n  this.curHash = hashArrayOf(this.node);\n  this.selectedNodes = {};\n};\n\nOMTArrayMergeDialog.prototype.onStart = function () {\n  this.$modal.addTo(document.body);\n};\n\nOMTArrayMergeDialog.prototype.onStop = function () {\n  this.$modal.remove();\n};\n\nOMTArrayMergeDialog.prototype.assignResult = function () {\n  var dict = {};\n  var itemArr = [];\n  var hashArr = [];\n  var node;\n\n  for (var key in this.selectedNodes) {\n    node = this.selectedNodes[key];\n\n    if (node.children) {\n      node.children.forEach(function (cr) {\n        var hash = cr.getHash();\n        if (dict[hash]) return;\n        dict[hash] = true;\n        itemArr.push(cr[\"export\"]());\n        hashArr.push(hash);\n      });\n    }\n  }\n\n  if (this.curHash === hashArr && (0, _Array.arrayUnique)(this.curHash.concat(hashArr)).length === this.curHash.length) return;\n  this.node.assign(itemArr);\n  this.node.updateRaw();\n  this.node.notifyChange();\n};\n\nOMTArrayMergeDialog.prototype._makeOptionRow = function (opt, i, dict) {\n  var self = this;\n  var descriptor = Object.assign({}, this.node.descriptor);\n  var clazz = this.node.constructor;\n  var node = new clazz(this.node.tool, this.node.parent, descriptor);\n  node.assign(opt);\n  var nodeHash = (0, _stringUtils.stringHashCode)(hashArrayOf(node).join(','));\n  if (dict[nodeHash]) return null;\n  dict[nodeHash] = node;\n  var checked = (0, _Array.arrayUnique)(this.curHash.concat(hashArrayOf(node))).length === this.curHash.length;\n  if (checked) this.selectedNodes[nodeHash] = node;\n  var radio = (0, _ACore._)({\n    tag: _CheckBoxInput[\"default\"].tag,\n    style: {\n      marginRight: '10px'\n    },\n    props: {\n      checked: checked\n    },\n    on: {\n      change: function change() {\n        if (radio.checked) {\n          self.selectedNodes[nodeHash] = node;\n        } else {\n          delete self.selectedNodes[nodeHash];\n        }\n\n        self.$view.$actionBtns[1].disabled = Object.keys(self.selectedNodes).length === 0;\n      }\n    }\n  });\n  return (0, _ACore._)({\n    \"class\": 'as-omt-option-row',\n    child: [radio, node.elt]\n  });\n};\n\nOMTArrayMergeDialog.prototype.createView = function () {\n  var _this = this;\n\n  var self = this;\n  /***\r\n   * @type MessageDialog\r\n   */\n\n  this.$view = (0, _ACore._)({\n    tag: _MessageDialog[\"default\"].tag,\n    \"class\": 'as-omt-dialog',\n    props: {\n      dialogTitle: {\n        mlKey: 'txt_option'\n      },\n      dialogActions: [{\n        text: 'OK',\n        name: 'ok'\n      }, {\n        text: 'Cancel',\n        name: 'cancel'\n      }]\n    },\n    on: {\n      action: function action(event) {\n        self.stop();\n        var action = event.action;\n        if (action.name === 'cancel') return;\n\n        if (action.name === 'ok') {\n          self.assignResult();\n        }\n      }\n    }\n  });\n  var dict = {};\n  var rows = this.options.map(function (opt, i) {\n    return _this._makeOptionRow(opt, i, dict);\n  }).filter(function (x) {\n    return !!x;\n  });\n  this.$view.addChild(rows);\n  this.$modal = (0, _ACore._)({\n    tag: _Modal[\"default\"].tag,\n    style: {\n      zIndex: 1000000\n    },\n    child: this.$view\n  });\n};\n\nvar _default = OMTArrayMergeDialog;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/objectmergetool/dialog/OMTArrayMergeDialog.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/objectmergetool/dialog/OMTEnumSetMergeDialog.js":
/*!*************************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/objectmergetool/dialog/OMTEnumSetMergeDialog.js ***!
  \*************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Fragment = _interopRequireDefault(__webpack_require__(/*! absol/src/AppPattern/Fragment */ \"./node_modules/absol/src/AppPattern/Fragment.js\"));\n\nvar _ACore = __webpack_require__(/*! ../../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _MessageDialog = _interopRequireDefault(__webpack_require__(/*! ../../MessageDialog */ \"./node_modules/absol-acomp/js/MessageDialog.js\"));\n\nvar _Modal = _interopRequireDefault(__webpack_require__(/*! ../../Modal */ \"./node_modules/absol-acomp/js/Modal.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _MultiCheckTreeMenu = _interopRequireDefault(__webpack_require__(/*! ../../MultiCheckTreeMenu */ \"./node_modules/absol-acomp/js/MultiCheckTreeMenu.js\"));\n\nvar _CheckBoxInput = _interopRequireDefault(__webpack_require__(/*! ../../CheckBoxInput */ \"./node_modules/absol-acomp/js/CheckBoxInput.js\"));\n\nvar _Array = __webpack_require__(/*! absol/src/DataStructure/Array */ \"./node_modules/absol/src/DataStructure/Array.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends Fragment\r\n * @param {OMTEnumSet} node\r\n * @constructor\r\n */\nfunction OMTEnumSetMergeDialog(node) {\n  _Fragment[\"default\"].call(this);\n\n  this.node = node;\n  this.calc();\n  this.getView();\n  this.start();\n}\n\n_OOP[\"default\"].mixClass(OMTEnumSetMergeDialog, _Fragment[\"default\"]);\n\nOMTEnumSetMergeDialog.prototype.calc = function () {\n  this.currentValues = this.node[\"export\"]();\n  this.descriptor = this.node.descriptor;\n  this.selectOptions = this.node.getSelectOptions();\n  this.selected = {};\n};\n\nOMTEnumSetMergeDialog.prototype.onStart = function () {\n  this.$modal.addTo(document.body);\n};\n\nOMTEnumSetMergeDialog.prototype.onStop = function () {\n  this.$modal.remove();\n};\n\nOMTEnumSetMergeDialog.prototype.assignResult = function () {\n  var selectedValues = this._getCurrent();\n\n  if (selectedValues.length > 0) {\n    this.node.assign((0, _Array.arrayUnique)(this.currentValues.concat(selectedValues)));\n    this.node.notifyChange();\n  }\n};\n\nOMTEnumSetMergeDialog.prototype._getCurrent = function () {\n  var _this = this;\n\n  var selectedValues = this.selectOptions.reduce(function (ac, cr, i) {\n    if (_this.selected[i]) ac = ac.concat(cr);\n    return ac;\n  }, []);\n  selectedValues = (0, _Array.arrayUnique)(selectedValues);\n  return selectedValues;\n};\n\nOMTEnumSetMergeDialog.prototype._makeOptionRow = function (opt, i) {\n  var self = this;\n  var checked = (0, _Array.arrayUnique)(this.currentValues.concat(opt)).length === (0, _Array.arrayUnique)(this.currentValues).length;\n  this.selected[i] = checked;\n  var checkbox = (0, _ACore._)({\n    tag: _CheckBoxInput[\"default\"].tag,\n    style: {\n      marginRight: '10px'\n    },\n    props: {\n      checked: checked\n    },\n    on: {\n      change: function change() {\n        self.selected[i] = checkbox.checked;\n\n        var currentValues = self._getCurrent();\n\n        self.previewNode.assign(currentValues);\n        self.$view.$actionBtns[1].disabled = currentValues.length === 0;\n      }\n    }\n  });\n  var mSelect = (0, _ACore._)({\n    tag: _MultiCheckTreeMenu[\"default\"].tag,\n    \"class\": 'as-border-none',\n    props: {\n      pendingValues: opt,\n      readOnly: true\n    }\n  });\n  return (0, _ACore._)({\n    \"class\": 'as-omt-option-row',\n    child: [checkbox, mSelect]\n  });\n};\n\nOMTEnumSetMergeDialog.prototype.createView = function () {\n  var _this2 = this;\n\n  var self = this;\n  this.$optionRows = this.selectOptions.map(function (opt, i) {\n    return _this2._makeOptionRow(opt, i);\n  });\n  this.previewNode = new this.node.constructor(this.node.tool, this.node.parent, this.node.descriptor);\n  this.previewNode.assign(this.currentValues);\n  this.$view = (0, _ACore._)({\n    tag: _MessageDialog[\"default\"].tag,\n    \"class\": ['as-omt-dialog'],\n    props: {\n      dialogTitle: 'Merge',\n      dialogActions: [{\n        text: 'OK',\n        name: 'ok'\n      }, {\n        text: 'Cancel',\n        name: 'cancel'\n      }]\n    },\n    on: {\n      action: function action(event) {\n        self.stop();\n\n        if (event.action.name === 'ok') {\n          self.assignResult();\n        }\n      }\n    },\n    child: [this.previewNode, {\n      child: [{\n        \"class\": 'as-omt-field-name',\n        child: {\n          text: 'Merge From'\n        }\n      }].concat(this.$optionRows)\n    }]\n  });\n  Promise.resolve(this.descriptor.items).then(function (items) {\n    (0, _ACore.$$)(_MultiCheckTreeMenu[\"default\"].tag, _this2.$view).forEach(function (elt) {\n      elt.items = items;\n      elt.values = elt.pendingValues;\n    });\n  });\n  this.$modal = (0, _ACore._)({\n    tag: _Modal[\"default\"].tag,\n    style: {\n      zIndex: 1000000\n    },\n    child: this.$view\n  });\n};\n\nvar _default = OMTEnumSetMergeDialog;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/objectmergetool/dialog/OMTEnumSetMergeDialog.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/objectmergetool/dialog/OMTSelectOptionsDialog.js":
/*!**************************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/objectmergetool/dialog/OMTSelectOptionsDialog.js ***!
  \**************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Fragment = _interopRequireDefault(__webpack_require__(/*! absol/src/AppPattern/Fragment */ \"./node_modules/absol/src/AppPattern/Fragment.js\"));\n\nvar _ACore = __webpack_require__(/*! ../../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _MessageDialog = _interopRequireDefault(__webpack_require__(/*! ../../MessageDialog */ \"./node_modules/absol-acomp/js/MessageDialog.js\"));\n\nvar _Modal = _interopRequireDefault(__webpack_require__(/*! ../../Modal */ \"./node_modules/absol-acomp/js/Modal.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _stringGenerate = __webpack_require__(/*! absol/src/String/stringGenerate */ \"./node_modules/absol/src/String/stringGenerate.js\");\n\nvar _RadioButton = _interopRequireDefault(__webpack_require__(/*! ../../RadioButton */ \"./node_modules/absol-acomp/js/RadioButton.js\"));\n\nvar _LanguageSystem = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/LanguageSystem */ \"./node_modules/absol/src/HTML5/LanguageSystem.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends Fragment\r\n * @param {OMTBaseType} node\r\n * @constructor\r\n */\nfunction OMTSelectOptionsDialog(node) {\n  _Fragment[\"default\"].call(this);\n\n  this.node = node;\n  this.calc();\n  this.getView();\n  this.start();\n}\n\n_OOP[\"default\"].mixClass(OMTSelectOptionsDialog, _Fragment[\"default\"]);\n\nOMTSelectOptionsDialog.prototype.calc = function () {\n  this.options = this.node.getSelectOptions();\n  this.curHash = this.node.getHash();\n  this.selectedHash = this.curHash;\n  this.selectedOption = null;\n  this.ident = (0, _stringGenerate.randomIdent)(5);\n};\n\nOMTSelectOptionsDialog.prototype.onStart = function () {\n  this.$modal.addTo(document.body);\n};\n\nOMTSelectOptionsDialog.prototype.onStop = function () {\n  this.$modal.remove();\n};\n\nOMTSelectOptionsDialog.prototype.assignResult = function () {\n  if (this.curHash !== this.selectedHash) {\n    this.node.assign(this.selectedOption);\n    this.node.updateRaw();\n    this.node.notifyChange();\n  }\n};\n\nOMTSelectOptionsDialog.prototype._makeOptionRow = function (opt, i, dict) {\n  var descriptor = Object.assign({}, this.node.descriptor);\n\n  if (i < 0) {\n    descriptor.desc = '(current-mixed)';\n  }\n\n  var clazz = this.node.constructor;\n  var node = new clazz(this.node.tool, this.node.parent, descriptor);\n  node.assign(opt);\n  var nodeHash = node.getHash();\n  if (dict[nodeHash]) return null;\n  dict[nodeHash] = node;\n  var self = this;\n  var radio = (0, _ACore._)({\n    tag: _RadioButton[\"default\"].tag,\n    style: {\n      marginRight: '10px'\n    },\n    props: {\n      name: this.ident,\n      checked: nodeHash === this.curHash\n    },\n    on: {\n      change: function change() {\n        if (radio.checked) {\n          self.selectedHash = nodeHash;\n          self.selectedOption = opt;\n        }\n      }\n    }\n  });\n  return (0, _ACore._)({\n    \"class\": 'as-omt-option-row',\n    child: [radio, node.elt]\n  });\n};\n\nOMTSelectOptionsDialog.prototype.createView = function () {\n  var _this = this;\n\n  var self = this;\n  this.$view = (0, _ACore._)({\n    tag: _MessageDialog[\"default\"].tag,\n    \"class\": 'as-omt-dialog',\n    props: {\n      dialogTitle: {\n        mlKey: 'txt_option'\n      },\n      dialogActions: [{\n        text: {\n          mlKey: 'txt_ok'\n        },\n        name: 'ok'\n      }, {\n        text: {\n          mlKey: 'txt_cancel'\n        },\n        name: 'cancel'\n      }]\n    },\n    on: {\n      action: function action(event) {\n        self.stop();\n        var action = event.action;\n        if (action.name === 'cancel') return;\n\n        if (action.name === 'ok') {\n          self.assignResult();\n        }\n      }\n    }\n  });\n  var dict = {};\n  var rows = this.options.map(function (opt, i) {\n    return _this._makeOptionRow(opt, i, dict);\n  }).filter(function (x) {\n    return !!x;\n  });\n\n  if (!dict[this.curHash]) {\n    rows.unshift(this._makeOptionRow(this.node[\"export\"](), -1, dict));\n  }\n\n  this.$view.addChild(rows);\n  this.$modal = (0, _ACore._)({\n    tag: _Modal[\"default\"].tag,\n    style: {\n      zIndex: 1000000\n    },\n    child: this.$view\n  });\n};\n\nvar _default = OMTSelectOptionsDialog;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/objectmergetool/dialog/OMTSelectOptionsDialog.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/objectmergetool/type/OMDate.js":
/*!********************************************************************!*\
  !*** ./node_modules/absol-acomp/js/objectmergetool/type/OMDate.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _OMTBaseType = _interopRequireDefault(__webpack_require__(/*! ./OMTBaseType */ \"./node_modules/absol-acomp/js/objectmergetool/type/OMTBaseType.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _ACore = __webpack_require__(/*! ../../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _CheckBoxInput = _interopRequireDefault(__webpack_require__(/*! ../../CheckBoxInput */ \"./node_modules/absol-acomp/js/CheckBoxInput.js\"));\n\nvar _DateTimeInput = _interopRequireDefault(__webpack_require__(/*! ../../DateTimeInput */ \"./node_modules/absol-acomp/js/DateTimeInput.js\"));\n\nvar _DateInput = _interopRequireDefault(__webpack_require__(/*! ../../DateInput2 */ \"./node_modules/absol-acomp/js/DateInput2.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends OMTBaseType\r\n * @constructor\r\n */\nfunction OMTDate() {\n  _OMTBaseType[\"default\"].apply(this, arguments);\n}\n\n_OOP[\"default\"].mixClass(OMTDate, _OMTBaseType[\"default\"]);\n\n_OMTBaseType[\"default\"].classes.date = OMTDate;\nOMTDate.prototype.type = 'date';\n\nOMTDate.prototype.render = function () {\n  _OMTBaseType[\"default\"].prototype.render.call(this);\n\n  this.$value = (0, _ACore._)({\n    tag: _DateInput[\"default\"].tag,\n    \"class\": 'as-border-none',\n    props: {\n      readOnly: true\n    }\n  });\n  if (this.descriptor.format) this.$value.format = this.descriptor.format;\n  this.$body.addChild(this.$value);\n};\n\nOMTDate.prototype.assign = function (o) {\n  this.value = o;\n  this.$value.value = o;\n};\n\nOMTDate.prototype.getRaw = function () {\n  return {\n    child: [{\n      tag: 'span',\n      \"class\": 'as-omt-field-name',\n      child: {\n        text: (this.descriptor.displayName || this.descriptor.name || \"ROOT\") + ': '\n      }\n    }, {\n      tag: 'span',\n      child: {\n        text: this.$value.text\n      }\n    }]\n  };\n};\n\nvar _default = OMTDate;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/objectmergetool/type/OMDate.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/objectmergetool/type/OMDateTime.js":
/*!************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/objectmergetool/type/OMDateTime.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _OMTBaseType = _interopRequireDefault(__webpack_require__(/*! ./OMTBaseType */ \"./node_modules/absol-acomp/js/objectmergetool/type/OMTBaseType.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _ACore = __webpack_require__(/*! ../../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _CheckBoxInput = _interopRequireDefault(__webpack_require__(/*! ../../CheckBoxInput */ \"./node_modules/absol-acomp/js/CheckBoxInput.js\"));\n\nvar _DateTimeInput = _interopRequireDefault(__webpack_require__(/*! ../../DateTimeInput */ \"./node_modules/absol-acomp/js/DateTimeInput.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends OMTBaseType\r\n * @constructor\r\n */\nfunction OMTDateTime() {\n  _OMTBaseType[\"default\"].apply(this, arguments);\n}\n\n_OOP[\"default\"].mixClass(OMTDateTime, _OMTBaseType[\"default\"]);\n\n_OMTBaseType[\"default\"].classes.datetime = OMTDateTime;\nOMTDateTime.prototype.type = 'datetime';\n\nOMTDateTime.prototype.render = function () {\n  _OMTBaseType[\"default\"].prototype.render.call(this);\n\n  this.$value = (0, _ACore._)({\n    tag: _DateTimeInput[\"default\"].tag,\n    \"class\": 'as-border-none',\n    props: {\n      readOnly: true\n    }\n  });\n  if (this.descriptor.format) this.$value.format = this.descriptor.format;\n  this.$body.addChild(this.$value);\n};\n\nOMTDateTime.prototype.assign = function (o) {\n  this.value = o;\n  this.$value.value = o;\n};\n\nOMTDateTime.prototype.getRaw = function () {\n  return {\n    child: [{\n      tag: 'span',\n      \"class\": 'as-omt-field-name',\n      child: {\n        text: (this.descriptor.displayName || this.descriptor.name || \"ROOT\") + ': '\n      }\n    }, {\n      tag: 'span',\n      child: {\n        text: this.$value.text\n      }\n    }]\n  };\n};\n\nvar _default = OMTDateTime;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/objectmergetool/type/OMDateTime.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/objectmergetool/type/OMTArray.js":
/*!**********************************************************************!*\
  !*** ./node_modules/absol-acomp/js/objectmergetool/type/OMTArray.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _OMTBaseType = _interopRequireDefault(__webpack_require__(/*! ./OMTBaseType */ \"./node_modules/absol-acomp/js/objectmergetool/type/OMTBaseType.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _ACore = __webpack_require__(/*! ../../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _OMTArrayMergeDialog = _interopRequireDefault(__webpack_require__(/*! ../dialog/OMTArrayMergeDialog */ \"./node_modules/absol-acomp/js/objectmergetool/dialog/OMTArrayMergeDialog.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends OMTBaseType\r\n * @constructor\r\n */\nfunction OMTArray() {\n  _OMTBaseType[\"default\"].apply(this, arguments);\n\n  this.value = null;\n}\n\n_OOP[\"default\"].mixClass(OMTArray, _OMTBaseType[\"default\"]);\n\n_OMTBaseType[\"default\"].classes.array = OMTArray;\nOMTArray.prototype.commands = OMTArray.prototype.commands.concat([{\n  name: 'merge',\n  icon: 'span.mdi.mdi-set-merge',\n  title: 'Merge'\n}]);\n\nOMTArray.prototype.execCmd = function (commandName) {\n  _OMTBaseType[\"default\"].prototype.execCmd.call(this, commandName);\n\n  if (commandName === 'merge') {\n    new _OMTArrayMergeDialog[\"default\"](this);\n  }\n};\n\nOMTArray.prototype.assign = function (o) {\n  var _this = this;\n\n  this.$body.clearChild();\n  this.children = (o || []).map(function (it, i) {\n    var desc = Object.assign({\n      name: i,\n      displayName: i + 1 + ''\n    }, _this.descriptor.of);\n    if (!desc.displayName) desc.displayName = i + 1 + '';\n\n    var res = _OMTBaseType[\"default\"].make(_this.tool, _this.parent, desc);\n\n    res.assign(it);\n    return res;\n  });\n  this.$body.addChild(this.children.map(function (c) {\n    return c.elt;\n  }));\n};\n\nOMTArray.prototype[\"export\"] = function () {\n  return this.children.map(function (c) {\n    return c[\"export\"]();\n  });\n};\n\nOMTArray.prototype.getRaw = function () {\n  return {\n    child: [{\n      tag: 'span',\n      \"class\": 'as-omt-field-name',\n      child: {\n        text: (this.descriptor.displayName || this.descriptor.name || \"ROOT\") + ': '\n      }\n    }, {\n      style: {\n        paddingLeft: '25px'\n      },\n      child: this.children.map(function (child) {\n        return child.getRaw();\n      })\n    }]\n  };\n};\n\nvar _default = OMTArray;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/objectmergetool/type/OMTArray.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/objectmergetool/type/OMTBaseType.js":
/*!*************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/objectmergetool/type/OMTBaseType.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = __webpack_require__(/*! ../../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _generator = __webpack_require__(/*! absol/src/JSMaker/generator */ \"./node_modules/absol/src/JSMaker/generator.js\");\n\nvar _FlexiconButton = _interopRequireDefault(__webpack_require__(/*! ../../FlexiconButton */ \"./node_modules/absol-acomp/js/FlexiconButton.js\"));\n\nvar _Modal = _interopRequireDefault(__webpack_require__(/*! ../../Modal */ \"./node_modules/absol-acomp/js/Modal.js\"));\n\nvar _MessageDialog = _interopRequireDefault(__webpack_require__(/*! ../../MessageDialog */ \"./node_modules/absol-acomp/js/MessageDialog.js\"));\n\nvar _stringGenerate = __webpack_require__(/*! absol/src/String/stringGenerate */ \"./node_modules/absol/src/String/stringGenerate.js\");\n\nvar _RadioInput = _interopRequireDefault(__webpack_require__(/*! ../../RadioInput */ \"./node_modules/absol-acomp/js/RadioInput.js\"));\n\nvar _stringUtils = __webpack_require__(/*! absol/src/String/stringUtils */ \"./node_modules/absol/src/String/stringUtils.js\");\n\nvar _RadioButton = _interopRequireDefault(__webpack_require__(/*! ../../RadioButton */ \"./node_modules/absol-acomp/js/RadioButton.js\"));\n\nvar _OMTSelectOptionsDialog = _interopRequireDefault(__webpack_require__(/*! ../dialog/OMTSelectOptionsDialog */ \"./node_modules/absol-acomp/js/objectmergetool/dialog/OMTSelectOptionsDialog.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\r\n *\r\n * @constructor\r\n */\nfunction OMTBaseType(tool, parent, descriptor) {\n  this.tool = tool;\n  this.parent = parent;\n  this.level = parent ? parent.level + 1 : 0;\n  this.descriptor = descriptor;\n  this.render();\n  this.elt.omtNode = this;\n}\n\nOMTBaseType.prototype.type = 'base';\nOMTBaseType.prototype.commands = [{\n  name: 'select_other',\n  icon: 'span.mdi.mdi-menu-down',\n  title: 'Select'\n}];\n\nOMTBaseType.prototype.render = function () {\n  var _this = this;\n\n  var self = this;\n  var displayName = 'ROOT';\n  if (this.descriptor.displayName !== undefined) displayName = this.descriptor.displayName + '';else if (this.descriptor.name !== undefined) displayName = this.descriptor.name + '';\n  if (this.descriptor.desc) displayName += this.descriptor.desc;\n  this.elt = (0, _ACore._)({\n    \"class\": ['as-omt-field', 'as-type-' + this.type],\n    style: {\n      '--level': this.level\n    },\n    child: [{\n      \"class\": 'as-omt-field-header',\n      child: [{\n        \"class\": 'as-omt-field-name',\n        child: {\n          text: displayName\n        }\n      }]\n    }, {\n      \"class\": 'as-omt-field-body'\n    }, {\n      \"class\": 'as-omt-field-raw-ctn'\n    }, {\n      \"class\": 'as-omt-field-command-ctn',\n      child: this.commands.map(function (command) {\n        return {\n          tag: _FlexiconButton[\"default\"].tag,\n          attr: {\n            'data-command': command.name\n          },\n          props: {\n            icon: command.icon,\n            title: command.title\n          },\n          on: {\n            click: _this.execCmd.bind(_this, command.name, command)\n          }\n        };\n      })\n    }],\n    on: {\n      dblclick: function (event) {\n        var target = event.target;\n\n        while (target) {\n          if (target === this) break;\n          if (target.tagName === 'BUTTON') return;\n          target = target.parentElement;\n        }\n\n        this.execCmd('select_other');\n      }.bind(this)\n    }\n  });\n  this.$commandCtn = (0, _ACore.$)('.as-omt-field-command-ctn', this.elt);\n  this.$rawCtn = (0, _ACore.$)('.as-omt-field-raw-ctn', this.elt);\n  this.$viewModeBtn = (0, _ACore._)({\n    tag: _FlexiconButton[\"default\"].tag,\n    attr: {\n      'data-command': 'view_mode'\n    },\n    props: {\n      icon: 'span.mdi.mdi.mdi-code-braces',\n      //code-braces\n      title: 'View Raw'\n    },\n    on: {\n      click: function click() {\n        if (self.elt.hasClass('as-mode-raw')) {\n          self.elt.removeClass('as-mode-raw');\n          this.icon = 'span.mdi.mdi-code-braces';\n          this.title = 'View Raw';\n        } else {\n          self.elt.addClass('as-mode-raw');\n          this.icon = 'span.mdi.mdi-view-dashboard-edit-outline';\n          this.title = 'View Guide';\n          self.updateRaw();\n        }\n      }\n    }\n  });\n  this.$commandCtn.addChild(this.$viewModeBtn);\n  this.$body = (0, _ACore.$)('.as-omt-field-body', this.elt);\n};\n\nOMTBaseType.prototype.updateRaw = function () {\n  var rawElt = (0, _ACore._)(this.getRaw());\n  this.$rawCtn.clearChild().addChild(rawElt);\n};\n\nOMTBaseType.prototype.notifyChange = function () {\n  this.descriptor.onchange && this.descriptor.onchange.call(this, {\n    type: 'change',\n    target: this,\n    descriptor: this.descriptor\n  }, this);\n  this.tool.notifyChange();\n};\n\nOMTBaseType.prototype.getRaw = function () {\n  return {\n    child: [{\n      tag: 'span',\n      \"class\": 'as-omt-field-name',\n      child: {\n        text: (this.descriptor.displayName || this.descriptor.name || \"ROOT\") + ': '\n      }\n    }, {\n      tag: 'code',\n      child: {\n        text: (0, _generator.generateJSVariable)(this[\"export\"]())\n      }\n    }]\n  };\n};\n\nOMTBaseType.prototype.assign = function (o) {\n  this.value = o;\n  this.$body.clearChild().addChild((0, _ACore._)({\n    tag: 'code',\n    child: {\n      text: (0, _generator.generateJSVariable)(o)\n    }\n  }));\n};\n\nOMTBaseType.prototype.getHash = function () {\n  return (0, _stringUtils.stringHashCode)((0, _generator.generateJSVariable)(this[\"export\"]()));\n};\n\nOMTBaseType.prototype[\"export\"] = function () {\n  return this.value;\n};\n\nOMTBaseType.prototype.execCmd = function (commandName, command) {\n  if (commandName === 'select_other') {\n    this.userSelect();\n  }\n};\n\nOMTBaseType.prototype.getSelectOptions = function () {\n  if (!this.parent) return this.tool.objects;\n  var parentOptions = this.parent.getSelectOptions().filter(function (x) {\n    return !!x;\n  });\n  var name = this.descriptor.name;\n  return parentOptions.map(function (ot) {\n    return ot[name];\n  }).filter(function (ot) {\n    return ot !== undefined;\n  });\n};\n\nOMTBaseType.prototype.userSelect = function () {\n  new _OMTSelectOptionsDialog[\"default\"](this);\n};\n\nOMTBaseType.classes = {};\n/***\r\n *\r\n * @param tool\r\n * @param parent\r\n * @param descriptor\r\n * @returns {OMTBaseType}\r\n */\n\nOMTBaseType.make = function (tool, parent, descriptor) {\n  var clazz = OMTBaseType.classes[descriptor.type] || OMTBaseType;\n  return new clazz(tool, parent, descriptor);\n};\n\nvar _default = OMTBaseType;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/objectmergetool/type/OMTBaseType.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/objectmergetool/type/OMTBool.js":
/*!*********************************************************************!*\
  !*** ./node_modules/absol-acomp/js/objectmergetool/type/OMTBool.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _OMTBaseType = _interopRequireDefault(__webpack_require__(/*! ./OMTBaseType */ \"./node_modules/absol-acomp/js/objectmergetool/type/OMTBaseType.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _ACore = __webpack_require__(/*! ../../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _OMTFile = _interopRequireDefault(__webpack_require__(/*! ./OMTFile */ \"./node_modules/absol-acomp/js/objectmergetool/type/OMTFile.js\"));\n\nvar _Color = _interopRequireDefault(__webpack_require__(/*! absol/src/Color/Color */ \"./node_modules/absol/src/Color/Color.js\"));\n\nvar _CheckBoxInput = _interopRequireDefault(__webpack_require__(/*! ../../CheckBoxInput */ \"./node_modules/absol-acomp/js/CheckBoxInput.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends OMTBaseType\r\n * @constructor\r\n */\nfunction OMTBool() {\n  _OMTBaseType[\"default\"].apply(this, arguments);\n}\n\n_OOP[\"default\"].mixClass(OMTBool, _OMTBaseType[\"default\"]);\n\n_OMTBaseType[\"default\"].classes.bool = OMTBool;\nOMTBool.prototype.type = 'bool';\n\nOMTBool.prototype.render = function () {\n  _OMTBaseType[\"default\"].prototype.render.call(this);\n\n  this.$value = (0, _ACore._)({\n    tag: _CheckBoxInput[\"default\"],\n    props: {\n      readOnly: true\n    }\n  });\n  this.$body.addChild(this.$value);\n};\n\nOMTBool.prototype.assign = function (o) {\n  this.value = o;\n  this.$value.checked = !!o;\n};\n\nvar _default = OMTBool;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/objectmergetool/type/OMTBool.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/objectmergetool/type/OMTColor.js":
/*!**********************************************************************!*\
  !*** ./node_modules/absol-acomp/js/objectmergetool/type/OMTColor.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _OMTBaseType = _interopRequireDefault(__webpack_require__(/*! ./OMTBaseType */ \"./node_modules/absol-acomp/js/objectmergetool/type/OMTBaseType.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _ACore = __webpack_require__(/*! ../../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _OMTFile = _interopRequireDefault(__webpack_require__(/*! ./OMTFile */ \"./node_modules/absol-acomp/js/objectmergetool/type/OMTFile.js\"));\n\nvar _Color = _interopRequireDefault(__webpack_require__(/*! absol/src/Color/Color */ \"./node_modules/absol/src/Color/Color.js\"));\n\nvar _stringUtils = __webpack_require__(/*! absol/src/String/stringUtils */ \"./node_modules/absol/src/String/stringUtils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends OMTBaseType\r\n * @constructor\r\n */\nfunction OMTColor() {\n  _OMTBaseType[\"default\"].apply(this, arguments);\n}\n\n_OOP[\"default\"].mixClass(OMTColor, _OMTBaseType[\"default\"]);\n\n_OMTBaseType[\"default\"].classes.color = OMTColor;\nOMTColor.prototype.type = 'color';\n\nOMTColor.prototype.render = function () {\n  _OMTBaseType[\"default\"].prototype.render.call(this);\n\n  this.$value = (0, _ACore._)({\n    \"class\": \"as-omt-field-color-value-bg\",\n    child: '.as-omt-field-color-value'\n  });\n  this.$body.addChild(this.$value);\n};\n\nOMTColor.prototype.assign = function (o) {\n  this.value = o;\n  var color = 'transparent';\n\n  try {\n    if (o instanceof _Color[\"default\"]) {\n      color = o.toString(\"hex8\");\n    } else if (typeof o === \"string\") {\n      color = _Color[\"default\"].parse(o).toString(\"hex8\");\n    }\n  } catch (err) {}\n\n  this.color = color;\n  this.$value.addStyle('--omt-color-value', color);\n};\n\nOMTColor.prototype.getHash = function () {\n  return (0, _stringUtils.stringHashCode)(this.color + '');\n};\n\nOMTColor.prototype.getRaw = function () {\n  var color = _Color[\"default\"].parse(this.color);\n\n  return {\n    child: [{\n      tag: 'span',\n      \"class\": 'as-omt-field-name',\n      child: {\n        text: (this.descriptor.displayName || this.descriptor.name || \"ROOT\") + ': '\n      }\n    }, {\n      tag: 'span',\n      style: {\n        color: color.toString('hex6')\n      },\n      child: {\n        text: this.color\n      }\n    }]\n  };\n};\n\nvar _default = OMTColor;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/objectmergetool/type/OMTColor.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/objectmergetool/type/OMTEnum.js":
/*!*********************************************************************!*\
  !*** ./node_modules/absol-acomp/js/objectmergetool/type/OMTEnum.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _OMTBaseType = _interopRequireDefault(__webpack_require__(/*! ./OMTBaseType */ \"./node_modules/absol-acomp/js/objectmergetool/type/OMTBaseType.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _ACore = __webpack_require__(/*! ../../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _SelectTreeMenu = _interopRequireDefault(__webpack_require__(/*! ../../SelectTreeMenu */ \"./node_modules/absol-acomp/js/SelectTreeMenu.js\"));\n\nvar _generator = __webpack_require__(/*! absol/src/JSMaker/generator */ \"./node_modules/absol/src/JSMaker/generator.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends OMTBaseType\r\n * @constructor\r\n */\nfunction OMTEnum() {\n  _OMTBaseType[\"default\"].apply(this, arguments);\n\n  this.value = null;\n}\n\n_OOP[\"default\"].mixClass(OMTEnum, _OMTBaseType[\"default\"]);\n\n_OMTBaseType[\"default\"].classes[\"enum\"] = OMTEnum;\n\nOMTEnum.prototype.render = function () {\n  var _this = this;\n\n  _OMTBaseType[\"default\"].prototype.render.call(this);\n\n  this.$value = (0, _ACore._)({\n    tag: _SelectTreeMenu[\"default\"].tag,\n    \"class\": 'as-border-none',\n    style: {\n      height: '18px'\n    },\n    props: {\n      readOnly: true\n    }\n  });\n  this.$body.addChild(this.$value);\n\n  if (this.descriptor.items && this.descriptor.items.then) {\n    this.descriptor.items.then(function (items) {\n      _this.$value.items = items;\n    });\n  } else {\n    this.$value.items = this.descriptor.items;\n  }\n};\n\nOMTEnum.prototype.assign = function (o) {\n  this.value = o;\n  this.$value.value = o;\n};\n\nOMTEnum.prototype.getRaw = function () {\n  var text = '';\n  var holders = this.$value.findItemsByValue(this[\"export\"]());\n\n  if (holders && holders.length > 0) {\n    text = holders[0].item.text;\n    if (holders[0].item.desc) text += ' - ' + holders[0].item.desc;\n  }\n\n  return {\n    child: [{\n      tag: 'span',\n      \"class\": 'as-omt-field-name',\n      child: {\n        text: (this.descriptor.displayName || this.descriptor.name || \"ROOT\") + ': '\n      }\n    }, {\n      tag: 'span',\n      child: {\n        text: text\n      }\n    }]\n  };\n};\n\nvar _default = OMTEnum;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/objectmergetool/type/OMTEnum.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/objectmergetool/type/OMTEnumOfPair.js":
/*!***************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/objectmergetool/type/OMTEnumOfPair.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _OMTBaseType = _interopRequireDefault(__webpack_require__(/*! ./OMTBaseType */ \"./node_modules/absol-acomp/js/objectmergetool/type/OMTBaseType.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _ACore = __webpack_require__(/*! ../../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _SelectTreeMenu = _interopRequireDefault(__webpack_require__(/*! ../../SelectTreeMenu */ \"./node_modules/absol-acomp/js/SelectTreeMenu.js\"));\n\nvar _DualSelectMenu = _interopRequireDefault(__webpack_require__(/*! ../../DualSelectMenu */ \"./node_modules/absol-acomp/js/DualSelectMenu.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends OMTBaseType\r\n * @constructor\r\n */\nfunction OMTEnumOfPair() {\n  _OMTBaseType[\"default\"].apply(this, arguments);\n\n  this.value = null;\n}\n\n_OOP[\"default\"].mixClass(OMTEnumOfPair, _OMTBaseType[\"default\"]);\n\n_OMTBaseType[\"default\"].classes['enum<pair>'] = OMTEnumOfPair;\nOMTEnumOfPair.prototype.type = 'enum<pair>';\n\nOMTEnumOfPair.prototype.render = function () {\n  var _this = this;\n\n  _OMTBaseType[\"default\"].prototype.render.call(this);\n\n  this.$value = (0, _ACore._)({\n    tag: _DualSelectMenu[\"default\"].tag,\n    \"class\": 'as-border-none',\n    style: {\n      height: '18px'\n    },\n    props: {\n      readOnly: true\n    }\n  });\n  this.$body.addChild(this.$value);\n\n  if (this.descriptor.items && this.descriptor.items.then) {\n    this.descriptor.items.then(function (items) {\n      _this.$value.items = items;\n    });\n  } else {\n    this.$value.items = this.descriptor.items;\n  }\n};\n\nOMTEnumOfPair.prototype.assign = function (o) {\n  this.value = o;\n  this.$value.value = o;\n};\n\nOMTEnumOfPair.prototype.getRaw = function () {\n  var text = this.$value.$item && this.$value.$item.innerText;\n  return {\n    child: [{\n      tag: 'span',\n      \"class\": 'as-omt-field-name',\n      child: {\n        text: (this.descriptor.displayName || this.descriptor.name || \"ROOT\") + ': '\n      }\n    }, {\n      tag: 'span',\n      child: {\n        text: text\n      }\n    }]\n  };\n};\n\nvar _default = OMTEnumOfPair;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/objectmergetool/type/OMTEnumOfPair.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/objectmergetool/type/OMTEnumSet.js":
/*!************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/objectmergetool/type/OMTEnumSet.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _OMTBaseType = _interopRequireDefault(__webpack_require__(/*! ./OMTBaseType */ \"./node_modules/absol-acomp/js/objectmergetool/type/OMTBaseType.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _ACore = __webpack_require__(/*! ../../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _OMTArray = _interopRequireDefault(__webpack_require__(/*! ./OMTArray */ \"./node_modules/absol-acomp/js/objectmergetool/type/OMTArray.js\"));\n\nvar _OMTEnumSetMergeDialog = _interopRequireDefault(__webpack_require__(/*! ../dialog/OMTEnumSetMergeDialog */ \"./node_modules/absol-acomp/js/objectmergetool/dialog/OMTEnumSetMergeDialog.js\"));\n\nvar _MultiCheckMenu = _interopRequireDefault(__webpack_require__(/*! ../../MultiCheckMenu */ \"./node_modules/absol-acomp/js/MultiCheckMenu.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends OMTBaseType\r\n * @constructor\r\n */\nfunction OMTEnumSet() {\n  _OMTBaseType[\"default\"].apply(this, arguments);\n\n  this.value = null;\n\n  this._flatTreeItems();\n}\n\n_OOP[\"default\"].mixClass(OMTEnumSet, _OMTBaseType[\"default\"]);\n\n_OMTBaseType[\"default\"].classes['{enum}'] = OMTEnumSet;\nOMTEnumSet.prototype.commands = _OMTArray[\"default\"].prototype.commands.slice();\n\nOMTEnumSet.prototype._flatTreeItems = function () {\n  if (!this.descriptor.flat) {\n    this.descriptor.flat = true;\n    this.descriptor.items = this.descriptor.items.reduce(function visit(ac, cr) {\n      var item = Object.assign({}, cr);\n      ac.push(item);\n\n      if (item.items && item.items.length > 0) {\n        item.items.reduce(visit, ac);\n      }\n\n      delete item.items;\n      return ac;\n    }, []);\n  }\n};\n\nOMTEnumSet.prototype.render = function () {\n  _OMTBaseType[\"default\"].prototype.render.call(this);\n\n  this.$value = (0, _ACore._)({\n    tag: _MultiCheckMenu[\"default\"].tag,\n    \"class\": 'as-border-none',\n    style: {\n      height: '18px'\n    },\n    props: {\n      readOnly: true,\n      strictValue: false\n    }\n  });\n  this.$body.addChild(this.$value);\n  this.$value.items = this.descriptor.items;\n  this.$value.values = this.value;\n};\n\nOMTEnumSet.prototype.assign = function (o) {\n  this.value = o;\n  this.$value.values = o;\n};\n\nOMTEnumSet.prototype.execCmd = function (commandName) {\n  _OMTBaseType[\"default\"].prototype.execCmd.call(this, commandName);\n\n  if (commandName === 'merge') {\n    this.userMerge();\n  }\n};\n\nOMTEnumSet.prototype.userMerge = function () {\n  //as-omt-option-row\n  new _OMTEnumSetMergeDialog[\"default\"](this);\n};\n\nOMTEnumSet.prototype.getRaw = function () {\n  var _this = this;\n\n  var textItems = this[\"export\"]().map(function (value) {\n    var text = '';\n\n    var holders = _this.$value.findItemsByValue(value);\n\n    if (holders && holders.length > 0) {\n      text = holders[0].item.text;\n      if (holders[0].item.desc) text += ' - ' + holders[0].item.desc;\n    }\n\n    return text;\n  });\n  return {\n    child: [{\n      tag: 'span',\n      \"class\": 'as-omt-field-name',\n      child: {\n        text: (this.descriptor.displayName || this.descriptor.name || \"ROOT\") + ': '\n      }\n    }, {\n      style: {\n        paddingLeft: '25px'\n      },\n      child: textItems.map(function (text) {\n        return {\n          tag: 'li',\n          child: {\n            text: text\n          }\n        };\n      })\n    }]\n  };\n};\n\nvar _default = OMTEnumSet;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/objectmergetool/type/OMTEnumSet.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/objectmergetool/type/OMTFile.js":
/*!*********************************************************************!*\
  !*** ./node_modules/absol-acomp/js/objectmergetool/type/OMTFile.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _OMTBaseType = _interopRequireDefault(__webpack_require__(/*! ./OMTBaseType */ \"./node_modules/absol-acomp/js/objectmergetool/type/OMTBaseType.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _ACore = __webpack_require__(/*! ../../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _FileListItem = _interopRequireDefault(__webpack_require__(/*! ../../FileListItem */ \"./node_modules/absol-acomp/js/FileListItem.js\"));\n\nvar _utils = __webpack_require__(/*! ../../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends OMTBaseType\r\n * @constructor\r\n */\nfunction OMTFile() {\n  _OMTBaseType[\"default\"].apply(this, arguments);\n}\n\n_OOP[\"default\"].mixClass(OMTFile, _OMTBaseType[\"default\"]);\n\n_OMTBaseType[\"default\"].classes.file = OMTFile;\n_OMTBaseType[\"default\"].prototype.type = 'file';\n\nOMTFile.prototype.render = function () {\n  _OMTBaseType[\"default\"].prototype.render.call(this);\n\n  this.$value = (0, _ACore._)({\n    tag: _FileListItem[\"default\"].tag,\n    \"class\": 'as-omt-field-value'\n  });\n  this.$body.addChild(this.$value);\n};\n\nOMTFile.prototype.assign = function (o) {\n  this.value = o;\n\n  if (o) {\n    this.$value.value = o;\n    this.$value.removeStyle('display');\n  } else {\n    this.$value.addStyle('display', 'none');\n  }\n};\n\nOMTFile.prototype.getRaw = function () {\n  var info = (0, _utils.fileInfoOf)(this.value);\n  var href = info.url;\n  return {\n    child: [{\n      tag: 'span',\n      \"class\": 'as-omt-field-name',\n      child: {\n        text: (this.descriptor.displayName || this.descriptor.name || \"ROOT\") + ': '\n      }\n    }, {\n      tag: 'a',\n      props: {\n        href: href,\n        target: '_blank'\n      },\n      child: {\n        text: info.name\n      }\n    }]\n  };\n};\n\nvar _default = OMTFile;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/objectmergetool/type/OMTFile.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/objectmergetool/type/OMTFileArray.js":
/*!**************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/objectmergetool/type/OMTFileArray.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _OMTBaseType = _interopRequireDefault(__webpack_require__(/*! ./OMTBaseType */ \"./node_modules/absol-acomp/js/objectmergetool/type/OMTBaseType.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _ACore = __webpack_require__(/*! ../../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _FileListInput = _interopRequireDefault(__webpack_require__(/*! ../../FileListInput */ \"./node_modules/absol-acomp/js/FileListInput.js\"));\n\nvar _OMTArray = _interopRequireDefault(__webpack_require__(/*! ./OMTArray */ \"./node_modules/absol-acomp/js/objectmergetool/type/OMTArray.js\"));\n\nvar _utils = __webpack_require__(/*! ../../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends OMTBaseType\r\n * @constructor\r\n */\nfunction OMTFileArray() {\n  _OMTBaseType[\"default\"].apply(this, arguments);\n}\n\n_OOP[\"default\"].mixClass(OMTFileArray, _OMTBaseType[\"default\"]);\n\n_OMTBaseType[\"default\"].classes['file[]'] = OMTFileArray;\nOMTFileArray.prototype.type = 'file[]';\nOMTFileArray.prototype.commands = _OMTArray[\"default\"].prototype.commands.slice();\n\nOMTFileArray.prototype.render = function () {\n  _OMTBaseType[\"default\"].prototype.render.call(this);\n\n  this.$value = (0, _ACore._)({\n    tag: _FileListInput[\"default\"].tag,\n    \"class\": ['as-omt-field-value', 'as-border-none'],\n    props: {\n      readOnly: true\n    }\n  });\n  this.$body.addChild(this.$value);\n};\n\nOMTFileArray.prototype.assign = function (o) {\n  this.value = o;\n\n  if (o instanceof Array) {\n    this.$value.files = o;\n    this.$value.removeStyle('display');\n  } else {\n    this.$value.addStyle('display', 'none');\n  }\n};\n\nOMTFileArray.prototype.getHash = function () {\n  return (0, _utils.calcDTQueryHash)(this.value);\n};\n\nOMTFileArray.prototype.getRaw = function () {\n  var infoArr = (this.value || []).map(function (it) {\n    return (0, _utils.fileInfoOf)(it);\n  });\n  return {\n    child: [{\n      tag: 'span',\n      \"class\": 'as-omt-field-name',\n      child: {\n        text: (this.descriptor.displayName || this.descriptor.name || \"ROOT\") + ': '\n      }\n    }, {\n      style: {\n        paddingLeft: '25px'\n      },\n      child: infoArr.map(function (info) {\n        return {\n          tag: 'a',\n          props: info.url ? {\n            href: info.url,\n            target: '_blank'\n          } : {},\n          child: {\n            text: info.name\n          }\n        };\n      })\n    }]\n  };\n};\n\nvar _default = OMTFileArray;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/objectmergetool/type/OMTFileArray.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/objectmergetool/type/OMTHtml.js":
/*!*********************************************************************!*\
  !*** ./node_modules/absol-acomp/js/objectmergetool/type/OMTHtml.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _OMTBaseType = _interopRequireDefault(__webpack_require__(/*! ./OMTBaseType */ \"./node_modules/absol-acomp/js/objectmergetool/type/OMTBaseType.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _ACore = __webpack_require__(/*! ../../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _generator = __webpack_require__(/*! absol/src/JSMaker/generator */ \"./node_modules/absol/src/JSMaker/generator.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends OMTBaseType\r\n * @constructor\r\n */\nfunction OMTHtml() {\n  _OMTBaseType[\"default\"].apply(this, arguments);\n\n  this.value = null;\n}\n\n_OOP[\"default\"].mixClass(OMTHtml, _OMTBaseType[\"default\"]);\n\n_OMTBaseType[\"default\"].classes.html = OMTHtml;\nOMTHtml.prototype.type = 'html';\n\nOMTHtml.prototype.assign = function (o) {\n  this.value = o;\n  this.$body.clearChild();\n  this.$value = (0, _ACore._)({\n    tag: 'div',\n    props: {\n      innerHTML: o\n    }\n  });\n  this.$body.addChild(this.$value);\n};\n\nOMTHtml.prototype.getRaw = function () {\n  return {\n    child: [{\n      tag: 'span',\n      \"class\": 'as-omt-field-name',\n      child: {\n        text: (this.descriptor.displayName || this.descriptor.name || \"ROOT\") + ': '\n      }\n    }, {\n      tag: 'span',\n      child: {\n        text: this[\"export\"]()\n      }\n    }]\n  };\n};\n\nvar _default = OMTHtml;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/objectmergetool/type/OMTHtml.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/objectmergetool/type/OMTImage.js":
/*!**********************************************************************!*\
  !*** ./node_modules/absol-acomp/js/objectmergetool/type/OMTImage.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _OMTBaseType = _interopRequireDefault(__webpack_require__(/*! ./OMTBaseType */ \"./node_modules/absol-acomp/js/objectmergetool/type/OMTBaseType.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _ACore = __webpack_require__(/*! ../../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _OMTFile = _interopRequireDefault(__webpack_require__(/*! ./OMTFile */ \"./node_modules/absol-acomp/js/objectmergetool/type/OMTFile.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends OMTBaseType\r\n * @constructor\r\n */\nfunction OMTImage() {\n  _OMTBaseType[\"default\"].apply(this, arguments);\n}\n\n_OOP[\"default\"].mixClass(OMTImage, _OMTBaseType[\"default\"]);\n\n_OMTBaseType[\"default\"].classes.image = OMTImage;\n_OMTBaseType[\"default\"].prototype.type = 'image';\n\nOMTImage.prototype.assign = function (o) {\n  var _this = this;\n\n  this.value = o;\n  var title = '';\n  this.$body.clearChild();\n\n  var handle = function handle(val) {\n    if (!val) return;\n\n    if (val && val.then) {\n      val.then(handle);\n      return;\n    }\n\n    if (val && val.url) {\n      handle(val.url);\n      return;\n    }\n\n    if (val instanceof File || val instanceof Blob) {\n      val.url = val.url || URL.createObjectURL(val);\n      if (!title && val.filename) title = val.filename;\n      handle(val);\n      return;\n    }\n\n    if (!title) title = val.split('/').pop().split('?').shift();\n    _this.$value = (0, _ACore._)({\n      tag: 'img',\n      \"class\": 'as-omt-field-value',\n      props: {\n        src: val,\n        title: title\n      }\n    });\n\n    _this.$body.addChild(_this.$value);\n  };\n\n  handle(o);\n};\n\nOMTImage.prototype.getRaw = _OMTFile[\"default\"].prototype.getRaw;\nvar _default = OMTImage;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/objectmergetool/type/OMTImage.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/objectmergetool/type/OMTString.js":
/*!***********************************************************************!*\
  !*** ./node_modules/absol-acomp/js/objectmergetool/type/OMTString.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _OMTBaseType = _interopRequireDefault(__webpack_require__(/*! ./OMTBaseType */ \"./node_modules/absol-acomp/js/objectmergetool/type/OMTBaseType.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _ACore = __webpack_require__(/*! ../../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _generator = __webpack_require__(/*! absol/src/JSMaker/generator */ \"./node_modules/absol/src/JSMaker/generator.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends OMTBaseType\r\n * @constructor\r\n */\nfunction OMTString() {\n  _OMTBaseType[\"default\"].apply(this, arguments);\n\n  this.value = null;\n}\n\n_OOP[\"default\"].mixClass(OMTString, _OMTBaseType[\"default\"]);\n\n_OMTBaseType[\"default\"].classes.string = OMTString;\n\nOMTString.prototype.assign = function (o) {\n  this.value = o;\n  this.$body.clearChild();\n  this.$value = (0, _ACore._)({\n    tag: 'span',\n    child: {\n      text: (o || '') + ''\n    }\n  });\n  this.$body.addChild(this.$value);\n};\n\nOMTString.prototype.getRaw = function () {\n  return {\n    child: [{\n      tag: 'span',\n      \"class\": 'as-omt-field-name',\n      child: {\n        text: (this.descriptor.displayName || this.descriptor.name || \"ROOT\") + ': '\n      }\n    }, {\n      tag: 'span',\n      child: {\n        text: this[\"export\"]()\n      }\n    }]\n  };\n};\n\nvar _default = OMTString;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/objectmergetool/type/OMTString.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/objectmergetool/type/OMTStruct.js":
/*!***********************************************************************!*\
  !*** ./node_modules/absol-acomp/js/objectmergetool/type/OMTStruct.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _OMTBaseType = _interopRequireDefault(__webpack_require__(/*! ./OMTBaseType */ \"./node_modules/absol-acomp/js/objectmergetool/type/OMTBaseType.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _ACore = __webpack_require__(/*! ../../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _stringUtils = __webpack_require__(/*! absol/src/String/stringUtils */ \"./node_modules/absol/src/String/stringUtils.js\");\n\nvar _generator = __webpack_require__(/*! absol/src/JSMaker/generator */ \"./node_modules/absol/src/JSMaker/generator.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/***\r\n * @extends OMTBaseType\r\n * @constructor\r\n */\nfunction OMTStruct() {\n  var _this = this;\n\n  _OMTBaseType[\"default\"].apply(this, arguments);\n\n  this.children = (this.descriptor.fields || []).map(function (field) {\n    return _OMTBaseType[\"default\"].make(_this.tool, _this, field);\n  });\n  this.$body.addChild(this.children.map(function (child) {\n    return child.elt;\n  }));\n  this.data = null;\n}\n\n_OOP[\"default\"].mixClass(OMTStruct, _OMTBaseType[\"default\"]);\n\nOMTStruct.prototype.type = 'struct';\n\nOMTStruct.prototype.assign = function (o) {\n  if (o !== null && _typeof(o) === \"object\") {\n    this.elt.removeClass('as-null');\n    this.children.forEach(function (child) {\n      var name = child.descriptor.name;\n      child.assign(o[name]);\n    });\n  } else {\n    this.elt.addClass('as-null');\n  }\n};\n\nOMTStruct.prototype[\"export\"] = function () {\n  return this.children.reduce(function (ac, cr) {\n    ac[cr.descriptor.name] = cr[\"export\"]();\n    return ac;\n  }, {});\n};\n\nOMTStruct.prototype.getHash = function () {\n  var hash = this.children.map(function (c) {\n    return c.getHash();\n  }).join('_');\n  return (0, _stringUtils.stringHashCode)(hash);\n};\n\nOMTStruct.prototype.getRaw = function () {\n  return {\n    child: [{\n      tag: 'span',\n      \"class\": 'as-omt-field-name',\n      child: {\n        text: (this.descriptor.displayName || this.descriptor.name || \"ROOT\") + ': '\n      }\n    }, {\n      style: {\n        paddingLeft: '25px'\n      },\n      child: this.children.map(function (child) {\n        return child.getRaw();\n      })\n    }]\n  };\n};\n\n_OMTBaseType[\"default\"].classes.struct = OMTStruct;\nvar _default = OMTStruct;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/objectmergetool/type/OMTStruct.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/printer.js":
/*!************************************************!*\
  !*** ./node_modules/absol-acomp/js/printer.js ***!
  \************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.silentDownloadAsPdf = silentDownloadAsPdf;\n\nvar _printer = __webpack_require__(/*! absol/src/Print/printer */ \"./node_modules/absol/src/Print/printer.js\");\n\nvar _FileSaver = __webpack_require__(/*! absol/src/Network/FileSaver */ \"./node_modules/absol/src/Network/FileSaver.js\");\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Toast = _interopRequireDefault(__webpack_require__(/*! ./Toast */ \"./node_modules/absol-acomp/js/Toast.js\"));\n\nvar _pdf = __webpack_require__(/*! absol/src/Print/pdf */ \"./node_modules/absol/src/Print/pdf.js\");\n\nvar _ProgressBar = _interopRequireDefault(__webpack_require__(/*! ./ProgressBar */ \"./node_modules/absol-acomp/js/ProgressBar.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction silentDownloadAsPdf(adapter) {\n  if (!adapter) throw new Error(\"Invalid print data\");\n  adapter.parallel = adapter.parallel || 8;\n  adapter.delay = adapter.delay || 0;\n  adapter.chuckLength = 100;\n  adapter.fileName = adapter.fileName || 'exports.pdf';\n\n  if (adapter.paddingEven !== false) {\n    adapter.paddingEven = true;\n  }\n\n  if (!adapter.fileName.toLowerCase().endsWith('.pdf')) adapter.fileName += '.pdf';\n  var hiddenDiv = (0, _ACore._)({\n    style: {\n      overflow: 'scroll',\n      visibility: 'hidden',\n      opacity: 0,\n      pointerEvents: 'none',\n      position: 'fixed',\n      zIndex: -1000\n    }\n  }).addTo(document.body);\n  var progressBar = (0, _ACore._)({\n    tag: _ProgressBar[\"default\"],\n    style: {\n      margin: '5px'\n    }\n  });\n  var message = (0, _ACore._)({\n    tag: 'span',\n    style: {\n      margin: '5px'\n    },\n    child: {\n      text: 'Render'\n    }\n  });\n  /***\r\n   *\r\n   * @type {Toast}\r\n   */\n\n  var toast = _Toast[\"default\"].make({\n    props: {\n      htitle: \"Export DPF\"\n    },\n    child: [{\n      tag: 'div',\n      style: {\n        margin: '5px'\n      },\n      child: {\n        tag: 'strong',\n        child: {\n          text: adapter.fileName\n        }\n      }\n    }, message, progressBar]\n  });\n\n  return new Promise(function (resolve) {\n    var docs = adapter.docs.slice();\n    var docsN = docs.length;\n    var serializer = _printer.ShareSerializer;\n    var chucks = [];\n    var chuckRemain;\n    var printer;\n\n    var finish = function finish() {\n      message.firstChild.data = \"Create PDF\";\n      (0, _pdf.mergePdfs)(chucks, function (pData) {\n        progressBar.value = 0.9 + (pData.loaded + pData.merged) / (pData.all || 1) / 10;\n      }).then(function (mergedPdf) {\n        mergedPdf.save().then(function (file) {\n          (0, _FileSaver.saveAs)(new Blob([file]), adapter.fileName);\n          progressBar.value = 1;\n          message.firstChild.data = \"Complete\";\n          setTimeout(function () {\n            toast.disappear();\n          }, 5000);\n        });\n      });\n    };\n\n    var nextChuck = function nextChuck() {\n      chuckRemain = Math.min(adapter.chuckLength, docs.length);\n      printer = new _printer.PaperPrinter(Object.assign({\n        lastPagePaddingEven: docs.length <= chuckRemain\n      }, adapter));\n      process();\n    };\n\n    var finishChuck = function finishChuck() {\n      chucks.push(printer.pdfDoc.output('arraybuffer'));\n\n      if (docs.length > 0) {\n        nextChuck();\n      } else {\n        finish();\n      }\n    };\n\n    var process = function process() {\n      message.firstChild.data = 'Render (' + (docsN - docs.length) + '/' + docsN + ')';\n      var pg0 = 0.9 * (1 - docs.length / (docsN || 1));\n      progressBar.value = pg0;\n\n      if (chuckRemain === 0) {\n        finishChuck();\n        return;\n      }\n\n      var cDocs = docs.splice(0, Math.min(adapter.parallel, chuckRemain));\n      chuckRemain -= cDocs.length;\n      var localSync = cDocs.map(function (doc) {\n        var ctn = (0, _ACore._)({\n          style: {\n            width: '2048px'\n          }\n        }).addTo(hiddenDiv);\n        var renderSync = doc.render(ctn, doc);\n\n        if (renderSync && renderSync.then) {\n          renderSync = renderSync.then(function () {\n            return Object.assign({}, doc, {\n              elt: ctn.firstChild\n            });\n          });\n        } else {\n          renderSync = Promise.resolve(Object.assign({}, doc, {\n            elt: ctn.firstChild\n          }));\n        }\n\n        return renderSync.then(function (doc) {\n          var delaySync = [];\n          delaySync.push(new Promise(function (resolve) {\n            setTimeout(resolve, adapter.delay);\n          }));\n          var elt = doc.elt;\n\n          if (elt.fmComponent) {\n            if (!doc.opt) doc.opt = {};\n\n            if (!doc.opt.margin) {\n              doc.opt.margin = {\n                top: elt.fmComponent.style.paddingTop || 57,\n                left: elt.fmComponent.style.paddingLeft || 57,\n                bottom: elt.fmComponent.style.paddingBottom || 57,\n                right: elt.fmComponent.style.paddingRight || 57\n              };\n            }\n\n            delaySync.push(elt.fmComponent.fragment.afterEntryCompleted());\n          }\n\n          return Promise.all(delaySync).then(function () {\n            return doc;\n          });\n        });\n      });\n      Promise.all(localSync).then(function (docList) {\n        return serializer.serialize(docList, printer, function (pData) {\n          if (!pData.pdf) return;\n          var ng1 = pg0 + pData.pdf.done / (pData.pdf.all || 1) * cDocs.length / (docsN || 1) * 0.9;\n\n          if (ng1 - progressBar.value > 0.05) {\n            progressBar.value = ng1;\n          }\n        });\n      }).then(function () {\n        return printer.flush();\n      }).then(function () {\n        return process();\n      });\n    };\n\n    nextChuck();\n  });\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/printer.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/selectlistbox/SLBItemHolder.js":
/*!********************************************************************!*\
  !*** ./node_modules/absol-acomp/js/selectlistbox/SLBItemHolder.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _SelectListItem = _interopRequireDefault(__webpack_require__(/*! ../SelectListItem */ \"./node_modules/absol-acomp/js/SelectListItem.js\"));\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction SLBItemHolder(parent, data) {\n  this.data = data;\n  this.parent = parent;\n  this._elt = null;\n}\n\nObject.defineProperty(SLBItemHolder.prototype, 'elt', {\n  get: function get() {\n    if (!this._elt) {\n      this._elt = (0, _ACore._)({\n        tag: _SelectListItem[\"default\"].tag,\n        props: {\n          data: this.data\n        }\n      });\n    }\n\n    return this._elt;\n  }\n});\nvar _default = SLBItemHolder;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/selectlistbox/SLBItemHolder.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/selectlistbox/SLBItemListController.js":
/*!****************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/selectlistbox/SLBItemListController.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _ListDictionary = _interopRequireDefault(__webpack_require__(/*! ../list/ListDictionary */ \"./node_modules/absol-acomp/js/list/ListDictionary.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _SLBModes = __webpack_require__(/*! ./SLBModes */ \"./node_modules/absol-acomp/js/selectlistbox/SLBModes.js\");\n\nvar _search = __webpack_require__(/*! ../list/search */ \"./node_modules/absol-acomp/js/list/search.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends ListDictionary\r\n * @param {SelectListBox} elt\r\n * @constructor\r\n */\nfunction SLBItemListController(elt) {\n  this.elt = elt;\n  this.items = [];\n  this.elt.$scroller.on('scroll', this.updateListView.bind(this));\n}\n\n_OOP[\"default\"].mixClass(SLBItemListController, _ListDictionary[\"default\"]);\n\nSLBItemListController.itemHeight = 20;\nSLBItemListController.preLoadN = 3;\nSLBItemListController.prototype.toLoadNextY = 200;\n\nSLBItemListController.prototype.getItems = function () {\n  return (0, _utils.copySelectionItemArray)(this.items);\n};\n\nSLBItemListController.prototype.setItems = function (items) {\n  this.items = (0, _utils.copySelectionItemArray)(items || []);\n  var mode = new _SLBModes.SLBModeNormal(this.elt, this.items);\n  this.elt.modes.normal = mode;\n  this.elt.mode = mode;\n  mode.onStart();\n};\n\nSLBItemListController.prototype.updateListView = function () {\n  this.elt.mode.updateListView();\n};\n\nvar _default = SLBItemListController;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/selectlistbox/SLBItemListController.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/selectlistbox/SLBModes.js":
/*!***************************************************************!*\
  !*** ./node_modules/absol-acomp/js/selectlistbox/SLBModes.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.SLBModeNormal = SLBModeNormal;\nexports.SLBModeSearch = SLBModeSearch;\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _SLBItemHolder = _interopRequireDefault(__webpack_require__(/*! ./SLBItemHolder */ \"./node_modules/absol-acomp/js/selectlistbox/SLBItemHolder.js\"));\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _Dom = __webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction SLBModeNormal(elt, items) {\n  var _this = this;\n\n  this.elt = elt;\n  this.$scroller = this.elt.$scroller;\n  this.$content = this.elt.$content;\n  this.items = items;\n  this.children = items.map(function (item) {\n    return new _SLBItemHolder[\"default\"](_this, item);\n  });\n  this.children.forEach(function (child, i) {\n    child.idx = i; // child.elt;\n  });\n  this.$pages = [];\n}\n\nSLBModeNormal.prototype._getPageElt = function (idx) {\n  if (this.$pages[idx]) return this.$pages[idx];\n\n  while (this.$pages.length <= idx) {\n    this.$pages.push(undefined);\n  }\n\n  var children = this.children.slice(idx * 50, idx * 50 + 50);\n  var pageElt = (0, _ACore._)({\n    \"class\": 'as-select-list-box-page',\n    style: {\n      top: 20 * idx * 50 + 'px'\n    },\n    child: children.map(function (child) {\n      return child.elt;\n    })\n  });\n  this.$pages[idx] = pageElt;\n  return pageElt;\n};\n\nSLBModeNormal.prototype._getPageCount = function () {\n  return Math.ceil(this.items.length / 50);\n};\n\nSLBModeNormal.prototype.onStart = function () {\n  this.elt.$content.addStyle('height', this.items.length * 20 + 'px'); // var n = this._getPageCount();\n  // for (var i =0; i < n; ++i){\n  //     this.$content.addChild(this._getPageElt(i));\n  // }\n\n  this.updateListView();\n};\n\nSLBModeNormal.prototype.onStop = function () {};\n\nSLBModeNormal.prototype.updateListView = function () {\n  var _this2 = this;\n\n  var maxHeight = Math.max(4096, (0, _Dom.getScreenSize)().height);\n  var startIdx = Math.floor(this.$scroller.scrollTop / 1000) - 1;\n  var endIdx = startIdx + Math.ceil(maxHeight / 1000) + 1;\n  startIdx = Math.max(0, startIdx);\n  endIdx = Math.min(this._getPageCount(), endIdx);\n  var needViewPages = Array(endIdx - startIdx).fill(null).map(function (u, i) {\n    return _this2._getPageElt(startIdx + i);\n  });\n  Array.prototype.forEach.call(this.$content.childNodes, function (elt) {\n    if (needViewPages.indexOf(elt) < 0) {\n      elt.remove();\n    }\n  });\n  needViewPages.forEach(function (elt) {\n    if (!elt.parentElement) {\n      _this2.$content.addChild(elt);\n    }\n  });\n};\n\nfunction SLBModeSearch(elt, items) {\n  this.items = items;\n}\n\n_OOP[\"default\"].mixClass(SLBModeSearch, SLBModeNormal); // SLBModeSearch.prototype.onStart\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/selectlistbox/SLBModes.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/selectlistbox/SelectListBox.js":
/*!********************************************************************!*\
  !*** ./node_modules/absol-acomp/js/selectlistbox/SelectListBox.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _SelectListBoxPropHandlers = _interopRequireDefault(__webpack_require__(/*! ./SelectListBoxPropHandlers */ \"./node_modules/absol-acomp/js/selectlistbox/SelectListBoxPropHandlers.js\"));\n\nvar _SLBItemListController = _interopRequireDefault(__webpack_require__(/*! ./SLBItemListController */ \"./node_modules/absol-acomp/js/selectlistbox/SLBItemListController.js\"));\n\nvar _SLBModes = __webpack_require__(/*! ./SLBModes */ \"./node_modules/absol-acomp/js/selectlistbox/SLBModes.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction SelectListBox() {\n  this.$box = this;\n  this.$content = $('.as-select-list-box-content', this);\n  this.$scroller = $('.as-select-list-box-scroller', this);\n  this.itemListCtrl = new _SLBItemListController[\"default\"](this);\n  this.modes = {\n    normal: new _SLBModes.SLBModeNormal(this, []),\n    search: null\n  };\n  this.mode = this.modes.normal;\n}\n\nSelectListBox.tag = 'selectlistbox_v2'.toLowerCase();\n\nSelectListBox.render = function () {\n  return (0, _ACore._)({\n    tag: 'follower',\n    attr: {\n      tabindex: 0\n    },\n    \"class\": 'as-select-list-box',\n    extendEvent: ['pressitem'],\n    child: [{\n      \"class\": 'as-select-list-box-search-ctn',\n      child: 'searchtextinput'\n    }, {\n      \"class\": ['as-bscroller', 'as-select-list-box-scroller'],\n      child: [{\n        \"class\": ['as-select-list-box-content'],\n        child: Array(SelectListBox.prototype.preLoadN).fill('.as-select-list-box-page')\n      }]\n    }, 'attachhook.as-dom-signal'],\n    props: {\n      anchor: [1, 6, 2, 5]\n    }\n  });\n};\n\nSelectListBox.property = _SelectListBoxPropHandlers[\"default\"];\n\n_ACore[\"default\"].install('selectlistbox_v2', SelectListBox);\n\nvar _default = SelectListBox;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/selectlistbox/SelectListBox.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/selectlistbox/SelectListBoxPropHandlers.js":
/*!********************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/selectlistbox/SelectListBoxPropHandlers.js ***!
  \********************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\nvar SelectListBoxPropHandlers = {};\nSelectListBoxPropHandlers.enableSearch = {\n  /***\r\n   * @this SelectListBox\r\n   * @param {boolean} value\r\n   */\n  set: function set(value) {\n    if (value) this.addClass('as-enable-search');else this.removeClass('as-enable-search');\n  },\n\n  /***\r\n   * @this SelectListBox\r\n   */\n  get: function get() {\n    return this.hasClass('as-enable-search');\n  }\n};\nSelectListBoxPropHandlers.items = {\n  /***\r\n   * @this SelectListBox\r\n   * @param {{}} items\r\n   */\n  set: function set(items) {\n    this.itemListCtrl.setItems(items);\n  },\n  get: function get() {\n    return this.itemListCtrl.getItems();\n  }\n};\nvar _default = SelectListBoxPropHandlers;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/selectlistbox/SelectListBoxPropHandlers.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/selecttreeleafbox/MSTBItemHolder.js":
/*!*************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/selecttreeleafbox/MSTBItemHolder.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _MCTBItemHolder = _interopRequireDefault(__webpack_require__(/*! ../checktreebox/MCTBItemHolder */ \"./node_modules/absol-acomp/js/checktreebox/MCTBItemHolder.js\"));\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _SelectTreeLeafItem = _interopRequireDefault(__webpack_require__(/*! ./SelectTreeLeafItem */ \"./node_modules/absol-acomp/js/selecttreeleafbox/SelectTreeLeafItem.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction MSTBItemHolder(boxElt, parent, data) {\n  var _this = this;\n\n  this.ref = null;\n  this.$list = boxElt.$list;\n  this.level = parent.level + 1;\n  this.status = 'none';\n  this.boxElt = boxElt;\n  this.parent = parent;\n  this.data = data;\n  this._elt = null;\n  this.hasDesc = !!data.desc;\n  this.hasIcon = !!data.icon;\n  this.selected = false;\n\n  if (data.items && data.items.length > 0) {\n    this.children = data.items.map(function (item) {\n      return new MSTBItemHolder(boxElt, _this, item);\n    });\n    this.hasDesc = this.hasDesc || this.children.some(function (child) {\n      return child.hasDesc;\n    });\n    this.hasIcon = this.hasIcon || this.children.some(function (child) {\n      return child.hasIcon;\n    });\n    this.status = 'close';\n  }\n}\n\nMSTBItemHolder.prototype.ev_statusChange = _MCTBItemHolder[\"default\"].prototype.ev_statusChange;\nMSTBItemHolder.prototype.getViewElements = _MCTBItemHolder[\"default\"].prototype.getViewElements;\n\nMSTBItemHolder.prototype.select = function (flag) {\n  this.selected = flag;\n\n  if (this._elt) {\n    this._elt.selected = flag;\n  }\n};\n\nMSTBItemHolder.prototype.ev_click = function (event) {\n  if (this.ref) {\n    this.ref.ev_click(event);\n  } else {\n    this.boxElt.modes.normal.setValue(this.data.value);\n\n    if (this.boxElt.mode !== this.boxElt.modes.normal) {\n      this.boxElt.mode.updateSelectedFromRef();\n    }\n\n    this.boxElt.notifyPressItem();\n  }\n};\n\nObject.defineProperty(MSTBItemHolder.prototype, 'elt', {\n  get: function get() {\n    if (!this._elt) {\n      this._elt = (0, _ACore._)({\n        tag: _SelectTreeLeafItem[\"default\"],\n        props: {\n          data: this.data,\n          level: this.level,\n          status: this.status,\n          selected: this.selected\n        },\n        on: {\n          statuschange: this.ev_statusChange.bind(this),\n          click: this.ev_click.bind(this)\n        }\n      });\n    }\n\n    return this._elt;\n  }\n});\nvar _default = MSTBItemHolder;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/selecttreeleafbox/MSTBItemHolder.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/selecttreeleafbox/MSTLBItemListController.js":
/*!**********************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/selecttreeleafbox/MSTLBItemListController.js ***!
  \**********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _STLBModes = __webpack_require__(/*! ./STLBModes */ \"./node_modules/absol-acomp/js/selecttreeleafbox/STLBModes.js\");\n\nvar _search = _interopRequireWildcard(__webpack_require__(/*! ../list/search */ \"./node_modules/absol-acomp/js/list/search.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction MSTLBItemListController(elt) {\n  this.elt = elt;\n  this.items = [];\n  this._searchCache = {};\n}\n\nMSTLBItemListController.prototype.setItems = function (items) {\n  if (!items || !items.forEach || !items.map) items = [];\n  this.items = (0, _utils.copySelectionItemArray)(items, {\n    removeNoView: true\n  });\n  this.update();\n};\n\nMSTLBItemListController.prototype.update = function () {\n  var mode = new _STLBModes.STLBModeNormal(this.elt, this.items);\n  this.elt.modes.normal = mode;\n  this.elt.mode = mode;\n\n  if (mode.hasDesc) {\n    this.elt.$list.addClass('as-has-desc');\n  } else {\n    this.elt.$list.removeClass('as-has-list');\n  }\n\n  if (mode.hasIcon) {\n    this.elt.$list.addClass('as-has-icon');\n  } else {\n    this.elt.$list.removeClass('as-has-icon');\n  }\n\n  this.elt.mode = mode;\n  mode.onStart();\n  this._searchItems = (0, _search.prepareSearchForList)((0, _utils.copySelectionItemArray)(this.items));\n  this._searchCache = {};\n};\n\nMSTLBItemListController.prototype.getItems = function () {\n  return (0, _utils.copySelectionItemArray)(this.items);\n};\n\nMSTLBItemListController.prototype.makeSearch = function (query) {\n  if (this._searchCache[query]) return this._searchCache[query].resetAndGet();\n  var searchItem = (0, _search[\"default\"])({\n    text: query\n  });\n  var minScore = Infinity;\n  var maxScore = -Infinity;\n\n  var scoredHolders = this._searchItems.map(function visit(item) {\n    var holder = {\n      item: item,\n      score: (0, _search.calcItemMatchScore)(searchItem, item),\n      childMaxScore: -Infinity\n    };\n    minScore = Math.min(minScore, holder.score);\n    maxScore = Math.max(maxScore, holder.score);\n\n    if (item.items && item.items.length > 0) {\n      holder.children = item.items.map(visit);\n      holder.childMaxScore = holder.children.reduce(function (ac, cr) {\n        return Math.max(ac, cr.score, cr.childMaxScore);\n      }, 0);\n    }\n\n    return holder;\n  });\n\n  var threshHold = maxScore - (maxScore - minScore) / 3;\n  var result = scoredHolders.reduce(function filterVisit(ac, cr) {\n    var subItems;\n\n    if (Math.max(cr.score, cr.childMaxScore) >= threshHold) {\n      ac.items.push(cr.item);\n\n      if (cr.children && cr.childMaxScore >= cr.score) {\n        ac.status[(0, _utils.keyStringOf)(cr.item.value)] = 'open';\n        subItems = cr.children.reduce(filterVisit, {\n          items: [],\n          status: ac.status\n        }).items;\n        cr.item.items = subItems;\n      } else {\n        if (cr.children && cr.children.length > 0) {\n          ac.status[(0, _utils.keyStringOf)(cr.item.value)] = 'open';\n        }\n      }\n    }\n\n    return ac;\n  }, {\n    items: [],\n    status: {}\n  });\n  var normalMode = this.elt.modes.normal;\n  result.mode = new _STLBModes.STLBModeSearch(this.elt, result.items);\n\n  result.resetAndGet = function () {\n    this.mode.children && this.mode.children.forEach(function resetVisit(holder) {\n      var key = (0, _utils.keyStringOf)(holder.data.value);\n      holder.ref = normalMode.getHolderByValue(holder.data.value);\n\n      if (holder.status === 'open' && result.status[key] !== 'open') {\n        holder.status = 'close';\n\n        if (holder._elt) {\n          holder._elt.status = 'close';\n        }\n      } else if (holder.status === 'close' && result.status[key] === 'open') {\n        holder.status = 'open';\n\n        if (holder._elt) {\n          holder._elt.status = 'open';\n        }\n      }\n\n      if (holder.children) holder.children.forEach(resetVisit);\n    });\n    return this.mode;\n  };\n\n  this._searchCache[query] = result;\n  return result.resetAndGet();\n};\n\nvar _default = MSTLBItemListController;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/selecttreeleafbox/MSTLBItemListController.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/selecttreeleafbox/MSelectTreeLeafBox.js":
/*!*****************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/selecttreeleafbox/MSelectTreeLeafBox.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Searcher = _interopRequireDefault(__webpack_require__(/*! ../Searcher */ \"./node_modules/absol-acomp/js/Searcher.js\"));\n\n__webpack_require__(/*! ../../css/selecttreeeleafbox.css */ \"./node_modules/absol-acomp/css/selecttreeeleafbox.css\");\n\nvar _MSTLBItemListController = _interopRequireDefault(__webpack_require__(/*! ./MSTLBItemListController */ \"./node_modules/absol-acomp/js/selecttreeleafbox/MSTLBItemListController.js\"));\n\nvar _STLBModes = __webpack_require__(/*! ./STLBModes */ \"./node_modules/absol-acomp/js/selecttreeleafbox/STLBModes.js\");\n\nvar _STLBPropsHandlers = _interopRequireDefault(__webpack_require__(/*! ./STLBPropsHandlers */ \"./node_modules/absol-acomp/js/selecttreeleafbox/STLBPropsHandlers.js\"));\n\nvar _MCheckTreeBox = _interopRequireDefault(__webpack_require__(/*! ../checktreebox/MCheckTreeBox */ \"./node_modules/absol-acomp/js/checktreebox/MCheckTreeBox.js\"));\n\nvar _EventEmitter = __webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/****\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction MSelectTreeLeafBox() {\n  this.$box = (0, _ACore.$)('.am-dropdown-box', this);\n  this.$list = (0, _ACore.$)('.am-select-tree-leaf-box-list', this);\n  this.itemListCtrl = new _MSTLBItemListController[\"default\"](this);\n  this.$searchInput = (0, _ACore.$)(_Searcher[\"default\"].tag, this).on('stoptyping', this.eventHandler.searchTextInputModify);\n  this.$boxCloseBtn = (0, _ACore.$)('.am-dropdown-box-close-btn', this);\n  this.on('click', function (event) {\n    if (event.target === this || (0, _EventEmitter.hitElement)(this.$boxCloseBtn, event)) {\n      this.emit('close', {\n        type: 'close',\n        target: this\n      }, this);\n    }\n  }.bind(this));\n  this.modes = {\n    normal: new _STLBModes.STLBModeNormal(this, []),\n    search: null\n  };\n  this.mode = this.modes.normal;\n}\n\nMSelectTreeLeafBox.tag = 'MSelectTreeLeafBox'.toString();\n\nMSelectTreeLeafBox.render = function () {\n  return (0, _ACore._)({\n    extendEvent: ['pressitem', 'close'],\n    \"class\": ['am-modal', 'am-dropdown-box-modal'],\n    child: {\n      \"class\": ['am-select-tree-leaf-box', 'am-dropdown-box', 'as-dropdown-box-common-style'],\n      child: [{\n        \"class\": 'am-dropdown-box-header',\n        child: [{\n          tag: _Searcher[\"default\"].tag\n        }, {\n          tag: 'button',\n          \"class\": 'am-dropdown-box-close-btn',\n          child: 'span.mdi.mdi-close'\n        }]\n      }, {\n        \"class\": ['am-dropdown-box-body', 'am-select-tree-leaf-box-body'],\n        child: {\n          \"class\": 'am-select-tree-leaf-box-list'\n        }\n      }]\n    }\n  });\n};\n\nMSelectTreeLeafBox.prototype.viewToSelected = function () {\n  this.modes.normal.viewToSelected();\n};\n\nMSelectTreeLeafBox.prototype.notifyPressItem = function () {\n  delete this.pendingValue;\n  this.emit('pressitem', {\n    type: 'pressitem',\n    target: this\n  }, this);\n};\n\nMSelectTreeLeafBox.prototype.getItemByValue = function (value) {\n  return this.modes.normal.getItemByValue(value);\n};\n\nMSelectTreeLeafBox.prototype.resetSearchState = _MCheckTreeBox[\"default\"].prototype.resetSearchState;\nMSelectTreeLeafBox.property = _STLBPropsHandlers[\"default\"];\nMSelectTreeLeafBox.eventHandler = {};\nMSelectTreeLeafBox.eventHandler.searchTextInputModify = _MCheckTreeBox[\"default\"].eventHandler.searchTextInputModify;\n\n_ACore[\"default\"].install(MSelectTreeLeafBox);\n\nvar _default = MSelectTreeLeafBox;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/selecttreeleafbox/MSelectTreeLeafBox.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/selecttreeleafbox/STLBModes.js":
/*!********************************************************************!*\
  !*** ./node_modules/absol-acomp/js/selecttreeleafbox/STLBModes.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.STLBModeNormal = STLBModeNormal;\nexports.STLBModeSearch = STLBModeSearch;\n\nvar _MSTBItemHolder = _interopRequireDefault(__webpack_require__(/*! ./MSTBItemHolder */ \"./node_modules/absol-acomp/js/selecttreeleafbox/MSTBItemHolder.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _CTBModes = __webpack_require__(/*! ../checktreebox/CTBModes */ \"./node_modules/absol-acomp/js/checktreebox/CTBModes.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction STLBModeNormal(elt, items) {\n  var _this = this;\n\n  this.level = -1;\n  this.elt = elt;\n  this.$list = elt.$list;\n  this.children = items.map(function (item) {\n    return new _MSTBItemHolder[\"default\"](elt, _this, item);\n  });\n  this.hasDesc = this.hasDesc || this.children.some(function (child) {\n    return child.hasDesc;\n  });\n  this.hasIcon = this.hasIcon || this.children.some(function (child) {\n    return child.hasIcon;\n  });\n  this.dict = this.children.reduce(function visit(ac, child) {\n    var key = (0, _utils.keyStringOf)(child.data.value);\n\n    if (ac[key]) {\n      console.error('Duplicate value:', ac[key].data, child.data);\n    }\n\n    ac[key] = child;\n\n    if (child.children) {\n      child.children.reduce(visit, ac);\n    }\n\n    return ac;\n  }, {});\n  this.selectedHolder = null;\n}\n\nSTLBModeNormal.prototype.getHolderByValue = _CTBModes.CTBModeNormal.prototype.getHolderByValue;\n\nSTLBModeNormal.prototype.getItemByValue = function (value) {\n  var holder = this.getHolderByValue(value);\n  if (holder) return holder.data;\n  return null;\n};\n\nSTLBModeNormal.prototype.getFirstLeafHolder = function () {\n  var res = null;\n\n  if (this.children) {\n    this.children.some(function visit(node) {\n      if (node.data.isLeaf) {\n        res = node;\n        return true;\n      }\n\n      if (node.children) {\n        return node.children.some(visit);\n      }\n\n      return false;\n    });\n  }\n\n  return res;\n};\n\nSTLBModeNormal.prototype.onStart = function () {\n  this.$list.clearChild();\n  var rootHolders = this.children;\n  var viewElements = [];\n  rootHolders.forEach(function (holder) {\n    holder.getViewElements(viewElements);\n  }, []);\n  this.$list.addChild(viewElements);\n};\n\nSTLBModeNormal.prototype.setValue = function (value, strict) {\n  var holder = this.selectedHolder;\n\n  if (holder) {\n    holder.select(false);\n  }\n\n  holder = this.getHolderByValue(value);\n  if (holder && !holder.data.isLeaf) holder = null;\n\n  if (!holder && strict) {\n    holder = this.getFirstLeafHolder();\n  }\n\n  if (holder && holder.data.isLeaf) {\n    holder.select(true);\n  }\n\n  this.selectedHolder = holder;\n};\n\nSTLBModeNormal.prototype.getValue = function (strict) {\n  var holder = this.selectedHolder;\n  if (strict && !holder) holder = this.getFirstLeafHolder();\n\n  if (holder) {\n    return holder.data.value;\n  } else {\n    throw new Error('Not selected!');\n  }\n};\n\nSTLBModeNormal.prototype.viewToSelected = function () {\n  var _this2 = this;\n\n  if (!this.selectedHolder) return;\n\n  var visitUp = function visitUp(node) {\n    var parent = node.parent;\n\n    if (parent !== _this2) {\n      visitUp(parent);\n    }\n\n    if (node.status === 'close') {\n      node.elt.status = 'open';\n      node.ev_statusChange();\n    }\n  };\n\n  visitUp(this.selectedHolder);\n  (0, _utils.vScrollIntoView)(this.selectedHolder.elt);\n};\n\nSTLBModeNormal.prototype.onStop = function () {};\n\nfunction STLBModeSearch(elt, items) {\n  var _this3 = this;\n\n  this.level = -1;\n  this.elt = elt;\n  this.$list = this.elt.$list;\n  this.children = items.map(function (item) {\n    return new _MSTBItemHolder[\"default\"](elt, _this3, item);\n  });\n  this.dict = this.children.reduce(function visit(ac, child) {\n    var key = (0, _utils.keyStringOf)(child.data.value);\n\n    if (ac[key]) {\n      console.error('Duplicate value:', ac[key].data, child.data);\n    }\n\n    ac[key] = child;\n\n    if (child.children) {\n      child.children.reduce(visit, ac);\n    }\n\n    return ac;\n  }, {});\n  this.selectedHolder = null;\n}\n\nSTLBModeSearch.prototype.updateSelectedFromRef = function () {\n  if (this.selectedHolder) this.selectedHolder.select(false);\n  this.selectedHolder = null;\n  var value = this.elt.value;\n  var holder = this.dict[(0, _utils.keyStringOf)(value)];\n\n  if (holder) {\n    holder.select(true);\n    this.selectedHolder = holder;\n  }\n};\n\nSTLBModeSearch.prototype.onStart = function () {\n  STLBModeNormal.prototype.onStart.call(this);\n  this.updateSelectedFromRef();\n};\n\nSTLBModeSearch.prototype.onStop = function () {};\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/selecttreeleafbox/STLBModes.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/selecttreeleafbox/STLBPropsHandlers.js":
/*!****************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/selecttreeleafbox/STLBPropsHandlers.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\nvar STLBPropsHandlers = {};\nSTLBPropsHandlers.items = {\n  set: function set(items) {\n    var curValue;\n    var selected = true;\n\n    if ('pendingValue' in this) {\n      curValue = this.pendingValue;\n    } else {\n      try {\n        curValue = this.modes.normal.getValue(this.strictValue);\n      } catch (err) {\n        selected = false;\n      }\n    }\n\n    this.itemListCtrl.setItems(items);\n    if (selected || this.strictValue) this.modes.normal.setValue(curValue, this.strictValue);\n\n    if (this.mode !== this.modes.normal) {\n      this.mode.updateSelectedFromRef();\n    }\n  },\n  get: function get() {\n    this.itemListCtrl.getItems();\n  }\n};\nSTLBPropsHandlers.strictValue = {\n  set: function set(value) {\n    if (value) {\n      this.$box.addClass('as-strict-value');\n    } else {\n      this.$box.removeClass('as-strict-value');\n    }\n\n    this.modes.normal.setValue(this.pendingValue, this.strictValue);\n\n    if (this.mode !== this.modes.normal) {\n      this.mode.updateSelectedFromRef();\n    }\n  },\n  get: function get() {\n    return this.$box.hasClass('as-strict-value');\n  }\n};\nSTLBPropsHandlers.value = {\n  /***\r\n   * @this MSelectTreeLeafBox\r\n   * @param value\r\n   */\n  set: function set(value) {\n    this.pendingValue = value;\n    this.modes.normal.setValue(this.pendingValue, this.strictValue);\n  },\n  get: function get() {\n    if ('pendingValue' in this) {\n      return this.pendingValue;\n    } else {\n      try {\n        return this.modes.normal.getValue(this.strictValue);\n      } catch (err) {\n        return undefined;\n      }\n    }\n  }\n};\nSTLBPropsHandlers.enableSearch = {\n  set: function set(value) {\n    if (value) {\n      this.$box.addClass('as-enable-search');\n    } else {\n      this.$box.removeClass('as-enable-search');\n    }\n  },\n  get: function get() {\n    return this.$box.hasClass('as-enable-search');\n  }\n};\nvar _default = STLBPropsHandlers;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/selecttreeleafbox/STLBPropsHandlers.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/selecttreeleafbox/STLIPropHandlers.js":
/*!***************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/selecttreeleafbox/STLIPropHandlers.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _CTIPropHandlers = _interopRequireDefault(__webpack_require__(/*! ../checktreebox/CTIPropHandlers */ \"./node_modules/absol-acomp/js/checktreebox/CTIPropHandlers.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar STLIPropHandlers = {};\nSTLIPropHandlers.data = {\n  set: function set(data) {\n    this._data = data;\n\n    this._updateData();\n  },\n  get: function get() {\n    return this._data;\n  }\n};\nSTLIPropHandlers.text = {\n  get: function get() {\n    var data = this._data;\n    if (data === undefined || data === null) return '';\n    if (typeof data === 'string') return data;\n    if (data && data.text) return data.text + '';\n    return data + '';\n  }\n};\nSTLIPropHandlers.value = {\n  get: function get() {\n    var data = this._data;\n    if (data === undefined || data === null) return data;\n    if (data && 'value' in data) return data.value;\n    return data;\n  }\n};\nSTLIPropHandlers.level = _CTIPropHandlers[\"default\"].level;\nSTLIPropHandlers.status = _CTIPropHandlers[\"default\"].status;\nSTLIPropHandlers.selected = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-selected');\n    } else {\n      this.removeClass('as-selected');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-selected');\n  }\n};\n/****\r\n * @name text\r\n * @type {string}\r\n * @memberOf SelectTreeLeafItem#\r\n */\n\n/****\r\n * @name value\r\n * @type {string|number}\r\n * @memberOf SelectTreeLeafItem#\r\n */\n\n/****\r\n * @name data\r\n * @type {*}\r\n * @memberOf SelectTreeLeafItem#\r\n */\n\n/****\r\n * @name selected\r\n * @type {boolean}\r\n * @memberOf SelectTreeLeafItem#\r\n */\n\nvar _default = STLIPropHandlers;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/selecttreeleafbox/STLIPropHandlers.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/selecttreeleafbox/SelectTreeLeafItem.js":
/*!*****************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/selecttreeleafbox/SelectTreeLeafItem.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _STLIPropHandlers = _interopRequireDefault(__webpack_require__(/*! ./STLIPropHandlers */ \"./node_modules/absol-acomp/js/selecttreeleafbox/STLIPropHandlers.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\n__webpack_require__(/*! ../../css/selecttreeeleafbox.css */ \"./node_modules/absol-acomp/css/selecttreeeleafbox.css\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction SelectTreeLeafItem() {\n  this.$text = (0, _ACore.$)('.am-select-tree-leaf-item-text', this);\n  this.$desc = (0, _ACore.$)('.am-select-tree-leaf-item-desc', this);\n  this.$iconCtn = (0, _ACore.$)('.am-select-tree-leaf-item-icon-ctn', this);\n  this.addEventListener('click', this.eventHandler.click);\n}\n\nSelectTreeLeafItem.tag = 'SelectTreeLeafItem'.toLowerCase();\n\nSelectTreeLeafItem.render = function () {\n  return (0, _ACore._)({\n    extendEvent: ['click', 'statuschange'],\n    \"class\": ['am-select-tree-leaf-item', 'am-dropdown-box-item'],\n    child: [{\n      \"class\": 'am-select-tree-leaf-item-toggle-ctn',\n      child: 'toggler-ico'\n    }, {\n      \"class\": 'am-select-tree-leaf-item-icon-ctn'\n    }, {\n      \"class\": 'am-select-tree-leaf-item-text',\n      child: {\n        text: ''\n      }\n    }, {\n      \"class\": 'am-select-tree-leaf-item-desc',\n      child: {\n        text: ''\n      }\n    }]\n  });\n};\n\nSelectTreeLeafItem.prototype._updateData = function () {\n  this.$text.firstChild.data = this.text;\n  this.attr('data-key', (0, _utils.keyStringOf)(this.value));\n  this.$iconCtn.clearChild();\n  var icon = this.data && this.data.icon;\n\n  if (icon) {\n    icon = (0, _ACore._)(icon);\n    if (icon.parentElement) icon = (0, _ACore.$)(icon.cloneNode(true));\n    this.$iconCtn.addChild(icon);\n    this.addClass('as-has-icon');\n  } else {\n    this.removeClass('as-has-icon');\n  }\n\n  if (this.data && this.data.isLeaf) {\n    this.addClass('as-is-leaf');\n  } else {\n    this.removeClass('as-is-leaf');\n  }\n};\n\nSelectTreeLeafItem.property = _STLIPropHandlers[\"default\"];\nSelectTreeLeafItem.eventHandler = {};\n\nSelectTreeLeafItem.eventHandler.click = function (event) {\n  if (this._data && this._data.isLeaf) {\n    this.emit('click', {\n      type: 'click',\n      target: this,\n      originalEvent: event\n    }, this);\n  } else {\n    if (this.status !== 'none') {\n      this.status = this.status === 'open' ? 'close' : 'open';\n      this.emit('statuschange', {\n        type: 'statuschange',\n        target: this,\n        originalEvent: event\n      }, this);\n    }\n  }\n};\n\nvar _default = SelectTreeLeafItem;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/selecttreeleafbox/SelectTreeLeafItem.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/selecttreeleafmenu/MSLTLMBoxController.js":
/*!*******************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/selecttreeleafmenu/MSLTLMBoxController.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nfunction MSLTLMBoxController(elt) {\n  this.elt = elt;\n  this.$box = this.elt.$box;\n\n  for (var key in this) {\n    if (key.startsWith('ev_')) this[key] = this[key].bind(this);\n  }\n\n  this.elt.on('click', this.ev_click);\n  this.$box.on('close', this.ev_boxClose);\n}\n\nMSLTLMBoxController.prototype.onFocus = function () {\n  this.elt.off('click', this.ev_click);\n  this.$box.addTo(document.body);\n};\n\nMSLTLMBoxController.prototype.onBlur = function () {\n  var _this = this;\n\n  this.$box.remove();\n  setTimeout(function () {\n    _this.elt.on('click', _this.ev_click);\n  }, 10);\n};\n\nMSLTLMBoxController.prototype.ev_click = function () {\n  if (this.elt.disabled || this.elt.readOnly) return;\n  this.elt.isFocus = true;\n};\n\nMSLTLMBoxController.prototype.ev_boxClose = function () {\n  this.elt.isFocus = false;\n};\n\nvar _default = MSLTLMBoxController;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/selecttreeleafmenu/MSLTLMBoxController.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/selecttreeleafmenu/STLMPropHandlers.js":
/*!****************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/selecttreeleafmenu/STLMPropHandlers.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar STLMPropHandlers = {};\nSTLMPropHandlers.isFocus = {\n  set: function set(value) {\n    value = !!value;\n    if (value && (this.disabled || this.readOnly)) return;\n    if (this.hasClass('as-focus') === value) return;\n\n    if (value) {\n      this.addClass('as-focus');\n      this.savedValue = this.$box.value;\n      this.boxCtrl.onFocus();\n      this.$box.viewToSelected();\n    } else {\n      this.removeClass('as-focus');\n      this.boxCtrl.onBlur();\n      this.$box.resetSearchState();\n\n      if ((0, _utils.keyStringOf)(this.savedValue) !== (0, _utils.keyStringOf)(this.$box.value)) {\n        this._updateText();\n\n        this.notifyChange();\n      }\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-focus');\n  }\n};\nSTLMPropHandlers.items = {\n  set: function set(items) {\n    this.$box.items = (0, _utils.copySelectionItemArray)(items, {\n      removeNoView: true\n    });\n\n    this._updateText();\n  },\n  get: function get() {\n    return this.$box.items;\n  }\n};\nSTLMPropHandlers.value = {\n  set: function set(value) {\n    this.$box.value = value;\n\n    this._updateText();\n  },\n  get: function get() {\n    return this.$box.value;\n  }\n};\nSTLMPropHandlers.strictValue = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-strict-value');\n    } else {\n      this.removeClass('as-strict-value');\n    }\n\n    this.$box.strictValue = value;\n\n    this._updateText();\n  },\n  get: function get() {\n    return this.$box.strictValue;\n  }\n};\nSTLMPropHandlers.disabled = {\n  set: function set(value) {\n    if (value) {\n      this.addClass('as-disabled');\n    } else {\n      this.removeClass('as-disabled');\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-disabled');\n  }\n};\nvar _default = STLMPropHandlers;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/selecttreeleafmenu/STLMPropHandlers.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/selecttreeleafmenu/SelectTreeLeafMenu.js":
/*!******************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/selecttreeleafmenu/SelectTreeLeafMenu.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _STLMPropHandlers = _interopRequireDefault(__webpack_require__(/*! ./STLMPropHandlers */ \"./node_modules/absol-acomp/js/selecttreeleafmenu/STLMPropHandlers.js\"));\n\nvar _MSelectTreeLeafBox = _interopRequireDefault(__webpack_require__(/*! ../selecttreeleafbox/MSelectTreeLeafBox */ \"./node_modules/absol-acomp/js/selecttreeleafbox/MSelectTreeLeafBox.js\"));\n\nvar _MSLTLMBoxController = _interopRequireDefault(__webpack_require__(/*! ./MSLTLMBoxController */ \"./node_modules/absol-acomp/js/selecttreeleafmenu/MSLTLMBoxController.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction SelectTreeLeafMenu() {\n  this.$box = (0, _ACore._)({\n    tag: _MSelectTreeLeafBox[\"default\"],\n    on: {\n      pressitem: this.eventHandler.boxPressItem\n    }\n  });\n\n  _OOP[\"default\"].drillProperty(this, this.$box, 'enableSearch');\n\n  this.$holderItem = (0, _ACore.$)('selectlistitem', this);\n  this.boxCtrl = new _MSLTLMBoxController[\"default\"](this);\n  this.strictValue = true; //default\n}\n\nSelectTreeLeafMenu.tag = 'SelectTreeLeafMenu'.toLowerCase();\n\nSelectTreeLeafMenu.render = function () {\n  return (0, _ACore._)({\n    \"class\": ['am-select-tree-menu', 'absol-selectmenu', 'as-select-menu', 'as-select-tree-leaf-menu'],\n    extendEvent: ['change'],\n    attr: {\n      tabindex: '1'\n    },\n    child: [{\n      \"class\": 'absol-selectmenu-holder-item',\n      child: 'selectlistitem'\n    }, {\n      tag: 'button',\n      \"class\": 'absol-selectmenu-btn',\n      child: ['dropdown-ico']\n    }]\n  });\n};\n\nSelectTreeLeafMenu.prototype._updateText = function () {\n  var value = this.value;\n  var item = this.$box.getItemByValue(value);\n  this.$holderItem.data = item || {\n    text: '',\n    value: 0\n  };\n};\n\nSelectTreeLeafMenu.prototype.notifyChange = function () {\n  this.emit('change', {\n    type: 'change',\n    target: this\n  }, this);\n};\n\nSelectTreeLeafMenu.eventHandler = {};\n\nSelectTreeLeafMenu.eventHandler.boxPressItem = function () {\n  var _this = this;\n\n  setTimeout(function () {\n    _this.isFocus = false;\n  }, 100);\n};\n\nSelectTreeLeafMenu.property = _STLMPropHandlers[\"default\"];\nvar _default = SelectTreeLeafMenu;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/selecttreeleafmenu/SelectTreeLeafMenu.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/tablescroller/TSLMoveTool.js":
/*!******************************************************************!*\
  !*** ./node_modules/absol-acomp/js/tablescroller/TSLMoveTool.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Hanger = _interopRequireDefault(__webpack_require__(/*! ../Hanger */ \"./node_modules/absol-acomp/js/Hanger.js\"));\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _Rectangle = _interopRequireDefault(__webpack_require__(/*! absol/src/Math/Rectangle */ \"./node_modules/absol/src/Math/Rectangle.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n *\r\n * @param {TableScroller} elt\r\n * @constructor\r\n */\nfunction TSLMoveTool(elt) {\n  var _this = this;\n\n  this.elt = elt;\n  this.$table = null;\n  Object.keys(TSLMoveTool.prototype).forEach(function (key) {\n    if (key.startsWith('ev_')) {\n      _this[key] = _this[key].bind(_this);\n    }\n  });\n  this.init();\n}\n\nTSLMoveTool.prototype.init = function () {\n  this.elt = (0, _ACore._)({\n    tag: _Hanger[\"default\"],\n    elt: this.elt,\n    on: {\n      predrag: this.ev_preDrag,\n      dragstart: this.ev_dragStart,\n      drag: this.ev_drag,\n      dragend: this.ev_dragEnd\n    }\n  });\n};\n\nTSLMoveTool.prototype.onAttachTable = function () {};\n\nTSLMoveTool.prototype.ev_preDrag = function (event) {\n  var e = event.target;\n  var isOK = false;\n\n  while (e && e.tagName !== 'TABLE') {\n    if (e.classList && e.classList.contains('as-drag-zone')) {\n      isOK = true;\n      break;\n    }\n\n    e = e.parentElement;\n  }\n\n  if (isOK) {\n    event.preventDefault();\n  } else {\n    event.cancel();\n  }\n};\n\nTSLMoveTool.prototype._findRowIdx = function (y) {\n  var newY = _Rectangle[\"default\"].fromClientRect(this.elt.$originTableBody.getBoundingClientRect()).y;\n\n  var oldY = this.dragData.bodyBound.y;\n  var dy = newY - oldY;\n  var yArr = this.dragData.rowBounds.map(function (rect) {\n    return rect.y + dy + rect.height / 2;\n  });\n  if (this.dragData.rowBounds.length === 0) yArr.push(0);\n  var low = 0;\n  var high = yArr.length - 1;\n  var mid0, mid1;\n\n  while (low < high) {\n    mid0 = low + high >> 1;\n    mid1 = mid0 + 1;\n\n    if (Math.abs(y - yArr[mid0]) < Math.abs(y - yArr[mid1])) {\n      high = mid0;\n    } else {\n      low = mid1;\n    }\n  }\n\n  return low;\n};\n\nTSLMoveTool.prototype.ev_dragStart = function (event) {\n  var t = this.findRow(event.target);\n  if (!t) return;\n  this.elt.addClass('as-dragging');\n  this.dragData = Object.assign({}, t);\n  this.dragData.copy.addClass('as-dragging');\n  this.dragData.original.addClass('as-dragging');\n\n  var rowBound = _Rectangle[\"default\"].fromClientRect(this.dragData.original.getBoundingClientRect());\n\n  var bodyBound = _Rectangle[\"default\"].fromClientRect(this.elt.$originTableBody.getBoundingClientRect());\n\n  this.dragData.mouseOffset = event.currentPoint.sub(rowBound.A());\n  this.dragData.rowIdx = Array.prototype.indexOf.call(this.elt.$originTableBody.childNodes, this.dragData.original);\n  this.dragData.newRowIdx = this.dragData.rowIdx;\n  this.dragData.rowBound = rowBound;\n  this.dragData.bodyBound = bodyBound;\n  this.dragData.rowOffset = rowBound.A().sub(bodyBound.A());\n  this.dragData.rowBounds = Array.prototype.map.call(this.elt.$originTableBody.childNodes, function (elt) {\n    return _Rectangle[\"default\"].fromClientRect(elt.getBoundingClientRect());\n  });\n};\n\nTSLMoveTool.prototype.ev_drag = function (event) {\n  var _this2 = this;\n\n  if (!this.dragData) return;\n\n  var bodyBound = _Rectangle[\"default\"].fromClientRect(this.elt.$originTableBody.getBoundingClientRect());\n\n  var rowA = bodyBound.A().add(this.dragData.rowOffset);\n  var rowTransformed = event.currentPoint.sub(this.dragData.mouseOffset);\n  var transform = rowTransformed.sub(rowA);\n  var originalRow = this.dragData.original;\n  originalRow.addStyle('transform', \"translate(0, \".concat(transform.y, \"px )\"));\n  this.dragData.copy.addStyle('transform', \"translate(0, \".concat(transform.y, \"px )\"));\n  this.dragData.hiddenCells = Array.prototype.filter.call(this.dragData.original.childNodes, function (e) {\n    return e.tagName === 'TD';\n  }).slice(0, this.elt.fixedCol);\n  this.dragData.hiddenCells.forEach(function (e) {\n    return (0, _ACore.$)(e).addClass('as-transparent-fix');\n  });\n\n  var newIdx = this._findRowIdx(rowTransformed.y + this.dragData.rowBound.height / 2);\n\n  this.dragData.newRowIdx = newIdx;\n  var rows = this.elt.$originTableBody.childNodes;\n  var curIdx = this.dragData.rowIdx; // var copyRows = this.elt.$f\n\n  var rowBound = this.dragData.rowBound;\n  rows.forEach(function (elt, i) {\n    if (elt === originalRow) return;\n\n    var copyElt = _this2.elt.leftCopyRows[elt.getAttribute('data-id')];\n\n    var dy = 0;\n\n    if (i >= Math.min(newIdx, curIdx) && i <= Math.max(newIdx, curIdx)) {\n      if (i > curIdx && i <= newIdx) {\n        dy = -rowBound.height;\n      } else if (i >= newIdx && i < curIdx) {\n        dy = rowBound.height;\n      }\n    }\n\n    elt.addStyle('transform', \"translate(0, \".concat(dy, \"px)\"));\n    copyElt.addStyle('transform', \"translate(0, \".concat(dy, \"px)\"));\n  });\n};\n\nTSLMoveTool.prototype.ev_dragEnd = function (event) {\n  var _this3 = this;\n\n  this.dragData.original.removeStyle('transform');\n  this.dragData.copy.removeStyle('transform');\n  this.dragData.copy.removeClass('as-dragging');\n  this.dragData.original.removeClass('as-dragging');\n  this.elt.removeClass('as-dragging');\n  this.elt.removeClass('as-has-new-pos');\n  this.dragData.hiddenCells.forEach(function (e) {\n    return e.removeClass('as-transparent-fix');\n  });\n  var rows = this.elt.$originTableBody.childNodes;\n  rows.forEach(function (elt) {\n    var copyElt = _this3.elt.leftCopyRows[elt.getAttribute('data-id')];\n\n    elt.addStyle('transform', 'translate(0, 0)');\n    copyElt.addStyle('transform', 'translate(0, 0)');\n  });\n  var at, copyAt;\n\n  if (this.dragData.newRowIdx !== this.dragData.rowIdx) {\n    at = rows[this.dragData.newRowIdx];\n    copyAt = this.elt.leftCopyRows[at.attr('data-id')];\n\n    if (this.dragData.rowIdx < this.dragData.newRowIdx) {\n      (0, _ACore.$)(at.parentElement).addChildAfter(this.dragData.original, at);\n      (0, _ACore.$)(copyAt.parentElement).addChildAfter(this.dragData.copy, copyAt);\n    } else {\n      (0, _ACore.$)(at.parentElement).addChildBefore(this.dragData.original, at);\n      (0, _ACore.$)(copyAt.parentElement).addChildBefore(this.dragData.copy, copyAt);\n    }\n\n    this.elt.reindexRows();\n    this.elt.emit('orderchange', {\n      target: this.elt,\n      from: this.dragData.rowIdx,\n      to: this.dragData.newRowIdx\n    }, this.elt);\n  }\n};\n\nTSLMoveTool.prototype.findRow = function (fromElt) {\n  var e = fromElt;\n  var rowElt;\n\n  while (e) {\n    if (e.tagName === 'TR') {\n      rowElt = e;\n      break;\n    }\n\n    e = e.parentElement;\n  }\n\n  if (!rowElt) return null;\n  var id = rowElt.getAttribute('data-id');\n  return {\n    original: (0, _ACore.$)(this.elt.originalRows[id]),\n    copy: (0, _ACore.$)(this.elt.leftCopyRows[id])\n  };\n};\n\nvar _default = TSLMoveTool;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/tablescroller/TSLMoveTool.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/tablescroller/TableScroller.js":
/*!********************************************************************!*\
  !*** ./node_modules/absol-acomp/js/tablescroller/TableScroller.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../../css/tablescroller.css */ \"./node_modules/absol-acomp/css/tablescroller.css\");\n\nvar _ACore = _interopRequireDefault(__webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _TSLMoveTool = _interopRequireDefault(__webpack_require__(/*! ./TSLMoveTool */ \"./node_modules/absol-acomp/js/tablescroller/TSLMoveTool.js\"));\n\nvar _stringGenerate = __webpack_require__(/*! absol/src/String/stringGenerate */ \"./node_modules/absol/src/String/stringGenerate.js\");\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _DomSignal = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/DomSignal */ \"./node_modules/absol/src/HTML5/DomSignal.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar $ = _ACore[\"default\"].$;\nvar _ = _ACore[\"default\"]._;\n\nvar sliceCellArray = function sliceCellArray(cells, start, end) {\n  if (typeof start !== \"number\") start = 0;\n  if (typeof end !== \"number\") start = Infinity;\n  var res = [];\n  cells = cells.slice();\n  var cell, colSpan;\n  var n = 0;\n\n  while (cells.length > 0) {\n    cell = cells.shift();\n    colSpan = parseInt(cell.getAttribute('colspan') || '1') || 1;\n    n += colSpan;\n    if (n > start && n <= end) res.push(cell);\n  }\n\n  return res;\n};\n/***\r\n * @extends {AElement}\r\n * @constructor\r\n */\n\n\nfunction TableScroller() {\n  this.$originCtn = $('.as-table-scroller-origin-table-ctn', this);\n  this.$originTable = undefined;\n  this.$originContent = undefined;\n  this.$fixedYHeaderScroller = $('.as-table-scroller-fixed-y-header-scroller', this);\n  this.$fixedYHeader = $('.as-table-scroller-fixed-y-header', this);\n  this.$fixedXYHeader = $('.as-table-scroller-fixed-xy-header', this);\n  this.$fixXCol = $('.as-table-scroller-fixed-x-col', this);\n  this.$attachHook = $('attachhook', this);\n  this.$attachHook.requestUpdateSize = this.updateContentSize.bind(this);\n  this.$attachHook.on('attached', function () {\n    _Dom[\"default\"].addToResizeSystem(this);\n  });\n  this.$domSignal = _('attachhook');\n  this.appendChild(this.$domSignal);\n  this.domSignal = new _DomSignal[\"default\"](this.$domSignal);\n  this.domSignal.on('requestUpdateContent', this.updateContent.bind(this));\n  this.$vscrollbar = $('.absol-table-scroller-vscrollbar-container vscrollbar', this);\n  this.$hscrollbar = $('.absol-table-scroller-hscrollbar-container hscrollbar', this);\n  this.$vscroller = $('.as-table-scroller-vertical-scroller', this);\n  this.$hscroller = $('.as-table-scroller-horizontal-scroller', this);\n  this.$leftLine = $('.absol-table-scroller-left-line', this).addStyle('display', 'none');\n  this.$headLine = $('.absol-table-scroller-head-line', this);\n  this.scrollCtr = new ScrollController(this);\n  this.moveTool = new _TSLMoveTool[\"default\"](this);\n  this._swappedPairs = [];\n  this.originalRows = {};\n  this.leftCopyRows = {};\n  /***\r\n   * @name fixedCol\r\n   * @type {number}\r\n   * @memberOf TableScroller#\r\n   */\n}\n\nTableScroller.tag = 'TableScroller'.toLowerCase();\n\nTableScroller.render = function () {\n  return _({\n    \"class\": 'absol-table-scroller',\n    extendEvent: ['orderchange', 'preupdatesize', 'sizeupdated'],\n    child: [{\n      \"class\": 'absol-table-scroller-content',\n      child: [{\n        \"class\": 'as-table-scroller-vertical-scroller',\n        child: [{\n          \"class\": 'as-table-scroller-horizontal-scroller-viewport',\n          child: [{\n            \"class\": 'as-table-scroller-fixed-x-col-ctn',\n            child: {\n              tag: 'table',\n              \"class\": 'as-table-scroller-fixed-x-col'\n            }\n          }, {\n            \"class\": 'as-table-scroller-horizontal-scroller',\n            child: [{\n              \"class\": 'as-table-scroller-origin-table-ctn'\n            }]\n          }]\n        }]\n      }, {\n        \"class\": 'as-table-scroller-fixed-y-header-ctn',\n        child: {\n          \"class\": 'as-table-scroller-fixed-y-header-scroller',\n          child: {\n            tag: 'table',\n            \"class\": 'as-table-scroller-fixed-y-header'\n          }\n        }\n      }, {\n        \"class\": 'as-table-scroller-fixed-xy-header-ctn',\n        child: {\n          tag: 'table',\n          \"class\": 'as-table-scroller-fixed-xy-header'\n        }\n      }, '.absol-table-scroller-viewport', '.absol-table-scroller-fixed-viewport', //place holder\n      {\n        \"class\": 'absol-table-scroller-header-hscroller',\n        child: '.absol-table-scroller-header-hscroller-viewport'\n      }, {\n        \"class\": 'absol-table-scroller-left-vscroller',\n        child: '.absol-table-scroller-left-vscroller-viewport'\n      }, '.absol-table-scroller-head-line', '.absol-table-scroller-left-line']\n    }, {\n      \"class\": 'absol-table-scroller-vscrollbar-container',\n      child: {\n        tag: 'vscrollbar'\n      }\n    }, {\n      \"class\": 'absol-table-scroller-hscrollbar-container',\n      child: {\n        tag: 'hscrollbar'\n      }\n    }, 'attachhook']\n  });\n};\n\nTableScroller.scrollSize = 17; //default \n\n_Dom[\"default\"].getScrollSize().then(function (size) {\n  TableScroller.scrollSize = size.width; //default scroller\n\n  TableScroller.$style = _('style[id=\"table-scroller-css\"]').addTo(document.head);\n  TableScroller.$style.innerHTML = ['body .absol-table-scroller {', '    --scrollbar-width: ' + (size.width + 0) + 'px', '}'].join('\\n');\n\n  _Dom[\"default\"].updateResizeSystem();\n\n  setTimeout(_Dom[\"default\"].updateResizeSystem.bind(_Dom[\"default\"]), 30); // css load delay\n});\n\nTableScroller.eventHandler = {};\n\nTableScroller.prototype.clearChild = function () {\n  this.$fixXCol.clearChild();\n  this.$fixedYHeader.clearChild();\n  this.$fixedXYHeader.clearChild();\n  this.$originTable = null;\n  return this;\n};\n\nTableScroller.prototype.addChild = function (elt) {\n  if (this.$originTable) {\n    throw new Error('Only one table is accepted!');\n  }\n\n  this.$originContent = elt;\n  this.$originTable = $('table', this.$originContent);\n  this.$originCtn.addChild(this.$originTable);\n  this.requestUpdateContent();\n};\n\nTableScroller.prototype._revertWrapped = function () {\n  var pair;\n\n  while (this._swappedPairs.length > 0) {\n    pair = this._swappedPairs.pop();\n    (0, _utils.swapChildrenInElt)(pair[0], pair[1]);\n  }\n};\n\nTableScroller.prototype._makeDataIdent = function () {\n  var _this = this;\n\n  this.originalRows = {};\n  Array.prototype.slice.call(this.$originTableBody.childNodes).forEach(function (elt, i) {\n    var id;\n\n    if (elt.tagName === 'TR') {\n      id = elt.getAttribute('data-id') || (0, _stringGenerate.randomIdent)(12) + '_' + i;\n      elt.setAttribute('data-id', id);\n      _this.originalRows[id] = $(elt);\n    } else {\n      elt.remove();\n    }\n  });\n};\n\nTableScroller.prototype._updateFixedYHeader = function () {\n  var _this2 = this;\n\n  var head = $(this.$originTableThead.cloneNode(false));\n  var headRows = Array.prototype.filter.call(this.$originTableThead.childNodes, function (elt) {\n    return elt.tagName === 'TR';\n  }).map(function (tr) {\n    var copyTr = $(tr.cloneNode(false));\n    copyTr.$origin = tr;\n    var cells = Array.prototype.filter.call(tr.childNodes, function (elt) {\n      return elt.tagName === 'TH' || elt.tagName === 'TD';\n    }).map(function (td) {\n      return $(Object.assign(td.cloneNode(true), {\n        $origin: td\n      }));\n    });\n    copyTr.addChild(cells);\n    sliceCellArray(cells, _this2.fixedCol).forEach(function (elt) {\n      (0, _utils.swapChildrenInElt)(elt, elt.$origin);\n\n      _this2._swappedPairs.push([elt, elt.$origin]);\n    });\n    return copyTr;\n  });\n  head.addChild(headRows);\n  this.$fixedYHeader.clearChild().addChild(head);\n  this.$fixedYHeader.attr('class', this.$originTable.attr('class')).addClass('as-table-scroller-fixed-y-header');\n};\n\nTableScroller.prototype._updateFixedYHeaderSize = function () {\n  var bound = this.$originTable.getBoundingClientRect();\n  this.$fixedYHeader.addStyle('width', bound.width + 'px');\n  Array.prototype.forEach.call(this.$fixedYHeader.firstChild.firstChild.childNodes, function (elt) {\n    elt.addStyle('width', elt.$origin.getBoundingClientRect().width + 'px');\n  });\n  this.$headLine.addStyle('top', this.$fixedYHeader.getBoundingClientRect().height - 1 + 'px').addStyle('max-width', bound.width + 'px');\n};\n\nTableScroller.prototype._updateFixedXCol = function () {\n  var _this3 = this;\n\n  this.$fixXCol.clearChild();\n  var head = $(this.$originTableThead.cloneNode(false));\n  var headRows = Array.prototype.filter.call(this.$originTableThead.childNodes, function (elt) {\n    return elt.tagName === 'TR';\n  }).map(function (tr) {\n    var copyTr = $(tr.cloneNode(false));\n    copyTr.$origin = tr;\n    var cells = Array.prototype.filter.call(tr.childNodes, function (elt) {\n      return elt.tagName === 'TH' || elt.tagName === 'TD';\n    });\n    cells = sliceCellArray(cells, 0, _this3.fixedCol).map(function (td) {\n      return $(Object.assign(td.cloneNode(true), {\n        $origin: td\n      }));\n    });\n    copyTr.addChild(cells);\n    return copyTr;\n  });\n  head.addChild(headRows);\n  var body = $(this.$originTableBody.cloneNode());\n  var rows = Array.prototype.filter.call(this.$originTableBody.childNodes, function (elt) {\n    return elt.tagName === 'TR';\n  }).map(function (tr) {\n    var copyTr = $(tr.cloneNode(false));\n    copyTr.$origin = tr;\n    var id = copyTr.attr('data-id');\n    _this3.leftCopyRows[id] = copyTr;\n    var cells = Array.prototype.filter.call(tr.childNodes, function (elt) {\n      return elt.tagName === 'TH' || elt.tagName === 'TD';\n    });\n    cells = sliceCellArray(cells, 0, _this3.fixedCol).map(function (td) {\n      return $(Object.assign(td.cloneNode(true), {\n        $origin: td\n      }));\n    });\n    cells.forEach(function (elt) {\n      (0, _utils.swapChildrenInElt)(elt, elt.$origin);\n\n      _this3._swappedPairs.push([elt, elt.$origin]);\n    });\n    copyTr.addChild(cells);\n    return copyTr;\n  });\n  body.addChild(rows);\n  this.$fixXCol.addChild(head).addChild(body);\n  this.$fixXCol.attr('class', this.$originTable.attr('class')).addClass('as-table-scroller-fixed-x-col');\n};\n\nTableScroller.prototype._updateFixedXColSize = function () {\n  if (this.fixedCol === 0) return;\n  var bound = this.$originTable.getBoundingClientRect();\n  this.$fixXCol.addStyle('height', bound.height + 'px');\n  Array.prototype.forEach.call(this.$fixXCol.firstChild.childNodes, function (elt) {\n    elt.addStyle('height', elt.$origin.getBoundingClientRect().height + 'px');\n  });\n  Array.prototype.forEach.call(this.$fixXCol.firstChild.firstChild.childNodes, function (elt) {\n    elt.addStyle('width', elt.$origin.getBoundingClientRect().width + 'px');\n  });\n  Array.prototype.forEach.call(this.$fixXCol.lastChild.childNodes, function (elt) {\n    elt.addStyle('height', elt.$origin.getBoundingClientRect().height + 'px');\n  });\n};\n\nTableScroller.prototype._updateFixedXYHeader = function () {\n  var _this4 = this;\n\n  var head = $(this.$originTableThead.cloneNode(false));\n  var headRows = Array.prototype.filter.call(this.$originTableThead.childNodes, function (elt) {\n    return elt.tagName === 'TR';\n  }).map(function (tr) {\n    var copyTr = _('tr');\n\n    copyTr.$origin = tr;\n    var cells = Array.prototype.filter.call(tr.childNodes, function (elt) {\n      return elt.tagName === 'TH' || elt.tagName === 'TD';\n    });\n    cells = sliceCellArray(cells, 0, _this4.fixedCol).map(function (td) {\n      return $(Object.assign(td.cloneNode(true), {\n        $origin: td\n      }));\n    });\n    copyTr.addChild(cells);\n    cells.forEach(function (cell) {\n      (0, _utils.swapChildrenInElt)(cell, cell.$origin);\n\n      _this4._swappedPairs.push([cell, cell.$origin]);\n    });\n    return copyTr;\n  });\n  head.addChild(headRows);\n  this.$fixedXYHeader.clearChild().addChild(head);\n  this.$fixedXYHeader.attr('class', this.$originTable.attr('class')).addClass('as-table-scroller-fixed-xy-header');\n};\n\nTableScroller.prototype._updateFixedXYHeaderSize = function () {\n  Array.prototype.forEach.call(this.$fixedXYHeader.firstChild.childNodes, function (elt) {\n    elt.addStyle('height', elt.$origin.getBoundingClientRect().height + 'px');\n  });\n  Array.prototype.forEach.call(this.$fixedXYHeader.firstChild.firstChild.childNodes, function (elt) {\n    elt.addStyle('width', elt.$origin.getBoundingClientRect().width + 'px');\n  });\n  this.$leftLine.addStyle('left', this.$fixedXYHeader.getBoundingClientRect().width - 1 + 'px');\n};\n\nTableScroller.prototype.updateContent = function () {\n  if (!this.$originTable) return;\n\n  this._revertWrapped();\n\n  this.$originTableThead = $('thead', this.$originTable);\n  this.$originTableBody = $('tbody', this.$originTable);\n\n  this._makeDataIdent();\n\n  this._updateFixedYHeader();\n\n  this._updateFixedXCol();\n\n  this._updateFixedXYHeader();\n\n  this.reindexRows();\n  this.updateContentSize();\n};\n\nTableScroller.prototype._updateScrollStatus = function () {\n  var bound = this.getBoundingClientRect();\n  var tableBound = this.$originTable.getBoundingClientRect();\n\n  if (bound.width < tableBound.width) {\n    this.addClass('as-scroll-horizontal');\n    this.$vscrollbar.outerHeight = bound.height - 17;\n  } else {\n    this.$vscrollbar.outerHeight = bound.height;\n    this.removeClass('as-scroll-horizontal');\n  }\n\n  if (bound.height < tableBound.height) {\n    this.addClass('as-scroll-vertical');\n    this.$hscrollbar.outerWidth = bound.width - 17;\n  } else {\n    this.$hscrollbar.outerWidth = bound.width;\n    this.removeClass('as-scroll-vertical');\n  }\n\n  this.$vscrollbar.innerHeight = tableBound.height;\n  this.$hscrollbar.innerWidth = tableBound.width;\n};\n\nTableScroller.prototype.updateContentSize = function () {\n  if (!this.$originTable) return;\n\n  this._updateScrollStatus();\n\n  this._updateFixedYHeaderSize();\n\n  this._updateFixedXColSize();\n\n  this._updateFixedXYHeaderSize();\n};\n\nTableScroller.prototype.reindexRows = function () {\n  if (!this.$originTableBody) return;\n  Array.prototype.filter.call(this.$originTableBody.childNodes, function (elt) {\n    return elt.tagName === 'TR';\n  }).forEach(function (elt, i) {\n    if (elt.$idx === null) return;\n    elt.$idx = elt.$idx || $('.as-table-scroller-row-index', elt) || null;\n    if (elt.$idx) elt.$idx.attr('data-idx', i + 1);\n  });\n  Array.prototype.forEach.call(this.$fixXCol.lastChild.childNodes, function (elt, i) {\n    if (elt.$idx === null) return;\n    elt.$idx = elt.$idx || $('.as-table-scroller-row-index', elt) || null;\n    if (elt.$idx) elt.$idx.attr('data-idx', i + 1);\n  });\n};\n\nTableScroller.prototype.removeRow = function (row) {\n  if ($(row).isDescendantOf(this)) {\n    row.remove();\n    this.requestUpdateContent();\n  }\n\n  return this;\n};\n\nTableScroller.prototype.addRowBefore = function (row, bf) {\n  if (!this.$originTableBody) return this;\n  this.$originTableBody.addChildBefore(row, bf);\n  this.requestUpdateContent();\n  return this;\n};\n\nTableScroller.prototype.addRowAfter = function (row, at) {\n  if (!this.$originTableBody) return this;\n  this.$originTableBody.addChildAfter(row, at);\n  this.requestUpdateContent();\n  return this;\n};\n\nTableScroller.prototype.requestUpdateContent = function () {\n  this.domSignal.emit('requestUpdateContent');\n};\n\nTableScroller.property = {};\nTableScroller.property.fixedCol = {\n  set: function set(value) {\n    value = value || 0;\n    this._fixedCol = value;\n    if (value === 0) this.$leftLine.addStyle('display', 'none');else this.$leftLine.removeStyle('display');\n    this.requestUpdateContent(); // this.$domSignal.emit('requestUpdateContent');\n  },\n  get: function get() {\n    return this._fixedCol || 0;\n  }\n};\n\n_ACore[\"default\"].install(TableScroller);\n\nvar _default = TableScroller;\n/***\r\n *\r\n * @param {TableScroller} elt\r\n * @constructor\r\n */\n\nexports[\"default\"] = _default;\n\nfunction ScrollController(elt) {\n  var _this5 = this;\n\n  this.elt = elt;\n  Object.keys(this.constructor.prototype).filter(function (k) {\n    return k.startsWith('ev_');\n  }).forEach(function (k) {\n    return _this5[k] = _this5[k].bind(_this5);\n  });\n  this.vscrollTarget = null;\n  this.hscrollTarget = null;\n  this.elt.$vscroller.on('scroll', this.ev_vScrollerScroll);\n  this.elt.$vscrollbar.on('scroll', this.ev_vScrollbarScroll);\n  this.elt.$hscroller.on('scroll', this.ev_hScrollerScroll);\n  this.elt.$hscrollbar.on('scroll', this.ev_hScrollbarScroll);\n  this.elt.$fixedYHeaderScroller.on('scroll', this.ev_fixedYHeaderScroll);\n}\n\nScrollController.prototype.ev_vScrollerScroll = function (event) {\n  var now = new Date().getTime();\n  if (this.vscrollTarget && now - this.vscrollTarget.time < 100 && this.vscrollTarget.elt !== this.elt.$vscroller) return;\n  this.elt.$vscrollbar.innerOffset = this.elt.$vscroller.scrollTop;\n  this.vscrollTarget = {\n    time: now,\n    elt: this.elt.$vscroller\n  };\n};\n\nScrollController.prototype.ev_vScrollbarScroll = function (event) {\n  var now = new Date().getTime();\n  if (this.vscrollTarget && now - this.vscrollTarget.time < 100 && this.vscrollTarget.elt !== this.elt.$vscrollbar) return;\n  this.elt.$vscroller.scrollTop = this.elt.$vscrollbar.innerOffset;\n  this.vscrollTarget = {\n    time: now,\n    elt: this.elt.$vscrollbar\n  };\n};\n\nScrollController.prototype.ev_hScrollerScroll = function (event) {\n  var now = new Date().getTime();\n  if (this.hscrollTarget && now - this.hscrollTarget.time < 100 && this.hscrollTarget.elt !== this.elt.$hscroller) return;\n  this.elt.$hscrollbar.innerOffset = this.elt.$hscroller.scrollLeft;\n  this.elt.$fixedYHeaderScroller.scrollLeft = this.elt.$hscroller.scrollLeft;\n  this.hscrollTarget = {\n    time: now,\n    elt: this.elt.$hscroller\n  };\n};\n\nScrollController.prototype.ev_fixedYHeaderScroll = function (event) {\n  var now = new Date().getTime();\n  if (this.hscrollTarget && now - this.hscrollTarget.time < 100 && this.hscrollTarget.elt !== this.elt.$fixedYHeaderScroller) return;\n  this.elt.$hscrollbar.innerOffset = this.elt.$fixedYHeaderScroller.scrollLeft;\n  this.elt.$hscroller.scrollLeft = this.elt.$fixedYHeaderScroller.scrollLeft;\n  this.hscrollTarget = {\n    time: now,\n    elt: this.elt.$fixedYHeaderScroller\n  };\n};\n\nScrollController.prototype.ev_hScrollbarScroll = function (event) {\n  var now = new Date().getTime();\n  if (this.hscrollTarget && now - this.hscrollTarget.time < 100 && this.hscrollTarget.elt !== this.elt.$hscrollbar) return;\n  this.elt.$hscroller.scrollLeft = this.elt.$hscrollbar.innerOffset >> 0;\n  this.vscrollTarget = {\n    time: now,\n    elt: this.elt.$hscrollbar\n  };\n};\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/tablescroller/TableScroller.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/tokenizeiput/TIHistory.js":
/*!***************************************************************!*\
  !*** ./node_modules/absol-acomp/js/tokenizeiput/TIHistory.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n/***\r\n * @param {TokenizeInput} elt\r\n * @constructor\r\n */\nfunction TIHistory(elt) {\n  this.elt = elt;\n  this.stack = [];\n  this.topIdx = -1;\n}\n\nTIHistory.prototype.commit = function (text, offset) {\n  while (this.topIdx < this.stack.length - 1) {\n    this.stack.pop();\n  }\n\n  var lastText = this.stack.length > 0 ? this.stack[this.stack.length - 1].text : null;\n\n  if (text === lastText) {\n    if (this.stack[this.stack.length - 1].offset !== offset) this.stack[this.stack.length - 1].offset = offset;\n  } else {\n    this.topIdx = this.stack.length;\n    var record = {\n      text: text,\n      offset: offset\n    };\n    this.stack.push(record);\n    this.elt.emit('change', {\n      target: this,\n      value: record.text,\n      action: 'commit',\n      record: record,\n      type: 'change'\n    }, this);\n  }\n};\n\nTIHistory.prototype.undo = function () {\n  if (this.topIdx <= 0) return;\n  this.topIdx--;\n  var record = this.stack[this.topIdx];\n  this.elt.applyData(record.text, record.offset);\n  this.elt.emit('change', {\n    target: this,\n    value: record.text,\n    action: 'undo',\n    record: record,\n    type: 'change'\n  }, this);\n};\n\nTIHistory.prototype.redo = function () {\n  if (this.topIdx + 1 >= this.stack.length) return;\n  this.topIdx++;\n  var record = this.stack[this.topIdx];\n  this.elt.applyData(record.text, record.offset);\n  this.elt.emit('change', {\n    target: this,\n    value: record.text,\n    action: 'redo',\n    record: record,\n    type: 'change'\n  }, this);\n};\n\nvar _default = TIHistory;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/tokenizeiput/TIHistory.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/tokenizeiput/TISelectionController.js":
/*!***************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/tokenizeiput/TISelectionController.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _tiutils = __webpack_require__(/*! ./tiutils */ \"./node_modules/absol-acomp/js/tokenizeiput/tiutils.js\");\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\n/****\r\n *\r\n * @param {TokenizeInput} elt\r\n * @constructor\r\n */\nfunction TISelectionController(elt) {\n  this.elt = elt;\n  this.prevRange = null;\n}\n\nTISelectionController.prototype.onSelect = function () {\n  var _this = this;\n\n  var key = this.elt.prevKey && new Date().getTime() - this.elt.prevKey.time < 100 ? this.elt.prevKey.value : '';\n  var sel = document.getSelection();\n  var range = sel.getRangeAt(0);\n  var direction = (0, _utils.getSelectionRangeDirection)(range);\n  var newRange;\n\n  var handleEmojiToken = function handleEmojiToken() {\n    var startCtn = range.startContainer;\n    var startOffset = range.startOffset;\n    var startToken;\n    var endCtn = range.endContainer;\n    var endOffset = range.endOffset;\n    var endToken;\n    var changed = 0;\n    var textData;\n    var nextTextNode;\n    var prevTextNode;\n    var displayText;\n    var newText;\n\n    if ((0, _tiutils.isTokenText)(startCtn)) {\n      startToken = startCtn.parentElement;\n      displayText = startToken.getAttribute('data-display');\n      textData = startCtn.data;\n\n      if (range.collapsed) {\n        if (textData.length < displayText.length) {\n          prevTextNode = _this.getPrevTextNode(startCtn);\n\n          if (!(0, _tiutils.isText)(prevTextNode)) {\n            prevTextNode = document.createTextNode('');\n            startToken.parentElement.insertBefore(prevTextNode, startToken);\n          }\n\n          startToken.remove();\n          startCtn = prevTextNode;\n          startOffset = prevTextNode.data.length;\n          changed = 1;\n        } else if (textData === displayText && startOffset < displayText.length && startOffset > 0) {\n          if (key === 'arrowright' || !key) {\n            startOffset = displayText.length;\n            changed = 1;\n          } else if (key === 'arrowleft') {\n            startOffset = 0;\n            changed = 1;\n          } else if (key === 'mouseup') {\n            startOffset = 0;\n            endOffset = displayText.length;\n            changed = 2;\n          }\n        } else if (textData.length > displayText.length) {\n          if (startOffset === textData.length) {\n            nextTextNode = startToken.nextSibling;\n\n            if (!(0, _tiutils.isText)(nextTextNode)) {\n              newText = document.createTextNode('');\n              nextTextNode.parentElement.insertBefore(newText, nextTextNode);\n              nextTextNode = newText;\n            }\n\n            nextTextNode.data = textData.substring(displayText.length) + nextTextNode.data;\n            startCtn.data = displayText;\n            startCtn = nextTextNode;\n            startOffset = textData.length - displayText.length;\n            changed = 1;\n          } else {\n            prevTextNode = startToken.previousSibling;\n\n            if (!(0, _tiutils.isText)(prevTextNode)) {\n              newText = document.createTextNode('');\n              startToken.parentElement.insertBefore(newText, startToken);\n              prevTextNode = newText;\n            }\n\n            prevTextNode.data += textData.substring(0, textData.length - displayText.length);\n            startCtn.data = displayText;\n            startCtn = prevTextNode;\n            startOffset = startCtn.data.length;\n          }\n        }\n      } else {\n        if (startOffset > 0 && startOffset < displayText.length) {\n          startOffset = 0;\n          changed = 2;\n        }\n      }\n    }\n\n    if ((0, _tiutils.isTokenText)(endCtn)) {\n      endToken = endCtn.parentElement;\n      displayText = endToken.getAttribute('data-display');\n\n      if (!range.collapsed) {\n        if (endOffset < displayText.length) {\n          endOffset = displayText.length;\n          changed = 2;\n        }\n      }\n    }\n\n    if (changed > 0) {\n      newRange = document.createRange();\n      newRange.setStart(startCtn, startOffset);\n\n      if (changed > 1) {\n        newRange.setEnd(endCtn, endOffset);\n      } else {\n        //for saving\n        endOffset = startOffset;\n        endCtn = startCtn;\n      }\n\n      (0, _utils.setSelectionRange)(newRange, direction === 'backward');\n    }\n\n    var nextToken, nextText;\n\n    if ((0, _tiutils.isToken)(endCtn.nextSibling)) {\n      nextToken = endCtn.nextSibling;\n      displayText = nextToken.getAttribute('data-display');\n      nextText = (0, _tiutils.getFirstTextNode)(nextToken);\n      if (!nextText || nextText.data !== displayText) nextToken.remove();\n    }\n\n    _this.prevRange = {\n      startOffset: startOffset,\n      startContainer: startCtn,\n      endOffset: endOffset,\n      endContainer: endCtn\n    };\n  };\n\n  handleEmojiToken();\n};\n\nTISelectionController.prototype.getNextTextNode = function (current) {\n  return (0, _tiutils.findNextTextNode)(this.elt, current);\n};\n\nTISelectionController.prototype.getPrevTextNode = function (current) {\n  return (0, _tiutils.findPrevTextNode)(this.elt, current);\n};\n\nTISelectionController.prototype.setRangeByOffset = function (offset) {\n  var start, end, direction;\n\n  if (typeof offset === \"number\") {\n    start = offset;\n    end = offset;\n    direction = 'forward';\n  } else {\n    start = offset.start;\n    end = offset.end;\n    direction = offset.direction || 'forward';\n  }\n\n  var startCtn = null;\n  var startOffset = 0;\n  var endCtn = null;\n  var endOffset = 0;\n  var st = '';\n  var nodes = Array.prototype.slice.call(this.elt.childNodes);\n  if ((0, _tiutils.isNewLine)(nodes[nodes.length - 1])) nodes.pop();\n  var node;\n\n  for (var i = 0; i < nodes.length; ++i) {\n    node = nodes[i];\n\n    if ((0, _tiutils.isText)(node)) {\n      st += node.data;\n\n      if (!startCtn && st.length >= start) {\n        startCtn = node;\n        startOffset = node.data.length - (st.length - start);\n      }\n\n      if (!endCtn && st.length >= end) {\n        endCtn = node;\n        endOffset = node.data.length - (st.length - end);\n      }\n    } else if ((0, _tiutils.isToken)(node)) {\n      st += node.getAttribute('data-text');\n\n      if (!startCtn && st.length >= start) {\n        startCtn = (0, _tiutils.getFirstTextNode)(node);\n        startOffset = startCtn.data.length;\n      }\n\n      if (!endCtn && st.length >= end) {\n        endCtn = (0, _tiutils.getFirstTextNode)(node);\n        endOffset = endCtn.data.length;\n      }\n    } else if ((0, _tiutils.isNewLine)(node)) {\n      st += '\\n';\n\n      if (!startCtn && st >= start) {\n        startCtn = this.elt;\n        startOffset = i + 1;\n      }\n\n      if (!endCtn && st.length >= end) {\n        endCtn = this.elt;\n        endOffset = i + 1;\n      }\n    }\n  }\n\n  if (!startCtn) {\n    if (nodes.length > 0) {\n      node = nodes[nodes.length - 1];\n\n      if ((0, _tiutils.isNewLine)(node)) {\n        startCtn = this.elt;\n        startOffset = nodes.length;\n      } else if ((0, _tiutils.isText)(node)) {\n        startCtn = node;\n        startOffset = node.length;\n      } else {\n        startCtn = (0, _tiutils.getLastTextNode)(node);\n        startOffset = node.length;\n      }\n    } else {\n      startCtn = this.elt;\n      startOffset = 0;\n    }\n  }\n\n  if (!endCtn) {\n    endCtn = startCtn;\n    endOffset = startOffset;\n  }\n\n  this.prevRange = {\n    startContainer: startCtn,\n    startOffset: startOffset,\n    endContainer: endCtn,\n    endOffset: endOffset\n  };\n  var range = document.createRange();\n  range.setStart(startCtn, startOffset);\n  range.setEnd(endCtn, endOffset);\n  (0, _utils.setSelectionRange)(range, direction === 'backward');\n};\n\nTISelectionController.prototype.getOffset = function (range) {\n  range = range || this.elt.selectionCtrl.prevRange;\n  if (!range) return null;\n  var nodes = Array.prototype.slice.call(this.elt.childNodes);\n  if ((0, _tiutils.isNewLine)(nodes[nodes.length - 1])) nodes.pop();\n  var startCtn = range.startContainer;\n  var startOffset = range.startOffset;\n  var endCtn = range.endContainer;\n  var endOffset = range.endOffset;\n\n  if (startCtn === this.elt) {\n    startCtn = this.elt.childNodes[startOffset - 1];\n    startOffset = 1;\n  } else if ((0, _tiutils.isTokenText)(startCtn)) {\n    startCtn = startCtn.parentElement;\n    if (startOffset > 0) startOffset = startCtn.getAttribute('data-text').length;\n  }\n\n  if (endCtn === this.elt) {\n    endCtn = this.elt.childNodes[endOffset];\n    endOffset = 1;\n  } else if ((0, _tiutils.isTokenText)(endCtn)) {\n    endCtn = endCtn.parentElement;\n    if (endOffset > 0) endOffset = endCtn.getAttribute('data-text').length;\n  }\n\n  var start = undefined;\n  var end = undefined;\n  var direction = (0, _utils.getSelectionRangeDirection)(range);\n  var st = '';\n  var node;\n\n  for (var i = 0; i < nodes.length; ++i) {\n    node = nodes[i];\n\n    if ((0, _tiutils.isText)(node)) {\n      if (start === undefined && node === startCtn) {\n        start = st.length + startOffset;\n      }\n\n      if (end === undefined && node === endCtn) {\n        end = st.length + endOffset;\n      }\n\n      st += node.data;\n    } else if ((0, _tiutils.isToken)(node)) {\n      if (start === undefined && node === startCtn) {\n        start = st.length + startOffset;\n      }\n\n      if (end === undefined && node === endCtn) {\n        end = st.length + endOffset;\n      }\n\n      st += node.getAttribute('data-text');\n    } else if ((0, _tiutils.isNewLine)(node)) {\n      st += '\\n';\n\n      if (start === undefined && node === startCtn) {\n        start = st.length;\n      }\n\n      if (end === undefined && node === endCtn) {\n        end = st.length;\n      }\n    }\n  }\n\n  if (start === undefined) start = 0;\n\n  if (end === undefined) {\n    end = start;\n  }\n\n  return {\n    start: start,\n    end: end,\n    direction: direction\n  };\n};\n\nvar _default = TISelectionController;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/tokenizeiput/TISelectionController.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/tokenizeiput/TITextController.js":
/*!**********************************************************************!*\
  !*** ./node_modules/absol-acomp/js/tokenizeiput/TITextController.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = exports.EMPTY_2_SPACES = void 0;\n\nvar _EmojiAnims = __webpack_require__(/*! ../EmojiAnims */ \"./node_modules/absol-acomp/js/EmojiAnims.js\");\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _EmojiPicker = _interopRequireDefault(__webpack_require__(/*! ../EmojiPicker */ \"./node_modules/absol-acomp/js/EmojiPicker.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _tiutils = __webpack_require__(/*! ./tiutils */ \"./node_modules/absol-acomp/js/tokenizeiput/tiutils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar EMPTY_2_SPACES = String.fromCharCode(0x2003);\nexports.EMPTY_2_SPACES = EMPTY_2_SPACES;\nvar emojiCSSLoaded = false;\n\nfunction loadEmojiCSS() {\n  if (emojiCSSLoaded) return;\n  emojiCSSLoaded = true;\n\n  _Dom[\"default\"].documentReady.then(function () {\n    var styleSheet = {};\n\n    for (var name in _EmojiAnims.EmojiAnimByIdent) {\n      styleSheet['.as-emoji-token[data-text=\"' + name + '\"]'] = {\n        'background-image': 'url(' + _EmojiPicker[\"default\"].assetRoot + '/static/x20/' + _EmojiAnims.EmojiAnimByIdent[name][1] + ')'\n      };\n    }\n\n    (0, _utils.buildCss)(styleSheet);\n  });\n}\n/***\r\n *\r\n * @param {TokenizeHyperInput} elt\r\n * @constructor\r\n */\n\n\nfunction TITextController(elt) {\n  loadEmojiCSS();\n  this.elt = elt;\n}\n\nTITextController.prototype.setText = function (text) {\n  this.elt.clearChild();\n  this.elt.addChild((0, _tiutils.text2ContentElements)(text, {\n    tagMap: this.elt.tagMap\n  }));\n  this.elt.addChild(this.elt.$br);\n};\n\nTITextController.prototype.getText = function () {\n  var nodes = Array.prototype.slice.call(this.elt.childNodes);\n\n  if ((0, _tiutils.isNewLine)(nodes[nodes.length - 1])) {\n    nodes.pop();\n  }\n\n  return nodes.map(function (node) {\n    if ((0, _tiutils.isText)(node)) {\n      return node.data;\n    } else if ((0, _tiutils.isToken)(node)) {\n      return node.getAttribute('data-text') || '';\n    } else if ((0, _tiutils.isNewLine)(node)) return '\\n';\n  }).join('');\n};\n/***\r\n *\r\n * @param {Range=} range default: previous selected range\r\n */\n\n\nTITextController.prototype.getTextByRange = function (range) {\n  range = range || this.elt.selectionCtrl.prevRange;\n  if (!range) return this.getText();\n  var nodes = Array.prototype.slice.call(this.elt.childNodes);\n  if ((0, _tiutils.isNewLine)(nodes[nodes.length - 1])) nodes.pop();\n  var startCtn = range.startContainer;\n  var startOffset = range.startOffset;\n  var endCtn = range.endContainer;\n  var endOffset = range.endOffset;\n\n  if (startCtn === this.elt) {\n    startCtn = this.elt.childNodes[startOffset - 1];\n    startOffset = 0;\n  } else if ((0, _tiutils.isTokenText)(startCtn)) {\n    startCtn = startCtn.parentElement;\n  }\n\n  if (endCtn === this.elt) {\n    endCtn = this.elt.childNodes[endOffset];\n    endOffset = 0;\n  } else if ((0, _tiutils.isTokenText)(endCtn)) {\n    endCtn = endCtn.parentElement;\n  }\n\n  if (startCtn === endCtn) {\n    if ((0, _tiutils.isToken)(startCtn)) {\n      return startCtn.getAttribute('data-text');\n    } else if ((0, _tiutils.isText)(startCtn)) {\n      return startCtn.data.substring(startOffset, endOffset);\n    }\n\n    return '';\n  }\n\n  var res = '';\n  var node;\n  var started = false;\n\n  for (var i = 0; i < nodes.length; ++i) {\n    node = nodes[i];\n\n    if (started) {\n      if (endCtn === node) {\n        if ((0, _tiutils.isToken)(endCtn)) {\n          res += node.getAttribute('data-text');\n        } else if ((0, _tiutils.isText)(node)) {\n          res += node.data.substring(0, endOffset);\n        }\n\n        break;\n      } else {\n        if ((0, _tiutils.isToken)(node)) {\n          res += node.getAttribute('data-text');\n        } else if ((0, _tiutils.isText)(node)) {\n          res += node.data;\n        } else if ((0, _tiutils.isNewLine)(node)) {\n          res += '\\n';\n        }\n      }\n    } else {\n      if (startCtn === node) {\n        started = true;\n\n        if ((0, _tiutils.isText)(node)) {\n          res += node.data.substring(startOffset);\n        } else if ((0, _tiutils.isToken)(node)) {\n          if (startOffset === 0) {\n            res += node.getAttribute('data-text');\n          }\n        }\n      }\n    }\n  }\n\n  return res;\n};\n\nTITextController.prototype.applyData = function (text, offset) {\n  this.setText(text);\n  this.elt.selectionCtrl.setRangeByOffset(offset);\n};\n\nTITextController.prototype.insertText = function (text) {\n  var range = document.getSelection().getRangeAt(0);\n  range.deleteContents();\n  this.elt.selectionCtrl.onSelect();\n  range = document.getSelection().getRangeAt(0);\n  var eltChain = (0, _tiutils.text2ContentElements)(text, {\n    tagMap: this.elt.tagMap\n  });\n  var startCtn = range.startContainer;\n  var at;\n\n  if ((0, _tiutils.isTokenText)(startCtn)) {\n    at = startCtn.parentElement;\n  } else if (startCtn === this.elt) {\n    at = this.elt.childNodes[range.startOffset - 1];\n  }\n\n  var newNode;\n\n  while (eltChain.length > 0) {\n    newNode = eltChain.shift();\n\n    if (!at) {\n      this.elt.addChildBefore(newNode, this.elt.firstChild);\n      at = newNode;\n    } else if ((0, _tiutils.isText)(at) && (0, _tiutils.isText)(newNode)) {\n      at.data += newNode.data;\n    } else {\n      this.elt.addChildAfter(newNode, at);\n      at = newNode;\n    }\n  }\n};\n\nvar _default = TITextController;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/tokenizeiput/TITextController.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/tokenizeiput/TokenizeHyperInput.js":
/*!************************************************************************!*\
  !*** ./node_modules/absol-acomp/js/tokenizeiput/TokenizeHyperInput.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ../../css/tokenizeinput.css */ \"./node_modules/absol-acomp/css/tokenizeinput.css\");\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _file = __webpack_require__(/*! absol/src/Converter/file */ \"./node_modules/absol/src/Converter/file.js\");\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nvar _BrowserDetector = _interopRequireDefault(__webpack_require__(/*! absol/src/Detector/BrowserDetector */ \"./node_modules/absol/src/Detector/BrowserDetector.js\"));\n\nvar _TIHistory = _interopRequireDefault(__webpack_require__(/*! ./TIHistory */ \"./node_modules/absol-acomp/js/tokenizeiput/TIHistory.js\"));\n\nvar _TITextController = _interopRequireDefault(__webpack_require__(/*! ./TITextController */ \"./node_modules/absol-acomp/js/tokenizeiput/TITextController.js\"));\n\nvar _TISelectionController = _interopRequireDefault(__webpack_require__(/*! ./TISelectionController */ \"./node_modules/absol-acomp/js/tokenizeiput/TISelectionController.js\"));\n\nvar _keyboard = __webpack_require__(/*! absol/src/Input/keyboard */ \"./node_modules/absol/src/Input/keyboard.js\");\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _tiutils = __webpack_require__(/*! ./tiutils */ \"./node_modules/absol-acomp/js/tokenizeiput/tiutils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar textDelay = _BrowserDetector[\"default\"].isSafari ? 100 : 1;\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\nfunction TokenizeHyperInput() {\n  this._tagMap = {};\n  this.$br = (0, _ACore.$)('br', this);\n  this.historyCtrl = new _TIHistory[\"default\"](this);\n  this.textCtrl = new _TITextController[\"default\"](this);\n  this.selectionCtrl = new _TISelectionController[\"default\"](this);\n  this.prevKey = null;\n  this.defineEvent(['pasteimg', 'pastefile', 'pastetext', 'change']);\n  this.on('paste', this.eventHandler.paste);\n  this.on('keydown', this.eventHandler.keydown);\n  this.on('mouseup', this.eventHandler.mouseup);\n  this.value = '';\n  this.historyCtrl.commit('', 0);\n  /***\r\n   * @type {{}}\r\n   * @name tagMap\r\n   *@memberOf TokenizeHyperInput#\r\n   *\r\n   */\n}\n\nTokenizeHyperInput.tag = 'TokenizeHyperInput'.toLowerCase();\n\nTokenizeHyperInput.render = function () {\n  return (0, _ACore._)({\n    tag: 'pre',\n    \"class\": 'as-tokenize-hyper-input',\n    attr: {\n      contenteditable: 'true',\n      spellcheck: \"false\"\n    },\n    child: 'br'\n  });\n};\n\nTokenizeHyperInput.prototype.applyData = function (text, offset) {\n  this.textCtrl.applyData(text, offset);\n};\n\nTokenizeHyperInput.prototype.select = function (offset) {\n  if (document.activeElement !== this) this.focus();\n  this.applyData(this.value, offset);\n};\n\nTokenizeHyperInput.prototype.scrollIntoRange = function (range) {\n  var elementBound = range.getBoundingClientRect();\n  var viewportBound = this.getBoundingClientRect();\n  var dBottom = 0;\n  if (range.startContainer && range.startContainer.data && range.startContainer.data.charAt(range.startContainer.data.length - 1) == '\\n') dBottom += this.getFontSize() * 1.5;\n  var currentScrollTop = this.scrollTop;\n  var newScrollTop = currentScrollTop;\n\n  if (elementBound.bottom + dBottom > viewportBound.bottom) {\n    newScrollTop = currentScrollTop + (elementBound.bottom + dBottom - viewportBound.bottom);\n  }\n\n  if (elementBound.top < viewportBound.top) {\n    newScrollTop = currentScrollTop - (viewportBound.top - elementBound.top);\n  }\n\n  if (newScrollTop != currentScrollTop) {\n    this.scrollTop = newScrollTop;\n  }\n\n  var currentScrollLeft = this.scrollLeft;\n  var newScrollLeft = currentScrollLeft;\n\n  if (elementBound.right > viewportBound.right) {\n    newScrollLeft = currentScrollLeft + (elementBound.right - viewportBound.right);\n  }\n\n  if (elementBound.left < viewportBound.left) {\n    newScrollLeft = currentScrollLeft - (viewportBound.left - elementBound.left);\n  }\n\n  if (newScrollLeft != currentScrollLeft) {\n    this.scrollLeft = newScrollLeft;\n  }\n};\n\nTokenizeHyperInput.prototype.undo = function () {\n  this.historyCtrl.undo();\n};\n\nTokenizeHyperInput.prototype.redo = function () {\n  this.historyCtrl.redo();\n};\n\nTokenizeHyperInput.prototype.commitChange = function (text, offset) {\n  this.historyCtrl.commit(text, offset);\n  this.emit('change', {}, this);\n};\n\nTokenizeHyperInput.prototype.waitToCommit = function (text, offset) {\n  var thisInput = this;\n  if (this._commitTimeout > 0) clearTimeout(this._commitTimeout);\n  this._commitTimeout = setTimeout(function () {\n    thisInput.commitChange(text, offset);\n  }, textDelay);\n};\n\nTokenizeHyperInput.prototype.getPosition = function (node, offset) {\n  if (!node) return NaN;\n  if (node === this) return offset;\n  var parent = node.parentElement;\n  if (!parent) return NaN;\n  var text = '';\n  var child;\n  var lastBr = false;\n\n  for (var i = 0; i < parent.childNodes.length; ++i) {\n    child = parent.childNodes[i];\n    if (child == node) break;\n    text += this.stringOf(child);\n  }\n\n  return this.getPosition(parent, text.length + offset);\n};\n\nTokenizeHyperInput.prototype.getSelectPosition = function () {\n  return this.selectionCtrl.getOffset();\n};\n/**\r\n * @type {TokenizeHyperInput}\r\n */\n\n\nTokenizeHyperInput.eventHandler = {};\n\nTokenizeHyperInput.eventHandler.paste = function (event) {\n  var _this = this;\n\n  var clipboardData = event.clipboardData || window.clipboardData;\n\n  if (!clipboardData) {\n    alert('Input not support browser without clipboard API!');\n    return;\n  }\n\n  if (clipboardData.items) {\n    var items = Array.prototype.slice.call(clipboardData.items);\n    var imgItems = items.filter(function (item) {\n      return item.type.indexOf('image') >= 0;\n    });\n    var fileItems = items.filter(function (item) {\n      return item.type !== 'text/plain' && item.type.indexOf('image') < 0;\n    });\n    var plainTextItems = items.filter(function (item) {\n      return item.type.indexOf('text/plain') >= 0;\n    });\n\n    if (imgItems.length > 0) {\n      var imgFiles = imgItems.map(function (it) {\n        return it.getAsFile();\n      });\n      this.emit('pasteimg', {\n        target: this,\n        imageFile: imgFiles[0],\n        imageFiles: imgFiles,\n        originalEvent: event\n      }, this);\n    }\n\n    if (fileItems.length > 0) {\n      var files = fileItems.map(function (item) {\n        return item.getAsFile();\n      });\n      this.emit('pastefile', {\n        target: this,\n        file: files[0],\n        files: files,\n        originalEvent: event\n      }, this);\n    }\n\n    if (plainTextItems.length > 0) {\n      var plainTextItem = plainTextItems[0]; //only one item\n\n      plainTextItem.getAsString(function (text) {\n        _this.textCtrl.insertText(text);\n      });\n    }\n\n    event.preventDefault();\n  } else {\n    var text = event.clipboardData.getData('text/plain');\n\n    if (text) {\n      event.preventDefault();\n      this.textCtrl.insertText(text);\n    }\n  }\n\n  this.waitToCommit();\n};\n\nTokenizeHyperInput.eventHandler.keydown = function (event) {\n  var _this2 = this;\n\n  this.prevKey = {\n    time: new Date().getTime(),\n    value: (0, _keyboard.keyboardEventToKeyBindingIdent)(event)\n  };\n  setTimeout(function () {\n    _this2.selectionCtrl.onSelect();\n\n    _this2.waitToCommit();\n  }, textDelay);\n};\n/***\r\n * @this TokenizeHyperInput\r\n * @param event\r\n */\n\n\nTokenizeHyperInput.eventHandler.mouseup = function (event) {\n  this.prevKey = {\n    time: new Date().getTime(),\n    value: 'mouseup'\n  };\n  this.selectionCtrl.onSelect();\n};\n\nTokenizeHyperInput.property = {};\nTokenizeHyperInput.property.value = {\n  set: function set(value) {\n    value = value || '';\n    this.textCtrl.setText(value); // this.applyData(value, value.length);\n\n    this.commitChange(value, value.length);\n  },\n  get: function get() {\n    return this.textCtrl.getText();\n  }\n};\nTokenizeHyperInput.property.disabled = {\n  set: function set(value) {\n    value = !!value;\n    if (value === this.hasClass('as-disabled')) return;\n\n    if (value) {\n      this.addClass('as-disabled');\n      this.attr({\n        contenteditable: undefined,\n        oncut: 'return false',\n        onpaste: 'return false',\n        onkeydown: 'if(event.metaKey) return true; return false;'\n      });\n    } else {\n      this.removeClass('as-disabled');\n      this.attr({\n        contenteditable: true,\n        oncut: undefined,\n        onpaste: undefined,\n        onkeydown: undefined\n      });\n    }\n  },\n  get: function get() {\n    return this.hasClass('as-disabled');\n  }\n};\nTokenizeHyperInput.property.tagList = {\n  get: function get() {\n    return (0, _utils.getTagListInTextMessage)(this.value);\n  }\n};\nTokenizeHyperInput.property.tagMap = {\n  set: function set(o) {\n    var _this3 = this;\n\n    o = o || {};\n    this._tagMap = o;\n    Array.prototype.forEach.call(this.childNodes, function (child) {\n      var id, text;\n\n      if (child.classList && child.classList.contains('as-tag-token')) {\n        id = child.getAttribute('data-text') || '';\n        id = id.substring(5, id.length - 1);\n        text = _this3._tagMap[id];\n\n        if (text) {\n          child.getAttribute('data-display', '@' + text);\n          child.firstChild.data = '@' + text;\n        }\n      }\n    });\n  },\n  get: function get() {\n    return this._tagMap;\n  }\n};\n\n_ACore[\"default\"].install(TokenizeHyperInput);\n\nvar _default = TokenizeHyperInput;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/tokenizeiput/TokenizeHyperInput.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/tokenizeiput/tiutils.js":
/*!*************************************************************!*\
  !*** ./node_modules/absol-acomp/js/tokenizeiput/tiutils.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.findNextTextNode = findNextTextNode;\nexports.findPrevTextNode = findPrevTextNode;\nexports.isTokenText = exports.isToken = exports.isText = exports.isNewLine = exports.getLastTextNode = exports.getFirstTextNode = void 0;\nexports.text2ContentElements = text2ContentElements;\nexports.tokenizeMessageText = tokenizeMessageText;\n\nvar _EmojiAnims = __webpack_require__(/*! ../EmojiAnims */ \"./node_modules/absol-acomp/js/EmojiAnims.js\");\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _TITextController = __webpack_require__(/*! ./TITextController */ \"./node_modules/absol-acomp/js/tokenizeiput/TITextController.js\");\n\nfunction tokenizeMessageText(text) {\n  var emojis = _EmojiAnims.EmojiAnimByIdent;\n  var splitter = Object.keys(_EmojiAnims.EmojiAnimByIdent).concat(['\\n']);\n  var tagTokens = text.match(/@\\[id:\\d+]/g) || [];\n  var otherTokens = text.split(/@\\[id:\\d+]/g);\n  var tokens = otherTokens.reduce(function (ac, cr, i) {\n    ac.push(cr);\n    if (i < tagTokens.length) ac.push(tagTokens[i]);\n    return ac;\n  }, []);\n  tokens = splitter.reduce(function (chain, splitter) {\n    return chain.reduce(function (ac, token) {\n      var subChain = token.split(splitter);\n\n      for (var i = 0; i < subChain.length; ++i) {\n        if (subChain[i]) {\n          ac.push(subChain[i]);\n        }\n\n        if (i + 1 < subChain.length) {\n          ac.push(splitter);\n        }\n      }\n\n      return ac;\n    }, []);\n  }, tokens);\n  tokens = tokens.map(function (text) {\n    var tagId;\n\n    if (text === '\\n') {\n      return {\n        type: 'NEW_LINE'\n      };\n    } else if (emojis[text]) {\n      return {\n        type: 'EMOJI',\n        value: text\n      };\n    } else if (text.match(/^@\\[id:\\d+]$/)) {\n      tagId = text.substring(5, text.length - 1);\n      return {\n        type: \"TAG\",\n        value: tagId\n      };\n    } else return {\n      type: 'TEXT',\n      value: text\n    };\n  });\n  return tokens;\n}\n\nvar isText = function isText(node) {\n  return node && node.nodeType === Node.TEXT_NODE;\n};\n\nexports.isText = isText;\n\nvar isNewLine = function isNewLine(node) {\n  return node && node.tagName === 'BR';\n};\n/***\r\n *\r\n * @param {Text|AElement}node\r\n * @returns {null|*}\r\n */\n\n\nexports.isNewLine = isNewLine;\n\nvar getFirstTextNode = function getFirstTextNode(node) {\n  if (node.nodeType === Node.TEXT_NODE || node.tagName === 'BR') return node;\n  var nodes = node.childNodes;\n  var res = null;\n\n  for (var i = 0; i < nodes.length && !res; ++i) {\n    res = res || getFirstTextNode(nodes[i]);\n  }\n\n  return res;\n};\n\nexports.getFirstTextNode = getFirstTextNode;\n\nvar getLastTextNode = function getLastTextNode(node) {\n  if (node.nodeType === Node.TEXT_NODE || node.tagName === 'BR') return node;\n  var nodes = node.childNodes;\n  var res = null;\n\n  for (var i = nodes.length - 1; i > 0 && !res; --i) {\n    res = res || getLastTextNode(node);\n  }\n\n  return res;\n};\n\nexports.getLastTextNode = getLastTextNode;\n\nvar isTokenText = function isTokenText(node) {\n  if (node.nodeType !== Node.TEXT_NODE) return false;\n  return isToken(node.parentElement);\n};\n\nexports.isTokenText = isTokenText;\n\nvar isToken = function isToken(node) {\n  return node && node.classList && (node.classList.contains('as-emoji-token') || node.classList.contains('as-tag-token'));\n};\n\nexports.isToken = isToken;\n\nfunction findNextTextNode(root, current) {\n  var nextTextNode = function nextTextNode(node) {\n    var res = null;\n    var next = node.nextSibling;\n\n    while (next && !res) {\n      res = getFirstTextNode(next);\n      next = next.nextSibling;\n    }\n\n    if (!res && node.parentElement !== root) {\n      res = nextTextNode(node.parentElement);\n    }\n\n    return res;\n  };\n\n  return nextTextNode(current);\n}\n\nfunction findPrevTextNode(root, current) {\n  var prevTextNode = function prevTextNode(node) {\n    var res = null;\n    var prev = node.previousSibling;\n\n    while (prev && !res) {\n      res = getLastTextNode(prev);\n      prev = prev.previousSibling;\n    }\n\n    if (!res && node.parentElement !== root) {\n      res = prevTextNode(node.parentElement);\n    }\n\n    return res;\n  };\n\n  return prevTextNode(current);\n}\n\nfunction text2ContentElements(text, opt) {\n  return tokenizeMessageText(text).map(function (token) {\n    var textOfTag;\n\n    switch (token.type) {\n      case 'NEW_LINE':\n        return (0, _ACore._)('br');\n\n      case 'EMOJI':\n        return (0, _ACore._)({\n          tag: 'span',\n          \"class\": 'as-emoji-token',\n          attr: {\n            'data-display': _TITextController.EMPTY_2_SPACES,\n            'data-text': token.value\n          },\n          child: {\n            text: _TITextController.EMPTY_2_SPACES\n          }\n        });\n\n      case 'TAG':\n        textOfTag = opt.tagMap && opt.tagMap[token.value];\n        return (0, _ACore._)({\n          tag: 'span',\n          \"class\": 'as-tag-token',\n          attr: {\n            'data-text': '@[id:' + token.value + ']',\n            'data-display': textOfTag ? '@' + textOfTag : '@[id:' + token.value + ']'\n          },\n          child: {\n            text: textOfTag ? '@' + textOfTag : '@[id:' + token.value + ']'\n          }\n        });\n\n      case 'TEXT':\n      default:\n        return (0, _ACore._)({\n          text: token.value\n        });\n    }\n  });\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/tokenizeiput/tiutils.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/tool/BlurTrigger.js":
/*!*********************************************************!*\
  !*** ./node_modules/absol-acomp/js/tool/BlurTrigger.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _EventEmitter = __webpack_require__(/*! absol/src/HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\");\n\nvar STATE_INIT = 0;\nvar STATE_ATTACHED = 1;\nvar STATE_RELEASED = 2;\nvar STATE_FIRED = 3;\nvar STATE_DESTROYED = 4;\n/***\r\n *\r\n * @param {AElement[]|AElement} eltList\r\n * @param {\"click\"|\"mousedown\"} eventType\r\n * @param {function} callback\r\n * @param {number=} initAfter\r\n * @param {number=} fireDelay\r\n * @param {*[]=} args\r\n * @constructor\r\n */\n\nfunction BlurTrigger(eltList, eventType, callback, initAfter, fireDelay, args) {\n  this.args = args || [];\n  this.callback = callback;\n  this.eltTargets = eltList || [];\n  this.initAfter = initAfter || 0;\n  this.fireDelay = fireDelay || 0;\n  this.state = STATE_INIT;\n  this.eventType = eventType;\n  this['ev_mouse'] = this.ev_mouse.bind(this);\n  this['ev_blur'] = this.ev_blur.bind(this);\n\n  if (this.initAfter > 0) {\n    setTimeout(this._attach.bind(this));\n  } else this._attach();\n}\n\nBlurTrigger.prototype._attach = function () {\n  if (this.state !== STATE_INIT) return;\n  document.addEventListener(this.eventType, this.ev_mouse);\n  window.addEventListener('blur', this.ev_blur);\n  this.state = STATE_ATTACHED;\n};\n\nBlurTrigger.prototype._fire = function () {\n  if (this.state !== STATE_RELEASED) return;\n  this.callback.apply(this, this.args);\n  this.state = STATE_FIRED;\n};\n\nBlurTrigger.prototype._release = function () {\n  if (this.state !== STATE_ATTACHED) return;\n  document.removeEventListener(this.eventType, this.ev_mouse);\n  window.removeEventListener('blur', this.ev_blur);\n  this.state = STATE_RELEASED;\n};\n\nBlurTrigger.prototype.destroy = function () {\n  if (this.state === 4) return;\n  if (this.state === STATE_ATTACHED) this._release();\n  this.state = STATE_DESTROYED;\n};\n\nBlurTrigger.prototype._prepareFire = function () {\n  if (this.fireDelay > 0) {\n    setTimeout(this._fire.bind(this), this.fireDelay);\n  } else {\n    this._fire();\n  }\n};\n\nBlurTrigger.prototype.ev_mouse = function (event) {\n  var hit = false;\n\n  if (this.eltTargets instanceof Array) {\n    hit = this.eltTargets.some(function (elt) {\n      return (0, _EventEmitter.hitElement)(elt, event);\n    });\n  } else if (typeof hit === \"function\") {\n    hit = this.eltTargets.call(this, event.target);\n  }\n\n  if (!hit) {\n    this._release();\n\n    this._prepareFire();\n  }\n};\n\nBlurTrigger.prototype.ev_blur = function () {\n  setTimeout(function () {\n    if (this.state !== STATE_ATTACHED) return;\n    var tagName = document.activeElement && document.activeElement.tagName || '';\n    tagName = tagName.toLowerCase();\n\n    if (tagName === 'iframe') {\n      this._release();\n\n      this._prepareFire();\n    }\n  }.bind(this), 0);\n};\n\nvar _default = BlurTrigger;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/tool/BlurTrigger.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/tool/TextMeasurement.js":
/*!*************************************************************!*\
  !*** ./node_modules/absol-acomp/js/tool/TextMeasurement.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nfunction TextMeasurement(opts) {\n  opts = opts || {};\n  this.chars = opts.chars || (\" !\\\"$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\" + \"[\\\\]^_abcdefghijklmnopqrstuvwxyz{|}\" + \"¥©ÀÁÂÃÈÉÊÌÍÒÓÔÕÙÚÝàáâãèéêìíñòóôõùúýĂăĐđĨĩŨũƠơƯưẠ̌̀́̃̉Р\" + \"ийксуẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặẸẹẺẻẼẽẾếỀềỂểỄễỆệỈỉỊị\" + \"ỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợỤụỦủỨứỪừỬửỮữỰựỲỳỴỵỶỷỸỹ–’“”…₫€?\").split('');\n  this.computed = Object.assign({}, opts.computed || {});\n}\n\nTextMeasurement.prototype.compute = function (font) {\n  if (this.computed[font]) return true;\n  if (!('document' in window)) return false;\n\n  if (!this.canvas) {\n    this.canvas = document.createElement('canvas');\n    this.ctx = this.canvas.getContext('2d');\n  }\n\n  var ctx = this.ctx;\n  ctx.font = font;\n  var data = {};\n  var charBoxes = {};\n  data.charBoxes = charBoxes;\n  var c, d, i, j;\n  var metrics;\n  var n = this.chars.length;\n  var chars = this.chars;\n\n  for (i = 0; i < n; ++i) {\n    c = chars[i];\n    metrics = ctx.measureText(c);\n    charBoxes[c] = metrics.width;\n  }\n\n  var spacing = {};\n  data.spacing = spacing;\n  var pair;\n\n  for (i = 0; i < n; ++i) {\n    c = chars[i];\n\n    for (j = 0; j < n; ++j) {\n      d = chars[j];\n      pair = c + d;\n      metrics = ctx.measureText(pair);\n      spacing[pair] = metrics.width - charBoxes[c] - charBoxes[d];\n    }\n  }\n\n  this.computed[font] = data;\n  return true;\n};\n/***\r\n *\r\n * @param {string} text\r\n * @param {string=} font\r\n * @return {number}\r\n */\n\n\nTextMeasurement.prototype.measureTextWidth = function (text, font) {\n  var l = text.length;\n  if (l === 0) return 0;\n  var width = 0;\n  var data = this.computed[font];\n  var charBoxes = data.charBoxes;\n  var spacing = data.spacing;\n  var c, pc;\n  pc = text[0];\n  width += charBoxes[pc] || charBoxes['0'];\n\n  for (var i = 1; i < l; ++i) {\n    c = text[i];\n    width += spacing[pc + c];\n    width += charBoxes[c] || charBoxes['0'];\n    pc = c;\n  }\n\n  return width;\n};\n\nvar _default = TextMeasurement;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/tool/TextMeasurement.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/treetable/TTBody.js":
/*!*********************************************************!*\
  !*** ./node_modules/absol-acomp/js/treetable/TTBody.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _TTRow = _interopRequireWildcard(__webpack_require__(/*! ./TTRow */ \"./node_modules/absol-acomp/js/treetable/TTRow.js\"));\n\nvar _ResizeSystem = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/ResizeSystem */ \"./node_modules/absol/src/HTML5/ResizeSystem.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n *\r\n * @param {TTTable}table\r\n * @param {TTDBody} data\r\n * @constructor\r\n */\nfunction TTBody(table, data) {\n  var _this = this;\n\n  this.table = table;\n  this.data = data;\n  this.elt = this.table.elt.$body;\n  /***\r\n   *\r\n   * @type {TTRow[]}\r\n   */\n\n  this.rows = (this.data.rows || []).map(function (rowData) {\n    return new _TTRow[\"default\"](_this, rowData, null);\n  });\n  this.clonedRows = null;\n  this.renderRows();\n}\n\nTTBody.prototype.applyQueryResult = function (queryResult) {\n  this.clearClonedRows();\n\n  if (queryResult) {\n    this.clonedRows = this.rows.filter(function (row) {\n      return queryResult[row.id];\n    }).map(function (row, i) {\n      return new _TTRow.TTClonedRow(row, queryResult, i);\n    });\n    this.clonedRows.sort(function (a, b) {\n      var sa = a.score[1];\n      var sb = b.score[1];\n      if (sa !== sb) return sb - sa;\n      return a.idx - b.idx;\n    });\n    this.renderRows(this.clonedRows);\n    this.table.elt.notifySizeChange();\n  } else {\n    this.renderRows();\n  }\n};\n\nTTBody.prototype.clearClonedRows = function () {\n  if (this.clonedRows) this.clonedRows.forEach(function (row) {\n    return row.detach();\n  });\n  this.clonedRows = null;\n};\n/***\r\n *\r\n */\n\n\nTTBody.prototype.renderRows = function (rows) {\n  rows = rows || this.rows;\n  this.elt.clearChild().addChild(rows.reduce(function (ac, row) {\n    row.getRowElements(ac);\n    return ac;\n  }, []));\n};\n/***\r\n *\r\n * @param data\r\n */\n\n\nTTBody.prototype.rowOf = function (data) {\n  if (data instanceof _TTRow[\"default\"]) {\n    data = data.data;\n  }\n\n  var result = null;\n  var queue = this.rows.slice();\n  var cr;\n\n  while (queue.length > 0 && !result) {\n    cr = queue.shift();\n\n    if (cr.data === data || cr.data.id === data || data.id && cr.data.id === data.id) {\n      result = cr;\n    } else {\n      queue.push.apply(queue, cr.subRows);\n    }\n  }\n\n  return result;\n};\n/***\r\n *\r\n * @param {TTDRow} rowData\r\n */\n\n\nTTBody.prototype.addRow = function (rowData) {\n  var _this2 = this;\n\n  var row = new _TTRow[\"default\"](this, rowData, null);\n  this.data.rows.push(rowData);\n  this.rows.push(row);\n  var elements = row.getRowElements();\n  elements.forEach(function (elt) {\n    return _this2.elt.addChild(elt);\n  });\n\n  _ResizeSystem[\"default\"].requestUpdateSignal();\n};\n\nvar _default = TTBody;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/treetable/TTBody.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/treetable/TTCell.js":
/*!*********************************************************!*\
  !*** ./node_modules/absol-acomp/js/treetable/TTCell.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _DTBodyCell = _interopRequireDefault(__webpack_require__(/*! ../dynamictable/DTBodyCell */ \"./node_modules/absol-acomp/js/dynamictable/DTBodyCell.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n *\r\n * @param {TTRow} row\r\n * @param {TTDCell} data\r\n * @constructor\r\n */\nfunction TTCell(row, data) {\n  this.row = row;\n  this.data = data;\n}\n\nObject.defineProperty(TTCell.prototype, 'elt', {\n  get: function get() {\n    if (!this._elt) {\n      this._elt = (0, _ACore._)({\n        tag: 'td',\n        \"class\": 'as-tree-table-cell'\n      });\n      this.row.body.table.elt.mAdapter.renderBodyCell(this.elt, this.data, this);\n    }\n\n    return this._elt;\n  }\n});\nObject.defineProperty(TTCell.prototype, 'innerText', Object.getOwnPropertyDescriptor(_DTBodyCell[\"default\"].prototype, 'innerText'));\nvar _default = TTCell;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/treetable/TTCell.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/treetable/TTDataAdapter.js":
/*!****************************************************************!*\
  !*** ./node_modules/absol-acomp/js/treetable/TTDataAdapter.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _TTTable = _interopRequireDefault(__webpack_require__(/*! ./TTTable */ \"./node_modules/absol-acomp/js/treetable/TTTable.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n *\r\n * @param {TreeTable} tableElt\r\n * @param opt\r\n * @constructor\r\n */\nfunction TTDataAdapter(tableElt, opt) {\n  this.tableElt = tableElt;\n  this.data = null;\n  Object.assign(this, opt || {});\n}\n\nTTDataAdapter.prototype.render = function () {\n  if (this.tableElt.table) {}\n\n  this.tableElt.table = new _TTTable[\"default\"](this.tableElt, this.data);\n};\n/***\r\n *\r\n * @param {AElement} elt\r\n * @param {TTDHeadCell} data\r\n * @param {TTHeadCell} controller\r\n */\n\n\nTTDataAdapter.prototype.renderHeadCell = function (elt, data, controller) {\n  if (data.child) {\n    if (data.child.map) {\n      elt.addChild(data.child.map(function (it) {\n        return (0, _ACore._)(it);\n      }));\n    } else {\n      elt.addChild((0, _ACore._)(data.child));\n    }\n  }\n\n  if (data.render) {\n    data.render.call(null, elt, data, controller);\n  }\n\n  if (data.style) {\n    elt.addStyle(data.style);\n  }\n};\n/***\r\n *\r\n * @param {AElement} elt\r\n * @param {TTDCell} data\r\n * @param {TTCell} controller\r\n */\n\n\nTTDataAdapter.prototype.renderBodyCell = function (elt, data, controller) {\n  if (data.child) {\n    if (data.child.map) {\n      elt.addChild(data.child.map(function (it) {\n        return (0, _ACore._)(it);\n      }));\n    } else {\n      elt.addChild((0, _ACore._)(data.child));\n    }\n  }\n\n  if (data.render) {\n    data.render.call(null, elt, data, controller);\n  }\n\n  if (data.style) {\n    elt.addStyle(data.style);\n  }\n\n  if (data[\"class\"]) {\n    elt.addClass(data[\"class\"]);\n  }\n\n  if (data.attr) {\n    elt.attr(data.attr);\n  }\n};\n\nvar _default = TTDataAdapter;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/treetable/TTDataAdapter.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/treetable/TTHead.js":
/*!*********************************************************!*\
  !*** ./node_modules/absol-acomp/js/treetable/TTHead.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _TTHeadRow = _interopRequireDefault(__webpack_require__(/*! ./TTHeadRow */ \"./node_modules/absol-acomp/js/treetable/TTHeadRow.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n *\r\n * @param {TTTable} table\r\n * @param {TTDHead} data\r\n * @constructor\r\n */\nfunction TTHead(table, data) {\n  var _this = this;\n\n  this.data = data;\n  this.table = table;\n  this.elt = this.table.elt.$head;\n  this.rows = (this.data.rows || []).map(function (rowData) {\n    return new _TTHeadRow[\"default\"](_this, rowData);\n  });\n  this.elt.clearChild().addChild(this.rows.map(function (r) {\n    return r.elt;\n  }));\n}\n\nvar _default = TTHead;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/treetable/TTHead.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/treetable/TTHeadCell.js":
/*!*************************************************************!*\
  !*** ./node_modules/absol-acomp/js/treetable/TTHeadCell.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\n/***\r\n *\r\n * @param {TTHeadRow} row\r\n * @param {TTDHeadCell} data\r\n * @constructor\r\n */\nfunction TTHeadCell(row, data) {\n  this.row = row;\n  this.data = data;\n  this.elt = (0, _ACore._)({\n    tag: 'th',\n    \"class\": 'as-tree-table-head-cell'\n  });\n  this.row.head.table.elt.mAdapter.renderHeadCell(this.elt, this.data, this);\n}\n\nTTHeadCell.prototype.render = function () {};\n\nvar _default = TTHeadCell;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/treetable/TTHeadCell.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/treetable/TTHeadRow.js":
/*!************************************************************!*\
  !*** ./node_modules/absol-acomp/js/treetable/TTHeadRow.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _TTHeadCell = _interopRequireDefault(__webpack_require__(/*! ./TTHeadCell */ \"./node_modules/absol-acomp/js/treetable/TTHeadCell.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\r\n *\r\n * @param {TTHead} head\r\n * @param {TTDHeadRow} data\r\n * @constructor\r\n */\nfunction TTHeadRow(head, data) {\n  var _this = this;\n\n  this.head = head;\n  this.data = data;\n  this.cells = this.data.cells.map(function (cellData) {\n    return new _TTHeadCell[\"default\"](_this, cellData);\n  });\n  this.elt = (0, _ACore._)({\n    tag: 'tr',\n    \"class\": 'as-tree-table-head-row'\n  });\n  this.elt.addChild(this.cells.map(function (cell, i) {\n    return cell.elt.attr('data-col-idx', '' + i);\n  }));\n}\n\nvar _default = TTHeadRow;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/treetable/TTHeadRow.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/treetable/TTQueryController.js":
/*!********************************************************************!*\
  !*** ./node_modules/absol-acomp/js/treetable/TTQueryController.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _ListSearchMaster = _interopRequireDefault(__webpack_require__(/*! ../list/ListSearchMaster */ \"./node_modules/absol-acomp/js/list/ListSearchMaster.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n *\r\n * @param {TreeTable} elt\r\n * @constructor\r\n */\nfunction TTQueryController(elt) {\n  this.searchMaster = new _ListSearchMaster[\"default\"]();\n  this.elt = elt;\n  this.$filterInputs = [];\n  this.$searchInput = null;\n  this['request'] = this['request'].bind(this);\n\n  this._waitDestroy();\n\n  this._rtsiIdx = -1;\n}\n\nTTQueryController.prototype._waitDestroy = function () {\n  var _this = this;\n\n  setTimeout(function () {\n    if (_this.elt.isDescendantOf(document.body)) {\n      _this._waitDestroy();\n    } else {\n      _this.searchMaster.destroy();\n    }\n  }, 10000);\n};\n\nTTQueryController.prototype.attachFilterInput = function (input) {\n  if (this.$filterInputs.indexOf(input) >= 0) return;\n  if (input.detachTreeTable) input.detachTreeTable();\n  input.$treeTable = this;\n\n  if ((0, _ACore.$)(input).isSupportedEvent('stoptyping')) {\n    input.on('stoptyping', this.request);\n  } else {\n    input.on('change', this.request);\n  }\n\n  input.detachTreeTable = this.detachFilterInput.bind(this, input);\n  this.$filterInputs.push(input);\n};\n\nTTQueryController.prototype.detachFilterInput = function (input) {\n  var idx = this.$filterInputs.indexOf(input);\n  if (idx < 0) return;\n  this.$filterInputs.splice(idx, 1);\n  input.off(this.$searchInput.isSupportedEvent('stoptyping') ? 'stoptyping' : 'change', this.request);\n  input.detachTreeTable = null;\n};\n\nTTQueryController.prototype.attachSearchInput = function (input) {\n  if (this.$searchInput === input) return;\n  if (input.detachTreeTable) input.detachTreeTable();\n  this.$searchInput = input;\n\n  if ((0, _ACore.$)(input).isSupportedEvent('stoptyping')) {\n    input.on('stoptyping', this.request);\n  } else {\n    input.on('change', this.request);\n  }\n\n  input.detachTreeTable = this.detachSearchInput.bind(this, input);\n};\n\nTTQueryController.prototype.detachSearchInput = function (input) {\n  input = input || this.$searchInput;\n  if (input !== this.$searchInput) return;\n  input.off(this.$searchInput.isSupportedEvent('stoptyping') ? 'stoptyping' : 'change', this.request);\n  input.detachTreeTable = null;\n  this.$searchInput = null;\n};\n\nTTQueryController.prototype.makeQuery = function () {\n  var res = {};\n\n  if (this.$searchInput && this.$searchInput.value.trim().length > 0) {\n    res.text = this.$searchInput.value.trim();\n  }\n\n  for (var key in res) {\n    return res;\n  }\n\n  return null;\n};\n\nTTQueryController.prototype.request = function () {\n  var _this2 = this;\n\n  var query = this.makeQuery();\n  if (query) this.searchMaster.query(query).then(function (searchResult) {\n    _this2.elt.table.body.applyQueryResult(searchResult);\n  });else this.elt.table.body.applyQueryResult(null);\n};\n\nTTQueryController.prototype.getSearchItems = function () {\n  var getSearchItemOf = function getSearchItemOf(row) {\n    var res = {};\n    res.text = row.innerText;\n    res.value = row.id;\n\n    if (row.subRows && row.subRows.length > 0) {\n      res.items = row.subRows.map(getSearchItemOf);\n    }\n\n    return res;\n  };\n\n  return this.elt.table.body.rows.map(getSearchItemOf);\n};\n\nTTQueryController.prototype.transferSearchItems = function () {\n  this.searchMaster.transfer(this.getSearchItems());\n};\n\nTTQueryController.prototype.requestTransferSearchItems = function () {\n  var _this3 = this;\n\n  if (this._rtsiIdx > 0) return;\n  this._rtsiIdx = setTimeout(function () {\n    _this3._rtsiIdx = -1;\n\n    _this3.transferSearchItems();\n  }, 0);\n};\n\nvar _default = TTQueryController;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/treetable/TTQueryController.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/treetable/TTRow.js":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/js/treetable/TTRow.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.TTClonedRow = TTClonedRow;\nexports[\"default\"] = void 0;\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _TTCell = _interopRequireDefault(__webpack_require__(/*! ./TTCell */ \"./node_modules/absol-acomp/js/treetable/TTCell.js\"));\n\nvar _DTBodyRow = _interopRequireDefault(__webpack_require__(/*! ../dynamictable/DTBodyRow */ \"./node_modules/absol-acomp/js/dynamictable/DTBodyRow.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _stringGenerate = __webpack_require__(/*! absol/src/String/stringGenerate */ \"./node_modules/absol/src/String/stringGenerate.js\");\n\nvar _ResizeSystem = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/ResizeSystem */ \"./node_modules/absol/src/HTML5/ResizeSystem.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n *\r\n * @param {TTBody} body\r\n * @param {TTDRow}data\r\n * @param parentRow\r\n * @constructor\r\n */\nfunction TTRow(body, data, parentRow) {\n  var _this = this;\n\n  this.id = (0, _stringGenerate.randomIdent)(8);\n  this.level = parentRow ? parentRow.level + 1 : 0;\n  this.body = body;\n  this.data = data;\n  this.parentRow = parentRow;\n  this.clonedRow = null;\n  this.cells = (this.data.cells || []).map(function (cellData) {\n    return new _TTCell[\"default\"](_this, cellData);\n  });\n  this.subRows = (this.data.subRows || []).map(function (rowData) {\n    return new TTRow(body, rowData, _this);\n  });\n\n  if (!(0, _utils.isNone)(data.id) && data.subRows && data.subRows.length > 0 && data.id in this.body.table.elt.savedState) {\n    this.isOpened = !!this.body.table.elt.savedState[data.id];\n  } else if (typeof data.initOpened === 'boolean') {\n    this.isOpened = data.initOpened;\n  } else if (typeof body.table.data.initOpened === \"boolean\") {\n    this.isOpened = body.table.data.initOpened;\n  }\n}\n\nTTRow.prototype.isOpened = false;\n/***\r\n *\r\n * @param {Array<AElement>=} ac\r\n */\n\nTTRow.prototype.getRowElements = function (ac) {\n  ac = ac || [];\n  ac.push(this.elt);\n\n  if (this.isOpened) {\n    this.subRows.forEach(function (row) {\n      return row.getRowElements(ac);\n    });\n  }\n\n  return ac;\n};\n\nTTRow.prototype.toggle = function () {\n  if (this.isOpened) this.close();else this.open();\n};\n\nTTRow.prototype.open = function () {\n  if (this.isOpened) return;\n  if (this.subRows.length === 0) return;\n  this.isOpened = true;\n  if (!(0, _utils.isNone)(this.data.id) && this.cells) //real node\n    this.body.table.elt.savedState[this.data.id] = this.isOpened;\n  this.elt.addClass('as-is-opened');\n  var rowElements = this.getRowElements();\n  rowElements.shift();\n  var bodyElt = this.body.elt;\n  var bf = this.body.elt.findChildAfter(this.elt);\n\n  if (bf) {\n    rowElements.forEach(function (elt) {\n      return bodyElt.addChildBefore(elt, bf);\n    });\n  } else {\n    bodyElt.addChild(rowElements);\n  }\n\n  this.updateSizeUp();\n};\n\nTTRow.prototype.close = function () {\n  if (!this.isOpened) return;\n  var rowElements = this.getRowElements();\n  rowElements.shift();\n  rowElements.forEach(function (elt) {\n    return elt.remove();\n  });\n  this.isOpened = false;\n  if (!(0, _utils.isNone)(this.data.id) && this.cells) this.body.table.elt.savedState[this.data.id] = this.isOpened;\n\n  this._elt.removeClass('as-is-opened');\n\n  this.updateSizeUp();\n};\n\nTTRow.prototype.updateSizeUp = function () {\n  this.body.table.elt.notifySizeChange();\n};\n\nTTRow.prototype.remove = function () {\n  var _this2 = this;\n\n  var idx = -1;\n  var rowElements;\n\n  var removeRow = function removeRow(idx, rows, dataRows) {\n    rows.splice(idx, 1);\n    dataRows.splice(idx, 1);\n    if (_this2.clonedRow) _this2.clonedRow.remove();\n\n    if (_this2.elt.parentElement) {\n      rowElements = _this2.clonedRow ? _this2.clonedRow.getRowElements() : _this2.getRowElements();\n      rowElements.forEach(function (elt) {\n        return elt.selfRemove();\n      });\n\n      _ResizeSystem[\"default\"].requestUpdateSignal();\n    }\n\n    _this2.body.table.elt.queryCtrl.requestTransferSearchItems();\n  };\n\n  if (this.parentRow) {\n    idx = this.parentRow.subRows.indexOf(this);\n\n    if (idx >= 0) {\n      removeRow(idx, this.parentRow.subRows, this.parentRow.data.subRows);\n      if (this.parentRow.subRows.length === 0) this.parentRow.elt.removeClass('as-has-sub-row');\n    }\n  } else {\n    idx = this.body.rows.indexOf(this);\n\n    if (idx >= 0) {\n      removeRow(idx, this.body.rows, this.body.data.rows);\n    }\n  }\n};\n/***\r\n * @param {TTDRow} rowData\r\n */\n\n\nTTRow.prototype.addSubRow = function (rowData) {\n  var _this3 = this;\n\n  var row = new TTRow(this.body, rowData, this);\n  var clonedRow;\n  if (this.clonedRow) clonedRow = new TTClonedRow(row, null, this.subRows.length); //idx is not important\n\n  var rowElements;\n  var bf;\n\n  if (this.elt.parentElement && this.isOpened) {\n    rowElements = this.clonedRow ? this.clonedRow.getRowElements() : this.getRowElements();\n    bf = this.body.elt.findChildAfter(rowElements[rowElements.length - 1]);\n    rowElements = clonedRow ? clonedRow.getRowElements() : row.getRowElements();\n\n    if (bf) {\n      rowElements.forEach(function (elt) {\n        return _this3.body.elt.addChildBefore(elt, bf);\n      });\n    } else {\n      rowElements.forEach(function (elt) {\n        return _this3.body.elt.addChild(elt);\n      });\n    }\n\n    _ResizeSystem[\"default\"].requestUpdateSignal();\n  }\n\n  this.subRows.push(row);\n\n  if (this.data.subRows) {\n    this.data.subRows.push(rowData);\n  } else {\n    this.data.subRows = [rowData];\n  }\n\n  if (this.clonedRow) this.clonedRow.addSubRow(clonedRow);\n  if (this._elt) this.elt.addClass('as-has-sub-row');\n  this.body.table.elt.queryCtrl.requestTransferSearchItems();\n};\n/***\r\n *\r\n @param {TTDRow} newRowData\r\n */\n\n\nTTRow.prototype.replace = function (newRowData) {\n  var _this4 = this;\n\n  var idx = -1;\n  var rowElements;\n  var bf;\n  var newRow;\n  var newClonedRow;\n  var needView;\n\n  var makeReplaceRow = function makeReplaceRow(idx, rows, dataRows) {\n    newRow = new TTRow(_this4.body, newRowData, _this4.parentRow);\n    rows.splice(idx, 1, newRow);\n    dataRows.splice(idx, 1, newRowData);\n\n    if (_this4.clonedRow) {\n      newClonedRow = new TTClonedRow(newRow, null, idx);\n\n      _this4.clonedRow.replace(newClonedRow);\n    }\n\n    if (_this4.elt.parentElement) {\n      rowElements = _this4.clonedRow ? _this4.clonedRow.getRowElements() : _this4.getRowElements();\n      bf = _this4.body.elt.findChildAfter(rowElements[rowElements.length - 1]);\n      rowElements.forEach(function (elt) {\n        return elt.selfRemove();\n      });\n      rowElements = newClonedRow ? newClonedRow.getRowElements() : newRow.getRowElements();\n\n      if (bf) {\n        rowElements.forEach(function (elt) {\n          return _this4.body.elt.addChildBefore(elt, bf);\n        });\n      } else {\n        rowElements.forEach(function (elt) {\n          return _this4.body.elt.addChild(elt);\n        });\n      }\n\n      _ResizeSystem[\"default\"].requestUpdateSignal();\n    }\n\n    _this4.body.table.elt.queryCtrl.requestTransferSearchItems();\n  };\n\n  if (this.parentRow) {\n    idx = this.parentRow.subRows.indexOf(this);\n\n    if (idx >= 0) {\n      makeReplaceRow(idx, this.parentRow.subRows, this.parentRow.data.subRows);\n    }\n  } else {\n    idx = this.body.rows.indexOf(this);\n\n    if (idx >= 0) {\n      makeReplaceRow(idx, this.body.rows, this.body.data.rows);\n    }\n  }\n};\n/***\r\n *\r\n @param {TTDRow} newRowData\r\n */\n\n\nTTRow.prototype.addRowBefore = function (newRowData) {\n  var _this5 = this;\n\n  var idx = -1;\n\n  var makeNewRowBefore = function makeNewRowBefore(idx, rows, dataRows) {\n    var row, clonedRow;\n    var rowElements;\n    row = new TTRow(_this5.body, newRowData, _this5.parentRow);\n\n    if (_this5.clonedRow) {\n      clonedRow = new TTClonedRow(row, null, idx);\n    }\n\n    if (_this5.elt.parentElement) {\n      rowElements = clonedRow ? clonedRow.getRowElements() : row.getRowElements();\n      rowElements.forEach(function (elt) {\n        return _this5.body.elt.addChildBefore(elt, _this5.elt);\n      });\n\n      _ResizeSystem[\"default\"].requestUpdateSignal();\n    }\n\n    rows.splice(idx, 0, row);\n    dataRows.splice(idx, 0, newRowData);\n\n    if (_this5.clonedRow) {\n      _this5.clonedRow.addRowBefore(clonedRow);\n    }\n\n    _this5.body.table.elt.queryCtrl.requestTransferSearchItems();\n  };\n\n  if (this.parentRow) {\n    idx = this.parentRow.subRows.indexOf(this);\n\n    if (idx >= 0) {\n      makeNewRowBefore(idx, this.parentRow.subRows, this.parentRow.data.subRows);\n    }\n  } else {\n    idx = this.body.rows.indexOf(this);\n\n    if (idx >= 0) {\n      makeNewRowBefore(idx, this.body.rows, this.body.data.rows);\n    }\n  }\n};\n/***\r\n *\r\n @param {TTDRow} newRowData\r\n */\n\n\nTTRow.prototype.addRowAfter = function (newRowData) {\n  var _this6 = this;\n\n  var idx = -1;\n  var rowElements;\n  var bf;\n\n  var makeNewRowAfter = function makeNewRowAfter(idx, rows, dataRows) {\n    var row = new TTRow(_this6.body, newRowData, _this6.parentRow);\n    var clonedRow;\n    if (_this6.clonedRow) clonedRow = new TTClonedRow(row, null, idx);\n\n    if (_this6.elt.parentElement) {\n      rowElements = _this6.clonedRow ? _this6.clonedRow.getRowElements() : _this6.getRowElements();\n      bf = _this6.body.elt.findChildAfter(rowElements[rowElements.length - 1]);\n      rowElements = clonedRow ? clonedRow.getRowElements() : row.getRowElements();\n\n      if (bf) {\n        rowElements.forEach(function (elt) {\n          return _this6.body.elt.addChildBefore(elt, bf);\n        });\n      } else {\n        rowElements.forEach(function (elt) {\n          return _this6.body.elt.addChild(elt);\n        });\n      }\n\n      _ResizeSystem[\"default\"].requestUpdateSignal();\n    }\n\n    rows.splice(idx + 1, 0, row);\n    dataRows.splice(idx + 1, 0, newRowData);\n    if (_this6.clonedRow) _this6.clonedRow.addRowBefore(clonedRow);\n\n    _this6.body.table.elt.queryCtrl.requestTransferSearchItems();\n  };\n\n  if (this.parentRow) {\n    idx = this.parentRow.subRows.indexOf(this);\n\n    if (idx >= 0) {\n      makeNewRowAfter(idx, this.parentRow.subRows, this.parentRow.data.subRows);\n    }\n  } else {\n    idx = this.body.rows.indexOf(this);\n\n    if (idx >= 0) {\n      makeNewRowAfter(idx, this.body.rows, this.body.data.rows);\n    }\n  }\n};\n\nObject.defineProperty(TTRow.prototype, 'elt', {\n  get: function get() {\n    var _this7 = this;\n\n    if (!this._elt) {\n      this._elt = (0, _ACore._)({\n        tag: 'tr',\n        \"class\": 'as-tree-table-row',\n        attr: {\n          'data-level': this.level + ''\n        }\n      });\n      if (this.data.id) this._elt.attr('data-id', this.data.id);\n      if (this.isOpened) this._elt.addClass('as-is-opened');\n      if (this.subRows.length > 0) this._elt.addClass('as-has-sub-row');\n\n      this._elt.addChild(this.cells.map(function (cell, i) {\n        return cell.elt.attr('data-col-idx', i + '');\n      }));\n\n      this.$toggle = (0, _ACore.$)('.as-tree-table-toggle', this._elt);\n\n      if (this.$toggle) {\n        this.$toggleCell = this.$toggle.parentElement;\n        this.$toggleCell.addClass('as-has-toggle');\n        this.$toggle = (0, _ACore._)({\n          elt: this.$toggle,\n          child: 'toggler-ico',\n          on: {\n            click: function click() {\n              if (_this7.clonedRow) {\n                _this7.clonedRow.toggle();\n              } else {\n                _this7.toggle();\n              }\n            }\n          }\n        });\n      }\n    }\n\n    return this._elt;\n  }\n});\nObject.defineProperty(TTRow.prototype, 'innerText', Object.getOwnPropertyDescriptor(_DTBodyRow[\"default\"].prototype, 'innerText'));\nvar _default = TTRow;\n/***\r\n *\r\n * @param {TTRow} origin\r\n * @param queryResult\r\n * @param idx\r\n * @constructor\r\n */\n\nexports[\"default\"] = _default;\n\nfunction TTClonedRow(origin, queryResult, idx) {\n  this.body = origin.body;\n  this.idx = idx;\n  this.id = origin.id;\n  this._elt = origin.elt;\n  this.elt = origin.elt;\n  this.data = origin.data;\n  this.origin = origin;\n  this.score = queryResult && queryResult[this.id];\n  if (!queryResult) this.score = 1e6;\n  this.isOpened = this.score && this.score[0] <= this.score[1];\n  this.attach();\n\n  if (this.isOpened) {\n    this.subRows = this.origin.subRows.filter(function (row) {\n      return queryResult[row.id];\n    }).map(function (row, i) {\n      return new TTClonedRow(row, queryResult, i);\n    });\n    this.subRows.sort(function (a, b) {\n      var sa = a.score[1];\n      var sb = b.score[1];\n      if (sa !== sb) return sb - sa;\n      return a.idx - b.idx;\n    });\n  } else {\n    this.subRows = this.origin.subRows.map(function (row, i) {\n      return new TTClonedRow(row, queryResult, i);\n    });\n  }\n}\n\n['toggle', 'open', 'close', 'getRowElements', 'updateSizeUp'].forEach(function (key) {\n  TTClonedRow.prototype[key] = TTRow.prototype[key];\n});\n\nTTClonedRow.prototype.remove = function () {\n  var parentRow = this.origin.parentRow && this.origin.parentRow.clonedRow;\n  var idx;\n\n  if (parentRow) {\n    idx = parentRow.subRows.indexOf(this);\n\n    if (idx >= 0) {\n      parentRow.subRows.splice(idx, 1);\n    }\n  } else {\n    idx = this.origin.body.clonedRows.indexOf(this);\n\n    if (idx >= 0) {\n      this.origin.body.clonedRows.splice(idx, 1);\n    }\n  }\n};\n\nTTClonedRow.prototype.replace = function (newClonedRow) {\n  var parentRow = this.origin.parentRow && this.origin.parentRow.clonedRow;\n  var idx;\n\n  if (parentRow) {\n    idx = parentRow.subRows.indexOf(this);\n\n    if (idx >= 0) {\n      parentRow.subRows.splice(idx, 1, newClonedRow);\n    }\n  } else {\n    idx = this.origin.body.clonedRows.indexOf(this);\n\n    if (idx >= 0) {\n      this.origin.body.clonedRows.splice(idx, 1, newClonedRow);\n    }\n  }\n};\n\nTTClonedRow.prototype.addRowBefore = function (newClonedRow) {\n  var parentRow = this.origin.parentRow && this.origin.parentRow.clonedRow;\n  var idx;\n\n  if (parentRow) {\n    idx = parentRow.subRows.indexOf(this);\n\n    if (idx >= 0) {\n      parentRow.subRows.splice(idx, 0, newClonedRow);\n    }\n  } else {\n    idx = this.origin.body.clonedRows.indexOf(this);\n\n    if (idx >= 0) {\n      this.origin.body.clonedRows.splice(idx, 0, newClonedRow);\n    }\n  }\n};\n\nTTClonedRow.prototype.addRowAfter = function (newClonedRow) {\n  var parentRow = this.origin.parentRow && this.origin.parentRow.clonedRow;\n  var idx;\n\n  if (parentRow) {\n    idx = parentRow.subRows.indexOf(this);\n\n    if (idx >= 0) {\n      parentRow.subRows.splice(idx + 1, 0, newClonedRow);\n    }\n  } else {\n    idx = this.origin.body.clonedRows.indexOf(this);\n\n    if (idx >= 0) {\n      this.origin.body.clonedRows.splice(idx + 1, 0, newClonedRow);\n    }\n  }\n};\n\nTTClonedRow.prototype.addSubRow = function (newClonedRow) {\n  this.subRows.push(newClonedRow);\n};\n\nTTClonedRow.prototype.attach = function () {\n  if (this.isOpened) {\n    this.origin.elt.addClass('as-is-opened');\n  } else {\n    this.origin.elt.removeClass('as-is-opened');\n  }\n\n  this.origin.clonedRow = this;\n};\n\nTTClonedRow.prototype.detach = function () {\n  if (this.origin.isOpened) {\n    this.origin.elt.addClass('as-is-opened');\n  } else {\n    this.origin.elt.removeClass('as-is-opened');\n  }\n\n  this.origin.clonedRow = null;\n  this.subRows.forEach(function (row) {\n    return row.detach();\n  });\n};\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/treetable/TTRow.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/treetable/TTTable.js":
/*!**********************************************************!*\
  !*** ./node_modules/absol-acomp/js/treetable/TTTable.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _TTHead = _interopRequireDefault(__webpack_require__(/*! ./TTHead */ \"./node_modules/absol-acomp/js/treetable/TTHead.js\"));\n\nvar _TTBody = _interopRequireDefault(__webpack_require__(/*! ./TTBody */ \"./node_modules/absol-acomp/js/treetable/TTBody.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n *\r\n * @param {TreeTable} elt\r\n * @param data\r\n * @constructor\r\n */\nfunction TTTable(elt, data) {\n  this.data = data;\n  this.elt = elt;\n  this.head = new _TTHead[\"default\"](this, this.data.head);\n  this.body = new _TTBody[\"default\"](this, this.data.body);\n}\n\nvar _default = TTTable;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/treetable/TTTable.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/treetable/TreeTable.js":
/*!************************************************************!*\
  !*** ./node_modules/absol-acomp/js/treetable/TreeTable.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\nexports.ttStructAdapter2TTDAdapter = ttStructAdapter2TTDAdapter;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _TTDataAdapter = _interopRequireDefault(__webpack_require__(/*! ./TTDataAdapter */ \"./node_modules/absol-acomp/js/treetable/TTDataAdapter.js\"));\n\nvar _noop = _interopRequireDefault(__webpack_require__(/*! absol/src/Code/noop */ \"./node_modules/absol/src/Code/noop.js\"));\n\nvar _DynamicCSS = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/DynamicCSS */ \"./node_modules/absol/src/HTML5/DynamicCSS.js\"));\n\n__webpack_require__(/*! ../../css/treetable.css */ \"./node_modules/absol-acomp/css/treetable.css\");\n\nvar _TTQueryController = _interopRequireDefault(__webpack_require__(/*! ./TTQueryController */ \"./node_modules/absol-acomp/js/treetable/TTQueryController.js\"));\n\nvar _datetime = __webpack_require__(/*! absol/src/Time/datetime */ \"./node_modules/absol/src/Time/datetime.js\");\n\nvar _LinearColorTinyBar = _interopRequireDefault(__webpack_require__(/*! ../LinearColorTinyBar */ \"./node_modules/absol-acomp/js/LinearColorTinyBar.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nvar _attribute = __webpack_require__(/*! absol/src/JSX/attribute */ \"./node_modules/absol/src/JSX/attribute.js\");\n\nvar _Rectangle = _interopRequireDefault(__webpack_require__(/*! absol/src/Math/Rectangle */ \"./node_modules/absol/src/Math/Rectangle.js\"));\n\nvar _printer = __webpack_require__(/*! absol/src/Print/printer */ \"./node_modules/absol/src/Print/printer.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @typedef {Object} TTDHeadCell\r\n * @property {AbsolConstructDescriptor|Array<AbsolConstructDescriptor>|AElement} [child]\r\n * @property {function(elt:AElement, data:TTDHeadCell, controller:TTCell): void} render\r\n * @property {CSSStyleDeclaration} style\r\n */\n\n/***\r\n * @typedef {Object} TTDHeadRow\r\n * @property {Array<TTDHeadCell>} cells\r\n * @property {Array<TTDHeadRow>} subRows\r\n */\n\n/***\r\n * @typedef {Object} TTDHead\r\n * @property {Array<TTDHeadRow>} rows\r\n */\n\n/***\r\n * @typedef {Object} TTDCell\r\n * @property {AbsolConstructDescriptor|Array<AbsolConstructDescriptor>|AElement} [child]\r\n * @property {function(elt:AElement, data:TTDCell, controller:TTCell): void} render\r\n * @property {CSSStyleDeclaration} [style]\r\n * @property {string|Array<string>} class\r\n * @property {Object} attr\r\n */\n\n/***\r\n * @typedef {Object} TTDRow\r\n * @property {Array<TTDCell>} cells\r\n * @property {Array<TTDRow>} subRows\r\n * @property {string} [id]\r\n *\r\n */\n\n/***\r\n * @typedef {Object} TTDHead\r\n * @property {Array<TTDHeadRow>} rows\r\n */\n\n/***\r\n * @typedef {Object} TTDBody\r\n * @property {Array<TTDRow>} rows\r\n */\n\n/***\r\n * @typedef {Object} TTData\r\n * @property {TTDHead} head\r\n * @property {TTDBody} body\r\n * @property {boolean} [initOpened]\r\n */\n\n/***\r\n * @typedef {Object} TTDAdapter\r\n * @property {TTData} data\r\n */\nvar _loadCss = function loadCss() {\n  var dynamicCss = new _DynamicCSS[\"default\"]();\n  dynamicCss.setRules(Array(20).fill(null).reduce(function (ac, cr, i) {\n    ac[\".as-tree-table-row[data-level=\\\"\".concat(i, \"\\\"] .as-tree-table-toggle::before\")] = {\n      width: 2 * i + 'em'\n    };\n    ac[['.as-tree-table.as-hide-col-' + i + ' td[data-col-idx=\"' + i + '\"]', '.as-tree-table.as-hide-col-' + i + ' th[data-col-idx=\"' + i + '\"]'].join(',')] = {\n      display: 'none'\n    };\n    ac[\".as-tree-table-row[data-level=\\\"\".concat(i, \"\\\"] .as-tree-table-cell.as-has-toggle\")] = {\n      'padding-left': \"calc(5px + \".concat(2 * i + 1.5, \"em)\")\n    };\n    ac[\".as-printer-content .as-tree-table-row[data-level=\\\"\".concat(i, \"\\\"] .as-tree-table-cell.as-has-toggle\")] = {\n      'padding-left': \"calc(5px + \".concat(2 * i, \"em)\")\n    };\n    return ac;\n  }, {})).commit();\n  _loadCss = _noop[\"default\"];\n};\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\n\n\nfunction TreeTable() {\n  _loadCss();\n\n  this._hiddenColumns = [];\n  this.$head = (0, _ACore.$)('thead', this);\n  this.$body = (0, _ACore.$)('tbody', this);\n  this.savedState = {};\n  /**\r\n   *\r\n   * @type {null|TTTable}\r\n   */\n\n  this.table = null;\n  /***\r\n   *\r\n   * @type {null|TTDataAdapter}\r\n   */\n\n  this.mAdapter = null;\n  this.queryCtrl = new _TTQueryController[\"default\"](this);\n  /***\r\n   * @name adapter\r\n   * @type TTDAdapter\r\n   * @memberOf TreeTable#\r\n   */\n\n  /***\r\n   * @name searchInput\r\n   * @type SearchTextInput\r\n   * @memberOf TreeTable#\r\n   */\n}\n\nTreeTable.tag = 'TreeTable'.toLowerCase();\n\nTreeTable.render = function () {\n  return (0, _ACore._)({\n    tag: 'table',\n    \"class\": 'as-tree-table',\n    child: [{\n      tag: 'thead',\n      \"class\": 'as-tree-table-head'\n    }, {\n      tag: 'tbody'\n    }]\n  });\n};\n\nTreeTable.prototype.removeRow = function (rowData) {\n  if (!this.table) return;\n  var row = this.table.body.rowOf(rowData);\n  if (row) row.remove();\n};\n\nTreeTable.prototype.replaceRow = function (rowData, oldRowData) {\n  if (!this.table) return;\n  var row = this.table.body.rowOf(oldRowData);\n  if (row) row.replace(rowData);\n};\n/***\r\n *\r\n * @param rowData\r\n * @param {any|null} parentRow\r\n */\n\n\nTreeTable.prototype.addRowIn = function (rowData, parentRow) {\n  if (!this.table) return;\n  var row;\n\n  if (parentRow) {\n    row = this.table.body.rowOf(parentRow);\n    if (row) row.addSubRow(rowData);else {\n      console.error('Can not find row', parentRow);\n    }\n  } else {\n    this.table.body.addRow(rowData);\n  }\n};\n/***\r\n *\r\n * @param rowData\r\n * @param {any|null} bfRow\r\n */\n\n\nTreeTable.prototype.addRowBefore = function (rowData, bfRow) {\n  if (!this.table) return;\n  var row;\n\n  if (bfRow) {\n    row = this.table.body.rowOf(bfRow);\n    if (row) row.addRowBefore(rowData);else {\n      console.error('Can not find row', bfRow);\n    }\n  } else {\n    this.table.body.addRow(rowData);\n  }\n};\n/***\r\n *\r\n * @param rowData\r\n * @param {any|null} atRow\r\n */\n\n\nTreeTable.prototype.addRowAfter = function (rowData, atRow) {\n  if (!this.table) return;\n  var row;\n\n  if (atRow) {\n    row = this.table.body.rowOf(atRow);\n    if (row) row.addRowAfter(rowData);else {\n      console.error('Can not find row', atRow);\n    }\n  } else {\n    if (this.table.body.rows.length === 0) {\n      this.table.body.addRow(rowData);\n    } else {\n      this.table.body.rows[0].addRowBefore(rowData);\n    }\n  }\n};\n\nTreeTable.prototype.rowOf = function (rowData) {\n  return this.table.body.rowOf(rowData);\n};\n\nTreeTable.prototype.notifySizeChange = function () {\n  var c = this.parentElement;\n\n  while (c) {\n    if (typeof c.updateSize === 'function') c.updateSize();\n    c = c.parentElement;\n  }\n};\n\nTreeTable.prototype.attachSearchInput = function (input) {\n  this.searchInput = input;\n};\n\nTreeTable.property = {};\nTreeTable.property.adapter = {\n  set: function set(adapter) {\n    if (adapter.type === 'struct') {\n      adapter = ttStructAdapter2TTDAdapter(adapter);\n    }\n\n    this._adapterData = adapter;\n    this.mAdapter = new _TTDataAdapter[\"default\"](this, adapter);\n    this.mAdapter.render();\n    this.queryCtrl.transferSearchItems();\n    var c = this.parentElement;\n\n    while (c) {\n      if (c.hasClass && c.hasClass('absol-table-vscroller') && c.update) {\n        c.update();\n        break;\n      }\n\n      c = c.parentElement;\n    }\n  },\n  get: function get() {\n    return this._adapterData;\n  }\n};\nTreeTable.property.filterInputs = {\n  set: function set(inputs) {},\n  get: function get() {}\n};\nTreeTable.property.searchInput = {\n  set: function set(input) {\n    if (input) this.queryCtrl.attachSearchInput(input);else this.queryCtrl.detachSearchInput();\n  },\n  get: function get() {\n    return this.queryCtrl.$searchInput;\n  }\n};\nTreeTable.property.hiddenColumns = {\n  set: function set(value) {\n    value = value || [];\n\n    this._hiddenColumns.forEach(function (idxV) {\n      this.removeClass('as-hide-col-' + idxV);\n    }.bind(this));\n\n    this._hiddenColumns = value;\n\n    this._hiddenColumns.forEach(function (idxV) {\n      this.addClass('as-hide-col-' + idxV);\n    }.bind(this));\n\n    var c = this.parentElement;\n\n    while (c) {\n      if (c.hasClass && c.hasClass('absol-table-vscroller') && c.update) {\n        c.update();\n        break;\n      }\n\n      c = c.parentElement;\n    }\n  },\n  get: function get() {\n    return this._hiddenColumns;\n  }\n};\n\n_ACore[\"default\"].install(TreeTable);\n\nvar _default = TreeTable;\n/***\r\n *\r\n * @param adapterData\r\n * @returns {TTDAdapter}\r\n */\n\nexports[\"default\"] = _default;\n\nfunction ttStructAdapter2TTDAdapter(adapterData) {\n  var toString = {\n    'Date': function Date(x) {\n      return x ? (0, _datetime.formatDateTime)(x, 'dd/MM/yyyy') : '';\n    },\n    'DateTime': function DateTime(x) {\n      return x ? (0, _datetime.formatDateTime)(x, 'dd/MM/yyyy HH:mm') : '';\n    },\n    text: function text(x) {\n      return (x || '') + '';\n    }\n  };\n\n  var getItemDict = function getItemDict(desc) {\n    var dict = desc.__dict__;\n\n    if (!dict) {\n      Object.defineProperty(desc, '__dict__', {\n        enumerable: false,\n        writable: true,\n        configurable: true,\n        value: (desc.items || []).reduce(function makeDict(ac, cr) {\n          var key = (0, _utils.keyStringOf)(cr.value);\n          ac[key] = cr;\n\n          if (cr.items && cr.items.reduce) {\n            cr.items.reduce(makeDict, ac);\n          }\n\n          return ac;\n        }, {})\n      });\n      dict = desc.__dict__;\n    }\n\n    return dict;\n  };\n\n  var handlers = {\n    'Date': function Date(x) {\n      return [{\n        tag: 'span',\n        child: {\n          text: x ? (0, _datetime.formatDateTime)(x, 'dd/MM/yyyy') : ''\n        }\n      }];\n    },\n    'DateTime': function DateTime(x) {\n      return [{\n        tag: 'span',\n        child: {\n          text: x ? (0, _datetime.formatDateTime)(x, 'dd/MM/yyyy HH:mm') : ''\n        }\n      }];\n    },\n    text: function text(x) {\n      return [{\n        tag: 'span',\n        child: {\n          text: (x || '') + ''\n        }\n      }];\n    },\n    performance: function performance(x, desc) {\n      return [{\n        tag: _LinearColorTinyBar[\"default\"].tag,\n        props: {\n          colorMapping: desc.colorMapping || 'performance',\n          value: x,\n          extend: typeof desc.extend === \"number\" && desc.extend > 0 ? desc.extend : 0.5,\n          valueText: typeof x === 'number' ? (x * 100).toFixed(2) + '%' : x + ''\n        }\n      }];\n    },\n    \"enum\": function _enum(x, desc) {\n      var dict = getItemDict(desc);\n      var item = dict[(0, _utils.keyStringOf)(x)];\n      if (item) return [{\n        tag: 'span',\n        child: {\n          text: item.text\n        }\n      }];else return [{\n        tag: 'span',\n        child: {\n          text: ''\n        }\n      }];\n    },\n    '{enum}': function _enum(x, desc) {\n      var dict = getItemDict(desc);\n      if (!(x instanceof Array)) return [{\n        tag: 'span',\n        child: {\n          text: ''\n        }\n      }];\n      var items = x.map(function (it) {\n        return dict[(0, _utils.keyStringOf)(it)];\n      }).filter(function (it) {\n        return !!it;\n      });\n      var text = items.map(function (it) {\n        return it.text;\n      }).join(', ');\n      return [{\n        tag: 'span',\n        child: {\n          text: text\n        }\n      }];\n    }\n  };\n  /**\r\n   *\r\n   * @type {TTDAdapter}\r\n   */\n\n  var res = {\n    data: {\n      initOpened: true,\n      head: {\n        rows: [{\n          cells: adapterData.propertyNames.map(function (name) {\n            var cellData = {\n              child: {\n                text: name\n              }\n            };\n            var descriptor = adapterData.propertyDescriptors[name];\n            if (descriptor && descriptor.text) cellData.child.text = descriptor.text;\n            return cellData;\n          })\n        }]\n      },\n      body: {\n        rows: adapterData.records.map(function visit(it) {\n          var row = {};\n          row.cells = adapterData.propertyNames.map(function (name) {\n            var descriptor = adapterData.propertyDescriptors[name];\n            var type = descriptor && descriptor.type || 'text';\n            var value = it[name];\n            var f = toString[type] || toString.text;\n            var text = f(value);\n            var handler = handlers[type] || handlers.text;\n            var cell = {\n              innerText: text,\n              attr: {\n                'data-type': type\n              },\n              child: handler(value, descriptor)\n            };\n\n            if (name === adapterData.treeBy) {\n              cell.child.unshift('.as-tree-table-toggle');\n            }\n\n            return cell;\n          });\n\n          if (it.__children__) {\n            row.subRows = it.__children__.map(visit);\n          }\n\n          return row;\n        })\n      }\n    }\n  };\n  return res;\n}\n\n_printer.ShareSerializer.addHandlerBefore({\n  id: 'TreeTableCellBorder',\n  match: function match(elt, scope, stack) {\n    if (!elt.hasClass) return false;\n    if (!elt.hasClass('as-tree-table-head-cell') && !elt.hasClass('as-tree-table-cell')) return false;\n    var style = getComputedStyle(elt);\n    var borderColor = style.getPropertyValue('border-color');\n    var borderStyle = style.getPropertyValue('border-style');\n    var borderWidth = style.getPropertyValue('border-width');\n    var borderRadius = style.getPropertyValue('border-radius');\n    if (borderStyle === 'none' || borderWidth === '0px') return false;\n    scope.declare('borderStyle', {\n      width: parseFloat(borderWidth.replace('px', '')),\n      radius: (0, _attribute.parseMeasureValue)(borderRadius),\n      color: borderColor\n    });\n    return true;\n  },\n  exec: function exec(printer, elt, scope, stack, accept) {\n    var borderStyle = scope.get('borderStyle');\n\n    var bound = _Rectangle[\"default\"].fromClientRect(elt.getBoundingClientRect());\n\n    var rect = bound.clone();\n    var strokeWidth = borderStyle.width;\n    rect.x -= printer.O.x;\n    rect.y -= printer.O.y;\n    var radius = borderStyle.radius;\n    var rounded;\n\n    if (radius) {\n      switch (radius.unit) {\n        case '%':\n          rounded = [radius.value * rect.width / 100, radius.value * rect.height / 100];\n          break;\n\n        case 'px':\n          rounded = radius.value;\n          break;\n      }\n    }\n\n    printer.rect(rect, {\n      stroke: borderStyle.color,\n      rounded: rounded,\n      strokeWidth: strokeWidth\n    });\n    return true;\n  }\n}, 'Border');\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/treetable/TreeTable.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/utils.js":
/*!**********************************************!*\
  !*** ./node_modules/absol-acomp/js/utils.js ***!
  \**********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.absCeil = absCeil;\nexports.addElementAfter = addElementAfter;\nexports.addElementsBefore = addElementsBefore;\nexports.buildCss = buildCss;\nexports.calcDTQueryHash = calcDTQueryHash;\nexports.charWidth = void 0;\nexports.checkedValues2RootTreeValues = checkedValues2RootTreeValues;\nexports.cleanMenuItemProperty = cleanMenuItemProperty;\nexports.contenteditableTextOnly = contenteditableTextOnly;\nexports.copySelectionItemArray = copySelectionItemArray;\nexports.estimateWidth14 = estimateWidth14;\nexports.fileAccept = fileAccept;\nexports.fileInfoOf = fileInfoOf;\nexports.fileSize2Text = fileSize2Text;\nexports.formatLocalFloat = formatLocalFloat;\nexports.forwardEvent = forwardEvent;\nexports.forwardMethod = forwardMethod;\nexports.getAncestorElementOf = getAncestorElementOf;\nexports.getCaretPosition = getCaretPosition;\nexports.getMapZoomLevel = getMapZoomLevel;\nexports.getSelectionRangeDirection = getSelectionRangeDirection;\nexports.getSelectionText = getSelectionText;\nexports.getTagListInTextMessage = getTagListInTextMessage;\nexports.implicitLatLng = implicitLatLng;\nexports.insertTextAtCursor = insertTextAtCursor;\nexports.isDateTimeFormatToken = isDateTimeFormatToken;\nexports.isNaturalNumber = isNaturalNumber;\nexports.isNone = isNone;\nexports.isRealNumber = isRealNumber;\nexports.isScrolledToBottom = isScrolledToBottom;\nexports.isURLAddress = isURLAddress;\nexports.jsStringOf = jsStringOf;\nexports.keyStringOf = keyStringOf;\nexports.latLngDistance = latLngDistance;\nexports.measureText = measureText;\nexports.nearFloor = nearFloor;\nexports.openFileDialog = openFileDialog;\nexports.openYesNoQuestionDialog = openYesNoQuestionDialog;\nexports.parseLocalFloat = parseLocalFloat;\nexports.positiveIntMod = positiveIntMod;\nexports.preventNotNumberInput = preventNotNumberInput;\nexports.replaceChildrenInElt = replaceChildrenInElt;\nexports.replaceFileInObject = replaceFileInObject;\nexports.replaceInObject = replaceInObject;\nexports.rootTreeValues2CheckedValues = rootTreeValues2CheckedValues;\nexports.setSelectionRange = setSelectionRange;\nexports.swapChildrenInElt = swapChildrenInElt;\nexports.swapElt = swapElt;\nexports.vScrollIntoView = vScrollIntoView;\nexports.wrapText = wrapText;\nexports.wrapWord = wrapWord;\nexports.zeroPadding = zeroPadding;\n\nvar _ACore = _interopRequireWildcard(__webpack_require__(/*! ../ACore */ \"./node_modules/absol-acomp/ACore.js\"));\n\nvar _stringUtils = __webpack_require__(/*! absol/src/String/stringUtils */ \"./node_modules/absol/src/String/stringUtils.js\");\n\nvar _YesNoQuestionDialog = _interopRequireDefault(__webpack_require__(/*! ./YesNoQuestionDialog */ \"./node_modules/absol-acomp/js/YesNoQuestionDialog.js\"));\n\nvar _Modal = _interopRequireDefault(__webpack_require__(/*! ./Modal */ \"./node_modules/absol-acomp/js/Modal.js\"));\n\nvar _ext2MineType = _interopRequireDefault(__webpack_require__(/*! absol/src/Converter/ext2MineType */ \"./node_modules/absol/src/Converter/ext2MineType.js\"));\n\nvar _TextMeasurement = _interopRequireDefault(__webpack_require__(/*! ./tool/TextMeasurement */ \"./node_modules/absol-acomp/js/tool/TextMeasurement.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction getSelectionRangeDirection(range) {\n  var sel = document.getSelection();\n  var direction = 'forward';\n  var cmpPosition = sel.anchorNode.compareDocumentPosition(sel.focusNode);\n\n  if (cmpPosition === 4) {\n    direction = 'forward';\n  } else if (cmpPosition === 2) {\n    direction = 'backward';\n  } else if (!cmpPosition && sel.anchorOffset > sel.focusOffset || cmpPosition === Node.DOCUMENT_POSITION_PRECEDING) {\n    direction = 'backward';\n  }\n\n  return direction;\n}\n/***\r\n *\r\n * @param {Range} range\r\n * @param {boolean=} backward\r\n */\n\n\nfunction setSelectionRange(range, backward) {\n  var sel = document.getSelection();\n\n  if (backward) {\n    if (typeof sel.extend != \"undefined\") {\n      var endRange = range.cloneRange();\n      endRange.collapse(false);\n      sel.removeAllRanges();\n      sel.addRange(endRange);\n      sel.extend(range.startContainer, range.startOffset);\n    }\n  } else {\n    sel.removeAllRanges();\n    sel.addRange(range);\n  }\n}\n\nfunction insertTextAtCursor(text) {\n  var sel, range;\n\n  if (window.getSelection) {\n    sel = window.getSelection();\n\n    if (sel.getRangeAt && sel.rangeCount) {\n      range = sel.getRangeAt(0);\n      range.deleteContents();\n      range.insertNode(document.createTextNode(text));\n    }\n  } else if (document.selection && document.selection.createRange) {\n    document.selection.createRange().text = text;\n  }\n}\n\nfunction contenteditableTextOnly(element, processText) {\n  if (element.__contenteditableTextOnly__) return;\n  element.__contenteditableTextOnly__ = true;\n  element.addEventListener(\"paste\", function (e) {\n    e.preventDefault();\n\n    if (e.clipboardData && e.clipboardData.getData) {\n      var text = e.clipboardData.getData(\"text/plain\");\n      if (processText) text = processText(text);\n      document.execCommand(\"insertHTML\", false, text);\n    } else if (window.clipboardData && window.clipboardData.getData) {\n      var text = window.clipboardData.getData(\"Text\");\n      if (processText) text = processText(text);\n      insertTextAtCursor(text);\n    }\n  });\n}\n\nfunction getSelectionText() {\n  var text = \"\";\n  var activeEl = document.activeElement;\n  var activeElTagName = activeEl ? activeEl.tagName.toLowerCase() : null;\n\n  if (activeElTagName == \"textarea\" || activeElTagName == \"input\" && /^(?:text|search|password|tel|url)$/i.test(activeEl.type) && typeof activeEl.selectionStart == \"number\") {\n    text = activeEl.value.slice(activeEl.selectionStart, activeEl.selectionEnd);\n  } else if (window.getSelection) {\n    text = window.getSelection().toString();\n  }\n\n  return text;\n}\n/***\r\n *\r\n * @param num\r\n * @param maxVal\r\n * @return {number}\r\n */\n\n\nfunction positiveIntMod(num, maxVal) {\n  if (maxVal <= 0) return 0;\n\n  if (num >= 0 && num < maxVal) {\n    return Math.floor(num);\n  } else if (num === Infinity) {\n    if (maxVal === Infinity) return Infinity;else return 0;\n  } else if (num < 0) {\n    return (num + Math.ceil(-num / maxVal) * maxVal) % maxVal;\n  } else if (num >= maxVal) {\n    return Math.floor(num) % maxVal;\n  } else return 0;\n}\n\nfunction nearFloor(x, epsilon) {\n  var y = Math.floor(x);\n  if (x - y + epsilon >= 1) y++;\n  return y;\n}\n\nfunction measureText(text, font) {\n  // re-use canvas object for better performance\n  var canvas = measureText.canvas || (measureText.canvas = document.createElement(\"canvas\"));\n  var context = canvas.getContext(\"2d\");\n  if (font) context.font = font;\n  var metrics = context.measureText(text);\n  return metrics;\n}\n\nfunction getCaretPosition(oField) {\n  var iCaretPos = 0;\n\n  if (document.selection) {\n    oField.focus();\n    var oSel = document.selection.createRange();\n    oSel.moveStart('character', -oField.value.length);\n    iCaretPos = oSel.text.length;\n  } else if (oField.selectionStart || oField.selectionStart == '0') iCaretPos = oField.selectionDirection == 'backward' ? oField.selectionStart : oField.selectionEnd;\n\n  return iCaretPos;\n}\n/**\r\n *\r\n * @param {AElement} elt\r\n */\n\n\nfunction preventNotNumberInput(elt) {\n  elt.addEventListener('keyup', function () {\n    var lastValue = elt.tagName === \"DIV\" || elt.tagName === \"SPAN\" ? elt.innerHTML : elt.attributes.value;\n    var cValue = parseFloat(this.value);\n\n    if (this.value != lastValue) {\n      elt.attributes.value = cValue;\n      elt.emit('change', cValue, elt);\n    }\n  });\n  elt.addEventListener(\"paste\", function (e) {\n    e.preventDefault();\n    var text = \"\";\n\n    if (e.clipboardData && e.clipboardData.getData) {\n      text = e.clipboardData.getData(\"text/plain\");\n    } else if (window.clipboardData && window.clipboardData.getData) {\n      text = window.clipboardData.getData(\"Text\");\n    }\n\n    var matched = text.match(/[+-]?([0-9]*[.])?[0-9]+/);\n\n    if (matched) {\n      this.value = matched[0];\n    }\n  });\n  elt.addEventListener('keydown', function (event) {\n    var key = event.key;\n\n    if (key && key.length == 1 && !event.ctrlKey && !event.altKey) {\n      if (key.match(/[0-9.\\-\\+]/)) {\n        if (key == '.' && this.value.indexOf('.') >= 0) event.preventDefault();\n        if ((key == '+' || key == '-') && (this.value.indexOf('+') >= 0 || this.value.indexOf('-') >= 0 || getCaretPosition(this) > 0)) event.preventDefault();\n      } else event.preventDefault();\n    }\n  });\n}\n\nfunction buildCss(StyleSheet) {\n  return (0, _ACore._)({\n    tag: 'style',\n    props: {\n      innerHTML: Object.keys(StyleSheet).map(function (key) {\n        var style = StyleSheet[key];\n        return key + ' {\\n' + Object.keys(style).map(function (propName) {\n          return propName + ': ' + style[propName] + ';';\n        }).join('\\n') + '}';\n      }).join('\\n')\n    }\n  }).addTo(document.head);\n}\n\nfunction forwardEvent(elt, fromName, toName) {\n  elt.defineEvent(toName);\n  elt.on(fromName, function (event) {\n    event = Object.assign({}, event);\n    event.type = toName;\n    this.emit.apply(this, [toName, event].concat(Array.prototype.slice.call(arguments, 1)));\n  });\n}\n\nfunction forwardMethod(elt, fromName, toName) {\n  elt[fromName] = function () {\n    this[toName].apply(this, arguments);\n  };\n}\n/***\r\n *\r\n * @param {\"camera\"|\"microphone\"|\"camcorder\"|{accept:(\"image/*\"|\"audio/*\"|\"video/*\"|undefined), capture:boolean|undefined, multiple:boolean|undefined}|{}=} props\r\n * @param {boolean=}unSafe\r\n *  @return {Promise<File[]>}\r\n */\n\n\nfunction openFileDialog(props, unSafe) {\n  return new Promise(function (resolve) {\n    var input = _ACore[\"default\"]._({\n      tag: 'input',\n      style: {\n        display: 'none'\n      },\n      attr: {\n        type: 'file'\n      }\n    }).addTo(document.body);\n\n    props = props || {};\n\n    if (props === 'camera') {\n      props = {\n        accept: 'image/*',\n        capture: 'camera'\n      };\n    } else if (props === 'microphone') {\n      props = {\n        accept: 'audio/*',\n        capture: \"microphone\"\n      };\n    } else if (props === 'camcorder') {\n      props = {\n        accept: 'video/*',\n        capture: 'camcorder'\n      };\n    }\n\n    if (props.accept) {\n      if (props.accept instanceof Array) input.attr('accept', props.accept.join(','));else input.attr('accept', props.accept);\n    } else {\n      input.attr('accept', null);\n    }\n\n    if (props.capture) {\n      input.attr('capture', props.capture);\n    }\n\n    if (props.multiple) {\n      input.attr('multiple', 'true');\n    } else {\n      input.attr('multiple');\n    }\n\n    input.value = null;\n\n    function focusHandler() {\n      setTimeout(function () {\n        window.removeEventListener('focus', focusHandler);\n\n        if (unSafe) {\n          input.off('change', changeHandler);\n          input.remove();\n          resolve([]);\n        }\n      }, 1000);\n    }\n\n    function changeHandler() {\n      input.off('change', changeHandler);\n      window.removeEventListener('focus', focusHandler);\n      var files = Array.prototype.slice.call(input.files);\n      resolve(files);\n      input.remove();\n    }\n\n    input.on('change', changeHandler);\n    input.click();\n    setTimeout(function () {\n      window.addEventListener('focus', focusHandler);\n    }, 10);\n  });\n}\n\nfunction openYesNoQuestionDialog(title, message) {\n  return new Promise(function (resolve) {\n    if (window.ModalElement && window.ModalElement.question) {\n      window.ModalElement.question({\n        title: title,\n        message: message,\n        onclick: function onclick(sel) {\n          if (sel === 0) {\n            resolve(true);\n          } else {\n            resolve(false);\n          }\n        }\n      });\n    } else {\n      var modal = (0, _ACore._)({\n        tag: _Modal[\"default\"].tag,\n        child: {\n          tag: _YesNoQuestionDialog[\"default\"].tag,\n          props: {\n            textYes: 'Có',\n            textNo: 'Không',\n            message: message,\n            dialogTitle: title\n          },\n          on: {\n            action: function action(event) {\n              modal.remove();\n              resolve(event.action.name === 'yes');\n            }\n          }\n        }\n      }).addTo(document.body);\n    }\n  });\n}\n\nvar charWidth = {\n  \"A\": 9.337890625,\n  \"Á\": 9.337890625,\n  \"À\": 9.337890625,\n  \"Ả\": 9.337890625,\n  \"Ã\": 9.337890625,\n  \"Ạ\": 9.337890625,\n  \"a\": 7.7861328125,\n  \"á\": 7.7861328125,\n  \"à\": 7.7861328125,\n  \"ả\": 7.7861328125,\n  \"ã\": 7.7861328125,\n  \"ạ\": 7.7861328125,\n  \"Ă\": 9.337890625,\n  \"Ắ\": 9.337890625,\n  \"Ằ\": 9.337890625,\n  \"Ẳ\": 9.337890625,\n  \"Ẵ\": 9.337890625,\n  \"Ặ\": 9.337890625,\n  \"ă\": 7.7861328125,\n  \"ắ\": 7.7861328125,\n  \"ằ\": 7.7861328125,\n  \"ẳ\": 7.7861328125,\n  \"ẵ\": 7.7861328125,\n  \"ặ\": 7.7861328125,\n  \"Â\": 9.337890625,\n  \"Ấ\": 9.337890625,\n  \"Ầ\": 9.337890625,\n  \"Ẩ\": 9.337890625,\n  \"Ẫ\": 9.337890625,\n  \"Ậ\": 9.337890625,\n  \"â\": 7.7861328125,\n  \"ấ\": 7.7861328125,\n  \"ầ\": 7.7861328125,\n  \"ẩ\": 7.7861328125,\n  \"ẫ\": 7.7861328125,\n  \"ậ\": 7.7861328125,\n  \"B\": 9.337890625,\n  \"b\": 7.7861328125,\n  \"C\": 10.1103515625,\n  \"c\": 7,\n  \"D\": 10.1103515625,\n  \"d\": 7.7861328125,\n  \"Đ\": 10.1103515625,\n  \"đ\": 7.7861328125,\n  \"E\": 9.337890625,\n  \"É\": 9.337890625,\n  \"È\": 9.337890625,\n  \"Ẻ\": 9.337890625,\n  \"Ẽ\": 9.337890625,\n  \"Ẹ\": 9.337890625,\n  \"e\": 7.7861328125,\n  \"é\": 7.7861328125,\n  \"è\": 7.7861328125,\n  \"ẻ\": 7.7861328125,\n  \"ẽ\": 7.7861328125,\n  \"ẹ\": 7.7861328125,\n  \"Ê\": 9.337890625,\n  \"Ế\": 9.337890625,\n  \"Ề\": 9.337890625,\n  \"Ể\": 9.337890625,\n  \"Ễ\": 9.337890625,\n  \"Ệ\": 9.337890625,\n  \"ê\": 7.7861328125,\n  \"ế\": 7.7861328125,\n  \"ề\": 7.7861328125,\n  \"ể\": 7.7861328125,\n  \"ễ\": 7.7861328125,\n  \"ệ\": 7.7861328125,\n  \"G\": 10.8896484375,\n  \"g\": 7.7861328125,\n  \"H\": 10.1103515625,\n  \"h\": 7.7861328125,\n  \"I\": 3.8896484375,\n  \"Í\": 3.8896484375,\n  \"Ì\": 3.8896484375,\n  \"Ỉ\": 3.8896484375,\n  \"Ĩ\": 3.8896484375,\n  \"Ị\": 3.8896484375,\n  \"i\": 3.1103515625,\n  \"í\": 3.1103515625,\n  \"ì\": 3.1103515625,\n  \"ỉ\": 3.1103515625,\n  \"ĩ\": 3.1103515625,\n  \"ị\": 3.1103515625,\n  \"K\": 9.337890625,\n  \"k\": 7,\n  \"L\": 7.7861328125,\n  \"l\": 3.1103515625,\n  \"M\": 11.662109375,\n  \"m\": 11.662109375,\n  \"N\": 10.1103515625,\n  \"n\": 7.7861328125,\n  \"O\": 10.8896484375,\n  \"Ó\": 10.8896484375,\n  \"Ò\": 10.8896484375,\n  \"Ỏ\": 10.8896484375,\n  \"Õ\": 10.8896484375,\n  \"Ọ\": 10.8896484375,\n  \"o\": 7.7861328125,\n  \"ó\": 7.7861328125,\n  \"ò\": 7.7861328125,\n  \"ỏ\": 7.7861328125,\n  \"õ\": 7.7861328125,\n  \"ọ\": 7.7861328125,\n  \"Ô\": 10.8896484375,\n  \"Ố\": 10.8896484375,\n  \"Ồ\": 10.8896484375,\n  \"Ổ\": 10.8896484375,\n  \"Ỗ\": 10.8896484375,\n  \"Ộ\": 10.8896484375,\n  \"ô\": 7.7861328125,\n  \"ố\": 7.7861328125,\n  \"ồ\": 7.7861328125,\n  \"ổ\": 7.7861328125,\n  \"ỗ\": 7.7861328125,\n  \"ộ\": 7.7861328125,\n  \"Ơ\": 12.00390625,\n  \"Ớ\": 12.00390625,\n  \"Ờ\": 12.00390625,\n  \"Ở\": 12.00390625,\n  \"Ỡ\": 12.00390625,\n  \"Ợ\": 12.00390625,\n  \"ơ\": 9.1806640625,\n  \"ớ\": 9.1806640625,\n  \"ờ\": 9.1806640625,\n  \"ở\": 9.1806640625,\n  \"ỡ\": 9.1806640625,\n  \"ợ\": 9.1806640625,\n  \"P\": 9.337890625,\n  \"p\": 7.7861328125,\n  \"Q\": 10.8896484375,\n  \"q\": 7.7861328125,\n  \"R\": 10.1103515625,\n  \"r\": 4.662109375,\n  \"S\": 9.337890625,\n  \"s\": 7,\n  \"T\": 8.5517578125,\n  \"t\": 3.8896484375,\n  \"U\": 10.1103515625,\n  \"Ú\": 10.1103515625,\n  \"Ù\": 10.1103515625,\n  \"Ủ\": 10.1103515625,\n  \"Ũ\": 10.1103515625,\n  \"Ụ\": 10.1103515625,\n  \"u\": 7.7861328125,\n  \"ú\": 7.7861328125,\n  \"ù\": 7.7861328125,\n  \"ủ\": 7.7861328125,\n  \"ũ\": 7.7861328125,\n  \"ụ\": 7.7861328125,\n  \"Ư\": 11.9560546875,\n  \"Ứ\": 11.9560546875,\n  \"Ừ\": 11.9560546875,\n  \"Ử\": 11.9560546875,\n  \"Ữ\": 11.9560546875,\n  \"Ự\": 11.9560546875,\n  \"ư\": 9.3720703125,\n  \"ứ\": 9.3720703125,\n  \"ừ\": 9.3720703125,\n  \"ử\": 9.3720703125,\n  \"ữ\": 9.3720703125,\n  \"ự\": 9.3720703125,\n  \"V\": 9.337890625,\n  \"v\": 7,\n  \"X\": 9.337890625,\n  \"x\": 7,\n  \"Y\": 9.337890625,\n  \"Ý\": 9.337890625,\n  \"Ỳ\": 9.337890625,\n  \"Ỷ\": 9.337890625,\n  \"Ỹ\": 9.337890625,\n  \"Ỵ\": 9.337890625,\n  \"y\": 7,\n  \"ý\": 7,\n  \"ỳ\": 7,\n  \"ỷ\": 7,\n  \"ỹ\": 7,\n  \"ỵ\": 7,\n  \" \": 3.8896484375\n};\nexports.charWidth = charWidth;\n\nfunction estimateWidth14(text) {\n  // return absol.text.measureText(text, '14px arial').width\n  var l = 0;\n\n  for (var j = 0; j < text.length; ++j) {\n    l += charWidth[text.charAt(j)] || 9.337890625;\n  }\n\n  return l;\n}\n/***\r\n *\r\n * @param {number} v\r\n * @returns {number}\r\n */\n\n\nfunction absCeil(v) {\n  var a = Math.ceil(Math.abs(v));\n  return v < 0 ? -a : a;\n}\n/***\r\n *\r\n * @param {number} x\r\n * @param {number} l\r\n * @returns {String}\r\n */\n\n\nfunction zeroPadding(x, l) {\n  var res = Math.abs(x) + '';\n\n  while (res.length < l) {\n    res = '0' + res;\n  }\n\n  if (x < 0) res = '-' + res;\n  return res;\n}\n\nvar propertyFilter = [\"$trigger\", \"$content\", \"_isShow\", \"defineEvent\", \"isSupportedEvent\", \"emit\", \"fire\", \"eventEmittorOnWithTime\", \"on\", \"once\", \"off\", \"init\", \"eventHandler\", \"super\", \"defineAttribute\", \"defineAttributes\", \"attr\", \"addStyle\", \"removeStyle\", \"addChild\", \"addTo\", \"selfRemove\", \"selfReplace\", \"clearChild\", \"containsClass\", \"addClass\", \"removeClass\", \"getComputedStyleValue\", \"getFontSize\", \"findChildAfter\", \"findChildBefore\", \"addChildBefore\", \"addChildAfter\", \"getBoundingRecursiveRect\", \"isDescendantOf\", \"getCSSRules\", \"afterAttached\", \"afterDisplayed\", \"_azar_extendEvents\", \"__azar_force\", \"_azar_extendAttributes\", \"_azar_extendTags\", \"findAvailablePosition\", \"$container\", \"autoFixParentSize\", \"sync\", \"$dropper\", \"$vmenu\", \"$button\", \"$text\", \"$key\", \"$arrow\", \"$iconCtn\", \"_textMarginRight\", \"_tabIndex\", '$icon', '_icon', '$textNode', '$primaryBtn', '$extendBtn', '_menuHolder', '_items', 'hasClass'].reduce(function (ac, cr) {\n  ac[cr] = true;\n  return ac;\n}, {});\n/**\r\n * This is a solution for menu, before a better one.\r\n * @param obj\r\n * @returns {{}}\r\n */\n\nfunction cleanMenuItemProperty(obj) {\n  var res = {};\n  var keys = Object.keys(obj);\n  var key;\n\n  for (var i = 0; i < keys.length; ++i) {\n    key = keys[i];\n\n    if (!propertyFilter[key]) {\n      res[key] = obj[key];\n    }\n  }\n\n  res.text = obj.text;\n\n  if (obj.icon) {\n    res.icon = obj.icon;\n  }\n\n  if (obj.items) {\n    res.items = obj.items;\n  }\n\n  return res;\n}\n\nfunction getTagListInTextMessage(text) {\n  var rg = /@\\[id:(\\d+)]/g;\n  var matched = rg.exec(text);\n  var dict = {};\n  var v;\n  var res = [];\n\n  while (matched) {\n    v = parseInt(matched[1]);\n    if (isNaN(v)) v = matched[1];\n\n    if (!dict[v]) {\n      dict[v] = true;\n      res.push(v);\n    }\n\n    matched = rg.exec(text);\n  }\n\n  return res;\n}\n/***\r\n *\r\n * @param {AElement} e1\r\n * @param {AElement} e2\r\n */\n\n\nfunction swapElt(e1, e2) {\n  var temp = (0, _ACore._)('div');\n  e1.parentElement.replaceChild(temp, e1);\n  e2.parentElement.replaceChild(e1, e2);\n  temp.parentElement.replaceChild(e2, temp);\n}\n\nfunction swapChildrenInElt(e1, e2) {\n  var c1 = Array.prototype.slice.call(e1.childNodes);\n  var c2 = Array.prototype.slice.call(e2.childNodes);\n  (0, _ACore.$)(e1).clearChild();\n  (0, _ACore.$)(e2).clearChild();\n\n  while (c2.length > 0) {\n    e1.appendChild(c2.shift());\n  }\n\n  while (c1.length > 0) {\n    e2.appendChild(c1.shift());\n  }\n}\n\nfunction replaceChildrenInElt(elt, childNodes) {\n  var nChildren = childNodes.slice();\n  var cChildren = Array.prototype.slice.call(elt.childNodes);\n  var cC, nC;\n\n  while (cChildren.length > 0 && nChildren.length > 0) {\n    cC = cChildren[0];\n    nC = nChildren[0];\n\n    if (cC === nC) {\n      cChildren.shift();\n      nChildren.shift();\n    } else {\n      break;\n    }\n  }\n\n  cChildren.forEach(function (elt) {\n    elt.remove();\n  });\n  elt.addChild(nChildren);\n}\n/**\r\n *\r\n * @param {HTMLElement} elt\r\n */\n\n\nfunction vScrollIntoView(elt) {\n  var parent = elt.parentElement;\n  var overflowStyle;\n\n  while (parent) {\n    overflowStyle = window.getComputedStyle(parent)['overflow'];\n\n    if ((overflowStyle === 'auto scroll' || overflowStyle === 'auto' || overflowStyle === 'hidden auto' || overflowStyle === 'scroll' || parent.tagName === 'HTML') && parent.clientHeight < parent.scrollHeight) {\n      break;\n    }\n\n    parent = parent.parentElement;\n  }\n\n  if (!parent || parent === document || parent.tagName === \"HTML\" || parent.tagName === \"html\") {\n    parent = document.body.parentElement;\n  }\n\n  var eBound = elt.getBoundingClientRect();\n  var viewportBound = parent.getBoundingClientRect();\n  var currentScrollTop = parent.scrollTop;\n  var newScrollTop = currentScrollTop;\n\n  if (eBound.bottom > viewportBound.bottom) {\n    newScrollTop = currentScrollTop + (eBound.bottom - viewportBound.bottom);\n  }\n\n  if (eBound.top < viewportBound.top) {\n    newScrollTop = currentScrollTop - (viewportBound.top - eBound.top);\n  }\n\n  if (newScrollTop != currentScrollTop) {\n    parent.scrollTop = newScrollTop;\n  }\n}\n\nfunction fileSize2Text(s) {\n  if (typeof s !== \"number\" || isNaN(s)) return '';\n  var units = ['B', 'KB', 'MB', 'GB', 'TB'];\n  var b = 1;\n\n  for (var i = 0; i < units.length; ++i) {\n    if (s <= b * 1024) {\n      return Math.floor(s / b * 100) / 100 + units[i];\n    }\n\n    b *= 1024;\n  }\n\n  return Math.floor(s / b * 10) / 100 + 'PB';\n}\n\nfunction isDateTimeFormatToken(text) {\n  return ['d', 'dd', 'M', 'MM', 'y', 'yyyy', 'h', 'hh', 'H', 'HH', 'm', 'mm', 'a', 'w', 'ww', 'Q', 'QQ'].indexOf(text) >= 0;\n}\n\nfunction isRealNumber(value) {\n  return isFinite(value) && typeof value === \"number\";\n}\n\nfunction isNaturalNumber(value) {\n  return isFinite(value) && typeof value === \"number\" && Math.floor(value) === value && value >= 0;\n}\n/****\r\n *\r\n * @param {string} text\r\n * @param {{locales?:string}|string =} opt\r\n */\n\n\nfunction parseLocalFloat(text, opt) {\n  if (typeof opt === \"string\") opt = {\n    locales: opt\n  };\n  var locales = opt && opt.locales || window.systemconfig && window.systemconfig.numberFormatLocales;\n  var sample = locales ? new Intl.NumberFormat(locales).format(123456.78) : 123456.78.toLocaleString(); // decimal-separator, thousand-separator.\n\n  var thousandSeparator = sample.match(/3(.?)4/)[1] || '';\n  var decimalSeparator = sample.match(/6(.?)7/)[1];\n  text = text.replace(new RegExp('[' + thousandSeparator + ']', 'g'), '').replace(new RegExp('[' + decimalSeparator + ']', 'g'), '.');\n  return parseFloat(text);\n}\n\nfunction formatLocalFloat(value, opt) {\n  if (typeof opt === \"string\") opt = {\n    locales: opt\n  };\n  var formatOpt = Object.assign({}, opt);\n  delete formatOpt.locales;\n  var locales = opt && opt.locales || window.systemconfig && window.systemconfig.numberFormatLocales;\n  var sample;\n  var thousandSeparator;\n  var decimalSeparator;\n\n  if (!locales) {\n    sample = 123456.78.toLocaleString();\n    thousandSeparator = sample.match(/3(.?)4/)[1] || '';\n    decimalSeparator = sample.match(/6(.?)7/)[1];\n    if (decimalSeparator === '.') locales = 'en-US';else if (decimalSeparator === ',') {\n      locales = 'vi-VN';\n    }\n  }\n\n  return new Intl.NumberFormat(locales, formatOpt).format(value);\n}\n/***\r\n *\r\n * @param {String} text\r\n * @returns {Boolean}\r\n */\n\n\nfunction isURLAddress(text) {\n  if (typeof text != \"string\") return false;\n  return text.startsWith('.') || text.startsWith('http://') || text.startsWith('https://') || text.startsWith('/');\n}\n/***\r\n *\r\n * @param {string | null} pattern\r\n * @param {string} typeString\r\n * @returns {boolean}\r\n */\n\n\nfunction fileAccept(pattern, typeString) {\n  if (!pattern) return true;\n  var parts = pattern.split(',').map(function (x) {\n    return x.trim().toLowerCase();\n  });\n  var ext = typeString.split('.').pop().toLowerCase();\n  var mineType = typeString.split('/').shift().toLowerCase();\n  return parts.some(function (part) {\n    if (part === '*') return true;\n\n    if (part === 'audio/*') {\n      return mineType === 'audio' || ['.3gp', '.aa', '.aac', '.aax', '.act', '.aiff', '.alac', '.amr', '.ape', '.au', '.awb', '.dss', '.flac', '.gsm', '.m4a', '.m4b', '.m4p', '.mp3', '.mpc', '.ogg, .oga, .mogg', '.opus', '.ra', '.rm', '.raw', '.rf64', '.sln', '.tta', '.voc', '.vox', '.wav', '.wma', '.wv', '.webm', '.8svx', '.cda'].indexOf(ext) >= 0;\n    } else if (part === 'video/*') {\n      return mineType === 'video' || ['.webm', '.mkv', '.flv', '.flv', '.vob', '.drc', '.gif', '.gifv', '.mng', '.avi', '.wmv', '.yuv', '.rm', '.rmvb', '.viv', '.asf', '.amv', '.m4v', '.svi', '.3gp', '.3g2', '.mxf', '.roq', '.nsv'].indexOf(ext) >= 0;\n    } else if (part === 'image/*') {\n      return mineType === 'video' || [\"ase\", \"art\", \"bmp\", \"blp\", \"cd5\", \"cit\", \"cpt\", \"cr2\", \"cut\", \"dds\", \"dib\", \"djvu\", \"egt\", \"exif\", \"gif\", \"gpl\", \"grf\", \"icns\", \"ico\", \"iff\", \"jng\", \"jpeg\", \"jpg\", \"jfif\", \"jp2\", \"jps\", \"lbm\", \"max\", \"miff\", \"mng\", \"msp\", \"nef\", \"nitf\", \"ota\", \"pbm\", \"pc1\", \"pc2\", \"pc3\", \"pcf\", \"pcx\", \"pdn\", \"pgm\", \"PI1\", \"PI2\", \"PI3\", \"pict\", \"pct\", \"pnm\", \"pns\", \"ppm\", \"psb\", \"psd\", \"pdd\", \"psp\", \"px\", \"pxm\", \"pxr\", \"qfx\", \"raw\", \"rle\", \"sct\", \"sgi\", \"rgb\", \"int\", \"bw\", \"tga\", \"tiff\", \"tif\", \"vtf\", \"xbm\", \"xcf\", \"xpm\", \"3dv\", \"amf\", \"ai\", \"awg\", \"cgm\", \"cdr\", \"cmx\", \"dxf\", \"e2d\", \"egt\", \"eps\", \"fs\", \"gbr\", \"odg\", \"svg\", \"stl\", \"vrml\", \"x3d\", \"sxd\", \"v2d\", \"vnd\", \"wmf\", \"emf\", \"art\", \"xar\", \"png\", \"webp\", \"jxr\", \"hdp\", \"wdp\", \"cur\", \"ecw\", \"iff\", \"lbm\", \"liff\", \"nrrd\", \"pam\", \"pcx\", \"pgf\", \"sgi\", \"rgb\", \"rgba\", \"bw\", \"int\", \"inta\", \"sid\", \"ras\", \"sun\", \"tga\", \"heic\", \"heif\"].indexOf(ext) >= 0;\n    } else if (part.startsWith('.')) {\n      return '.' + ext === part;\n    } else {\n      return part === ext || part === mineType;\n    }\n  });\n}\n/***\r\n *\r\n * @param {File|Blob|string|{url:string}} fi\r\n */\n\n\nfunction fileInfoOf(fi) {\n  var res = {};\n\n  var handle = function handle(o) {\n    if (typeof o === \"string\") {\n      res.name = res.name || (o.split('/').pop() || '').replace(/%([\\dA-Fa-f][\\dA-Fa-f])/g, function (all, g1) {\n        var n = parseInt(g1, 16);\n\n        if (typeof n === \"number\") {\n          return String.fromCharCode(n);\n        }\n\n        return all;\n      }).replace(/\\?.+$/, '');\n      if (!res.url && isURLAddress(o)) res.url = o;\n    } else if (_typeof(o) === \"object\" && o) {\n      if (o instanceof Blob) {\n        res.mimeType = o.type;\n      }\n\n      if (!res.name && typeof o.name === \"string\") {\n        res.name = o.name;\n      }\n\n      if (!res.size && typeof o.size === \"number\") {\n        res.size = o.size;\n      }\n\n      if (typeof o.url === \"string\") {\n        res.url = o.url;\n        handle(o.url);\n      }\n    }\n  };\n\n  handle(fi);\n\n  if (res.name) {\n    res.name = res.name.replace(/\\.upload$/, '');\n  }\n\n  if (!res.type && res.name) {\n    res.type = res.name.toLowerCase().split('.').slice(1).pop();\n  }\n\n  if (!res.mimeType && res.type) {\n    res.mimeType = _ext2MineType[\"default\"][res.type];\n  }\n\n  for (var k in res) {\n    if (res[k] === undefined) delete res[k];\n  }\n\n  return res;\n}\n\nfunction addElementsBefore(inElement, elements, at) {\n  for (var i = 0; i < elements.length; ++i) {\n    (inElement.addChildBefore || inElement.insertBefore).call(inElement, elements[i], at);\n  }\n}\n\nfunction addElementAfter(inElement, elements, at) {\n  var atIdx;\n  var before;\n  var i;\n\n  if (at) {\n    atIdx = Array.prototype.indexOf.call(inElement.childNodes, at);\n    if (at && atIdx < 0) throw new Error(\"The node before which the new node is to be inserted is not a child of this node.\");\n    before = inElement.childNodes[atIdx + 1];\n\n    if (before) {\n      for (i = 0; i < elements.length; ++i) {\n        (inElement.addChildBefore || inElement.insertBefore).call(inElement, elements[i], before);\n      }\n    } else {\n      for (i = 0; i < elements.length; ++i) {\n        (inElement.addChild || inElement.appendChild).call(inElement, elements[i]);\n      }\n    }\n  } else {\n    before = inElement.firstChild;\n\n    for (i = 0; i < elements.length; ++i) {\n      (inElement.addChildBefore || inElement.insertBefore).call(inElement, elements[i], before);\n    }\n  }\n}\n\nfunction getAncestorElementOf(elt) {\n  while (elt.parentElement) {\n    elt = elt.parentElement;\n  }\n\n  return elt;\n}\n\nfunction checkedValues2RootTreeValues(items, values) {\n  var keyOf = function keyOf(x) {\n    return _typeof(x) + x;\n  };\n\n  var dict = values.reduce(function (ac, cr) {\n    ac[keyOf(cr)] = true;\n    return ac;\n  }, {});\n\n  var checkScan = function checkScan(item) {\n    if (dict[keyOf(item.value)]) return true;\n\n    if (item.items && item.items.length > 0) {\n      item.items.forEach(function (sItem) {\n        return checkScan(sItem);\n      });\n      dict[keyOf(item.value)] = item.items.every(function (sItem) {\n        return dict[keyOf(sItem.value)];\n      });\n    }\n\n    return dict[keyOf(item.value)];\n  };\n\n  var res = [];\n\n  var scan = function scan(item) {\n    if (dict[keyOf(item.value)]) {\n      res.push(item.value);\n    } else if (item.items && item.items.length > 0) {\n      item.items.forEach(function (sItem) {\n        return scan(sItem);\n      });\n    }\n  };\n\n  items.forEach(function (sItem) {\n    return scan(sItem);\n  });\n  return res;\n}\n\nfunction rootTreeValues2CheckedValues(items, values) {\n  var keyOf = function keyOf(x) {\n    return _typeof(x) + x;\n  };\n\n  var dict = values.reduce(function (ac, cr) {\n    ac[keyOf(cr)] = true;\n    return ac;\n  }, {});\n  var res = [];\n\n  var visit = function visit(item, checked) {\n    if (checked) res.push(item.value);\n\n    if (item.items && item.items.length > 0) {\n      item.items.forEach(function (cr) {\n        return visit(cr, checked || dict[keyOf(cr.value)]);\n      });\n    }\n  };\n\n  items.forEach(function (cr) {\n    return visit(cr, dict[keyOf(cr.value)]);\n  });\n  return res;\n}\n/***\r\n *\r\n * @param {SelectionItem[]} items\r\n * @param {{removeNoView?: boolean}=} opt\r\n * @returns {SelectionItem[]}\r\n */\n\n\nfunction copySelectionItemArray(items, opt) {\n  opt = opt || {};\n\n  if (opt.removeNoView) {\n    items = items.filter(function (item) {\n      return !item.noView;\n    });\n  }\n\n  return items.map(function (item) {\n    var newItem;\n\n    if (_typeof(item) === \"object\" && 'text' in item) {\n      newItem = Object.assign({}, item);\n    } else {\n      newItem = {\n        text: item + '',\n        value: item\n      };\n    }\n\n    if (item.items) {\n      newItem.items = copySelectionItemArray(item.items, opt);\n    }\n\n    return newItem;\n  });\n}\n\nfunction compareSelectionItemArray(a, b) {\n  if (a === b) return true;\n  var aEmpty = !a || !a.length;\n  var bEmpty = !b || !b.length;\n  if (!aEmpty && aEmpty === bEmpty) return true;\n  if (aEmpty !== bEmpty) return false;\n  if (a.length !== b.length) return false;\n  var n = a.length;\n  var ait, bit;\n\n  for (var i = 0; i < n; ++i) {\n    ait = a[i];\n    bit = b[i];\n    if (ait === bit) continue;\n    if (ait.text !== bit.text) return false;\n    if (ait.text !== bit.text) return false;\n    if (!compareSelectionItemArray(ait.items, bit.items)) return false;\n  }\n\n  return true;\n}\n/***\r\n *\r\n * @param {AElement|HTMLElement} element\r\n * @param {number} padding\r\n */\n\n\nfunction isScrolledToBottom(element, padding) {\n  if (!isRealNumber(padding)) padding = 0;\n  return element.scrollHeight - element.scrollTop - padding <= element.clientHeight;\n}\n\nfunction implicitLatLng(value) {\n  var latlng = null;\n  var nums;\n\n  if (typeof value === \"string\") {\n    nums = value.split(/\\s*,\\s*/).map(function (t) {\n      return parseFloat(t);\n    });\n\n    if (isRealNumber(nums[0]) && isRealNumber(nums[1])) {\n      latlng = new google.maps.LatLng(nums[0], nums[1]);\n    }\n  } else if (value instanceof google.maps.LatLng) {\n    latlng = value;\n  } else if (value && isRealNumber(value.latitude) && isRealNumber(value.longitude)) {\n    latlng = new google.maps.LatLng(value.latitude, value.longitude);\n  } else if (value && isRealNumber(value.lat) && isRealNumber(value.lng)) {\n    latlng = new google.maps.LatLng(value.lat, value.lng);\n  } else if (value instanceof Array && isRealNumber(value[0]) && isRealNumber(value[1])) {\n    latlng = new google.maps.LatLng(value[0], value[1]);\n  }\n\n  return latlng;\n}\n\nfunction getMapZoomLevel(mapDim, bounds) {\n  var WORLD_DIM = {\n    height: 256,\n    width: 256\n  };\n  var ZOOM_MAX = 21;\n\n  function latRad(lat) {\n    var sin = Math.sin(lat * Math.PI / 180);\n    var radX2 = Math.log((1 + sin) / (1 - sin)) / 2;\n    return Math.max(Math.min(radX2, Math.PI), -Math.PI) / 2;\n  }\n\n  function zoom(mapPx, worldPx, fraction) {\n    return Math.floor(Math.log(mapPx / worldPx / fraction) / Math.LN2);\n  }\n\n  var ne = bounds.getNorthEast();\n  var sw = bounds.getSouthWest();\n  var latFraction = (latRad(ne.lat()) - latRad(sw.lat())) / Math.PI;\n  var lngDiff = ne.lng() - sw.lng();\n  var lngFraction = (lngDiff < 0 ? lngDiff + 360 : lngDiff) / 360;\n  var latZoom = zoom(mapDim.height, WORLD_DIM.height, latFraction);\n  var lngZoom = zoom(mapDim.width, WORLD_DIM.width, lngFraction);\n  return Math.min(latZoom, lngZoom, ZOOM_MAX);\n}\n/***\r\n *\r\n * @param p0\r\n * @param p1\r\n * @returns {number}\r\n */\n\n\nfunction latLngDistance(p0, p1) {\n  var lat0 = p0.lat();\n  var lat1 = p1.lat();\n  var lng0 = p0.lng();\n  var lng1 = p1.lng();\n\n  var toRad = function toRad(value) {\n    return value * Math.PI / 180;\n  };\n\n  var R = 6371;\n  var dLat = toRad(lat1 - lat0);\n  var dLng = toRad(lng1 - lng0);\n  lat0 = toRad(lat0);\n  lat1 = toRad(lat1);\n  var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + Math.sin(dLng / 2) * Math.sin(dLng / 2) * Math.cos(lat0) * Math.cos(lat1);\n  var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n  var d = R * c;\n  return d;\n}\n\nfunction keyStringOf(o) {\n  var type = _typeof(o);\n\n  var keys;\n\n  if (o && type === \"object\") {\n    if (typeof o.getTime === \"function\") {\n      return 'd(' + o.getTime() + ')';\n    } else if (typeof o.map === \"function\") {\n      return 'a(' + o.map(function (val) {\n        return keyStringOf(val);\n      }).join(',') + ')';\n    } else {\n      keys = Object.keys(o);\n      keys.sort();\n      return 'o(' + keys.map(function (key) {\n        return key + ':' + keyStringOf(o[key]);\n      }).join(',') + ')';\n    }\n  } else {\n    return type[0] + '(' + o + ')';\n  }\n}\n\nfunction jsStringOf(x) {\n  if (x === null) return 'null';\n  if (x === undefined) return 'undefined';\n\n  var type = _typeof(x);\n\n  if (type === 'string' || type === 'number') return JSON.stringify(x);\n  if (x instanceof Date) return 'new Date(' + x.getTime() + ')';\n  var keys;\n  keys = Object.keys(x);\n  keys.sort();\n  return '{' + keys.map(function (key) {\n    return JSON.stringify(key) + ':' + jsStringOf(x[key]);\n  }).join(',') + '}';\n}\n\nfunction calcDTQueryHash(o) {\n  var s = jsStringOf(o);\n  return (0, _stringUtils.stringHashCode)(s);\n}\n\nfunction replaceInObject(o, replacer, test) {\n  return new Promise(function (rs) {\n    var sync = [];\n\n    function visit(so) {\n      Object.keys(so).forEach(function (key) {\n        var newValue;\n\n        if (test(so[key])) {\n          newValue = replacer(so[key], key, so);\n\n          if (newValue && newValue.then) {\n            sync.push(newValue);\n            newValue.then(function (newValue) {\n              return so[key] = newValue;\n            });\n          } else {\n            so[key] = newValue;\n          }\n        } else if (_typeof(so[key]) === \"object\" && so[key]) {\n          visit(so[key]);\n        }\n      });\n    }\n\n    visit(o);\n    Promise.all(sync).then(function () {\n      rs(o);\n    });\n  });\n}\n\nfunction replaceFileInObject(o, replacer) {\n  return replaceInObject(o, replacer, function (value, key, object) {\n    return value instanceof File || value instanceof Blob;\n  });\n}\n\nfunction isNone(x) {\n  return x === null || x === undefined;\n}\n\nvar measureTool = new _TextMeasurement[\"default\"]();\n\nfunction wrapWord(text, width, font) {\n  font = font || '14px arial';\n  measureTool.compute(font);\n  var res = [];\n  var i = 1;\n  var prevText = '';\n  var curText;\n\n  while (text.length > 0) {\n    if (i > text.length && text) {\n      res.push(text);\n      break;\n    }\n\n    curText = text.substring(0, i);\n\n    if (measureTool.measureTextWidth(curText, font) <= width || !prevText) {\n      prevText = curText;\n    } else {\n      text = text.substring(prevText.length).trimStart();\n      res.push(prevText);\n      prevText = '';\n      i = 1;\n      continue;\n    }\n\n    ++i;\n  }\n\n  return res;\n}\n\nfunction wrapText(text, width, font) {\n  font = font || '14px arial';\n  measureTool.compute(font);\n  var res = [];\n  var i = 1;\n  var prevText = '';\n  var prevWidth = 0;\n  var curText, curWidth;\n\n  while (text.length > 0) {\n    if (i > text.length && text) {\n      prevText = text;\n      prevWidth = measureTool.measureTextWidth(prevText, font);\n\n      if (prevWidth <= width) {\n        res.push(prevText);\n      } else {\n        res.push.apply(res, wrapWord(prevText, width, font));\n      }\n\n      break;\n    }\n\n    if (!text[i - 1].match(/[\\s\\n]/) && (!text[i] || text[i].match(/[\\s\\n]/))) {\n      curText = text.substring(0, i);\n      curWidth = measureTool.measureTextWidth(curText, font);\n\n      if (curWidth <= width || !prevText) {\n        prevText = curText;\n        prevWidth = curWidth;\n      } else {\n        if (prevWidth <= width) {\n          res.push(prevText);\n        } else {\n          prevText = wrapWord(prevText, width, font).shift();\n          res.push(prevText);\n        }\n\n        text = text.substring(prevText.length).trimStart();\n        prevText = '';\n        i = 1;\n        continue;\n      }\n    }\n\n    ++i;\n  }\n\n  return res;\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/utils.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/videourldialog/VideoUrlDialog.js":
/*!**********************************************************************!*\
  !*** ./node_modules/absol-acomp/js/videourldialog/VideoUrlDialog.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\nexports.openVideUrlDialog = openVideUrlDialog;\n\nvar _Fragment = _interopRequireDefault(__webpack_require__(/*! absol/src/AppPattern/Fragment */ \"./node_modules/absol/src/AppPattern/Fragment.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _Modal = _interopRequireDefault(__webpack_require__(/*! ../Modal */ \"./node_modules/absol-acomp/js/Modal.js\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! absol/src/HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _MessageDialog = _interopRequireDefault(__webpack_require__(/*! ../MessageDialog */ \"./node_modules/absol-acomp/js/MessageDialog.js\"));\n\n__webpack_require__(/*! ../../css/videourldialog.css */ \"./node_modules/absol-acomp/css/videourldialog.css\");\n\nvar _videoUtils = _interopRequireWildcard(__webpack_require__(/*! ./videoUtils */ \"./node_modules/absol-acomp/js/videourldialog/videoUtils.js\"));\n\nvar _utils = __webpack_require__(/*! ../utils */ \"./node_modules/absol-acomp/js/utils.js\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends Fragment\r\n * @constructor\r\n */\nfunction VideoUrlDialog() {\n  var _this = this;\n\n  _Fragment[\"default\"].call(this);\n\n  this.task = null;\n  this.pendingResult = null;\n  Object.keys(VideoUrlDialog.prototype).filter(function (key) {\n    return key.startsWith('ev_');\n  }).forEach(function (key) {\n    _this[key] = _this[key].bind(_this);\n  });\n}\n\n_OOP[\"default\"].mixClass(VideoUrlDialog, _Fragment[\"default\"]);\n\nVideoUrlDialog.prototype.cache = {};\n\nVideoUrlDialog.prototype.createView = function () {\n  var _this2 = this;\n\n  this.$view = (0, _ACore._)({\n    tag: _Modal[\"default\"].tag,\n    \"class\": 'as-video-url-dialog-modal',\n    child: {\n      tag: _MessageDialog[\"default\"].tag,\n      \"class\": 'as-video-url-dialog',\n      props: {\n        dialogTitle: 'Video',\n        dialogActions: [{\n          text: 'OK',\n          name: 'ok'\n        }, {\n          text: 'Cancel',\n          name: 'cancel'\n        }]\n      },\n      child: [{\n        \"class\": 'as-video-url-dialog-row',\n        child: [{\n          tag: 'label',\n          child: {\n            text: 'URL*'\n          }\n        }, {\n          tag: 'input',\n          attr: {\n            type: 'text'\n          },\n          \"class\": ['as-video-url-dialog-url', 'as-text-input']\n        }]\n      }, {\n        \"class\": 'as-video-url-dialog-row',\n        child: [{\n          tag: 'label',\n          child: {\n            text: 'Video Info'\n          }\n        }, {\n          tag: 'span',\n          \"class\": ['as-video-url-dialog-video-info']\n        }]\n      }, {\n        \"class\": 'as-video-url-dialog-row',\n        child: [{\n          tag: 'label',\n          child: {\n            text: 'Display Size'\n          }\n        }, {\n          tag: 'input',\n          \"class\": ['as-text-input', 'as-video-url-dialog-width'],\n          attr: {\n            type: 'number',\n            min: '4'\n          }\n        }, {\n          tag: 'span',\n          child: {\n            text: ' x '\n          }\n        }, {\n          tag: 'input',\n          \"class\": ['as-text-input', 'as-video-url-dialog-height'],\n          attr: {\n            type: 'number',\n            min: '3'\n          }\n        }, {\n          tag: 'checkbox',\n          style: {\n            marginLeft: '1em'\n          },\n          props: {\n            text: 'keep ratio'\n          }\n        }]\n      }, {\n        \"class\": 'as-video-url-dialog-row',\n        child: [{\n          tag: 'label',\n          child: {\n            text: 'Preview'\n          }\n        }, {\n          tag: 'img',\n          \"class\": 'as-video-url-dialog-video-image'\n        }]\n      }]\n    }\n  });\n  var keyTimeout = -1;\n  this.$urlInput = (0, _ACore.$)('.as-video-url-dialog-url', this.$view).on('paste', function (event) {\n    setTimeout(_this2.ev_urlChange.bind(_this2, event), 100);\n  }).on('change', this.ev_urlChange).on('keyup', function (event) {\n    if (keyTimeout > 0) {\n      clearTimeout(keyTimeout);\n    }\n\n    keyTimeout = setTimeout(function () {\n      keyTimeout = -1;\n\n      _this2.ev_urlChange(event);\n    }, 300);\n  });\n  this.$dialog = (0, _ACore.$)('.as-video-url-dialog', this.$view).on('action', this.ev_action);\n  this.$info = (0, _ACore.$)('.as-video-url-dialog-video-info', this.$view);\n  this.$image = (0, _ACore.$)('.as-video-url-dialog-video-image', this.$view);\n  this.$width = (0, _ACore.$)('.as-video-url-dialog-width', this.$view).on('change', this.ev_widthChange);\n  this.$height = (0, _ACore.$)('.as-video-url-dialog-height', this.$view).on('change', this.ev_heightChange);\n  this.$ratio = (0, _ACore.$)('checkbox', this.$view).on('change', this.ev_widthChange);\n  this.$actionBtns = (0, _ACore.$$)('.as-message-dialog-footer button', this.$view);\n  this.$okBtn = this.$actionBtns[0];\n};\n\nVideoUrlDialog.prototype.onStart = function () {\n  if (this.$view) {\n    this.$urlInput.value = '';\n    this.$width.value = '';\n    this.$height.value = '';\n    this.$info.innerHTML = '';\n    this.$image.attr('src', undefined);\n    this.$okBtn.disabled = true;\n  }\n\n  this._prevUrl = null;\n};\n\nVideoUrlDialog.prototype.onResume = function () {\n  document.body.appendChild(this.getView());\n  /*var testcase = [\r\n      'https://www.facebook.com/watch?v=794088524953444',\r\n      'https://www.youtube.com/watch?v=_YzngEllRgM&list=RDGMEMQ1dJ7wXfLlqCjwV0xfSNbAVMX8mhF6HgzVA&index=14',\r\n      'https://vimeo.com/735513454',\r\n      'https://www.dailymotion.com/video/x8d2trt',\r\n      'https://www.youtube.com/embed/AoN__ZtGenc',\r\n      'https://www.youtube.com',\r\n      'https://absol.cf/share/10h.mp4(1).mp4',\r\n      'https://absol.cf/share',\r\n      'https://www.facebook.com/watch?v=386823333524397'\r\n  ]\r\n  this.$urlInput.value = testcase[0];\r\n  this.ev_urlChange();*/\n};\n\nVideoUrlDialog.prototype.onPause = function () {\n  this.getView().remove();\n};\n\nVideoUrlDialog.prototype.resolveCurrentTask = function (result) {\n  if (this.task) {\n    this.task.resolve(result || this.pendingResult);\n    this.task = null;\n  }\n};\n\nVideoUrlDialog.prototype.cancelCurrentTask = function () {\n  if (this.task) {\n    this.task.cancel();\n    this.task = null;\n  }\n};\n\nVideoUrlDialog.prototype.assignTask = function (task) {\n  this.cancelCurrentTask();\n  this._prevUrl = null;\n  this.task = task;\n  if (task.initInfo) this.onInfo(task.initInfo);\n};\n\nVideoUrlDialog.prototype.onInfo = function (info) {\n  this.getView();\n  this._prevUrl = info.url;\n\n  if (info.error) {\n    this.pendingResult = null;\n    this.$image.attr('src', undefined);\n    this.$info.innerHTML = '<span style=\"color:#ff2c2c\">Can not load video!</span>';\n    return;\n  }\n\n  this.pendingResult = info;\n  if (info.image) this.$image.attr('src', info.image);else {\n    this.$image.attr('src', undefined);\n  }\n  var infoText = [];\n\n  if ((0, _utils.isRealNumber)(info.width) && (0, _utils.isRealNumber)(info.height)) {\n    infoText.push([info.width, ' x ', info.height].join(''));\n  }\n\n  if ('displayWidth' in info) {\n    this.$width.value = info.displayWidth;\n    this.$height.value = info.displayHeight;\n    this.$urlInput.value = info.url;\n  } else if ((0, _utils.isRealNumber)(info.width) && (0, _utils.isRealNumber)(info.height)) {\n    infoText.push([info.width, ' x ', info.height].join(''));\n    this.$width.value = info.width;\n    this.$height.value = info.height;\n    this.$ratio.checked = true;\n  } else {\n    this.$width.value = 560;\n    this.$height.value = 315;\n  }\n\n  if ('keepRatio' in info) {\n    this.$ratio.checked = true;\n  }\n\n  if (info.type.startsWith('video/')) {\n    infoText.push(info.type.substring(6).toUpperCase());\n  }\n\n  if (info.title) {\n    infoText.push('<strong>' + info.title + '</strong>');\n  }\n\n  this.$info.innerHTML = infoText.join(', ');\n  this.$okBtn.disabled = false;\n};\n/***\r\n * @param event\r\n */\n\n\nVideoUrlDialog.prototype.ev_urlChange = function (event) {\n  var _this3 = this;\n\n  var newUrl = this.$urlInput.value;\n  if (this._prevUrl === newUrl) return;\n  this.$okBtn.disabled = true;\n  this._prevUrl = newUrl;\n  var info = (0, _videoUtils.parseVideoUrl)(newUrl);\n  var sync;\n\n  if (info.videoId === 'INVALID_URL') {\n    info.error = 'INVALID_URL';\n    sync = Promise.resolve();\n  } else if (info.hostType !== '*') {\n    info.type = 'text/html';\n    sync = (0, _videoUtils[\"default\"])(info.originalUrl, info.hostType === 'facebook').then(function (result) {\n      if (newUrl !== _this3._prevUrl) return;\n      Object.assign(info, result);\n\n      if (!(0, _utils.isNaturalNumber)(result.width)) {\n        info.error = \"INVALID_VIDEO\";\n      }\n    });\n  } else {\n    sync = (0, _videoUtils.getVideoFileHeader)(info.url).then(function (result) {\n      if (newUrl !== _this3._prevUrl) return;\n      Object.assign(info, result);\n\n      if (result.error) {\n        _this3.$info.innerHTML = '<span style=\"color:#ff2c2c\">Can not load video!</span>';\n      }\n    }).then(function () {\n      if (newUrl !== _this3._prevUrl) return;\n      if (info.error) return;\n      if (info.type.startsWith('video/')) return (0, _videoUtils.getVideoPreview)(info.url).then(function (result1) {\n        if (newUrl !== _this3._prevUrl) return;\n        Object.assign(info, result1);\n      }, function (error1) {\n        info.error = \"CAN_NOT_LOAD\";\n      });\n    });\n  }\n\n  sync.then(function () {\n    if (newUrl !== _this3._prevUrl) return;\n\n    _this3.onInfo(info);\n  });\n};\n/***\r\n * @param event\r\n */\n\n\nVideoUrlDialog.prototype.ev_action = function (event) {\n  var _this4 = this;\n\n  setTimeout(function () {\n    var action = event.action;\n\n    if (action.name === 'cancel') {\n      _this4.cancelCurrentTask();\n    }\n\n    var width = parseInt(_this4.$width.value);\n    var height = parseInt(_this4.$height.value);\n    var result = Object.assign({}, _this4.pendingResult);\n\n    if (!isNaN(width) && !isNaN(height)) {\n      result.displayWidth = width;\n      result.displayHeight = height;\n    } else {\n      result.displayWidth = 560;\n      result.displayHeight = 315;\n    }\n\n    result.keepRatio = _this4.$ratio.checked;\n\n    if (action.name === 'ok') {\n      _this4.resolveCurrentTask(result);\n    }\n\n    _this4.stop();\n  }, 100);\n};\n\nVideoUrlDialog.prototype.ev_widthChange = function () {\n  if (!this.$ratio.checked || !this.pendingResult || !(0, _utils.isRealNumber)(this.pendingResult.width) || !(0, _utils.isRealNumber)(this.pendingResult.height)) return;\n  var ratio = this.pendingResult.width / this.pendingResult.height;\n  var width = parseFloat(this.$width.value);\n  this.$height.value = Math.round(width / ratio);\n};\n\nVideoUrlDialog.prototype.ev_heightChange = function () {\n  if (!this.$ratio.checked || !this.pendingResult || !(0, _utils.isRealNumber)(this.pendingResult.width) || !(0, _utils.isRealNumber)(this.pendingResult.height)) return;\n  var ratio = this.pendingResult.width / this.pendingResult.height;\n  var height = parseFloat(this.$height.value);\n  this.$width.value = Math.round(height * ratio);\n};\n/***\r\n * @type {VideoUrlDialog}\r\n */\n\n\nvar shareInstance;\n\nfunction openVideUrlDialog(initInfo) {\n  shareInstance = shareInstance || new VideoUrlDialog();\n  return new Promise(function (rs) {\n    var task = {\n      resolved: false,\n      canceled: false,\n      resolve: function resolve(info) {\n        if (this.resolved) return;\n        this.resolved = true;\n        rs(info);\n      },\n      cancel: function cancel() {\n        if (this.resolved || this.canceled) return;\n        if (shareInstance.task !== this) return;\n        this.canceled = true;\n        rs(null);\n      },\n      initInfo: initInfo\n    };\n    shareInstance.start();\n    shareInstance.assignTask(task);\n  });\n}\n\nvar _default = VideoUrlDialog;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/videourldialog/VideoUrlDialog.js?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/videourldialog/videoUtils.js":
/*!******************************************************************!*\
  !*** ./node_modules/absol-acomp/js/videourldialog/videoUtils.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = getEmbedVideoInfo;\nexports.getVideoFileHeader = getVideoFileHeader;\nexports.getVideoPreview = getVideoPreview;\nexports.parseVideoUrl = parseVideoUrl;\n\nvar _ACore = __webpack_require__(/*! ../../ACore */ \"./node_modules/absol-acomp/ACore.js\");\n\nvar _FileSaver = __webpack_require__(/*! absol/src/Network/FileSaver */ \"./node_modules/absol/src/Network/FileSaver.js\");\n\nvar videoUrlRules = [['youtube', /^https:\\/\\/www.youtube.com\\//, /[^a-zAZ]v=([^&]+)/, function (o) {\n  return 'https://www.youtube.com/embed/' + o.videoId;\n}], ['youtube', /^https:\\/\\/www.youtube.com\\/embed\\//, /^https:\\/\\/www.youtube.com\\/embed\\/([^&\\/]+)/, function (o) {\n  return o.url;\n}, function (o) {\n  return 'https://www.youtube.com/watch?v=' + o.videoId;\n}], ['vimeo', /^https:\\/\\/vimeo.com\\//, /vimeo.com\\/([0-9A-Za-z_]+)/, function (o) {\n  return 'https://player.vimeo.com/video/' + o.videoId;\n}], ['dailymotion', /^https:\\/\\/www.dailymotion.com\\/video\\//, /dailymotion\\.com\\/video\\/([0-9A-Za-z_]+)/, function (o) {\n  return 'https://www.dailymotion.com/embed/video/' + o.videoId;\n}], ['facebook', /^https:\\/\\/www.facebook.com\\/watch/, /[^a-zAZ]v=([^&]+)/, function (o) {\n  return 'https://www.facebook.com/plugins/video.php?height=315&width=560&show_text=false&t=0&href=' + encodeURIComponent(o.url);\n}, function (o) {\n  return o.embedUrl;\n}],\n/* INVAID VIDEO ID   */\n['youtube', /^https:\\/\\/www.youtube.com(\\/|$)/, 'INVALID_URL'], ['vimeo', /^https:\\/\\/vimeo.com(\\/|$)/, /vimeo.com\\/([0-9A-Za-z_]+)/, 'INVALID_URL'], ['dailymotion', /^https:\\/\\/www.dailymotion.com(\\/|$)/, null], ['facebook', /^https:\\/\\/www.facebook.com/, 'INVALID_URL'],\n/********************/\n['*', /./, /\\/([^\\/]+)$/, function (o) {\n  return o.url;\n}]];\n\nfunction parseVideoUrl(url) {\n  url = (url || \"\").trim();\n  var res = {\n    url: url\n  };\n  videoUrlRules.some(function (rule) {\n    var matched = url.match(rule[1]);\n    if (!matched) return false;\n    res.hostType = rule[0];\n\n    if (rule[2] instanceof RegExp) {\n      matched = url.match(rule[2]);\n      if (!matched) return false;\n      res.videoId = matched[1];\n    } else if (rule[2] === 'INVALID_URL') {\n      res.videoId = \"INVALID_URL\";\n    }\n\n    if (res.videoId !== 'INVALID_URL') {\n      res.embedUrl = rule[3](res);\n    }\n\n    if (typeof rule[4] === \"function\") {\n      res.originalUrl = rule[4](res);\n    } else {\n      res.originalUrl = res.url;\n    }\n\n    return true;\n  });\n  return res;\n}\n\nvar embedVideoSizeCache = {};\nvar metaRules = [['width', 'og:video:width', /content\\s*=\\s*\"([0-9]+)/, 'number'], ['height', 'og:video:height', /content\\s*=\\s*\"([0-9]+)/, 'number'], ['title', 'og:title', /content\\s*=\\s*\"([^\"]+)/, function (s) {\n  return s.replace(/\\s*-\\s*Video Dailymotion$/, '');\n}], ['image', 'og:image', /content\\s*=\\s*\"([^\"]+)/], ['width', /^video\\s/, /width\\s*=\\s*\"([0-9]+)/, 'number', true], ['height', /^video\\s/, /height\\s*=\\s*\"([0-9]+)/, 'number', true], ['image', /^img/, /src\\s*=\\s*\"([^\"]+)/, function (x) {\n  return x.replace(/&amp;/g, '&');\n}], ['title', \"a href=\\\"https://www.facebook.com/watch\", />([^<]+)/]];\n\nfunction getEmbedVideoInfo(url, fullPage) {\n  // fullPage = false;\n  var xUrl = fullPage ? 'https://absol.cf/getpage.php?url=' : 'https://absol.cf/getpagemeta.php?url=';\n  embedVideoSizeCache[url] = embedVideoSizeCache[url] || fetch(xUrl + encodeURIComponent(url)).then(function (res) {\n    return res.text();\n  }).then(function (metaText) {\n    if (metaText === 'DOWNLOAD_ERROR') return {\n      error: metaText\n    };\n    var lines = metaText.replace(/\\n|(>\\s*<)/g, '__spliter__').split('__spliter__');\n    var res = {};\n    lines.forEach(function (line) {\n      metaRules.some(function (rule) {\n        var key = rule[0];\n        if (key in res) return false;\n        var matched;\n\n        if (rule[1] instanceof RegExp) {\n          matched = line.match(rule[1]);\n          if (!matched) return false;\n        } else if (typeof rule[1] === \"string\") {\n          if (line.indexOf(rule[1]) < 0) return false;\n        }\n\n        matched = line.match(rule[2]);\n        if (!matched) return false;\n        var value = matched[1];\n\n        if (rule[3] === 'number') {\n          value = parseFloat(value);\n          if (isNaN(value)) return false;\n        } else if (typeof rule[3] === \"function\") {\n          value = rule[3](value);\n        }\n\n        res[key] = value;\n        if (rule[4]) return false;\n        return true;\n      });\n    });\n    return res;\n  });\n  return embedVideoSizeCache[url];\n}\n\nvar videoFileHeaderInfoCache = {};\n\nfunction getVideoFileHeader(url) {\n  videoFileHeaderInfoCache[url] = videoFileHeaderInfoCache[url] || new Promise(function (resolve) {\n    var xhr = new XMLHttpRequest();\n    xhr.open('HEAD', url, true);\n\n    xhr.onreadystatechange = function () {\n      if (this.readyState === 4) {\n        if (this.status === 200) {\n          var res = {\n            type: xhr.getResponseHeader('Content-Type')\n          };\n          var title;\n          var header = xhr.getAllResponseHeaders();\n\n          if (header && (header.indexOf('inline') !== -1 || header.indexOf('attachment') !== -1)) {\n            var filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\n            var matches = filenameRegex.exec(header);\n\n            if (matches != null && matches[1]) {\n              title = matches[1].replace(/['\"]/g, '');\n            }\n          } else {\n            title = url.split('/').filter(function (x) {\n              return !!x;\n            }).pop() || '';\n            title = title.split('?').shift();\n            title = decodeURIComponent(title);\n          }\n\n          if (title) res.title = title;\n          resolve(res);\n        } else {\n          resolve({\n            error: \"STATUS_\" + this.status\n          });\n        }\n      }\n    };\n\n    xhr.send();\n  });\n  return videoFileHeaderInfoCache[url];\n}\n\nfunction getVideoPreview(url) {\n  return new Promise(function (resolve, reject) {\n    var renderDiv = (0, _ACore._)({\n      style: {\n        position: 'fixed',\n        left: 0,\n        top: 0,\n        overflow: 'hidden',\n        'z-index': -1000,\n        pointerEvents: 'none',\n        visibility: 'hidden'\n      }\n    }).addTo(document.body);\n    var videoElt = (0, _ACore._)({\n      tag: 'video',\n      attr: {\n        crossorigin: \"anonymous\",\n        crossOrigin: \"anonymous\",\n        preload: 'metadata',\n        src: url\n      },\n      on: {\n        loadeddata: function loadeddata() {\n          clearTimeout(timeout);\n          var scale = Math.min(200, videoElt.videoWidth, videoElt.videoHeight) / videoElt.videoWidth;\n          var cWidth = Math.ceil(videoElt.videoWidth * scale);\n          var cHeight = Math.ceil(videoElt.videoHeight * scale);\n          var canvas = (0, _ACore._)({\n            tag: 'canvas',\n            attr: {\n              width: cWidth + 'px',\n              height: cHeight + 'px'\n            }\n          }).addTo(renderDiv);\n          var ctx = canvas.getContext('2d');\n          ctx.drawImage(videoElt, 0, 0, cWidth, cHeight);\n          var image = canvas.toDataURL('image/jpeg', 0.1);\n          renderDiv.remove();\n          resolve({\n            width: videoElt.videoWidth,\n            height: videoElt.videoHeight,\n            image: image\n          });\n        },\n        error: function error() {\n          clearTimeout(timeout);\n          renderDiv.remove();\n          reject();\n        }\n      }\n    });\n    renderDiv.addChild(videoElt);\n    videoElt.currentTime = 0.1;\n    var timeout = setTimeout(function () {\n      renderDiv.remove();\n      reject();\n    }, 5000);\n  });\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/videourldialog/videoUtils.js?");

/***/ }),

/***/ "./node_modules/absol/src/AppPattern/Activity.js":
/*!*******************************************************!*\
  !*** ./node_modules/absol/src/AppPattern/Activity.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Context = _interopRequireDefault(__webpack_require__(/*! ./Context */ \"./node_modules/absol/src/AppPattern/Context.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n//NOTE: !impotant : don't make setter, getter for activity, just code like JAVA\n\n/** \r\n * @class\r\n */\nfunction Activity() {\n  _Context[\"default\"].call(this);\n}\n\nObject.defineProperties(Activity.prototype, Object.getOwnPropertyDescriptors(_Context[\"default\"].prototype));\nActivity.prototype.constructor = Activity;\n\nActivity.prototype.startActivity = function (activity) {\n  if (this.parent) {\n    this.parent.startActivity(activity);\n  } else {}\n};\n\nActivity.prototype.finish = function () {\n  if (this.parent) {\n    this.parent.stopActivity(this);\n  } else {}\n};\n\nvar _default = Activity;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/AppPattern/Activity.js?");

/***/ }),

/***/ "./node_modules/absol/src/AppPattern/Application.js":
/*!**********************************************************!*\
  !*** ./node_modules/absol/src/AppPattern/Application.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ContextManager = _interopRequireDefault(__webpack_require__(/*! ./ContextManager */ \"./node_modules/absol/src/AppPattern/ContextManager.js\"));\n\nvar _Context = _interopRequireDefault(__webpack_require__(/*! ./Context */ \"./node_modules/absol/src/AppPattern/Context.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\r\n * @class\r\n */\nfunction Application() {\n  _Context[\"default\"].call(this);\n\n  this.activityStack = [];\n  /** @type {Activity} */\n\n  this.currentActivity = null;\n}\n\nObject.defineProperties(Application.prototype, Object.getOwnPropertyDescriptors(_Context[\"default\"].prototype));\nApplication.prototype.constructor = Application;\n/**\r\n * @param {Activity} activity\r\n */\n\nApplication.prototype.startActivity = function (activity) {\n  if (this.currentActivity != null) {\n    this.currentActivity.pause();\n    this.activityStack.push(this.currentActivity);\n  }\n\n  this.currentActivity = activity;\n  this.appendChild(activity);\n  activity.attach(this);\n  this.setContentView(activity.getView(), true);\n  activity.start();\n};\n/**\r\n * @param {Activity} activity\r\n */\n\n\nApplication.prototype.stopActivity = function (activity) {\n  if (this.currentActivity == activity) {\n    if (this.activityStack.length == 0) {//todo\n    } else {\n      activity.detach();\n      this.removeChild(this.currentActivity);\n      this.currentActivity = this.activityStack.pop();\n      this.setContentView(this.currentActivity.getView());\n      this.currentActivity.resume();\n    }\n  } else {\n    console.error(\"NOT ON TOP ACTIVITY\");\n  }\n};\n/**\r\n * @param {HTMLElement} view\r\n */\n\n\nApplication.prototype.setContentView = function (view, overlay) {\n  throw new Error(\"Not Implement!\");\n};\n\nApplication.prototype.backToTopActivity = function () {\n  while (this.activityStack.length > 0) {\n    this.currentActivity.stop();\n    this.currentActivity = this.activityStack.pop();\n  }\n\n  this.setContentView(this.currentActivity.getView());\n  this.currentActivity.resume();\n};\n\nvar _default = Application;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/AppPattern/Application.js?");

/***/ }),

/***/ "./node_modules/absol/src/AppPattern/Attributes.js":
/*!*********************************************************!*\
  !*** ./node_modules/absol/src/AppPattern/Attributes.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Ref = _interopRequireDefault(__webpack_require__(/*! ./Ref */ \"./node_modules/absol/src/AppPattern/Ref.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/***\r\n * @typedef {{get?:function, set?: function, descriptor?: Object|function, export?: function}} AttributeHandler\r\n */\n\n/***\r\n *\r\n * @param {Object} node\r\n * @constructor\r\n */\nfunction Attributes(node) {\n  Object.defineProperty(this, '$$node', {\n    enumerable: false,\n    configurable: true,\n    writable: false,\n    value: node\n  });\n  Object.defineProperty(this, '_definedProperties', {\n    enumerable: false,\n    writable: false,\n    value: {}\n  });\n  Object.defineProperty(this, '_definedComputedHandlers', {\n    enumerable: false,\n    writable: false,\n    value: {}\n  });\n}\n\nObject.defineProperty(Attributes.prototype, 'loadAttributeHandlers', {\n  enumerable: false,\n  configurable: true,\n  writable: false,\n  value: function value(newHandlers) {\n    var self = this;\n    var definedHandlers = this._definedProperties;\n    var definedComputedHandlers = this._definedComputedHandlers;\n    Object.keys(this._definedProperties).forEach(function (key) {\n      if (!newHandlers[key]) {\n        delete definedHandlers[key];\n        delete definedComputedHandlers[key];\n        delete self[key];\n      }\n    });\n    Object.keys(newHandlers).forEach(function (key) {\n      if (definedHandlers[key] !== newHandlers[key]) {\n        self.defineProperty(key, newHandlers[key]);\n      }\n    });\n  }\n});\nObject.defineProperty(Attributes.prototype, 'defineProperty', {\n  enumerable: false,\n  configurable: true,\n  writable: false,\n  value: function value(name, handler) {\n    var self = this;\n    this._definedProperties[name] = handler;\n    var hadValue = !!(name in this);\n    var privateValueRef = new _Ref[\"default\"](this[name]);\n    var objectDescriptor = {\n      enumerable: true,\n      configurable: true,\n      set: function set(value) {\n        if (handler.set) privateValueRef.set(handler.set.apply(self.$$node, Array.prototype.slice.call(arguments).concat([privateValueRef])));else privateValueRef.set(value);\n      },\n      get: function get() {\n        if (handler.get) return handler.get.apply(self.$$node, Array.prototype.slice.call(arguments).concat([privateValueRef]));else return privateValueRef.get();\n      }\n    };\n    Object.defineProperty(this, name, objectDescriptor);\n    this._definedComputedHandlers[name] = objectDescriptor;\n    objectDescriptor.ref = privateValueRef;\n    if (hadValue) this[name] = privateValueRef.get();\n  }\n});\nObject.defineProperty(Attributes.prototype, 'getProperty', {\n  enumerable: false,\n  configurable: true,\n  writable: false,\n  value: function value(name) {\n    var args = Array.prototype.slice.call(arguments, 1);\n    var handler = this._definedComputedHandlers[name];\n\n    if (handler) {\n      return handler.get.apply(this, args);\n    } else return this[name];\n  }\n});\nObject.defineProperty(Attributes.prototype, 'setProperty', {\n  enumerable: false,\n  configurable: true,\n  writable: false,\n  value: function value(name, _value) {\n    var args = Array.prototype.slice.call(arguments, 1);\n    var handler = this._definedComputedHandlers[name];\n\n    if (handler) {\n      return handler.set.apply(this, args);\n    } else this[name] = _value;\n  }\n});\nObject.defineProperty(Attributes.prototype, 'export', {\n  enumerable: false,\n  configurable: true,\n  value: function value() {\n    var self = this;\n    return Object.keys(this).reduce(function (ac, key) {\n      var value;\n      var handler = self._definedProperties[key];\n      var computedHandler = self._definedComputedHandlers[key];\n      var exporter = handler && handler[\"export\"];\n\n      if (exporter) {\n        value = exporter.call(self.$$node, computedHandler.ref);\n      } else {\n        value = self[key];\n      }\n\n      if (value !== undefined) ac[key] = value;\n      return ac;\n    }, {});\n  }\n});\nObject.defineProperty(Attributes.prototype, 'getPropertyDescriptor', {\n  enumerable: false,\n  configurable: true,\n  writable: false,\n  value: function value(name) {\n    var handler = this._definedProperties[name];\n    if (handler && typeof handler.descriptor === \"function\") return handler.descriptor.call(this.$$node);\n    var value = this[name];\n    return handler && handler.descriptor || {\n      type: _typeof(value)\n    };\n  }\n});\nvar _default = Attributes;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/AppPattern/Attributes.js?");

/***/ }),

/***/ "./node_modules/absol/src/AppPattern/CMDRunner.js":
/*!********************************************************!*\
  !*** ./node_modules/absol/src/AppPattern/CMDRunner.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nfunction CMDRunner(_this, commands) {\n  this._this = _this;\n  this.commands = {};\n  this.assign(commands);\n}\n\nCMDRunner.prototype.has = function (cmdName) {\n  return !!this.commands[cmdName];\n};\n\nCMDRunner.prototype.add = function (cmdName, handler) {\n  this.commands[cmdName] = handler;\n  return this;\n};\n\nCMDRunner.prototype.remove = function (cmdName) {\n  delete this.commands[cmdName];\n  return this;\n};\n\nCMDRunner.prototype.assign = function (obj) {\n  for (var cmdName in obj) {\n    if (typeof obj[cmdName] == 'function') {\n      this.add(cmdName, obj[cmdName]);\n    }\n  }\n};\n\nCMDRunner.prototype.invoke = function () {\n  if (this.commands[arguments[0]]) {\n    var args = Array.prototype.slice.call(arguments, 1);\n    return this.commands[arguments[0]].apply(this._this, args);\n  } else {\n    throw new Error('No command: ' + arguments[0]);\n  }\n};\n\nvar _default = CMDRunner;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/AppPattern/CMDRunner.js?");

/***/ }),

/***/ "./node_modules/absol/src/AppPattern/Const.js":
/*!****************************************************!*\
  !*** ./node_modules/absol/src/AppPattern/Const.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n/***\r\n *\r\n * @param {T} value\r\n * @param {*=} type\r\n * @constructor\r\n * @template T\r\n */\nfunction Const(value, type) {\n  this.value = value;\n  this.type = type;\n}\n\nConst.prototype.toString = function () {\n  return this.value + '';\n};\n/***\r\n *\r\n * @return {T}\r\n */\n\n\nConst.prototype.valueOf = function () {\n  return this.value;\n};\n/**\r\n *\r\n * @return {T}\r\n */\n\n\nConst.prototype.get = function () {\n  return this.value;\n};\n\nvar _default = Const;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/AppPattern/Const.js?");

/***/ }),

/***/ "./node_modules/absol/src/AppPattern/Context.js":
/*!******************************************************!*\
  !*** ./node_modules/absol/src/AppPattern/Context.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _noop = _interopRequireDefault(__webpack_require__(/*! ../Code/noop */ \"./node_modules/absol/src/Code/noop.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction Context() {\n  /****\r\n   *\r\n   * @type {\"CREATE\"|\"PAUSE\"|\"RUNNING\"|\"STANDBY\"|\"DIE\"|\"STOP\"}\r\n   */\n  this.state = \"CREATE\";\n  /**\r\n   * @type {Context}\r\n   */\n\n  this.parent = null;\n  /***\r\n   *\r\n   * @type {null|ContextManager}\r\n   */\n\n  this.ctxMng = null;\n}\n/**\r\n * @returns {*}\r\n */\n\n\nContext.prototype.getContext = function (key) {\n  var ctx = this;\n  var res;\n\n  while (ctx && !res) {\n    if (ctx.ctxMng) {\n      res = ctx.ctxMng.get(key);\n    }\n\n    ctx = ctx.parent;\n  }\n\n  return res;\n};\n/**\r\n * @param {string} key\r\n * @param {*} value\r\n * @returns {*}\r\n */\n\n\nContext.prototype.setContext = function (key, value) {\n  return this.getContextManager().set(key, value);\n};\n/**\r\n * @returns {ContextManager}\r\n */\n\n\nContext.prototype.getContextManager = function () {\n  var ctx = this;\n  var res;\n\n  while (ctx && !res) {\n    if (ctx.ctxMng) {\n      res = ctx.ctxMng;\n    }\n\n    ctx = ctx.parent;\n  }\n\n  return res;\n};\n/**\r\n * @param {Context} parent\r\n */\n\n\nContext.prototype.attach = function (parent) {\n  //stop before attach to new context\n  this.stop();\n  /**\r\n   * @type {Application}\r\n   */\n\n  this.parent = parent;\n  this.onAttached && this.onAttached();\n};\n\nContext.prototype.detach = function () {\n  this.stop();\n  this.onDetached && this.onDetached();\n  this.parent = null;\n};\n\nContext.prototype.pause = function () {\n  if (this.state.match(/RUNNING|PAUSE/)) {\n    if (this.state === \"RUNNING\") {\n      this.state = \"PAUSE\";\n      this.onPause && this.onPause();\n    }\n  } else {\n    console.warn(this, \"NOT RUNNING\");\n  }\n};\n\nContext.prototype.resume = function () {\n  if (!this.state.match(/STANDBY|PAUSE|RUNNING/)) {\n    // console.warn(this, 'NOT READY!', this.state);\n    return;\n  }\n\n  if (this.state === \"RUNNING\") return;\n  this.state = \"RUNNING\";\n  this.onResume && this.onResume();\n};\n/***\r\n * @param {boolean=} standBy start but waiting for resume()\r\n */\n\n\nContext.prototype.start = function (standBy) {\n  if (this.state.match(/DIE/)) {\n    // console.warn(this, 'DIED!');\n    return;\n  }\n\n  if (this.state.match(/RUNNING/)) return;\n\n  if (this.state.match(/STOP|CREATE/)) {\n    this.state = \"STANDBY\";\n    this.onStart && this.onStart();\n  }\n\n  if (!standBy && this.state.match(/STANDBY|PAUSE/)) {\n    this.resume();\n  }\n};\n\nContext.prototype.stop = function () {\n  if (this.state.match(/STOP|DIE|CREATE/)) return;\n  if (this.state.match(/RUNNING/)) this.pause();\n  this.state = \"STOP\";\n  this.onStop && this.onStop();\n};\n\nContext.prototype.destroy = function () {\n  if (this.state.match(/DIE/)) return;\n  if (this.state.match(/RUNNING|PAUSE/)) this.stop();\n  this.state = \"DIE\";\n  this.onDestroy && this.onDestroy();\n};\n\nContext.prototype.onDestroy = _noop[\"default\"];\nContext.prototype.onStop = _noop[\"default\"];\nContext.prototype.onStart = _noop[\"default\"];\nContext.prototype.onResume = _noop[\"default\"];\nContext.prototype.onPause = _noop[\"default\"];\nContext.prototype.onDetached = _noop[\"default\"];\nContext.prototype.onAttached = _noop[\"default\"];\nvar _default = Context;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/AppPattern/Context.js?");

/***/ }),

/***/ "./node_modules/absol/src/AppPattern/ContextManager.js":
/*!*************************************************************!*\
  !*** ./node_modules/absol/src/AppPattern/ContextManager.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nfunction ContextManager() {\n  this.__contextData__ = {};\n}\n/**\r\n * @param {String} key\r\n * @returns {*}\r\n */\n\n\nContextManager.prototype.get = function (key) {\n  return this.__contextData__[key];\n};\n/**\r\n * @param {String} key\r\n * @param {*} value\r\n * @returns {Context}\r\n */\n\n\nContextManager.prototype.set = function (key, value) {\n  this.__contextData__[key] = value;\n  return this;\n};\n\nContextManager.prototype.assign = function (obj) {\n  Object.assign(this.__contextData__, obj);\n  return this;\n};\n\nContextManager.prototype.remove = function (key) {\n  delete this.__contextData__[key];\n  return this;\n};\n\nContextManager.prototype.contains = function (key) {\n  return key in this.__contextData__;\n};\n\nvar _default = ContextManager;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/AppPattern/ContextManager.js?");

/***/ }),

/***/ "./node_modules/absol/src/AppPattern/Fragment.js":
/*!*******************************************************!*\
  !*** ./node_modules/absol/src/AppPattern/Fragment.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _ContextManager = _interopRequireDefault(__webpack_require__(/*! ./ContextManager */ \"./node_modules/absol/src/AppPattern/ContextManager.js\"));\n\nvar _GrandContext = _interopRequireDefault(__webpack_require__(/*! ./GrandContext */ \"./node_modules/absol/src/AppPattern/GrandContext.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! ../HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _noop = _interopRequireDefault(__webpack_require__(/*! ../Code/noop */ \"./node_modules/absol/src/Code/noop.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends GrandContext\r\n * @constructor\r\n */\nfunction Fragment() {\n  _GrandContext[\"default\"].call(this);\n}\n\n_OOP[\"default\"].mixClass(Fragment, _GrandContext[\"default\"]);\n\nFragment.prototype.createView = function () {\n  throw new Error(\"Not implement!\");\n};\n\nFragment.prototype.getView = function () {\n  if (this.$view) return this.$view;\n  this.$view = this.createView() || this.$view;\n  if (!this.$view) throw new Error(\"this.$view must be not null!\");\n  if (this.onCreated) this.onCreated();\n  return this.$view;\n};\n\nFragment.prototype.onCreated = _noop[\"default\"];\nvar _default = Fragment;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/AppPattern/Fragment.js?");

/***/ }),

/***/ "./node_modules/absol/src/AppPattern/GrandContext.js":
/*!***********************************************************!*\
  !*** ./node_modules/absol/src/AppPattern/GrandContext.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Context = _interopRequireDefault(__webpack_require__(/*! ./Context */ \"./node_modules/absol/src/AppPattern/Context.js\"));\n\nvar _ContextManager = _interopRequireDefault(__webpack_require__(/*! ./ContextManager */ \"./node_modules/absol/src/AppPattern/ContextManager.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! ../HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends Context\r\n * @constructor\r\n */\nfunction GrandContext() {\n  _Context[\"default\"].call(this);\n\n  this.ctxMng = new _ContextManager[\"default\"]();\n}\n\n_OOP[\"default\"].mixClass(GrandContext, _Context[\"default\"]);\n\nvar _default = GrandContext;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/AppPattern/GrandContext.js?");

/***/ }),

/***/ "./node_modules/absol/src/AppPattern/ObservableArray.js":
/*!**************************************************************!*\
  !*** ./node_modules/absol/src/AppPattern/ObservableArray.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _EventEmitter = _interopRequireDefault(__webpack_require__(/*! ../HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @augments EventEmitter\r\n * @extends Array\r\n * @constructor\r\n */\nfunction ObservableArray(array) {\n  _EventEmitter[\"default\"].call(this);\n\n  Object.defineProperty(this, '_array', {\n    configurable: false,\n    enumerable: false,\n    value: array\n  });\n\n  this._makeArrIndex(0, array.length);\n}\n\nObject.defineProperty(ObservableArray.prototype, 'unshift', {\n  enumerable: false,\n  value: function value() {\n    var newItems = Array.prototype.slice.call(arguments);\n    var cN = this._array.length;\n\n    this._makeArrIndex(cN, this._array.length + newItems.length);\n\n    this._array.unshift.apply(this._array, newItems);\n\n    this.emit(\"additem\", {\n      target: this,\n      items: newItems,\n      type: 'additem',\n      offset: 0,\n      action: 'unshift'\n    }, this);\n  }\n});\nObject.defineProperty(ObservableArray.prototype, 'shift', {\n  enumerable: false,\n  value: function value() {\n    var res = undefined;\n\n    if (this._array.length > 0) {\n      res = this._array.shift();\n\n      this._removeIndex(this._array.length);\n\n      this.emit(\"removeitem\", {\n        target: this,\n        type: 'additem',\n        offset: 0,\n        action: 'shift',\n        items: [res],\n        item: res\n      }, this);\n    }\n\n    return res;\n  }\n});\nObject.defineProperty(ObservableArray.prototype, 'push', {\n  enumerable: false,\n  value: function value() {\n    var newItems = Array.prototype.slice.call(arguments);\n    var cN = this._array.length;\n\n    this._makeArrIndex(this._array.length, this._array.length + newItems.length);\n\n    this._array.push.apply(this._array, newItems);\n\n    this.emit(\"additem\", {\n      target: this,\n      items: newItems,\n      type: 'additem',\n      offset: cN,\n      action: 'push'\n    }, this);\n  }\n});\nObject.defineProperty(ObservableArray.prototype, 'pop', {\n  enumerable: false,\n  value: function value() {\n    var res = undefined;\n\n    if (this._array.length > 0) {\n      res = this._array.pop();\n\n      this._removeIndex(this._array.length);\n\n      this.emit(\"removeitem\", {\n        target: this,\n        type: 'additem',\n        offset: this._array.length,\n        action: 'shift',\n        items: [res],\n        item: res\n      }, this);\n    }\n\n    return res;\n  }\n});\nObject.defineProperty(ObservableArray.prototype, 'replace', {\n  enumerable: false,\n  value: function value(offset, items) {\n    for (var i = 0; i < items.length && offset < this._array.length; ++i, ++offset) {\n      this._array[offset] = items[i];\n    }\n  }\n});\nObject.defineProperty(ObservableArray.prototype, 'toJSON', {\n  enumerable: false,\n  value: function value() {\n    return this._array;\n  }\n});\nObject.defineProperty(ObservableArray.prototype, 'valueOf', {\n  enumerable: false,\n  value: function value() {\n    return this._array;\n  }\n});\nObject.defineProperty(ObservableArray.prototype, '_makeArrIndex', {\n  enumerable: false,\n  value: function value(cN, nN) {\n    var i;\n\n    if (nN > cN) {\n      for (i = cN; i < nN; ++i) {\n        this._defineIndex(i);\n      }\n    } else {\n      for (i = cN - 1; i >= nN; --i) {\n        this._removeIndex(i);\n      }\n    }\n  }\n});\n/***\r\n *\r\n * @param {number} idx\r\n * @private\r\n */\n\nObject.defineProperty(ObservableArray.prototype, '_defineIndex', {\n  enumerable: false,\n  value: function value(idx) {\n    if (!(idx in this)) {\n      Object.defineProperty(this, idx, {\n        set: function set(value) {\n          var oldValue = this._array[idx];\n          this._array[idx] = value;\n          this.emit('setitem', {\n            type: 'setitem',\n            target: this,\n            oldValue: oldValue,\n            vale: value,\n            offset: idx\n          }, this);\n        },\n        get: function get() {\n          return this._array[idx];\n        },\n        configurable: true,\n        enumerable: true\n      });\n    }\n  }\n});\nObject.defineProperty(ObservableArray.prototype, '_removeIndex', {\n  enumerable: false,\n  value: function value(idx) {\n    delete this[idx];\n  }\n});\nObject.defineProperty(ObservableArray.prototype, 'splice', {\n  enumerable: false,\n  value: function value(index, howMany) {\n    var res = [];\n    var newItems = Array.prototype.slice.call(arguments, 2);\n    index = index == null ? 0 : index < 0 ? this._array.length + index : index;\n    howMany = howMany == null ? this._array.length - index : howMany > 0 ? howMany : 0;\n\n    if (howMany > 0) {\n      this._makeArrIndex(this._array.length, this._array.length - howMany);\n\n      res = this._array.splice(index, howMany);\n\n      if (newItems.length > 0) {\n        if (res.length > 0) {\n          this.emit('replaceitem', {\n            type: 'replaceitem',\n            offset: index,\n            oldItems: res,\n            newItems: newItems,\n            target: this,\n            action: 'splice'\n          }, this);\n        } else {\n          this.emit('additem', {\n            type: 'additem',\n            offset: index,\n            items: newItems,\n            target: this\n          }, this);\n        }\n      } else {\n        if (res.length > 0) {\n          this.emit('removeitem', {\n            target: this,\n            type: 'additem',\n            offset: 0,\n            action: 'splice',\n            items: res\n          }, this);\n        }\n      }\n    }\n\n    return res;\n  }\n});\nObject.defineProperty(ObservableArray.prototype, 'length', {\n  set: function set(value) {\n    var n = Number(value);\n    var length = this._array.length;\n\n    if (n % 1 === 0 && n >= 0) {\n      if (n < length) {\n        this.splice(n);\n      } else if (n > length) {\n        this.push.apply(this, new Array(n - length));\n      }\n    } else {\n      throw new RangeError(\"Invalid array length\");\n    }\n\n    this._array.length = n;\n  },\n  get: function get() {\n    return this._array.length;\n  }\n});\nObject.getOwnPropertyNames(Array.prototype).forEach(function (name) {\n  if (!(name in ObservableArray.prototype)) {\n    Object.defineProperty(ObservableArray.prototype, name, {\n      configurable: false,\n      enumerable: false,\n      writable: false,\n      value: Array.prototype[name]\n    });\n  }\n});\nObject.getOwnPropertyNames(_EventEmitter[\"default\"].prototype).forEach(function (name) {\n  if (!(name in ObservableArray.prototype)) {\n    Object.defineProperty(ObservableArray.prototype, name, {\n      configurable: false,\n      enumerable: false,\n      writable: false,\n      value: _EventEmitter[\"default\"].prototype[name]\n    });\n  }\n});\nvar _default = ObservableArray;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/AppPattern/ObservableArray.js?");

/***/ }),

/***/ "./node_modules/absol/src/AppPattern/ObservableStruct.js":
/*!***************************************************************!*\
  !*** ./node_modules/absol/src/AppPattern/ObservableStruct.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _EventEmitter = _interopRequireDefault(__webpack_require__(/*! ../HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends EventEmitter\r\n * @param {Object} o\r\n * @constructor\r\n */\nfunction ObservableStruct(o) {\n  _EventEmitter[\"default\"].call(this);\n\n  Object.defineProperty(this, '__o__', {\n    configurable: false,\n    enumerable: false,\n    value: o\n  });\n\n  for (var key in o) {\n    this.defineProperty(key);\n  }\n}\n\nObject.defineProperty(ObservableStruct.prototype, 'defineProperty', {\n  configurable: false,\n  enumerable: false,\n  writable: false,\n\n  /***\r\n   *\r\n   * @param {string} name\r\n   * @param {*=} value\r\n   */\n  value: function value(name, _value) {\n    if (!(name in this)) {\n      Object.defineProperty(this, name, {\n        set: function set(value) {\n          var oldValue = this.__o__[name];\n          this.__o__[name] = value;\n          this.emit('setproperty', {\n            type: 'setproperty',\n            target: this,\n            oldValue: oldValue,\n            vale: value,\n            name: name\n          }, this);\n        },\n        get: function get() {\n          return this.__o__[name];\n        },\n        configurable: true,\n        enumerable: true\n      });\n    }\n  }\n});\nObject.getOwnPropertyNames(_EventEmitter[\"default\"].prototype).forEach(function (name) {\n  if (!(name in ObservableStruct.prototype)) {\n    Object.defineProperty(ObservableStruct.prototype, name, {\n      configurable: false,\n      enumerable: false,\n      writable: false,\n      value: _EventEmitter[\"default\"].prototype[name]\n    });\n  }\n});\nvar _default = ObservableStruct;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/AppPattern/ObservableStruct.js?");

/***/ }),

/***/ "./node_modules/absol/src/AppPattern/Ref.js":
/*!**************************************************!*\
  !*** ./node_modules/absol/src/AppPattern/Ref.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n/***\r\n *\r\n * @param {T} value\r\n * @param {*=} type\r\n * @constructor\r\n * @template T\r\n */\nfunction Ref(value, type) {\n  this.type = type;\n  this.value = value;\n}\n\nRef.prototype.toString = function () {\n  return this.value + '';\n};\n/***\r\n *\r\n * @return {T}\r\n */\n\n\nRef.prototype.valueOf = function () {\n  return this.value;\n};\n/***\r\n *\r\n * @param {T}value\r\n */\n\n\nRef.prototype.set = function (value) {\n  this.value = value;\n};\n/**\r\n *\r\n * @return {T}\r\n */\n\n\nRef.prototype.get = function () {\n  return this.value;\n};\n\nvar _default = Ref;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/AppPattern/Ref.js?");

/***/ }),

/***/ "./node_modules/absol/src/AppPattern/ShareConfiguration.js":
/*!*****************************************************************!*\
  !*** ./node_modules/absol/src/AppPattern/ShareConfiguration.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _safeThrow = _interopRequireDefault(__webpack_require__(/*! ../Code/safeThrow */ \"./node_modules/absol/src/Code/safeThrow.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction ShareConfiguration() {\n  Object.defineProperty(this, 'data', {\n    value: {},\n    enumerable: true,\n    writable: false\n  });\n  Object.defineProperty(this, '__listener__', {\n    value: {},\n    enumerable: false,\n    writable: false\n  });\n}\n/***\r\n *\r\n * @param {string} key\r\n * @param {*|undefined} value\r\n */\n\n\nShareConfiguration.prototype.set = function (key, value) {\n  var prev = this.data[key];\n  this.data[key] = value;\n\n  if (value !== prev) {\n    this.emit(key, value, this);\n  }\n\n  return this;\n};\n\nShareConfiguration.prototype.emit = function (key) {\n  var args = Array.prototype.slice.call(arguments, 1);\n  var self = this;\n\n  if (this.__listener__[key]) {\n    this.__listener__[key].slice().forEach(function (f) {\n      try {\n        f.apply(self, args);\n      } catch (err) {\n        (0, _safeThrow[\"default\"])(err);\n      }\n    });\n  }\n\n  return this;\n};\n/***\r\n *\r\n * @param {string|Object} key\r\n * @param {function=}listener\r\n * @return {ShareConfiguration}\r\n */\n\n\nShareConfiguration.prototype.on = function (key, listener) {\n  if (typeof key === \"string\") {\n    if (!this.__listener__[key]) this.__listener__[key] = [];\n\n    if (this.__listener__[key].indexOf(listener) < 0) {\n      this.__listener__[key].push(listener);\n    }\n  } else if (_typeof(key) === \"object\") {\n    for (var key1 in key) {\n      this.on(key1, key[key1]);\n    }\n  }\n\n  return this;\n};\n/***\r\n *\r\n * @param {string|Object} key\r\n * @param {function=}listener\r\n * @return {ShareConfiguration}\r\n */\n\n\nShareConfiguration.prototype.off = function (key, listener) {\n  if (typeof key === \"string\" && this.__listener__[key]) {\n    var idx = this.__listener__[key].indexOf(listener);\n\n    if (idx >= 0) {\n      this.__listener__[key].splice(idx, 1);\n    }\n  } else if (_typeof(key) === \"object\") {\n    for (var key1 in key) {\n      this.off(key1, key[key1]);\n    }\n  }\n\n  return this;\n};\n/***\r\n *\r\n * @param {string} key\r\n * @param {*=} defaultValue\r\n * @return {*}\r\n */\n\n\nShareConfiguration.prototype.get = function (key, defaultValue) {\n  return this.data[key];\n};\n\nShareConfiguration.prototype.contains = function (key) {\n  return this.data[key] === undefined;\n};\n\nShareConfiguration.instance = new ShareConfiguration();\nvar _default = ShareConfiguration;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/AppPattern/ShareConfiguration.js?");

/***/ }),

/***/ "./node_modules/absol/src/AppPattern/TaskManager.js":
/*!**********************************************************!*\
  !*** ./node_modules/absol/src/AppPattern/TaskManager.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _stringGenerate = __webpack_require__(/*! ../String/stringGenerate */ \"./node_modules/absol/src/String/stringGenerate.js\");\n\nvar _EventEmitter = _interopRequireDefault(__webpack_require__(/*! ../HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! ../HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n *\r\n * @param {TaskManager} manager\r\n * @param {function(finishTask: function, bundle: any): (void|Promise)=} func\r\n * @param {any=} bundle\r\n * @constructor\r\n */\nfunction Task(manager, func, bundle) {\n  this.manager = manager;\n  this.id = (0, _stringGenerate.randomIdent)(12);\n  this.func = func;\n  this.bundle = bundle;\n  this.state = 0;\n}\n\nTask.prototype.begin = function () {\n  if (this.state !== 0) return;\n  this.state = 1;\n  var sync;\n\n  if (this.func) {\n    try {\n      sync = this.func(this.end.bind(this), this.bundle);\n    } catch (error) {\n      console.error(error);\n    }\n  }\n\n  if (sync && sync.then) sync[\"catch\"](function (error) {\n    return console.error(error);\n  }).then(this.end.bind(this));\n};\n\nTask.prototype.end = function () {\n  if (this.state !== 1) return;\n  this.state = 2;\n  this.manager.onFinishTask(this);\n};\n\nfunction TaskManager(opt) {\n  _EventEmitter[\"default\"].call(this);\n\n  opt = opt || {};\n  this.limit = typeof opt.limit === \"number\" && opt.limit >= 1 ? opt.limit : Infinity;\n  this.pendingTasks = [];\n  this.runningTasks = [];\n}\n\n_OOP[\"default\"].mixClass(TaskManager, _EventEmitter[\"default\"]);\n/***\r\n *\r\n * @param {function(finishTask: function, bundle: any): (void|Promise)} func\r\n * @param {any} bundle\r\n */\n\n\nTaskManager.prototype.requestTask = function (func, bundle) {\n  var task = new Task(this, func, bundle);\n\n  if (this.runningTasks.length < this.limit) {\n    this.runningTasks.push(task);\n    this.emit('task_begin', {\n      type: 'task_begin',\n      task: task\n    }, this);\n    task.begin();\n  } else {\n    this.pendingTasks.push(task);\n  }\n};\n\nTaskManager.prototype.onFinishTask = function (task) {\n  var idx = this.runningTasks.indexOf(task);\n  if (idx < 0) return;\n  this.runningTasks.splice(idx, 1);\n  this.emit('task_end', {\n    type: 'task_end',\n    task: task\n  }, this);\n\n  while (this.pendingTasks.length > 0 && this.runningTasks.length < this.limit) {\n    task = this.pendingTasks.shift();\n    this.runningTasks.push(task);\n    this.emit('task_begin', {\n      type: 'task_begin',\n      task: task\n    }, this);\n    task.begin();\n  }\n};\n\nTaskManager.prototype.newTask = function () {\n  var task = new Task(this, null, null);\n  this.runningTasks.push(task);\n  this.emit('task_begin', {\n    type: 'task_begin',\n    task: task\n  }, this);\n  task.begin();\n  return task;\n};\n\nvar _default = TaskManager;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/AppPattern/TaskManager.js?");

/***/ }),

/***/ "./node_modules/absol/src/AppPattern/VarScope.js":
/*!*******************************************************!*\
  !*** ./node_modules/absol/src/AppPattern/VarScope.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nfunction VarScope(parent) {\n  this.parent = parent;\n  this.data = {};\n}\n\nVarScope.prototype.revoke = function (name) {\n  delete this.data[name];\n  return this;\n};\n\nVarScope.prototype.isDeclared = function (name) {\n  return name in this.data;\n};\n/***\r\n *\r\n * @param name\r\n * @param initValue\r\n * @param {boolean=} force\r\n * @return {VarScope}\r\n */\n\n\nVarScope.prototype.declare = function (name, initValue, force) {\n  if (name in this.data && !force) throw new Error(name + ' is already delared in this scope!');\n  this.data[name] = initValue;\n  return this;\n};\n\nVarScope.prototype.get = function (name) {\n  var scope = this.findScope(name);\n  if (!scope) throw new Error(name + ' is not declared!');\n  return scope.data[name];\n};\n\nVarScope.prototype.set = function (name, value) {\n  var scope = this.findScope(name);\n  if (!scope) throw new Error(name + ' is not declared!');\n  scope.data[name] = value;\n};\n\nVarScope.prototype.findScope = function (name) {\n  var currentScope = this;\n\n  while (currentScope) {\n    if (name in currentScope.data) break;\n    currentScope = currentScope.parent;\n  }\n\n  return currentScope;\n};\n\nvar _default = VarScope;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/AppPattern/VarScope.js?");

/***/ }),

/***/ "./node_modules/absol/src/AppPattern/circuit/CCBlock.js":
/*!**************************************************************!*\
  !*** ./node_modules/absol/src/AppPattern/circuit/CCBlock.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _stringGenerate = __webpack_require__(/*! ../../String/stringGenerate */ \"./node_modules/absol/src/String/stringGenerate.js\");\n\nvar _safeThrow = _interopRequireDefault(__webpack_require__(/*! ../../Code/safeThrow */ \"./node_modules/absol/src/Code/safeThrow.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n *\r\n * @param {{id?:string}=} opt\r\n * @constructor\r\n */\nfunction CCBlock(opt) {\n  opt = opt || {};\n  this.id = opt.id || (0, _stringGenerate.randomIdent)(16);\n  Object.defineProperty(this, '__cc_listener__', {\n    enumerable: false,\n    configurable: true,\n    writable: false,\n    value: {}\n  });\n  Object.defineProperty(this, '__cc_line_list_by_id__', {\n    enumerable: false,\n    configurable: true,\n    writable: false,\n    value: {}\n  });\n}\n/***\r\n *\r\n * @param {string} pinName\r\n * @param {function} listener\r\n * @return {CCBlock}\r\n */\n\n\nCCBlock.prototype.pinOn = function (pinName, listener) {\n  var cbList;\n\n  if (this.__cc_listener__[pinName]) {\n    cbList = this.__cc_listener__[pinName];\n  } else {\n    cbList = [];\n    this.__cc_listener__[pinName] = cbList;\n  }\n\n  if (cbList.indexOf(listener) < 0) {\n    cbList.push(listener);\n  } else {\n    console.warn(\"Duplicate pin listener!\");\n  }\n\n  return this;\n};\n\nCCBlock.prototype.pinOff = function (pinName, listener) {\n  if (!this.__cc_listener__[pinName]) return this;\n  var cbList = this.__cc_listener__[pinName];\n  var cbIdx = cbList.indexOf(listener);\n\n  if (cbIdx >= 0) {\n    cbList.splice(cbIdx);\n  }\n\n  return this;\n};\n\nCCBlock.prototype.pinFire = function (pinName) {\n  if (!this.__cc_listener__[pinName]) return this;\n\n  var cbList = this.__cc_listener__[pinName].slice();\n\n  var args = Array.prototype.slice.call(arguments, 1);\n  if (args.length === 0 && this.pinHandlers[pinName] && this.pinHandlers[pinName].get && cbList.length > 0) args.push(this.pinGetValue(pinName));\n\n  for (var i = 0; i < cbList.length; ++i) {\n    try {\n      cbList[i].apply(this, args);\n    } catch (e) {\n      (0, _safeThrow[\"default\"])(e);\n    }\n  }\n};\n\nCCBlock.prototype.pinFireAll = function () {\n  var pinNames = Object.keys(this.pinHandlers);\n  var pinName;\n\n  for (var i = 0; i < pinNames.length; ++i) {\n    pinName = pinNames[i];\n    if (this.pinHandlers[pinName] && this.pinHandlers[pinName].get) this.pinFire(pinName);\n  }\n};\n\nCCBlock.prototype.pinReceives = function (pinName) {\n  var args = Array.prototype.slice.call(arguments, 1);\n\n  if (this.pinHandlers[pinName] && this.pinHandlers[pinName].receives) {\n    this.pinHandlers[pinName].receives.apply(this, args);\n  }\n};\n\nCCBlock.prototype.pinGetValue = function (pinName) {\n  var args = Array.prototype.slice.call(arguments, 1);\n\n  if (this.pinHandlers[pinName] && this.pinHandlers[pinName].get) {\n    return this.pinHandlers[pinName].get.apply(this, args);\n  }\n\n  return undefined;\n};\n\nCCBlock.prototype.pinGetDescriptor = function (pinName) {\n  var args = Array.prototype.slice.call(arguments, 1);\n  var descriptor = this.pinHandlers[pinName] && this.pinHandlers[pinName].descriptor;\n\n  if (descriptor) {\n    if (typeof descriptor === \"function\") return this.pinHandlers[pinName].get.apply(this, args);\n    return descriptor;\n  }\n\n  return undefined;\n};\n\nObject.defineProperty(CCBlock.prototype, 'pinLines', {\n  get: function get() {\n    var lineList = this.__cc_line_list_by_id__;\n    return Object.keys(lineList).map(function (id) {\n      return lineList[id];\n    });\n  }\n});\nCCBlock.prototype.pinHandlers = {};\nvar _default = CCBlock;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/AppPattern/circuit/CCBlock.js?");

/***/ }),

/***/ "./node_modules/absol/src/AppPattern/circuit/CCLine.js":
/*!*************************************************************!*\
  !*** ./node_modules/absol/src/AppPattern/circuit/CCLine.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _stringGenerate = __webpack_require__(/*! ../../String/stringGenerate */ \"./node_modules/absol/src/String/stringGenerate.js\");\n\n/***\r\n *\r\n * @param {CCBlock} u\r\n * @param {string} uPinName\r\n * @param {CCBlock} v\r\n * @param {string} vPinName\r\n * @param {boolean=} twoWay\r\n * @param {{id?:string}=} opt\r\n * @constructor\r\n */\nfunction CCLine(u, uPinName, v, vPinName, twoWay, opt) {\n  opt = opt || {};\n  twoWay = !!twoWay;\n  Object.defineProperty(this, 'id', {\n    enumerable: true,\n    writable: false,\n    value: opt.id || (0, _stringGenerate.randomIdent)(32)\n  });\n  Object.defineProperty(this, 'u', {\n    enumerable: true,\n    writable: false,\n    value: u\n  });\n  Object.defineProperty(this, 'v', {\n    enumerable: true,\n    writable: false,\n    value: v\n  });\n  Object.defineProperty(this, 'uPinName', {\n    enumerable: true,\n    writable: false,\n    value: uPinName\n  });\n  Object.defineProperty(this, 'vPinName', {\n    enumerable: true,\n    writable: false,\n    value: vPinName\n  });\n  Object.defineProperty(this, 'twoWay', {\n    enumerable: true,\n    writable: false,\n    value: twoWay\n  });\n  this.vToU = this.vToU.bind(this);\n  this.uToV = this.uToV.bind(this);\n  this.u.pinOn(this.uPinName, this.uToV);\n  if (this.twoWay) this.v.pinOn(this.vPinName, this.vToU);\n  this.u.__cc_line_list_by_id__[this.id] = this;\n  this.v.__cc_line_list_by_id__[this.id] = this;\n}\n\nCCLine.prototype.remove = function () {\n  this.u.pinOff(this.uPinName, this.uToV);\n  if (this.twoWay) this.v.pinOff(this.vPinName, this.vToU);\n  delete this.u.__cc_line_list_by_id__[this.id];\n  delete this.v.__cc_line_list_by_id__[this.id];\n};\n\nCCLine.prototype.uToV = function () {\n  var args = [this.vPinName].concat(Array.prototype.slice.call(arguments));\n  this.v.pinReceives.apply(this.v, args);\n};\n\nCCLine.prototype.vToU = function () {\n  var args = [this.uPinName].concat(Array.prototype.slice.call(arguments));\n  this.u.pinReceives.apply(this.u, args);\n};\n\nvar _default = CCLine;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/AppPattern/circuit/CCLine.js?");

/***/ }),

/***/ "./node_modules/absol/src/Code/ALogger.js":
/*!************************************************!*\
  !*** ./node_modules/absol/src/Code/ALogger.js ***!
  \************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _FlagManager = _interopRequireDefault(__webpack_require__(/*! ./FlagManager */ \"./node_modules/absol/src/Code/FlagManager.js\"));\n\nvar _noop = _interopRequireDefault(__webpack_require__(/*! ./noop */ \"./node_modules/absol/src/Code/noop.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n_FlagManager[\"default\"].add('ABSOL_DEBUG', false);\n\nfunction ALogger() {\n  _FlagManager[\"default\"].on('change', this._updateProto.bind(this));\n\n  this._updateProto();\n}\n\nALogger.prototype._updateProto = function () {\n  ['log', 'table', 'table', 'error', 'warn'].forEach(function (name) {\n    var cFunction = window['ABSOL_DEBUG'] ? console[name] && console[name].bind(console) : _noop[\"default\"];\n    this[name] = cFunction || _noop[\"default\"];\n  }.bind(this));\n};\n\nALogger.prototype.log = _noop[\"default\"];\nALogger.prototype.table = _noop[\"default\"];\nALogger.prototype.error = _noop[\"default\"];\nALogger.prototype.warn = _noop[\"default\"];\n(window || __webpack_require__.g).ALogger = new ALogger();\nvar _default = ALogger;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Code/ALogger.js?");

/***/ }),

/***/ "./node_modules/absol/src/Code/FlagManager.js":
/*!****************************************************!*\
  !*** ./node_modules/absol/src/Code/FlagManager.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _EventEmitter = _interopRequireDefault(__webpack_require__(/*! ../HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! ../HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends EventEmitter\r\n * @constructor\r\n */\nfunction FlagManager() {\n  _EventEmitter[\"default\"].call(this);\n\n  this.flag = {};\n  this.readSetting();\n}\n\n_OOP[\"default\"].mixClass(FlagManager, _EventEmitter[\"default\"]);\n\nFlagManager.prototype.STORE_KEY = \"ABSOL_FLAG\";\n\nFlagManager.prototype.readSetting = function () {\n  var flagText = localStorage.getItem(this.STORE_KEY) || '{}';\n  var newFlag = {};\n\n  try {\n    newFlag = JSON.parse(flagText);\n  } catch (err) {}\n\n  this.applyFlag(newFlag);\n};\n\nFlagManager.prototype.applyFlag = function (newFlag, save) {\n  var changed = [];\n  Object.keys(Object.assign({}, this.flag, newFlag)).forEach(function (key) {\n    if (key in window) {\n      if (key in newFlag) {\n        if (window[key] !== newFlag[key]) {\n          window[key] = newFlag[key];\n          changed.push(key);\n        }\n      } else {\n        changed.push(key);\n        delete window[key];\n      }\n    } else {\n      if (key in newFlag) {\n        if (window[key] !== newFlag[key]) {\n          window[key] = newFlag[key];\n          changed.push(key);\n        }\n      }\n    }\n  });\n  this.flag = newFlag;\n  if (save) this.saveSetting();\n\n  if (changed.length > 0) {\n    this.emit('change', {\n      type: 'change',\n      target: this,\n      keys: changed\n    });\n  }\n};\n\nFlagManager.prototype.saveSetting = function () {\n  localStorage.setItem(this.STORE_KEY, JSON.stringify(this.flag));\n};\n/***\r\n *\r\n * @param {string} key\r\n * @param {boolean=} value\r\n */\n\n\nFlagManager.prototype.add = function (key, value) {\n  if (!key || typeof key != 'string') return;\n  if (key in this.flag) return;\n\n  if (typeof value != \"boolean\") {\n    value = !!window[key];\n  }\n\n  this.flag[key] = value;\n  window[key] = value;\n  this.saveSetting();\n  this.emit('change', {\n    type: 'change',\n    target: this,\n    keys: [key]\n  });\n};\n\nFlagManager.prototype.set = function (key, value) {\n  if (!key || typeof key != 'string') return;\n\n  if (typeof value != \"boolean\") {\n    value = !!window[key];\n  }\n\n  var changed = false;\n  this.flag[key] = value;\n\n  if (window[key] !== value) {\n    changed = true;\n  }\n\n  this.saveSetting();\n\n  if (changed) {\n    this.emit('change', {\n      type: 'change',\n      target: this,\n      keys: [key]\n    });\n  }\n};\n\nFlagManager.prototype.remove = function (key) {\n  if (key in this.flag) {\n    delete window[key];\n    delete this.flag[key];\n    this.emit('change', {\n      type: 'change',\n      target: this,\n      keys: [key]\n    });\n  }\n};\n\nvar _default = new FlagManager();\n\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Code/FlagManager.js?");

/***/ }),

/***/ "./node_modules/absol/src/Code/noop.js":
/*!*********************************************!*\
  !*** ./node_modules/absol/src/Code/noop.js ***!
  \*********************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = noop;\n\nfunction noop() {}\n\n;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Code/noop.js?");

/***/ }),

/***/ "./node_modules/absol/src/Code/safeThrow.js":
/*!**************************************************!*\
  !*** ./node_modules/absol/src/Code/safeThrow.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = safeThrow;\n\nfunction safeThrow(error) {\n  setTimeout(function () {\n    throw error;\n  }, 0);\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Code/safeThrow.js?");

/***/ }),

/***/ "./node_modules/absol/src/Color/Color.js":
/*!***********************************************!*\
  !*** ./node_modules/absol/src/Color/Color.js ***!
  \***********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _TemplateString = _interopRequireDefault(__webpack_require__(/*! ../JSMaker/TemplateString */ \"./node_modules/absol/src/JSMaker/TemplateString.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction Color(rgba) {\n  this.rgba = rgba.slice();\n}\n/***\r\n *\r\n * @returns {string}\r\n */\n\n\nColor.prototype.toHex6 = function () {\n  return this.rgba.slice(0, 3).map(function (b) {\n    b = b * 255 >> 0;\n    return (b < 16 ? '0' : '') + b.toString(16);\n  }).join('');\n};\n/***\r\n *\r\n * @returns {string}\r\n */\n\n\nColor.prototype.toHex8 = function () {\n  return this.rgba.map(function (b) {\n    b = b * 255 >> 0;\n    return (b < 16 ? '0' : '') + b.toString(16);\n  }).join('');\n};\n/***\r\n *\r\n * @returns {string}\r\n */\n\n\nColor.prototype.toHex3 = function () {\n  return this.rgba.slice(0, 3).map(function (b) {\n    b = b * 255 / 17 >> 0;\n    return b.toString(16);\n  }).join('');\n};\n/***\r\n *\r\n * @returns {string}\r\n */\n\n\nColor.prototype.toHex4 = function () {\n  return this.rgba.map(function (b) {\n    b = b * 255 / 17 >> 0;\n    return b.toString(16);\n  }).join('');\n};\n/***\r\n *\r\n * @returns {number[]}\r\n */\n\n\nColor.prototype.toHSLA = function () {\n  return Color.rgbaToHSLA(this.rgba);\n};\n/***\r\n *\r\n * @returns {number[]}\r\n */\n\n\nColor.prototype.toHSBA = function () {\n  return Color.rgbaToHSBA(this.rgba);\n};\n/***\r\n *\r\n * @returns {number[]}\r\n */\n\n\nColor.prototype.toHWBA = function () {\n  return Color.rgbaToHWBA(this.rgba);\n};\n/***\r\n *\r\n * @returns {number[]}\r\n */\n\n\nColor.prototype.toCMYK = function () {\n  return Color.rgbToCMYK(this.rgba);\n};\n/***\r\n *\r\n * @returns {Color}\r\n */\n\n\nColor.prototype.getHighContrastColor = function () {\n  var hsba = this.toHSBA();\n  var h, s, b;\n  h = hsba[0] > 0.5 ? hsba[0] - 0.5 : hsba[0] + 0.5;\n  s = hsba[1] > 0.5 ? hsba[1] - 0.5 : hsba[1] + 0.5;\n  b = hsba[2] > 0.5 ? hsba[2] - 0.5 : hsba[2] + 0.5;\n  return Color.fromHSB(h, s, b);\n};\n\nColor.prototype.getHightContrastColor = Color.prototype.getHighContrastColor;\n\nColor.prototype.getLuminance = function () {\n  var a = this.rgba.slice(0, 3).map(function (v) {\n    return v <= 0.03928 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\n  });\n  return a[0] * 0.2126 + a[1] * 0.7152 + a[2] * 0.0722;\n};\n/***\r\n *\r\n * @param {Color} other\r\n * @returns {number}\r\n */\n\n\nColor.prototype.getContrastWith = function (other) {\n  var lum1 = this.getLuminance();\n  var lum2 = other.getLuminance();\n  var brightest = Math.max(lum1, lum2);\n  var darkest = Math.min(lum1, lum2);\n  return (brightest + 0.05) / (darkest + 0.05);\n};\n/***\r\n *\r\n * @returns {Color}\r\n */\n\n\nColor.prototype.getContrastYIQ = function () {\n  var r = this.rgba[0] * 255;\n  var g = this.rgba[1] * 255;\n  var b = this.rgba[2] * 255;\n  var yiq = (r * 299 + g * 587 + b * 114) / 1000;\n  return yiq >= 128 ? new Color([0, 0, 0, 1]) : new Color([1, 1, 1, 1]);\n};\n/**\r\n *\r\n * @returns {Color}\r\n */\n\n\nColor.prototype.clone = function () {\n  return new Color(this.rgba.slice());\n};\n/**\r\n *\r\n *  ['rgba', 'rgba', 'rgba({{x[0]*255>>0}}, {{x[1]*255>>0}}, {{x[2]*255>>0}}, {{x[3]}})'],\r\n *     ['rgb', 'rgba', 'rgb({{x[0]*255>>0}}, {{x[1]*255>>0}}, {{x[2]*255>>0}})'],\r\n *     ['hsl', 'toHSLA()', 'hsl({{x[0] * 360}}, {{x[1] * 100}}%, {{x[2] * 100}}%)'],\r\n *     ['hsla', 'toHSLA()', 'hsla({{x[0] * 360}}, {{x[1] * 100}}%, {{x[2] * 100}}%, {{x[3]}})'],\r\n *     ['hsb', 'toHSBA()', 'hsb({{x[0] * 360}}, {{x[1] * 100}}%, {{x[2] * 100}}%)'],\r\n *     ['hsba', 'toHSBA()', 'hsba({{x[0] * 360}}, {{x[1] * 100}}%, {{x[2] * 100}}%, {{x[3]}})'],\r\n *     ['hex3', 'toHex3()', '#{{x}}'],\r\n *     ['hex4', 'toHex4()', '#{{x}}'],\r\n *     ['hex6', 'toHex6()', '#{{x}}'],\r\n *     ['hex6', 'toHex8()', '#{{x}}'],\r\n *     ['hwb', 'toHWBA()', 'hwb({{x[0] * 360}}, {{x[1] * 100}}%, {{x[2] * 100}}%)'],\r\n *     ['hwba', 'toHWBA()', 'hwba({{x[0] * 360}}, {{x[1] * 100}}%, {{x[2] * 100}}%, {{x[3]}})']\r\n *     ['cmyk', 'toCMYK()', 'hwba({{x[0] * 100%}}, {{x[1] * 100}}%, {{x[2] * 100}}%)']\r\n */\n\n/****\r\n *\r\n * @param {\"rgba\"|\"rgb\"|\"hsl\"|\"hsla\"|\"hsb\"|\"hsba\"|\"hex3\"|\"hex4\"|\"hex6\"|\"hex6\"|hex8|\"hwb\"|\"hwba\"} mode\r\n * @returns {string}\r\n */\n\n\nColor.prototype.toString = function (mode) {\n  mode = mode || 'rgba';\n  mode = mode.toLocaleLowerCase();\n  return Color.templates[mode](this);\n};\n/***\r\n *\r\n * @param notStandard\r\n * @param {number[]} hsbWeight\r\n * @returns {Color}\r\n */\n\n\nColor.prototype.nearestNamedColor = function (notStandard, hsbWeight) {\n  hsbWeight = hsbWeight || [5, 3, 1];\n  var hsba = this.toHSBA();\n  var bestMatch = null;\n  var dist = 1000;\n  Object.keys(Color.namedColors).concat(notStandard ? Object.keys(Color.nonStandarNamedColors) : []).forEach(function (name) {\n    var c = Color.parse(Color.namedColors[name] || Color.nonStandarNamedColors[name]);\n    var cHSBA = c.toHSBA();\n    var cDist = Math.abs(hsba[0] - cHSBA[0]) * hsbWeight[0] + Math.abs(hsba[1] - cHSBA[1]) * hsbWeight[1] + Math.abs(hsba[2] - cHSBA[2]) * hsbWeight[2];\n\n    if (cDist < dist) {\n      dist = cDist;\n      bestMatch = name;\n    }\n  });\n  return bestMatch;\n};\n\nColor.templates = [['rgba', 'rgba', 'rgba({{x[0]*255>>0}}, {{x[1]*255>>0}}, {{x[2]*255>>0}}, {{x[3]}})'], ['rgb', 'rgba', 'rgb({{x[0]*255>>0}}, {{x[1]*255>>0}}, {{x[2]*255>>0}})'], ['hsl', 'toHSLA()', 'hsl({{x[0] * 360}}, {{x[1] * 100}}%, {{x[2] * 100}}%)'], ['hsla', 'toHSLA()', 'hsla({{x[0] * 360}}, {{x[1] * 100}}%, {{x[2] * 100}}%, {{x[3]}})'], ['hsb', 'toHSBA()', 'hsb({{x[0] * 360}}, {{x[1] * 100}}%, {{x[2] * 100}}%)'], ['hsba', 'toHSBA()', 'hsba({{x[0] * 360}}, {{x[1] * 100}}%, {{x[2] * 100}}%, {{x[3]}})'], ['hex3', 'toHex3()', '#{{x}}'], ['hex4', 'toHex4()', '#{{x}}'], ['hex6', 'toHex6()', '#{{x}}'], ['hex8', 'toHex8()', '#{{x}}'], ['hwb', 'toHWBA()', 'hwb({{x[0] * 360}}, {{x[1] * 100}}%, {{x[2] * 100}}%)'], ['hwba', 'toHWBA()', 'hwba({{x[0] * 360}}, {{x[1] * 100}}%, {{x[2] * 100}}%, {{x[3]}})'], ['cmyk', 'toCMYK()', 'cmyk({{x[0] * 100}}%, {{x[1] * 100}}%, {{x[2] * 100}}%)']].reduce(function (ac, cr) {\n  ac[cr[0]] = new Function('color', ['var x = color.' + cr[1] + ';', 'return ' + _TemplateString[\"default\"].parse(cr[2]).toJSCode() + ';'].join('\\n'));\n  return ac;\n}, {});\nColor.regexes = {\n  whiteSpace: /\\s*/,\n  // Match zero or more whitespace characters.\n  integer: /(\\d{1,3})/,\n  // Match integers: 79, 255, etc.\n  decimal: /((?:\\d+(?:\\.\\d+)?)|(?:\\.\\d+))/,\n  // Match 129.6, 79, .9, etc.\n  percent: /((?:\\d+(?:\\.\\d+)?)|(?:\\.\\d+))%/,\n  // Match 12.9%, 79%, .9%, etc.\n  hex3: /^#([a-f0-9])([a-f0-9])([a-f0-9])$/i,\n  // Match colors in format #XXXX, e.g. #5123.\n  hex4: /^#([a-f0-9])([a-f0-9])([a-f0-9])([a-f0-9])$/i,\n  // Match colors in format #XXXXXX, e.g. #b4d455.\n  hex6: /^#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})$/i,\n  // Match colors in format #XXXXXXXX, e.g. #b4d45535.\n  hex8: /^#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})$/i\n};\nColor.regexes.percent = new RegExp(Color.regexes.decimal.source + '%');\nColor.regexes.rgb = new RegExp(['^rgb\\\\(', Color.regexes.integer.source, ',', Color.regexes.integer.source, ',', Color.regexes.integer.source, '\\\\)$'].join(Color.regexes.whiteSpace.source), 'i');\nColor.regexes.rgbPercent = new RegExp(['^rgb\\\\(', Color.regexes.percent.source, ',', Color.regexes.percent.source, ',', Color.regexes.percent.source, '\\\\)$'].join(Color.regexes.whiteSpace.source), 'i'); // Match colors in format rgb(R, G, B, A), e.g. rgb(255, 0, 128, 0.25).\n\nColor.regexes.rgba = new RegExp(['^rgba\\\\(', Color.regexes.integer.source, ',', Color.regexes.integer.source, ',', Color.regexes.integer.source, ',', Color.regexes.decimal.source, '\\\\)$'].join(Color.regexes.whiteSpace.source), 'i'); // Match colors in format rgb(R%, G%, B%, A), e.g. rgb(100%, 0%, 28.9%, 0.5).\n\nColor.regexes.rgbaPercent = new RegExp(['^rgba\\\\(', Color.regexes.percent.source, ',', Color.regexes.percent.source, ',', Color.regexes.percent.source, ',', Color.regexes.decimal.source, '\\\\)$'].join(Color.regexes.whiteSpace.source), 'i'); // Match colors in format hsla(H, S%, L%), e.g. hsl(100, 40%, 28.9%).\n\nColor.regexes.hsl = new RegExp(['^hsl\\\\(', Color.regexes.integer.source, '[deg]*', ',', Color.regexes.percent.source, ',', Color.regexes.percent.source, '\\\\)$'].join(Color.regexes.whiteSpace.source), 'i'); // Match colors in format hsla(H, S%, L%, A), e.g. hsla(100, 40%, 28.9%, 0.5).\n\nColor.regexes.hsla = new RegExp(['^hsla\\\\(', Color.regexes.integer.source, '[deg]*', ',', Color.regexes.percent.source, ',', Color.regexes.percent.source, ',', Color.regexes.decimal.source, '\\\\)$'].join(Color.regexes.whiteSpace.source), 'i'); // Match colors in format hsb(H, S%, B%), e.g. hsb(100, 40%, 28.9%).\n\nColor.regexes.hsb = new RegExp(['^hsb\\\\(', Color.regexes.integer.source, '[deg]*', ',', Color.regexes.percent.source, ',', Color.regexes.percent.source, '\\\\)$'].join(Color.regexes.whiteSpace.source), 'i'); // Match colors in format hsba(H, S%, B%, A), e.g. hsba(100, 40%, 28.9%, 0.5).\n\nColor.regexes.hsba = new RegExp(['^hsba\\\\(', Color.regexes.integer.source, '[deg]*', ',', Color.regexes.percent.source, ',', Color.regexes.percent.source, ',', Color.regexes.decimal.source, '\\\\)$'].join(Color.regexes.whiteSpace.source), 'i');\nColor.regexes.hwb = new RegExp(['^hwb\\\\(', Color.regexes.integer.source, '[deg]*', ',', Color.regexes.percent.source, ',', Color.regexes.percent.source, '\\\\)$'].join(Color.regexes.whiteSpace.source), 'i'); // Match colors in format hsba(H, S%, B%, A), e.g. hsba(100, 40%, 28.9%, 0.5).\n\nColor.regexes.hwba = new RegExp(['^hwba\\\\(', Color.regexes.integer.source, '[deg]*', ',', Color.regexes.percent.source, ',', Color.regexes.percent.source, ',', Color.regexes.decimal.source, '\\\\)$'].join(Color.regexes.whiteSpace.source), 'i');\nColor.regexes.cmyk = new RegExp(['^cmyk\\\\(', Color.regexes.percent.source, ',', Color.regexes.percent.source, ',', Color.regexes.percent.source, ',', Color.regexes.percent.source, '\\\\)$'].join(Color.regexes.whiteSpace.source), 'i');\n/***\r\n *\r\n * @param {number} code\r\n * @param {32|24|16|8} bits\r\n * @returns {Color}\r\n */\n\nColor.fromInt = function (code, bits) {\n  var r, g, b, a;\n\n  if (bits == 32) {\n    b = (code & 0xff) / 255;\n    g = ((code & 0xff00) >> 8) / 255;\n    r = ((code & 0xff0000) >> 16) / 255;\n    a = (code >> 24) / 255;\n  } else if (bits == 24) {\n    b = (code & 0xff) / 255;\n    g = ((code & 0xff00) >> 8) / 255;\n    r = ((code & 0xff0000) >> 16) / 255;\n    a = 1;\n  } else if (bits == 16) {\n    b = (code & 0x1f) / 0x1f;\n    g = ((code & 0x7e0) >> 5) / 0x3f;\n    b = (code >> 10) / 0x1f;\n    a = 1;\n  } else if (bits == 8) {\n    //gray-scale\n    b = (code & 0x3) / 0x3;\n    g = ((code & 0x1c) >> 2) / 0x7;\n    b = (code >> 5) / 0x7;\n    a = 1;\n  }\n\n  return new Color([r, g, b, a]);\n};\n/**\r\n *\r\n * @param {number} r\r\n * @param {number} g\r\n * @param {number} b\r\n * @returns {Color}\r\n */\n\n\nColor.fromRGB = function (r, g, b) {\n  return new Color([r, g, b, 1]);\n};\n/**\r\n *\r\n * @param {number} r\r\n * @param {number} g\r\n * @param {number} b\r\n * @param {number} a\r\n * @returns {Color}\r\n */\n\n\nColor.fromRGBA = function (r, g, b, a) {\n  return new Color([r, g, b, a]);\n};\n/***\r\n *\r\n * @param {number} h\r\n * @param {number} s\r\n * @param {number} l\r\n * @returns {Color}\r\n */\n\n\nColor.fromHSL = function (h, s, l) {\n  var rgba = this.hslaToRGBA([h, s, l, 1]);\n  return new Color(rgba);\n};\n/***\r\n *\r\n * @param {number} h\r\n * @param {number} s\r\n * @param {number} l\r\n * @param {number} a\r\n * @returns {Color}\r\n */\n\n\nColor.fromHSLA = function (h, s, l, a) {\n  var rgba = this.hslaToRGBA([h, s, l, a]);\n  return new Color(rgba);\n};\n/***\r\n *\r\n * @param {number} h\r\n * @param {number} s\r\n * @param {number} b\r\n * @returns {Color}\r\n */\n\n\nColor.fromHSB = function (h, s, b) {\n  var rgba = this.hsbaToRGBA([h, s, b, 1]);\n  return new Color(rgba);\n};\n/***\r\n *\r\n * @param {number} h\r\n * @param {number} s\r\n * @param {number} b\r\n * @param {number} a\r\n * @returns {Color}\r\n */\n\n\nColor.fromHSBA = function (h, s, b, a) {\n  var rgba = this.hsbaToRGBA([h, s, b, a]);\n  return new Color(rgba);\n};\n/***\r\n *\r\n * @param {number} h\r\n * @param {number} s\r\n * @param {number} b\r\n * @returns {Color}\r\n */\n\n\nColor.fromHWB = function (h, s, b) {\n  var rgba = this.hwbaToRGBA([h, s, b, 1]);\n  return new Color(rgba);\n};\n/***\r\n *\r\n * @param {number} h\r\n * @param {number} s\r\n * @param {number} b\r\n * @param {number} a\r\n * @returns {Color}\r\n */\n\n\nColor.fromHWBA = function (h, s, b, a) {\n  var rgba = this.hwbaToRGBA([h, s, b, a]);\n  return new Color(rgba);\n};\n\nColor.fromCMYK = function (c, m, y, k) {\n  var rgba = this.cmykToRGB([c, m, y, k]).concat([0]);\n  return new Color(rgba);\n};\n/**\r\n * @param {String} text\r\n * @returns {Color}\r\n */\n\n\nColor.parse = function (text) {\n  if (this.namedColors[text]) text = this.namedColors[text];\n  if (this.nonStandarNamedColors[text]) text = this.nonStandarNamedColors[text];\n\n  if (this.regexes.hex8.test(text)) {\n    return this.fromRGBA.apply(this, this.regexes.hex8.exec(text).slice(1).map(function (v) {\n      return parseInt(v, 16) / 255;\n    }));\n  } else if (this.regexes.hex6.test(text)) {\n    return this.fromRGB.apply(this, this.regexes.hex6.exec(text).slice(1).map(function (v) {\n      return parseInt(v, 16) / 255;\n    }));\n  } else if (this.regexes.hex4.test(text)) {\n    return this.fromRGBA.apply(this, this.regexes.hex4.exec(text).slice(1).map(function (v) {\n      return parseInt(v + v, 16) / 255;\n    }));\n  } else if (this.regexes.hex3.test(text)) {\n    return this.fromRGB.apply(this, this.regexes.hex3.exec(text).slice(1).map(function (v) {\n      return parseInt(v + v, 16) / 255;\n    }));\n  } else if (this.regexes.rgba.test(text)) {\n    return this.fromRGBA.apply(this, this.regexes.rgba.exec(text).slice(1).map(function (v, i) {\n      return i < 3 ? parseFloat(v) / 255 : parseFloat(v);\n    }));\n  } else if (this.regexes.rgb.test(text)) {\n    return this.fromRGB.apply(this, this.regexes.rgb.exec(text).slice(1).map(function (v, i) {\n      return parseFloat(v) / 255;\n    }));\n  } else if (this.regexes.rgbPercent.test(text)) {\n    return this.fromRGB.apply(this, this.regexes.rgbPercent.exec(text).slice(1).map(function (v, i) {\n      return parseFloat(v) / 100;\n    }));\n  } else if (this.regexes.rgbaPercent.test(text)) {\n    return this.fromRGBA.apply(this, this.regexes.rgbaPercent.exec(text).slice(1).map(function (v, i) {\n      return parseFloat(v) / (i < 3 ? 100 : 1);\n    }));\n  } else if (this.regexes.hsl.test(text)) {\n    return this.fromHSL.apply(this, this.regexes.hsl.exec(text).slice(1).map(function (v, i) {\n      return parseFloat(v) / (i == 0 ? 360 : 100);\n    }));\n  } else if (this.regexes.hsla.test(text)) {\n    return this.fromHSLA.apply(this, this.regexes.hsla.exec(text).slice(1).map(function (v, i) {\n      return parseFloat(v) / (i == 0 ? 360 : i < 3 ? 100 : 1);\n    }));\n  } else if (this.regexes.hsb.test(text)) {\n    return this.fromHSB.apply(this, this.regexes.hsb.exec(text).slice(1).map(function (v, i) {\n      return parseFloat(v) / (i == 0 ? 360 : 100);\n    }));\n  } else if (this.regexes.hsba.test(text)) {\n    return this.fromHSBA.apply(this, this.regexes.hsba.exec(text).slice(1).map(function (v, i) {\n      return parseFloat(v) / (i == 0 ? 360 : i < 3 ? 100 : 1);\n    }));\n  } else if (this.regexes.hwb.test(text)) {\n    return this.fromHWB.apply(this, this.regexes.hwb.exec(text).slice(1).map(function (v, i) {\n      return parseFloat(v) / (i == 0 ? 360 : 100);\n    }));\n  } else if (this.regexes.hwba.test(text)) {\n    return this.fromHWBA.apply(this, this.regexes.hwba.exec(text).slice(1).map(function (v, i) {\n      return parseFloat(v) / (i == 0 ? 360 : i < 3 ? 100 : 1);\n    }));\n  } else if (this.regexes.cmyk.test(text)) {\n    return this.fromCMYK.apply(this, this.regexes.cmyk.exec(text).slice(1).map(function (v, i) {\n      return parseFloat(v) / 100;\n    }));\n  } else {\n    throw new Error(\"Fail to parse \" + text);\n  }\n};\n/***\r\n * @typedef {\"aliceblue\"|\"antiquewhite\"|\"aqua\"|\"aquamarine\"|\"azure\"|\"beige\"|\"bisque\"|\"black\"|\"blanchedalmond\"|\"blue\"|\"blueviolet\"|\"brown\"|\"burlywood\"|\"cadetblue\"|\"chartreuse\"|\"chocolate\"|\"coral\"|\"cornflowerblue\"|\"cornsilk\"|\"crimson\"|\"cyan\"|\"darkblue\"|\"darkcyan\"|\"darkgoldenrod\"|\"darkgray\"|\"darkgreen\"|\"darkgrey\"|\"darkkhaki\"|\"darkmagenta\"|\"darkolivegreen\"|\"darkorange\"|\"darkorchid\"|\"darkred\"|\"darksalmon\"|\"darkseagreen\"|\"darkslateblue\"|\"darkslategray\"|\"darkslategrey\"|\"darkturquoise\"|\"darkviolet\"|\"deeppink\"|\"deepskyblue\"|\"dimgray\"|\"dimgrey\"|\"dodgerblue\"|\"firebrick\"|\"floralwhite\"|\"forestgreen\"|\"fuchsia\"|\"gainsboro\"|\"ghostwhite\"|\"gold\"|\"goldenrod\"|\"gray\"|\"green\"|\"greenyellow\"|\"grey\"|\"honeydew\"|\"hotpink\"|\"indianred\"|\"indigo\"|\"ivory\"|\"khaki\"|\"lavender\"|\"lavenderblush\"|\"lawngreen\"|\"lemonchiffon\"|\"lightblue\"|\"lightcoral\"|\"lightcyan\"|\"lightgoldenrodyellow\"|\"lightgray\"|\"lightgreen\"|\"lightgrey\"|\"lightpink\"|\"lightsalmon\"|\"lightseagreen\"|\"lightskyblue\"|\"lightslategray\"|\"lightslategrey\"|\"lightsteelblue\"|\"lightyellow\"|\"lime\"|\"limegreen\"|\"linen\"|\"magenta\"|\"maroon\"|\"mediumaquamarine\"|\"mediumblue\"|\"mediumorchid\"|\"mediumpurple\"|\"mediumseagreen\"|\"mediumslateblue\"|\"mediumspringgreen\"|\"mediumturquoise\"|\"mediumvioletred\"|\"midnightblue\"|\"mintcream\"|\"mistyrose\"|\"moccasin\"|\"navajowhite\"|\"navy\"|\"oldlace\"|\"olive\"|\"olivedrab\"|\"orange\"|\"orangered\"|\"orchid\"|\"palegoldenrod\"|\"palegreen\"|\"paleturquoise\"|\"palevioletred\"|\"papayawhip\"|\"peachpuff\"|\"peru\"|\"pink\"|\"plum\"|\"powderblue\"|\"purple\"|\"red\"|\"rosybrown\"|\"royalblue\"|\"saddlebrown\"|\"salmon\"|\"sandybrown\"|\"seagreen\"|\"seashell\"|\"sienna\"|\"silver\"|\"skyblue\"|\"slateblue\"|\"slategray\"|\"slategrey\"|\"snow\"|\"springgreen\"|\"steelblue\"|\"tan\"|\"teal\"|\"thistle\"|\"tomato\"|\"turquoise\"|\"violet\"|\"wheat\"|\"white\"|\"whitesmoke\"|\"yellow\"|\"yellowgreen\"|\"transparent\"} NamedColor\r\n */\n\n\nColor.namedColors = {\n  aliceblue: '#f0f8ff',\n  antiquewhite: '#faebd7',\n  aqua: '#00ffff',\n  aquamarine: '#7fffd4',\n  azure: '#f0ffff',\n  beige: '#f5f5dc',\n  bisque: '#ffe4c4',\n  black: '#000000',\n  blanchedalmond: '#ffebcd',\n  blue: '#0000ff',\n  blueviolet: '#8a2be2',\n  brown: '#a52a2a',\n  burlywood: '#deb887',\n  cadetblue: '#5f9ea0',\n  chartreuse: '#7fff00',\n  chocolate: '#d2691e',\n  coral: '#ff7f50',\n  cornflowerblue: '#6495ed',\n  cornsilk: '#fff8dc',\n  crimson: '#dc143c',\n  cyan: '#00ffff',\n  darkblue: '#00008b',\n  darkcyan: '#008b8b',\n  darkgoldenrod: '#b8860b',\n  darkgray: '#a9a9a9',\n  darkgreen: '#006400',\n  darkgrey: '#a9a9a9',\n  darkkhaki: '#bdb76b',\n  darkmagenta: '#8b008b',\n  darkolivegreen: '#556b2f',\n  darkorange: '#ff8c00',\n  darkorchid: '#9932cc',\n  darkred: '#8b0000',\n  darksalmon: '#e9967a',\n  darkseagreen: '#8fbc8f',\n  darkslateblue: '#483d8b',\n  darkslategray: '#2f4f4f',\n  darkslategrey: '#2f4f4f',\n  darkturquoise: '#00ced1',\n  darkviolet: '#9400d3',\n  deeppink: '#ff1493',\n  deepskyblue: '#00bfff',\n  dimgray: '#696969',\n  dimgrey: '#696969',\n  dodgerblue: '#1e90ff',\n  firebrick: '#b22222',\n  floralwhite: '#fffaf0',\n  forestgreen: '#228b22',\n  fuchsia: '#ff00ff',\n  gainsboro: '#dcdcdc',\n  ghostwhite: '#f8f8ff',\n  gold: '#ffd700',\n  goldenrod: '#daa520',\n  gray: '#808080',\n  green: '#008000',\n  greenyellow: '#adff2f',\n  grey: '#808080',\n  honeydew: '#f0fff0',\n  hotpink: '#ff69b4',\n  indianred: '#cd5c5c',\n  indigo: '#4b0082',\n  ivory: '#fffff0',\n  khaki: '#f0e68c',\n  lavender: '#e6e6fa',\n  lavenderblush: '#fff0f5',\n  lawngreen: '#7cfc00',\n  lemonchiffon: '#fffacd',\n  lightblue: '#add8e6',\n  lightcoral: '#f08080',\n  lightcyan: '#e0ffff',\n  lightgoldenrodyellow: '#fafad2',\n  lightgray: '#d3d3d3',\n  lightgreen: '#90ee90',\n  lightgrey: '#d3d3d3',\n  lightpink: '#ffb6c1',\n  lightsalmon: '#ffa07a',\n  lightseagreen: '#20b2aa',\n  lightskyblue: '#87cefa',\n  lightslategray: '#778899',\n  lightslategrey: '#778899',\n  lightsteelblue: '#b0c4de',\n  lightyellow: '#ffffe0',\n  lime: '#00ff00',\n  limegreen: '#32cd32',\n  linen: '#faf0e6',\n  magenta: '#ff00ff',\n  maroon: '#800000',\n  mediumaquamarine: '#66cdaa',\n  mediumblue: '#0000cd',\n  mediumorchid: '#ba55d3',\n  mediumpurple: '#9370db',\n  mediumseagreen: '#3cb371',\n  mediumslateblue: '#7b68ee',\n  mediumspringgreen: '#00fa9a',\n  mediumturquoise: '#48d1cc',\n  mediumvioletred: '#c71585',\n  midnightblue: '#191970',\n  mintcream: '#f5fffa',\n  mistyrose: '#ffe4e1',\n  moccasin: '#ffe4b5',\n  navajowhite: '#ffdead',\n  navy: '#000080',\n  oldlace: '#fdf5e6',\n  olive: '#808000',\n  olivedrab: '#6b8e23',\n  orange: '#ffa500',\n  orangered: '#ff4500',\n  orchid: '#da70d6',\n  palegoldenrod: '#eee8aa',\n  palegreen: '#98fb98',\n  paleturquoise: '#afeeee',\n  palevioletred: '#db7093',\n  papayawhip: '#ffefd5',\n  peachpuff: '#ffdab9',\n  peru: '#cd853f',\n  pink: '#ffc0cb',\n  plum: '#dda0dd',\n  powderblue: '#b0e0e6',\n  purple: '#800080',\n  red: '#ff0000',\n  rosybrown: '#bc8f8f',\n  royalblue: '#4169e1',\n  saddlebrown: '#8b4513',\n  salmon: '#fa8072',\n  sandybrown: '#f4a460',\n  seagreen: '#2e8b57',\n  seashell: '#fff5ee',\n  sienna: '#a0522d',\n  silver: '#c0c0c0',\n  skyblue: '#87ceeb',\n  slateblue: '#6a5acd',\n  slategray: '#708090',\n  slategrey: '#708090',\n  snow: '#fffafa',\n  springgreen: '#00ff7f',\n  steelblue: '#4682b4',\n  tan: '#d2b48c',\n  teal: '#008080',\n  thistle: '#d8bfd8',\n  tomato: '#ff6347',\n  turquoise: '#40e0d0',\n  violet: '#ee82ee',\n  wheat: '#f5deb3',\n  white: '#ffffff',\n  whitesmoke: '#f5f5f5',\n  yellow: '#ffff00',\n  yellowgreen: '#9acd32',\n  transparent: '#00000000'\n};\nColor.nonStandarNamedColors = {\n  night: '#0C090A',\n  gunmetal: '#2C3539',\n  midnight: '#2B1B17',\n  charcoal: '#34282C',\n  oil: '#3B3131',\n  blackcat: '#413839',\n  iridium: '#3D3C3A',\n  blackeel: '#463E3F',\n  blackcow: '#4C4646',\n  graywolf: '#504A4B',\n  vampiregray: '#565051',\n  graydolphin: '#5C5858',\n  carbongray: '#625D5D',\n  ashgray: '#666362',\n  cloudygray: '#6D6968',\n  smokeygray: '#726E6D',\n  granite: '#837E7C',\n  battleshipgray: '#848482',\n  graycloud: '#B6B6B4',\n  graygoose: '#D1D0CE',\n  platinum: '#E5E4E2',\n  metallicsilver: '#BCC6CC',\n  bluegray: '#98AFC7',\n  raven: '#657383',\n  jetgray: '#616D7E',\n  mistblue: '#646D7E',\n  marbleblue: '#566D7E',\n  shipcove: '#737CA1',\n  mariner: '#4863A0',\n  bluejay: '#2B547E',\n  biscay: '#2B3856',\n  navyblue: '#000080',\n  bluewhale: '#342D7E',\n  lapisblue: '#15317E',\n  denimdarkblue: '#151B8D',\n  earthblue: '#0000A0',\n  cobaltblue: '#0020C2',\n  blueberryblue: '#0041C2',\n  sapphireblue: '#2554C7',\n  blueeyes: '#1569C7',\n  blueorchid: '#1F45FC',\n  bluelotus: '#6960EC',\n  lightslateblue: '#736AFF',\n  windowsblue: '#357EC7',\n  glacialblueice: '#368BC1',\n  silkblue: '#488AC7',\n  blueivy: '#3090C7',\n  bluekoi: '#659EC7',\n  columbiablue: '#87AFC7',\n  babyblue: '#95B9C7',\n  oceanblue: '#2B65EC',\n  blueribbon: '#306EFF',\n  bluedress: '#157DEC',\n  butterflyblue: '#38ACEC',\n  iceberg: '#56A5EC',\n  crystalblue: '#5CB3FF',\n  denimblue: '#79BAEC',\n  dayskyblue: '#82CAFF',\n  jeansblue: '#A0CFEC',\n  blueangel: '#B7CEEC',\n  pastelblue: '#B4CFEC',\n  seablue: '#C2DFFF',\n  coralblue: '#AFDCEC',\n  robineggblue: '#BDEDFF',\n  palebluelily: '#CFECEC',\n  water: '#EBF4FA',\n  lightslate: '#CCFFFF',\n  lightaquamarine: '#93FFE8',\n  electricblue: '#9AFEFF',\n  cyanoraqua: '#00FFFF',\n  tronblue: '#7DFDFE',\n  bluezircon: '#57FEFF',\n  bluelagoon: '#8EEBEC',\n  celeste: '#50EBEC',\n  bluediamond: '#4EE2EC',\n  tiffanyblue: '#81D8D0',\n  cyanopaque: '#92C7C7',\n  bluehosta: '#77BFC7',\n  northernlightsblue: '#78C7C7',\n  jellyfish: '#46C7C7',\n  bluegreen: '#7BCCB5',\n  macawbluegreen: '#43BFC7',\n  seaturtlegreen: '#438D80',\n  greenishblue: '#307D7E',\n  grayishturquoise: '#5E7D7E',\n  beetlegreen: '#4C787E',\n  camouflagegreen: '#78866B',\n  sagegreen: '#848b79',\n  hazelgreen: '#617C58',\n  venomgreen: '#728C00',\n  ferngreen: '#667C26',\n  darkforestgreen: '#254117',\n  mediumforestgreen: '#347235',\n  seaweedgreen: '#437C17',\n  pinegreen: '#387C44',\n  junglegreen: '#347C2C',\n  shamrockgreen: '#347C17',\n  greenonion: '#6AA121',\n  clovergreen: '#3EA055',\n  greensnake: '#6CBB3C',\n  aliengreen: '#6CC417',\n  greenapple: '#4CC417',\n  kellygreen: '#4CC552',\n  zombiegreen: '#54C571',\n  froggreen: '#99C68E',\n  greenpeas: '#89C35C',\n  dollarbillgreen: '#85BB65',\n  iguanagreen: '#9CB071',\n  avocadogreen: '#B2C248',\n  pistachiogreen: '#9DC209',\n  saladgreen: '#A1C935',\n  hummingbirdgreen: '#7FE817',\n  nebulagreen: '#59E817',\n  stoplightgogreen: '#57E964',\n  algaegreen: '#64E986',\n  jadegreen: '#5EFB6E',\n  emeraldgreen: '#5FFB17',\n  dragongreen: '#6AFB92',\n  mintgreen: '#98FF98',\n  greenthumb: '#B5EAAA',\n  lightjade: '#C3FDB8',\n  teagreen: '#CCFB5D',\n  slimegreen: '#BCE954',\n  harvestgold: '#EDE275',\n  sunyellow: '#FFE87C',\n  cornyellow: '#FFF380',\n  parchment: '#FFFFC2',\n  cream: '#FFFFCC',\n  blonde: '#FBF6D9',\n  champagne: '#F7E7CE',\n  vanilla: '#F3E5AB',\n  tanbrown: '#ECE5B6',\n  peach: '#FFE5B4',\n  mustard: '#FFDB58',\n  rubberduckyyellow: '#FFD801',\n  brightgold: '#FDD017',\n  goldenbrown: '#EAC117',\n  macaroniandcheese: '#F2BB66',\n  saffron: '#FBB917',\n  beer: '#FBB117',\n  cantaloupe: '#FFA62F',\n  beeyellow: '#E9AB17',\n  brownsugar: '#E2A76F',\n  deeppeach: '#FFCBA4',\n  gingerbrown: '#C9BE62',\n  schoolbusyellow: '#E8A317',\n  fallleafbrown: '#C8B560',\n  orangegold: '#D4A017',\n  sand: '#C2B280',\n  cookiebrown: '#C7A317',\n  caramel: '#C68E17',\n  brass: '#B5A642',\n  camelbrown: '#C19A6B',\n  bronze: '#CD7F32',\n  tigerorange: '#C88141',\n  cinnamon: '#C58917',\n  bulletshell: '#AF9B60',\n  copper: '#B87333',\n  wood: '#966F33',\n  oakbrown: '#806517',\n  armybrown: '#827B60',\n  sandstone: '#786D5F',\n  mocha: '#493D26',\n  taupe: '#483C32',\n  coffee: '#6F4E37',\n  brownbear: '#835C3B',\n  reddirt: '#7F5217',\n  sepia: '#7F462C',\n  orangesalmon: '#C47451',\n  rust: '#C36241',\n  redfox: '#C35817',\n  sedona: '#CC6600',\n  papayaorange: '#E56717',\n  halloweenorange: '#E66C2C',\n  pumpkinorange: '#F87217',\n  constructionconeorange: '#F87431',\n  sunriseorange: '#E67451',\n  mangoorange: '#FF8040',\n  basketballorange: '#F88158',\n  tangerine: '#E78A61',\n  beanred: '#F75D59',\n  valentinered: '#E55451',\n  shockingorange: '#E55B3C',\n  scarlet: '#FF2400',\n  rubyred: '#F62217',\n  ferrarired: '#F70D1A',\n  fireenginered: '#F62817',\n  lavared: '#E42217',\n  lovered: '#E41B17',\n  grapefruit: '#DC381F',\n  chestnutred: '#C34A2C',\n  cherryred: '#C24641',\n  mahogany: '#C04000',\n  chillipepper: '#C11B17',\n  cranberry: '#9F000F',\n  redwine: '#990012',\n  burgundy: '#8C001A',\n  chestnut: '#954535',\n  bloodred: '#7E3517',\n  sangria: '#7E3817',\n  plumpie: '#7D0541',\n  velvetmaroon: '#7E354D',\n  plumvelvet: '#7D0552',\n  rosyfinch: '#7F4E52',\n  puce: '#7F5A58',\n  dullpurple: '#7F525D',\n  khakirose: '#C5908E',\n  pinkbow: '#C48189',\n  lipstickpink: '#C48793',\n  rose: '#E8ADAA',\n  rosegold: '#ECC5C0',\n  desertsand: '#EDC9AF',\n  pigpink: '#FDD7E4',\n  cottoncandy: '#FCDFFF',\n  pinkbubblegum: '#FFDFDD',\n  flamingopink: '#F9A7B0',\n  pinkrose: '#E7A1B0',\n  pinkdaisy: '#E799A3',\n  cadillacpink: '#E38AAE',\n  carnationpink: '#F778A1',\n  blushred: '#E56E94',\n  watermelonpink: '#FC6C85',\n  violetred: '#F6358A',\n  pinkcupcake: '#E45E9D',\n  pinklemonade: '#E4287C',\n  neonpink: '#F535AA',\n  dimorphothecamagenta: '#E3319D',\n  brightneonpink: '#F433FF',\n  tulippink: '#C25A7C',\n  roguepink: '#C12869',\n  burntpink: '#C12267',\n  bashfulpink: '#C25283',\n  darkcarnationpink: '#C12283',\n  violapurple: '#7E587E',\n  purpleiris: '#571B7E',\n  plumpurple: '#583759',\n  purplemonster: '#461B7E',\n  purplehaze: '#4E387E',\n  eggplant: '#614051',\n  grape: '#5E5A80',\n  purplejam: '#6A287E',\n  purpleflower: '#A74AC7',\n  purpleamethyst: '#6C2DC7',\n  purplesagebush: '#7A5DC7',\n  lovelypurple: '#7F38EC',\n  aztechpurple: '#893BFF',\n  jasminepurple: '#A23BEC',\n  purpledaffodil: '#B041FF',\n  tyrianpurple: '#C45AEC',\n  crocuspurple: '#9172EC',\n  purplemimosa: '#9E7BFF',\n  heliotropepurple: '#D462FF',\n  purpledragon: '#C38EC7',\n  lilac: '#C8A2C8',\n  blushpink: '#E6A9EC',\n  mauve: '#E0B0FF',\n  wisteriapurple: '#C6AEC7',\n  blossompink: '#F9B7FF',\n  periwinkle: '#E9CFEC',\n  lavenderpinocchio: '#EBDDE2',\n  lavenderblue: '#E3E4FA',\n  pearl: '#FDEEF4',\n  milkwhite: '#FEFCFF'\n};\n/********************** COLOR CONVERTER *******************/\n\nColor.rgbToHex = function (rgb) {\n  return '#' + rgb.slice(0, 3).map(function (c) {\n    var res = (c * 255 >> 0).toString(16);\n    if (res < 10) res = '0' + res;\n    return res.toUpperCase();\n  }).join('');\n};\n\nColor.rgbaToHex = function (rgb) {\n  return '#' + rgb.map(function (c) {\n    var res = (c * 255 >> 0).toString(16);\n    if (res < 10) res = '0' + res;\n    return res.toUpperCase();\n  }).join('');\n};\n\nColor.hsbaToText = function (hsba) {\n  return 'hsba(' + (hsba[0] * 360 >> 0) + 'deg, ' + (hsba[1] * 100 >> 0) + '%, ' + (hsba[2] * 100 >> 0) + '%, ' + hsba[3].toFixed(3) + ')';\n};\n\nColor.hslaToText = function (hsla) {\n  return 'hsla(' + (hsla[0] * 360 >> 0) + 'deg, ' + (hsla[1] * 100 >> 0) + '%, ' + (hsla[2] * 100 >> 0) + '%, ' + hsla[3].toFixed(3) + ')';\n};\n\nColor.rgbaToText = function (rgba) {\n  return 'rgba(' + (rgba[0] * 255 >> 0) + ', ' + (rgba[1] * 255 >> 0) + ', ' + (rgba[2] * 255 >> 0) + ', ' + rgba[3].toFixed(3) + ')';\n};\n\nColor.hsbToText = function (hsba) {\n  return 'hsb(' + (hsba[0] * 360 >> 0) + 'deg, ' + (hsba[1] * 100 >> 0) + '%, ' + (hsba[2] * 100 >> 0) + '%)';\n};\n\nColor.hslToText = function (hsl) {\n  return 'hsl(' + (hsl[0] * 360 >> 0) + 'deg, ' + (hsl[1] * 100 >> 0) + '%, ' + (hsl[2] * 100 >> 0) + '%)';\n};\n\nColor.rgbToText = function (rgba) {\n  return 'rgb(' + (rgba[0] * 255 >> 0) + ', ' + (rgba[1] * 255 >> 0) + ', ' + (rgba[2] * 255 >> 0) + ')';\n};\n\nColor.cmykToText = function (cmyk) {\n  return 'cmyk(' + cmyk.map(function (x) {\n    return x * 100 + '%';\n  }).join(', ') + ')';\n};\n\nColor.hsbaToHSLA = function (hsba) {\n  var hue = hsba[0];\n  var sat = hsba[1];\n  var val = hsba[2]; // Calculate lightness.\n\n  var li = (2 - sat) * val / 2; // Convert saturation.\n\n  if (li !== 0) {\n    if (li === 1) {\n      sat = 0;\n    } else if (li < 0.5) {\n      sat = sat / (2 - sat);\n    } else {\n      sat = sat * val / (2 - li * 2);\n    }\n  } // Hue and alpha stay the same.\n\n\n  return [hue, sat, li, hsba[3]];\n};\n\nColor.hsbaToRGBA = function (hsba) {\n  var hue = hsba[0] * 6; // We will split hue into 6 sectors.\n\n  var sat = hsba[1];\n  var val = hsba[2];\n  var RGBA = [];\n\n  if (sat === 0) {\n    RGBA = [val, val, val, hsba[3]]; // Return early if grayscale.\n  } else {\n    var sector = Math.floor(hue);\n    var tint1 = val * (1 - sat);\n    var tint2 = val * (1 - sat * (hue - sector));\n    var tint3 = val * (1 - sat * (1 + sector - hue));\n    var red, green, blue;\n\n    if (sector === 1) {\n      // Yellow to green.\n      red = tint2;\n      green = val;\n      blue = tint1;\n    } else if (sector === 2) {\n      // Green to cyan.\n      red = tint1;\n      green = val;\n      blue = tint3;\n    } else if (sector === 3) {\n      // Cyan to blue.\n      red = tint1;\n      green = tint2;\n      blue = val;\n    } else if (sector === 4) {\n      // Blue to magenta.\n      red = tint3;\n      green = tint1;\n      blue = val;\n    } else if (sector === 5) {\n      // Magenta to red.\n      red = val;\n      green = tint1;\n      blue = tint2;\n    } else {\n      // Red to yellow (sector could be 0 or 6).\n      red = val;\n      green = tint3;\n      blue = tint1;\n    }\n\n    RGBA = [red, green, blue, hsba[3]];\n  }\n\n  return RGBA;\n};\n\nColor.hslaToHSBA = function (hsla) {\n  var hue = hsla[0];\n  var sat = hsla[1];\n  var li = hsla[2]; // Calculate brightness.\n\n  var val;\n\n  if (li < 0.5) {\n    val = (1 + sat) * li;\n  } else {\n    val = li + sat - li * sat;\n  } // Convert saturation.\n\n\n  sat = 2 * (val - li) / val; // Hue and alpha stay the same.\n\n  return [hue, sat, val, hsla[3]];\n};\n\nColor.hslaToRGBA = function (hsla) {\n  var hue = hsla[0] * 6; // We will split hue into 6 sectors.\n\n  var sat = hsla[1];\n  var li = hsla[2];\n  var RGBA = [];\n\n  if (sat === 0) {\n    RGBA = [li, li, li, hsla[3]]; // Return early if grayscale.\n  } else {\n    // Calculate brightness.\n    var val;\n\n    if (li < 0.5) {\n      val = (1 + sat) * li;\n    } else {\n      val = li + sat - li * sat;\n    } // Define zest.\n\n\n    var zest = 2 * li - val; // Implement projection (project onto green by default).\n\n    var hzvToRGB = function hzvToRGB(hue, zest, val) {\n      if (hue < 0) {\n        // Hue must wrap to allow projection onto red and blue.\n        hue += 6;\n      } else if (hue >= 6) {\n        hue -= 6;\n      }\n\n      if (hue < 1) {\n        // Red to yellow (increasing green).\n        return zest + (val - zest) * hue;\n      } else if (hue < 3) {\n        // Yellow to cyan (greatest green).\n        return val;\n      } else if (hue < 4) {\n        // Cyan to blue (decreasing green).\n        return zest + (val - zest) * (4 - hue);\n      } else {\n        // Blue to red (least green).\n        return zest;\n      }\n    }; // Perform projections, offsetting hue as necessary.\n\n\n    RGBA = [hzvToRGB(hue + 2, zest, val), hzvToRGB(hue, zest, val), hzvToRGB(hue - 2, zest, val), hsla[3]];\n  }\n\n  return RGBA;\n};\n\nColor.rgbaToHSBA = function (rgba) {\n  var red = rgba[0];\n  var green = rgba[1];\n  var blue = rgba[2];\n  var val = Math.max(red, green, blue);\n  var chroma = val - Math.min(red, green, blue);\n  var hue, sat;\n\n  if (chroma === 0) {\n    // Return early if grayscale.\n    hue = 0;\n    sat = 0;\n  } else {\n    sat = chroma / val;\n\n    if (red === val) {\n      // Magenta to yellow.\n      hue = (green - blue) / chroma;\n    } else if (green === val) {\n      // Yellow to cyan.\n      hue = 2 + (blue - red) / chroma;\n    } else if (blue === val) {\n      // Cyan to magenta.\n      hue = 4 + (red - green) / chroma;\n    }\n\n    if (hue < 0) {\n      // Confine hue to the interval [0, 1).\n      hue += 6;\n    } else if (hue >= 6) {\n      hue -= 6;\n    }\n  }\n\n  return [hue / 6, sat, val, rgba[3]];\n};\n\nColor.rgbaToHSLA = function (rgba) {\n  var red = rgba[0];\n  var green = rgba[1];\n  var blue = rgba[2];\n  var val = Math.max(red, green, blue);\n  var min = Math.min(red, green, blue);\n  var li = val + min; // We will halve this later.\n\n  var chroma = val - min;\n  var hue, sat;\n\n  if (chroma === 0) {\n    // Return early if grayscale.\n    hue = 0;\n    sat = 0;\n  } else {\n    if (li < 1) {\n      sat = chroma / li;\n    } else {\n      sat = chroma / (2 - li);\n    }\n\n    if (red === val) {\n      // Magenta to yellow.\n      hue = (green - blue) / chroma;\n    } else if (green === val) {\n      // Yellow to cyan.\n      hue = 2 + (blue - red) / chroma;\n    } else if (blue === val) {\n      // Cyan to magenta.\n      hue = 4 + (red - green) / chroma;\n    }\n\n    if (hue < 0) {\n      // Confine hue to the interval [0, 1).\n      hue += 6;\n    } else if (hue >= 6) {\n      hue -= 6;\n    }\n  }\n\n  return [hue / 6, sat, li / 2, rgba[3]];\n};\n\nColor.hwbaToHSBA = function (hwba) {\n  return [hwba[0], 1 - hwba[1] / (1 - hwba[2]), 1 - hwba[2], hwba[3]];\n};\n\nColor.hsbaToHWBA = function (hsla) {\n  return [hsla[0], (1 - hsla[1]) * hsla[2], 1 - hsla[2], hsla[3]];\n};\n\nColor.rgbaToHWBA = function (rgba) {\n  return this.hsbaToHWBA(this.rgbaToHSBA(rgba));\n};\n\nColor.hwbaToRGBA = function (hwba) {\n  return this.hsbaToRGBA(this.hwbaToHSBA(hwba));\n};\n\nColor.cmykToRGB = function (cmyk) {\n  var c = cmyk[0];\n  var m = cmyk[1];\n  var y = cmyk[2];\n  var k = cmyk[3];\n  c = c * (1 - k) + k;\n  m = m * (1 - k) + k;\n  y = y * (1 - k) + k;\n  var r = 1 - c;\n  var g = 1 - m;\n  var b = 1 - y;\n  return [r, g, b];\n};\n\nColor.rgbToCMYK = function (rgb) {\n  var r = rgb[0];\n  var g = rgb[1];\n  var b = rgb[2];\n  var c = 1 - r;\n  var m = 1 - g;\n  var y = 1 - b;\n  var k = Math.min(c, Math.min(m, y));\n  c = (c - k) / (1 - k);\n  m = (m - k) / (1 - k);\n  y = (y - k) / (1 - k);\n  c = isNaN(c) ? 0 : c;\n  m = isNaN(m) ? 0 : m;\n  y = isNaN(y) ? 0 : y;\n  k = isNaN(k) ? 0 : k;\n  return [c, m, y, k];\n};\n\nvar _default = Color;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Color/Color.js?");

/***/ }),

/***/ "./node_modules/absol/src/Converter/QRCode.js":
/*!****************************************************!*\
  !*** ./node_modules/absol/src/Converter/QRCode.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nfunction QR8bitByte(data) {\n  this.mode = QRMode.MODE_8BIT_BYTE;\n  this.data = data;\n  this.parsedData = []; // Added to support UTF-8 Characters\n\n  for (var i = 0, l = this.data.length; i < l; i++) {\n    var byteArray = [];\n    var code = this.data.charCodeAt(i);\n\n    if (code > 0x10000) {\n      byteArray[0] = 0xF0 | (code & 0x1C0000) >>> 18;\n      byteArray[1] = 0x80 | (code & 0x3F000) >>> 12;\n      byteArray[2] = 0x80 | (code & 0xFC0) >>> 6;\n      byteArray[3] = 0x80 | code & 0x3F;\n    } else if (code > 0x800) {\n      byteArray[0] = 0xE0 | (code & 0xF000) >>> 12;\n      byteArray[1] = 0x80 | (code & 0xFC0) >>> 6;\n      byteArray[2] = 0x80 | code & 0x3F;\n    } else if (code > 0x80) {\n      byteArray[0] = 0xC0 | (code & 0x7C0) >>> 6;\n      byteArray[1] = 0x80 | code & 0x3F;\n    } else {\n      byteArray[0] = code;\n    }\n\n    this.parsedData.push(byteArray);\n  }\n\n  this.parsedData = Array.prototype.concat.apply([], this.parsedData);\n\n  if (this.parsedData.length !== this.data.length) {\n    this.parsedData.unshift(191);\n    this.parsedData.unshift(187);\n    this.parsedData.unshift(239);\n  }\n}\n\nQR8bitByte.prototype.getLength = function () {\n  return this.parsedData.length;\n};\n\nQR8bitByte.prototype.write = function (buffer) {\n  for (var i = 0, l = this.parsedData.length; i < l; i++) {\n    buffer.put(this.parsedData[i], 8);\n  }\n};\n\nfunction QRCodeModel(typeNumber, errorCorrectLevel) {\n  this.typeNumber = typeNumber;\n  this.errorCorrectLevel = errorCorrectLevel;\n  this.modules = null;\n  this.moduleCount = 0;\n  this.dataCache = null;\n  this.dataList = [];\n}\n\nQRCodeModel.prototype.addData = function (data) {\n  var newData = new QR8bitByte(data);\n  this.dataList.push(newData);\n  this.dataCache = null;\n};\n\nQRCodeModel.prototype.isDark = function (row, col) {\n  if (row < 0 || this.moduleCount <= row || col < 0 || this.moduleCount <= col) {\n    throw new Error(row + \",\" + col);\n  }\n\n  return this.modules[row][col];\n};\n\nQRCodeModel.prototype.getModuleCount = function () {\n  return this.moduleCount;\n};\n\nQRCodeModel.prototype.make = function () {\n  this.makeImpl(false, this.getBestMaskPattern());\n};\n\nQRCodeModel.prototype.makeImpl = function (test, maskPattern) {\n  this.moduleCount = this.typeNumber * 4 + 17;\n  this.modules = new Array(this.moduleCount);\n\n  for (var row = 0; row < this.moduleCount; row++) {\n    this.modules[row] = new Array(this.moduleCount);\n\n    for (var col = 0; col < this.moduleCount; col++) {\n      this.modules[row][col] = null;\n    }\n  }\n\n  this.setupPositionProbePattern(0, 0);\n  this.setupPositionProbePattern(this.moduleCount - 7, 0);\n  this.setupPositionProbePattern(0, this.moduleCount - 7);\n  this.setupPositionAdjustPattern();\n  this.setupTimingPattern();\n  this.setupTypeInfo(test, maskPattern);\n\n  if (this.typeNumber >= 7) {\n    this.setupTypeNumber(test);\n  }\n\n  if (this.dataCache == null) {\n    this.dataCache = QRCodeModel.createData(this.typeNumber, this.errorCorrectLevel, this.dataList);\n  }\n\n  this.mapData(this.dataCache, maskPattern);\n};\n\nQRCodeModel.prototype.setupPositionProbePattern = function (row, col) {\n  for (var r = -1; r <= 7; r++) {\n    if (row + r <= -1 || this.moduleCount <= row + r) continue;\n\n    for (var c = -1; c <= 7; c++) {\n      if (col + c <= -1 || this.moduleCount <= col + c) continue;\n\n      if (0 <= r && r <= 6 && (c == 0 || c == 6) || 0 <= c && c <= 6 && (r == 0 || r == 6) || 2 <= r && r <= 4 && 2 <= c && c <= 4) {\n        this.modules[row + r][col + c] = true;\n      } else {\n        this.modules[row + r][col + c] = false;\n      }\n    }\n  }\n};\n\nQRCodeModel.prototype.getBestMaskPattern = function () {\n  var minLostPoint = 0;\n  var pattern = 0;\n\n  for (var i = 0; i < 8; i++) {\n    this.makeImpl(true, i);\n    var lostPoint = QRUtil.getLostPoint(this);\n\n    if (i == 0 || minLostPoint > lostPoint) {\n      minLostPoint = lostPoint;\n      pattern = i;\n    }\n  }\n\n  return pattern;\n};\n\nQRCodeModel.prototype.setupTimingPattern = function () {\n  for (var r = 8; r < this.moduleCount - 8; r++) {\n    if (this.modules[r][6] != null) {\n      continue;\n    }\n\n    this.modules[r][6] = r % 2 == 0;\n  }\n\n  for (var c = 8; c < this.moduleCount - 8; c++) {\n    if (this.modules[6][c] != null) {\n      continue;\n    }\n\n    this.modules[6][c] = c % 2 == 0;\n  }\n};\n\nQRCodeModel.prototype.setupPositionAdjustPattern = function () {\n  var pos = QRUtil.getPatternPosition(this.typeNumber);\n\n  for (var i = 0; i < pos.length; i++) {\n    for (var j = 0; j < pos.length; j++) {\n      var row = pos[i];\n      var col = pos[j];\n\n      if (this.modules[row][col] != null) {\n        continue;\n      }\n\n      for (var r = -2; r <= 2; r++) {\n        for (var c = -2; c <= 2; c++) {\n          if (r == -2 || r == 2 || c == -2 || c == 2 || r == 0 && c == 0) {\n            this.modules[row + r][col + c] = true;\n          } else {\n            this.modules[row + r][col + c] = false;\n          }\n        }\n      }\n    }\n  }\n};\n\nQRCodeModel.prototype.setupTypeNumber = function (test) {\n  var bits = QRUtil.getBCHTypeNumber(this.typeNumber);\n\n  for (var i = 0; i < 18; i++) {\n    var mod = !test && (bits >> i & 1) == 1;\n    this.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = mod;\n  }\n\n  for (var i = 0; i < 18; i++) {\n    var mod = !test && (bits >> i & 1) == 1;\n    this.modules[i % 3 + this.moduleCount - 8 - 3][Math.floor(i / 3)] = mod;\n  }\n};\n\nQRCodeModel.prototype.setupTypeInfo = function (test, maskPattern) {\n  var data = this.errorCorrectLevel << 3 | maskPattern;\n  var bits = QRUtil.getBCHTypeInfo(data);\n\n  for (var i = 0; i < 15; i++) {\n    var mod = !test && (bits >> i & 1) == 1;\n\n    if (i < 6) {\n      this.modules[i][8] = mod;\n    } else if (i < 8) {\n      this.modules[i + 1][8] = mod;\n    } else {\n      this.modules[this.moduleCount - 15 + i][8] = mod;\n    }\n  }\n\n  for (var i = 0; i < 15; i++) {\n    var mod = !test && (bits >> i & 1) == 1;\n\n    if (i < 8) {\n      this.modules[8][this.moduleCount - i - 1] = mod;\n    } else if (i < 9) {\n      this.modules[8][15 - i - 1 + 1] = mod;\n    } else {\n      this.modules[8][15 - i - 1] = mod;\n    }\n  }\n\n  this.modules[this.moduleCount - 8][8] = !test;\n};\n\nQRCodeModel.prototype.mapData = function (data, maskPattern) {\n  var inc = -1;\n  var row = this.moduleCount - 1;\n  var bitIndex = 7;\n  var byteIndex = 0;\n\n  for (var col = this.moduleCount - 1; col > 0; col -= 2) {\n    if (col == 6) col--;\n\n    while (true) {\n      for (var c = 0; c < 2; c++) {\n        if (this.modules[row][col - c] == null) {\n          var dark = false;\n\n          if (byteIndex < data.length) {\n            dark = (data[byteIndex] >>> bitIndex & 1) == 1;\n          }\n\n          var mask = QRUtil.getMask(maskPattern, row, col - c);\n\n          if (mask) {\n            dark = !dark;\n          }\n\n          this.modules[row][col - c] = dark;\n          bitIndex--;\n\n          if (bitIndex == -1) {\n            byteIndex++;\n            bitIndex = 7;\n          }\n        }\n      }\n\n      row += inc;\n\n      if (row < 0 || this.moduleCount <= row) {\n        row -= inc;\n        inc = -inc;\n        break;\n      }\n    }\n  }\n};\n\nQRCodeModel.PAD0 = 0xEC;\nQRCodeModel.PAD1 = 0x11;\n\nQRCodeModel.createData = function (typeNumber, errorCorrectLevel, dataList) {\n  var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, errorCorrectLevel);\n  var buffer = new QRBitBuffer();\n\n  for (var i = 0; i < dataList.length; i++) {\n    var data = dataList[i];\n    buffer.put(data.mode, 4);\n    buffer.put(data.getLength(), QRUtil.getLengthInBits(data.mode, typeNumber));\n    data.write(buffer);\n  }\n\n  var totalDataCount = 0;\n\n  for (var i = 0; i < rsBlocks.length; i++) {\n    totalDataCount += rsBlocks[i].dataCount;\n  }\n\n  if (buffer.getLengthInBits() > totalDataCount * 8) {\n    throw new Error(\"code length overflow. (\" + buffer.getLengthInBits() + \">\" + totalDataCount * 8 + \")\");\n  }\n\n  if (buffer.getLengthInBits() + 4 <= totalDataCount * 8) {\n    buffer.put(0, 4);\n  }\n\n  while (buffer.getLengthInBits() % 8 != 0) {\n    buffer.putBit(false);\n  }\n\n  while (true) {\n    if (buffer.getLengthInBits() >= totalDataCount * 8) {\n      break;\n    }\n\n    buffer.put(QRCodeModel.PAD0, 8);\n\n    if (buffer.getLengthInBits() >= totalDataCount * 8) {\n      break;\n    }\n\n    buffer.put(QRCodeModel.PAD1, 8);\n  }\n\n  return QRCodeModel.createBytes(buffer, rsBlocks);\n};\n\nQRCodeModel.createBytes = function (buffer, rsBlocks) {\n  var offset = 0;\n  var maxDcCount = 0;\n  var maxEcCount = 0;\n  var dcdata = new Array(rsBlocks.length);\n  var ecdata = new Array(rsBlocks.length);\n\n  for (var r = 0; r < rsBlocks.length; r++) {\n    var dcCount = rsBlocks[r].dataCount;\n    var ecCount = rsBlocks[r].totalCount - dcCount;\n    maxDcCount = Math.max(maxDcCount, dcCount);\n    maxEcCount = Math.max(maxEcCount, ecCount);\n    dcdata[r] = new Array(dcCount);\n\n    for (var i = 0; i < dcdata[r].length; i++) {\n      dcdata[r][i] = 0xff & buffer.buffer[i + offset];\n    }\n\n    offset += dcCount;\n    var rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount);\n    var rawPoly = new QRPolynomial(dcdata[r], rsPoly.getLength() - 1);\n    var modPoly = rawPoly.mod(rsPoly);\n    ecdata[r] = new Array(rsPoly.getLength() - 1);\n\n    for (var i = 0; i < ecdata[r].length; i++) {\n      var modIndex = i + modPoly.getLength() - ecdata[r].length;\n      ecdata[r][i] = modIndex >= 0 ? modPoly.get(modIndex) : 0;\n    }\n  }\n\n  var totalCodeCount = 0;\n\n  for (var i = 0; i < rsBlocks.length; i++) {\n    totalCodeCount += rsBlocks[i].totalCount;\n  }\n\n  var data = new Array(totalCodeCount);\n  var index = 0;\n\n  for (var i = 0; i < maxDcCount; i++) {\n    for (var r = 0; r < rsBlocks.length; r++) {\n      if (i < dcdata[r].length) {\n        data[index++] = dcdata[r][i];\n      }\n    }\n  }\n\n  for (var i = 0; i < maxEcCount; i++) {\n    for (var r = 0; r < rsBlocks.length; r++) {\n      if (i < ecdata[r].length) {\n        data[index++] = ecdata[r][i];\n      }\n    }\n  }\n\n  return data;\n};\n\nvar QRMode = {\n  MODE_NUMBER: 1 << 0,\n  MODE_ALPHA_NUM: 1 << 1,\n  MODE_8BIT_BYTE: 1 << 2,\n  MODE_KANJI: 1 << 3\n};\nvar QRErrorCorrectLevel = {\n  L: 1,\n  M: 0,\n  Q: 3,\n  H: 2\n};\nvar QRMaskPattern = {\n  PATTERN000: 0,\n  PATTERN001: 1,\n  PATTERN010: 2,\n  PATTERN011: 3,\n  PATTERN100: 4,\n  PATTERN101: 5,\n  PATTERN110: 6,\n  PATTERN111: 7\n};\nvar QRUtil = {\n  PATTERN_POSITION_TABLE: [[], [6, 18], [6, 22], [6, 26], [6, 30], [6, 34], [6, 22, 38], [6, 24, 42], [6, 26, 46], [6, 28, 50], [6, 30, 54], [6, 32, 58], [6, 34, 62], [6, 26, 46, 66], [6, 26, 48, 70], [6, 26, 50, 74], [6, 30, 54, 78], [6, 30, 56, 82], [6, 30, 58, 86], [6, 34, 62, 90], [6, 28, 50, 72, 94], [6, 26, 50, 74, 98], [6, 30, 54, 78, 102], [6, 28, 54, 80, 106], [6, 32, 58, 84, 110], [6, 30, 58, 86, 114], [6, 34, 62, 90, 118], [6, 26, 50, 74, 98, 122], [6, 30, 54, 78, 102, 126], [6, 26, 52, 78, 104, 130], [6, 30, 56, 82, 108, 134], [6, 34, 60, 86, 112, 138], [6, 30, 58, 86, 114, 142], [6, 34, 62, 90, 118, 146], [6, 30, 54, 78, 102, 126, 150], [6, 24, 50, 76, 102, 128, 154], [6, 28, 54, 80, 106, 132, 158], [6, 32, 58, 84, 110, 136, 162], [6, 26, 54, 82, 110, 138, 166], [6, 30, 58, 86, 114, 142, 170]],\n  G15: 1 << 10 | 1 << 8 | 1 << 5 | 1 << 4 | 1 << 2 | 1 << 1 | 1 << 0,\n  G18: 1 << 12 | 1 << 11 | 1 << 10 | 1 << 9 | 1 << 8 | 1 << 5 | 1 << 2 | 1 << 0,\n  G15_MASK: 1 << 14 | 1 << 12 | 1 << 10 | 1 << 4 | 1 << 1,\n  getBCHTypeInfo: function getBCHTypeInfo(data) {\n    var d = data << 10;\n\n    while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) >= 0) {\n      d ^= QRUtil.G15 << QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15);\n    }\n\n    return (data << 10 | d) ^ QRUtil.G15_MASK;\n  },\n  getBCHTypeNumber: function getBCHTypeNumber(data) {\n    var d = data << 12;\n\n    while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) >= 0) {\n      d ^= QRUtil.G18 << QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18);\n    }\n\n    return data << 12 | d;\n  },\n  getBCHDigit: function getBCHDigit(data) {\n    var digit = 0;\n\n    while (data != 0) {\n      digit++;\n      data >>>= 1;\n    }\n\n    return digit;\n  },\n  getPatternPosition: function getPatternPosition(typeNumber) {\n    return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1];\n  },\n  getMask: function getMask(maskPattern, i, j) {\n    switch (maskPattern) {\n      case QRMaskPattern.PATTERN000:\n        return (i + j) % 2 === 0;\n\n      case QRMaskPattern.PATTERN001:\n        return i % 2 === 0;\n\n      case QRMaskPattern.PATTERN010:\n        return j % 3 === 0;\n\n      case QRMaskPattern.PATTERN011:\n        return (i + j) % 3 === 0;\n\n      case QRMaskPattern.PATTERN100:\n        return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0;\n\n      case QRMaskPattern.PATTERN101:\n        return i * j % 2 + i * j % 3 === 0;\n\n      case QRMaskPattern.PATTERN110:\n        return (i * j % 2 + i * j % 3) % 2 === 0;\n\n      case QRMaskPattern.PATTERN111:\n        return (i * j % 3 + (i + j) % 2) % 2 === 0;\n\n      default:\n        throw new Error(\"bad maskPattern:\" + maskPattern);\n    }\n  },\n  getErrorCorrectPolynomial: function getErrorCorrectPolynomial(errorCorrectLength) {\n    var a = new QRPolynomial([1], 0);\n\n    for (var i = 0; i < errorCorrectLength; i++) {\n      a = a.multiply(new QRPolynomial([1, QRMath.gexp(i)], 0));\n    }\n\n    return a;\n  },\n  getLengthInBits: function getLengthInBits(mode, type) {\n    if (1 <= type && type < 10) {\n      switch (mode) {\n        case QRMode.MODE_NUMBER:\n          return 10;\n\n        case QRMode.MODE_ALPHA_NUM:\n          return 9;\n\n        case QRMode.MODE_8BIT_BYTE:\n          return 8;\n\n        case QRMode.MODE_KANJI:\n          return 8;\n\n        default:\n          throw new Error(\"mode:\" + mode);\n      }\n    } else if (type < 27) {\n      switch (mode) {\n        case QRMode.MODE_NUMBER:\n          return 12;\n\n        case QRMode.MODE_ALPHA_NUM:\n          return 11;\n\n        case QRMode.MODE_8BIT_BYTE:\n          return 16;\n\n        case QRMode.MODE_KANJI:\n          return 10;\n\n        default:\n          throw new Error(\"mode:\" + mode);\n      }\n    } else if (type < 41) {\n      switch (mode) {\n        case QRMode.MODE_NUMBER:\n          return 14;\n\n        case QRMode.MODE_ALPHA_NUM:\n          return 13;\n\n        case QRMode.MODE_8BIT_BYTE:\n          return 16;\n\n        case QRMode.MODE_KANJI:\n          return 12;\n\n        default:\n          throw new Error(\"mode:\" + mode);\n      }\n    } else {\n      throw new Error(\"type:\" + type);\n    }\n  },\n  getLostPoint: function getLostPoint(qrCode) {\n    var moduleCount = qrCode.getModuleCount();\n    var lostPoint = 0;\n\n    for (var row = 0; row < moduleCount; row++) {\n      for (var col = 0; col < moduleCount; col++) {\n        var sameCount = 0;\n        var dark = qrCode.isDark(row, col);\n\n        for (var r = -1; r <= 1; r++) {\n          if (row + r < 0 || moduleCount <= row + r) {\n            continue;\n          }\n\n          for (var c = -1; c <= 1; c++) {\n            if (col + c < 0 || moduleCount <= col + c) {\n              continue;\n            }\n\n            if (r == 0 && c == 0) {\n              continue;\n            }\n\n            if (dark == qrCode.isDark(row + r, col + c)) {\n              sameCount++;\n            }\n          }\n        }\n\n        if (sameCount > 5) {\n          lostPoint += 3 + sameCount - 5;\n        }\n      }\n    }\n\n    for (var row = 0; row < moduleCount - 1; row++) {\n      for (var col = 0; col < moduleCount - 1; col++) {\n        var count = 0;\n        if (qrCode.isDark(row, col)) count++;\n        if (qrCode.isDark(row + 1, col)) count++;\n        if (qrCode.isDark(row, col + 1)) count++;\n        if (qrCode.isDark(row + 1, col + 1)) count++;\n\n        if (count == 0 || count == 4) {\n          lostPoint += 3;\n        }\n      }\n    }\n\n    for (var row = 0; row < moduleCount; row++) {\n      for (var col = 0; col < moduleCount - 6; col++) {\n        if (qrCode.isDark(row, col) && !qrCode.isDark(row, col + 1) && qrCode.isDark(row, col + 2) && qrCode.isDark(row, col + 3) && qrCode.isDark(row, col + 4) && !qrCode.isDark(row, col + 5) && qrCode.isDark(row, col + 6)) {\n          lostPoint += 40;\n        }\n      }\n    }\n\n    for (var col = 0; col < moduleCount; col++) {\n      for (var row = 0; row < moduleCount - 6; row++) {\n        if (qrCode.isDark(row, col) && !qrCode.isDark(row + 1, col) && qrCode.isDark(row + 2, col) && qrCode.isDark(row + 3, col) && qrCode.isDark(row + 4, col) && !qrCode.isDark(row + 5, col) && qrCode.isDark(row + 6, col)) {\n          lostPoint += 40;\n        }\n      }\n    }\n\n    var darkCount = 0;\n\n    for (var col = 0; col < moduleCount; col++) {\n      for (var row = 0; row < moduleCount; row++) {\n        if (qrCode.isDark(row, col)) {\n          darkCount++;\n        }\n      }\n    }\n\n    var ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5;\n    lostPoint += ratio * 10;\n    return lostPoint;\n  }\n};\nvar QRMath = {\n  glog: function glog(n) {\n    if (n < 1) {\n      throw new Error(\"glog(\" + n + \")\");\n    }\n\n    return QRMath.LOG_TABLE[n];\n  },\n  gexp: function gexp(n) {\n    while (n < 0) {\n      n += 255;\n    }\n\n    while (n >= 256) {\n      n -= 255;\n    }\n\n    return QRMath.EXP_TABLE[n];\n  },\n  LOG_TABLE: new Array(256)\n};\n\nQRMath.EXP_TABLE = function () {\n  var arr = Array(256);\n  var i;\n\n  for (i = 0; i < 8; ++i) {\n    arr[i] = 1 << i;\n  }\n\n  for (i = 8; i < 256; ++i) {\n    arr[i] = arr[i - 4] ^ arr[i - 5] ^ arr[i - 6] ^ arr[i - 8];\n  }\n\n  return arr;\n}();\n\nQRMath.LOG_TABLE = function () {\n  var arr = Array(256).fill(0);\n\n  for (var i = 0; i < 255; i++) {\n    arr[QRMath.EXP_TABLE[i]] = i;\n  }\n\n  return arr;\n}();\n\nfunction QRPolynomial(num, shift) {\n  if (num.length == undefined) {\n    throw new Error(num.length + \"/\" + shift);\n  }\n\n  var offset = 0;\n\n  while (offset < num.length && num[offset] == 0) {\n    offset++;\n  }\n\n  this.num = new Array(num.length - offset + shift);\n\n  for (var i = 0; i < num.length - offset; i++) {\n    this.num[i] = num[i + offset];\n  }\n}\n\nQRPolynomial.prototype.get = function (index) {\n  return this.num[index];\n};\n\nQRPolynomial.prototype.getLength = function () {\n  return this.num.length;\n};\n\nQRPolynomial.prototype.multiply = function (e) {\n  var num = new Array(this.getLength() + e.getLength() - 1);\n\n  for (var i = 0; i < this.getLength(); i++) {\n    for (var j = 0; j < e.getLength(); j++) {\n      num[i + j] ^= QRMath.gexp(QRMath.glog(this.get(i)) + QRMath.glog(e.get(j)));\n    }\n  }\n\n  return new QRPolynomial(num, 0);\n};\n\nQRPolynomial.prototype.mod = function (e) {\n  if (this.getLength() - e.getLength() < 0) {\n    return this;\n  }\n\n  var ratio = QRMath.glog(this.get(0)) - QRMath.glog(e.get(0));\n  var num = new Array(this.getLength());\n\n  for (var i = 0; i < this.getLength(); i++) {\n    num[i] = this.get(i);\n  }\n\n  for (var i = 0; i < e.getLength(); i++) {\n    num[i] ^= QRMath.gexp(QRMath.glog(e.get(i)) + ratio);\n  }\n\n  return new QRPolynomial(num, 0).mod(e);\n};\n\nfunction QRRSBlock(totalCount, dataCount) {\n  this.totalCount = totalCount;\n  this.dataCount = dataCount;\n}\n\nQRRSBlock.RS_BLOCK_TABLE = [[1, 26, 19], [1, 26, 16], [1, 26, 13], [1, 26, 9], [1, 44, 34], [1, 44, 28], [1, 44, 22], [1, 44, 16], [1, 70, 55], [1, 70, 44], [2, 35, 17], [2, 35, 13], [1, 100, 80], [2, 50, 32], [2, 50, 24], [4, 25, 9], [1, 134, 108], [2, 67, 43], [2, 33, 15, 2, 34, 16], [2, 33, 11, 2, 34, 12], [2, 86, 68], [4, 43, 27], [4, 43, 19], [4, 43, 15], [2, 98, 78], [4, 49, 31], [2, 32, 14, 4, 33, 15], [4, 39, 13, 1, 40, 14], [2, 121, 97], [2, 60, 38, 2, 61, 39], [4, 40, 18, 2, 41, 19], [4, 40, 14, 2, 41, 15], [2, 146, 116], [3, 58, 36, 2, 59, 37], [4, 36, 16, 4, 37, 17], [4, 36, 12, 4, 37, 13], [2, 86, 68, 2, 87, 69], [4, 69, 43, 1, 70, 44], [6, 43, 19, 2, 44, 20], [6, 43, 15, 2, 44, 16], [4, 101, 81], [1, 80, 50, 4, 81, 51], [4, 50, 22, 4, 51, 23], [3, 36, 12, 8, 37, 13], [2, 116, 92, 2, 117, 93], [6, 58, 36, 2, 59, 37], [4, 46, 20, 6, 47, 21], [7, 42, 14, 4, 43, 15], [4, 133, 107], [8, 59, 37, 1, 60, 38], [8, 44, 20, 4, 45, 21], [12, 33, 11, 4, 34, 12], [3, 145, 115, 1, 146, 116], [4, 64, 40, 5, 65, 41], [11, 36, 16, 5, 37, 17], [11, 36, 12, 5, 37, 13], [5, 109, 87, 1, 110, 88], [5, 65, 41, 5, 66, 42], [5, 54, 24, 7, 55, 25], [11, 36, 12], [5, 122, 98, 1, 123, 99], [7, 73, 45, 3, 74, 46], [15, 43, 19, 2, 44, 20], [3, 45, 15, 13, 46, 16], [1, 135, 107, 5, 136, 108], [10, 74, 46, 1, 75, 47], [1, 50, 22, 15, 51, 23], [2, 42, 14, 17, 43, 15], [5, 150, 120, 1, 151, 121], [9, 69, 43, 4, 70, 44], [17, 50, 22, 1, 51, 23], [2, 42, 14, 19, 43, 15], [3, 141, 113, 4, 142, 114], [3, 70, 44, 11, 71, 45], [17, 47, 21, 4, 48, 22], [9, 39, 13, 16, 40, 14], [3, 135, 107, 5, 136, 108], [3, 67, 41, 13, 68, 42], [15, 54, 24, 5, 55, 25], [15, 43, 15, 10, 44, 16], [4, 144, 116, 4, 145, 117], [17, 68, 42], [17, 50, 22, 6, 51, 23], [19, 46, 16, 6, 47, 17], [2, 139, 111, 7, 140, 112], [17, 74, 46], [7, 54, 24, 16, 55, 25], [34, 37, 13], [4, 151, 121, 5, 152, 122], [4, 75, 47, 14, 76, 48], [11, 54, 24, 14, 55, 25], [16, 45, 15, 14, 46, 16], [6, 147, 117, 4, 148, 118], [6, 73, 45, 14, 74, 46], [11, 54, 24, 16, 55, 25], [30, 46, 16, 2, 47, 17], [8, 132, 106, 4, 133, 107], [8, 75, 47, 13, 76, 48], [7, 54, 24, 22, 55, 25], [22, 45, 15, 13, 46, 16], [10, 142, 114, 2, 143, 115], [19, 74, 46, 4, 75, 47], [28, 50, 22, 6, 51, 23], [33, 46, 16, 4, 47, 17], [8, 152, 122, 4, 153, 123], [22, 73, 45, 3, 74, 46], [8, 53, 23, 26, 54, 24], [12, 45, 15, 28, 46, 16], [3, 147, 117, 10, 148, 118], [3, 73, 45, 23, 74, 46], [4, 54, 24, 31, 55, 25], [11, 45, 15, 31, 46, 16], [7, 146, 116, 7, 147, 117], [21, 73, 45, 7, 74, 46], [1, 53, 23, 37, 54, 24], [19, 45, 15, 26, 46, 16], [5, 145, 115, 10, 146, 116], [19, 75, 47, 10, 76, 48], [15, 54, 24, 25, 55, 25], [23, 45, 15, 25, 46, 16], [13, 145, 115, 3, 146, 116], [2, 74, 46, 29, 75, 47], [42, 54, 24, 1, 55, 25], [23, 45, 15, 28, 46, 16], [17, 145, 115], [10, 74, 46, 23, 75, 47], [10, 54, 24, 35, 55, 25], [19, 45, 15, 35, 46, 16], [17, 145, 115, 1, 146, 116], [14, 74, 46, 21, 75, 47], [29, 54, 24, 19, 55, 25], [11, 45, 15, 46, 46, 16], [13, 145, 115, 6, 146, 116], [14, 74, 46, 23, 75, 47], [44, 54, 24, 7, 55, 25], [59, 46, 16, 1, 47, 17], [12, 151, 121, 7, 152, 122], [12, 75, 47, 26, 76, 48], [39, 54, 24, 14, 55, 25], [22, 45, 15, 41, 46, 16], [6, 151, 121, 14, 152, 122], [6, 75, 47, 34, 76, 48], [46, 54, 24, 10, 55, 25], [2, 45, 15, 64, 46, 16], [17, 152, 122, 4, 153, 123], [29, 74, 46, 14, 75, 47], [49, 54, 24, 10, 55, 25], [24, 45, 15, 46, 46, 16], [4, 152, 122, 18, 153, 123], [13, 74, 46, 32, 75, 47], [48, 54, 24, 14, 55, 25], [42, 45, 15, 32, 46, 16], [20, 147, 117, 4, 148, 118], [40, 75, 47, 7, 76, 48], [43, 54, 24, 22, 55, 25], [10, 45, 15, 67, 46, 16], [19, 148, 118, 6, 149, 119], [18, 75, 47, 31, 76, 48], [34, 54, 24, 34, 55, 25], [20, 45, 15, 61, 46, 16]];\n\nQRRSBlock.getRSBlocks = function (typeNumber, errorCorrectLevel) {\n  var rsBlock = QRRSBlock.getRsBlockTable(typeNumber, errorCorrectLevel);\n\n  if (rsBlock == undefined) {\n    throw new Error(\"bad rs block @ typeNumber:\" + typeNumber + \"/errorCorrectLevel:\" + errorCorrectLevel);\n  }\n\n  var length = rsBlock.length / 3;\n  var list = [];\n\n  for (var i = 0; i < length; i++) {\n    var count = rsBlock[i * 3 + 0];\n    var totalCount = rsBlock[i * 3 + 1];\n    var dataCount = rsBlock[i * 3 + 2];\n\n    for (var j = 0; j < count; j++) {\n      list.push(new QRRSBlock(totalCount, dataCount));\n    }\n  }\n\n  return list;\n};\n\nQRRSBlock.getRsBlockTable = function (typeNumber, errorCorrectLevel) {\n  switch (errorCorrectLevel) {\n    case QRErrorCorrectLevel.L:\n      return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0];\n\n    case QRErrorCorrectLevel.M:\n      return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1];\n\n    case QRErrorCorrectLevel.Q:\n      return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2];\n\n    case QRErrorCorrectLevel.H:\n      return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3];\n\n    default:\n      return undefined;\n  }\n};\n\nfunction QRBitBuffer() {\n  this.buffer = [];\n  this.length = 0;\n}\n\nQRBitBuffer.prototype.get = function (index) {\n  var bufIndex = Math.floor(index / 8);\n  return (this.buffer[bufIndex] >>> 7 - index % 8 & 1) === 1;\n};\n\nQRBitBuffer.prototype.put = function (num, length) {\n  for (var i = 0; i < length; i++) {\n    this.putBit((num >>> length - i - 1 & 1) === 1);\n  }\n};\n\nQRBitBuffer.prototype.getLengthInBits = function () {\n  return this.length;\n};\n\nQRBitBuffer.prototype.putBit = function (bit) {\n  var bufIndex = Math.floor(this.length / 8);\n\n  if (this.buffer.length <= bufIndex) {\n    this.buffer.push(0);\n  }\n\n  if (bit) {\n    this.buffer[bufIndex] |= 0x80 >>> this.length % 8;\n  }\n\n  this.length++;\n};\n\nvar QRCodeLimitLength = [[17, 14, 11, 7], [32, 26, 20, 14], [53, 42, 32, 24], [78, 62, 46, 34], [106, 84, 60, 44], [134, 106, 74, 58], [154, 122, 86, 64], [192, 152, 108, 84], [230, 180, 130, 98], [271, 213, 151, 119], [321, 251, 177, 137], [367, 287, 203, 155], [425, 331, 241, 177], [458, 362, 258, 194], [520, 412, 292, 220], [586, 450, 322, 250], [644, 504, 364, 280], [718, 560, 394, 310], [792, 624, 442, 338], [858, 666, 482, 382], [929, 711, 509, 403], [1003, 779, 565, 439], [1091, 857, 611, 461], [1171, 911, 661, 511], [1273, 997, 715, 535], [1367, 1059, 751, 593], [1465, 1125, 805, 625], [1528, 1190, 868, 658], [1628, 1264, 908, 698], [1732, 1370, 982, 742], [1840, 1452, 1030, 790], [1952, 1538, 1112, 842], [2068, 1628, 1168, 898], [2188, 1722, 1228, 958], [2303, 1809, 1283, 983], [2431, 1911, 1351, 1051], [2563, 1989, 1423, 1093], [2699, 2099, 1499, 1139], [2809, 2213, 1579, 1219], [2953, 2331, 1663, 1273]];\n/**\r\n * Get the type by string length\r\n *\r\n * @private\r\n * @param {String} sText\r\n * @param {Number} nCorrectLevel\r\n * @return {Number} type\r\n */\n\nfunction _getTypeNumber(sText, nCorrectLevel) {\n  var nType = 1;\n\n  var length = _getUTF8Length(sText);\n\n  for (var i = 0, len = QRCodeLimitLength.length; i <= len; i++) {\n    var nLimit = 0;\n\n    switch (nCorrectLevel) {\n      case QRErrorCorrectLevel.L:\n        nLimit = QRCodeLimitLength[i][0];\n        break;\n\n      case QRErrorCorrectLevel.M:\n        nLimit = QRCodeLimitLength[i][1];\n        break;\n\n      case QRErrorCorrectLevel.Q:\n        nLimit = QRCodeLimitLength[i][2];\n        break;\n\n      case QRErrorCorrectLevel.H:\n        nLimit = QRCodeLimitLength[i][3];\n        break;\n    }\n\n    if (length <= nLimit) {\n      break;\n    } else {\n      nType++;\n    }\n  }\n\n  if (nType > QRCodeLimitLength.length) {\n    throw new Error(\"Too long data\");\n  }\n\n  return nType;\n}\n\nfunction _getUTF8Length(sText) {\n  var replacedText = encodeURI(sText).toString().replace(/\\%[0-9a-fA-F]{2}/g, 'a');\n  return replacedText.length + (replacedText.length != sText ? 3 : 0);\n}\n\nfunction QRCode(opt) {\n  this.opt = {\n    width: 255,\n    height: 255,\n    typeNumber: 4,\n    correctLevel: QRErrorCorrectLevel.H\n  };\n\n  if (typeof opt === 'string') {\n    this.opt.text = opt;\n  } else Object.assign(this.opt, opt);\n\n  if (this.opt.text) {\n    this.makeCode(this.opt.text);\n  }\n}\n/**\r\n * Make the QRCode\r\n *\r\n * @param {String} sText link data\r\n */\n\n\nQRCode.prototype.makeCode = function (sText) {\n  this._oQRCode = new QRCodeModel(_getTypeNumber(sText, this.opt.correctLevel), this.opt.correctLevel);\n\n  this._oQRCode.addData(sText);\n\n  this._oQRCode.make();\n};\n\nQRCode.prototype.getBitmap = function () {\n  var _this = this;\n\n  var n = this._oQRCode.getModuleCount();\n\n  return Array(n).fill(null).map(function (u, i) {\n    return Array(n).fill(null).map(function (u, j) {\n      return _this._oQRCode.isDark(i, j);\n    });\n  });\n};\n/**\r\n * @name QRCode.CorrectLevel\r\n */\n\n\nQRCode.CorrectLevel = QRErrorCorrectLevel;\nvar _default = QRCode;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Converter/QRCode.js?");

/***/ }),

/***/ "./node_modules/absol/src/Converter/base64.js":
/*!****************************************************!*\
  !*** ./node_modules/absol/src/Converter/base64.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.UnicodeBase64Converter = void 0;\nexports.base64DecodeUnicode = base64DecodeUnicode;\nexports.base64EncodeUnicode = base64EncodeUnicode;\n\nfunction base64EncodeUnicode(str) {\n  return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function toSolidBytes(match, p1) {\n    return String.fromCharCode('0x' + p1);\n  }));\n}\n\n;\n\nfunction base64DecodeUnicode(str) {\n  return decodeURIComponent(atob(str).split('').map(function (c) {\n    return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n  }).join(''));\n}\n\nvar UnicodeBase64Converter = {\n  encode: base64EncodeUnicode,\n  decode: base64DecodeUnicode\n};\nexports.UnicodeBase64Converter = UnicodeBase64Converter;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Converter/base64.js?");

/***/ }),

/***/ "./node_modules/absol/src/Converter/ext2MineType.js":
/*!**********************************************************!*\
  !*** ./node_modules/absol/src/Converter/ext2MineType.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\nvar ext2MineType = {\n  \"323\": \"text/h323\",\n  \"*\": \"application/octet-stream\",\n  \"3g2\": \"video/3gpp2\",\n  \"3gp\": \"video/3gpp\",\n  \"7z\": \"application/x-7z-compressed\",\n  aac: \"audio/aac\",\n  abw: \"application/x-abiword\",\n  acx: \"application/internet-property-stream\",\n  ai: \"application/postscript\",\n  aif: \"audio/x-aiff\",\n  aifc: \"audio/x-aiff\",\n  aiff: \"audio/x-aiff\",\n  arc: \"application/x-freearc\",\n  asf: \"video/x-ms-asf\",\n  asr: \"video/x-ms-asf\",\n  asx: \"video/x-ms-asf\",\n  au: \"audio/basic\",\n  avi: \"video/x-msvideo\",\n  axs: \"application/olescript\",\n  azw: \"application/vnd.amazon.ebook\",\n  bas: \"text/plain\",\n  bcpio: \"application/x-bcpio\",\n  bin: \"application/octet-stream\",\n  bmp: \"image/bmp\",\n  bz: \"application/x-bzip\",\n  bz2: \"application/x-bzip2\",\n  c: \"text/plain\",\n  cat: \"application/vnd.ms-pkiseccat\",\n  cda: \"application/x-cdf\",\n  cdf: \"application/x-netcdf\",\n  cer: \"application/x-x509-ca-cert\",\n  \"class\": \"application/octet-stream\",\n  clp: \"application/x-msclip\",\n  cmx: \"image/x-cmx\",\n  cod: \"image/cis-cod\",\n  cpio: \"application/x-cpio\",\n  crd: \"application/x-mscardfile\",\n  crl: \"application/pkix-crl\",\n  crt: \"application/x-x509-ca-cert\",\n  csh: \"application/x-csh\",\n  css: \"text/css\",\n  csv: \"text/csv\",\n  dcr: \"application/x-director\",\n  der: \"application/x-x509-ca-cert\",\n  dir: \"application/x-director\",\n  dll: \"application/x-msdownload\",\n  dms: \"application/octet-stream\",\n  doc: \"application/msword\",\n  docx: \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\n  dot: \"application/msword\",\n  dvi: \"application/x-dvi\",\n  dxr: \"application/x-director\",\n  eot: \"application/vnd.ms-fontobject\",\n  eps: \"application/postscript\",\n  epub: \"application/epub+zip\",\n  etx: \"text/x-setext\",\n  evy: \"application/envoy\",\n  exe: \"application/octet-stream\",\n  fif: \"application/fractals\",\n  flr: \"x-world/x-vrml\",\n  gif: \"image/gif\",\n  gtar: \"application/x-gtar\",\n  gz: \"application/gzip\",\n  h: \"text/plain\",\n  hdf: \"application/x-hdf\",\n  hlp: \"application/winhlp\",\n  hqx: \"application/mac-binhex40\",\n  hta: \"application/hta\",\n  htc: \"text/x-component\",\n  htm: \"text/html\",\n  html: \"text/html\",\n  htt: \"text/webviewhtml\",\n  ico: \"image/vnd.microsoft.icon\",\n  ics: \"text/calendar\",\n  ief: \"image/ief\",\n  iii: \"application/x-iphone\",\n  ins: \"application/x-internet-signup\",\n  isp: \"application/x-internet-signup\",\n  jar: \"application/java-archive\",\n  jfif: \"image/pipeg\",\n  jpe: \"image/jpeg\",\n  jpeg: \"image/jpeg\",\n  jpg: \"image/jpeg\",\n  js: \"text/javascript\",\n  json: \"application/json\",\n  jsonld: \"application/ld+json\",\n  latex: \"application/x-latex\",\n  lha: \"application/octet-stream\",\n  lsf: \"video/x-la-asf\",\n  lsx: \"video/x-la-asf\",\n  lzh: \"application/octet-stream\",\n  m13: \"application/x-msmediaview\",\n  m14: \"application/x-msmediaview\",\n  m3u: \"audio/x-mpegurl\",\n  man: \"application/x-troff-man\",\n  mdb: \"application/x-msaccess\",\n  me: \"application/x-troff-me\",\n  mht: \"message/rfc822\",\n  mhtml: \"message/rfc822\",\n  mid: \"audio/midi\",\n  midi: \"audio/midi\",\n  mjs: \"text/javascript\",\n  mny: \"application/x-msmoney\",\n  mov: \"video/quicktime\",\n  movie: \"video/x-sgi-movie\",\n  mp2: \"video/mpeg\",\n  mp3: \"audio/mpeg\",\n  mp4: \"video/mp4\",\n  mpa: \"video/mpeg\",\n  mpe: \"video/mpeg\",\n  mpeg: \"video/mpeg\",\n  mpg: \"video/mpeg\",\n  mpkg: \"application/vnd.apple.installer+xml\",\n  mpp: \"application/vnd.ms-project\",\n  mpv2: \"video/mpeg\",\n  ms: \"application/x-troff-ms\",\n  msg: \"application/vnd.ms-outlook\",\n  mvb: \"application/x-msmediaview\",\n  nc: \"application/x-netcdf\",\n  nws: \"message/rfc822\",\n  oda: \"application/oda\",\n  odp: \"application/vnd.oasis.opendocument.presentation\",\n  ods: \"application/vnd.oasis.opendocument.spreadsheet\",\n  odt: \"application/vnd.oasis.opendocument.text\",\n  oga: \"audio/ogg\",\n  ogv: \"video/ogg\",\n  ogx: \"application/ogg\",\n  opus: \"audio/opus\",\n  otf: \"font/otf\",\n  p10: \"application/pkcs10\",\n  p12: \"application/x-pkcs12\",\n  p7b: \"application/x-pkcs7-certificates\",\n  p7c: \"application/x-pkcs7-mime\",\n  p7m: \"application/x-pkcs7-mime\",\n  p7r: \"application/x-pkcs7-certreqresp\",\n  p7s: \"application/x-pkcs7-signature\",\n  pbm: \"image/x-portable-bitmap\",\n  pdf: \"application/pdf\",\n  pfx: \"application/x-pkcs12\",\n  pgm: \"image/x-portable-graymap\",\n  php: \"application/x-httpd-php\",\n  pko: \"application/ynd.ms-pkipko\",\n  pma: \"application/x-perfmon\",\n  pmc: \"application/x-perfmon\",\n  pml: \"application/x-perfmon\",\n  pmr: \"application/x-perfmon\",\n  pmw: \"application/x-perfmon\",\n  png: \"image/png\",\n  pnm: \"image/x-portable-anymap\",\n  pot: \"application/vnd.ms-powerpoint\",\n  ppm: \"image/x-portable-pixmap\",\n  pps: \"application/vnd.ms-powerpoint\",\n  ppt: \"application/vnd.ms-powerpoint\",\n  pptx: \"application/vnd.openxmlformats-officedocument.presentationml.presentation\",\n  prf: \"application/pics-rules\",\n  ps: \"application/postscript\",\n  pub: \"application/x-mspublisher\",\n  qt: \"video/quicktime\",\n  ra: \"audio/x-pn-realaudio\",\n  ram: \"audio/x-pn-realaudio\",\n  rar: \"application/vnd.rar\",\n  ras: \"image/x-cmu-raster\",\n  rgb: \"image/x-rgb\",\n  rmi: \"audio/mid\",\n  roff: \"application/x-troff\",\n  rtf: \"application/rtf\",\n  rtx: \"text/richtext\",\n  scd: \"application/x-msschedule\",\n  sct: \"text/scriptlet\",\n  setpay: \"application/set-payment-initiation\",\n  setreg: \"application/set-registration-initiation\",\n  sh: \"application/x-sh\",\n  shar: \"application/x-shar\",\n  sit: \"application/x-stuffit\",\n  snd: \"audio/basic\",\n  spc: \"application/x-pkcs7-certificates\",\n  spl: \"application/futuresplash\",\n  src: \"application/x-wais-source\",\n  sst: \"application/vnd.ms-pkicertstore\",\n  stl: \"application/vnd.ms-pkistl\",\n  stm: \"text/html\",\n  sv4cpio: \"application/x-sv4cpio\",\n  sv4crc: \"application/x-sv4crc\",\n  svg: \"image/svg+xml\",\n  swf: \"application/x-shockwave-flash\",\n  t: \"application/x-troff\",\n  tar: \"application/x-tar\",\n  tcl: \"application/x-tcl\",\n  tex: \"application/x-tex\",\n  texi: \"application/x-texinfo\",\n  texinfo: \"application/x-texinfo\",\n  tgz: \"application/x-compressed\",\n  tif: \"image/tiff\",\n  tiff: \"image/tiff\",\n  tr: \"application/x-troff\",\n  trm: \"application/x-msterminal\",\n  ts: \"video/mp2t\",\n  tsv: \"text/tab-separated-values\",\n  ttf: \"font/ttf\",\n  txt: \"text/plain\",\n  uls: \"text/iuls\",\n  ustar: \"application/x-ustar\",\n  vcf: \"text/x-vcard\",\n  vrml: \"x-world/x-vrml\",\n  vsd: \"application/vnd.visio\",\n  wav: \"audio/wav\",\n  wcm: \"application/vnd.ms-works\",\n  wdb: \"application/vnd.ms-works\",\n  weba: \"audio/webm\",\n  webm: \"video/webm\",\n  webp: \"image/webp\",\n  wks: \"application/vnd.ms-works\",\n  wmf: \"application/x-msmetafile\",\n  woff: \"font/woff\",\n  woff2: \"font/woff2\",\n  wps: \"application/vnd.ms-works\",\n  wri: \"application/x-mswrite\",\n  wrl: \"x-world/x-vrml\",\n  wrz: \"x-world/x-vrml\",\n  xaf: \"x-world/x-vrml\",\n  xbm: \"image/x-xbitmap\",\n  xhtml: \"application/xhtml+xml\",\n  xla: \"application/vnd.ms-excel\",\n  xlc: \"application/vnd.ms-excel\",\n  xlm: \"application/vnd.ms-excel\",\n  xls: \"application/vnd.ms-excel\",\n  xlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\n  xlt: \"application/vnd.ms-excel\",\n  xlw: \"application/vnd.ms-excel\",\n  xml: \"application/xml\",\n  xof: \"x-world/x-vrml\",\n  xpm: \"image/x-xpixmap\",\n  xul: \"application/vnd.mozilla.xul+xml\",\n  xwd: \"image/x-xwindowdump\",\n  z: \"application/x-compress\",\n  zip: \"application/zip\"\n};\nvar _default = ext2MineType;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Converter/ext2MineType.js?");

/***/ }),

/***/ "./node_modules/absol/src/Converter/file.js":
/*!**************************************************!*\
  !*** ./node_modules/absol/src/Converter/file.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.blobToArrayBuffer = blobToArrayBuffer;\nexports.blobToFile = blobToFile;\nexports.dataURItoBlob = dataURItoBlob;\nexports.stringToBlob = stringToBlob;\n\nvar _ext2MineType = _interopRequireDefault(__webpack_require__(/*! ./ext2MineType */ \"./node_modules/absol/src/Converter/ext2MineType.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction blobToFile(theBlob, fileName) {\n  return new File([theBlob], fileName);\n}\n\nfunction dataURItoBlob(dataURI) {\n  var byteString = atob(dataURI.split(',')[1]);\n  var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];\n  var ab = new ArrayBuffer(byteString.length);\n  var ia = new Uint8Array(ab);\n\n  for (var i = 0; i < byteString.length; i++) {\n    ia[i] = byteString.charCodeAt(i);\n  }\n\n  var blob = new Blob([ab], {\n    type: mimeString\n  });\n  return blob;\n}\n\nfunction blobToArrayBuffer(blob) {\n  var fileReader = new FileReader();\n  return new Promise(function (rs) {\n    fileReader.onload = function (event) {\n      var arrayBuffer = event.target.result;\n      rs(arrayBuffer);\n    };\n\n    fileReader.readAsArrayBuffer(blob);\n  });\n}\n\nfunction stringToBlob(text, type) {\n  type = type || 'text/plain';\n  var mineTye = type.split('/').length === 2 ? type : _ext2MineType[\"default\"][type] || 'text/plain';\n  return new Blob([text], {\n    type: mineTye\n  });\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Converter/file.js?");

/***/ }),

/***/ "./node_modules/absol/src/Cookie/CookieStore.js":
/*!******************************************************!*\
  !*** ./node_modules/absol/src/Cookie/CookieStore.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _base = __webpack_require__(/*! ../Converter/base64 */ \"./node_modules/absol/src/Converter/base64.js\");\n\nfunction CookieStore(converter) {\n  this.converter = converter || _base.UnicodeBase64Converter;\n}\n\nCookieStore.prototype.isEnabled = function () {\n  var cookieEnabled = !!navigator.cookieEnabled; //if not IE4+ nor NS6+\n\n  if (typeof navigator.cookieEnabled == \"undefined\" && !cookieEnabled) {\n    document.cookie = \"testcookie_enabled\";\n    cookieEnabled = document.cookie.indexOf(\"testcookie_enabled\") != -1;\n  }\n\n  return cookieEnabled;\n};\n\nCookieStore.prototype.secure = function () {\n  document.cookie = \"secure\";\n};\n\nCookieStore.prototype.get = function (key) {\n  var bkey = this.converter.encode(key).replace(/=/g, '_');\n  var pairs = document.cookie.split(';').map(function (text) {\n    return text.split('=');\n  }).filter(function (pair) {\n    return pair[0].trim() == bkey;\n  });\n\n  if (pairs.length > 0) {\n    if (pairs[0].length > 1) {\n      var bvalue = pairs[0][1];\n      return this.converter.decode(bvalue.replace(/_/g, '=').trim());\n    } else {\n      return true;\n    }\n  } else return undefined;\n};\n\nCookieStore.prototype.set = function (key, value) {\n  var bkey = this.converter.encode(key);\n  var bvalue = this.converter.encode(value);\n  document.cookie = bkey.replace(/=/g, '_') + \"=\" + bvalue.replace(/=/g, '_');\n};\n\nvar _default = new CookieStore();\n\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Cookie/CookieStore.js?");

/***/ }),

/***/ "./node_modules/absol/src/Cookie/parseCookieString.js":
/*!************************************************************!*\
  !*** ./node_modules/absol/src/Cookie/parseCookieString.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = parseCookieString;\n\n/***\r\n *\r\n * @param {string} text\r\n * @return {{}}\r\n */\nfunction parseCookieString(text) {\n  return text.split(/\\s*;\\s*/).reduce(function (ac, item) {\n    var tokens = item.split('=');\n    var name = (tokens.shift() || '').trim();\n    if (!name) return ac;\n    var value = (tokens.shift() || '').trim();\n    if (!value) value = true;\n    ac[name] = value;\n    return ac;\n  }, {});\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Cookie/parseCookieString.js?");

/***/ }),

/***/ "./node_modules/absol/src/DataStructure/Array.js":
/*!*******************************************************!*\
  !*** ./node_modules/absol/src/DataStructure/Array.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.arrayCompare = arrayCompare;\nexports.arrayIntersection = arrayIntersection;\nexports.arrayIsSubset = arrayIsSubset;\nexports.arrayRemoveNone = arrayRemoveNone;\nexports.arrayShuffle = arrayShuffle;\nexports.arrayUnique = arrayUnique;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/***\r\n *\r\n * @param {(string|number|boolean|null)[]} arr\r\n * @returns {(string|number|boolean|null)[]}\r\n */\nfunction arrayUnique(arr) {\n  var dict = {};\n  return arr.reduce(function (ac, cr) {\n    var key = _typeof(cr) + '//' + cr;\n    if (key in dict) return ac;\n    ac.push(cr);\n    dict[key] = true;\n    return ac;\n  }, []);\n}\n/***\r\n *\r\n * @param {[]}arr\r\n * @return {[]}\r\n */\n\n\nfunction arrayRemoveNone(arr) {\n  return arr.filter(function (c) {\n    return c !== null && c !== undefined;\n  });\n}\n\nfunction arrayIntersection(a1, a2) {\n  var dict1 = a1.reduce(function (ac, cr) {\n    ac[_typeof(cr) + cr] = true;\n    return ac;\n  }, {});\n  var dict2 = a2.reduce(function (ac, cr) {\n    ac[_typeof(cr) + cr] = true;\n    return ac;\n  }, {});\n  var dictAdded = {};\n  var res = [];\n  var i, k, x;\n\n  for (i = 0; i < a1.length; ++i) {\n    x = a1[i];\n    k = _typeof(x) + x;\n\n    if (dict1[k] && dict2[k] && !dictAdded[k]) {\n      res.push(x);\n      dictAdded[k] = true;\n    }\n  }\n\n  for (i = 0; i < a2.length; ++i) {\n    x = a2[i];\n    k = _typeof(x) + x;\n\n    if (dict1[k] && dict2[k] && !dictAdded[k]) {\n      res.push(x);\n      dictAdded[k] = true;\n    }\n  }\n\n  return res;\n}\n\nfunction arrayIsSubset(childArr, parentArr) {\n  if (!(childArr instanceof Array) || !(parentArr instanceof Array)) return false;\n  var dict2 = parentArr.reduce(function (ac, cr) {\n    ac[_typeof(cr) + cr] = true;\n    return ac;\n  }, {});\n  var res = true;\n  var n = childArr.length;\n  var k;\n\n  for (var i = 0; i < n; ++i) {\n    k = _typeof(childArr[i]) + childArr[i];\n\n    if (!dict2[k]) {\n      res = false;\n      break;\n    }\n  }\n\n  return res;\n}\n/***\r\n *\r\n * @param {[]}a1\r\n * @param {[]}a2\r\n * @param {boolean=} order\r\n * @returns {boolean}\r\n */\n\n\nfunction arrayCompare(a1, a2, order) {\n  if (a1 === a2) return true;\n  if (!a1 || !a2) return false;\n  if (a1.length !== a2.length) return false;\n  if (!a1.sort || !a2.sort) return false;\n\n  if (!order) {\n    a1.sort();\n    a2.sort();\n  }\n\n  var n = a1.length;\n\n  for (var i = 0; i < n; ++i) {\n    if (a1[i] !== a2[i]) return false;\n  }\n\n  return true;\n}\n/***\r\n *\r\n * @param {Array} arr\r\n */\n\n\nfunction arrayShuffle(arr) {\n  var temp;\n  var j;\n\n  for (var i = 0; i < arr.length; ++i) {\n    j = Math.floor(Math.random() * arr.length);\n\n    if (i !== j) {\n      temp = arr[i];\n      arr[i] = arr[j];\n      arr[j] = temp;\n    }\n  }\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/DataStructure/Array.js?");

/***/ }),

/***/ "./node_modules/absol/src/DataStructure/Heap.js":
/*!******************************************************!*\
  !*** ./node_modules/absol/src/DataStructure/Heap.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\nexports.defaultCmp = defaultCmp;\nexports.heapDown = heapDown;\nexports.heapPop = heapPop;\nexports.heapPush = heapPush;\nexports.heapUp = heapUp;\nexports.heapify = heapify;\n\nfunction defaultCmp(x, y) {\n  if (x < y) {\n    return -1;\n  }\n\n  if (x > y) {\n    return 1;\n  }\n\n  return 0;\n}\n\n;\n/**\r\n * \r\n * @param {Array} arr \r\n * @param {Number} pos \r\n * @param {Function} cmp \r\n */\n\nfunction heapDown(arr, pos, cmp) {\n  if (!cmp) cmp = defaultCmp;\n  var item = arr[pos];\n  var endPos = arr.length;\n  var childPos = pos << 1 | 1;\n  var childRightPos;\n\n  while (childPos < endPos) {\n    childRightPos = childPos + 1;\n\n    if (childPos + 1 < endPos && cmp(arr[childPos], arr[childRightPos]) > 0) {\n      childPos = childRightPos;\n    }\n\n    if (cmp(arr[childPos], item) < 0) {\n      arr[pos] = arr[childPos];\n      arr[childPos] = item;\n      pos = childPos;\n      childPos = pos << 1 | 1;\n    } else break;\n  }\n}\n/**\r\n * \r\n * @param {Array} arr \r\n * @param {Number} pos \r\n * @param {Function} cmp \r\n */\n\n\nfunction heapUp(arr, pos, cmp) {\n  if (!cmp) cmp = defaultCmp;\n  var item = arr[pos];\n  var parPos;\n\n  while (pos > 0) {\n    parPos = pos - 1 >> 1;\n\n    if (cmp(arr[parPos], item) > 0) {\n      arr[pos] = arr[parPos];\n      arr[parPos] = item;\n      pos = parPos;\n    } else break;\n  }\n}\n/**\r\n *\r\n * @param {Array} arr\r\n * @param {Function} cmp\r\n */\n\n\nfunction heapify(arr, cmp) {\n  if (!cmp) cmp = defaultCmp;\n  var endPos = arr.length;\n\n  for (var i = 0; i < endPos; ++i) {\n    heapUp(arr, i, cmp);\n  }\n}\n/**\r\n * \r\n * @param {Array} arr \r\n * @param {Function} cmp \r\n */\n\n\nfunction heapPop(arr, cmp) {\n  if (!cmp) cmp = defaultCmp;\n  var item = arr[0];\n  var lastItem = arr.pop();\n\n  if (arr.length > 0) {\n    arr[0] = lastItem;\n    heapDown(arr, 0, cmp);\n  }\n\n  return item;\n}\n/**\r\n * \r\n * @param {Array} arr \r\n * @param {*} item\r\n * @param {Function} cmp \r\n */\n\n\nfunction heapPush(arr, item, cmp) {\n  if (!cmp) cmp = defaultCmp;\n  arr.push(item);\n  heapUp(arr, arr.length - 1, cmp);\n}\n\nfunction Heap(cmd) {\n  this.cmp = cmd || defaultCmp;\n  this.arr = [];\n}\n/**\r\n * @param {Array} arr\r\n * @param {Function} cmp\r\n * @returns {Heap}\r\n */\n\n\nHeap.fromArray = function (arr, cmp) {\n  var heap = new Heap(cmp);\n  heapify(arr);\n  heap.arr = arr;\n  return heap;\n};\n\nHeap.prototype.push = function (x) {\n  heapPush(this.arr, x, this.cmp);\n  return this;\n};\n\nHeap.prototype.pop = function () {\n  return heapPop(this.arr, this.cmp);\n};\n\nHeap.prototype.peek = function () {\n  return this.arr[0];\n};\n\nHeap.prototype.contains = function (x) {\n  return this.arr.indexOf(x) !== -1;\n};\n\nHeap.prototype.clear = function () {\n  this.arr.splice(0, this.arr.length);\n  return this;\n};\n\nHeap.prototype.empty = function () {\n  return this.arr.length === 0;\n};\n\nHeap.prototype.size = function () {\n  return this.arr.length;\n};\n\nHeap.prototype.clone = function () {\n  var heap;\n  heap = new Heap(this.cmp);\n  heap.arr = this.arr.slice(0);\n  return heap;\n};\n\nHeap.prototype.toArray = function () {\n  return this.arr.slice(0);\n};\n\nHeap.prototype.toSortedArray = function () {\n  var res = [];\n  var heap = this.clone();\n\n  while (!heap.empty()) {\n    res.push(heap.pop());\n  }\n\n  return res;\n};\n\nHeap.prototype.insert = Heap.prototype.push;\nHeap.prototype.top = Heap.prototype.peek;\nHeap.prototype.front = Heap.prototype.peek;\nHeap.prototype.has = Heap.prototype.contains;\nHeap.prototype.copy = Heap.prototype.clone;\nvar _default = Heap;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/DataStructure/Heap.js?");

/***/ }),

/***/ "./node_modules/absol/src/Detector/BrowserDetector.js":
/*!************************************************************!*\
  !*** ./node_modules/absol/src/Detector/BrowserDetector.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.calcBenchmark = calcBenchmark;\nexports[\"default\"] = void 0;\n\nvar _BrowserRules = _interopRequireDefault(__webpack_require__(/*! ./BrowserRules */ \"./node_modules/absol/src/Detector/BrowserRules.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\r\n *\r\n * @param {BrowserRules} rulesheet\r\n */\nfunction BrowserDetector(rulesheet) {\n  this.au = __webpack_require__.g.navigator ? navigator.userAgent || '' : '';\n  this.rulesheet = rulesheet;\n  this.os = this.detectByRules(this.rulesheet.os);\n  this.device = this.detectByRules(this.rulesheet.device);\n  this.engine = this.detectByRules(this.rulesheet.engine);\n  this.browser = this.detectByRules(this.rulesheet.browser);\n  this.isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n  this.isCococ = navigator.userAgent.toLowerCase().indexOf('coc_coc_browser') >= 1;\n  this.isSafari = !this.isCococ && navigator.userAgent.toLowerCase().indexOf('safari') > -1 && navigator.userAgent.toLowerCase().indexOf('win') < 0 && navigator.userAgent.toLowerCase().indexOf('android') < 0; // this.isSafari = /constructor/i.test(window.HTMLElement) || window.safari;\n\n  this.isMobile = navigator.userAgent.indexOf('KFFOWI') > -1 || navigator.userAgent.toLowerCase().indexOf('mobile') > -1;\n  this.isMacOSWebView = /Macintosh/.test(this.au) && /AppWebkit/.test(this.au) && !/Safari/.test(this.au);\n  this.isChromeIOS = /CriOS\\/[\\d]+/.test(this.au);\n  this.hasTouch = 'ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch || navigator.maxTouchPoints > 0 || window.navigator.msMaxTouchPoints > 0;\n  this.isTouchDevice = this.isMobile && this.hasTouch;\n\n  this.supportPassiveEvent = function () {\n    var supportsPassiveOption = false;\n\n    try {\n      var opts = Object.defineProperty({}, 'passive', {\n        get: function get() {\n          supportsPassiveOption = true;\n        }\n      });\n      window.addEventListener('test', null, opts);\n      window.removeEventListener('test', null, opts);\n    } catch (e) {}\n\n    return supportsPassiveOption;\n  }();\n\n  this.supportGridLayout = typeof document.createElement('div').style.grid === 'string';\n  Object.defineProperty(this, 'zoom', {\n    get: function get() {\n      return this.getZoom();\n    },\n    enumerable: true,\n    configurable: false\n  });\n}\n\nBrowserDetector.prototype.detectByRules = function (rules) {\n  var result = {};\n\n  for (var i = 0; i < rules.length; ++i) {\n    var rule = rules[i];\n    var type = rule[0];\n    var rgx = rule[1];\n\n    if (typeof rgx == 'function') {\n      rgx = rgx(this.au.toLowerCase());\n    }\n\n    if (Object.prototype.toString.call(rgx).indexOf('RegExp') >= 0) {\n      var matched = this.au.toLowerCase().match(rgx);\n\n      if (matched) {\n        result.type = type;\n\n        if (matched[1]) {\n          result.version = matched[1];\n        }\n\n        break;\n      }\n    } else if (typeof rgx == 'string') {\n      if (this.au.toLowerCase().indexOf(rgx) >= 0) {\n        result.type = type;\n      }\n    }\n  }\n\n  return result;\n};\n\nBrowserDetector.prototype.getZoom = function () {\n  //todo: wrong on chrome\n  var type;\n\n  if ('chrome' in window) {\n    type = \"chrome\";\n  } else if (this.isSafari) {\n    type = 'safari';\n  } else if ('orientation' in window && 'webkitRequestAnimationFrame' in window) {\n    type = 'webkitMobile';\n  } else if ('webkitRequestAnimationFrame' in window) {\n    type = 'webkit';\n  }\n\n  switch (type) {\n    case 'chrome':\n      return Math.round(window.outerWidth / window.innerWidth * 100) / 100;\n\n    case 'safari':\n      return Math.round(document.documentElement.clientWidth / window.innerWidth * 100) / 100;\n\n    case 'webkitMobile':\n      return (Math.abs(window.orientation) == 90 ? screen.height : screen.width) / window.innerWidth;\n\n    case 'webkit':\n      return function () {\n        var important = function important(str) {\n          return str.replace(/;/g, \" !important;\");\n        };\n\n        var div = document.createElement('div');\n        div.innerHTML = \"1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>0\";\n        div.setAttribute('style', important('font: 100px/1em sans-serif; -webkit-text-size-adjust: none; text-size-adjust: none; height: auto; width: 1em; padding: 0; overflow: visible;'));\n        var container = document.createElement('div');\n        container.setAttribute('style', important('width:0; height:0; overflow:hidden; visibility:hidden; position: absolute;'));\n        container.appendChild(div);\n        document.body.appendChild(container);\n        var zoom = 1000 / div.clientHeight;\n        zoom = Math.round(zoom * 100) / 100;\n        document.body.removeChild(container);\n        return zoom;\n      }();\n\n    default:\n      return 1;\n  }\n\n  return 1;\n};\n\nfunction calcBenchmark() {\n  var now = new Date().getTime();\n  var i = 0;\n\n  while (now === new Date().getTime()) {}\n\n  now++;\n\n  while (now === new Date().getTime()) {\n    ++i;\n  }\n\n  return i;\n}\n\nBrowserDetector.prototype.calcBenchmark = calcBenchmark;\n\nvar _default = new BrowserDetector(_BrowserRules[\"default\"]);\n\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Detector/BrowserDetector.js?");

/***/ }),

/***/ "./node_modules/absol/src/Detector/BrowserRules.js":
/*!*********************************************************!*\
  !*** ./node_modules/absol/src/Detector/BrowserRules.js ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar external = __webpack_require__.g.external;\nvar re_msie = /\\b(?:msie |ie |trident\\/[0-9].*rv[ :])([0-9.]+)/;\nvar re_blackberry_10 = /\\bbb10\\b.+?\\bversion\\/([\\d.]+)/;\nvar re_blackberry_6_7 = /\\bblackberry\\b.+\\bversion\\/([\\d.]+)/;\nvar re_blackberry_4_5 = /\\bblackberry\\d+\\/([\\d.]+)/;\nvar NA_VERSION = \"-1\";\nvar DEVICES = [[\"nokia\", function (ua) {\n  //  nokia/-1\n  if (ua.indexOf(\"nokia \") !== -1) {\n    return /\\bnokia ([0-9]+)?/;\n  } else {\n    return /\\bnokia([a-z0-9]+)?/;\n  }\n}], //Android WP\n[\"samsung\", function (ua) {\n  if (ua.indexOf(\"samsung\") !== -1) {\n    return /\\bsamsung(?:[ \\-](?:sgh|gt|sm))?-([a-z0-9]+)/;\n  } else {\n    return /\\b(?:sgh|sch|gt|sm)-([a-z0-9]+)/;\n  }\n}], [\"wp\", function (ua) {\n  return ua.indexOf(\"windows phone \") !== -1 || ua.indexOf(\"xblwp\") !== -1 || ua.indexOf(\"zunewp\") !== -1 || ua.indexOf(\"windows ce\") !== -1;\n}], [\"pc\", \"windows\"], [\"ipad\", \"ipad\"], // ipod iphone\n[\"ipod\", \"ipod\"], [\"iphone\", /\\biphone\\b|\\biph(\\d)/], [\"mac\", \"macintosh\"], [\"mi\", /\\bmi[ \\-]?([a-z0-9 ]+(?= build|\\)))/], [\"hongmi\", /\\bhm[ \\-]?([a-z0-9]+)/], [\"aliyun\", /\\baliyunos\\b(?:[\\-](\\d+))?/], [\"meizu\", function (ua) {\n  return ua.indexOf(\"meizu\") >= 0 ? /\\bmeizu[\\/ ]([a-z0-9]+)\\b/ : /\\bm([0-9cx]{1,4})\\b/;\n}], [\"nexus\", /\\bnexus ([0-9s.]+)/], [\"huawei\", function (ua) {\n  var re_mediapad = /\\bmediapad (.+?)(?= build\\/huaweimediapad\\b)/;\n\n  if (ua.indexOf(\"huawei-huawei\") !== -1) {\n    return /\\bhuawei\\-huawei\\-([a-z0-9\\-]+)/;\n  } else if (re_mediapad.test(ua)) {\n    return re_mediapad;\n  } else {\n    return /\\bhuawei[ _\\-]?([a-z0-9]+)/;\n  }\n}], [\"lenovo\", function (ua) {\n  if (ua.indexOf(\"lenovo-lenovo\") !== -1) {\n    return /\\blenovo\\-lenovo[ \\-]([a-z0-9]+)/;\n  } else {\n    return /\\blenovo[ \\-]?([a-z0-9]+)/;\n  }\n}], [\"zte\", function (ua) {\n  if (/\\bzte\\-[tu]/.test(ua)) {\n    return /\\bzte-[tu][ _\\-]?([a-su-z0-9\\+]+)/;\n  } else {\n    return /\\bzte[ _\\-]?([a-su-z0-9\\+]+)/;\n  }\n}], [\"vivo\", /\\bvivo(?: ([a-z0-9]+))?/], [\"htc\", function (ua) {\n  if (/\\bhtc[a-z0-9 _\\-]+(?= build\\b)/.test(ua)) {\n    return /\\bhtc[ _\\-]?([a-z0-9 ]+(?= build))/;\n  } else {\n    return /\\bhtc[ _\\-]?([a-z0-9 ]+)/;\n  }\n}], [\"oppo\", /\\boppo[_ ]([a-z0-9]+)/], [\"konka\", /\\bkonka[_\\-]([a-z0-9]+)/], [\"sonyericsson\", /\\bmt([a-z0-9]+)/], [\"coolpad\", /\\bcoolpad[_ ]?([a-z0-9]+)/], [\"lg\", /\\blg[\\-]([a-z0-9]+)/], [\"android\", /\\bandroid\\b|\\badr\\b/], [\"blackberry\", function (ua) {\n  if (ua.indexOf(\"blackberry\") >= 0) {\n    return /\\bblackberry\\s?(\\d+)/;\n  }\n\n  return \"bb10\";\n}]];\nvar OS = [[\"wp\", function (ua) {\n  if (ua.indexOf(\"windows phone \") !== -1) {\n    return /\\bwindows phone (?:os )?([0-9.]+)/;\n  } else if (ua.indexOf(\"xblwp\") !== -1) {\n    return /\\bxblwp([0-9.]+)/;\n  } else if (ua.indexOf(\"zunewp\") !== -1) {\n    return /\\bzunewp([0-9.]+)/;\n  }\n\n  return \"windows phone\";\n}], [\"windows\", /\\bwindows nt ([0-9.]+)/], [\"macosx\", /\\bmac os x ([0-9._]+)/], [\"ios\", function (ua) {\n  if (/\\bcpu(?: iphone)? os /.test(ua)) {\n    return /\\bcpu(?: iphone)? os ([0-9._]+)/;\n  } else if (ua.indexOf(\"iph os \") !== -1) {\n    return /\\biph os ([0-9_]+)/;\n  } else {\n    return /\\bios\\b/;\n  }\n}], [\"yunos\", /\\baliyunos ([0-9.]+)/], [\"android\", function (ua) {\n  if (ua.indexOf(\"android\") >= 0) {\n    return /\\bandroid[ \\/-]?([0-9.x]+)?/;\n  } else if (ua.indexOf(\"adr\") >= 0) {\n    if (ua.indexOf(\"mqqbrowser\") >= 0) {\n      return /\\badr[ ]\\(linux; u; ([0-9.]+)?/;\n    } else {\n      return /\\badr(?:[ ]([0-9.]+))?/;\n    }\n  }\n\n  return \"android\"; //return /\\b(?:android|\\badr)(?:[\\/\\- ](?:\\(linux; u; )?)?([0-9.x]+)?/;\n}], [\"chromeos\", /\\bcros i686 ([0-9.]+)/], [\"linux\", \"linux\"], [\"windowsce\", /\\bwindows ce(?: ([0-9.]+))?/], [\"symbian\", /\\bsymbian(?:os)?\\/([0-9.]+)/], [\"blackberry\", function (ua) {\n  var m = ua.match(re_blackberry_10) || ua.match(re_blackberry_6_7) || ua.match(re_blackberry_4_5);\n  return m ? {\n    version: m[1]\n  } : \"blackberry\";\n}], ['ie', /\\rv\\:\\/([0-9.]+)/]];\nvar ENGINE = [[\"edgehtml\", /edge\\/([0-9.]+)/], [\"trident\", re_msie], [\"blink\", function () {\n  return \"chrome\" in __webpack_require__.g && \"CSS\" in __webpack_require__.g && /\\bapplewebkit[\\/]?([0-9.+]+)/;\n}], [\"webkit\", /\\bapplewebkit[\\/]?([0-9.+]+)/], [\"gecko\", function (ua) {\n  var match = ua.match(/\\brv:([\\d\\w.]+).*\\bgecko\\/(\\d+)/);\n\n  if (match) {\n    return {\n      version: match[1] + \".\" + match[2]\n    };\n  }\n}], [\"presto\", /\\bpresto\\/([0-9.]+)/], [\"androidwebkit\", /\\bandroidwebkit\\/([0-9.]+)/], [\"coolpadwebkit\", /\\bcoolpadwebkit\\/([0-9.]+)/], [\"u2\", /\\bu2\\/([0-9.]+)/], [\"u3\", /\\bu3\\/([0-9.]+)/]];\nvar BROWSER = [['coccoc', /coc_coc_browser\\/([0-9.]+)/], // Microsoft Edge Browser, Default browser in Windows 10.\n[\"edge\", /edge\\/([0-9.]+)/], [\"chrome-edge\", /chrome.+edg\\/([0-9.]+)/], // Sogou.\n[\"sogou\", function (ua) {\n  if (ua.indexOf(\"sogoumobilebrowser\") >= 0) {\n    return /sogoumobilebrowser\\/([0-9.]+)/;\n  } else if (ua.indexOf(\"sogoumse\") >= 0) {\n    return true;\n  }\n\n  return / se ([0-9.x]+)/;\n}], // Maxthon\n[\"maxthon\", function () {\n  try {\n    if (external && (external.mxVersion || external.max_version)) {\n      return {\n        version: external.mxVersion || external.max_version\n      };\n    }\n  } catch (ex) {\n    /* */\n  }\n\n  return /\\b(?:maxthon|mxbrowser)(?:[ \\/]([0-9.]+))?/;\n}], [\"micromessenger\", /\\bmicromessenger\\/([\\d.]+)/], [\"qq\", /\\bm?qqbrowser\\/([0-9.]+)/], [\"green\", \"greenbrowser\"], [\"tt\", /\\btencenttraveler ([0-9.]+)/], [\"liebao\", function (ua) {\n  if (ua.indexOf(\"liebaofast\") >= 0) {\n    return /\\bliebaofast\\/([0-9.]+)/;\n  }\n\n  if (ua.indexOf(\"lbbrowser\") === -1) {\n    return false;\n  }\n\n  var version;\n\n  try {\n    if (external && external.LiebaoGetVersion) {\n      version = external.LiebaoGetVersion();\n    }\n  } catch (ex) {\n    /* */\n  }\n\n  return {\n    version: version || NA_VERSION\n  };\n}], [\"tao\", /\\btaobrowser\\/([0-9.]+)/], [\"coolnovo\", /\\bcoolnovo\\/([0-9.]+)/], [\"saayaa\", \"saayaa\"], [\"baidu\", /\\b(?:ba?idubrowser|baiduhd)[ \\/]([0-9.x]+)/], [\"ie\", re_msie], [\"mi\", /\\bmiuibrowser\\/([0-9.]+)/], [\"opera\", function (ua) {\n  var re_opera_old = /\\bopera.+version\\/([0-9.ab]+)/;\n  var re_opera_new = /\\bopr\\/([0-9.]+)/;\n  return re_opera_old.test(ua) ? re_opera_old : re_opera_new;\n}], [\"oupeng\", /\\boupeng\\/([0-9.]+)/], [\"yandex\", /yabrowser\\/([0-9.]+)/], [\"ali-ap\", function (ua) {\n  if (ua.indexOf(\"aliapp\") > 0) {\n    return /\\baliapp\\(ap\\/([0-9.]+)\\)/;\n  } else {\n    return /\\balipayclient\\/([0-9.]+)\\b/;\n  }\n}], [\"ali-ap-pd\", /\\baliapp\\(ap-pd\\/([0-9.]+)\\)/], [\"ali-am\", /\\baliapp\\(am\\/([0-9.]+)\\)/], [\"ali-tb\", /\\baliapp\\(tb\\/([0-9.]+)\\)/], [\"ali-tb-pd\", /\\baliapp\\(tb-pd\\/([0-9.]+)\\)/], [\"ali-tm\", /\\baliapp\\(tm\\/([0-9.]+)\\)/], [\"ali-tm-pd\", /\\baliapp\\(tm-pd\\/([0-9.]+)\\)/], [\"uc\", function (ua) {\n  if (ua.indexOf(\"ucbrowser/\") >= 0) {\n    return /\\bucbrowser\\/([0-9.]+)/;\n  } else if (ua.indexOf(\"ubrowser/\") >= 0) {\n    return /\\bubrowser\\/([0-9.]+)/;\n  } else if (/\\buc\\/[0-9]/.test(ua)) {\n    return /\\buc\\/([0-9.]+)/;\n  } else if (ua.indexOf(\"ucweb\") >= 0) {\n    // `ucweb/2.0` is compony info.\n    // `UCWEB8.7.2.214/145/800` is browser info.\n    return /\\bucweb([0-9.]+)?/;\n  } else {\n    return /\\b(?:ucbrowser|uc)\\b/;\n  }\n}], [\"baiduboxapp\", function (ua) {\n  var back = 0;\n  var a;\n\n  if (/ baiduboxapp\\//i.test(ua)) {\n    a = /([\\d+.]+)_(?:diordna|enohpi)_/.exec(ua);\n\n    if (a) {\n      a = a[1].split(\".\");\n      back = a.reverse().join(\".\");\n    } else if (a = /baiduboxapp\\/([\\d+.]+)/.exec(ua)) {\n      back = a[1];\n    }\n\n    return {\n      version: back\n    };\n  }\n\n  return false;\n}], [\"oppobrowser\", /\\boppobrowser\\/([0-9.]+)/], [\"edge-android\", / (?:edga)\\/([0-9.]+)/], [\"chrome\", / (?:chrome|crios|crmo)\\/([0-9.]+)/], // Android safari \n[\"android\", function (ua) {\n  if (ua.indexOf(\"android\") === -1) {\n    return;\n  }\n\n  return /\\bversion\\/([0-9.]+(?: beta)?)/;\n}], [\"blackberry\", function (ua) {\n  var m = ua.match(re_blackberry_10) || ua.match(re_blackberry_6_7) || ua.match(re_blackberry_4_5);\n  return m ? {\n    version: m[1]\n  } : \"blackberry\";\n}], [\"safari\", /\\bversion\\/([0-9.]+(?: beta)?)(?: mobile(?:\\/[a-z0-9]+)?)? safari\\//], //  Safari, WebView\n[\"webview\", /\\bcpu(?: iphone)? os (?:[0-9._]+).+\\bapplewebkit\\b/], [\"firefox\", /\\bfirefox\\/([0-9.ab]+)/], [\"nokia\", /\\bnokiabrowser\\/([0-9.]+)/]];\nmodule.exports = {\n  device: DEVICES,\n  os: OS,\n  browser: BROWSER,\n  engine: ENGINE,\n  re_msie: re_msie\n};\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Detector/BrowserRules.js?");

/***/ }),

/***/ "./node_modules/absol/src/HTML5/AElement.js":
/*!**************************************************!*\
  !*** ./node_modules/absol/src/HTML5/AElement.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _EventEmitter = _interopRequireDefault(__webpack_require__(/*! ./EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nvar _BrowserDetector = _interopRequireDefault(__webpack_require__(/*! ../Detector/BrowserDetector */ \"./node_modules/absol/src/Detector/BrowserDetector.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! ./OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @augments Node\r\n * @augments ChildNode\r\n * @augments ParentNode\r\n * @augments Element\r\n * @augments HTMLElement\r\n * @augments EventEmitter\r\n * @augments ElementCSSInlineStyle\r\n * @constructor\r\n */\nfunction AElement() {\n  _EventEmitter[\"default\"].call(this);\n\n  this._azar_extendAttributes = this._azar_extendAttributes || {};\n  this._azar_extendTags = {};\n  this.eventHandler = {};\n}\n\n_OOP[\"default\"].mixClass(AElement, _EventEmitter[\"default\"]);\n\nAElement.prototype.init = function (props) {\n  Object.assign(this, props || {});\n};\n\nAElement.prototype.eventHandler = {};\n/***\r\n * run super-class method\r\n */\n\nAElement.prototype[\"super\"] = function () {\n  /* nope */\n};\n/**\r\n * @typedef {Object} AttributeDefiner\r\n * @property {Function} set\r\n * @property {Function} get\r\n * @property {Function} remove\r\n *\r\n * @param {String} key\r\n * @param {AttributeDefiner} def\r\n */\n\n\nAElement.prototype.defineAttribute = function (key, def) {\n  this._azar_extendAttributes[key] = def;\n};\n\nAElement.prototype.defineAttributes = function (defs) {\n  for (var key in defs) {\n    this.defineAttribute(key, defs[key]);\n  }\n};\n\nAElement.prototype.attr = function () {\n  if (arguments.length === 1) {\n    if (typeof arguments[0] == 'string') {\n      if (this._azar_extendAttributes[arguments[0]]) {\n        return this._azar_extendAttributes[arguments[0]].get.call(this);\n      } else return this.getAttribute(arguments[0]);\n    } else {\n      for (var key in arguments[0]) {\n        this.attr(key, arguments[0][key]);\n      }\n    }\n  } else {\n    if (arguments.length == 2) {\n      if (arguments[1] === null || arguments[1] === undefined) {\n        if (this._azar_extendAttributes[arguments[0]]) {\n          this._azar_extendAttributes[arguments[0]].remove.call(this, arguments[1]);\n        } else this.removeAttribute(arguments[0]);\n      } else {\n        if (this._azar_extendAttributes[arguments[0]]) {\n          this._azar_extendAttributes[arguments[0]].set.call(this, arguments[1]);\n        } else {\n          this.setAttribute(arguments[0], arguments[1]);\n        }\n      }\n    }\n  }\n\n  return this;\n};\n/***\r\n * add style\r\n * @param {CSSStyleDeclaration|string|{}} arg0\r\n * @param {string} arg1\r\n * @returns {this}\r\n */\n\n/**\r\n * add style\r\n * @param {CSSStyleDeclaration|string|{}} arg0\r\n * @param {string|[]=} arg1\r\n * @returns {this}\r\n */\n\n\nAElement.prototype.addStyle = function (arg0, arg1) {\n  if (typeof arg0 == 'string') {\n    if (arg0.indexOf('-') >= 0) {\n      if (arg1 && arg1.forEach) {\n        this.style.setProperty.apply(this.style, [arg0].concat(arg1));\n      } else {\n        this.style.setProperty(arg0, arg1);\n      }\n    } else {\n      this.style[arg0] = arg1;\n    }\n  } else {\n    for (var key in arg0) {\n      this.addStyle(key, arg0[key]);\n    }\n  }\n  return this;\n};\n/***\r\n *\r\n * @param {string|string[]|CSSStyleDeclaration} arg0\r\n * @returns {this}\r\n */\n\n\nAElement.prototype.removeStyle = function (arg0) {\n  var key;\n\n  if (arg0.charAt) {\n    if (arg0.indexOf('-') >= 0) {\n      this.style.removeProperty(arg0);\n    } else {\n      this.style[arg0] = null;\n      delete this.style[arg0];\n    }\n  } else {\n    if (arg0.map && arg0.forEach) {\n      for (var i = 0; i < arg0.length; ++i) {\n        this.removeStyle(arg0[i]);\n      }\n    } else {\n      for (key in arg0) {\n        this.removeStyle(key);\n      }\n    }\n  }\n\n  return this;\n};\n\nAElement.prototype.addChild = function (child) {\n  if (child.indexOf && child.map && child.forEach) {\n    for (var i = 0; i < child.length; ++i) {\n      this.appendChild(child[i]);\n    }\n  } else this.appendChild(child);\n\n  return this;\n};\n\nAElement.prototype.addTo = function (parent) {\n  if (parent && parent.appendChild) {\n    if (parent.addChild) parent.addChild(this);else parent.appendChild(this);\n  } else throw Error(\"Can not append to \" + parent + \"!\");\n\n  return this;\n};\n\nAElement.prototype.selfRemove = function () {\n  if (this.parentElement) this.parentElement.removeChild(this);\n  return this;\n};\n\nAElement.prototype.selfReplace = function (newNode) {\n  if (this.parentElement) this.parentElement.replaceChild(newNode, this);\n  return this;\n};\n\nAElement.prototype.clearChild = function () {\n  while (this.firstChild) {\n    this.removeChild(this.firstChild);\n  }\n\n  return this;\n};\n/**\r\n *\r\n * @param {string|Array} className\r\n * @returns {Boolean}\r\n */\n\n\nAElement.prototype.hasClass = function (className) {\n  return this.classList.contains(className);\n};\n/**\r\n *\r\n * @param {string|Array} className\r\n * @returns {this}\r\n */\n\n\nAElement.prototype.addClass = function (className) {\n  if (className && className.forEach && className.map) {\n    for (var i = 0; i < className.length; ++i) {\n      this.classList.add(className[i]);\n    }\n  } else this.classList.add(className);\n\n  return this;\n};\n/**\r\n *\r\n * @param {string|Array} className\r\n * @returns {this}\r\n */\n\n\nAElement.prototype.removeClass = function (className) {\n  if (className && className.forEach && className.map) {\n    for (var i = 0; i < className.length; ++i) {\n      this.classList.remove(className[i]);\n    }\n  } else this.classList.remove(className);\n\n  return this;\n};\n\nAElement.prototype.getComputedStyleValue = function (key) {\n  return window.getComputedStyle(this).getPropertyValue(key);\n};\n\nAElement.prototype.getFontSize = function () {\n  return parseFloat(this.getComputedStyleValue('font-size').replace('px', ''));\n};\n\nAElement.prototype.findChildAfter = function (obj) {\n  var r = 0;\n\n  for (var i = 0; i < this.childNodes.length; ++i) {\n    if (obj == this.childNodes[i]) {\n      r = i + 1;\n      break;\n    }\n  }\n\n  if (this.childNodes[r]) return this.childNodes[r];\n  return undefined;\n};\n\nAElement.prototype.findChildBefore = function (obj) {\n  var r = 0;\n\n  for (var i = 0; i < this.childNodes.length; ++i) {\n    if (obj == this.childNodes[i]) {\n      r = i - 1;\n      break;\n    }\n  }\n\n  if (this.childNodes[r]) return this.childNodes[r];\n  return undefined;\n};\n\nAElement.prototype.addChildBefore = function (newItem, bf) {\n  this.insertBefore(newItem, bf);\n  return this;\n};\n\nAElement.prototype.addChildAfter = function (newItem, at) {\n  var atIdx;\n\n  if (at) {\n    atIdx = Array.prototype.indexOf.call(this.childNodes, at);\n\n    if (atIdx >= 0) {\n      this.insertBefore(newItem, this.childNodes[atIdx + 1]);\n    } else {\n      throw new Error(\"Failed to execute 'addChildAfter' on 'Node': The node before which the new node is to be inserted is not a child of this node.\");\n    }\n  } else {\n    this.insertBefore(newItem, this.firstChild);\n  }\n\n  return this;\n};\n/**\r\n * @returns {DOMRect}\r\n */\n\n\nAElement.prototype.getBoundingRecursiveRect = function (depth) {\n  if (depth === undefined) depth = 10000;\n  var current, next;\n  var oo = 1000000;\n  var ac = {\n    left: oo,\n    right: -oo,\n    top: oo,\n    bottom: -oo,\n    width: 0,\n    height: 0\n  };\n  var stacks = [{\n    e: this,\n    d: 0\n  }];\n\n  while (stacks.length > 0) {\n    current = stacks.pop();\n\n    if (current.e.getBoundingClientRect) {\n      var cRect = current.e.getBoundingClientRect();\n      if (!cRect || !(cRect.width || cRect.height || cRect.left || cRect.right)) continue;\n      ac.left = Math.min(ac.left, cRect.left);\n      ac.top = Math.min(ac.top, cRect.top);\n      ac.bottom = Math.max(ac.bottom, cRect.bottom);\n      ac.right = Math.max(ac.right, cRect.right);\n      ac.height = ac.bottom - ac.top;\n      ac.width = ac.right - ac.left;\n      var childNodes = current.e.childNodes;\n\n      if (childNodes && childNodes.length > 0 && current.d < depth) {\n        for (var i = 0; i < childNodes.length; ++i) {\n          next = {\n            e: childNodes[i],\n            d: current.d + 1\n          };\n          stacks.push(next);\n        }\n      }\n    }\n  }\n\n  return ac;\n};\n/***\r\n *\r\n * @param parent\r\n * @returns {boolean}\r\n */\n\n\nAElement.prototype.isDescendantOf = function (parent) {\n  if (!parent || !parent.childNodes || !parent.childNodes.length) return false;\n  var child = this;\n\n  while (child) {\n    if (child === parent) return true;\n    child = child.parentNode;\n  }\n\n  return false;\n};\n/*************************** **********************/\n\n\nAElement.prototype.getCSSRules = function () {\n  var sheets = document.styleSheets;\n  var ret = [];\n  this.matches = this.matches || this.webkitMatchesSelector || this.mozMatchesSelector || this.msMatchesSelector || this.oMatchesSelector;\n\n  for (var i in sheets) {\n    if (sheets[i].href) continue; //because can not access, you must clone link node instead\n\n    var rules = sheets[i].rules || sheets[i].cssRules;\n\n    for (var r in rules) {\n      if (this.matches(rules[r].selectorText)) {\n        ret.push(rules[r]);\n      }\n    }\n  }\n\n  return ret;\n};\n/***\r\n * @returns {Promise}\r\n */\n\n/***\r\n * WARNING: this function may be unsafe\r\n */\n\n\nAElement.prototype.afterDisplayed = function (requestTimesOut) {\n  if (!requestTimesOut) requestTimesOut = 24 * 3600 * 33; // var tracer = new Error();\n\n  var current = this;\n  return new Promise(function (resolve, reject) {\n    function trace() {\n      if (requestTimesOut < 0) {// reject(tracer);\n        // if (absol.BUILD && absol.BUILD.version == \"DEBUG\")\n        //     console.warn(\"Element not displayed\", trace);\n      } else {\n        requestTimesOut--;\n        var bound = current.getBoundingClientRect();\n\n        if (bound.width > 0 || bound.height > 0) {\n          resolve();\n        } else {\n          setTimeout(trace, 33);\n          return;\n        }\n      }\n    }\n\n    trace();\n  });\n};\n\n!function () {\n  var origin = AElement.prototype.on;\n\n  if (_BrowserDetector[\"default\"].isSafari && !_BrowserDetector[\"default\"].isMobile) {\n    AElement.prototype.on = function () {\n      if (!this.isSupportedEvent('mouseleave') && arguments[0] == 'mouseleave') {\n        this.defineEvent('mouseleave');\n\n        var mouseLeaveEventHandler = function mouseLeaveEventHandler(event) {\n          var bound = this.getBoundingClientRect();\n          var ok = false;\n          ok |= event.clientX < bound.left + 1;\n          ok |= event.clientX >= bound.right - 1;\n          ok |= event.clientY < bound.top + 1;\n          ok |= event.clientY >= bound.bottom - 1;\n          if (ok) this.emit('mouseleave', event);\n        };\n\n        this.addEventListener('mouseleave', mouseLeaveEventHandler, true);\n      }\n\n      origin.apply(this, arguments);\n      return this;\n    };\n  }\n\n  if (_BrowserDetector[\"default\"].isFirefox) {\n    AElement.prototype.on = function () {\n      if (!this.isSupportedEvent('wheel') && arguments[0] == 'wheel') {\n        this.defineEvent('wheel');\n\n        var wheelEventHandler = function wheelEventHandler(oldEvent) {\n          //clone event to avoid some lib fix it\n          var event = oldEvent.absolEvent;\n\n          if (!event) {\n            event = Object.assign({}, oldEvent);\n\n            for (var i = 0; i < AElement.eventProperties.length; ++i) {\n              var key = AElement.eventProperties[i];\n\n              if (typeof event[key] == 'function') {\n                event[key] = event[key].bind(oldEvent);\n              }\n            }\n\n            event.preventDefault = function () {\n              oldEvent.preventDefault();\n            };\n\n            if (!event.mozFixWheelScale) {\n              event.mozDeltaY = oldEvent.deltaY;\n              event.mozFixWheelScale = true;\n              Object.defineProperty(event, 'deltaY', {\n                get: function get() {\n                  return this.mozDeltaY * 100 / 3;\n                }\n              });\n            }\n\n            oldEvent.absolEvent = event;\n          }\n\n          this.emit('wheel', event);\n        };\n\n        this.addEventListener('wheel', wheelEventHandler);\n      }\n\n      origin.apply(this, arguments);\n      return this;\n    };\n  }\n}();\nAElement.eventProperties = [\"altKey\", \"bubbles\", \"button\", \"buttons\", \"cancelBubble\", \"cancelable\", \"clientX\", \"clientY\", \"composed\", \"ctrlKey\", \"currentTarget\", \"defaultPrevented\", \"deltaMode\", \"deltaX\", \"deltaY\", \"deltaZ\", \"detail\", \"eventPhase\", \"explicitOriginalTarget\", \"isTrusted\", \"layerX\", \"layerY\", \"metaKey\", \"movementX\", \"movementY\", \"mozInputSource\", \"mozPressure\", \"offsetX\", \"offsetY\", \"originalTarget\", \"pageX\", \"pageY\", \"rangeOffset\", \"rangeParent\", \"region\", \"relatedTarget\", \"returnValue\", \"screenX\", \"screenY\", \"shiftKey\", \"srcElement\", \"target\", \"timeStamp\", \"type\", \"deltaMode\", \"deltaX\", \"deltaY\", \"deltaZ\"];\nvar _default = AElement;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/HTML5/AElement.js?");

/***/ }),

/***/ "./node_modules/absol/src/HTML5/AElementNS.js":
/*!****************************************************!*\
  !*** ./node_modules/absol/src/HTML5/AElementNS.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! ./AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! ./OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @augments AElement\r\n * @augments SVGGraphicsElement\r\n * @constructor\r\n */\nfunction AElementNS() {\n  _AElement[\"default\"].call(this);\n}\n\n_AElement[\"default\"].prototype.afterAttached = function () {\n  if (this.isDescendantOf(document.body)) return Promise.resolve();\n  var attachHookElt = this.$attachhook || this.querySelector('.absol-attachhook');\n\n  if (!attachHookElt) {\n    var constructor;\n\n    if (this.tagName.toLowerCase() === 'svg' || this.getBBox) {\n      attachHookElt = document.createElementNS('http://www.w3.org/2000/svg', 'image');\n      attachHookElt.setAttributeNS(null, 'href', '');\n      constructor = AElementNS;\n    } else {\n      attachHookElt = document.createElement('img');\n      attachHookElt.src = '';\n      constructor = AElementNS;\n    }\n\n    attachHookElt.classList.add('absol-attachhook');\n    Object.assign(attachHookElt, constructor.prototype);\n    constructor.call(attachHookElt);\n    attachHookElt.defineEvent('attached');\n    this.$attachhook = attachHookElt;\n    this.$attachhook.on('error', function (event) {\n      if (this.isDescendantOf(document.body)) this.emit('attached', event, this);\n    });\n    this.appendChild(attachHookElt);\n  }\n\n  return new Promise(function (rs) {\n    attachHookElt.once('attached', rs);\n  });\n};\n\n_OOP[\"default\"].mixClass(AElementNS, _AElement[\"default\"]);\n\nAElementNS.prototype.attr = function () {\n  if (arguments.length == 1) {\n    if (typeof arguments[0] == 'string') {\n      if (this._azar_extendAttributes[arguments[0]]) {\n        return this._azar_extendAttributes[arguments[0]].get.call(this);\n      } else return this.getAttributeNS(null, arguments[0]);\n    } else {\n      for (var key in arguments[0]) {\n        this.attr(key, arguments[0][key]);\n      }\n    }\n  } else {\n    if (arguments.length == 2) {\n      if (arguments[1] === null || arguments[1] === undefined) {\n        if (this._azar_extendAttributes[arguments[0]]) {\n          this._azar_extendAttributes[arguments[0]].remove.call(this, arguments[1]);\n        } else this.removeAttributeNS(null, arguments[0]);\n      } else {\n        if (this._azar_extendAttributes[arguments[0]]) {\n          this._azar_extendAttributes[arguments[0]].set.call(this, arguments[1]);\n        } else {\n          this.setAttributeNS(null, arguments[0], arguments[1]);\n        }\n      }\n    }\n  }\n\n  return this;\n};\n\nvar _default = AElementNS;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/HTML5/AElementNS.js?");

/***/ }),

/***/ "./node_modules/absol/src/HTML5/AttachHook.js":
/*!****************************************************!*\
  !*** ./node_modules/absol/src/HTML5/AttachHook.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.AttachHook = AttachHook;\nexports[\"default\"] = void 0;\n\nvar _BrowserDetector = _interopRequireDefault(__webpack_require__(/*! ../Detector/BrowserDetector */ \"./node_modules/absol/src/Detector/BrowserDetector.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @extends AElement\r\n * @constructor\r\n */\nfunction AttachHook() {\n  this._attached = false;\n  this.on('error', function (event) {\n    if (!this._attached && this.isDescendantOf(document.body)) {\n      this._attached = true;\n      this.emit('attached', event, this);\n    }\n  });\n  this.waitAttaching();\n}\n\nAttachHook.render = function (data, domInstance) {\n  var attributes = {};\n  var tag;\n\n  if (domInstance.defaultTag === 'div') {\n    attributes.src = '';\n    tag = 'img';\n  } else {\n    tag = 'image';\n    attributes.href = '';\n  }\n\n  return domInstance._({\n    tag: tag,\n    \"class\": 'absol-attachhook',\n    extendEvent: ['attached'],\n    style: {\n      display: 'none'\n    },\n    attr: attributes,\n    props: {\n      domInstance: domInstance\n    }\n  });\n};\n\nAttachHook.prototype.waitAttaching = function () {\n  var self = this;\n\n  if (_BrowserDetector[\"default\"].browser.type.startsWith('chrome') && parseInt((_BrowserDetector[\"default\"].browser.version || '').split('.').shift()) >= 113) {\n    if (this.waitTimeout > 0) clearTimeout(this.waitTimeout);\n    this.waitTimeout = setTimeout(function wait() {\n      self.waitTimeout = -1;\n\n      if (!self._attached && self.isDescendantOf(document.body)) {\n        self._attached = true;\n        self.emit('attached', {\n          target: this\n        }, self);\n      } else if (!self._attached) {\n        self.waitTimeout = setTimeout(wait, 10);\n      }\n    }, 0);\n  }\n};\n\nAttachHook.prototype.resetState = function () {\n  this._attached = false;\n\n  if (this.tagName.toLowerCase() === 'img') {\n    this.src = '';\n  } else {\n    this.href = '';\n  }\n\n  this.waitAttaching();\n};\n\nAttachHook.property = {\n  attached: {\n    get: function get() {\n      return !!this._attached;\n    }\n  }\n};\nvar _default = AttachHook;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/HTML5/AttachHook.js?");

/***/ }),

/***/ "./node_modules/absol/src/HTML5/Clipboard.js":
/*!***************************************************!*\
  !*** ./node_modules/absol/src/HTML5/Clipboard.js ***!
  \***************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.copyImage = copyImage;\nexports.copyText = copyText;\nexports.pasteText = pasteText;\n\nfunction copyImage(src) {\n  var ranges, sel;\n\n  if (window.getSelection) {\n    sel = window.getSelection(); //backup\n\n    ranges = [];\n\n    for (var i = 0; i < sel.rangeCount; ++i) {\n      ranges.push(sel.getRangeAt(i));\n    } //copy\n\n\n    var contentdiv = document.createElement('div');\n    var image = document.createElement('img');\n    contentdiv.appendChild(image);\n    image.src = src;\n    contentdiv.contentEditable = true; // contentdiv.style.display = 'none';\n\n    document.body.appendChild(contentdiv);\n    var range = document.createRange();\n    range.selectNodeContents(image);\n    sel.removeAllRanges();\n    sel.addRange(range);\n    document.execCommand('copy'); // contentdiv.remove();\n    //recover\n\n    sel.removeAllRanges();\n\n    for (var i = 0; i < sel.rangeCount; ++i) {\n      sel.addRange(ranges[i]);\n    }\n  } else {\n    console.error(\"Not support copy!\"); //not support IE\n  }\n}\n\nfunction fallbackCopyTextToClipboard(text) {\n  return new Promise(function (resolve, reject) {\n    var textArea = document.createElement(\"textarea\");\n    textArea.value = text; // Avoid scrolling to bottom\n\n    textArea.style.top = \"0\";\n    textArea.style.left = \"0\";\n    textArea.style.position = \"fixed\";\n    document.body.appendChild(textArea);\n    textArea.focus();\n    textArea.select();\n\n    try {\n      var successful = document.execCommand('copy');\n\n      if (successful) {\n        resolve();\n      } else {\n        reject();\n      }\n    } catch (err) {\n      reject(err);\n    }\n\n    document.body.removeChild(textArea);\n  });\n}\n\nfunction copyText(text) {\n  if (!navigator.clipboard) {\n    return fallbackCopyTextToClipboard(text);\n  }\n\n  return navigator.clipboard.writeText(text);\n}\n\nfunction fallbackReadTextFromClipboard() {\n  return new Promise(function (resolve, reject) {\n    var textArea = document.createElement(\"textarea\"); // Avoid scrolling to bottom\n\n    textArea.style.top = \"0\";\n    textArea.style.left = \"0\";\n    textArea.style.position = \"fixed\";\n    document.body.appendChild(textArea);\n    textArea.focus();\n\n    try {\n      var successful = document.execCommand('paste');\n\n      if (successful) {\n        resolve(textArea.value);\n      } else {\n        reject();\n      }\n    } catch (err) {\n      reject(err);\n    }\n\n    document.body.removeChild(textArea);\n  });\n}\n\nfunction pasteText() {\n  if (navigator.clipboard) {\n    return navigator.clipboard.readText();\n  } else {\n    return fallbackReadTextFromClipboard();\n  }\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/HTML5/Clipboard.js?");

/***/ }),

/***/ "./node_modules/absol/src/HTML5/Dom.js":
/*!*********************************************!*\
  !*** ./node_modules/absol/src/HTML5/Dom.js ***!
  \*********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.FeatureClass = void 0;\nexports.activeFullScreen = activeFullScreen;\nexports.copyStyleRule = copyStyleRule;\nexports[\"default\"] = exports.deactiveFullScreen = void 0;\nexports.depthClone = depthClone;\nexports.depthCloneWithStyle = depthCloneWithStyle;\nexports.fontFaceIsLoaded = fontFaceIsLoaded;\nexports.getConstructDescriptor = getConstructDescriptor;\nexports.getScreenSize = getScreenSize;\nexports.getScrollSize = getScrollSize;\nexports.getSystemFontSize = getSystemFontSize;\nexports.getTextNodeBound = getTextNodeBound;\nexports.imageToCanvas = imageToCanvas;\nexports.inactiveFullScreen = inactiveFullScreen;\nexports.isDomNode = isDomNode;\nexports.isFullScreen = isFullScreen;\nexports.traceOutBoundingClientRect = traceOutBoundingClientRect;\nexports.waitIFrameLoaded = waitIFrameLoaded;\nexports.waitImageLoaded = waitImageLoaded;\n\nvar _JSPath = _interopRequireDefault(__webpack_require__(/*! ./JSPath */ \"./node_modules/absol/src/HTML5/JSPath.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! ./OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _getFunctionName = _interopRequireDefault(__webpack_require__(/*! ../String/getFunctionName */ \"./node_modules/absol/src/String/getFunctionName.js\"));\n\nvar _ElementNS = _interopRequireDefault(__webpack_require__(/*! ./ElementNS */ \"./node_modules/absol/src/HTML5/ElementNS.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! ./AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nvar _ResizeSystem = _interopRequireDefault(__webpack_require__(/*! ./ResizeSystem */ \"./node_modules/absol/src/HTML5/ResizeSystem.js\"));\n\nvar _attribute = __webpack_require__(/*! ../JSX/attribute */ \"./node_modules/absol/src/JSX/attribute.js\");\n\nvar _AttachHook = _interopRequireDefault(__webpack_require__(/*! ./AttachHook */ \"./node_modules/absol/src/HTML5/AttachHook.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/***\r\n * @typedef {{\"accept-charset\":string, \"http-equiv\": string, accept : string, accesskey : string, action : string, align : string, allow : string, alt : string, async : string, autocapitalize : string, autocomplete : string, autofocus : string, autoplay : string, background : string, bgcolor : string, border : string, buffered : string, capture : string, challenge : string, charset : string, checked : string, cite : string, class : string, code : string, codebase : string, color : string, cols : string, colspan : string, content : string, contenteditable : string, contextmenu : string, controls : string, coords : string, crossorigin : string, csp : string, data : string, \"data-*\" : string, datetime : string, decoding : string, default : string, defer : string, dir : string, dirname : string, disabled : string, download : string, draggable : string, dropzone : string, enctype : string, enterkeyhint : string, for : string,     form : string, formaction : string, formenctype : string, formmethod : string, formnovalidate : string, formtarget : string, headers : string, height : string, hidden : string, high : string, href : string, hreflang : string, icon : string, id : string, importance : string, integrity : string, intrinsicsize : string, inputmode : string, ismap : string, itemprop : string, keytype : string, kind : string, label : string, lang : string, language : string, loading : string, list : string, loop : string, low : string, manifest : string, max : string, maxlength : string, minlength : string, media : string, method : string, min : string, multiple : string, muted : string, name : string, novalidate : string, open : string, optimum : string, pattern : string, ping : string, placeholder : string, poster : string, preload : string, radiogroup : string, readonly : string, referrerpolicy : string, rel : string, required : string, reversed : string, rows : string, rowspan : string, sandbox : string, scope : string, scoped : string, selected : string, shape : string, size : string, sizes : string, slot : string, span : string, spellcheck : string, src : string, srcdoc : string, srclang : string, srcset : string, start : string, step : string, style : string, summary : string, tabindex : string, target : string, title : string, translate : string, type : string, usemap : string, value : string, width : string, wrap : string, }} AElementAttributeDescriptor\r\n */\n\n/**\r\n * @typedef {{\"arabic-form\":string,\"baseline-shift\": string, \"accent-height\": string,  \"alignment-baseline\": string,  \"cap-height\": string,  \"clip-path\": string,  \"clip-rule\": string,  \"color-dinterpolation\": string,  \"color-interpolation-filters\": string,  \"color-profile\": string,  \"color-rendering\": string,  \"dominant-baseline\": string,  \"enable-background\": string,  \"fill-opacity\": string,  \"fill-rule\": string,  \"flood-color\": string,  \"flood-opacity\": string,  \"font-family\": string,  \"font-size\": string,  \"font-size-adjust\": string,  \"font-stretch\": string,  \"font-style\": string,  \"font-variant\": string,  \"font-weight\": string,  \"glyph-name\": string,  \"glyph-orientation-horizontal\": string,  \"glyph-orientation-vertical\": string,  \"horiz-adv-x\": string,  \"horiz-origin-x\": string,  \"image-rendering\": string,  \"letter-spacing\": string,  \"lighting-color\": string,  \"marker-end\": string,  \"marker-mid\": string,  \"marker-start\": string,  \"overline-position\": string,  \"overline-thickness\": string,  \"panose-1\": string,  \"paint-order\": string,  \"pointer-events\": string,  \"rendering-intent\": string,  \"shape-rendering\": string,  \"stop-color\": string,  \"stop-opacity\": string,  \"strikethrough-position\": string,  \"strikethrough-thickness\": string,  \"stroke-dasharray\": string,  \"stroke-dashoffset\": string,  \"stroke-linecap\": string,  \"stroke-linejoin\": string,  \"stroke-miterlimit\": string,  \"stroke-opacity\": string,  \"stroke-width\": string,  \"text-anchor\": string,  \"text-decoration\": string,  \"text-rendering\": string,  \"transform-origin\": string,  \"underline-position\": string,  \"underline-thickness\": string,  \"unicode-bidi\": string,  \"unicode-range\": string,  \"units-per-em\": string,  \"v-alphabetic\": string,  \"v-hanging\": string,  \"v-ideographic\": string,  \"v-mathematical\": string,  \"vector-effect\": string,  \"vert-adv-y\": string,  \"vert-origin-x\": string,  \"vert-origin-y\": string,  \"word-spacing\": string,  \"writing-mode\": string,  \"x-height\": string,  \"xlink:actuate\": string,  \"xlink:arcrole\": string,  \"xlink:href\": string,  \"xlink:role\": string,  \"xlink:show\": string,  \"xlink:title\": string,  \"xlink:type\": string,  \"xml:base\": string,  \"xml:lang\": string,  \"xml:space\": string, accumulate:string, additive:string, allowReorder:string, alphabetic:string, amplitude:string, ascent:string, attributeName:string, attributeType:string, autoReverse:string, azimuth:string, baseFrequency:string, baseProfile:string, bbox:string, begin:string, bias:string, by:string, calcMode:string, class:string, clip:string, clipPathUnits:string, color:string, contentScriptType:string, contentStyleType:string, cursor:string, cx:string, cy:string, d:string, decelerate:string, descent:string, diffuseConstant:string, direction:string, display:string, divisor:string, dur:string, dx:string, dy:string, edgeMode:string, elevation:string, end:string, exponent:string, externalResourcesRequired:string, fill:NamedColor|Color|string, filter:string, filterRes:string, filterUnits:string, format:string, from:string, fr:string, fx:string, fy:string, g1:string, g2:string, glyphRef:string, gradientTransform:string, gradientUnits:string, hanging:string, height:string, href:string, hreflang:string, id:string, ideographic:string, in:string, in2:string, intercept:string, k:string, k1:string, k2:string, k3:string, k4:string, kernelMatrix:string, kernelUnitLength:string, kerning:string, keyPoints:string, keySplines:string, keyTimes:string, lang:string, lengthAdjust:string, limitingConeAngle:string, local:string, markerHeight:string, markerUnits:string, markerWidth:string, mask:string, maskContentUnits:string, maskUnits:string, mathematical:string, max:string, media:string, method:string, min:string, mode:string, name:string, numOctaves:string, offset:string, opacity:string, operator:string, order:string, orient:string, orientation:string, origin:string, overflow:string, path:string, pathLength:string, patternContentUnits:string, patternTransform:string, patternUnits:string, ping:string, points:string, pointsAtX:string, pointsAtY:string, pointsAtZ:string, preserveAlpha:string, preserveAspectRatio:string, primitiveUnits:string, r:string, radius:string, referrerPolicy:string, refX:string, refY:string, rel:string, repeatCount:string, repeatDur:string, requiredExtensions:string, requiredFeatures:string, restart:string, result:string, rotate:string, rx:string, ry:string, scale:string, seed:string, slope:string, spacing:string, specularConstant:string, specularExponent:string, speed:string, spreadMethod:string, startOffset:string, stdDeviation:string, stemh:string, stemv:string, stitchTiles:string, string:string, stroke:string, style:string, surfaceScale:string, systemLanguage:string, tabindex:string, tableValues:string, target:string, targetX:string, targetY:string, textLength:string, to:string, transform:string, type:string, u1:string, u2:string, unicode:string, values:string, version:string, viewBox:string, viewTarget:string, visibility:string, width:string, widths:string, x:string, x1:string, x2:string, xChannelSelector:string, y:string, y1:string, y2:string, yChannelSelector:string, z:string, zoomAndPan:string, }}  AElementNSAttributeDescriptor\r\n */\n\n/***\r\n * @typedef {{abort:function(event:(UiEvent|Event)):void,afterprint:function(event:Event):void,animationend:function(event:AnimationEvent):void,animationiteration:function(event:AnimationEvent):void,animationstart:function(event:AnimationEvent):void,beforeprint:function(event:Event):void,beforeunload:function(event:(UiEvent|Event)):void,blur:function(event:FocusEvent):void,canplay:function(event:Event):void,canplaythrough:function(event:Event):void,change:function(event:Event):void,click:function(event:MouseEvent):void,contextmenu:function(event:MouseEvent):void,copy:function(event:ClipboardEvent):void,cut:function(event:ClipboardEvent):void,dblclick:function(event:MouseEvent):void,drag:function(event:DragEvent):void,dragend:function(event:DragEvent):void,dragenter:function(event:DragEvent):void,dragleave:function(event:DragEvent):void,dragover:function(event:DragEvent):void,dragstart:function(event:DragEvent):void,drop:function(event:DragEvent):void,durationchange:function(event:Event):void,ended:function(event:Event):void,error:function(event:(ProgressEvent|UiEvent|Event)):void,focus:function(event:FocusEvent):void,focusin:function(event:FocusEvent):void,focusout:function(event:FocusEvent):void,fullscreenchange:function(event:Event):void,fullscreenerror:function(event:Event):void,hashchange:function(event:HashChangeEvent):void,input:function(event:(InputEvent|Event)):void,invalid:function(event:Event):void,keydown:function(event:KeyboardEvent):void,keypress:function(event:KeyboardEvent):void,keyup:function(event:KeyboardEvent):void,load:function(event:(UiEvent|Event)):void,loadeddata:function(event:Event):void,loadedmetadata:function(event:Event):void,loadstart:function(event:ProgressEvent):void,message:function(event:Event):void,mousedown:function(event:MouseEvent):void,mouseenter:function(event:MouseEvent):void,mouseleave:function(event:MouseEvent):void,mousemove:function(event:MouseEvent):void,mouseover:function(event:MouseEvent):void,mouseout:function(event:MouseEvent):void,mouseup:function(event:MouseEvent):void,mousewheel:function(event:WheelEvent):void,offline:function(event:Event):void,online:function(event:Event):void,open:function(event:Event):void,pagehide:function(event:PageTransitionEvent):void,pageshow:function(event:PageTransitionEvent):void,paste:function(event:ClipboardEvent):void,pause:function(event:Event):void,play:function(event:Event):void,playing:function(event:Event):void,popstate:function(event:PopStateEvent):void,progress:function(event:Event):void,ratechange:function(event:Event):void,resize:function(event:(UiEvent|Event)):void,reset:function(event:Event):void,scroll:function(event:(UiEvent|Event)):void,search:function(event:Event):void,seeked:function(event:Event):void,seeking:function(event:Event):void,select:function(event:(UiEvent|Event)):void,show:function(event:Event):void,stalled:function(event:Event):void,storage:function(event:StorageEvent):void,submit:function(event:Event):void,suspend:function(event:Event):void,timeupdate:function(event:Event):void,toggle:function(event:Event):void,touchcancel:function(event:TouchEvent):void,touchend:function(event:TouchEvent):void,touchmove:function(event:TouchEvent):void,touchstart:function(event:TouchEvent):void,transitionend:function(event:TransitionEvent):void,unload:function(event:(UiEvent|Event)):void,volumechange:function(event:Event):void,waiting:function(event:Event):void,wheel:function(event:WheelEvent):void}} AElementEventDescriptor\r\n */\n\n/***\r\n * @typedef AbsolConstructDescriptor\r\n * @property {string | function |null} tag\r\n * @property {CSSStyleDeclaration} style\r\n * @property {Array | string} extendEvent\r\n * @property {Array | string} class\r\n * @property {AElementAttributeDescriptor|AElementNSAttributeDescriptor} attr\r\n * @property {string|AElement | AElementNS | AbsolConstructDescriptor | string[] |AElement[] | AElementNS[] | AbsolConstructDescriptor[]} child\r\n * @property {string} text to create a TextNode, not Element\r\n * @property {AElement} elt\r\n * @property {AElementEventDescriptor|{}} on\r\n * @property {Object} props\r\n *\r\n */\nvar svgCreator = function svgCreator() {\n  var temp = document.createElement('div');\n  temp.innerHTML = '<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\"></svg>';\n  var element = temp.childNodes[0];\n  var prototypes = Object.getOwnPropertyDescriptors(_AElement[\"default\"].prototype);\n  Object.defineProperties(element, prototypes);\n\n  _AElement[\"default\"].call(element);\n\n  return element;\n};\n/***\r\n *\r\n * @param {*=} option\r\n * @constructor\r\n */\n\n\nfunction Dom(option) {\n  option = option || {};\n  this.creator = option.creator || {};\n  Object.defineProperties(this.creator, {\n    svg: {\n      set: function set() {//do nothing\n      },\n      get: function get() {\n        return svgCreator;\n      }\n    },\n    attachhook: {\n      set: function set() {//do nothing\n      },\n      get: function get() {\n        return _AttachHook[\"default\"];\n      }\n    }\n  });\n  this['$ '.trim()] = this.$.bind(this);\n  this['_ '.trim()] = this._.bind(this);\n  this['$' + '$'] = this.$$.bind(this);\n  this.buildDom = this._;\n}\n\nDom.prototype.defaultTag = 'div';\n\nDom.prototype.fromCode = function (code) {\n  code = code.trim().replace(/>\\s+</gm, '><');\n  var temTag = 'div';\n  if (code.startsWith('<td') || code.startsWith('<th') && !code.startsWith('<thead')) temTag = 'tr';else if (code.startsWith('<tr')) temTag = 'tbody';else if (code.startsWith('<thead') || code.startsWith('<tbody')) temTag = 'table';\n  var tempDiv = document.createElement(temTag);\n  tempDiv.innerHTML = code;\n  var element = tempDiv.childNodes[0];\n  var prototypes = Object.getOwnPropertyDescriptors(_AElement[\"default\"].prototype);\n  Object.defineProperties(element, prototypes);\n\n  _AElement[\"default\"].call(element);\n\n  return element;\n};\n/**\r\n * DFS\r\n * @param {string | AElement} query\r\n * @param {AElement} root\r\n * @param {function} onFound - return true to stop find\r\n * @returns {AElement | AElementNS}\r\n */\n\n\nDom.prototype.$ = function (query, root, onFound) {\n  var res;\n  if (Dom.isDomNode(query)) res = query;else res = this.select(query, root, onFound);\n  if (res) this.attach(res);\n  return res;\n};\n/***\r\n *\r\n * @type {function(string, AElement, Function): AElement}\r\n */\n\n\nDom.prototype.selectAttacth = Dom.prototype.$;\n/**\r\n * DFS\r\n * @param {string} query\r\n * @param {AElement} root\r\n * @param {function} onFound - return true to stop find\r\n */\n\nDom.prototype.select = function (query, root, onFound) {\n  root = root || document.documentElement;\n\n  var matcher = _JSPath[\"default\"].compileJSPath(query);\n\n  return matcher.findFirst(root, onFound);\n};\n\nvar FeatureClass = {\n  AElementNS: {\n    constructor: _ElementNS[\"default\"],\n    prototypeKeys: Object.keys(_ElementNS[\"default\"].prototype)\n  },\n  AElement: {\n    constructor: _AElement[\"default\"],\n    prototypeKeys: Object.keys(_AElement[\"default\"].prototype)\n  }\n};\n/**\r\n *\r\n * @param {AElement | AElementNS } element\r\n */\n\nexports.FeatureClass = FeatureClass;\n\nDom.prototype.attach = function (element) {\n  if (element.attr) return;\n  var feature = element.getBBox && element.tagName !== 'svg' ? FeatureClass.AElementNS : FeatureClass.AElement;\n  var elementConstructor = feature.constructor;\n  var proto = elementConstructor.prototype;\n  var prototypeKeys = feature.prototypeKeys;\n  var n = prototypeKeys.length;\n  var key;\n\n  for (var i = 0; i < n; ++i) {\n    key = prototypeKeys[i];\n    element[key] = proto[key];\n  }\n\n  Object.assign(element, elementConstructor.prototype);\n  elementConstructor.call(element);\n};\n\nDom.prototype.makeNewElement = function (tagName) {\n  return document.createElement(tagName);\n};\n\nDom.prototype.makeNewTextNode = function (data) {\n  return document.createTextNode(data);\n};\n/**\r\n *\r\n * @param {AbsolConstructDescriptor | string | {} } option\r\n * @param {boolean=} isInherited\r\n * @returns {AElementNS| AElement | Text}\r\n */\n\n\nDom.prototype._ = function (option, isInherited) {\n  var res;\n  var creator;\n\n  if (Dom.isDomNode(option)) {\n    res = option;\n    option = {};\n    /** fix reinit component */\n\n    isInherited = true;\n  } else {\n    if (option.charAt) {\n      option = option.trim();\n\n      if (option[0] === '<') {\n        res = this.fromCode(option);\n        option = {};\n      } else {\n        var queryObj = _JSPath[\"default\"].parseQuery(option);\n\n        option = {};\n        option.tag = queryObj.tagName || this.defaultTag;\n        if (queryObj.classList && queryObj.classList.length > 0) option[\"class\"] = queryObj.classList;\n        if (queryObj.id) option.id = queryObj.id;\n        if (queryObj.attributes) option.attr = queryObj.attributes;\n      }\n    }\n  }\n\n  if (option.text || option.text === '') {\n    //is textNode\n    return this.makeNewTextNode(option.text);\n  }\n\n  option.tag = option.tag || this.defaultTag;\n  creator = option.tag.prototype ? option.tag : this.creator[option.tag];\n  if (option.tag.prototype) option.tag = option.tag.tag;\n\n  if (option.elt) {\n    res = this._(option.elt);\n  } else {\n    if (!res) {\n      if (creator) {\n        if (creator.render) {\n          res = creator.render(option.data, this);\n        } else {\n          res = creator(option.data, this);\n        }\n      } else {\n        res = this.makeNewElement(option.tag);\n        Object.assign(res, option.data);\n      }\n    }\n  }\n\n  this.attach(res);\n\n  if (creator) {\n    res._azar_extendTags = res._azar_extendTags || {};\n    res._azar_extendTags[option.tag] = creator;\n    creator.property && Object.defineProperties(res, creator.property);\n    creator.prototype && _OOP[\"default\"][\"extends\"](res, creator.prototype);\n    creator.attribute && res.defineAttributes(creator.attribute);\n\n    if (creator.render) {\n      if (creator.eventHandler) {\n        res.eventHandler = res.eventHandler || {};\n\n        var eventHandler = _OOP[\"default\"].bindFunctions(res, creator.eventHandler || creator.prototype.eventHandler);\n\n        for (var eventHandlerKey in eventHandler) {\n          if (res.eventHandler[eventHandlerKey]) {\n            throw new Error(\"Same name of eventHandler[\" + eventHandlerKey + \"]\");\n          } else {\n            res.eventHandler[eventHandlerKey] = eventHandler[eventHandlerKey];\n          }\n        }\n      }\n\n      creator.call(res);\n    }\n  }\n\n  option.extendEvent && res.defineEvent(option.extendEvent);\n  option.attr && res.attr(option.attr);\n  option.on && res.on(option.on);\n  option.once && res.once(option.once);\n  option[\"class\"] && res.addClass(option[\"class\"]);\n  option.style && res.addStyle(option.style);\n  option.id && res.attr('id', option.id);\n  if (!isInherited) res.init(option.props);\n  var children = option.child;\n\n  if (children) {\n    if (!children.forEach || !children.map) {\n      children = [children];\n    }\n\n    for (var i = 0; i < children.length; ++i) {\n      res.addChild(this._(children[i], false));\n    }\n  }\n\n  return res;\n};\n/***\r\n *\r\n * @type {function(Object, boolean): AElement}\r\n */\n\n\nDom.prototype.create = Dom.prototype._;\n/***\r\n *\r\n * @param query\r\n * @param root\r\n * @returns {Array<AElement|AElementNS>}\r\n */\n\nDom.prototype.$$ = function (query, root) {\n  var thisD = this;\n  var res = [];\n  this.selectAttacth(query, root, function (elt) {\n    thisD.attach(elt);\n    res.push(elt);\n  });\n  return res;\n};\n\nDom.prototype.install = function (arg0, arg1) {\n  var _this = this;\n\n  if (arguments.length === 1) {\n    if (arg0.creator && arg0.create && arg0.select) {\n      // is a dom core\n      var creator = arg0.creator;\n      Object.keys(creator).forEach(function (key) {\n        if (key.startsWith('_') || key.startsWith('$')) return;\n        var func = creator[key];\n        if (typeof func == 'function') if (_this.creator[key] !== func) _this.creator[key] = func;\n      });\n    } else if (typeof arg0 == 'function') {\n      var name = arg0.tag || (0, _getFunctionName[\"default\"])(arg0) || arg0.name;\n\n      if (name) {\n        this.creator[name.toLowerCase()] = arg0;\n      } else {\n        console.error('No ident name of creator function', arg0);\n      }\n    } else if (arg0 instanceof Array) {\n      arg0.forEach(function (func) {\n        var name = func.tag || (0, _getFunctionName[\"default\"])(func) || func.name;\n\n        if (name) {\n          _this.creator[name.toLowerCase()] = func;\n        }\n      });\n    } else if (_typeof(arg0) == 'object') {\n      Object.keys(arg0).forEach(function (key) {\n        if (key.startsWith('_') || key.startsWith('$')) return;\n        var func = arg0[key];\n        if (typeof func == 'function') if (_this.creator[key] !== func) _this.creator[key] = func;\n      });\n    } else {\n      console.error('Unknown data', arg0);\n    }\n  } else if (arguments.length === 2) {\n    if (arg0 instanceof Array) {\n      if (arg1.creator) arg1 = arg1.creator;\n      arg0.forEach(function (key) {\n        var func = arg1[key];\n        if (typeof func == 'function') if (_this.creator[key] !== func) _this.creator[key] = func;\n      });\n    } else if (arg0 instanceof RegExp) {\n      if (arg1.creator) arg1 = arg1.creator;\n      Object.keys(arg1).forEach(function (key) {\n        if (key.match(arg0)) {\n          var func = arg1[key];\n          if (typeof func == 'function') if (_this.creator[key] !== func) _this.creator[key] = func;\n        }\n      });\n    } else if (typeof arg0 == 'string' && arg0.length > 0) {\n      if (typeof arg1 == 'function') {\n        this.creator[arg0] = arg1;\n      } else {\n        console.error('arg1 is not a function');\n      }\n    }\n  } else {\n    console.error('Invalid param');\n  }\n\n  return this;\n};\n/***\r\n *\r\n * @param {String | null} tagName\r\n */\n\n\nDom.prototype.require = function (tagName) {\n  return this.creator[tagName] || null;\n};\n/**\r\n *\r\n * @param {*} o\r\n * @returns {Boolean}\r\n */\n\n\nfunction isDomNode(o) {\n  return (typeof Node === \"undefined\" ? \"undefined\" : _typeof(Node)) === \"object\" ? o instanceof Node : o && _typeof(o) === \"object\" && typeof o.nodeType === \"number\" && typeof o.nodeName === \"string\";\n}\n\nDom.isDomNode = isDomNode;\n/**\r\n * @param {AElement|Node|HTMLElement} element\r\n */\n\nfunction activeFullScreen(element) {\n  if (element.requestFullscreen) {\n    element.requestFullscreen();\n  } else if (element.mozRequestFullScreen) {\n    element.mozRequestFullScreen();\n  } else if (element.webkitRequestFullscreen) {\n    element.webkitRequestFullscreen(_AElement[\"default\"].ALLOW_KEYBOARD_INPUT);\n  } else if (element.msRequestFullscreen) {\n    element.msRequestFullscreen();\n  }\n}\n\nDom.activeFullScreen = activeFullScreen;\n\nfunction inactiveFullScreen() {\n  if (document.exitFullscreen) {\n    document.exitFullscreen();\n  } else if (document.mozCancelFullScreen) {\n    document.mozCancelFullScreen();\n  } else if (document.webkitExitFullscreen) {\n    document.webkitExitFullscreen();\n  } else if (document.msExitFullscreen) {\n    document.msExitFullscreen();\n  }\n}\n\nDom.inactiveFullScreen = inactiveFullScreen; //adapt\n\nvar deactiveFullScreen = inactiveFullScreen;\nexports.deactiveFullScreen = deactiveFullScreen;\nDom.deactiveFullScreen = deactiveFullScreen;\n\nfunction isFullScreen() {\n  var fullScreenElement = document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement;\n  return !!fullScreenElement;\n}\n\nDom.isFullScreen = isFullScreen;\n/**\r\n * @param {AElement|Node|HTMLElement} current\r\n * @returns {ClientRect}\r\n */\n\nfunction traceOutBoundingClientRect(current) {\n  var screenSize = Dom.getScreenSize();\n  var left = 0;\n  var right = screenSize.width;\n  var top = 0;\n  var bottom = screenSize.height;\n\n  while (current) {\n    var ox = _AElement[\"default\"].prototype.getComputedStyleValue.call(current, 'overflow-x') !== \"visible\";\n    var oy = _AElement[\"default\"].prototype.getComputedStyleValue.call(current, 'overflow-y') !== \"visible\";\n    var isHtml = current.tagName.toLowerCase() === 'html';\n\n    if (ox || oy || isHtml) {\n      var bound;\n\n      if (isHtml) {\n        bound = Object.assign({\n          left: 0,\n          top: 0\n        }, getScreenSize());\n        bound.bottom = bound.height;\n        bound.right = bound.width;\n      } else {\n        bound = current.getBoundingClientRect();\n      }\n\n      if (ox || isHtml) {\n        left = Math.max(left, bound.left);\n        right = Math.min(right, bound.right);\n      }\n\n      if (oy || isHtml) {\n        top = Math.max(top, bound.top);\n        bottom = Math.min(bottom, bound.bottom);\n      }\n    }\n\n    if (isHtml) break;\n    current = current.parentElement;\n  }\n\n  return {\n    left: left,\n    right: right,\n    top: top,\n    bottom: bottom,\n    width: right - left,\n    height: bottom - top\n  };\n}\n\nDom.traceOutBoundingClientRect = traceOutBoundingClientRect;\n/***\r\n *\r\n * @param {string} fontFace\r\n * @param {number} timeout\r\n * @returns {Promise<boolean>}\r\n */\n\nfunction fontFaceIsLoaded(fontFace, timeout) {\n  timeout = timeout || 0;\n\n  var element = this.ShareInstance._({\n    tag: 'span',\n    style: {\n      visibility: 'hidden',\n      position: 'fixed',\n      top: '-9999px',\n      left: '-9999px',\n      'font-size': '256px'\n    },\n    props: {\n      innerHTML: \"Test string long long long\"\n    }\n  });\n\n  element.addTo(document.body);\n  return element.afterAttached().then(function () {\n    var lastOffsetWidth = element.getBoundingClientRect().width;\n    element.addStyle('font-family', fontFace);\n    return new Promise(function (resolve, reject) {\n      function check(remainTime) {\n        if (remainTime < 0) {\n          resolve(false);\n          element.selfRemove();\n        } else requestAnimationFrame(function () {\n          var currentOffsetWidth = element.getBoundingClientRect().width;\n\n          if (currentOffsetWidth != lastOffsetWidth) {\n            resolve(true);\n            element.selfRemove();\n          } else check(remainTime - 10);\n        });\n      }\n\n      check(timeout);\n    });\n  });\n}\n\nDom.fontFaceIsLoaded = fontFaceIsLoaded;\n/***\r\n *\r\n * @returns {{width: number, WIDTH: number, HEIGHT: number, height: number}}\r\n */\n\nfunction getScreenSize() {\n  var width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;\n  var height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;\n  return {\n    WIDTH: width,\n    HEIGHT: height,\n    width: width,\n    height: height\n  };\n}\n\nDom.getScreenSize = getScreenSize;\n/***\r\n *\r\n * @param {HTMLImageElement} img\r\n * @param {number=} timeout\r\n * @returns {Promise<void>}\r\n */\n\nfunction waitImageLoaded(img, timeout) {\n  var isLoaded = true;\n\n  if (!img.complete) {\n    isLoaded = false;\n  }\n\n  if (img.naturalWidth === 0) {\n    isLoaded = false;\n  }\n\n  if (isLoaded) return Promise.resolve();\n  if (!img.src) return Promise.resolve();\n  return new Promise(function (rs) {\n    if (img.addEventListener) {\n      img.addEventListener('load', rs, false);\n      img.addEventListener('error', rs, false);\n    } else {\n      img.attachEvent('onload', rs, false);\n    }\n\n    setTimeout(rs, timeout || 5000);\n  }); // No other way of checking: assume it’s ok.\n}\n\nDom.waitImageLoaded = waitImageLoaded;\n/***\r\n *\r\n * @param {HTMLIFrameElement| Worker} iframe\r\n * @returns {Promise}\r\n */\n\nfunction waitIFrameLoaded(iframe) {\n  return new Promise(function (rs, rj) {\n    if (document.all) {\n      iframe.onreadystatechange = function () {\n        if (iframe.readyState === \"complete\" || iframe.readyState === \"loaded\") rs();\n      };\n    } else {\n      iframe.onload = rs;\n    }\n\n    setTimeout(rs, 5000);\n  });\n}\n\nDom.waitIFrameLoaded = waitIFrameLoaded;\n/***\r\n *\r\n * @param {Image} element\r\n * @returns {Promise<HTMLCanvasElement>}\r\n */\n\nfunction imageToCanvas(element) {\n  if (typeof element == 'string') {\n    element = Dom.ShareInstance.$(element);\n  }\n\n  if (element.tagName.toLowerCase() === 'img') {\n    var preRender = Dom.ShareInstance._('div');\n\n    preRender.addStyle({\n      position: 'fixed',\n      top: '0',\n      left: '0',\n      zIndex: '-10000',\n      opacity: '0'\n    }).addTo(document.body);\n    var canvas = document.createElement(\"canvas\");\n    preRender.addChild(canvas);\n    return Dom.waitImageLoaded(element).then(function () {\n      canvas.width = element.width;\n      canvas.height = element.height;\n      var context = canvas.getContext(\"2d\");\n      context.drawImage(element, 0, 0);\n      preRender.selfRemove();\n      return canvas;\n    });\n  } else {\n    throw new Error(\"AElement must be image\");\n  }\n}\n\nDom.imageToCanvas = imageToCanvas;\nDom.ShareInstance = new Dom();\nDom.scrollWidthPromise;\nDom.documentReady = new Promise(function (resolve) {\n  if (document.body) {\n    resolve();\n  } else {\n    window.addEventListener(\"load\", resolve);\n  }\n});\n\nfunction getScrollSize() {\n  if (!Dom.scrollWidthPromise) Dom.scrollWidthPromise = new Promise(function (resolve) {\n    function prerender() {\n      var parent = Dom.ShareInstance._({\n        style: {\n          'z-index': '-100',\n          opacity: '0',\n          width: '100px',\n          height: '100px',\n          overflow: 'scroll',\n          top: '0',\n          left: '0',\n          'box-sizing': 'content-box',\n          position: 'fixed'\n        }\n      }).addTo(document.body);\n\n      var child = Dom.ShareInstance._({\n        style: {\n          width: '100%',\n          height: '100%'\n        }\n      }).addTo(parent);\n\n      requestAnimationFrame(function () {\n        var parentBound = parent.getBoundingClientRect();\n        var childBound = child.getBoundingClientRect();\n        resolve({\n          width: parentBound.width - childBound.width,\n          height: parentBound.height - childBound.height\n        });\n        parent.selfRemove();\n      });\n    }\n\n    Dom.documentReady.then(prerender);\n  });\n  return Dom.scrollWidthPromise;\n}\n\nDom.getScrollSize = getScrollSize;\n/***\r\n *\r\n * @param {(AElement|AElementNS|Node)} originElt\r\n * @param {function(originElt: (AElement|AElementNS|Node), originElt: (AElement|AElementNS|Node)):void } afterCloneCb\r\n * @return {AElement|AElementNS|Node}\r\n */\n\nfunction depthClone(originElt, afterCloneCb) {\n  /***\r\n   *\r\n   * @type {AElement|AElementNS|Node}\r\n   */\n  var newElt = originElt.cloneNode(); //no deep\n\n  if (originElt.childNodes) {\n    /***\r\n     *\r\n     * @type {(AElement|AElementNS)[]}\r\n     */\n    var children = Array.prototype.map.call(originElt.childNodes, function (child) {\n      return depthClone(child, afterCloneCb);\n    });\n\n    for (var i = 0; i < children.length; ++i) {\n      newElt.appendChild(children[i]);\n    }\n  }\n\n  return afterCloneCb && afterCloneCb(originElt, newElt) || newElt;\n}\n/***\r\n *\r\n * @param originElt\r\n * @param afterCloneCb\r\n * @returns {AElement|HTMLElement|Node}\r\n */\n\n\nfunction depthCloneWithStyle(originElt, afterCloneCb) {\n  return depthClone(originElt, function (originElt, newElt) {\n    if (!originElt.getAttribute && !originElt.getAttributeNS) return;\n    copyStyleRule(originElt, newElt);\n    afterCloneCb && afterCloneCb(originElt, newElt);\n  });\n}\n\nDom.depthClone = depthClone;\nDom.depthCloneWithStyle = depthCloneWithStyle;\n/***\r\n *\r\n * @param  {AElement|HTMLElement|Node}sourceElt\r\n * @param  {AElement|HTMLElement|Node} destElt\r\n * @returns  {AElement|HTMLElement|Node}\r\n */\n\nfunction copyStyleRule(sourceElt, destElt) {\n  if (!sourceElt.getAttribute && !sourceElt.getAttributeNS) return destElt; //is text node\n\n  if (!destElt.getAttribute && !destElt.getAttributeNS) return destElt; //is text node, nothing to copy\n\n  var cssRules = _AElement[\"default\"].prototype.getCSSRules.call(sourceElt);\n\n  var cssKey = cssRules.reduce(function (ac, rule) {\n    for (var i = 0; i < rule.style.length; ++i) {\n      ac[rule.style[i]] = true;\n    }\n\n    return ac;\n  }, {});\n\n  for (var key in cssKey) {\n    destElt.style[key] = _AElement[\"default\"].prototype.getComputedStyleValue.call(sourceElt, key);\n  }\n\n  return destElt;\n}\n\nDom.copyStyleRule = copyStyleRule;\n/**\r\n *\r\n */\n\nfunction getSystemFontSize() {\n  if (window.mobileHost && window.mobileHost.systemFont) {\n    return window.mobileHost.systemFont.pointSize;\n  }\n\n  var _ = Dom.ShareInstance._;\n\n  var initSpan = Dom.ShareInstance._({\n    tag: 'span',\n    style: {\n      font: 'inherit'\n    }\n  });\n\n  var appleSpan = Dom.ShareInstance._({\n    tag: 'span',\n    style: {\n      font: '-apple-system-body'\n    }\n  }).addTo(document.body);\n\n  var renderer = _({\n    style: {\n      font: 'initial',\n      position: 'fixed',\n      top: 0,\n      left: 0,\n      visibility: 'hidden',\n      opacity: 0,\n      zIndex: -100\n    },\n    child: [initSpan && appleSpan]\n  }).addTo(document.body);\n\n  var appleSize = appleSpan.getFontSize();\n  var initSize = initSpan.getFontSize();\n  var defaultSize = appleSize !== initSize ? appleSize : initSize;\n  renderer.remove();\n  return Math.round(defaultSize * 14 / 16);\n}\n\nfunction getTextNodeBound(textNode) {\n  if (document.createRange) {\n    var range = document.createRange();\n    range.selectNodeContents(textNode);\n\n    if (range.getBoundingClientRect) {\n      return range.getBoundingClientRect();\n    }\n  }\n\n  return null;\n}\n\nDom.getTextNodeBound = getTextNodeBound;\n/***\r\n * get absol construct descriptor for HTML element only\r\n * @param {AElement | Text} elt\r\n * @returns {AbsolConstructDescriptor}\r\n */\n\nfunction getConstructDescriptor(elt) {\n  var obj = {};\n  obj.tag = elt.tagName.toLowerCase();\n  var classAttr = elt.getAttribute('class');\n  var classList;\n  if (classAttr) classList = (0, _attribute.parseClassAttr)(classAttr);\n  if (classList && classList.length > 0) obj[\"class\"] = classList;\n  var styleAttr = elt.getAttribute('style');\n  var style;\n  if (styleAttr) style = (0, _attribute.parseStyleAttr)(styleAttr);\n  var attributes = elt.attributes;\n  var attNode;\n  var attrName;\n  var attrValue;\n  var attr = {};\n  var on = {};\n  var props = {};\n  var eventMatch, eventName;\n  var propMatch, propName;\n\n  for (var i = 0; i < attributes.length; ++i) {\n    attNode = attributes[i];\n    attrName = attNode.nodeName;\n    attrValue = attNode.nodeValue;\n    if (attrName == 'style' || attrName == 'class') continue;\n    eventMatch = attrName.match(/^on(.+)/);\n\n    if (eventMatch) {\n      eventName = eventMatch[1];\n      on[eventName] = new Function('event', 'sender', attrValue);\n      continue;\n    }\n\n    propMatch = attrName.match(/^prop-(.+)/);\n\n    if (propMatch) {\n      propName = propMatch[1];\n      props[propName] = attrValue;\n      continue;\n    }\n\n    attr[attrName] = attrValue;\n  }\n\n  var key;\n\n  for (key in style) {\n    //style is not empty\n    obj.style = style;\n    break;\n  }\n\n  for (key in attr) {\n    obj.attr = attr;\n    break;\n  }\n\n  for (key in on) {\n    obj.on = on;\n    break;\n  }\n\n  for (key in props) {\n    obj.props = props;\n    break;\n  }\n\n  return obj;\n}\n\nDom.getConstructDescriptor = getConstructDescriptor;\n\nDom.addToResizeSystem = function (element) {\n  _ResizeSystem[\"default\"].add(element);\n};\n\nDom.updateResizeSystem = function () {\n  _ResizeSystem[\"default\"].update();\n};\n\nDom.updateSizeUp = function (fromElt) {\n  _ResizeSystem[\"default\"].updateUp(fromElt);\n};\n\nvar _default = Dom;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/HTML5/Dom.js?");

/***/ }),

/***/ "./node_modules/absol/src/HTML5/DomSignal.js":
/*!***************************************************!*\
  !*** ./node_modules/absol/src/HTML5/DomSignal.js ***!
  \***************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _EventEmitter = _interopRequireDefault(__webpack_require__(/*! ./EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! ./AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! ./OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _AttachHook = _interopRequireDefault(__webpack_require__(/*! ./AttachHook */ \"./node_modules/absol/src/HTML5/AttachHook.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n *\r\n * @extends EventEmitter\r\n * @param {AElement=} attachHookElt\r\n * @constructor\r\n */\nfunction DomSignal(attachHookElt) {\n  _EventEmitter[\"default\"].call(this);\n\n  this.signals = {};\n  this.ev_attached = this.ev_attached.bind(this);\n  this.$attachhook = attachHookElt || this.createBuildInAttachHook();\n  this.$attachhookParent = attachHookElt && attachHookElt.parentElement || null;\n  this.$attachhook.on('attached', this.ev_attached);\n}\n\n_OOP[\"default\"].mixClass(DomSignal, _EventEmitter[\"default\"]);\n\nDomSignal.prototype.createBuildInAttachHook = function () {\n  var elt = document.createElement('img');\n  Object.defineProperties(elt, Object.getOwnPropertyDescriptors(_AElement[\"default\"].prototype));\n  Object.defineProperties(elt, Object.getOwnPropertyDescriptors(_AttachHook[\"default\"].prototype));\n  Object.defineProperties(elt, _AttachHook[\"default\"].property);\n\n  _AElement[\"default\"].call(elt);\n\n  elt.setAttribute('src', '');\n  elt.defineEvent('attached');\n\n  _AttachHook[\"default\"].call(elt);\n\n  return elt;\n};\n\nDomSignal.prototype.execSignal = function () {\n  var signals = this.signals;\n\n  if (this.$attachhook) {\n    this.$attachhook.remove();\n    this.$attachhook.resetState();\n  }\n\n  this.signals = {};\n\n  for (var name in signals) {\n    this.fire.apply(this, [name].concat(signals[name]));\n  }\n};\n\nDomSignal.prototype.emit = function (name) {\n  this.signals[name] = Array.prototype.slice.call(arguments, 1);\n\n  if (!this.$attachhookParent) {\n    this.$attachhookParent = document.body;\n  }\n\n  if (!this.$attachhook.parentElement) {\n    this.$attachhookParent.appendChild(this.$attachhook);\n  }\n};\n\nDomSignal.prototype.ev_attached = function () {\n  this.execSignal();\n};\n\nvar _default = DomSignal;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/HTML5/DomSignal.js?");

/***/ }),

/***/ "./node_modules/absol/src/HTML5/DynamicCSS.js":
/*!****************************************************!*\
  !*** ./node_modules/absol/src/HTML5/DynamicCSS.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nfunction DynamicCSS() {\n  this.elt = document.createElement('style');\n  this.data = {};\n  this.state = 'STANDBY';\n  this.start();\n}\n/**\r\n *\r\n * @returns {this}\r\n */\n\n\nDynamicCSS.prototype.commit = function () {\n  var _this = this;\n\n  this.elt.innerHTML = Object.keys(this.data).map(function (ruleQuery) {\n    var rule = _this.data[ruleQuery];\n    return [ruleQuery + ' {', '    ' + Object.keys(rule).map(function (name) {\n      return name + ': ' + rule[name] + ';';\n    }).join('\\n'), '}'].join('\\n');\n  }).join('\\n\\n');\n  return this;\n};\n\nDynamicCSS.prototype.start = function () {\n  if (this.state !== 'STANDBY' && this.state !== 'STOP') return;\n  this.state = 'RUNNING';\n  document.head.appendChild(this.elt);\n  return this;\n};\n\nDynamicCSS.prototype.stop = function () {\n  if (this.state !== 'RUNNING') return;\n  this.elt.remove();\n  return this;\n};\n\nDynamicCSS.prototype.destroy = function () {\n  this.stop();\n  if (this.state !== 'STOP') return;\n  this.elt = null;\n  return this;\n};\n/***\r\n *\r\n * @param {string} ruleQuery\r\n * @param {string} name\r\n * @param {string} value\r\n * @returns {this}\r\n */\n\n\nDynamicCSS.prototype.setProperty = function (ruleQuery, name, value) {\n  this.data[ruleQuery] = this.data[ruleQuery] || {};\n  this.data[ruleQuery][name] = value;\n  return this;\n};\n/**\r\n *\r\n * @param ruleQuery\r\n * @param name\r\n * @returns {*|undefined}\r\n */\n\n\nDynamicCSS.prototype.getProperty = function (ruleQuery, name) {\n  var rule = this.data[ruleQuery];\n  return rule ? rule[name] : undefined;\n};\n/***\r\n *\r\n * @param ruleQuery\r\n * @param property\r\n * @returns {DynamicCSS}\r\n */\n\n\nDynamicCSS.prototype.removeProperty = function (ruleQuery, property) {\n  var rule = this.data[ruleQuery];\n  if (rule) delete rule[property];\n  return this;\n};\n/***\r\n *\r\n * @param ruleQuery\r\n * @param {object} properties\r\n * @returns {this}\r\n */\n\n\nDynamicCSS.prototype.setRule = function (ruleQuery, properties) {\n  this.data[ruleQuery] = Object.assign({}, properties);\n  return this;\n};\n/***\r\n *\r\n * @param ruleQuery\r\n * @param {object} properties\r\n * @returns {this}\r\n */\n\n\nDynamicCSS.prototype.modifyRule = function (ruleQuery, properties) {\n  this.data[ruleQuery] = Object.assign(this.data[ruleQuery] || {}, properties);\n  return this;\n};\n/***\r\n *\r\n * @param {string} ruleQuery\r\n * @returns {object}\r\n */\n\n\nDynamicCSS.prototype.getRule = function (ruleQuery) {\n  return this.data[ruleQuery];\n};\n/**\r\n *\r\n * @param {string} ruleQuery\r\n * @returns {this}\r\n */\n\n\nDynamicCSS.prototype.removeRule = function (ruleQuery) {\n  delete this.data[ruleQuery];\n  return this;\n};\n/***\r\n *\r\n * @param {object} rules\r\n * @returns {this}\r\n */\n\n\nDynamicCSS.prototype.setRules = function (rules) {\n  var _this2 = this;\n\n  Object.keys(rules).forEach(function (key) {\n    return _this2.setRule(key, rules[key]);\n  });\n  return this;\n};\n\nDynamicCSS.prototype.getRules = function () {\n  return this.data;\n};\n\nDynamicCSS.prototype.modifyRules = function (rules) {\n  var _this3 = this;\n\n  Object.keys(rules).forEach(function (key) {\n    return _this3.modifyRule(key, rules[key]);\n  });\n  return this;\n};\n\nvar _default = DynamicCSS;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/HTML5/DynamicCSS.js?");

/***/ }),

/***/ "./node_modules/absol/src/HTML5/Element.js":
/*!*************************************************!*\
  !*** ./node_modules/absol/src/HTML5/Element.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! ./AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = _AElement[\"default\"];\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/HTML5/Element.js?");

/***/ }),

/***/ "./node_modules/absol/src/HTML5/ElementNS.js":
/*!***************************************************!*\
  !*** ./node_modules/absol/src/HTML5/ElementNS.js ***!
  \***************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _AElementNS = _interopRequireDefault(__webpack_require__(/*! ./AElementNS */ \"./node_modules/absol/src/HTML5/AElementNS.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = _AElementNS[\"default\"];\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/HTML5/ElementNS.js?");

/***/ }),

/***/ "./node_modules/absol/src/HTML5/EventEmitter.js":
/*!******************************************************!*\
  !*** ./node_modules/absol/src/HTML5/EventEmitter.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.copyEvent = copyEvent;\nexports.copyTouch = copyTouch;\nexports.eventProperties = exports[\"default\"] = void 0;\nexports.findChangedTouchByIdent = findChangedTouchByIdent;\nexports.findTouchByIdent = findTouchByIdent;\nexports.hitElement = hitElement;\nexports.isMouseLeft = isMouseLeft;\nexports.isMouseRight = isMouseRight;\nexports.touchProperties = void 0;\n\nvar _safeThrow = _interopRequireDefault(__webpack_require__(/*! ../Code/safeThrow */ \"./node_modules/absol/src/Code/safeThrow.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction EventEmitter() {\n  if (!this._azar_extendEvents) {\n    Object.defineProperty(this, '_azar_extendEvents', {\n      enumerable: false,\n      value: this._azar_extendEvents || {\n        supported: {},\n        prioritize: {},\n        nonprioritize: {}\n      }\n    });\n    Object.defineProperty(this, '__azar_force', {\n      value: !((typeof Node === \"undefined\" ? \"undefined\" : _typeof(Node)) === \"object\" ? this instanceof Node : this && _typeof(this) === \"object\" && typeof this.nodeType === \"number\" && typeof this.nodeName === \"string\"),\n      enumerable: false\n    });\n  }\n}\n\nEventEmitter.prototype.defineEvent = function (name) {\n  if (name instanceof Array) {\n    for (var i = 0; i < name.length; ++i) {\n      this._azar_extendEvents.supported[name[i]] = true;\n    }\n  } else this._azar_extendEvents.supported[name] = true;\n\n  return this;\n};\n\nEventEmitter.prototype.isSupportedEvent = function (name) {\n  return this.__azar_force || !!this._azar_extendEvents.supported[name];\n};\n\nEventEmitter.prototype.emit = function (eventName, data) {\n  this.fire.apply(this, arguments);\n};\n\nEventEmitter.prototype.fire = function (eventName, data) {\n  var others = Array.prototype.slice.call(arguments, 1);\n\n  if (this.isSupportedEvent(eventName)) {\n    var listenerList;\n    var i;\n\n    if (this._azar_extendEvents.prioritize[eventName]) {\n      listenerList = this._azar_extendEvents.prioritize[eventName].slice();\n\n      for (i = 0; i < listenerList.length; ++i) {\n        try {\n          listenerList[i].wrappedCallback.apply(this, others);\n        } catch (e) {\n          (0, _safeThrow[\"default\"])(e);\n        }\n      }\n    }\n\n    if (this._azar_extendEvents.nonprioritize[eventName]) {\n      listenerList = this._azar_extendEvents.nonprioritize[eventName].slice();\n\n      for (i = 0; i < listenerList.length; ++i) {\n        try {\n          listenerList[i].wrappedCallback.apply(this, others);\n        } catch (e) {\n          (0, _safeThrow[\"default\"])(e);\n        }\n      }\n    }\n  } else {\n    if (this.dispatchEvent) {\n      var event = new Event(eventName);\n      data && Object.assign(event, data);\n      this.dispatchEvent(event);\n    } else throw new Error(\"Not support event \" + eventName);\n  }\n\n  return this;\n};\n\nEventEmitter.prototype.eventEmittorOnWithTime = function (isOnce, arg0, arg1, arg2) {\n  if (_typeof(arg0) == 'object') {\n    for (var key in arg0) {\n      this.eventEmittorOnWithTime(isOnce, key, arg0[key]);\n    }\n\n    return this;\n  } else {\n    if (_typeof(arg1) == 'object') {\n      return this.eventEmittorOnWithTime(isOnce, arg0, arg1.callback, arg1.cap);\n    } else {\n      var eventArr = this._azar_extendEvents[arg2 ? 'prioritize' : 'nonprioritize'][arg0] || [];\n      var eventIndex = -1;\n\n      for (var i = 0; i < eventArr.length; ++i) {\n        if (eventArr[i].wrappedCallback == arg1) {\n          eventIndex = i;\n          break;\n        }\n      }\n\n      if (eventIndex < 0) {\n        var event = {\n          isOnce: isOnce,\n          eventName: arg0,\n          callback: arg1,\n          cap: !!arg2\n        }; //wrappedCallback will be call\n\n        if (isOnce) {\n          event.wrappedCallback = function () {\n            this.off(event.eventName, event.wrappedCallback, event.cap);\n            event.callback.apply(this, arguments);\n          };\n        } else {\n          event.wrappedCallback = event.callback;\n        }\n\n        if (!this.isSupportedEvent(arg0)) {\n          if (this.addEventListener) {\n            this.addEventListener(arg0, event.wrappedCallback, !!arg2);\n          } else {\n            this.attachEvent('on' + arg0, arg1, !!arg2);\n          }\n        }\n\n        eventArr.push(event);\n        this._azar_extendEvents[arg2 ? 'prioritize' : 'nonprioritize'][arg0] = eventArr;\n      } else {\n        console.warn(\"dupplicate event\");\n      }\n    }\n\n    return this;\n  }\n};\n\nEventEmitter.prototype.on = function (arg0, arg1, arg2) {\n  this.eventEmittorOnWithTime(false, arg0, arg1, arg2);\n  return this;\n};\n\nEventEmitter.prototype.once = function (arg0, arg1, arg2) {\n  this.eventEmittorOnWithTime(true, arg0, arg1, arg2);\n  return this;\n};\n\nEventEmitter.prototype.off = function (arg0, arg1, arg2) {\n  if (_typeof(arg0) == 'object') {\n    for (var key in arg0) {\n      this.off(key, arg0[key]);\n    }\n\n    return this;\n  } else {\n    if (_typeof(arg1) == 'object') {\n      return this.off(arg0, arg1.callback, arg1.cap);\n    } else {\n      var eventArr = this._azar_extendEvents[arg2 ? 'prioritize' : 'nonprioritize'][arg0] || [];\n      var newEventArray = [];\n\n      for (var i = 0; i < eventArr.length; ++i) {\n        var event = eventArr[i];\n\n        if (event.wrappedCallback == arg1) {\n          //Dont add to newEventArray\n          if (this.isSupportedEvent(arg0)) {} else {\n            if (this.removeEventListener) {\n              this.removeEventListener(event.eventName, event.wrappedCallback, !!event.cap);\n            } else {\n              this.detachEvent('on' + event.eventName, event.wrappedCallback, !!event.cap);\n            }\n          }\n        } else {\n          newEventArray.push(event);\n        }\n      }\n\n      this._azar_extendEvents[arg2 ? 'prioritize' : 'nonprioritize'][arg0] = newEventArray;\n      return this;\n    }\n  }\n};\n\nvar eventProperties = [\"altKey\", \"bubbles\", \"button\", \"buttons\", \"cancelBubble\", \"cancelable\", \"clientX\", \"clientY\", \"composed\", \"ctrlKey\", \"currentTarget\", \"defaultPrevented\", \"deltaMode\", \"deltaX\", \"deltaY\", \"deltaZ\", \"detail\", \"eventPhase\", \"explicitOriginalTarget\", \"isTrusted\", \"layerX\", \"layerY\", \"metaKey\", \"movementX\", \"movementY\", \"mozInputSource\", \"mozPressure\", \"offsetX\", \"offsetY\", \"originalTarget\", \"pageX\", \"pageY\", \"rangeOffset\", \"rangeParent\", \"region\", \"relatedTarget\", \"returnValue\", \"screenX\", \"screenY\", \"shiftKey\", \"srcElement\", \"target\", \"timeStamp\", \"type\", \"deltaMode\", \"deltaX\", \"deltaY\", \"deltaZ\", 'preventDefault'];\nexports.eventProperties = eventProperties;\nvar touchProperties = ['clientX', 'clientY', 'force', 'identifier', 'pageX', 'pageY', 'rotationAngle', 'screenX', 'screenY', 'target'];\nexports.touchProperties = touchProperties;\n\nfunction isMouseRight(event) {\n  var isRightMB = false;\n  if (\"which\" in event) // Gecko (Firefox), WebKit (Safari/Chrome) & Opera\n    isRightMB = event.which == 3;else if (\"button\" in event) // IE, Opera\n    isRightMB = event.button == 2;\n  return isRightMB;\n}\n\nfunction isMouseLeft(event) {\n  var isLeftMB = false;\n  if (\"which\" in event) // Gecko (Firefox), WebKit (Safari/Chrome) & Opera\n    isLeftMB = event.which == 1;else if (\"button\" in event) // IE, Opera\n    isLeftMB = event.button == 1;\n  return isLeftMB;\n}\n\nfunction hitElement(element, event) {\n  var current = event.target;\n\n  while (current) {\n    if (current == element) return true;\n    current = current.parentElement;\n  }\n\n  return false;\n}\n\nfunction copyEvent(event, props) {\n  var result = {};\n  var key, value; //copy native property\n\n  for (var i = 0; i < eventProperties.length; ++i) {\n    key = eventProperties[i];\n    value = event[key];\n\n    if (value !== undefined) {\n      if (typeof value == \"function\") {\n        result[key] = event[key].bind(event);\n      } else {\n        result[key] = event[key];\n      }\n    }\n  }\n\n  Object.assign(result, event);\n  if (props) Object.assign(result, props);\n\n  if (event.changedTouches) {\n    result.changedTouches = Array.prototype.map.call(event.changedTouches, function (touch) {\n      return copyTouch(touch);\n    });\n  }\n\n  if (event.touches) {\n    result.touches = Array.prototype.map.call(event.touches, function (touch) {\n      return copyTouch(touch);\n    });\n  }\n\n  return result;\n}\n\nfunction copyTouch(touch, props) {\n  var result = {};\n  var key, value; //copy native property\n\n  for (var i = 0; i < touchProperties.length; ++i) {\n    key = touchProperties[i];\n    value = touch[key];\n\n    if (value !== undefined) {\n      if (typeof value == \"function\") {\n        result[key] = touch[key].bind(touch);\n      } else {\n        result[key] = touch[key];\n      }\n    }\n  }\n\n  Object.assign(result, touch);\n  if (props) Object.assign(result, props);\n  return result;\n}\n/***\r\n *\r\n * @param {TouchEvent} event\r\n * @return {Touch | null}\r\n */\n\n\nfunction findChangedTouchByIdent(event, identifier) {\n  if (event.changedTouches) {\n    for (var i = 0; i < event.changedTouches.length; ++i) {\n      if (event.changedTouches[i].identifier === identifier) {\n        return event.changedTouches[i];\n      }\n    }\n  }\n\n  return null;\n}\n/***\r\n *\r\n * @param event\r\n * @param identifier\r\n * @return {Touch|null}\r\n */\n\n\nfunction findTouchByIdent(event, identifier) {\n  if (event.touches) {\n    for (var i = 0; i < event.touches.length; ++i) {\n      if (event.touches[i].identifier === identifier) {\n        return event.touches[i];\n      }\n    }\n  }\n\n  return null;\n}\n\nEventEmitter.isMouseRight = isMouseRight;\nEventEmitter.isMouseLeft = isMouseLeft;\nEventEmitter.hitElement = hitElement;\nEventEmitter.copyEvent = copyEvent;\nEventEmitter.eventProperties = eventProperties;\nvar _default = EventEmitter;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/HTML5/EventEmitter.js?");

/***/ }),

/***/ "./node_modules/absol/src/HTML5/JSPath.js":
/*!************************************************!*\
  !*** ./node_modules/absol/src/HTML5/JSPath.js ***!
  \************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nfunction JSPath(props) {\n  this.path = props.path;\n}\n/**\r\n *\r\n * @param {Element} element\r\n * @returns {Boolean}\r\n */\n\n\nJSPath.prototype.match = function (element, query) {\n  if (query.id) {\n    if (!element.getAttribute || element.getAttribute('id') != query.id) return false;\n  }\n\n  if (query.tagName) {\n    var matchTag = false;\n    if (element._azar_extendTags && element._azar_extendTags[query.tagName]) matchTag = true;\n    matchTag = matchTag || (element.tagName || '').toUpperCase() == query.tagName.toUpperCase();\n    if (!matchTag) return false;\n  }\n\n  if (query.classList) for (var i = 0; i < query.classList.length; ++i) {\n    if (!element.classList || !element.classList.contains(query.classList[i])) return false;\n  }\n\n  if (query.attributes) {\n    for (var key in query.attributes) {\n      var value;\n\n      if (element.attr) {\n        value = element.attr(key);\n        if (value != query.attributes[key]) return false;\n      } else if (element.getAttribute) {\n        value = element.getAttribute(key);\n        if (value != query.attributes[key]) return false;\n      }\n    }\n  }\n\n  return true;\n};\n/**\r\n * Warning : still fail in some testcase\r\n */\n\n\nJSPath.prototype.findFirst = function (root, onFound) {\n  var queue = [{\n    e: root,\n    i: 0\n  }];\n  var current;\n\n  while (queue.length > 0) {\n    current = queue.shift();\n    var isMathed = false;\n    var currentElt = current.e;\n    var currentI = current.i;\n\n    if (this.match(currentElt, this.path[currentI])) {\n      if (this.path[currentI].childCombinate) {\n        var trackI = currentI;\n        var trackElement = currentElt;\n        var isTrackMatch = true;\n\n        while (isTrackMatch && trackI > 0 && this.path[trackI].childCombinate) {\n          if (!trackElement.parentNode || !this.match(trackElement.parentNode, this.path[trackI - 1])) {\n            isTrackMatch = false;\n          } else {\n            trackElement = trackElement.parentNode;\n            trackI--;\n          }\n        }\n\n        if (isTrackMatch) isMathed = true;\n      } else {\n        isMathed = true;\n      }\n    }\n\n    if (isMathed && currentI + 1 == this.path.length) {\n      if (!onFound || onFound && onFound(currentElt)) return currentElt;\n    }\n\n    if (currentElt.childNodes) {\n      var l = currentElt.childNodes.length;\n\n      for (var i = 0; i < l; ++i) {\n        if (currentElt.childNodes[i].tagName) queue.push({\n          e: currentElt.childNodes[i],\n          i: currentI + (isMathed && currentI + 1 < this.path.length ? 1 : 0)\n        });\n      }\n    }\n  }\n\n  return undefined;\n};\n\nJSPath.prototype.findAll = function (root, onFound) {\n  var res = [];\n  var queue = [{\n    e: root,\n    i: 0\n  }];\n  var current;\n\n  while (queue.length > 0) {\n    current = queue.shift();\n    var isMathed = false;\n    var currentElt = current.e;\n    var currentI = current.i;\n\n    if (this.match(currentElt, this.path[currentI])) {\n      if (this.path[currentI].childCombinate) {\n        var trackI = currentI;\n        var trackElement = currentElt;\n        var isTrackMatch = true;\n\n        while (isTrackMatch && trackI > 0 && this.path[trackI].childCombinate) {\n          if (!trackElement.parentNode || !this.match(trackElement.parentNode, this.path[trackI - 1])) {\n            isTrackMatch = false;\n          } else {\n            trackElement = trackElement.parentNode;\n            trackI--;\n          }\n        }\n\n        if (isTrackMatch) isMathed = true;\n      } else {\n        isMathed = true;\n      }\n    }\n\n    if (isMathed && currentI + 1 == this.path.length) {\n      if (!onFound || onFound && onFound(currentElt)) res.push(currentElt);\n    }\n\n    if (currentElt.childNodes) {\n      var l = currentElt.childNodes.length;\n\n      for (var i = 0; i < l; ++i) {\n        if (currentElt.childNodes[i].tagName) queue.push({\n          e: currentElt.childNodes[i],\n          i: currentI + (isMathed && currentI + 1 < this.path.length ? 1 : 0)\n        });\n      }\n    }\n  }\n\n  return res;\n};\n\nvar identRegex = /[a-zA-Z0-9\\-_]+/;\nvar stringRegex = /\"(([^\"\\\\]*|(\\\\.))*)\"/;\nvar classRegex = new RegExp('\\\\.' + identRegex.source);\nvar idRegex = new RegExp('#' + identRegex.source);\nvar booleanRegex = /true|false/;\nvar valueRegex = new RegExp(stringRegex.source + '|' + booleanRegex.source);\nvar attributeRegex = new RegExp('\\\\[\\\\s*(' + identRegex.source + ')\\\\s*(=\\\\s*(' + valueRegex.source + '))\\\\]');\nvar queryRegex = new RegExp(['(', identRegex.source, '|', attributeRegex.source, '|', classRegex.source, '|', idRegex.source, ')+'].join(''));\nJSPath.__tagRegex = new RegExp(queryRegex.source + '|\\\\>', 'g');\nJSPath.__tagNameRegex = new RegExp('^' + identRegex.source, 'i');\nJSPath.__classRegex = new RegExp(classRegex.source, 'g');\nJSPath.__idRegex = new RegExp(idRegex.source, 'i');\nJSPath.__attrRegex = new RegExp(attributeRegex.source, 'g');\n\nJSPath.parseQuery = function (s) {\n  var tag = {};\n  s = s.replace(JSPath.__attrRegex, function (full, name, assign, jsonTextValue) {\n    tag.attributes = tag.attributes || {};\n\n    if (assign) {\n      tag.attributes[name] = JSON.parse(jsonTextValue);\n    } else tag.attributes[name] = true;\n\n    return '';\n  });\n  var classList = s.match(this.__classRegex);\n  var idList = s.match(this.__idRegex);\n  var tagList = s.match(this.__tagNameRegex);\n\n  if (idList && idList.length > 0) {\n    tag.id = idList[0].substring(1);\n  }\n\n  if (tagList && tagList.length > 0) {\n    tag.tagName = tagList[0].trim();\n  }\n\n  if (classList && classList.length > 0) {\n    tag.classList = classList.map(function (s) {\n      return s.substring(1);\n    });\n  }\n\n  return tag;\n};\n/**\r\n * @param {String} text\r\n * @returns {JSPath}\r\n */\n\n\nJSPath.compileJSPath = function (text) {\n  var tagTexts = text.match(this.__tagRegex) || [''];\n  var path = [];\n  var childCombinate = false;\n\n  for (var i = 0; i < tagTexts.length; ++i) {\n    var s = tagTexts[i];\n\n    if (s == '>') {\n      childCombinate = true;\n    } else {\n      var tag = this.parseQuery(s);\n      tag.childCombinate = childCombinate;\n      path.push(tag);\n      childCombinate = false;\n    }\n  }\n\n  return new JSPath({\n    path: path\n  });\n};\n\nvar _default = JSPath;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/HTML5/JSPath.js?");

/***/ }),

/***/ "./node_modules/absol/src/HTML5/LanguageSystem.js":
/*!********************************************************!*\
  !*** ./node_modules/absol/src/HTML5/LanguageSystem.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = exports.LangSys = void 0;\nexports.elementLanguageChangeHandler = elementLanguageChangeHandler;\nexports.textNodeLanguageChangeHandler = textNodeLanguageChangeHandler;\n\nvar _ResizeSystem = _interopRequireDefault(__webpack_require__(/*! ./ResizeSystem */ \"./node_modules/absol/src/HTML5/ResizeSystem.js\"));\n\nvar _safeThrow = _interopRequireDefault(__webpack_require__(/*! ../Code/safeThrow */ \"./node_modules/absol/src/Code/safeThrow.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @typedef LanguageSystemExtension\r\n * @property {function(key: string, code?: string): (string | null)} getText\r\n */\n\n/****\r\n *\r\n * @constructor\r\n */\nfunction LanguageSystem() {\n  this.data = {};\n  this.code = navigator.language || navigator.userLanguage;\n  /***\r\n   *\r\n   * @type {LanguageSystemExtension[]}\r\n   * @private\r\n   */\n\n  this._extensions = [];\n}\n\nLanguageSystem.prototype.notifyLanguageChange = function () {\n  var sizeChange = false;\n\n  function visit(elt) {\n    if (elt.onlanguagechange) {\n      try {\n        elt.onlanguagechange();\n        sizeChange = true;\n      } catch (err) {\n        (0, _safeThrow[\"default\"])(err);\n      }\n\n      if (elt.childNodes && elt.childNodes.length > 0) {\n        Array.prototype.forEach.call(elt.childNodes, visit);\n      }\n    }\n  }\n\n  visit(document.body);\n  if (sizeChange) _ResizeSystem[\"default\"].update();\n};\n/***\r\n *\r\n * @param {ChildNode | Text | HTMLElement | Element} node\r\n */\n\n\nLanguageSystem.prototype.bind = function (node, key) {\n  if (node.nodeType === 1) {\n    this.bindTextNode(node, key);\n  } else if (node.nodeType === 3) {\n    this.bindElement(node, key);\n  }\n};\n/***\r\n *\r\n * @param {Text | {__as_language_key: string}} node\r\n * @param {string} key\r\n */\n\n\nLanguageSystem.prototype.bindTextNode = function (node, key) {\n  node.__as_language_key = key;\n  node.onlanguagechange = textNodeLanguageChangeHandler;\n};\n/***\r\n *\r\n * @param {ChildNode | HTMLElement | Element | {__as_language_key: string}} node\r\n * @param {string} key\r\n */\n\n\nLanguageSystem.prototype.bindElement = function (node, key) {\n  node.__as_language_key = key;\n  node.onlanguagechange = elementLanguageChangeHandler;\n};\n/***\r\n *\r\n * @param {string} key\r\n * @param {string} [code]\r\n */\n\n\nLanguageSystem.prototype.getText = function (key, code) {\n  var code = code || this.code;\n  var res;\n  var ex;\n\n  for (var i = this._extensions.length - 1; i >= 0; --i) {\n    ex = this._extensions[i];\n    res = ex.getText && ex.getText.apply(ex, arguments);\n    if (res) break;\n  }\n\n  if (!res) {\n    res = this.data[code] && this.data[code][key];\n  }\n\n  return res || null;\n};\n/***\r\n *\r\n * @param {LanguageSystemExtension} ex\r\n */\n\n\nLanguageSystem.prototype.addExtension = function (ex) {\n  this._extensions.push(ex);\n};\n\nvar LangSys = new LanguageSystem();\nexports.LangSys = LangSys;\n\nfunction textNodeLanguageChangeHandler() {\n  if (this.__as_language_key) {\n    var newText = LangSys.getText(this.__as_language_key);\n\n    if (newText && newText.trim) {\n      this.data = newText;\n    }\n  }\n}\n\nfunction elementLanguageChangeHandler() {\n  if (this.__as_language_key) {\n    var newText = LangSys.getText(this.__as_language_key);\n\n    if (newText && newText.trim) {\n      var textNode;\n\n      for (var i = 0; i < this.childNodes.length; ++i) {\n        if (this.childNodes[i].nodeType === 1) {\n          textNode = this.childNodes[i];\n          break;\n        }\n      }\n\n      if (!textNode) {\n        textNode = document.createTextNode('');\n      }\n\n      textNode.data = newText;\n    }\n  }\n}\n\nvar _default = LangSys;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/HTML5/LanguageSystem.js?");

/***/ }),

/***/ "./node_modules/absol/src/HTML5/OOP.js":
/*!*********************************************!*\
  !*** ./node_modules/absol/src/HTML5/OOP.js ***!
  \*********************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\nvar OOP = {};\n/**\r\n * @param {Object} object\r\n * @param {String} key\r\n * @param {Function} method\r\n */\n\nOOP.overrideMethod = function (object, key, method) {\n  if (object[key] === undefined) object[key] = method;else {\n    var _superMethod = object[key];\n\n    object[key] = function (_superMethod, method) {\n      return function () {\n        var _super = this[\"super\"];\n        this[\"super\"] = _superMethod;\n        var result = method.apply(this, arguments);\n        this[\"super\"] = _super;\n        return result;\n      };\n    }(_superMethod, method);\n  }\n};\n\nOOP[\"extends\"] = function (object, prototype) {\n  // do not use setter, getter\n  for (var key in prototype) {\n    if (key !== 'constructor' && key !== '__proto__') {\n      if (typeof prototype[key] == 'function') {\n        OOP.overrideMethod(object, key, prototype[key]);\n      } else if (prototype[key] !== undefined && prototype[key] !== null) {\n        object[key] = prototype[key]; //just copy\n      }\n    }\n  }\n};\n\nOOP.inherit = function (child, parent) {\n  // do not use setter, getter\n  Object.keys(parent).forEach(function (key) {\n    if (key !== 'constructor' && typeof parent[key] == 'function') {\n      var superMethod = parent[key];\n      var currentMethod = child[key];\n      if (!currentMethod) child[key] = superMethod;else {\n        child[key] = function () {\n          var _super = this[\"super\"];\n          this[\"super\"] = superMethod;\n          var result = currentMethod.apply(this, arguments);\n          this[\"super\"] = _super;\n          return result;\n        };\n      }\n    }\n  });\n};\n\nOOP.drillProperty = function (topObject, botObject, keyTop, keyBot) {\n  if (typeof keyTop == 'string') {\n    keyBot = keyBot || keyTop;\n    Object.defineProperty(topObject, keyTop, {\n      set: function set(value) {\n        botObject[keyBot] = value;\n      },\n      get: function get() {\n        return botObject[keyBot];\n      }\n    });\n  } else {\n    if (keyTop instanceof Array) {\n      for (var i = 0; i < keyTop.length; ++i) {\n        OOP.drillProperty(topObject, botObject, keyTop[i], keyTop[i]);\n      }\n    } else {\n      for (var key in keyTop) {\n        OOP.drillProperty(topObject, botObject, key, keyTop[key]);\n      }\n    }\n  }\n};\n\nOOP.bindFunctions = function (_this, handlers) {\n  var res = {};\n\n  for (var key in handlers) {\n    res[key] = handlers[key].bind(_this);\n  }\n\n  return res;\n};\n\nOOP.inheritCreator = function (parent, child) {\n  var i;\n\n  if (child.property) {\n    if (parent.property) {\n      for (i in parent.property) {\n        if (!child.property[i]) child.property[i] = parent.property[i];\n      }\n    }\n  }\n\n  for (i in parent.prototype) {\n    if (!child.prototype[i]) {\n      child.prototype[i] = parent.prototype[i];\n    } else {\n      child.prototype[i] = function (superFunction, childFunction) {\n        return function () {\n          var _super = this[\"super\"];\n          this[\"super\"] = superFunction;\n          var result = childFunction.apply(this, arguments);\n          this[\"super\"] = _super;\n          return result;\n        };\n      }(parent.prototype[i], child.prototype[i]);\n    }\n  }\n};\n/***\r\n *\r\n * @param {Function} constructor\r\n */\n\n\nOOP.mixClass = function (constructor) {\n  var descriptors = {};\n\n  for (var i = 1; i < arguments.length; ++i) {\n    Object.assign(descriptors, Object.getOwnPropertyDescriptors(arguments[i].prototype));\n  }\n\n  delete descriptors.constructor;\n  Object.defineProperties(constructor.prototype, descriptors);\n};\n\nvar _default = OOP;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/HTML5/OOP.js?");

/***/ }),

/***/ "./node_modules/absol/src/HTML5/ResizeSystem.js":
/*!******************************************************!*\
  !*** ./node_modules/absol/src/HTML5/ResizeSystem.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! ./AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nvar _AElementNS = _interopRequireDefault(__webpack_require__(/*! ./AElementNS */ \"./node_modules/absol/src/HTML5/AElementNS.js\"));\n\nvar _DomSignal = _interopRequireDefault(__webpack_require__(/*! ./DomSignal */ \"./node_modules/absol/src/HTML5/DomSignal.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\r\n *\r\n * @constructor\r\n */\nfunction ResizeSystem() {\n  var _this = this;\n\n  this.elts = [];\n  this.cache = [];\n  this.cacheOf = null;\n  this.lastResizeTime = 0;\n  this.pendingElts = {};\n  window.addEventListener('resize', this.update.bind(this));\n  this['goDown' + 'AndCache'] = this.goDownAndCache.bind(this);\n  this['notify' + 'ToElt'] = this.notifyToElt.bind(this);\n  setTimeout(function () {\n    _this.domSignal = new _DomSignal[\"default\"]();\n\n    _this.domSignal.on('request_update_signal', _this.update.bind(_this));\n\n    _this.domSignal.on('request_update_pending_signal', _this.updatePending.bind(_this));\n  }, 1000);\n}\n/***\r\n *\r\n * @param {AElement | AElementNS} elt\r\n */\n\n\nResizeSystem.prototype.goDownAndCache = function (elt) {\n  if (this.notifyToElt(elt)) this.cache.push(elt);\n\n  if (elt.childNodes) {\n    Array.prototype.forEach.call(elt.childNodes, this.goDownAndCache);\n  }\n};\n\nResizeSystem.prototype.notifyToElt = function (elt) {\n  if (typeof elt.requestUpdateSize == 'function') {\n    elt.requestUpdateSize();\n    return true;\n  } else if (typeof elt.updateSize == 'function') {\n    elt.updateSize();\n    return true;\n  } else if (typeof elt.onresize == 'function') {\n    elt.onresize();\n    return true;\n  }\n};\n\nResizeSystem.prototype.update = function () {\n  var now = Date.now();\n\n  if (now - 100 > this.lastResizeTime) {\n    this.removeTrash();\n    this.cache = undefined;\n  }\n\n  this.lastResizeTime = now;\n\n  if (this.cacheOf !== null) {\n    this.cache = undefined;\n    this.cacheOf = null;\n  }\n\n  if (this.cache === undefined) {\n    this.cache = [];\n    this.elts.forEach(this.goDownAndCache);\n  } else {\n    this.cache.forEach(this.notifyToElt);\n  }\n};\n\nResizeSystem.prototype.requestUpdateSignal = function () {\n  if (!this.domSignal) return;\n  this.domSignal.emit('request_update_signal');\n};\n\nResizeSystem.prototype.removeTrash = function () {\n  this.elts = this.elts.filter(function (element) {\n    return _AElement[\"default\"].prototype.isDescendantOf.call(element, document.body);\n  });\n};\n/***\r\n *\r\n * @param  {AElement| AElementNS | Node} fromElt\r\n * @param  {boolean=} toRoot\r\n * @returns {boolean}\r\n */\n\n\nResizeSystem.prototype.updateUp = function (fromElt, toRoot) {\n  var found = false;\n\n  while (fromElt && (!found || toRoot)) {\n    if (typeof fromElt.requestUpdateSize == 'function') {\n      fromElt.requestUpdateSize();\n      found = true;\n    } else if (typeof fromElt.updateSize == 'function') {\n      fromElt.updateSize();\n      found = true;\n    } else if (typeof fromElt.onresize == 'function') {\n      fromElt.onresize();\n      found = true;\n    }\n\n    fromElt = fromElt.parentElement;\n  }\n\n  return found;\n};\n\nResizeSystem.prototype.updatePending = function () {\n  var o = this.pendingElts;\n  this.pendingElts = {};\n\n  for (var key in o) {\n    this.notifyToElt(o[key]);\n  }\n};\n/***\r\n *\r\n * @param  {AElement| AElementNS | Node} fromElt\r\n * @param  {boolean=} toRoot\r\n * @returns {boolean}\r\n */\n\n\nResizeSystem.prototype.requestUpdateUpSignal = function (fromElt, toRoot) {\n  if (!this.domSignal) return;\n  var elts = [];\n  var found = false;\n\n  while (fromElt && (!found || toRoot)) {\n    if (typeof fromElt.requestUpdateSize == 'function' || typeof fromElt.updateSize == 'function' || typeof fromElt.onresize == 'function') {\n      elts.push(fromElt);\n      found = true;\n    }\n\n    fromElt = fromElt.parentElement;\n  }\n\n  var pendingElts = this.pendingElts;\n  elts.forEach(function (elt) {\n    if (!elt.__resize_ident__) elt.__resize_ident__ = Date.now() + '_' + Math.random();\n    if (!pendingElts[elt.__resize_ident__]) pendingElts[elt.__resize_ident__] = elt;\n  });\n  this.domSignal.emit('request_update_pending_signal');\n  return found;\n};\n/***\r\n *\r\n * @param  {AElement| AElementNS | Node} fromElt\r\n * @returns {boolean}\r\n */\n\n\nResizeSystem.prototype.updateDown = function (fromElt) {\n  var now = Date.now();\n\n  if (now - 100 > this.lastResizeTime) {\n    this.cache = undefined;\n  }\n\n  this.lastResizeTime = now;\n\n  if (this.cacheOf !== fromElt) {\n    this.cache = undefined;\n    this.cacheOf = fromElt;\n  }\n\n  if (this.cache === undefined) {\n    this.cache = [];\n    this.goDownAndCache(fromElt);\n  } else {\n    this.cache.forEach(this.notifyToElt);\n  }\n};\n/***\r\n *\r\n * @param {AElement| AElementNS | Node} elt\r\n * @return {boolean}\r\n */\n\n\nResizeSystem.prototype.add = function (elt) {\n  for (var i = 0; i < this.elts.length; ++i) {\n    if (_AElement[\"default\"].prototype.isDescendantOf.call(elt, this.elts[i])) {\n      return false;\n    }\n  }\n\n  this.elts = this.elts.filter(function (e) {\n    return !_AElement[\"default\"].prototype.isDescendantOf.call(e, elt);\n  });\n  this.removeTrash();\n  this.cache = undefined;\n  this.elts.push(elt);\n  return true;\n};\n\nvar _default = new ResizeSystem();\n\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/HTML5/ResizeSystem.js?");

/***/ }),

/***/ "./node_modules/absol/src/HTML5/Svg.js":
/*!*********************************************!*\
  !*** ./node_modules/absol/src/HTML5/Svg.js ***!
  \*********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\nexports.svgToExportedString = svgToExportedString;\nexports.svgToRasterImageUrl = svgToRasterImageUrl;\n\nvar _Dom = _interopRequireWildcard(__webpack_require__(/*! ./Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _ElementNS = _interopRequireDefault(__webpack_require__(/*! ./ElementNS */ \"./node_modules/absol/src/HTML5/ElementNS.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! ./AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nvar _Color = _interopRequireDefault(__webpack_require__(/*! ../Color/Color */ \"./node_modules/absol/src/Color/Color.js\"));\n\nvar _AttachHook = _interopRequireDefault(__webpack_require__(/*! ./AttachHook */ \"./node_modules/absol/src/HTML5/AttachHook.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! ./OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/***\r\n * @extends Dom\r\n * @param option\r\n * @constructor\r\n */\nfunction Svg(option) {\n  _Dom[\"default\"].call(this, option);\n\n  this.svgNS = \"http://www.w3.org/2000/svg\";\n  Object.defineProperties(this.creator, {\n    sattachhook: {\n      set: function set() {//do nothing\n      },\n      get: function get() {\n        return _AttachHook[\"default\"];\n      }\n    }\n  });\n  delete this.buidDom;\n  this.buildSvg = this.create.bind(this);\n}\n\n_OOP[\"default\"].mixClass(Svg, _Dom[\"default\"]);\n\nSvg.prototype.defaultTag = 'g';\n\nSvg.prototype.fromCode = function (code) {\n  code = code.trim();\n  var receptacle = document.createElement('div');\n  var element;\n  var prototypes;\n\n  if (code.startsWith('<svg')) {\n    receptacle.innerHTML = code;\n    element = receptacle.childNodes[0];\n    prototypes = Object.getOwnPropertyDescriptors(_AElement[\"default\"].prototype);\n    Object.defineProperties(element, prototypes);\n\n    _AElement[\"default\"].call(element);\n  } else {\n    var svgfragment = '<svg  version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">' + code + '</svg>';\n    receptacle.innerHTML = '' + svgfragment;\n    element = receptacle.childNodes[0].childNodes[0];\n    prototypes = Object.getOwnPropertyDescriptors(_ElementNS[\"default\"].prototype);\n    Object.defineProperties(element, prototypes);\n\n    _ElementNS[\"default\"].call(element);\n  }\n\n  return element;\n};\n\nSvg.prototype.makeNewElement = function (tagName) {\n  return document.createElementNS(this.svgNS, tagName);\n};\n\nSvg.ShareInstance = new Svg();\n\nSvg.svgToCanvas = function (element) {\n  if (typeof element == 'string') {\n    element = _Dom[\"default\"].ShareInstance.$(element);\n  }\n\n  if (element && element.tagName == 'svg') {\n    var depthClone = function depthClone(originElt) {\n      var newElt = originElt.cloneNode(); //no deep\n\n      if (!originElt.getAttributeNS) return newElt; //is text node\n\n      var style = getComputedStyle(originElt);\n      var key, value;\n\n      for (var i = 0; i < style.length; ++i) {\n        key = style[i];\n        value = style.getPropertyValue(key);\n\n        if (value && value.length > 0 && value !== 'auto') {\n          newElt.style.setProperty(key, value);\n        }\n      }\n\n      var children = Array.prototype.map.call(originElt.childNodes, depthClone);\n\n      for (var i = 0; i < children.length; ++i) {\n        newElt.appendChild(children[i]);\n      }\n\n      return newElt;\n    };\n\n    var cloneElement = depthClone(element);\n\n    var renderSpace = _Dom[\"default\"].ShareInstance._({\n      style: {\n        // opacity:0,\n        zIndex: -1000,\n        position: 'fixed',\n        top: 0,\n        bottom: 0\n      }\n    }).addTo(document.body);\n\n    renderSpace.addChild(cloneElement);\n    var svgCode = renderSpace.innerHTML;\n    renderSpace.clearChild();\n    var mBlob = new Blob([svgCode], {\n      type: \"image/svg+xml;charset=utf-8\"\n    });\n    var src = (URL || webkitURL).createObjectURL(mBlob);\n\n    var image = _Dom[\"default\"].ShareInstance._('img');\n\n    image.attr('src', src).addTo(renderSpace);\n    var canvas = document.createElement(\"canvas\");\n    renderSpace.addChild(canvas);\n    return _Dom[\"default\"].waitImageLoaded(image).then(function () {\n      canvas.width = image.width;\n      canvas.height = image.height;\n      var context = canvas.getContext(\"2d\");\n      context.drawImage(image, 0, 0);\n      renderSpace.selfRemove();\n      return canvas;\n    });\n  } else {\n    throw new Error('Element must be svg');\n  }\n};\n\nfunction svgToRasterImageUrl(element) {\n  return Svg.svgToCanvas(element).then(function (canvas) {\n    return canvas.toDataURL();\n  });\n}\n\nSvg.svgToRasterImageUrl = svgToRasterImageUrl;\n\nfunction svgToExportedString(element) {\n  if (typeof element == 'string') {\n    element = _Dom[\"default\"].ShareInstance.$(element);\n  }\n\n  if (element && element.tagName == 'svg') {\n    var depthClone = function depthClone(originElt) {\n      var newElt = originElt.cloneNode(); //no deep\n\n      if (!originElt.getAttributeNS) return newElt; //is text node\n\n      var cssRules = _AElement[\"default\"].prototype.getCSSRules.call(originElt);\n\n      var cssKey = cssRules.reduce(function (ac, rule) {\n        for (var i = 0; i < rule.style.length; ++i) {\n          ac[rule.style[i]] = true;\n        }\n\n        return ac;\n      }, {});\n\n      for (var key in cssKey) {\n        newElt.style[key] = _AElement[\"default\"].prototype.getComputedStyleValue.call(originElt, key);\n      }\n\n      var children = Array.prototype.map.call(originElt.childNodes, depthClone);\n\n      for (var i = 0; i < children.length; ++i) {\n        newElt.appendChild(children[i]);\n      }\n\n      return newElt;\n    };\n\n    var cloneElement = depthClone(element);\n\n    var renderSpace = _Dom[\"default\"].ShareInstance._({\n      style: {\n        // opacity:0,\n        zIndex: -1000,\n        position: 'fixed',\n        top: 0,\n        bottom: 0\n      }\n    }).addTo(document.body);\n\n    renderSpace.addChild(cloneElement);\n    var svgCode = renderSpace.innerHTML;\n    renderSpace.selfRemove();\n    return svgCode;\n  } else {\n    throw new Error('Element must be svg');\n  }\n}\n\n;\nSvg.svgToExportedString = svgToExportedString;\n\nfunction svgToSvgUrl(element) {\n  var svg = svgToExportedString(element);\n  svg = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\\n' + svg;\n  var blob = new Blob([svg], {\n    type: 'image/svg+xml'\n  });\n  var url = URL.createObjectURL(blob);\n  return url;\n}\n\nSvg.svgToSvgUrl = svgToSvgUrl;\n/***\r\n *\r\n * @param {AElement|String | {computeStyle?: boolean, elt: AElement, keepBackgroundColor?:boolean,convertSVG?:boolean}} option\r\n * @return {Promise<unknown>}\r\n */\n\n_Dom[\"default\"].printElement = function (option) {\n  var _ = _Dom[\"default\"].ShareInstance._;\n  var $ = _Dom[\"default\"].ShareInstance.$;\n  option = option || {};\n\n  if (typeof option == 'string') {\n    option = {\n      elt: _Dom[\"default\"].ShareInstance.$(option)\n    };\n  } else if (typeof option.elt == 'string') {\n    option.elt = $(option.elt);\n  } else if (_Dom[\"default\"].isDomNode(option)) {\n    option = {\n      elt: option\n    };\n  }\n\n  option = Object.assign({\n    keepBackgroundColor: true,\n    convertSVG: false,\n    computeStyle: false\n  }, option);\n\n  if (_Dom[\"default\"].isDomNode(option.elt)) {\n    var afterCloneCb = function afterCloneCb(originElt, newElt) {\n      if (!newElt.tagName) return;\n      var tagName = newElt.tagName.toLowerCase();\n      if (newElt.getBBox && tagName !== 'svg') return;\n      var url, img;\n      var needCopyStyle = option.computeStyle;\n      var needKeepBackgroundColor = option.keepBackgroundColor;\n\n      if (tagName === 'canvas' || tagName === 'svg' && option.convertSVG) {\n        if (tagName === \"canvas\") {\n          url = originElt.toDataURL();\n        } else {\n          url = svgToSvgUrl(originElt);\n        }\n\n        img = _({\n          tag: 'img',\n          props: {\n            src: url\n          }\n        });\n        $(newElt).selfReplace(img);\n        newElt = img;\n        needCopyStyle = true;\n      } else if (tagName === 'script') {\n        newElt.remove();\n      } else if (tagName === 'img') {\n        newElt.setAttribute('src', originElt.src);\n      } else if (tagName === 'input') {\n        if (originElt.getAttribute('type') === 'radio' || originElt.getAttribute('type') === 'checkbox') {\n          if (originElt.checked) {\n            newElt.setAttribute('checked', true);\n          }\n        } else if (originElt.getAttribute('type') === 'text' || !originElt.getAttribute('type') || originElt.getAttribute('type') === 'number') {\n          newElt.setAttribute('value', originElt.value);\n        }\n      }\n\n      if (needCopyStyle) {\n        (0, _Dom.copyStyleRule)(originElt, newElt);\n      }\n\n      if (needKeepBackgroundColor) {\n        try {\n          var bgColor = _AElement[\"default\"].prototype.getComputedStyleValue.call(originElt, 'background-color');\n\n          if (bgColor) {\n            bgColor = _Color[\"default\"].parse(bgColor);\n\n            if (bgColor.rgba[3] > 0) {\n              newElt.style.setProperty('background-color', bgColor.toString('hex8'), 'important');\n            }\n          }\n        } catch (e) {}\n      }\n\n      return newElt;\n    };\n\n    var newElt = (0, _Dom.depthClone)(option.elt, afterCloneCb);\n\n    var renderSpace = _({\n      style: {\n        position: 'fixed',\n        top: '0',\n        left: '0',\n        right: '0',\n        bottom: '0',\n        overflow: 'auto',\n        zIndex: '10',\n        opacity: '0',\n        visibility: 'hidden'\n      }\n    });\n\n    $('link', document.head, function (elt) {\n      var temp = elt.cloneNode(false); //copy absolute url\n\n      temp.setAttribute('href', elt.href);\n      renderSpace.addChild(temp);\n    });\n\n    if (!option.computeStyle) {\n      $('style', document.head, function (elt) {\n        if (elt == _Dom[\"default\"].$printStyle) return;\n        renderSpace.addChild(elt.cloneNode(true));\n      });\n    }\n\n    renderSpace.addChild(newElt);\n    var eltCode = renderSpace.innerHTML;\n    renderSpace.clearChild();\n    option.title = option.title || ($('title', document.head) || {\n      innerHTML: 'absol.js'\n    }).innerHTML;\n    var htmlCode = ['<ht' + 'ml>', ' <h' + 'ead><title>' + option.title + '</title><meta charset=\"UTF-8\">', '<style>', option.overideStyle ? 'html, body{width:initial !important; height:initial !important; overflow: initial !important; overflow-x: initial !important;overflow-y: initial !important;  }' : '', '@media print {', //still not work\n    '    body{', '      -webkit-print-color-adjust: exact;', '       color-adjust: exact;', '    } ', '    div, tr, td, table{', '    }', '  }', 'div, table, tr, td{', '    page-break-inside: initial;', '    page-break-before: avoid;', '    page-break-after: avoid;', '}', option.extendCss || '', '</style>', '</he' + 'ad>', '<bod' + 'y>', eltCode, '<scr' + 'ipt>' + (option.extendScript || '') + '</scri' + 'pt>', //browser parse  script tag fail\n    '<scr' + 'ipt>setTimeout(function(){ window.print();},1000);</scri' + 'pt>', //browser parse  script tag fail\n    '</bod' + 'y>', '</ht' + 'ml>'].join('\\n');\n    var blob = new Blob([htmlCode], {\n      type: 'text/html; charset=UTF-8'\n    });\n    renderSpace.addTo(document.body);\n\n    var iframe = _('iframe').attr('src', URL.createObjectURL(blob)).addStyle({\n      width: '100%',\n      height: '100%'\n    }).addTo(renderSpace);\n\n    return new Promise(function (rs, rj) {\n      function waitLoad() {\n        if (iframe.contentWindow && iframe.contentWindow.document && iframe.contentWindow.document.body) {\n          if (typeof option.onLoad == 'function') option.onLoad();\n          iframe.contentWindow.focus();\n          setTimeout(function () {\n            function waitFocusBack() {\n              if (!document.hasFocus || document.hasFocus()) {\n                renderSpace.remove();\n                if (typeof option.onFinish == 'function') option.onFinish();\n                rs();\n              } else {\n                setTimeout(waitFocusBack, 300);\n              }\n            }\n\n            waitFocusBack();\n          }, 4000);\n        } else setTimeout(waitLoad, 1000);\n      }\n\n      waitLoad();\n    });\n  } else {\n    throw new Error('Invalid param!');\n  }\n};\n\nvar _default = Svg;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/HTML5/Svg.js?");

/***/ }),

/***/ "./node_modules/absol/src/HTML5/Text.js":
/*!**********************************************!*\
  !*** ./node_modules/absol/src/HTML5/Text.js ***!
  \**********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.getCaretPosition = getCaretPosition;\nexports.getTextIn = getTextIn;\nexports.getTextNodesIn = getTextNodesIn;\nexports.measureText = measureText;\nexports.setCaretPosition = setCaretPosition;\nexports.setSelectionRange = setSelectionRange;\nexports.setSelectionRangeEnd = setSelectionRangeEnd;\nexports.setSelectionRangeStart = setSelectionRangeStart;\nexports.textToNodes = textToNodes;\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! ./Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction getTextNodesIn(node) {\n  var textNodes = [];\n\n  if (node.nodeType == 3) {\n    textNodes.push(node);\n  } else {\n    var children = node.childNodes;\n\n    for (var i = 0, len = children.length; i < len; ++i) {\n      textNodes.push.apply(textNodes, getTextNodesIn(children[i]));\n    }\n  }\n\n  return textNodes;\n}\n/**\r\n * \r\n * @param {Element} el \r\n * @param {Range} range \r\n * @param {Number} start \r\n * @returns {Number} -1: ok,  ret >= 0(is length of text) : need move to next element\r\n * \r\n */\n\n\nfunction setSelectionRangeStart(el, range, start) {\n  if (start > 0) {\n    if (el.nodeType == Node.TEXT_NODE) {\n      var text = el.data;\n\n      if (start <= text.length) {\n        range.setStart(el, start);\n        return -1;\n      } else return text.length;\n    }\n\n    if (el.tagName.toLowerCase() == 'br') {\n      return 0;\n    } else {\n      var delta = 0;\n      var i = 0;\n      var textLength = 0;\n      var newLine = false;\n\n      while (delta >= 0 && i < el.childNodes.length) {\n        var childElt = el.childNodes[i];\n\n        if (newLine) {\n          newLine = false;\n          ++textLength;\n        }\n\n        delta = setSelectionRangeStart(childElt, range, start - textLength);\n        if (delta >= 0) textLength += delta;\n\n        if (childElt.nodeType != Node.TEXT_NODE && (window.getComputedStyle(childElt).display == 'block' || childElt.tagName.toLowerCase() == 'br')) {\n          newLine = true;\n        }\n\n        ++i;\n      }\n\n      if (delta >= 0) return textLength;\n      return -1;\n    }\n  } else {\n    range.setStart(el, 0);\n    return -1;\n  }\n}\n/**\r\n * \r\n * @param {Element} el \r\n * @param {Range} range \r\n * @param {Number} end \r\n * @returns {Number} -1: ok,  ret >= 0(is length of text) : need move to next element\r\n * \r\n */\n\n\nfunction setSelectionRangeEnd(el, range, end) {\n  if (end > 0) {\n    if (el.nodeType == Node.TEXT_NODE) {\n      var text = el.data;\n\n      if (end <= text.length) {\n        range.setEnd(el, end);\n        return -1;\n      } else return text.length;\n    }\n\n    if (el.tagName.toLowerCase() == 'br') {\n      return 0;\n    } else {\n      var delta = 0;\n      var i = 0;\n      var textLength = 0;\n      var newLine = false;\n\n      while (delta >= 0 && i < el.childNodes.length) {\n        var childElt = el.childNodes[i];\n\n        if (newLine) {\n          newLine = false;\n          ++textLength;\n        }\n\n        delta = setSelectionRangeEnd(childElt, range, end - textLength);\n        if (delta >= 0) textLength += delta;\n\n        if (childElt.nodeType != Node.TEXT_NODE && (window.getComputedStyle(childElt).display == 'block' || childElt.tagName.toLowerCase() == 'br')) {\n          newLine = true;\n        }\n\n        ++i;\n      }\n\n      if (delta >= 0) return textLength;\n      return -1;\n    }\n  } else {\n    range.setEnd(el, 0);\n    return -1;\n  }\n}\n\nfunction setSelectionRange(el, start, end) {\n  if (document.createRange && window.getSelection) {\n    var range = document.createRange();\n    range.selectNodeContents(el);\n    var delta;\n\n    if (start >= 0) {\n      delta = setSelectionRangeStart(el, range, start);\n      if (delta >= 0) range.setStart(el, el.childNodes.length);\n    } else {\n      start = 0;\n      range.setStart(el, 0);\n    }\n\n    if (end >= start) {\n      delta = setSelectionRangeEnd(el, range, end);\n      if (delta >= 0) range.setEnd(el, el.childNodes.length);\n    }\n\n    var sel = window.getSelection();\n    sel.removeAllRanges();\n    sel.addRange(range);\n  } else if (document.selection && document.body.createTextRange) {\n    var textRange = document.body.createTextRange();\n    textRange.moveToElementText(el);\n    textRange.collapse(true);\n    textRange.moveEnd(\"character\", end);\n    textRange.moveStart(\"character\", start);\n    textRange.select();\n  }\n}\n\nfunction getTextIn(e) {\n  if (e.nodeType == Node.TEXT_NODE) {\n    return e.data;\n  }\n\n  if (e.tagName && e.tagName.toLowerCase() == 'br') return '';\n  var texts = [];\n  var newLine = false;\n\n  for (var i = 0; i < e.childNodes.length; ++i) {\n    if (newLine) {\n      newLine = false;\n      texts.push('\\n');\n    }\n\n    var childElt = e.childNodes[i];\n    texts.push(getTextIn(childElt));\n\n    if (childElt.nodeType != Node.TEXT_NODE && (window.getComputedStyle(childElt).display == 'block' || childElt.tagName.toLowerCase() == 'br')) {\n      newLine = true;\n    }\n  }\n\n  return texts.join('');\n}\n\nfunction textToNodes(text) {\n  var lines = text.split(/\\r?\\n/);\n  return lines.map(function (text) {\n    if (text.length == 0) {\n      return _Dom[\"default\"].ShareInstance._({\n        child: {\n          tag: 'br'\n        }\n      });\n    } else {\n      return _Dom[\"default\"].ShareInstance._({\n        child: {\n          text: text\n        }\n      });\n    }\n  });\n}\n/*\r\n** Returns the caret (cursor) position of the specified text field (oField).\r\n** Return value range is 0-oField.value.length.\r\n*/\n\n\nfunction getCaretPosition(oField) {\n  // Initialize\n  var iCaretPos = 0; // IE Support\n\n  if (document.selection) {\n    // Set focus on the element\n    oField.focus(); // To get cursor position, get empty selection range\n\n    var oSel = document.selection.createRange(); // Move selection start to 0 position\n\n    oSel.moveStart('character', -oField.value.length); // The caret position is selection length\n\n    iCaretPos = oSel.text.length;\n  } // Firefox support\n  else if (oField.selectionStart || oField.selectionStart == '0') iCaretPos = oField.selectionDirection == 'backward' ? oField.selectionStart : oField.selectionEnd; // Return results\n\n\n  return iCaretPos;\n}\n\nfunction setCaretPosition(oField, caretPos) {\n  if (oField.createTextRange) {\n    var range = oField.createTextRange();\n    range.move('character', caretPos);\n    range.select();\n  } else {\n    if (oField.selectionStart) {\n      oField.focus();\n      oField.setSelectionRange(caretPos, caretPos);\n    } else oField.focus();\n  }\n}\n\nfunction measureText(text, font) {\n  // re-use canvas object for better performance\n  var canvas = measureText.canvas || (measureText.canvas = document.createElement(\"canvas\"));\n  var context = canvas.getContext(\"2d\");\n  if (font) context.font = font;\n  var metrics = context.measureText(text);\n  return metrics;\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/HTML5/Text.js?");

/***/ }),

/***/ "./node_modules/absol/src/Input/keyboard.js":
/*!**************************************************!*\
  !*** ./node_modules/absol/src/Input/keyboard.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.isAltKey = isAltKey;\nexports.isCtrlKey = isCtrlKey;\nexports.isFnKey = isFnKey;\nexports.isMetaKey = isMetaKey;\nexports.isShiftKey = isShiftKey;\nexports.isSpaceKey = isSpaceKey;\nexports.keyboardEventToKeyBindingIdent = keyboardEventToKeyBindingIdent;\nexports.normalizeKeyBindingIdent = normalizeKeyBindingIdent;\n\nfunction isFnKey(name) {\n  return name.match(/^[fF]([2-9]|(1([0-2]?)))$/);\n}\n\nfunction isSpaceKey(name) {\n  return name === ' ' || name.match(/^[sS]pace$/);\n}\n\nfunction isCtrlKey(name) {\n  return name.match(/(^([cC]ontrol)|ctrl)$/);\n}\n\nfunction isAltKey(name) {\n  return name.match(/^[aA]lt$/);\n}\n\nfunction isShiftKey(name) {\n  return name.match(/^[sS]hift$/);\n}\n\nfunction isMetaKey(name) {\n  return name.toLowerCase().match(/^(command|windows|meta)$/);\n}\n/***\r\n *\r\n * @param {string} text\r\n * @return {string}\r\n */\n\n\nfunction normalizeKeyBindingIdent(text) {\n  var keys = text.trim().toLowerCase().split(/[-+\\s_.]+/).filter(function (w) {\n    return w.length > 0;\n  });\n  var values = {\n    meta: 1,\n    ctrl: 2,\n    alt: 3,\n    shift: 4\n  };\n  keys.sort(function (a, b) {\n    var va, vb;\n    va = values[a] || 100;\n    vb = values[b] || 100;\n    return va - vb;\n  });\n  return keys.join('-');\n}\n/***\r\n *\r\n * @param {KeyboardEvent} event\r\n * @return {string}\r\n */\n\n\nfunction keyboardEventToKeyBindingIdent(event) {\n  var keys = [];\n\n  if (event.metaKey) {\n    keys.push('meta');\n  }\n\n  if (event.ctrlKey) keys.push('ctrl');\n  if (event.altKey) keys.push('alt');\n  if (event.shiftKey) keys.push('shift');\n\n  if (isSpaceKey(event.key)) {\n    keys.push('space');\n  } else if (isFnKey(event.key)) {\n    keys.push(event.key.toLowerCase());\n  } else if (!isMetaKey(event.key) && !isAltKey(event.key) && !isCtrlKey(event.key) && !isShiftKey(event.key)) keys.push(event.key.toLowerCase());\n\n  return keys.join('-');\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Input/keyboard.js?");

/***/ }),

/***/ "./node_modules/absol/src/JSDocx/DocxTpl.js":
/*!**************************************************!*\
  !*** ./node_modules/absol/src/JSDocx/DocxTpl.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _TemplateString = _interopRequireDefault(__webpack_require__(/*! ../JSMaker/TemplateString */ \"./node_modules/absol/src/JSMaker/TemplateString.js\"));\n\nvar _document = _interopRequireDefault(__webpack_require__(/*! ./templates/document.tpl */ \"./node_modules/absol/src/JSDocx/templates/document.tpl\"));\n\nvar _mht_document = _interopRequireDefault(__webpack_require__(/*! ./templates/mht_document.tpl */ \"./node_modules/absol/src/JSDocx/templates/mht_document.tpl\"));\n\nvar _mht_part = _interopRequireDefault(__webpack_require__(/*! ./templates/mht_part.tpl */ \"./node_modules/absol/src/JSDocx/templates/mht_part.tpl\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = {\n  document: new Function('pageSetting', 'return ' + _TemplateString[\"default\"].parse(_document[\"default\"]).toJSCode()),\n  mht_document: new Function('htmlSource', 'contentParts', 'return ' + _TemplateString[\"default\"].parse(_mht_document[\"default\"]).toJSCode()),\n  mht_part: new Function('contentType', 'contentEncoding', 'contentLocation', 'encodedContent', 'return ' + _TemplateString[\"default\"].parse(_mht_part[\"default\"]).toJSCode())\n};\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/JSDocx/DocxTpl.js?");

/***/ }),

/***/ "./node_modules/absol/src/JSDocx/JSDocx.js":
/*!*************************************************!*\
  !*** ./node_modules/absol/src/JSDocx/JSDocx.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _DocxTpl = _interopRequireDefault(__webpack_require__(/*! ./DocxTpl */ \"./node_modules/absol/src/JSDocx/DocxTpl.js\"));\n\nvar _content_types = _interopRequireDefault(__webpack_require__(/*! ./assets/content_types.xml */ \"./node_modules/absol/src/JSDocx/assets/content_types.xml\"));\n\nvar _rels = _interopRequireDefault(__webpack_require__(/*! ./assets/rels.xml */ \"./node_modules/absol/src/JSDocx/assets/rels.xml\"));\n\nvar _documentXml = _interopRequireDefault(__webpack_require__(/*! ./assets/document.xml.rels */ \"./node_modules/absol/src/JSDocx/assets/document.xml.rels\"));\n\nvar _Dom = _interopRequireDefault(__webpack_require__(/*! ../HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _Svg = _interopRequireDefault(__webpack_require__(/*! ../HTML5/Svg */ \"./node_modules/absol/src/HTML5/Svg.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar JSZip = window.JSZip;\n\nfunction JSDocx(props) {\n  if (props.blob) this.blob = props.blob;\n  if (props.blob) this.buffer = props.buffer;\n}\n\nJSDocx.prototype.saveAs = function (fileName) {\n  var src;\n\n  if (this.blob) {\n    src = (URL || webkitURL).createObjectURL(this.blob);\n  } else if (this.buffer) {\n    src = \"data:application/octet-stream,\" + encodeURIComponent(this.buffer);\n  }\n\n  var element = document.createElement('a');\n  element.setAttribute('href', src);\n  element.setAttribute('download', fileName);\n  element.style.display = 'none';\n  document.body.appendChild(element);\n  element.click();\n  document.body.removeChild(element);\n};\n\nJSDocx._prepareImageParts = function (htmlSource) {\n  var imageContentParts = [];\n  var inlinedSrcPattern = /\\\"data:(\\w+\\/\\w+);(\\w+),(\\S+)\\\"/g;\n\n  var inlinedReplacer = function inlinedReplacer(match, contentType, contentEncoding, encodedContent) {\n    var index = imageContentParts.length;\n    var extension = contentType.split('/')[1];\n    var contentLocation = \"file:///C:/fake/image\" + index + \".\" + extension; // mht_part: new Function('contentType', 'contentEncoding', 'contentLocation', 'encodedContent', 'return ' + TemplateString.parse(mht_pathTpl).toJSCode())\n\n    imageContentParts.push(_DocxTpl[\"default\"].mht_part(contentType, contentEncoding, contentLocation, encodedContent));\n    return \"\\\"\" + contentLocation + \"\\\"\";\n  };\n\n  if (typeof htmlSource === 'string') {\n    if (!/<img/g.test(htmlSource)) {\n      return {\n        htmlSource: htmlSource,\n        imageContentParts: imageContentParts\n      };\n    }\n\n    htmlSource = htmlSource.replace(inlinedSrcPattern, inlinedReplacer);\n    return {\n      htmlSource: htmlSource,\n      imageContentParts: imageContentParts\n    };\n  } else {\n    throw new Error(\"Not a valid source provided!\");\n  }\n};\n\nJSDocx._getMHTdocument = function (htmlSource) {\n  var imageContentParts, _ref;\n\n  _ref = this._prepareImageParts(htmlSource), htmlSource = _ref.htmlSource, imageContentParts = _ref.imageContentParts;\n  htmlSource = htmlSource.replace(/\\=/g, '=3D');\n  return _DocxTpl[\"default\"].mht_document(htmlSource, imageContentParts.join('\\n'));\n};\n/**\r\n * @param {JSZip} zip\r\n */\n\n\nJSDocx._generateDocument = function (zip) {\n  return zip.generateAsync({\n    type: 'arraybuffer'\n  }).then(function (buffer) {\n    var props = {};\n    if (__webpack_require__.g.Blob) props.blob = new Blob([buffer], {\n      type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'\n    });else if (__webpack_require__.g.Buffer) props.buffer = new Buffer(new Uint8Array(buffer));else throw new Error(\"Neither Blob nor Buffer are accessible in this environment. \" + \"Consider adding Blob.js shim\");\n    return new JSDocx(props);\n  });\n};\n\nJSDocx._renderDocumentFile = function (pageSetting) {\n  return _DocxTpl[\"default\"].document(pageSetting);\n};\n\nJSDocx._createPageSetting = function (documentOptions) {\n  documentOptions = documentOptions || {};\n  var pageSetting = {\n    margins: {\n      top: 1440,\n      right: 1440,\n      bottom: 1440,\n      left: 1440,\n      header: 720,\n      footer: 720,\n      gutter: 0\n    }\n  };\n\n  if (documentOptions.orientation == 'landscape') {\n    Object.assign(pageSetting, {\n      height: 12240,\n      width: 15840,\n      orient: 'landscape'\n    });\n  } else {\n    Object.assign(pageSetting, {\n      width: 12240,\n      height: 15840,\n      orient: 'portrait'\n    });\n  }\n\n  if (documentOptions.margins) {\n    Object.assign(pageSetting, documentOptions.margins);\n  }\n\n  return pageSetting;\n};\n\nJSDocx._addFiles = function (zip, htmlSource, pageSetting) {\n  zip.file('[Content_Types].xml', _content_types[\"default\"]);\n  zip.folder('_rels').file('.rels', _rels[\"default\"]);\n  zip.folder('word').file('document.xml', _DocxTpl[\"default\"].document(pageSetting));\n  zip.folder('word').file('document.xml', JSDocx._renderDocumentFile(pageSetting)).file('afchunk.mht', JSDocx._getMHTdocument(htmlSource)).folder('_rels').file('document.xml.rels', _documentXml[\"default\"]);\n  return zip;\n};\n\nJSDocx.fromHTMLCode = function (html, options) {\n  var zip = new JSZip();\n\n  JSDocx._addFiles(zip, html, JSDocx._createPageSetting(options));\n\n  return JSDocx._generateDocument(zip);\n};\n\nJSDocx.fromHTMLElement = function (element, options, getOuter, isWorkingElement) {\n  if (typeof element == 'string') {\n    element = _Dom[\"default\"].ShareInstance.$(element);\n  }\n\n  if (!element) throw new Error('@param element must be HTMLElement');\n  var preRender;\n\n  if (!isWorkingElement) {\n    preRender = _Dom[\"default\"].ShareInstance._('div');\n    preRender.addStyle({\n      position: 'fixed',\n      top: '0',\n      left: '0',\n      zIndex: '-10000',\n      opacity: '0'\n    }).addTo(document.body);\n    Array.prototype.forEach.call(element.childNodes, function (e) {\n      if (e.tagName != 'script') preRender.addChild(e.cloneNode(true));\n    });\n  } else {\n    preRender = element;\n  }\n\n  _Dom[\"default\"].ShareInstance.$('script', preRender, function (e) {\n    e.parentElement.removeChild(e);\n    return false;\n  });\n\n  var imageTask = [];\n\n  _Dom[\"default\"].ShareInstance.$('img', preRender, function (e) {\n    if (e.src && !e.src.match(/data:/)) {\n      var task = _Dom[\"default\"].imageToCanvas(e).then(function (canvas) {\n        var newSrc = canvas.toDataURL();\n        e.src = newSrc;\n      });\n\n      imageTask.push(task);\n    }\n\n    return false;\n  });\n\n  _Dom[\"default\"].ShareInstance.$('svg', preRender, function (e) {\n    var task = _Svg[\"default\"].svgToCanvas(e).then(function (canvas) {\n      var newSrc = canvas.toDataURL();\n\n      var image = _Dom[\"default\"].ShareInstance._('img');\n\n      image.src = newSrc;\n\n      _Dom[\"default\"].ShareInstance.$(e).selfReplace(image);\n    });\n\n    imageTask.push(task);\n    return false;\n  });\n\n  return Promise.all(imageTask).then(function () {\n    var code;\n\n    if (getOuter) {\n      code = preRender.outerHTML;\n\n      if (!code) {\n        var temp = document.createElement('div');\n        temp.addChild(preRender);\n        code = temp.innerHTML;\n      }\n    } else {\n      code = preRender.innerHTML;\n    }\n\n    return JSDocx.fromHTMLCode(code, options);\n  });\n};\n\nvar _default = JSDocx;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/JSDocx/JSDocx.js?");

/***/ }),

/***/ "./node_modules/absol/src/JSMaker/TemplateString.js":
/*!**********************************************************!*\
  !*** ./node_modules/absol/src/JSMaker/TemplateString.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nfunction TemplateString(props) {\n  this.parts = props.parts;\n}\n\nTemplateString.prototype.toJSCode = function () {\n  return this.parts.map(function (e) {\n    if (e.type == TemplateString.TYPE_EXPRESSION) {\n      return '(' + e.data + ')';\n    } else {\n      return JSON.stringify(e.data);\n    }\n  }).join('+');\n};\n\nTemplateString.__partRegex = /(\\{\\{(([^\\}]|(\\}[^\\}]))*)\\}\\})|(([^\\{]|(\\{[^\\{]))+)/g;\n/**\r\n *  @param  {String} text \r\n */\n\nTemplateString.__matchExpression = function (text) {\n  if (text[0] == '{' && text[1] == '{' && text[text.length - 1] == '}' && text[text.length - 2] == '}') {\n    return [text, text.substr(2, text.length - 4).trim()];\n  } else {\n    return false;\n  }\n};\n\nTemplateString.TYPE_STRING = 0;\nTemplateString.TYPE_EXPRESSION = 1;\n\nTemplateString.parse = function (text) {\n  text = text + '';\n  var matchedParts = text.match(this.__partRegex);\n\n  if (matchedParts) {\n    var parts = matchedParts.map(function (e) {\n      var matchedExp = this.__matchExpression(e);\n\n      if (matchedExp) {\n        return {\n          type: this.TYPE_EXPRESSION,\n          data: matchedExp[1]\n        };\n      } else {\n        return {\n          type: this.TYPE_STRING,\n          data: e\n        };\n      }\n    }.bind(this));\n    return new TemplateString({\n      parts: parts\n    });\n  } else {\n    return new TemplateString({\n      parts: []\n    });\n  }\n};\n\nvar _default = TemplateString;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/JSMaker/TemplateString.js?");

/***/ }),

/***/ "./node_modules/absol/src/JSMaker/TemplateXML.js":
/*!*******************************************************!*\
  !*** ./node_modules/absol/src/JSMaker/TemplateXML.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _XML = _interopRequireDefault(__webpack_require__(/*! ../XML/XML */ \"./node_modules/absol/src/XML/XML.js\"));\n\nvar _XMLConstant = _interopRequireDefault(__webpack_require__(/*! ../XML/XMLConstant */ \"./node_modules/absol/src/XML/XMLConstant.js\"));\n\nvar _TemplateString = _interopRequireDefault(__webpack_require__(/*! ./TemplateString */ \"./node_modules/absol/src/JSMaker/TemplateString.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction TemplateXML(props) {\n  this.xml = props.xml;\n}\n\nTemplateXML.prototype._xmlNodeToJSCode = function (node) {\n  var body = [];\n\n  if (node.nodeType == _XMLConstant[\"default\"].TYPE_ELEMENT) {\n    body.push('tag:' + JSON.stringify(node.tagName));\n    var attributeKeys = Object.keys(node.attributes).filter(function (x) {\n      return x != 'class' && x != 'style' && !x.startsWith('az-');\n    });\n\n    if (attributeKeys && attributeKeys.length > 0) {\n      body.push('attr: {' + attributeKeys.map(function (key) {\n        return JSON.stringify(key) + ': ' + _TemplateString[\"default\"].parse(node.attributes[key]).toJSCode();\n      }).join(', ') + '}');\n    }\n\n    if (node.attributes['az-props']) {\n      body.push('props: ' + _TemplateString[\"default\"].parse(node.attributes['az-props']).toJSCode());\n    }\n\n    if (node.attributes['az-data']) {\n      body.push('data: ' + _TemplateString[\"default\"].parse(node.attributes['az-data']).toJSCode());\n    }\n\n    if (node.attributes.style) {\n      var styleSheet = node.attributes.style.split(';').map(function (s) {\n        var t = s.split(':').map(function (text) {\n          return text.trim();\n        });\n\n        if (t.length == 2) {\n          return JSON.stringify(t[0]) + ': ' + JSON.stringify(t[1]);\n        } else return false;\n      }).filter(function (e) {\n        return !!e;\n      });\n\n      if (styleSheet.length > 0) {\n        body.push('style:{' + styleSheet.join(',') + '}');\n      }\n    }\n\n    if (node.attributes[\"class\"]) {\n      var classList = node.attributes[\"class\"].trim().split(/\\s+/);\n      if (classList.length > 0) body.push('class:' + JSON.stringify(classList));\n    }\n\n    if (node.childNodes && node.childNodes.length > 0) {\n      var childList = '[' + node.childNodes.filter(function (e) {\n        return e.nodeType == _XMLConstant[\"default\"].TYPE_ELEMENT || e.nodeType == _XMLConstant[\"default\"].TYPE_TEXT;\n      }).map(function (e) {\n        return this._xmlNodeToJSCode(e);\n      }.bind(this)).filter(function (e) {\n        return !!e;\n      }).join(', ') + ']';\n      if (childList && childList.length > 0) body.push('child: ' + childList);\n    }\n  } else if (node.nodeType == _XMLConstant[\"default\"].TYPE_TEXT) {\n    body.push('text: ' + _TemplateString[\"default\"].parse(node.data).toJSCode());\n  } else return undefined;\n\n  var res = '{' + body.join(', ') + '}';\n  return res;\n};\n\nTemplateXML.prototype.toJSCode = function () {\n  var res = this._xmlNodeToJSCode(this.xml);\n\n  return res;\n};\n/**\r\n * \r\n * @param  {...any} args \r\n * @returns {Function}\r\n */\n\n\nTemplateXML.compileToFunction = function () {\n  var innerCode = 'return ' + this.parse(arguments[arguments.length - 1]).toJSCode() + ';';\n  var fParam = Array.prototype.slice.call(arguments, 0, arguments.length - 1);\n  fParam.push(innerCode);\n  return Function.apply(null, fParam);\n};\n\nTemplateXML.parse = function (text) {\n  var xml = _XML[\"default\"].parse(text);\n\n  if (xml) {\n    return new TemplateXML({\n      xml: xml\n    });\n  } else return undefined;\n};\n\nvar _default = TemplateXML;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/JSMaker/TemplateXML.js?");

/***/ }),

/***/ "./node_modules/absol/src/JSMaker/generator.js":
/*!*****************************************************!*\
  !*** ./node_modules/absol/src/JSMaker/generator.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.copyJSVariable = copyJSVariable;\nexports.generateJSVariable = generateJSVariable;\nexports.isJSVariableEqual = isJSVariableEqual;\nexports.replaceDateStringJSVariable = replaceDateStringJSVariable;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction generateJSVariable(obj, indent) {\n  indent = indent || '';\n  var childIndent = indent + '    ';\n\n  if (obj === null) {\n    return 'null';\n  } else if (obj instanceof Date) {\n    return 'new Date(' + obj.getTime() + ')';\n  } else if (obj instanceof Array) {\n    if (obj.length === 0) return '[]';\n    return '[\\n' + obj.map(function (it) {\n      return childIndent + generateJSVariable(it, childIndent);\n    }).join(',\\n') + '\\n' + indent + ']';\n  } else if (obj instanceof Error) {\n    return generateJSVariable({\n      message: obj.message,\n      stack: obj.stack\n    });\n  } else if (_typeof(obj) === 'object') {\n    var keys = Object.keys(obj);\n    if (keys.length === 0) return '{}';\n    return '{\\n' + keys.map(function (key) {\n      var value = obj[key];\n      if (!key.match(/^[a-zA-Z_$]([a-zA-Z_0-9$]*)$/)) key = JSON.stringify(key);\n      return childIndent + key + ': ' + generateJSVariable(value, childIndent);\n    }).join(',\\n') + '\\n' + indent + '}';\n  } else if (obj === undefined) {\n    return 'undefined';\n  } else {\n    return JSON.stringify(obj);\n  }\n}\n/***\r\n *\r\n * @param o\r\n * @param {Array<{test, replace}>| null=} replacers\r\n * @returns {*}\r\n */\n\n\nfunction copyJSVariable(o, replacers) {\n  var _arguments = arguments;\n  var replacer;\n\n  if (replacers && replacers.length > 0) {\n    replacer = replacers.find(function (rp) {\n      return rp.test.apply(rp, [o].concat(Array.prototype.slice.call(_arguments, 2)));\n    });\n\n    if (replacer) {\n      return replacer.replace.apply(replacer, [o].concat(Array.prototype.slice.call(arguments, 2)));\n    }\n  }\n\n  if (o === null) return null;\n  if (o === undefined) return undefined;\n\n  var type = _typeof(o);\n\n  if (type === \"boolean\") return o;\n  if (o instanceof Date || typeof o.getTime === \"function\") return new Date(o.getTime());\n  if (type === \"number\") return o;\n  if (type === \"string\") return o + '';\n\n  if (typeof o.map === \"function\") {\n    return o.map(function (it, i) {\n      return copyJSVariable(it, replacers, i, o);\n    });\n  }\n\n  if (type === \"object\" && o.constructor === Object) {\n    return Object.keys(o).reduce(function (ac, cr) {\n      ac[cr] = copyJSVariable(o[cr], replacers, cr, o);\n      return ac;\n    }, {});\n  }\n\n  return o;\n}\n\nfunction replaceDateStringJSVariable(o) {\n  return copyJSVariable(o, [{\n    test: function test(x) {\n      return typeof x === \"string\" && x.match(/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun)\\s+([a-zA-Z]{3})\\s+[\\d\\s:]+GMT[\\d+]+\\s*\\([^)]+\\)$/) && !isNaN(new Date(x).getTime());\n    },\n    replace: function replace(x) {\n      return new Date(x);\n    }\n  }]);\n}\n/***\r\n *\r\n * @param a\r\n * @param b\r\n * @return {boolean}\r\n */\n\n\nfunction isJSVariableEqual(a, b) {\n  if (a === b) return true; //1\n\n  var tA = _typeof(a);\n\n  var tB = _typeof(b);\n\n  if (tA !== tB) return false; //2\n\n  if (!a !== !b) return false;\n  if (tA === 'string') return false; //because 1 & 2\n\n  if (tA === \"number\") {\n    if (isNaN(a) && isNaN(b)) return true; //because 2\n\n    return false; //because 1\n  }\n\n  var aIsDate = a instanceof Date;\n  var bIsDate = b instanceof Date;\n  if (aIsDate !== bIsDate) return false;\n  if (aIsDate) return isJSVariableEqual(a.getTime(), b.getTime());\n  var aIsArray = a instanceof Array;\n  var bIsArray = a instanceof Array;\n  if (aIsArray !== bIsArray) return false;\n  var i;\n\n  if (aIsArray) {\n    if (a.length !== b.length) return false;\n\n    for (i = 0; i < a.length; ++i) {\n      if (!isJSVariableEqual(a[i], b[i])) return false;\n    }\n\n    return true;\n  } //object\n\n\n  if (a.equals) return a.equals(b);\n  var aKeys = Object.keys(a);\n  var bKeys = Object.keys(b);\n  aKeys.sort();\n  bKeys.sort();\n  if (!isJSVariableEqual(aKeys, bKeys)) return false;\n\n  for (i = 0; i < aKeys.length; ++i) {\n    if (!isJSVariableEqual(a[aKeys[i]], b[aKeys[i]])) return false;\n  }\n\n  return true;\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/JSMaker/generator.js?");

/***/ }),

/***/ "./node_modules/absol/src/JSX/attribute.js":
/*!*************************************************!*\
  !*** ./node_modules/absol/src/JSX/attribute.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.parseClassAttr = parseClassAttr;\nexports.parseMeasureValue = parseMeasureValue;\nexports.parseStyleAttr = parseStyleAttr;\n\n/**\r\n * \r\n * @param {String} text \r\n *  @returns {Object}\r\n */\nfunction parseStyleAttr(text) {\n  return text.split(';').map(function (line) {\n    var parts = line.split(':');\n    if (parts.length < 2) return null;\n    var key = parts.shift().trim();\n    var value = parts.join(':').trim();\n    if (key.length == 0 || value.length == 0) return null;\n    return [key, value];\n  }).filter(function (it) {\n    return it != null;\n  }).reduce(function (ac, cr) {\n    ac[cr[0]] = cr[1];\n    return ac;\n  }, {});\n}\n/**\r\n * \r\n * @param {String} text \r\n *  @returns {Array<String>}\r\n */\n\n\nfunction parseClassAttr(text) {\n  return text.trim().split(/\\s+/);\n}\n/**\r\n *\r\n * @param mValue\r\n * @returns {{unit: null, value: string}|{unit: string, value: number}|null}\r\n */\n\n\nfunction parseMeasureValue(mValue) {\n  if (mValue === 'auto') return {\n    unit: null,\n    value: 'auto'\n  };\n  if (mValue === 'match_parent') return {\n    unit: null,\n    value: 'match_parent'\n  };\n  var value = NaN;\n  var unit = null;\n  var matched;\n\n  if (typeof mValue === \"number\") {\n    value = mValue;\n    unit = 'px';\n  } else if (typeof mValue === \"string\") {\n    matched = mValue.match(/([+-]?([0-9]*[.])?[0-9]+([eE][+-]?[0-9]+)?)(px|%|vw|vh)?/i);\n\n    if (matched) {\n      value = parseFloat(matched[1]);\n      unit = matched[4];\n    }\n  }\n\n  if (isNaN(value)) return null;\n  unit = unit || 'px';\n  return {\n    value: value,\n    unit: unit\n  };\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/JSX/attribute.js?");

/***/ }),

/***/ "./node_modules/absol/src/JSX/dom.js":
/*!*******************************************!*\
  !*** ./node_modules/absol/src/JSX/dom.js ***!
  \*******************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.domVisitor = domVisitor;\nexports.parseDom = parseDom;\n\nvar _attribute = __webpack_require__(/*! ./attribute */ \"./node_modules/absol/src/JSX/attribute.js\");\n\nfunction domVisitor(jsxCode) {\n  var visitor = {\n    File: function File(node, ac) {\n      return acept(node.program, ac);\n    },\n    Program: function Program(node, ac) {\n      ac.child = node.body.map(function (cNode) {\n        return acept(cNode, {});\n      });\n      return ac;\n    },\n    ExpressionStatement: function ExpressionStatement(node, ac) {\n      return acept(node.expression, ac);\n    },\n    JSXElement: function JSXElement(node, ac) {\n      acept(node.openingElement, ac);\n\n      if (node.children && node.children.length > 0) {\n        ac.child = node.children.map(function (cNode) {\n          return acept(cNode, {});\n        });\n      }\n\n      return ac;\n    },\n    JSXOpeningElement: function JSXOpeningElement(node, ac) {\n      var name = {};\n      acept(node.name, name);\n      ac.tag = name.value;\n\n      if (node.attributes && node.attributes.length > 0) {\n        node.attributes.forEach(function (aNode) {\n          var attribute = {};\n          acept(aNode, attribute);\n\n          if (attribute.key) {\n            if (attribute.key.startsWith('data-')) {\n              ac.data = ac.data || {};\n              ac.data[attribute.key.replace('data-', '')] = attribute.value;\n            } else if (attribute.key.startsWith('prop-')) {\n              ac.props = ac.props || {};\n              ac.props[attribute.key.replace('prop-', '')] = attribute.value;\n            } else if (attribute.key.startsWith('on-')) {\n              ac.on = ac.props || {};\n              ac.on[attribute.key.replace('on-', '')] = attribute.value;\n            } else if (attribute.key == 'style') {\n              ac.style = (0, _attribute.parseStyleAttr)(attribute.value);\n            } else if (attribute.key == 'class') {\n              var classList = (0, _attribute.parseClassAttr)(attribute.value);\n              if (classList.length > 0) ac[\"class\"] = classList;\n            } else {\n              ac.attr = ac.attr || {};\n              ac.attr[attribute.key] = attribute.value;\n            }\n          }\n        }, {});\n      }\n\n      return ac;\n    },\n    JSXIdentifier: function JSXIdentifier(node, ac) {\n      ac.value = node.name;\n    },\n    JSXAttribute: function JSXAttribute(node, ac) {\n      var key = {};\n      acept(node.name, key);\n      ac.key = key.value;\n      var value = {};\n      acept(node.value, value);\n      ac.value = value.value;\n      return ac;\n    },\n    StringLiteral: function StringLiteral(node, ac) {\n      ac.value = node.value;\n    },\n    JSXExpressionContainer: function JSXExpressionContainer(node, ac) {\n      ac.value = {\n        expression: jsxCode.substring(node.expression.start, node.expression.end)\n      };\n      return ac;\n    },\n    JSXText: function JSXText(node, ac) {\n      ac.text = node.value;\n      return ac;\n    }\n  };\n\n  function accept(node, ac) {\n    return node && visitor[node.type] && visitor[node.type](node, ac);\n  }\n\n  return {\n    acept: accept,\n    accept: accept,\n    visitor: visitor\n  };\n}\n/***\r\n * @param {String} jsxCode\r\n */\n\n\nfunction parseDom(jsxCode) {\n  jsxCode = jsxCode.trim().replace(/>\\s+</gm, '><').replace(/<(\\/?)(img|input|link|br|meta)([^>]*)>/g, function (sub, end, tag, content) {\n    if (end == '/') return '';\n    return '<' + tag + content + '/>';\n  });\n  var ast = babel.parse(jsxCode, {\n    plugins: [babel.pluginSyntaxJsx]\n  });\n  var xmlData = {};\n  domVisitor(jsxCode).acept(ast, xmlData);\n  if (xmlData.child.length > 1) return xmlData.child;\n  return xmlData.child[0];\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/JSX/dom.js?");

/***/ }),

/***/ "./node_modules/absol/src/Math/Arc.js":
/*!********************************************!*\
  !*** ./node_modules/absol/src/Math/Arc.js ***!
  \********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Vec = _interopRequireDefault(__webpack_require__(/*! ./Vec2 */ \"./node_modules/absol/src/Math/Vec2.js\"));\n\nvar _int = __webpack_require__(/*! ./int */ \"./node_modules/absol/src/Math/int.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction Arc(x, y, r, start, end) {\n  this.x = x;\n  this.y = y;\n  this.r = r;\n  this.start = start;\n  this.end = end;\n}\n\nArc.prototype.isPointInBound = function (p) {\n  if ((0, _int.distance)(this.x, this.y, p.x, p.y) > r) return false;\n  return (0, _int.radianInRange)(Math.atan2(p.y - this.y, p.x - this.x), start, end);\n};\n\nArc.prototype.isRectInBound = function (rect) {\n  return this.isPointInBound(rect.A()) && this.isPointInBound(rect.B()) && this.isPointInBound(rect.C()) && this.isPointInBound(rect.D());\n};\n\nArc.prototype.isRectOutBound = function (rect) {\n  return !this.isPointInBound(rect.A()) && !this.isPointInBound(rect.B()) && !this.isPointInBound(rect.C()) && !this.isPointInBound(rect.D());\n};\n\nArc.prototype.isRectCollapse = function (rect) {\n  return this.isPointInBound(rect.A()) || this.isPointInBound(rect.B()) || this.isPointInBound(rect.C()) || this.isPointInBound(rect.D());\n};\n\nArc.prototype.centerPoint = function () {\n  var mid = (this.start + this.end) / 2;\n  var x = this.x + Math.cos(mid) * this.r * 2 / 3;\n  var y = this.y + Math.sin(mid) * this.r * 2 / 3;\n  return new _Vec[\"default\"](x, y);\n};\n\nArc.prototype.centerRoundPoint = function () {\n  var mid = (this.start + this.end) / 2;\n  var x = this.x + Math.cos(mid) * this.r;\n  var y = this.y + Math.sin(mid) * this.r;\n  return new _Vec[\"default\"](x, y);\n};\n\nArc.make = function (x, y, r, start, end) {\n  return new Arc(x, y, r, start, end);\n};\n\nvar _default = Arc;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Math/Arc.js?");

/***/ }),

/***/ "./node_modules/absol/src/Math/Mat3.js":
/*!*********************************************!*\
  !*** ./node_modules/absol/src/Math/Mat3.js ***!
  \*********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Vec = _interopRequireDefault(__webpack_require__(/*! ./Vec2 */ \"./node_modules/absol/src/Math/Vec2.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction Mat3(data) {\n  this.data = data || Array(6).fill(0);\n}\n\nMat3.identity = function () {\n  return new Mat3([1, 0, 0, 0, 1, 0, 0, 0, 1]);\n};\n/**\r\n *\r\n * @returns {Mat3|null}\r\n */\n\n\nMat3.prototype.invert = function () {\n  var a = this.data;\n  var out = Array(9);\n  var a00 = a[0],\n      a01 = a[1],\n      a02 = a[2];\n  var a10 = a[3],\n      a11 = a[4],\n      a12 = a[5];\n  var a20 = a[6],\n      a21 = a[7],\n      a22 = a[8];\n  var b01 = a22 * a11 - a12 * a21;\n  var b11 = -a22 * a10 + a12 * a20;\n  var b21 = a21 * a10 - a11 * a20; // Calculate the determinant\n\n  var det = a00 * b01 + a01 * b11 + a02 * b21;\n  if (!det) return null;\n  det = 1.0 / det;\n  out[0] = b01 * det;\n  out[1] = (-a22 * a01 + a02 * a21) * det;\n  out[2] = (a12 * a01 - a02 * a11) * det;\n  out[3] = b11 * det;\n  out[4] = (a22 * a00 - a02 * a20) * det;\n  out[5] = (-a12 * a00 + a02 * a10) * det;\n  out[6] = b21 * det;\n  out[7] = (-a21 * a00 + a01 * a20) * det;\n  out[8] = (a11 * a00 - a01 * a10) * det;\n  return new Mat3(out);\n};\n/**\r\n *\r\n * @param {Vec2} v\r\n * @return {Mat3}\r\n */\n\n\nMat3.prototype.translate = function (v) {\n  var out = Array(9);\n  var a = this.data;\n  var a00 = a[0],\n      a01 = a[1],\n      a02 = a[2];\n  var a10 = a[3],\n      a11 = a[4],\n      a12 = a[5];\n  var a20 = a[6],\n      a21 = a[7],\n      a22 = a[8];\n  var x = v.x,\n      y = v.y;\n  out[0] = a00;\n  out[1] = a01;\n  out[2] = a02;\n  out[3] = a10;\n  out[4] = a11;\n  out[5] = a12;\n  out[6] = x * a00 + y * a10 + a20;\n  out[7] = x * a01 + y * a11 + a21;\n  out[8] = x * a02 + y * a12 + a22;\n  return new Mat3(out);\n};\n/**\r\n *\r\n * @param {Mat3} mat\r\n * @returns {Mat3}\r\n */\n\n\nMat3.prototype.multiply = function (mat) {\n  var a = this.data;\n  var b = mat.data;\n  var a00 = a[0],\n      a01 = a[1],\n      a02 = a[2];\n  var a10 = a[3],\n      a11 = a[4],\n      a12 = a[5];\n  var a20 = a[6],\n      a21 = a[7],\n      a22 = a[8];\n  var b00 = b[0],\n      b01 = b[1],\n      b02 = b[2];\n  var b10 = b[3],\n      b11 = b[4],\n      b12 = b[5];\n  var b20 = b[6],\n      b21 = b[7],\n      b22 = b[8];\n  var out = Array(9);\n  out[0] = b00 * a00 + b01 * a10 + b02 * a20;\n  out[1] = b00 * a01 + b01 * a11 + b02 * a21;\n  out[2] = b00 * a02 + b01 * a12 + b02 * a22;\n  out[3] = b10 * a00 + b11 * a10 + b12 * a20;\n  out[4] = b10 * a01 + b11 * a11 + b12 * a21;\n  out[5] = b10 * a02 + b11 * a12 + b12 * a22;\n  out[6] = b20 * a00 + b21 * a10 + b22 * a20;\n  out[7] = b20 * a01 + b21 * a11 + b22 * a21;\n  out[8] = b20 * a02 + b21 * a12 + b22 * a22;\n  return new Mat3(out);\n};\n/***\r\n *\r\n * @param {Number} rad\r\n * @return {Mat3}\r\n */\n\n\nMat3.prototype.rotate = function (rad) {\n  var a = this.data;\n  var a00 = a[0],\n      a01 = a[1],\n      a02 = a[2];\n  var a10 = a[3],\n      a11 = a[4],\n      a12 = a[5];\n  var a20 = a[6],\n      a21 = a[7],\n      a22 = a[8];\n  var s = Math.sin(rad);\n  var c = Math.cos(rad);\n  var out = Array(9);\n  out[0] = c * a00 + s * a10;\n  out[1] = c * a01 + s * a11;\n  out[2] = c * a02 + s * a12;\n  out[3] = c * a10 - s * a00;\n  out[4] = c * a11 - s * a01;\n  out[5] = c * a12 - s * a02;\n  out[6] = a20;\n  out[7] = a21;\n  out[8] = a22;\n  return new Mat3(out);\n};\n/***\r\n *\r\n * @param {Vec2} v\r\n * @returns {Mat3}\r\n */\n\n\nMat3.prototype.scale = function (v) {\n  var x = v.x;\n  var y = v.y;\n  var out = Array(9);\n  out[0] = x * a[0];\n  out[1] = x * a[1];\n  out[2] = x * a[2];\n  out[3] = y * a[3];\n  out[4] = y * a[4];\n  out[5] = y * a[5];\n  out[6] = a[6];\n  out[7] = a[7];\n  out[8] = a[8];\n  return new Mat3(out);\n};\n/***\r\n *\r\n * @return {Mat3}\r\n */\n\n\nMat3.prototype.transpose = function () {\n  var a = this.data;\n  var out = Array(9);\n  out[0] = a[0];\n  out[1] = a[3];\n  out[2] = a[6];\n  out[3] = a[1];\n  out[4] = a[4];\n  out[5] = a[7];\n  out[6] = a[2];\n  out[7] = a[5];\n  out[8] = a[8];\n  return new Mat3(out);\n};\n/**\r\n *\r\n * @param {Vec2}v\r\n */\n\n\nMat3.prototype.apply2DTransform = function (v) {\n  var a = this.data;\n  var x0 = v.x;\n  var y0 = v.y;\n  var x = x0 * a[0] + y0 * a[3] + a[6];\n  var y = x0 * a[1] + y0 * a[4] + a[7];\n  return new _Vec[\"default\"](x, y);\n};\n\nvar _default = Mat3;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Math/Mat3.js?");

/***/ }),

/***/ "./node_modules/absol/src/Math/NumRange.js":
/*!*************************************************!*\
  !*** ./node_modules/absol/src/Math/NumRange.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n/**\r\n * \r\n * @param {Number} start \r\n */\nfunction NumRange(start, length) {\n  if (arguments.length == 1) length = 0;else if (arguments.length == 0) {\n    length = 0;\n    start = 0;\n  }\n  this.start = start;\n  this.length = length;\n}\n/**\r\n * @param {Number} num \r\n */\n\n\nNumRange.prototype.contains = function (num) {\n  return num >= this.start && num <= this.start + this.length;\n};\n/**\r\n * @param {NumRange} other\r\n * @returns {NumRange}\r\n */\n\n\nNumRange.prototype.merge = function (other) {\n  var start = Math.min(this.start, other.start);\n  var end = Math.max(this.start + this.length, other.start + other.length);\n  return new NumRange(start, end - start);\n};\n\nNumRange.prototype.centerValue = function () {\n  return this.start + this.length / 2;\n};\n/**\r\n * @param {NumRange} other\r\n * @returns {Boolean}\r\n */\n\n\nNumRange.prototype.isCollapse = function (other) {\n  var start = Math.max(this.start, other.start);\n  var end = Math.min(this.start + this.length, other.start + other.length);\n  return start <= end;\n};\n/**\r\n * @param {NumRange} other\r\n * @returns {Boolean}\r\n */\n\n\nNumRange.prototype.collapsedNumRange = function (other) {\n  var start = Math.max(this.start, other.start);\n  var end = Math.min(this.start + this.length, other.start + other.length);\n  if (start <= end) return new NumRange(start, end - start);\n  return null;\n};\n\nNumRange.prototype.clone = function () {\n  return new NumRange(this.start, this.length);\n};\n\nvar _default = NumRange;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Math/NumRange.js?");

/***/ }),

/***/ "./node_modules/absol/src/Math/Polygon.js":
/*!************************************************!*\
  !*** ./node_modules/absol/src/Math/Polygon.js ***!
  \************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Vec = _interopRequireDefault(__webpack_require__(/*! ./Vec2 */ \"./node_modules/absol/src/Math/Vec2.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n *\r\n * @param {Vec2[]} vertices\r\n * @constructor\r\n */\nfunction Polygon(vertices) {\n  this.vertices = vertices;\n}\n/***\r\n *\r\n * @param {Vec2} P\r\n * @returns {-1|0|1}\r\n */\n\n\nPolygon.prototype.pointLocalIn = function (P) {\n  var A = this.vertices[this.vertices.length - 1];\n  var B;\n  var AB, PA, PB;\n  var t, x;\n  var count = 0;\n\n  for (var i = 0; i < this.vertices.length; ++i) {\n    B = this.vertices[i];\n    PA = A.sub(P);\n    PB = B.sub(P);\n\n    if (PA.cross(PB) === 0 && PA.dot(PB) <= 0) {\n      return 0;\n    }\n\n    AB = B.sub(A);\n\n    if (A.y !== B.y) {\n      t = -PA.y / AB.y;\n      x = A.x + AB.x * t;\n\n      if (t >= 0 && t < 1 && x > P.x) {\n        count++;\n      }\n    }\n\n    A = B;\n  }\n\n  return count % 2 === 1 ? 1 : -1;\n};\n\nPolygon.prototype.getPathString = function () {\n  var vts = this.vertices;\n  var res = 'M' + vts[0].x + ' ' + vts[0].y;\n\n  for (var i = 1; i < vts.length; ++i) {\n    res += 'L' + vts[i].x + ' ' + vts[i].y;\n  }\n\n  res += 'z';\n  return res;\n};\n\nPolygon.make = function (vertices) {\n  return new Polygon(vertices);\n};\n\nvar _default = Polygon;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Math/Polygon.js?");

/***/ }),

/***/ "./node_modules/absol/src/Math/Rectangle.js":
/*!**************************************************!*\
  !*** ./node_modules/absol/src/Math/Rectangle.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Vec = _interopRequireDefault(__webpack_require__(/*! ./Vec2 */ \"./node_modules/absol/src/Math/Vec2.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\r\n *\r\n * @param {Number} x\r\n * @param {Number} y\r\n * @param {Number} width\r\n * @param {Number} height\r\n */\nfunction Rectangle(x, y, width, height) {\n  this.width = width;\n  this.height = height;\n  this.x = x;\n  this.y = y;\n}\n/**\r\n *\r\n * @return {Vec2}\r\n * @constructor\r\n */\n\n\nRectangle.prototype.A = function () {\n  return new _Vec[\"default\"](this.x, this.y);\n};\n/***\r\n *\r\n * @return {Vec2}\r\n * @constructor\r\n */\n\n\nRectangle.prototype.B = function () {\n  return new _Vec[\"default\"](this.x + this.width, this.y);\n};\n/***\r\n *\r\n * @return {Vec2}\r\n * @constructor\r\n */\n\n\nRectangle.prototype.C = function () {\n  return new _Vec[\"default\"](this.x + this.width, this.y + this.height);\n};\n/***\r\n *\r\n * @return {Vec2}\r\n * @constructor\r\n */\n\n\nRectangle.prototype.D = function () {\n  return new _Vec[\"default\"](this.x, this.y + this.height);\n};\n/***\r\n *\r\n * @return {number}\r\n */\n\n\nRectangle.prototype.square = function () {\n  return this.width * this.height;\n};\n\nRectangle.prototype.nearestPoint = function (arg0, arg1) {\n  if (arg1) arg0 = _Vec[\"default\"].make(arg0, arg1);\n  var res = this.A();\n  var mind = res.dist(arg0);\n  var d = this.B().dist(arg0);\n\n  if (d < mind) {\n    mind = d;\n    res = this.B();\n  }\n\n  d = this.C().dist(arg0);\n\n  if (d < mind) {\n    mind = d;\n    res = this.C();\n  }\n\n  d = this.D().dist(arg0);\n\n  if (d < mind) {\n    mind = d;\n    res = this.D();\n  }\n\n  return res;\n};\n\nRectangle.prototype.centerPoint = function () {\n  return new _Vec[\"default\"](this.x + this.width / 2, this.y + this.height / 2);\n};\n/***\r\n *\r\n * @param {Rectangle} r\r\n * @param {number=} margin\r\n * @return {boolean}\r\n */\n\n\nRectangle.prototype.isCollapse = function (r, margin) {\n  if (!margin) margin = 0;\n  return !(this.x >= r.x + r.width + margin || this.y >= r.y + r.height + margin || r.x >= this.x + this.width + margin || r.y >= this.y + this.height + margin);\n};\n/***\r\n *\r\n * @param {Rectangle} r\r\n * @return {number}\r\n */\n\n\nRectangle.prototype.collapsedSquare = function (r) {\n  var collapseRect = this.collapsedRect(r);\n\n  if (collapseRect) {\n    return collapseRect.square();\n  } else {\n    return 0;\n  }\n};\n/***\r\n *\r\n * @param {Rectangle} r\r\n * @return {Rectangle}\r\n */\n\n\nRectangle.prototype.collapsedRect = function (r) {\n  var maxX, minX, maxY, minY, width, height;\n  minX = Math.max(this.x, r.x);\n  minY = Math.max(this.y, r.y);\n  maxX = Math.min(this.x + this.width, r.x + r.width);\n  maxY = Math.min(this.y + this.height, r.y + r.height);\n  width = maxX - minX;\n  height = maxY - minY;\n\n  if (width >= 0 && height >= 0) {\n    return new Rectangle(minX, minY, width, height);\n  }\n\n  return null;\n};\n/**\r\n * @param {Rectangle} r\r\n * @returns {Boolean}\r\n */\n\n\nRectangle.prototype.contains = function (r) {\n  return this.x <= r.x && this.y <= r.y && this.x + this.width >= r.x + r.width && this.y + this.height >= r.y + r.height;\n};\n/**\r\n * @param {Vec2} p\r\n * @returns {Boolean}\r\n */\n\n\nRectangle.prototype.containsPoint = function (p) {\n  return this.x <= p.x && this.y <= p.y && this.x + this.width >= p.x && this.y + this.height >= p.y;\n};\n/**\r\n * @param {Rectangle} other\r\n * @returns {Rectangle}\r\n */\n\n\nRectangle.prototype.merge = function (other) {\n  var left = Math.min(this.x, other.x);\n  var top = Math.min(this.y, other.y);\n  var right = Math.max(this.x + this.width, other.x + other.width);\n  var bottom = Math.max(this.y + this.height, other.y + other.height);\n  return new Rectangle(left, top, right - left, bottom - top);\n};\n/**\r\n * @returns {Rectangle}\r\n */\n\n\nRectangle.prototype.clone = function () {\n  return new Rectangle(this.x, this.y, this.width, this.height);\n};\n/***\r\n *\r\n * @param {Rectangle} r\r\n */\n\n\nRectangle.prototype.equals = function (r) {\n  return this.x === r.x && this.y === r.y && this.height === r.height && this.width === r.width;\n};\n/**\r\n * @param {Number} x\r\n * @param {Number} y\r\n * @param {Number} width\r\n * @param {Number} height\r\n * @returns {Rectangle}\r\n */\n\n\nRectangle.make = function (x, y, width, height) {\n  return new Rectangle(x, y, width, height);\n};\n/**\r\n * @param {Number} x\r\n * @param {Number} y\r\n * @param {Number} width\r\n * @param {Number} height\r\n * @returns {Rectangle}\r\n */\n\n\nRectangle.makeCenter = function (x, y, width, height) {\n  return new Rectangle(x - width / 2, y - height / 2, width, height);\n};\n/**\r\n * @param {ClientRect|DOMRect} clientRect\r\n * @returns {Rectangle}\r\n */\n\n\nRectangle.fromClientRect = function (clientRect) {\n  return new Rectangle(clientRect.left, clientRect.top, clientRect.width, clientRect.height);\n};\n/***\r\n *\r\n * @param {Vec2[]} points\r\n * @returns  {Rectangle}\r\n */\n\n\nRectangle.boundingPoints = function (points) {\n  var minX = Infinity,\n      minY = Infinity,\n      maxX = -Infinity,\n      maxY = -Infinity;\n  var point;\n\n  for (var i = 0; i < points.length; ++i) {\n    point = points[i];\n    minX = Math.min(minX, point.x);\n    maxX = Math.max(maxX, point.x);\n    minY = Math.min(minY, point.y);\n    maxY = Math.max(maxY, point.y);\n  }\n\n  return new Rectangle(minX, minY, maxX - minX, maxY - minY);\n};\n\nvar _default = Rectangle;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Math/Rectangle.js?");

/***/ }),

/***/ "./node_modules/absol/src/Math/Vec2.js":
/*!*********************************************!*\
  !*** ./node_modules/absol/src/Math/Vec2.js ***!
  \*********************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n/***\r\n *\r\n * @param  {Number} x\r\n * @param {Number} y\r\n * @constructor\r\n */\nfunction Vec2(x, y) {\n  this.x = x;\n  this.y = y;\n}\n/***\r\n *\r\n * @returns {Vec2}\r\n */\n\n\nVec2.prototype.copy = function () {\n  return new Vec2(this.x, this.y);\n};\n/***\r\n *\r\n * @returns {string}\r\n */\n\n\nVec2.prototype.toString = function () {\n  return \"(\" + this.x + \", \" + this.y + \")\";\n};\n/***\r\n *\r\n * @returns {number}\r\n */\n\n\nVec2.prototype.abs = function () {\n  return Math.sqrt(this.x * this.x + this.y * this.y);\n};\n/***\r\n *\r\n * @returns {Vec2}\r\n */\n\n\nVec2.prototype.normalized = function () {\n  var l = this.abs();\n  if (l == 0) l = 1;\n  return this.div(l);\n};\n/***\r\n *\r\n * @param {number} h\r\n * @returns {Vec2}\r\n */\n\n\nVec2.prototype.mult = function (h) {\n  return new Vec2(this.x * h, this.y * h);\n};\n/***\r\n *\r\n * @param {number} h\r\n * @returns {Vec2}\r\n */\n\n\nVec2.prototype.div = function (h) {\n  return new Vec2(this.x / h, this.y / h);\n};\n/***\r\n *\r\n * @param v\r\n * @returns {number}\r\n */\n\n\nVec2.prototype.dist = function (v) {\n  var dx = v.x - this.x;\n  var dy = v.y - this.y;\n  return Math.sqrt(dx * dx + dy * dy);\n};\n/***\r\n *\r\n * @param {Vec2} v\r\n * @returns {Vec2}\r\n */\n\n\nVec2.prototype.sub = function (v) {\n  return new Vec2(this.x - v.x, this.y - v.y);\n};\n/***\r\n *\r\n * @param {Vec2} v\r\n * @returns {Vec2}\r\n */\n\n\nVec2.prototype.add = function (v) {\n  return new Vec2(this.x + v.x, this.y + v.y);\n};\n/***\r\n *\r\n * @returns {Vec2}\r\n */\n\n\nVec2.prototype.inv = function () {\n  return new Vec2(-this.x, -this.y);\n};\n/***\r\n *\r\n * @param {Vec2} v\r\n * @param {number} h\r\n * @returns {Vec2}\r\n */\n\n\nVec2.prototype.linear = function (v, h) {\n  return new Vec2(this.x * (1 - h) + v.x * h, this.y * (1 - h) + v.y * h);\n};\n/***\r\n *\r\n * @param {Vec2} v1\r\n * @returns {number}\r\n */\n\n\nVec2.prototype.dot = function (v1) {\n  return this.x * v1.x + this.y * v1.y;\n};\n/***\r\n *\r\n * @param {Vec2} v1\r\n * @returns {number}\r\n */\n\n\nVec2.prototype.cross = function (v1) {\n  return this.x * v1.y - this.y * v1.x;\n};\n/***\r\n *\r\n * @returns {number}\r\n */\n\n\nVec2.prototype.direction = function () {\n  return Math.atan2(this.y, this.x);\n};\n/***\r\n *\r\n * @param {Number} dx\r\n * @param {Number} dy\r\n */\n\n\nVec2.prototype.translate = function (dx, dy) {\n  return this.add(new Vec2(dx, dy));\n};\n/****\r\n *\r\n * @param {Number} angle - radian\r\n * @returns {Vec2}\r\n */\n\n\nVec2.prototype.rotate = function (angle) {\n  var sinA = Math.sin(angle);\n  var cosA = Math.cos(angle);\n  var x = this.x * cosA - this.y * sinA;\n  var y = this.x * sinA + this.y * cosA;\n  return new Vec2(x, y);\n};\n/***\r\n *\r\n * @returns {Vec2}\r\n */\n\n\nVec2.prototype.rotate90 = function () {\n  return new Vec2(-this.y, this.x);\n};\n/***\r\n *\r\n * @param {Vec2} b\r\n */\n\n\nVec2.prototype.equals = function (b) {\n  return b && this.x === b.x && this.y === b.y;\n};\n/***\r\n *\r\n * @param {number} angle\r\n * @returns {Vec2}\r\n */\n\n\nVec2.fromDirection = function (angle) {\n  return new Vec2(Math.cos(angle), Math.sin(angle));\n};\n/***\r\n *\r\n * @param x\r\n * @param y\r\n * @returns {Vec2}\r\n */\n\n\nVec2.make = function (x, y) {\n  if (x instanceof Array) {\n    return new Vec2(x[0], x[1]);\n  } else if (x instanceof Vec2) {\n    return x.copy();\n  } else return new Vec2(x, y);\n};\n\nVec2.ZERO = new Vec2(0, 0);\nVec2.OX = new Vec2(1, 0);\nVec2.OY = new Vec2(0, 1);\nvar _default = Vec2;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Math/Vec2.js?");

/***/ }),

/***/ "./node_modules/absol/src/Math/int.js":
/*!********************************************!*\
  !*** ./node_modules/absol/src/Math/int.js ***!
  \********************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.distance = distance;\nexports.harmonicMean = harmonicMean;\nexports.integerZeroPadding = integerZeroPadding;\nexports.isNumber = isNumber;\nexports.map = map;\nexports.numberAutoFixed = numberAutoFixed;\nexports.numberToString = numberToString;\nexports.radianInRange = radianInRange;\nexports.sumArr = sumArr;\n\n/**\r\n *\r\n * @param {number} x\r\n * @param {number} l\r\n * @param {number} h\r\n * @param {number} L\r\n * @param {number} H\r\n * @returns {number}\r\n */\nfunction map(x, l, h, L, H) {\n  return (x - l) / (h - l) * (H - L) + L;\n}\n\nfunction sumArr(arr) {\n  var res = 0;\n\n  for (var i = 0; i < arr.length; ++i) {\n    res += arr[i];\n  }\n\n  return res;\n}\n\nfunction radianInRange(x, start, end) {\n  if (start > end) return radianInRange(x, end, start);\n  if (x < start) x += Math.PI * 2 * Math.ceil((start - x) / 2 / Math.PI);\n  if (x > end) x -= Math.PI * 2 * Math.ceil((x - end) / 2 / Math.PI);\n  return x >= start && x <= end;\n}\n\nfunction distance(x0, y0, x1, y1) {\n  var dx = x0 - x1;\n  var dy = y0 - y1;\n  return Math.sqrt(dx * dx + dy * dy);\n}\n/**\r\n *\r\n * @param {Number} numb\r\n * @param {Number} floatFixed\r\n * @param {\".\"|\",\"} decimalSeparator\r\n * @param {\",\"|\".\"} thousandsSeparator\r\n * @param {Number} decimalPadding\r\n */\n\n\nfunction numberToString(numb, floatFixed, decimalSeparator, thousandsSeparator, decimalPadding) {\n  if (floatFixed === undefined || floatFixed === null || typeof floatFixed != \"number\" || isNaN(floatFixed) || floatFixed < -1) floatFixed = -1;\n  if (decimalSeparator === undefined || decimalSeparator === null || decimalSeparator != '.' && decimalSeparator != ',') decimalSeparator = '.';\n  if (thousandsSeparator === undefined || thousandsSeparator === null || floatFixed >= 0 && thousandsSeparator == decimalSeparator) thousandsSeparator = undefined;\n  if (thousandsSeparator != ',' && thousandsSeparator != '.') thousandsSeparator = undefined;\n  if (decimalPadding === undefined || decimalPadding === null || typeof decimalPadding != \"number\" || isNaN(decimalPadding) || decimalPadding < 0) decimalPadding = 0;\n  var text = numb.toString();\n  var matched = text.match(/[+-]?([0-9]*)(\\.([0-9]*))?(e([+-]?[0-9]+))?/);\n  var dec = matched[1] || '';\n  var real = matched[3] || '';\n  var floatPoint = parseInt(matched[5] || '0');\n  var decDigits = dec.split('').map(function (d) {\n    return parseInt(d);\n  });\n  var realDigits = real.split('').map(function (d) {\n    return parseInt(d);\n  });\n\n  while (floatPoint < 0) {\n    if (decDigits.length > 0) {\n      realDigits.unshift(decDigits.pop());\n    } else {\n      realDigits.unshift(0);\n    }\n\n    floatPoint++;\n  }\n\n  while (floatPoint > 0) {\n    if (realDigits.length > 0) {\n      decDigits.push(realDigits.unshift());\n    } else {\n      decDigits.push(0);\n    }\n\n    floatPoint++;\n  }\n\n  var mem = 0,\n      i,\n      cValue;\n\n  if (floatFixed > realDigits.length) {\n    while (realDigits.length < floatFixed) {\n      realDigits.push(0);\n    }\n  } else if (floatFixed < realDigits.length && floatFixed >= 0) {\n    i = floatFixed;\n    mem = realDigits[i] >= 5 ? 1 : 0;\n    realDigits.splice(floatFixed);\n    --i;\n\n    while (mem > 0) {\n      if (i >= 0) {\n        cValue = realDigits[i] + mem;\n        realDigits[i] = cValue % 10;\n        mem = Math.floor(cValue / 10);\n      } else {\n        if (decDigits.length + i < 0) decDigits.unshift(0);\n        cValue = decDigits[decDigits.length + i] + mem;\n        decDigits[decDigits.length + i] = cValue % 10;\n        mem = Math.floor(cValue / 10);\n      }\n\n      --i;\n    }\n  }\n\n  while (decDigits.length < decimalPadding) {\n    decDigits.unshift(0);\n  }\n\n  var decText = numb < 0 ? '-' : '';\n  var breadMod = (decDigits.length + 2) % 3;\n\n  if (thousandsSeparator) {\n    for (i = 0; i < decDigits.length; ++i) {\n      decText += decDigits[i];\n\n      if (i % 3 == breadMod && i + 1 < decDigits.length) {\n        decText += thousandsSeparator;\n      }\n    }\n  } else {\n    decText += decDigits.join('');\n  }\n\n  var realText = realDigits.length == 0 ? '' : decimalSeparator + realDigits.join('');\n  return decText + realText;\n}\n/***\r\n *\r\n * @param value\r\n * @param {string=}decimalSeparator\r\n */\n\n\nfunction isNumber(value, decimalSeparator) {\n  decimalSeparator = decimalSeparator || '.';\n  if (typeof value === \"number\") return true;\n  if (typeof value !== \"string\") return false;\n  var thousandsSeparator = decimalSeparator === '.' ? ',' : '.';\n  value = value.split(thousandsSeparator).join('');\n  value = value.replace(decimalSeparator, '.');\n  return !!value.match(/^[+-]?\\d+(\\.\\d+)?$/);\n}\n\nfunction numberAutoFixed(x, eDelta) {\n  eDelta = eDelta || 10;\n  eDelta = Math.round(eDelta);\n  var e = parseFloat('1e+' + eDelta);\n  return Math.round(x * e) / e;\n}\n/***\r\n *\r\n * @param {number} number\r\n * @param {number} length\r\n * @returns {string}\r\n */\n\n\nfunction integerZeroPadding(number, length) {\n  var res = number + '';\n\n  while (res.length < length) {\n    res = '0' + res;\n  }\n\n  return res;\n}\n\nfunction harmonicMean(a, b) {\n  return 2 / (1 / a + 1 / b);\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Math/int.js?");

/***/ }),

/***/ "./node_modules/absol/src/Math/measurements.js":
/*!*****************************************************!*\
  !*** ./node_modules/absol/src/Math/measurements.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.PAGE_SIZE_IN_POINT = exports.PAGE_SIZE_IN_DOT = void 0;\nexports.centimeterToPx = centimeterToPx;\nexports.dotToPoint = dotToPoint;\nexports.feetToMeter = feetToMeter;\nexports.latLngDistance = latLngDistance;\nexports.latLngRectFromCenter = latLngRectFromCenter;\nexports.meterToFeet = meterToFeet;\nexports.meterToInch = meterToInch;\nexports.meterToMile = meterToMile;\nexports.meterToYard = meterToYard;\nexports.mileToMeter = mileToMeter;\nexports.pointToDot = pointToDot;\nexports.pxToCentimeter = pxToCentimeter;\nexports.yardToMeter = yardToMeter;\n\nfunction feetToMeter(ft) {\n  return ft / 3.28084;\n}\n\nfunction meterToFeet(mt) {\n  return mt * 3.28084;\n}\n\nfunction meterToInch(mt) {\n  return mt * 39.3701;\n}\n\nfunction mileToMeter(ml) {\n  return ml * 1609.34;\n}\n\nfunction meterToMile(ml) {\n  return ml / 1609.34;\n}\n\nfunction meterToYard(mt) {\n  return mt * 1.09361;\n}\n\nfunction yardToMeter(yd) {\n  return yd / 1.09361;\n}\n\nfunction pointToDot(p) {\n  return p * 72 / 96;\n}\n\nfunction dotToPoint(d) {\n  return d * 96 / 72;\n}\n\nfunction pxToCentimeter(px) {}\n\nfunction centimeterToPx(cm) {\n  return meterToInch(cm / 100) * 96;\n}\n\nvar PAGE_SIZE_IN_DOT = {\n  a0: [2383.94, 3370.39],\n  a1: [1683.78, 2383.94],\n  a2: [1190.55, 1683.78],\n  a3: [841.89, 1190.55],\n  a4: [595.28, 841.89],\n  a5: [419.53, 595.28],\n  a6: [297.64, 419.53],\n  a7: [209.76, 297.64],\n  a8: [147.4, 209.76],\n  a9: [104.88, 147.4],\n  a10: [73.7, 104.88],\n  b0: [2834.65, 4008.19],\n  b1: [2004.09, 2834.65],\n  b2: [1417.32, 2004.09],\n  b3: [1000.63, 1417.32],\n  b4: [708.66, 1000.63],\n  b5: [498.9, 708.66],\n  b6: [354.33, 498.9],\n  b7: [249.45, 354.33],\n  b8: [175.75, 249.45],\n  b9: [124.72, 175.75],\n  b10: [87.87, 124.72],\n  c0: [2599.37, 3676.54],\n  c1: [1836.85, 2599.37],\n  c2: [1298.27, 1836.85],\n  c3: [918.43, 1298.27],\n  c4: [649.13, 918.43],\n  c5: [459.21, 649.13],\n  c6: [323.15, 459.21],\n  c7: [229.61, 323.15],\n  c8: [161.57, 229.61],\n  c9: [113.39, 161.57],\n  c10: [79.37, 113.39],\n  dl: [311.81, 623.62],\n  letter: [612, 792],\n  \"government-letter\": [576, 756],\n  legal: [612, 1008],\n  \"junior-legal\": [576, 360],\n  ledger: [1224, 792],\n  tabloid: [792, 1224],\n  \"credit-card\": [153, 243]\n};\nexports.PAGE_SIZE_IN_DOT = PAGE_SIZE_IN_DOT;\nvar PAGE_SIZE_IN_POINT = Object.keys(PAGE_SIZE_IN_DOT).reduce(function (ac, key) {\n  ac[key] = PAGE_SIZE_IN_DOT[key].map(function (d) {\n    return dotToPoint(d);\n  });\n  return ac;\n}, {});\nexports.PAGE_SIZE_IN_POINT = PAGE_SIZE_IN_POINT;\n\nfunction latLngRectFromCenter(center, distance) {\n  var lat = center.latitude;\n  var lng = center.longitude;\n  var r_earth = 6378;\n  var pi = Math.PI;\n  var northLat = lat + distance / r_earth * (180 / pi);\n  var eastLng = lng + distance / r_earth * (180 / pi) / Math.cos(lat * pi / 180);\n  var southLat = lat - distance / r_earth * (180 / pi);\n  var westLng = lng - distance / r_earth * (180 / pi) / Math.cos(lat * pi / 180);\n  return {\n    latitude: {\n      min: Math.min(northLat, southLat),\n      max: Math.max(northLat, southLat)\n    },\n    longitude: {\n      min: Math.min(eastLng, westLng),\n      max: Math.max(eastLng, westLng)\n    }\n  };\n}\n/***\r\n *\r\n * @param p0\r\n * @param p1\r\n * @returns {number}\r\n */\n\n\nfunction latLngDistance(p0, p1) {\n  var lat0 = p0.latitude;\n  var lat1 = p1.latitude;\n  var lng0 = p0.longitude;\n  var lng1 = p1.longitude;\n\n  var toRad = function toRad(value) {\n    return value * Math.PI / 180;\n  };\n\n  var R = 6371;\n  var dLat = toRad(lat1 - lat0);\n  var dLng = toRad(lng1 - lng0);\n  lat0 = toRad(lat0);\n  lat1 = toRad(lat1);\n  var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + Math.sin(dLng / 2) * Math.sin(dLng / 2) * Math.cos(lat0) * Math.cos(lat1);\n  var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n  var d = R * c;\n  return d;\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Math/measurements.js?");

/***/ }),

/***/ "./node_modules/absol/src/Math/random.js":
/*!***********************************************!*\
  !*** ./node_modules/absol/src/Math/random.js ***!
  \***********************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.randomArbitrary = randomArbitrary;\nexports.randomInt = randomInt;\nexports.randomPick = randomPick;\n\n/**\r\n * Returns a random number between min (inclusive) and max (exclusive)\r\n */\nfunction randomArbitrary(min, max) {\n  return Math.random() * (max - min) + min;\n}\n/**\r\n * Returns a random integer between min (inclusive) and max (inclusive)\r\n * Using Math.round() will give you a non-uniform distribution!\r\n */\n\n\nfunction randomInt(min, max) {\n  return Math.floor(Math.random() * (max - min + 1)) + min;\n}\n\nfunction randomPick(arr) {\n  var id = randomInt(0, arr.length - 1);\n  return arr[id];\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Math/random.js?");

/***/ }),

/***/ "./node_modules/absol/src/Network/Broadcast.js":
/*!*****************************************************!*\
  !*** ./node_modules/absol/src/Network/Broadcast.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _EventEmitter = _interopRequireDefault(__webpack_require__(/*! ../HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nvar _stringGenerate = __webpack_require__(/*! ../String/stringGenerate */ \"./node_modules/absol/src/String/stringGenerate.js\");\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! ../HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n// it can be replace BroadcastChanel\nfunction Broadcast(channel, id) {\n  _EventEmitter[\"default\"].call(this);\n\n  this.channel = channel;\n  this.id = id || (0, _stringGenerate.randomIdent)(32);\n  this._ev_message = this._ev_message.bind(this);\n  this._ev_storage = this._ev_storage.bind(this);\n\n  this._init();\n}\n\n_OOP[\"default\"].mixClass(Broadcast, _EventEmitter[\"default\"]);\n\nBroadcast.prototype._init = function () {\n  if ('BroadcastChannel' in window) {\n    this.nativeBroadcastChannel = new BroadcastChannel(this.channel);\n    this.nativeBroadcastChannel.onmessage = this._ev_message;\n  } else if ('localStorage' in window) {\n    if (!('onstorage' in window)) console.warn(\"Your browser may not support onstorage event.\");\n\n    if (window.addEventListener) {\n      window.addEventListener('storage', this._ev_storage);\n    } else {\n      window.attachEvent('onstorage', this._ev_storage);\n    }\n\n    this.storageKey = '_broadcast_' + this.channel;\n  } else {\n    throw new Error(\"Your browser can not support broadcast!\");\n  }\n};\n\nBroadcast.prototype._ev_storage = function (event) {\n  if (event.key == this.storageKey) {\n    var data = JSON.parse(event.newValue);\n    if (data.sourceId != this.id) this.handleMessData(data.message);\n  }\n};\n\nBroadcast.prototype._ev_message = function (event) {\n  var data = event.data;\n  this.handleMessData(data);\n};\n\nBroadcast.prototype.handleMessData = function (data) {\n  if (data.type == \"EMIT\") this.fire.apply(this, data.params);\n  if (typeof this.onmessage == 'function') this.onmessage(event);\n};\n/**\r\n * @param {...Array<*>}\r\n */\n\n\nBroadcast.prototype.emit = function () {\n  var params = Array.prototype.slice.call(arguments);\n  this.postMessage({\n    type: \"EMIT\",\n    params: params,\n    sourceId: this.id\n  });\n};\n/**\r\n * @param {*} message\r\n */\n\n\nBroadcast.prototype.postMessage = function (message) {\n  if (this.nativeBroadcastChannel) {\n    this.nativeBroadcastChannel.postMessage(message);\n  } else {\n    localStorage.setItem(this.storageKey, JSON.stringify({\n      message: message,\n      sourceId: this.id\n    }));\n  }\n};\n\nBroadcast.prototype.onmessage = null;\n\nBroadcast.prototype.close = function () {\n  if (this.nativeBroadcastChannel) this.nativeBroadcastChannel.close();\n};\n\nvar _default = Broadcast;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Network/Broadcast.js?");

/***/ }),

/***/ "./node_modules/absol/src/Network/FileSaver.js":
/*!*****************************************************!*\
  !*** ./node_modules/absol/src/Network/FileSaver.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.fileExist = fileExist;\nexports.saveAs = saveAs;\nexports.saveTextAs = saveTextAs;\n\nvar _BrowserDetector = _interopRequireDefault(__webpack_require__(/*! ../Detector/BrowserDetector */ \"./node_modules/absol/src/Detector/BrowserDetector.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/***\r\n * @typedef {{revokeTimeout?: number, autoBom?:boolean }} FileSaverOpts\r\n *\r\n */\nfunction fileExist(url) {\n  var xhr = new XMLHttpRequest();\n  xhr.open('HEAD', url, true);\n  return new Promise(function (resolve) {\n    xhr.onreadystatechange = function () {\n      if (this.readyState === 4) {\n        resolve(xhr.status === 200);\n      }\n    };\n\n    xhr.onerror = function (err) {};\n\n    xhr.send();\n  });\n}\n/***\r\n *\r\n * @param url\r\n * @param name\r\n * @param {FileSaverOpts} opts\r\n */\n\n\nfunction download(url, name, opts) {\n  var xhr = new XMLHttpRequest();\n  xhr.open('GET', url);\n  xhr.responseType = 'blob';\n\n  xhr.onload = function () {\n    saveAs(xhr.response, name, opts);\n  };\n\n  xhr.onerror = function () {\n    console.error('Could not download: ' + url);\n  };\n\n  xhr.send(null);\n}\n\nfunction bom(blob, opts) {\n  if (_typeof(opts) === undefined) opts = {\n    autoBom: false\n  };else if (_typeof(opts) !== 'object') opts = {\n    autoBom: !opts\n  };\n\n  if (opts.autoBom && /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n    return new Blob([String.fromCharCode(0xFEFF), blob], {\n      type: blob.type\n    });\n  }\n\n  return blob;\n}\n\nfunction corsEnabled(url) {\n  var xhr = new XMLHttpRequest();\n  return new Promise(function (resolve) {\n    xhr.onload = function () {\n      resolve(xhr.status >= 200 && xhr.status < 299);\n    };\n\n    xhr.onerror = function () {\n      resolve(xhr.status >= 200 && xhr.status < 299);\n    };\n\n    xhr.open('HEAD', url, true);\n    xhr.send();\n  });\n}\n\nfunction click(node) {\n  try {\n    node.dispatchEvent(new MouseEvent('click'));\n  } catch (e) {\n    var evt = document.createEvent('MouseEvents');\n    evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80, 20, false, false, false, false, 0, null);\n    node.dispatchEvent(evt);\n  }\n}\n\nfunction normalSaveAs(blob, name, opts) {\n  var URL = window.URL || window.webkitURL;\n  var a = document.createElement('a');\n  name = name || blob.name || 'download';\n  a.download = name;\n  a.rel = 'noopener';\n\n  if (typeof blob === 'string') {\n    a.href = blob;\n\n    if (a.origin !== location.origin) {\n      corsEnabled(a.href).then(function (result) {\n        if (result) {\n          download(blob, name, opts);\n        } else {\n          a.target = '_blank';\n          click(a);\n        }\n      });\n    } else {\n      click(a);\n    }\n  } else {\n    a.href = URL.createObjectURL(blob);\n    setTimeout(function () {}, opts && opts.revokeTimeout || 4E4);\n    setTimeout(function () {\n      click(a);\n    }, 0);\n  }\n}\n\nfunction msSaveAs(blob, name, opts) {\n  name = name || blob.name || 'download';\n\n  if (typeof blob === 'string') {\n    corsEnabled(blob).then(function (result) {\n      if (result) {\n        download(blob, name, opts);\n      } else {\n        var a = document.createElement('a');\n        a.href = blob;\n        a.target = '_blank';\n        setTimeout(function () {\n          click(a);\n        });\n      }\n    });\n  } else {\n    navigator.msSaveOrOpenBlob(bom(blob, opts), name);\n  }\n}\n\nfunction popupSaveAs(blob, name, opts, popup) {\n  if (typeof blob === 'string') {\n    download(blob, name, opts);\n    return;\n  }\n\n  popup = popup || open('', '_blank');\n\n  if (popup) {\n    popup.document.title = name || 'download';\n    popup.document.body.innerText = \"downloading...\";\n  }\n\n  name = name || blob.name || 'download';\n  blob.name = name;\n  var force = blob.type === 'application/octet-stream';\n  var isSafari = _BrowserDetector[\"default\"].isSafari;\n  var isChromeIOS = _BrowserDetector[\"default\"].isChromeIOS;\n  var isMacOSWebView = _BrowserDetector[\"default\"].isMacOSWebView;\n  var isSafariUnder13 = _BrowserDetector[\"default\"].browser.type === 'safari' && parseFloat(_BrowserDetector[\"default\"].browser.version) < 13;\n\n  if ((!isChromeIOS || force && isSafari || isMacOSWebView) && typeof FileReader !== 'undefined' & !isSafariUnder13) {\n    var reader = new FileReader();\n\n    reader.onloadend = function () {\n      var url = reader.result;\n      url = isChromeIOS ? url : url.replace(/^data:[^;]*/, 'data:attachment/file');\n      if (popup) popup.location.href = url;else location = url;\n      popup = null;\n    };\n\n    reader.readAsDataURL(blob);\n  } else {\n    var URL = window.URL || window.webkitURL;\n    var url = URL.createObjectURL(blob);\n    if (popup) popup.location.href = url;else location.href = url;\n    popup = null;\n    setTimeout(function () {\n      URL.revokeObjectURL(blob);\n    }, opts && opts.revokeTimeout || 4E4);\n  }\n}\n/***\r\n *\r\n * @param {string  | File | Blob}blob\r\n * @param {string=} name\r\n * @param {Object=} opts\r\n * @param {Object=} popup\r\n */\n\n\nfunction saveAs(blob, name, opts, popup) {\n  if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== \"object\" || window !== self) {\n    console.error(\"FileSaver is not support!\");\n  } else if ('wkSaveAs' in navigator) {\n    navigator.wkSaveAs(blob, name, opts);\n  } else if ('download' in HTMLAnchorElement.prototype && !_BrowserDetector[\"default\"].isMacOSWebView) {\n    normalSaveAs(blob, name, opts);\n  } else if ('msSaveOrOpenBlob' in navigator) {\n    msSaveAs(blob, name, opts);\n  } else {\n    setTimeout(function () {\n      popupSaveAs(blob, name, opts, popup);\n    }, 100);\n  }\n}\n\nfunction saveTextAs(text, name, opts) {\n  var blob = new Blob([text], {\n    type: 'text/plain'\n  });\n  saveAs(blob, name, opts);\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Network/FileSaver.js?");

/***/ }),

/***/ "./node_modules/absol/src/Network/IFrameBridge.js":
/*!********************************************************!*\
  !*** ./node_modules/absol/src/Network/IFrameBridge.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _EventEmitter = _interopRequireDefault(__webpack_require__(/*! ../HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nvar _stringGenerate = __webpack_require__(/*! ../String/stringGenerate */ \"./node_modules/absol/src/String/stringGenerate.js\");\n\nvar _safeThrow = _interopRequireDefault(__webpack_require__(/*! ../Code/safeThrow */ \"./node_modules/absol/src/Code/safeThrow.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar TYPE_WORKER = 'WORKER';\nvar TYPE_IFRAME = 'IFRAME';\nvar TYPE_IFRAME_MASTER = 'IFRAME_MASTER';\nvar TYPE_WORKER_MASTER = 'WORKER_MASTER';\n/**\r\n *\r\n * @param {Worker|HTMLIFrameElement|WorkerGlobalScope|Window=} host\r\n */\n\nfunction IFrameBridge(host) {\n  var _this = this;\n\n  _EventEmitter[\"default\"].call(this);\n  /***\r\n   *\r\n   * @type {Worker|HTMLIFrameElement|WorkerGlobalScope|Window|WorkerGlobalScope|Window}\r\n   */\n\n\n  this.host = host || self;\n  this.sender = null;\n  this.receiver = null;\n  this.origin = null;\n  this.type = 'NOT_DETECT';\n  this.id = \"UNSET\";\n  this.sync = this._detectHost().then(function () {\n    return _this._attach();\n  });\n  this.__azarResolveCallbacks = {};\n  this.__azarRejectCallbacks = {};\n}\n\nIFrameBridge.TYPE_WORKER = TYPE_WORKER;\nIFrameBridge.TYPE_IFRAME = TYPE_IFRAME;\nIFrameBridge.TYPE_IFRAME_MASTER = TYPE_IFRAME_MASTER;\nIFrameBridge.TYPE_WORKER_MASTER = TYPE_WORKER_MASTER;\n\nIFrameBridge.prototype._detectHost = function () {\n  var _this2 = this;\n\n  return new Promise(function (rs) {\n    var iframeLoaded = function iframeLoaded() {\n      if (_this2.host.removeEventListener) {\n        _this2.host.removeEventListener(\"load\", iframeLoaded);\n      } else {\n        _this2.host.detachEvent(\"onload\", iframeLoaded);\n      }\n\n      _this2.sender = _this2.host.contentWindow;\n      rs();\n    };\n\n    if (_this2.host instanceof Worker) {\n      _this2.type = TYPE_WORKER_MASTER;\n      _this2.sender = _this2.host;\n      _this2.receiver = _this2.host;\n    } else if (_this2.host.tagName === 'IFRAME') {\n      _this2.type = TYPE_IFRAME_MASTER;\n      _this2.receiver = self;\n      _this2.id = _this2.host.src;\n      _this2.origin = '*';\n\n      if (_this2.host.addEventListener) {\n        _this2.host.addEventListener(\"load\", iframeLoaded);\n      } else {\n        _this2.host.attachEvent(\"onload\", iframeLoaded);\n      }\n    } else if (IFrameBridge.isInIFrame()) {\n      _this2.type = TYPE_IFRAME;\n      _this2.sender = window.parent;\n      _this2.receiver = _this2.host;\n      _this2.id = location.href;\n      _this2.origin = '*';\n    } else if (IFrameBridge.isInWorker()) {\n      _this2.type = TYPE_WORKER;\n      _this2.sender = _this2.host;\n      _this2.receiver = _this2.host;\n    }\n\n    if (_this2.sender) rs();\n  });\n};\n\nIFrameBridge.prototype._attach = function () {\n  if (this.receiver.addEventListener) {\n    this.receiver.addEventListener(\"message\", this.__azarMessageListener.bind(this), false);\n  } else if (this.receiver.attachEvent) {\n    this.receiver.attachEvent(\"onmessage\", this.__azarMessageListener.bind(this));\n  } else {\n    this.receiver.onmessage = this.__azarMessageListener.bind(this);\n  }\n};\n\nIFrameBridge.fromIFrame = function (iframe) {\n  return new IFrameBridge(iframe);\n  var host = iframe.contentWindow || iframe.contentDocument;\n  var src = iframe.src;\n  var rootOrigin = location.origin;\n  var iframeOrigin = src.match(/^(http|https):\\/\\/[^/]+/);\n\n  if (iframeOrigin) {\n    iframeOrigin = iframeOrigin[0];\n  } else {\n    iframeOrigin = rootOrigin;\n  }\n\n  if (host) return new IFrameBridge(host, iframeOrigin);else {\n    var result = new IFrameBridge(undefined, iframeOrigin);\n\n    var attachedHost = function attachedHost() {\n      var host = iframe.contentWindow || iframe.contentDocument;\n      result.attach(host);\n    };\n\n    if (iframe.addEventListener) {\n      iframe.addEventListener(\"load\", attachedHost);\n    } else {\n      iframe.attachEvent(\"onload\", attachedHost);\n    }\n\n    return result;\n  }\n};\n\nIFrameBridge.getInstance = function () {\n  if (!IFrameBridge.shareInstance) {\n    var origin = location.origin;\n    var rootOrigin = IFrameBridge.fromIFrame() ? IFrameBridge.getParentUrl().match(/^(http|https):\\/\\/[^/]+/) : null;\n\n    if (rootOrigin) {\n      rootOrigin = rootOrigin[0];\n    } else {\n      rootOrigin = origin;\n    } // IFrameBridge.shareInstance = new IFrameBridge(self, rootOrigin == origin? undefined: \"*\" || rootOrigin );\n\n\n    var host = self;\n    IFrameBridge.shareInstance = new IFrameBridge(host, rootOrigin);\n  }\n\n  return IFrameBridge.shareInstance;\n};\n\nObject.defineProperties(IFrameBridge.prototype, Object.getOwnPropertyDescriptors(_EventEmitter[\"default\"].prototype));\nIFrameBridge.prototype.constructor = IFrameBridge;\n\nIFrameBridge.isInIFrame = function () {\n  return !IFrameBridge.isInWorker() && top !== self;\n};\n\nIFrameBridge.isInWorker = function () {\n  return typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope;\n};\n\nIFrameBridge.getParentUrl = function () {\n  var parentUrl = window.location != window.parent.location ? document.referrer : document.location.href;\n  return parentUrl;\n};\n\nIFrameBridge.prototype.__azarMessageListener = function (event) {\n  this.__azarHandleData(event.data);\n};\n\nIFrameBridge.prototype.__azarHandleData = function (data) {\n  if (data.bridgeId !== this.id) return;\n\n  if (data.type) {\n    if (data.type == \"INVOKE\") {\n      try {\n        var result = this.__azarSelfInvoke(data.name, data.params);\n\n        if (result && typeof result.then == 'function') {\n          result.then(function (result) {\n            this.__azarResolve(data.taskId, result);\n          }.bind(this))[\"catch\"](function (err) {\n            (0, _safeThrow[\"default\"])(err);\n\n            this.__azarResolve(data.taskId, null, err);\n          }.bind(this));\n        } else {\n          this.__azarResolve(data.taskId, result);\n        }\n      } catch (err) {\n        (0, _safeThrow[\"default\"])(err);\n\n        this.__azarResolve(data.taskId, null, err);\n      }\n    } else if (data.type == \"INVOKE_RESULT\") {\n      if (this.__azarResolveCallbacks[data.taskId]) {\n        if (data.error) {\n          this.__azarRejectCallbacks[data.taskId](data.error);\n        } else {\n          this.__azarResolveCallbacks[data.taskId](data.result);\n        }\n\n        delete this.__azarResolveCallbacks[data.taskId];\n        delete this.__azarRejectCallbacks[data.taskId];\n      }\n    } else if (data.type == \"EMIT\") {\n      this.fire.apply(this, data.params);\n    } else this.fire('message', data, this);\n  }\n};\n\nIFrameBridge.prototype.__azarResolve = function (taskId, result, error) {\n  var data = {\n    type: \"INVOKE_RESULT\",\n    taskId: taskId,\n    result: result,\n    error: error,\n    bridgeId: this.id\n  };\n\n  if (this.origin) {\n    this.sender.postMessage(data, this.origin);\n  } else {\n    this.sender.postMessage(data);\n  }\n};\n\nIFrameBridge.prototype.__azarSelfInvoke = function (name, params) {\n  if (typeof this[name] == 'function') {\n    return this[name].apply(this, params);\n  } else {\n    return this[name];\n  }\n};\n\nIFrameBridge.prototype.emit = function () {\n  var params = [];\n  params.push.apply(params, arguments);\n  this.sync.then(function () {\n    var data = {\n      type: \"EMIT\",\n      params: params,\n      bridgeId: this.id\n    };\n\n    if (this.origin) {\n      this.sender.postMessage(data, this.origin);\n    } else {\n      this.sender.postMessage(data);\n    }\n  }.bind(this));\n  return this;\n};\n\nIFrameBridge.prototype.invoke = function (name) {\n  var params = [];\n  params.push.apply(params, arguments);\n  params.shift();\n  return this.sync.then(function () {\n    var indent = (0, _stringGenerate.randomIdent)(32);\n    var data = {\n      type: 'INVOKE',\n      params: params,\n      taskId: indent,\n      name: name,\n      bridgeId: this.id\n    };\n\n    if (this.origin) {\n      this.host.postMessage(data, this.origin);\n    } else {\n      this.host.postMessage(data);\n    }\n\n    return new Promise(function (resolve, reject) {\n      this.__azarResolveCallbacks[indent] = resolve;\n      this.__azarRejectCallbacks[indent] = reject;\n    }.bind(this));\n  }.bind(this));\n};\n\nIFrameBridge.prototype.importScriptURLs = function () {\n  return this.invoke.apply(this, ['_receiveScriptURLs'].concat(Array.prototype.slice.call(arguments)));\n};\n\nIFrameBridge.prototype.importScript = function (code) {\n  var blob = new Blob([code], {\n    type: 'application/javascript'\n  });\n  var url = URL.createObjectURL(blob);\n  return this.importScriptURLs(url);\n};\n\nIFrameBridge.prototype.createMethod = function (name, fx) {\n  this[name] = function () {\n    return this.invoke.apply(this, [name].concat(Array.prototype.slice.call(arguments)));\n  };\n\n  return this.invoke.apply(this, ['_receiveMethod', name, fx.toString()]);\n};\n\nIFrameBridge.prototype._receiveScriptURLs = function () {\n  if (self.importScripts) {\n    self.importScripts.apply(self, arguments);\n  }\n};\n\nIFrameBridge.prototype._receiveMethod = function (name, code) {\n  this[name] = new Function('return ' + code)();\n};\n\nvar _default = IFrameBridge;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Network/IFrameBridge.js?");

/***/ }),

/***/ "./node_modules/absol/src/Network/Thread.js":
/*!**************************************************!*\
  !*** ./node_modules/absol/src/Network/Thread.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _IFrameBridge = _interopRequireDefault(__webpack_require__(/*! ./IFrameBridge */ \"./node_modules/absol/src/Network/IFrameBridge.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! ../HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _RemoteThread = _interopRequireDefault(__webpack_require__(/*! ./RemoteThread.tpl */ \"./node_modules/absol/src/Network/RemoteThread.tpl\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n *\r\n * @param {{methods?:Object, extendCode: string}} opt\r\n * @constructor\r\n */\nfunction Thread(opt) {\n  this.worker = new Worker(this._makeCodeUrl(opt));\n\n  _IFrameBridge[\"default\"].call(this, this.worker);\n\n  this._attachClientMethods(opt.methods);\n}\n\nThread.prototype._makeCodeUrl = function (opt) {\n  var code = [this._makeLibCode(opt.libs), _RemoteThread[\"default\"], this._makeMethodCode(opt.methods), this._makePropCode(opt.props), opt.extendCode || ''].join('\\n\\n');\n  var blob = new Blob([code], {\n    type: 'application/javascript'\n  });\n  var url = URL.createObjectURL(blob);\n  return url;\n};\n\nThread.prototype._makePropCode = function (props) {\n  if (!props) return '';\n  return 'Object.assign(self, ' + JSON.stringify(props) + ');';\n};\n\nThread.prototype._makeLibCode = function (libs) {\n  if (!libs) return '';\n  return libs.map(function (lib) {\n    return 'self.importScripts(' + JSON.stringify(lib) + ');';\n  }).join('\\n');\n};\n\nThread.prototype._makeMethodCode = function (methods) {\n  if (!methods) return '';\n  return Object.keys(methods).map(function (key) {\n    var fx = methods[key];\n\n    if (typeof fx === \"function\") {\n      fx = fx.toString();\n      return 'self[' + JSON.stringify(key) + '] = ' + fx;\n    }\n  }).join('\\n\\n');\n};\n\nThread.prototype._attachClientMethods = function (methods) {\n  if (!methods) return '';\n  Object.keys(methods).reduce(function (ac, name) {\n    ac[name] = function () {\n      return this.invoke.apply(this, [name].concat(Array.prototype.slice.call(arguments)));\n    };\n\n    return ac;\n  }, this);\n};\n\n_OOP[\"default\"].mixClass(Thread, _IFrameBridge[\"default\"]);\n\nvar _default = Thread;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Network/Thread.js?");

/***/ }),

/***/ "./node_modules/absol/src/Network/XHR.js":
/*!***********************************************!*\
  !*** ./node_modules/absol/src/Network/XHR.js ***!
  \***********************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar XHR = {};\n\nXHR.makeHttpObject = function () {\n  try {\n    return new XMLHttpRequest();\n  } catch (error) {}\n\n  try {\n    return new ActiveXObject(\"Msxml2.XMLHTTP\");\n  } catch (error) {}\n\n  try {\n    return new ActiveXObject(\"Microsoft.XMLHTTP\");\n  } catch (error) {}\n\n  throw new Error(\"Could not create HTTP request object.\");\n};\n/***\r\n * \r\n * @param {String} url\r\n * @param {String} body\r\n * @param {String} responseType\r\n * @param {Function} success\r\n * @param {Function} failure\r\n * @returns {Promise}\r\n */\n\n\nXHR.getRequest = function (url, props, success, failure) {\n  return new Promise(function (rs, rj) {\n    var request = XHR.makeHttpObject();\n    request.open(\"GET\", url, true);\n    if (typeof props == 'string') request.responseType = props || '';else if (props && _typeof(props) == 'object') {\n      Object.assign(request, props);\n    }\n    request.send(null);\n\n    request.onreadystatechange = function () {\n      if (request.readyState == 4) {\n        if (request.status == 200) {\n          var response = request.response;\n          success && success(response);\n          rs(response);\n        } else {\n          failure && failure(request.status, request.statusText);\n          rj(request.status);\n        }\n      }\n    };\n\n    request.onerror = function () {\n      failure && failure(request.status, request.statusText);\n      rj(new Error(request.status + request.statusText));\n    };\n  });\n};\n\nXHR.postRepquest = function (url, payload, props, headers, success, failure) {\n  return new Promise(function (rs, rj) {\n    var method = \"POST\";\n    var shouldBeAsync = true;\n    var request = XHR.makeHttpObject();\n\n    request.onreadystatechange = function () {\n      if (request.readyState == 4) {\n        if (request.status == 200) {\n          success && success(request.response);\n          rs(request.response);\n        } else if (failure) {\n          failure && failure(request.status, request.statusText);\n          rj({\n            status: request.status,\n            statusText: request.statusText\n          });\n        }\n      }\n    };\n\n    request.onerror = function () {\n      failure && failure(request.status, request.statusText);\n      rj(new Error(request.status + request.statusText));\n    };\n\n    request.open(method, url, shouldBeAsync);\n    if (typeof props == 'string') request.responseType = props || '';else if (props && _typeof(props) == 'object') {\n      Object.assign(request, props);\n    }\n    headers = headers || {};\n    headers[\"Content-Type\"] = headers[\"Content-Type\"] || \"application/json;charset=UTF-8\";\n    Object.keys(headers).forEach(function (key) {\n      request.setRequestHeader(key, headers[key]);\n    });\n    request.send(payload);\n  });\n};\n\nXHR.request = function (method, url, props, headers, body, successCallback, failureCallback) {\n  return new Promise(function (rs, rj) {\n    var shouldBeAsync = true;\n    var request = new XMLHttpRequest();\n\n    request.onreadystatechange = function () {\n      if (request.readyState == 4) {\n        if (request.status == 200) {\n          successCallback && successCallback(request.response);\n          rs(request.response);\n        } else {\n          failureCallback && failureCallback(request.status, request.statusText);\n          rj({\n            status: request.status,\n            statusText: request.statusText\n          });\n        }\n      }\n    };\n\n    request.onerror = function () {\n      var error = new Error(\"Network Error!\");\n      if (failureCallback) failureCallback(error);\n      rj(error);\n    };\n\n    request.open(method, url, shouldBeAsync);\n    if (typeof props == 'string') request.responseType = props || '';else if (props && _typeof(props) == 'object') {\n      Object.assign(request, props);\n    }\n    headers = headers || {};\n    headers[\"Content-Type\"] = headers[\"Content-Type\"] || \"application/json;charset=UTF-8\";\n    Object.keys(headers).forEach(function (key) {\n      request.setRequestHeader(key, headers[key]);\n    });\n    request.send(body);\n  });\n};\n\nvar _default = XHR;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Network/XHR.js?");

/***/ }),

/***/ "./node_modules/absol/src/Network/XLoader.js":
/*!***************************************************!*\
  !*** ./node_modules/absol/src/Network/XLoader.js ***!
  \***************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\nexports.isImageURLAllowCrossOrigin = isImageURLAllowCrossOrigin;\nexports.loadScript = loadScript;\nexports.loadToBlobURL = loadToBlobURL;\nvar XLoader = {};\n\nfunction loadScript(url, onComplete, onError) {\n  return new Promise(function (resolve, reject) {\n    var script = document.createElement(\"script\");\n    script.type = \"text/javascript\";\n\n    if (script.readyState) {\n      //IE\n      script.onreadystatechange = function () {\n        if (script.readyState === \"loaded\" || script.readyState === \"complete\") {\n          script.onreadystatechange = null;\n          onComplete && onComplete();\n          resolve();\n        }\n      };\n    } else {\n      //Others\n      script.onload = function () {\n        script.onload = null;\n        script.onerror = null;\n        onComplete && onComplete();\n        resolve();\n      };\n\n      script.onerror = function () {\n        script.onerror = null;\n        script.onload = null;\n        script.remove();\n        onError && onError();\n        reject();\n      };\n    }\n\n    script.src = url;\n    document.getElementsByTagName(\"head\")[0].appendChild(script);\n  });\n}\n\nXLoader.loadScript = loadScript;\n\nfunction isImageURLAllowCrossOrigin(url) {\n  return new Promise(function (rs, rj) {\n    url = url || '';\n\n    if (url.startsWith('data:') || url.startsWith('blob:')) {\n      rs(true);\n      return;\n    }\n\n    var img = new Image(); // img.crossOrigin = \"anonymous\";\n\n    img.onload = function () {\n      var canvas = document.createElement('canvas');\n      canvas.width = 10;\n      canvas.height = 10;\n      var ctx = canvas.getContext(\"2d\");\n      ctx.drawImage(this, 0, 0);\n\n      try {\n        ctx.getImageData(0, 0, 10, 10);\n        rs(true);\n      } catch (err) {\n        rs(false);\n      }\n    };\n\n    img.onerror = function (event) {\n      rj(event.error || event);\n    };\n\n    img.src = url;\n  });\n}\n\nvar blobCache = {};\n/***\r\n *\r\n * @param {string} url\r\n * @param {boolean=}noCache\r\n * @return {*}\r\n */\n\nfunction loadToBlobURL(url, noCache) {\n  if (blobCache[url]) return blobCache[url];\n  blobCache[url] = fetch(url).then(function (res) {\n    return res.blob();\n  }).then(function (blob) {\n    return URL.createObjectURL(blob);\n  });\n  return blobCache[url];\n}\n\nvar _default = XLoader;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Network/XLoader.js?");

/***/ }),

/***/ "./node_modules/absol/src/Network/remoteRequireNodeAsync.js":
/*!******************************************************************!*\
  !*** ./node_modules/absol/src/Network/remoteRequireNodeAsync.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = remoteRequireNodeAsync;\n\nvar _url = __webpack_require__(/*! ./url */ \"./node_modules/absol/src/Network/url.js\");\n\nfunction remoteRequireNodeAsync(filename, entry) {\n  var moduleCache = {};\n  var factors = {};\n  var resources = {};\n\n  function getFileName(path) {\n    return path.split('/').pop();\n  }\n\n  function getExtension(fileName) {\n    return fileName.split('.').slice(1).pop() || null;\n  }\n\n  function require(currentLoc, fn) {\n    var fullPath = (0, _url.resolveUrl)(currentLoc, fn);\n    if (factors[fullPath + '.js']) fullPath = fullPath + '.js';\n    var filename = getFileName(fullPath); //__filename\n\n    var module = moduleCache[fullPath];\n\n    if (!module) {\n      if (factors[fullPath]) {\n        module = {\n          'exports': {}\n        };\n        moduleCache[fullPath] = module;\n        factors[fullPath](require.bind(null, fullPath), module, module.exports, (0, _url.resolveUrl)(fullPath, '.'), filename, window);\n      } else {\n        throw new Error(\"Could not find module :\" + fullPath);\n      }\n    }\n\n    return module.exports;\n  }\n\n  function findAllRequire(s) {\n    var regex0 = /[^a-zA-Z_.0-9]require\\s*\\([^\\)]+\\)/gm;\n    var regex1 = /require\\s*\\([^)]+\\)/gm;\n    var regex2 = /\\([^)]+\\)/gm;\n    var es = s.match(regex0);\n    if (!es) return [];\n    return es.map(function (s) {\n      s = s.match(regex1)[0];\n      s = s.match(regex2)[0];\n      s = s.replace(/['\"()]/gm, '');\n      if (!getExtension(getFileName(s))) s += '.js';\n      return s;\n    });\n  }\n\n  function fetchResource(fullPath) {\n    if (resources[fullPath]) return Promise.resolve();\n    var resource = {};\n    resources[fullPath] = resource;\n    var ext = getExtension(getFileName(fullPath));\n    resource.sync = fetch(fullPath, {\n      cache: \"no-cache\"\n    }).then(function (res) {\n      return res.text();\n    }).then(function (text) {\n      resource.text = text;\n\n      switch (ext) {\n        case 'js':\n          factors[fullPath] = new Function('require', 'module', 'exports', '__dir', '__filename', 'global', text);\n          break;\n\n        case 'json':\n          factors[fullPath] = true;\n          moduleCache[fullPath] = {\n            exports: JSON.parse(text)\n          };\n          break;\n\n        default:\n          factors[fullPath] = true;\n          moduleCache[fullPath] = {\n            exports: text\n          };\n      }\n\n      var requiredNodes;\n\n      if (ext === 'js') {\n        requiredNodes = findAllRequire(text);\n        var syncs = requiredNodes.map(function (ident) {\n          return fetchResource((0, _url.resolveUrl)(fullPath, ident));\n        });\n        return Promise.all(syncs);\n      }\n    });\n    return resource.sync;\n  }\n\n  var absoluteEntry = location.href;\n\n  function requireCode(filename, entry, fileList) {\n    if (!fileList) fileList = {};\n    if (!entry) entry = absoluteEntry;\n    var fullPath = (0, _url.resolveUrl)(entry, filename);\n\n    if (fileList[fullPath] === 'pending') {\n      return Promise.resolve();\n    } else if (fileList[fullPath] !== undefined && fileList[fullPath] !== 'pending') {\n      return Promise.resolve();\n    }\n\n    fileList[fullPath] = true;\n    fileList[fullPath] = 'pending';\n    return fetch(fullPath, {\n      cache: \"no-cache\"\n    }).then(function (res) {\n      return res.text();\n    }).then(function (text) {\n      fileList[fullPath] = text;\n      var requirePath = findAllRequire(text);\n      var waitCode = requirePath.map(function (e) {\n        return requireCode(e, fullPath, fileList);\n      });\n      return Promise.all(waitCode).then(function () {\n        return fileList;\n      });\n    });\n  }\n\n  if (!entry) entry = absoluteEntry;\n  if (!getExtension(filename)) filename += '.js';\n  var fullPath = (0, _url.resolveUrl)(entry, filename);\n  return fetchResource(fullPath).then(function () {\n    return require('', fullPath);\n  });\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Network/remoteRequireNodeAsync.js?");

/***/ }),

/***/ "./node_modules/absol/src/Network/url.js":
/*!***********************************************!*\
  !*** ./node_modules/absol/src/Network/url.js ***!
  \***********************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.resolveUrl = resolveUrl;\n\n/***\r\n *\r\n * @param {string} current\r\n * @param {string} target\r\n * @return {string}\r\n */\nfunction resolveUrl(current, target) {\n  current = current.trim();\n  target = target.trim();\n  if (target.match(/[a-z]+:\\/\\//)) return target;\n  var origin = current.match(/^[a-z]+:\\/\\/[a-zA-Z0-9._]+(:[0-9]+)?/);\n  if (origin) origin = origin[0];\n  var cPath = current.replace(/^[a-z]+:\\/\\/[a-zA-Z0-9._]+(:[0-9]+)?/, '');\n  if (target.startsWith('/')) return origin ? origin + target : target;\n  var cParts = cPath.split('/');\n  cParts.pop();\n  var tParts = target.split('/');\n  var t; //todo: normal current\n\n  while (tParts.length > 0) {\n    t = tParts.shift().trim();\n\n    if (t === '..') {\n      cParts.pop();\n    } else if (t !== '.' && t.length > 0) {\n      cParts.push(t);\n    }\n  }\n\n  if (origin) {\n    if (cParts[0].length === 0) cParts.shift();\n    cParts.unshift(origin);\n  }\n\n  return cParts.join('/');\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Network/url.js?");

/***/ }),

/***/ "./node_modules/absol/src/Pharse/DPParseInstance.js":
/*!**********************************************************!*\
  !*** ./node_modules/absol/src/Pharse/DPParseInstance.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\nexports.parsedNodeToAST = parsedNodeToAST;\nexports.parsedNodeToASTChain = parsedNodeToASTChain;\n\nvar _Heap = _interopRequireDefault(__webpack_require__(/*! ../DataStructure/Heap */ \"./node_modules/absol/src/DataStructure/Heap.js\"));\n\nvar _stringUtils = __webpack_require__(/*! ../String/stringUtils */ \"./node_modules/absol/src/String/stringUtils.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar TARGET = 0;\nvar RULE = 1;\nvar PASSED = 2;\nvar LENGTH = 3;\nvar TRACK = 4;\n/***\r\n * @param {string} target\r\n * @param {Rule|null} rule\r\n * @param {number} passed\r\n * @param {number} length\r\n * @param {[]} track\r\n *\r\n * @returns {*[]}\r\n */\n\nfunction mkItem(target, rule, passed, length, track) {\n  return [target, rule, passed, length, track];\n}\n\nfunction indexingItem(item) {\n  return item[TARGET] + '*' + item[PASSED] + '*' + item[LENGTH];\n}\n\nfunction arrayKey(item) {\n  return item[TARGET] + '*' + item[PASSED];\n}\n/****\r\n *\r\n * @param {DPParser} parser\r\n * @param {string || []} source\r\n * @param {string} target\r\n * @constructor\r\n */\n\n\nfunction DPParseInstance(parser, source, target) {\n  this.target = target;\n  this.parser = parser;\n  this.targets = parser.targets;\n  this.rules = parser.rules;\n  this.tokenTypes = parser.tokenizer.types;\n  this.error = null;\n  this.source = source;\n  var start = Date.now();\n\n  if (typeof source === \"string\") {\n    this.tokens = parser.tokenizer.tokenize(source).filter(function (tk) {\n      return tk.type !== 'skip';\n    });\n  } else if (source instanceof Array) {\n    this.tokens = source;\n  } else {\n    throw new Error(\"Invalid source, source must be string or array of token\");\n  }\n\n  this.tokenIdx = 0;\n  this.priQueue = new _Heap[\"default\"](this._cmpFunction);\n  this.maxSize = 0;\n  this.expectedArr = [];\n  this.parsedNode = null;\n  this.ast = null;\n  start = Date.now();\n\n  this._dp();\n\n  this._trackBack();\n\n  if (this.parsedNode) {\n    this._calcAST();\n  } else {\n    this._findError();\n  }\n}\n\nDPParseInstance.prototype._dp = function () {\n  while (this.tokenIdx < this.tokens.length) {\n    this._nextToken();\n  }\n};\n\nDPParseInstance.prototype._cmpFunction = function (a, b) {\n  return b[LENGTH] - a[LENGTH];\n};\n\nDPParseInstance.prototype._nextToken = function () {\n  var idx = this.tokenIdx++;\n  var token = this.tokens[idx];\n  this.priQueue.push(mkItem('.' + token.type, null, 1, 1, [null, token]));\n  this.priQueue.push(mkItem('_' + token.content, null, 1, 1, [null, token]));\n  var expected = {};\n  var pushed = {};\n  var itemIndex;\n  var longestChecked = {};\n  this.expectedArr.push(expected);\n  var cur, next;\n  var i, j, rule;\n  var prevExpectedList, prevRule;\n  var prevExpectedItem; //nếu cùng 1 rule, cùng điểm bắt dầu, cùng passed thì dài hơn lấy\n\n  while (this.priQueue.size() > 0) {\n    this.maxSize = Math.max(this.maxSize, this.priQueue.size());\n    cur = this.priQueue.pop();\n\n    for (i = 0; i < this.rules.length; ++i) {\n      rule = this.rules[i];\n\n      if (rule.elements[0] === cur[TARGET]) {\n        if (rule.elements.length === 1) {\n          next = mkItem(rule.target, rule, cur[PASSED], cur[LENGTH], [null, cur]);\n          itemIndex = indexingItem(next);\n\n          if (!pushed[itemIndex]) {\n            pushed[itemIndex] = true;\n            this.priQueue.push(next);\n          }\n\n          expected['^'] = expected['^'] || [];\n          expected['^'].push(next);\n        } else {\n          next = mkItem(rule.target, rule, 1, cur[LENGTH], [null, cur]);\n          expected[rule.elements[1]] = expected[rule.elements[1]] || [];\n          expected[rule.elements[1]].push(next);\n        }\n      }\n    }\n\n    prevExpectedList = this.expectedArr[idx - cur[LENGTH]] && this.expectedArr[idx - cur[LENGTH]][cur[TARGET]];\n\n    if (prevExpectedList) {\n      for (j = 0; j < prevExpectedList.length; ++j) {\n        prevExpectedItem = prevExpectedList[j];\n        prevRule = prevExpectedItem[RULE];\n        next = mkItem(prevRule.target, prevRule, prevExpectedItem[PASSED] + 1, prevExpectedItem[LENGTH] + cur[LENGTH], [prevExpectedItem, cur]);\n\n        if (prevExpectedItem[PASSED] + 1 === prevRule.elements.length) {\n          itemIndex = indexingItem(next);\n\n          if (next[RULE] && next[RULE].longestOnly) {\n            if (longestChecked[next[RULE].ident] && longestChecked[next[RULE].ident] >= next[LENGTH]) {\n              continue;\n            }\n\n            longestChecked[next[RULE].ident] = next[LENGTH];\n          }\n\n          if (!pushed[itemIndex]) {\n            pushed[itemIndex] = true;\n            this.priQueue.push(next);\n          }\n\n          expected['^'] = expected['^'] || [];\n          expected['^'].push(next); //[rule index, passed, length]\n        } else {\n          expected[prevRule.elements[prevExpectedItem[PASSED] + 1]] = expected[prevRule.elements[prevExpectedItem[PASSED] + 1]] || [];\n          expected[prevRule.elements[prevExpectedItem[PASSED] + 1]].push(next);\n        }\n      }\n    }\n  }\n};\n\nDPParseInstance.prototype._trackBack = function () {\n  var expectedAr = this.expectedArr;\n\n  function visit(target, start, length) {\n    var node = {\n      type: target,\n      start: start,\n      end: start + length\n    };\n    var matchedItem = null;\n    var expected = expectedAr[start + length - 1];\n    if (!expected) return null;\n    var itemList = expected['^'];\n    if (!itemList) return null;\n    var item;\n\n    if (itemList) {\n      for (var j = 0; j < itemList.length; ++j) {\n        item = itemList[j];\n\n        if (item[TARGET] === target) {\n          if (item[LENGTH] === length) {\n            matchedItem = item;\n          }\n        }\n      }\n    }\n\n    if (!matchedItem) {\n      return null;\n    }\n\n    node.rule = matchedItem[RULE];\n    var childItem = [];\n    var cTrack = matchedItem[TRACK];\n    var right, left;\n\n    while (cTrack) {\n      left = cTrack[0];\n      right = cTrack[1];\n      childItem.unshift(right);\n      cTrack = left && left[TRACK];\n    }\n\n    var ac = childItem.reduce(function (ac, item) {\n      if (typeof item[TRACK][1].type === \"string\") {\n        ac.child.push(item[TRACK][1]);\n        ac.start += 1;\n      } else {\n        ac.child.push(visit(item[TARGET], ac.start, item[LENGTH]));\n        ac.start += item[LENGTH];\n      }\n\n      return ac;\n    }, {\n      start: start,\n      child: []\n    });\n    node.children = ac.child;\n    node.end = ac.start;\n    return node;\n  }\n\n  this.parsedNode = visit(this.target, 0, this.expectedArr.length);\n};\n\nDPParseInstance.prototype._findError = function () {\n  function cmp(a, b) {\n    return b.i - a.i;\n  }\n\n  var queue = new _Heap[\"default\"](cmp);\n  var doneArr = Array(this.expectedArr.length).fill(null).map(function () {\n    return {};\n  });\n  this.expectedArr.forEach(function (ex, i) {\n    for (var k in ex) {\n      ex[k].forEach(function (it) {\n        var target = it[TARGET];\n        var done = doneArr[i - it[LENGTH] + 1];\n        done[target] = done[target] || [];\n        done[target].push(it);\n      });\n    }\n  });\n  var d = {};\n  queue.push({\n    t: this.target,\n    i: 0\n  });\n  d[this.target + '/' + 0] = true;\n  var cr, next;\n  var nextIdent;\n  var item;\n  var hasNewExpected;\n\n  while (queue.size() > 0) {\n    cr = queue.pop();\n\n    if (cr.i >= doneArr.length) {\n      if (!this.error || this.error.tokenIdx < cr.i || this.error.type !== \"expected\") {\n        this.error = {\n          tokenIdx: cr.i,\n          type: 'expected',\n          expectedToken: []\n        };\n      }\n\n      if (cr.t[0] === '_' || cr.t[0] === '.') {\n        this.error.expectedToken.push(cr.t);\n      }\n\n      continue;\n    }\n\n    hasNewExpected = false;\n\n    if (doneArr[cr.i][cr.t]) {\n      doneArr[cr.i][cr.t].forEach(function (item) {\n        if (item[PASSED] < item[RULE].elements.length) {\n          next = {\n            i: cr.i + item[LENGTH],\n            t: item[RULE].elements[item[PASSED]]\n          };\n          nextIdent = next.t + '/' + next.i;\n          hasNewExpected = true;\n\n          if (!d[nextIdent]) {\n            d[nextIdent] = true;\n            queue.push(next);\n          }\n        }\n      });\n    }\n\n    this.rules.forEach(function (rule) {\n      if (rule.target === cr.t) {\n        next = {\n          i: cr.i,\n          t: rule.elements[0]\n        };\n        nextIdent = next.t + '/' + next.i;\n\n        if (!d[nextIdent]) {\n          d[nextIdent] = true;\n          queue.push(next);\n        }\n      }\n    });\n\n    if (!hasNewExpected) {\n      if (!this.error || this.error.tokenIdx < cr.i) {\n        this.error = {\n          tokenIdx: cr.i,\n          type: 'unexpected'\n        };\n      }\n    }\n  }\n\n  if (this.error.type === 'expected') {\n    this.error.message = 'Expected: ' + this.error.expectedToken.map(function (t) {\n      if (t[0] === '.') return t.substring(1);\n      if (t[0] === '_') return JSON.stringify(t.substring(1));\n    }).join(', ');\n  } else if (this.error.type === 'unexpected') {\n    this.error.message = 'Unexpected token ' + (this.tokens[this.error.tokenIdx].content || JSON.stringify(this.tokens[this.error.tokenIdx]));\n  }\n};\n\nDPParseInstance.prototype._calcAST = function () {\n  this.ast = this.parsedNode.rule.toAST(this.parsedNode);\n};\n\nfunction parsedNodeToAST(parsedNode) {\n  return parsedNode.rule.toAST(parsedNode);\n}\n\nfunction parsedNodeToASTChain(parsedNode) {\n  return parsedNode.rule.toASTChain(parsedNode);\n}\n\nvar _default = DPParseInstance;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Pharse/DPParseInstance.js?");

/***/ }),

/***/ "./node_modules/absol/src/Pharse/DPParser.js":
/*!***************************************************!*\
  !*** ./node_modules/absol/src/Pharse/DPParser.js ***!
  \***************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _DPTokenizer = _interopRequireDefault(__webpack_require__(/*! ./DPTokenizer */ \"./node_modules/absol/src/Pharse/DPTokenizer.js\"));\n\nvar _DPParseInstance = _interopRequireDefault(__webpack_require__(/*! ./DPParseInstance */ \"./node_modules/absol/src/Pharse/DPParseInstance.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @typedef Rule\r\n * @property {string} target\r\n * @property {string[]} elements\r\n */\n\n/***\r\n *\r\n * @param {{rules?:Array, elementRegexes?:Array}}opt\r\n * @constructor\r\n */\nfunction DPParser(opt) {\n  opt = opt || {};\n\n  if (opt.rules) {\n    this.rules = opt.rules;\n  }\n\n  this.targets = {};\n  this.tokenizer = new _DPTokenizer[\"default\"](opt);\n  this.computeTarget();\n}\n/****\r\n * @type {Rule[]}\r\n */\n\n\nDPParser.prototype.rules = [];\n\nDPParser.prototype.computeTarget = function () {\n  this.rules.reduce(function (ac, rule) {\n    var target = ac[rule.target];\n\n    if (!target) {\n      target = {\n        rules: []\n      };\n      ac[rule.target] = target;\n    }\n\n    target.rules.push(rule);\n    return ac;\n  }, this.targets);\n};\n/***\r\n *\r\n * @param {string|[]}source\r\n * @param target\r\n * @returns {DPParseInstance}\r\n */\n\n\nDPParser.prototype.parse = function (source, target) {\n  return new _DPParseInstance[\"default\"](this, source, target);\n};\n\nvar _default = DPParser;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Pharse/DPParser.js?");

/***/ }),

/***/ "./node_modules/absol/src/Pharse/DPTokenizer.js":
/*!******************************************************!*\
  !*** ./node_modules/absol/src/Pharse/DPTokenizer.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nfunction DPTokenizer(opt) {\n  opt = opt || {};\n  if (opt.elementRegexes) this.elementRegexes = opt.elementRegexes;\n\n  this._combineTokenRegex();\n}\n\nDPTokenizer.prototype.elementRegexes = [['string', /(\"(?:[^\"\\\\]|\\\\.)*?\")|('(?:[^'\\\\]|\\\\.)*?')/], ['number', /[+-]?(\\d+([.]\\d*)?([eE][+-]?\\d+)?|[.]\\d+([eE][+-]?\\d+)?)/], ['word', /[_a-zA-Z][_a-zA-Z0-9]*/], ['dsymbol', /\\+\\+|--/], ['symbol', /[^\\s_a-zA-Z0-9]/], ['skip', /[\\s\\r\\n]+/]];\n\nDPTokenizer.prototype._combineTokenRegex = function () {\n  var tokenRegexSource = this.elementRegexes.map(function (cr) {\n    return '(' + cr[1].source + ')';\n  }).join('|');\n  this.tokenRegex = new RegExp(tokenRegexSource, 'g');\n  this.groupIndexOfTypes = this.elementRegexes.slice(0, this.elementRegexes.length - 1).reduce(function (ac, cr) {\n    var subGroupLength = new RegExp(cr[1].source + '|.').exec('a').length;\n    ac.push(ac[ac.length - 1] + subGroupLength);\n    return ac;\n  }, [1]);\n  this.types = this.elementRegexes.reduce(function (ac, cr) {\n    ac[cr[0]] = cr;\n    return ac;\n  }, {});\n};\n\nDPTokenizer.prototype.tokenize = function (source) {\n  var regex = new RegExp(this.tokenRegex.source, 'g');\n  var elementRegexes = this.elementRegexes;\n  var groupIndexOfTypes = this.groupIndexOfTypes;\n  var res = [];\n  var matched = regex.exec(source);\n  var type, i;\n\n  while (matched) {\n    type = null;\n\n    for (i = 0; i < groupIndexOfTypes.length; ++i) {\n      if (matched[groupIndexOfTypes[i]]) {\n        type = elementRegexes[i][0];\n      }\n    }\n\n    res.push({\n      type: type,\n      content: matched[0],\n      start: matched.index,\n      end: matched.index + matched[0].length\n    });\n    matched = regex.exec(source);\n  }\n\n  return res;\n};\n\nvar _default = DPTokenizer;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Pharse/DPTokenizer.js?");

/***/ }),

/***/ "./node_modules/absol/src/Polyfill/gps.js":
/*!************************************************!*\
  !*** ./node_modules/absol/src/Polyfill/gps.js ***!
  \************************************************/
/***/ (() => {

"use strict";
eval("\n\nif (navigator.geolocation) {\n  var getCurrentPosition = navigator.geolocation.getCurrentPosition;\n  var lastResult = null;\n\n  navigator.geolocation.getCurrentPosition = function (successCallback, errorCallback, options) {\n    var ended = false;\n    var to = setTimeout(function () {\n      if (lastResult && !ended) {\n        ended = true;\n        successCallback(lastResult);\n      } else if (!ended) {\n        ended = true;\n        errorCallback(new Error(\"GPS không phản hồi.\"));\n      }\n    }, lastResult ? 5000 : 10000);\n    getCurrentPosition.call(this, function (result) {\n      lastResult = result;\n\n      if (!ended) {\n        ended = true;\n        successCallback && successCallback(lastResult);\n      }\n    }, function (error) {\n      if (error && error.message.indexOf('deni') > 0 && !ended) {\n        ended = true;\n        errorCallback && errorCallback(new Error(\"Chưa cấp quyền truy cập GPS.\"));\n      } else if (lastResult && !ended) {\n        ended = true;\n        successCallback && successCallback(lastResult);\n      } else if (!ended) {\n        ended = true;\n        errorCallback && errorCallback(error);\n      }\n    }, {\n      maximumAge: 1000\n    });\n  };\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Polyfill/gps.js?");

/***/ }),

/***/ "./node_modules/absol/src/Polyfill/polyfill.js":
/*!*****************************************************!*\
  !*** ./node_modules/absol/src/Polyfill/polyfill.js ***!
  \*****************************************************/
/***/ ((module, exports, __webpack_require__) => {

"use strict";
eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;\n\nvar _atob = _interopRequireDefault(__webpack_require__(/*! atob */ \"./node_modules/atob/browser-atob.js\"));\n\nvar _btoa = _interopRequireDefault(__webpack_require__(/*! btoa */ \"./node_modules/btoa/index.js\"));\n\nvar _intl = _interopRequireDefault(__webpack_require__(/*! intl */ \"./node_modules/intl/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nif (!('Intl' in window)) {\n  window.Intl = _intl[\"default\"];\n}\n\nif (!('atob' in window)) {\n  window.atob = _atob[\"default\"];\n}\n\nif (!('btoa' in window)) {\n  window.btoa = _btoa[\"default\"];\n}\n\n!function (e, n) {\n  \"object\" == ( false ? 0 : _typeof(exports)) && \"undefined\" != \"object\" ? n() :  true ? !(__WEBPACK_AMD_DEFINE_FACTORY__ = (n),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : 0;\n}(0, function () {\n  \"use strict\";\n\n  function e(e) {\n    var n = this.constructor;\n    return this.then(function (t) {\n      return n.resolve(e()).then(function () {\n        return t;\n      });\n    }, function (t) {\n      return n.resolve(e()).then(function () {\n        return n.reject(t);\n      });\n    });\n  }\n\n  function n() {}\n\n  function t(e) {\n    if (!(this instanceof t)) throw new TypeError(\"Promises must be constructed via new\");\n    if (\"function\" != typeof e) throw new TypeError(\"not a function\");\n    this._state = 0, this._handled = !1, this._value = undefined, this._deferreds = [], u(e, this);\n  }\n\n  function o(e, n) {\n    for (; 3 === e._state;) {\n      e = e._value;\n    }\n\n    0 !== e._state ? (e._handled = !0, t._immediateFn(function () {\n      var t = 1 === e._state ? n.onFulfilled : n.onRejected;\n\n      if (null !== t) {\n        var o;\n\n        try {\n          o = t(e._value);\n        } catch (f) {\n          return void i(n.promise, f);\n        }\n\n        r(n.promise, o);\n      } else (1 === e._state ? r : i)(n.promise, e._value);\n    })) : e._deferreds.push(n);\n  }\n\n  function r(e, n) {\n    try {\n      if (n === e) throw new TypeError(\"A promise cannot be resolved with itself.\");\n\n      if (n && (\"object\" == _typeof(n) || \"function\" == typeof n)) {\n        var o = n.then;\n        if (n instanceof t) return e._state = 3, e._value = n, void f(e);\n        if (\"function\" == typeof o) return void u(function (e, n) {\n          return function () {\n            e.apply(n, arguments);\n          };\n        }(o, n), e);\n      }\n\n      e._state = 1, e._value = n, f(e);\n    } catch (r) {\n      i(e, r);\n    }\n  }\n\n  function i(e, n) {\n    e._state = 2, e._value = n, f(e);\n  }\n\n  function f(e) {\n    2 === e._state && 0 === e._deferreds.length && t._immediateFn(function () {\n      e._handled || t._unhandledRejectionFn(e._value);\n    });\n\n    for (var n = 0, r = e._deferreds.length; r > n; n++) {\n      o(e, e._deferreds[n]);\n    }\n\n    e._deferreds = null;\n  }\n\n  function u(e, n) {\n    var t = !1;\n\n    try {\n      e(function (e) {\n        t || (t = !0, r(n, e));\n      }, function (e) {\n        t || (t = !0, i(n, e));\n      });\n    } catch (o) {\n      if (t) return;\n      t = !0, i(n, o);\n    }\n  }\n\n  var c = setTimeout;\n  t.prototype[\"catch\"] = function (e) {\n    return this.then(null, e);\n  }, t.prototype.then = function (e, t) {\n    var r = new this.constructor(n);\n    return o(this, new function (e, n, t) {\n      this.onFulfilled = \"function\" == typeof e ? e : null, this.onRejected = \"function\" == typeof n ? n : null, this.promise = t;\n    }(e, t, r)), r;\n  }, t.prototype[\"finally\"] = e, t.all = function (e) {\n    return new t(function (n, t) {\n      function o(e, f) {\n        try {\n          if (f && (\"object\" == _typeof(f) || \"function\" == typeof f)) {\n            var u = f.then;\n            if (\"function\" == typeof u) return void u.call(f, function (n) {\n              o(e, n);\n            }, t);\n          }\n\n          r[e] = f, 0 == --i && n(r);\n        } catch (c) {\n          t(c);\n        }\n      }\n\n      if (!e || \"undefined\" == typeof e.length) throw new TypeError(\"Promise.all accepts an array\");\n      var r = Array.prototype.slice.call(e);\n      if (0 === r.length) return n([]);\n\n      for (var i = r.length, f = 0; r.length > f; f++) {\n        o(f, r[f]);\n      }\n    });\n  }, t.resolve = function (e) {\n    return e && \"object\" == _typeof(e) && e.constructor === t ? e : new t(function (n) {\n      n(e);\n    });\n  }, t.reject = function (e) {\n    return new t(function (n, t) {\n      t(e);\n    });\n  }, t.race = function (e) {\n    return new t(function (n, t) {\n      for (var o = 0, r = e.length; r > o; o++) {\n        e[o].then(n, t);\n      }\n    });\n  }, t._immediateFn = \"function\" == typeof setImmediate && function (e) {\n    setImmediate(e);\n  } || function (e) {\n    c(e, 0);\n  }, t._unhandledRejectionFn = function (e) {\n    void 0 !== console && console && console.warn(\"Possible Unhandled Promise Rejection:\", e);\n  };\n\n  var l = function () {\n    if (\"undefined\" != typeof self) return self;\n    if (\"undefined\" != typeof window) return window;\n    if (\"undefined\" != typeof __webpack_require__.g) return __webpack_require__.g;\n    throw Error(\"unable to locate global object\");\n  }();\n\n  \"Promise\" in l ? l.Promise.prototype[\"finally\"] || (l.Promise.prototype[\"finally\"] = e) : l.Promise = t;\n});\n!function () {\n  var vendors = ['ms', 'moz', 'webkit', 'o'];\n\n  for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\n    window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];\n    window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];\n  }\n\n  if (!window.requestAnimationFrame) window.requestAnimationFrame = function (callback, element) {\n    var id = window.setTimeout(function () {\n      callback(element);\n    }, 1000 / 60);\n    return id;\n  };\n  if (!window.cancelAnimationFrame) window.cancelAnimationFrame = function (id) {\n    clearTimeout(id);\n  };\n}(); //Object\n\n(function () {\n  'use strict';\n\n  var ObjectProto = Object.prototype,\n      defineGetter = ObjectProto.__defineGetter__,\n      defineSetter = ObjectProto.__defineSetter__,\n      lookupGetter = ObjectProto.__lookupGetter__,\n      lookupSetter = ObjectProto.__lookupSetter__,\n      hasOwnProp = ObjectProto.hasOwnProperty;\n  var supportDom = true;\n\n  try {\n    if (Object.defineProperty) {\n      Object.defineProperty(document.createElement('div'), 'theRandomName', {\n        set: function set() {},\n        get: function get() {}\n      });\n    }\n  } catch (error) {\n    supportDom = false;\n  }\n\n  if ((!supportDom || !Object.defineProperty) && defineGetter && defineSetter && lookupGetter && lookupSetter) {\n    var originObjetDefineProperty = Object.defineProperty;\n\n    Object.defineProperty = function (obj, prop, descriptor) {\n      if (!originObjetDefineProperty || typeof obj.nodeType === \"number\" && typeof obj.nodeName === \"string\") {\n        if (arguments.length < 3) {\n          // all arguments required\n          throw new TypeError(\"Arguments not optional\");\n        }\n\n        prop += \"\"; // convert prop to string\n\n        if (hasOwnProp.call(descriptor, \"value\")) {\n          if (!lookupGetter.call(obj, prop) && !lookupSetter.call(obj, prop)) {\n            // data property defined and no pre-existing accessors\n            obj[prop] = descriptor.value;\n          }\n\n          if (hasOwnProp.call(descriptor, \"get\") || hasOwnProp.call(descriptor, \"set\")) {\n            // descriptor has a value prop but accessor already exists\n            throw new TypeError(\"Cannot specify an accessor and a value\");\n          }\n        }\n\n        if (descriptor.get) {\n          defineGetter.call(obj, prop, descriptor.get);\n        }\n\n        if (descriptor.set) {\n          defineSetter.call(obj, prop, descriptor.set);\n        }\n\n        return obj;\n      } else {\n        return originObjetDefineProperty.call(this, obj, prop, descriptor);\n      }\n    };\n\n    var originObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n    Object.getOwnPropertyDescriptor = function (obj, prop) {\n      if (!originObjectGetOwnPropertyDescriptor || typeof obj.nodeType === \"number\" && typeof obj.nodeName === \"string\") {\n        if (arguments.length < 2) {\n          // all arguments required\n          throw new TypeError(\"Arguments not optional.\");\n        }\n\n        prop += \"\"; // convert prop to string\n\n        var descriptor = {\n          configurable: true,\n          enumerable: true,\n          writable: true\n        },\n            getter = lookupGetter.call(obj, prop),\n            setter = lookupSetter.call(obj, prop);\n\n        if (!hasOwnProp.call(obj, prop)) {\n          // property doesn't exist or is inherited\n          return descriptor;\n        }\n\n        if (!getter && !setter) {\n          // not an accessor so return prop\n          descriptor.value = obj[prop];\n          return descriptor;\n        } // there is an accessor, remove descriptor.writable;\n        // populate descriptor.get and descriptor.set (IE's behavior)\n\n\n        delete descriptor.writable;\n        descriptor.get = descriptor.set = undefined;\n\n        if (getter) {\n          descriptor.get = getter;\n        }\n\n        if (setter) {\n          descriptor.set = setter;\n        }\n\n        return descriptor;\n      } else {\n        return originObjectGetOwnPropertyDescriptor(obj, prop);\n      }\n    };\n  }\n\n  if (!supportDom || !Object.getOwnPropertyDescriptors) {\n    Object.getOwnPropertyDescriptors = function (o) {\n      var res = {};\n\n      for (var key in o) {\n        res[key] = Object.getOwnPropertyDescriptor(o, key);\n      }\n\n      return res;\n    };\n  }\n\n  if (!supportDom || !Object.defineProperties) {\n    Object.defineProperties = function (obj, props) {\n      var prop;\n\n      for (prop in props) {\n        if (hasOwnProp.call(props, prop)) {\n          Object.defineProperty(obj, prop, props[prop]);\n        }\n      }\n    };\n  }\n\n  if (typeof Object.assign != 'function') {\n    Object.assign = function (target, varArgs) {\n      'use strict';\n\n      if (target == null) {\n        throw new TypeError('Cannot convert undefined or null to object');\n      }\n\n      var to = Object(target);\n\n      for (var index = 1; index < arguments.length; index++) {\n        var nextSource = arguments[index];\n\n        if (nextSource != null) {\n          for (var nextKey in nextSource) {\n            if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\n              to[nextKey] = nextSource[nextKey];\n            }\n          }\n        }\n      }\n\n      return to;\n    };\n  }\n})(); //string\n\n\n!function () {\n  if (!String.prototype.startsWith) {\n    String.prototype.startsWith = function (searchString, position) {\n      position = position || 0;\n      return this.indexOf(searchString, position) === position;\n    };\n  }\n\n  if (!String.prototype.replaceAll) {\n    String.prototype.replaceAll = function () {\n      var find = arguments[0];\n      if (!find) return this;\n\n      if (typeof find == \"string\") {\n        return this.split(find).join(arguments[1]);\n      } else if (find instanceof RegExp) {\n        return this.replace(new RegExp(find.source, 'g'), arguments[1]);\n      }\n    };\n  }\n}(); //array\n\n!function () {\n  if (!Array.prototype.fill) {\n    Object.defineProperty(Array.prototype, 'fill', {\n      value: function value(_value) {\n        // Steps 1-2.\n        if (this == null) {\n          throw new TypeError('this is null or not defined');\n        }\n\n        var O = Object(this); // Steps 3-5.\n\n        var len = O.length >>> 0; // Steps 6-7.\n\n        var start = arguments[1];\n        var relativeStart = start >> 0; // Step 8.\n\n        var k = relativeStart < 0 ? Math.max(len + relativeStart, 0) : Math.min(relativeStart, len); // Steps 9-10.\n\n        var end = arguments[2];\n        var relativeEnd = end === undefined ? len : end >> 0; // Step 11.\n\n        var _final = relativeEnd < 0 ? Math.max(len + relativeEnd, 0) : Math.min(relativeEnd, len); // Step 12.\n\n\n        while (k < _final) {\n          O[k] = _value;\n          k++;\n        } // Step 13.\n\n\n        return O;\n      }\n    });\n  }\n\n  if (!Array.prototype.some) {\n    Array.prototype.some = function (fun\n    /*, thisp */\n    ) {\n      \"use strict\";\n\n      if (this == null) throw new TypeError();\n      var t = Object(this),\n          len = t.length >>> 0;\n      if (typeof fun != \"function\") throw new TypeError();\n      var thisp = arguments[1];\n\n      for (var i = 0; i < len; i++) {\n        if (i in t && fun.call(thisp, t[i], i, t)) return true;\n      }\n\n      return false;\n    };\n  }\n}(); //function\n\n!function () {\n  if (!Function.prototype.bind) {\n    var ArrayPrototypeSlice = Array.prototype.slice;\n\n    Function.prototype.bind = function (otherThis) {\n      if (typeof this !== 'function') {\n        // closest thing possible to the ECMAScript 5\n        // internal IsCallable function\n        throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n      }\n\n      var baseArgs = ArrayPrototypeSlice.call(arguments, 1),\n          baseArgsLength = baseArgs.length,\n          fToBind = this,\n          fNOP = function fNOP() {},\n          fBound = function fBound() {\n        baseArgs.length = baseArgsLength; // reset to default base arguments\n\n        baseArgs.push.apply(baseArgs, arguments);\n        return fToBind.apply(fNOP.prototype.isPrototypeOf(this) ? this : otherThis, baseArgs);\n      };\n\n      if (this.prototype) {\n        // Function.prototype doesn't have a prototype property\n        fNOP.prototype = this.prototype;\n      }\n\n      fBound.prototype = new fNOP();\n      return fBound;\n    };\n  }\n}();\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Polyfill/polyfill.js?");

/***/ }),

/***/ "./node_modules/absol/src/Print/PaperPrinter.js":
/*!******************************************************!*\
  !*** ./node_modules/absol/src/Print/PaperPrinter.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _XLoader = __webpack_require__(/*! ../Network/XLoader */ \"./node_modules/absol/src/Network/XLoader.js\");\n\nvar _Color = _interopRequireDefault(__webpack_require__(/*! ../Color/Color */ \"./node_modules/absol/src/Color/Color.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! ../HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nvar _Vec = _interopRequireDefault(__webpack_require__(/*! ../Math/Vec2 */ \"./node_modules/absol/src/Math/Vec2.js\"));\n\nvar _Rectangle = _interopRequireDefault(__webpack_require__(/*! ../Math/Rectangle */ \"./node_modules/absol/src/Math/Rectangle.js\"));\n\nvar _generator = __webpack_require__(/*! ../JSMaker/generator */ \"./node_modules/absol/src/JSMaker/generator.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar fontIdOf = function fontIdOf(fontName) {\n  if (fontName.toLowerCase().indexOf('arial') >= 0) return 'arial';\n  if (fontName.toLowerCase().indexOf('times') >= 0) return 'times';\n  if (fontName === \"Material Design Icons\") return 'MDI_6_7_96';\n  return fontName;\n};\n\nvar P2D = 72 / 96;\n\nvar color2RGB255 = function color2RGB255(color) {\n  try {\n    color = _Color[\"default\"].parse(color + '');\n    return color.rgba.slice(0, 3).map(function (x) {\n      return x * 255 >> 0;\n    });\n  } catch (e) {\n    return null;\n  }\n};\n\nfunction PaperPrinter(opt) {\n  var _this = this;\n\n  this.opt = Object.assign((0, _generator.copyJSVariable)(this.defaultOptions), opt);\n  this.objects = [];\n  this.processInfo = {\n    state: \"STAND_BY\"\n  };\n  this.subDocs = null;\n  this.pdfDoc = null;\n  this.pageFormat = null;\n  this.computedPages = 0;\n  this.sync = this.ready().then(function () {\n    _this.processInfo.state = 'READY';\n  });\n}\n\nPaperPrinter.prototype.defaultOptions = {\n  size: 'a4',\n  margin: {\n    top: 57,\n    left: 57,\n    bottom: 57,\n    right: 57\n  },\n  footer: null,\n  header: null,\n  paddingEven: true,\n  lastPagePaddingEven: false\n};\nPaperPrinter.prototype.share = {\n  jsPDFUrl: 'https://absol.cf/vendor/jspdf.umd.js',\n  jsPDF: null,\n  readySync: null,\n  fonts: [{\n    url: 'https://absol.cf/vendor/fonts/arial.ttf',\n    fileName: 'arial.ttf',\n    name: 'arial',\n    style: 'normal'\n  }, {\n    url: 'https://absol.cf/vendor/fonts/arialbd.ttf',\n    fileName: 'arialbd.ttf',\n    name: 'arial',\n    style: 'bold'\n  }, {\n    url: 'https://absol.cf/vendor/fonts/ariali.ttf',\n    fileName: 'ariali.ttf',\n    name: 'arial',\n    style: 'italic'\n  }, {\n    url: 'https://absol.cf/vendor/fonts/arialbi.ttf',\n    fileName: 'arialbi.ttf',\n    name: 'arial',\n    style: 'bold_italic'\n  }, {\n    url: 'https://absol.cf/vendor/fonts/times.ttf',\n    fileName: 'times.ttf',\n    name: 'times',\n    style: 'normal'\n  }, {\n    url: 'https://absol.cf/vendor/fonts/timesbd.ttf',\n    fileName: 'timesbd.ttf',\n    name: 'times',\n    style: 'bold'\n  }, {\n    url: 'https://absol.cf/vendor/fonts/timesi.ttf',\n    fileName: 'timesi.ttf',\n    name: 'times',\n    style: 'italic'\n  }, {\n    url: 'https://absol.cf/vendor/fonts/timesbi.ttf',\n    fileName: 'timesbi.ttf',\n    name: 'times',\n    style: 'bold_italic'\n  }]\n};\n\nPaperPrinter.prototype.ready = function () {\n  var _this2 = this;\n\n  var sync;\n\n  if (!this.share.readySync) {\n    sync = this.share.fonts.map(function (font) {\n      return fetch(font.url).then(function (res) {\n        return res.blob();\n      }).then(function (blob) {\n        var reader = new window.FileReader();\n        return new Promise(function (rs) {\n          reader.onload = function () {\n            rs(this.result);\n          };\n\n          reader.readAsDataURL(blob);\n        });\n      }).then(function (b64Url) {\n        var idx = b64Url.indexOf('base64,');\n        return b64Url.substring(idx + 'base64,'.length);\n      }).then(function (b64) {\n        font.content = b64;\n      });\n    });\n\n    if (window.jspdf) {\n      this.share.jsPDF = window.jspdf.jsPDF;\n    } else {\n      sync.push((0, _XLoader.loadScript)(this.share.jsPDFUrl).then(function () {\n        _this2.share.jsPDF = window.jspdf.jsPDF;\n      }));\n    }\n\n    this.share.readySync = Promise.all(sync);\n  }\n\n  return this.share.readySync;\n};\n/***\r\n *\r\n * @param at\r\n * @param opt\r\n */\n\n\nPaperPrinter.prototype.addSubDocument = function (at, opt) {\n  this.objects.push({\n    type: 'sub_document',\n    at: at,\n    opt: opt\n  });\n};\n/***\r\n *\r\n * @param {string} text\r\n * @param {Vec2 | Rectangle} pos\r\n * @param {Object=}style\r\n */\n\n\nPaperPrinter.prototype.text = function (text, pos, style) {\n  this.objects.push({\n    type: 'text',\n    pos: pos,\n    text: text,\n    style: style || {}\n  });\n  return this;\n};\n/***\r\n *\r\n * @param {string} text\r\n * @param {Vec2} start\r\n * @param {Vec2} end\r\n * @param {Object=}style\r\n */\n\n\nPaperPrinter.prototype.line = function (start, end, style) {\n  this.objects.push({\n    type: 'line',\n    start: start,\n    end: end,\n    style: style || {}\n  });\n  return this;\n};\n/***\r\n *\r\n * @param {Vec2} at\r\n * @param {boolean=} paddingEven\r\n */\n\n\nPaperPrinter.prototype.pageBreak = function (at, paddingEven) {\n  this.objects.push({\n    type: 'page_break',\n    at: at,\n    paddingEven: !!paddingEven\n  });\n  return this;\n};\n/***\r\n *\r\n * @param {Rectangle}rect\r\n * @param {Object=}style\r\n */\n\n\nPaperPrinter.prototype.rect = function (rect, style) {\n  this.objects.push({\n    type: 'rect',\n    rect: rect,\n    style: style || {}\n  });\n};\n/***\r\n *\r\n * @param {HTMLCanvasElement|AElement |Image} image\r\n * @param {Rectangle}rect\r\n * @param {Object=}style\r\n */\n\n\nPaperPrinter.prototype.image = function (image, rect, style) {\n  this.objects.push({\n    type: 'image',\n    rect: rect,\n    style: style || {},\n    image: image\n  });\n  return this;\n};\n\nPaperPrinter.prototype.boundOf = function (objectData) {\n  return this.measures[objectData.type](objectData);\n};\n\nPaperPrinter.prototype.computeObjects = function () {\n  var _this3 = this;\n\n  var objects = this.objects.slice();\n\n  if (!objects[0] || objects[0].type !== 'sub_document') {\n    objects.unshift({\n      type: 'sub_document',\n      at: _Vec[\"default\"].ZERO\n    });\n  }\n\n  this.subDocs = objects.reduce(function (ac, obj) {\n    switch (obj.type) {\n      case 'sub_document':\n        ac.push({\n          objects: [obj]\n        });\n        break;\n\n      default:\n        ac[ac.length - 1].objects.push(obj);\n        break;\n    }\n\n    return ac;\n  }, []);\n  this.subDocs.forEach(function (doc, i) {\n    doc.objects.forEach(function (o, i) {\n      o.idx = i;\n      o.bound = _this3.boundOf(o);\n    });\n    var newDocCmd = doc.objects.shift();\n    doc.objects.sort(function (a, b) {\n      return a.bound.y - b.bound.y;\n    });\n    doc.opt = Object.assign((0, _generator.copyJSVariable)(_this3.opt), newDocCmd.opt || {});\n    doc.objects.unshift(newDocCmd);\n    doc.startPage = i > 0 ? _this3.subDocs[i - 1].startPage + _this3.subDocs[i - 1].pages.length : _this3.computedPages;\n    if (_this3.opt.paddingEven && doc.startPage % 2 > 0) doc.startPage++;\n    var pageContentHeight = 1123 - doc.opt.margin.top - doc.opt.margin.bottom;\n    doc.pages = doc.objects.reduce(function (ac, cr) {\n      var page = ac[ac.length - 1];\n\n      if (cr.bound.height > pageContentHeight) {\n        page.object.push(cr);\n      } else {\n        if (cr.bound.y + cr.bound.height - page.y > pageContentHeight || cr.type === 'page_break') {\n          page = {\n            y: cr.bound.y,\n            objects: [cr]\n          };\n          ac.push(page);\n        } else {\n          page.objects.push(cr);\n        }\n      }\n\n      return ac;\n    }, [{\n      objects: [],\n      y: 0\n    }]);\n    doc.pages.forEach(function (page) {\n      return page.objects.sort(function (a, b) {\n        return a.idx - b.idx;\n      });\n    });\n    _this3.computedPages = doc.startPage + doc.pages.length;\n  });\n};\n\nPaperPrinter.prototype.getDoc = function () {\n  var _this4 = this;\n\n  if (this.docSync) return this.docSync;\n  this.docSync = this.sync.then(function () {\n    if (_this4.pdfDoc) return _this4.pdfDoc;\n    var jsPDF = jspdf.jsPDF;\n    _this4.pdfDoc = new jsPDF({\n      orientation: 'p',\n      unit: 'px',\n      format: 'a4',\n      putOnlyUsedFonts: true,\n      floatPrecision: 16,\n      dpi: 300,\n      hotfixes: [\"px_scaling\"]\n    });\n\n    _this4.share.fonts.forEach(function (font) {\n      _this4.pdfDoc.addFileToVFS(font.fileName, font.content);\n\n      _this4.pdfDoc.addFont(font.fileName, font.name, font.style);\n    });\n\n    return _this4.pdfDoc;\n  });\n  this.sync = this.docSync;\n  return this.docSync;\n};\n\nPaperPrinter.prototype.flush = function () {\n  var _this5 = this;\n\n  this.sync = this.getDoc().then(function (pdfDoc) {\n    _this5.computeObjects();\n\n    var subDocs = _this5.subDocs;\n    _this5.subDocs = null; //reset\n\n    var onProcess = _this5.opt.onProcess;\n    var processInfo = _this5.processInfo;\n    processInfo.pdf = {\n      all: subDocs.reduce(function (ac, sD) {\n        return ac + sD.objects.length;\n      }, 0),\n      done: 0\n    };\n\n    processInfo.onProcess = function () {\n      onProcess && onProcess(processInfo);\n    };\n\n    processInfo.state = 'RENDER_PDF';\n    return subDocs.reduce(function (sync, doc, i) {\n      return sync.then(function () {\n        var startPage = doc.startPage;\n\n        while (pdfDoc.getNumberOfPages() <= startPage) {\n          pdfDoc.addPage();\n        }\n\n        return doc.pages.reduce(function (docSync, page, i) {\n          return docSync.then(function () {\n            if (pdfDoc.getNumberOfPages() <= startPage + i) {\n              pdfDoc.addPage();\n            }\n\n            pdfDoc.setPage(startPage + i + 1);\n            page.O = new _Vec[\"default\"](_this5.opt.margin.left, _this5.opt.margin.top - page.y);\n            return page.objects.reduce(function (pageSync, obj) {\n              return pageSync.then(function () {\n                var type = obj.type;\n\n                var res = _this5.pdfHandlers[type](page, pdfDoc, obj);\n\n                processInfo.pdf.done++;\n\n                if (res && res.then) {\n                  res.then(function () {\n                    return processInfo.onProcess();\n                  });\n                }\n\n                return res;\n              });\n            }, Promise.resolve()).then(function () {\n              pdfDoc.setTextColor(0, 0, 0);\n              pdfDoc.setFontSize(14 * P2D);\n              pdfDoc.setFont('arial', 'normal');\n              pdfDoc.text(i + 1 + '/' + doc.pages.length, 794 - 25, 1123 - 25, {\n                align: 'right'\n              });\n\n              if (typeof doc.opt.footer === 'string') {\n                pdfDoc.text(doc.opt.footer, 25, 1123 - 25, {\n                  align: 'left'\n                });\n              }\n            });\n          });\n        }, Promise.resolve()).then(function () {\n          if (_this5.opt.lastPagePaddingEven) {\n            while (pdfDoc.getNumberOfPages() % 2 > 0) {\n              pdfDoc.addPage();\n            }\n          }\n        });\n      });\n    }, Promise.resolve());\n  });\n  return this.sync;\n};\n\nPaperPrinter.prototype.exportAsPDF = function () {\n  var _this6 = this;\n\n  return this.flush().then(function () {\n    return _this6.pdfDoc;\n  });\n};\n\nPaperPrinter.prototype.pdfHandlers = {\n  text: function text(context, doc, data) {\n    var fontFamily = data.style.fontFamily;\n    var lineHeight = data.style.lineHeight || 1.2;\n    var color = color2RGB255(data.style.color) || [0, 0, 0];\n    doc.setTextColor(color[0], color[1], color[2]);\n    var fontSize = data.style.fontSize || 14;\n    var textPos = data.pos.A().add(context.O);\n    doc.setLineHeightFactor(lineHeight);\n    doc.setFontSize(fontSize * P2D);\n    doc.setFont(fontIdOf(fontFamily), data.style.fontStyle);\n    var style = {\n      baseline: 'top',\n      maxWidth: data.pos.width\n    };\n\n    if (data.style.align) {\n      //todo: check align\n      style.align = {\n        start: 'left',\n        end: 'right',\n        center: 'center'\n      }[data.style.align] || 'left';\n    }\n\n    doc.text(data.text, textPos.x, textPos.y + fontSize * (lineHeight - 1) / 2, style);\n  },\n  rect: function rect(context, doc, data) {\n    var fillColor = null;\n    var strokeColor = null;\n    var strokeWidth = data.style.strokeWidth || 1;\n    var rounded = data.style.rounded;\n    if (typeof rounded === \"number\") rounded = [rounded, rounded];\n\n    if (data.style.fill) {\n      fillColor = color2RGB255(data.style.fill);\n    }\n\n    if (data.style.stroke) {\n      strokeColor = color2RGB255(data.style.stroke);\n    }\n\n    if (fillColor) doc.setFillColor(fillColor[0], fillColor[1], fillColor[2]);\n\n    if (strokeColor) {\n      doc.setLineWidth(strokeWidth);\n      doc.setDrawColor(strokeColor[0], strokeColor[1], strokeColor[2]);\n    }\n\n    var flat = 'F';\n    if (strokeColor && fillColor) flat = 'FD';else if (strokeColor) flat = 'S';else if (fillColor) flat = 'F';else return;\n    var O = context.O;\n    var A = data.rect.A().add(O);\n\n    if (rounded) {\n      doc.roundedRect(A.x, A.y, data.rect.width, data.rect.height, rounded[0], rounded[1], flat);\n    } else {\n      doc.rect(A.x, A.y, data.rect.width, data.rect.height, flat);\n    }\n  },\n  line: function line(context, doc, data) {\n    var fillColor = null;\n    var strokeColor = null;\n    var strokeWidth = data.style.strokeWidth || 1;\n\n    if (data.style.stroke) {\n      strokeColor = color2RGB255(data.style.stroke);\n    }\n\n    if (strokeColor) {\n      doc.setLineWidth(strokeWidth);\n      doc.setDrawColor(strokeColor[0], strokeColor[1], strokeColor[2]);\n    }\n\n    var flat = 'S';\n    var O = context.O;\n    var A = data.start.add(O);\n    var B = data.end.add(O);\n    doc.line(A.x, A.y, B.x, B.y, flat);\n  },\n  image: function image(context, doc, data) {\n    var handleImage = function handleImage(image) {\n      if (!image) return;\n      var rect = data.rect.clone();\n      rect.x += context.O.x;\n      rect.y += context.O.y;\n      doc.addImage(image, 'PNG', rect.x, rect.y, rect.width, rect.height);\n    };\n\n    if (data.image.then) {\n      return data.image.then(handleImage)[\"catch\"](function (err) {});\n    } else return handleImage(data.image);\n  },\n  page_break: function page_break(context, doc, data) {},\n  sub_document: function sub_document(context, doc, data) {}\n};\nPaperPrinter.prototype.measures = {\n  sub_document: function sub_document(data) {\n    return new _Rectangle[\"default\"](0, 0, 0, 0);\n  },\n  rect: function rect(data) {\n    return data.rect;\n  },\n  text: function text(data) {\n    return data.pos;\n  },\n  image: function image(data) {\n    return data.rect;\n  },\n  line: function line(data) {\n    return _Rectangle[\"default\"].boundingPoints([data.start, data.end]);\n  },\n  page_break: function page_break(data) {\n    return new _Rectangle[\"default\"](0, data.at.y, 0, 0);\n  }\n};\nvar _default = PaperPrinter;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Print/PaperPrinter.js?");

/***/ }),

/***/ "./node_modules/absol/src/Print/PrintSerialHandlers.js":
/*!*************************************************************!*\
  !*** ./node_modules/absol/src/Print/PrintSerialHandlers.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.computePrintAttr = computePrintAttr;\nexports[\"default\"] = void 0;\nexports.getComputedStyleCache = getComputedStyleCache;\nexports.getComputedStyleValueCache = getComputedStyleValueCache;\n\nvar _Rectangle = _interopRequireDefault(__webpack_require__(/*! ../Math/Rectangle */ \"./node_modules/absol/src/Math/Rectangle.js\"));\n\nvar _Svg = _interopRequireWildcard(__webpack_require__(/*! ../HTML5/Svg */ \"./node_modules/absol/src/HTML5/Svg.js\"));\n\nvar _Dom = _interopRequireWildcard(__webpack_require__(/*! ../HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _attribute = __webpack_require__(/*! ../JSX/attribute */ \"./node_modules/absol/src/JSX/attribute.js\");\n\nvar _XLoader = __webpack_require__(/*! ../Network/XLoader */ \"./node_modules/absol/src/Network/XLoader.js\");\n\nvar _noop = _interopRequireDefault(__webpack_require__(/*! ../Code/noop */ \"./node_modules/absol/src/Code/noop.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _ = _Dom[\"default\"].ShareInstance._;\nvar $ = _Dom[\"default\"].ShareInstance.$;\nvar $$ = _Dom[\"default\"].ShareInstance.$$;\n/***\r\n *\r\n * @param {AElement|HTMLElement} elt\r\n * @param {string=} ps\r\n * @return {*}\r\n */\n\nfunction getComputedStyleCache(elt, ps) {\n  ps = ps || '';\n  var key = '__computedStyleCache__' + ps;\n  if (elt[key]) return elt[key];\n  elt[key] = ps ? getComputedStyle(elt, ps) : getComputedStyle(elt);\n  return elt[key];\n}\n/***\r\n *\r\n * @param {AElement|HTMLElement} elt\r\n * @param {string} pName\r\n * @return {string}\r\n */\n\n\nfunction getComputedStyleValueCache(elt, pName) {\n  return getComputedStyleCache(elt).getPropertyValue(pName);\n}\n\nfunction computePrintAttr(elt) {\n  var style = getComputedStyleCache(elt);\n  var fontSize = elt.getFontSize();\n  var lineHeight = style.getPropertyValue('line-height');\n  if (lineHeight === 'normal') lineHeight = 1.2;else lineHeight = parseFloat(lineHeight.replace('px', '')) / fontSize;\n  if (!isNaN(lineHeight)) lineHeight = 1.2;\n  var fontWeight = style.getPropertyValue('font-weight');\n  var fontStyle = fontWeight === '400' ? 'normal' : 'bold';\n  var dirs = ['top', 'right', 'bottom', 'left'];\n  var paddingStyle = dirs.map(function (dir) {\n    return (0, _attribute.parseMeasureValue)(style.getPropertyValue('padding-' + dir));\n  });\n  var borderWidthStyle = dirs.map(function (dir) {\n    return (0, _attribute.parseMeasureValue)(style.getPropertyValue('border-' + dir + '-width'));\n  });\n\n  var contentBound = _Rectangle[\"default\"].fromClientRect(elt.getBoundingClientRect());\n\n  contentBound.x += paddingStyle[3].value + borderWidthStyle[3].value;\n  contentBound.y += paddingStyle[0].value + borderWidthStyle[0].value;\n  contentBound.width += paddingStyle[1].value + borderWidthStyle[1].value + paddingStyle[3].value + borderWidthStyle[3].value;\n  contentBound.height += paddingStyle[2].value + borderWidthStyle[2].value + paddingStyle[0].value + borderWidthStyle[0].value;\n  return {\n    contentBound: contentBound,\n    whiteSpace: style.getPropertyValue('white-space'),\n    style: {\n      color: style.getPropertyValue('color'),\n      fontFamily: style.getPropertyValue('font-family'),\n      fontStyle: fontStyle,\n      lineHeight: lineHeight,\n      fontSize: fontSize,\n      align: style.getPropertyValue('text-align')\n    }\n  };\n}\n/***\r\n *\r\n * @type {PSHandler[]}\r\n */\n\n\nvar PrintSerialHandlers = [];\nPrintSerialHandlers.push({\n  id: 'TextNode',\n  match: function match(elt) {\n    return elt.nodeType === Node.TEXT_NODE;\n  },\n  exec: function exec(printer, text, scope, stack, accept) {\n    var O = printer.O;\n    var elt = text.parentElement;\n\n    var bound = _Rectangle[\"default\"].fromClientRect((0, _Dom.getTextNodeBound)(text));\n\n    if (bound.width === 0) return;\n    var printAttr = computePrintAttr(elt);\n    var txt = text.data;\n    var y = -Infinity;\n    var c;\n    var range;\n    var parts = [];\n    var cPart;\n    var j;\n    var delta = printAttr.style.lineHeight * printAttr.style.fontSize / 3;\n    var rect;\n    var i = 0;\n\n    while (i < txt.length) {\n      c = txt[i];\n\n      if (!c.match(/[\\s\\n]/)) {\n        j = i + 1;\n\n        while (j < txt.length) {\n          c = txt[j];\n\n          if (c.match(/[\\s\\n]/)) {\n            break;\n          } else {\n            ++j;\n          }\n        }\n\n        range = document.createRange();\n        range.setStart(text, i);\n        range.setEnd(text, j);\n        rect = _Rectangle[\"default\"].fromClientRect(range.getBoundingClientRect());\n\n        if (Math.abs(rect.y - y) < delta) {\n          cPart.end = j;\n          cPart.rect = cPart.rect.merge(rect);\n        } else {\n          cPart = {\n            start: i,\n            end: j,\n            rect: rect\n          };\n          y = rect.y;\n          parts.push(cPart);\n        }\n\n        i = j;\n      } else {\n        ++i;\n      }\n    }\n\n    parts.forEach(function (part) {\n      rect = part.rect;\n      rect.x -= O.x;\n      rect.y -= O.y;\n      rect.width += printAttr.style.fontSize * 1000;\n      var lineTxt = txt.substring(part.start, part.end);\n\n      if (printAttr.whiteSpace === 'normal') {\n        lineTxt = lineTxt.replace(/[\\s\\n]+/g, ' ');\n      }\n\n      delete printAttr.style.align; //text-node bound\n\n      printer.text(lineTxt, rect, printAttr.style);\n    });\n  }\n});\nPrintSerialHandlers.push({\n  id: 'Border',\n  match: function match(elt, scope, stack) {\n    if (scope.isDeclared('borderStyle')) return false;\n    var style = getComputedStyleCache(elt);\n    var borderColor = style.getPropertyValue('border-color');\n    var borderStyle = style.getPropertyValue('border-style');\n    var borderWidth = style.getPropertyValue('border-width');\n    var borderRadius = style.getPropertyValue('border-radius');\n    if (borderStyle === 'none' || borderWidth === '0px') return false;\n    scope.declare('borderStyle', {\n      width: parseFloat(borderWidth.replace('px', '')),\n      radius: (0, _attribute.parseMeasureValue)(borderRadius),\n      color: borderColor\n    });\n    return true;\n  },\n  exec: function exec(printer, elt, scope, stack, accept) {\n    var borderStyle = scope.get('borderStyle');\n\n    var bound = _Rectangle[\"default\"].fromClientRect(elt.getBoundingClientRect());\n\n    var rect = bound.clone();\n    var strokeWidth = borderStyle.width;\n\n    if (elt.tagName === 'TD' || elt.tagName === 'TH') {\n      rect.x -= printer.O.x;\n      rect.y -= printer.O.y;\n    } else {\n      rect.x -= printer.O.x - strokeWidth / 2;\n      rect.y -= printer.O.y - strokeWidth / 2;\n      rect.width -= strokeWidth;\n      rect.height -= strokeWidth;\n    }\n\n    var radius = borderStyle.radius;\n    var rounded;\n\n    if (radius) {\n      switch (radius.unit) {\n        case '%':\n          rounded = [radius.value * rect.width / 100, radius.value * rect.height / 100];\n          break;\n\n        case 'px':\n          rounded = radius.value;\n          break;\n      }\n    }\n\n    printer.rect(rect, {\n      stroke: borderStyle.color,\n      rounded: rounded,\n      strokeWidth: strokeWidth\n    });\n    return true;\n  }\n});\nPrintSerialHandlers.push({\n  id: 'BackgroundImage',\n  match: function match(elt, scope, stack) {\n    return elt.getComputedStyleValue('background-image') !== 'none';\n  },\n  exec: function exec(printer, elt, scope, stack, accept) {\n    var style = getComputedStyleCache(elt);\n    var backgroundSize = style.getPropertyValue('background-size');\n    var url = style.getPropertyValue('background-image').trim().replace('url(\"', '').replace('\")', '');\n\n    var rect = _Rectangle[\"default\"].fromClientRect(elt.getBoundingClientRect());\n\n    rect.x -= printer.O.x;\n    rect.y -= printer.O.y;\n    var borderRadius = ['top-left', 'top-right', 'bottom-right', 'bottom-left'].map(function (key) {\n      return (0, _attribute.parseMeasureValue)(style.getPropertyValue('border-' + key + '-radius'));\n    });\n    var image = (0, _XLoader.isImageURLAllowCrossOrigin)(url).then(function (result) {\n      /***\r\n       *\r\n       * @type {HTMLCanvasElement}\r\n       */\n      var canvas = document.createElement('canvas');\n      var width = rect.width;\n      var height = rect.height;\n      canvas.width = width;\n      canvas.height = height;\n      var image = new Image();\n      image.crossOrigin = 'anonymous';\n      image.src = result ? url : 'https://absol.cf/crossdownload.php?file=' + encodeURIComponent(url);\n      var ctx = canvas.getContext('2d');\n      var isRect = borderRadius.every(function (x) {\n        return x.value === 0;\n      });\n      var x, y, r;\n      var eclipses = [];\n      var points = [];\n\n      if (!isRect) {\n        r = borderRadius[0];\n        x = r.unit === '%' ? r.value / 100 * width : r.value;\n        y = 0;\n        points.push([x, y]);\n        r = borderRadius[1];\n        x = r.unit === '%' ? (1 - r.value / 100) * width : width - r.value;\n        points.push([x, y]);\n\n        if (r.value > 0) {\n          y = r.unit === '%' ? r.value / 100 * height : r.value;\n          eclipses.push([x, y, width - x, y, 0, -Math.PI / 2, 0]);\n          x = width;\n          points.push([x, y]);\n        } else {\n          x = width;\n        }\n\n        r = borderRadius[2];\n        y = r.unit === '%' ? (1 - r.value / 100) * height : height - r.value;\n        points.push([x, y]);\n\n        if (r.value > 0) {\n          x = r.unit === '%' ? (1 - r.value / 100) * width : width - r.value;\n          eclipses.push([x, y, width - x, height - y, 0, 0, Math.PI / 2]);\n          y = height;\n          points.push([x, y]);\n        } else {\n          y = height;\n        }\n\n        r = borderRadius[3];\n        x = r.unit === '%' ? r.value / 100 * width : r.value;\n        points.push([x, y]);\n\n        if (r.value > 0) {\n          y = r.unit === '%' ? (1 - r.value / 100) * height : height - r.value;\n          eclipses.push([x, y, x, height - y, 0, Math.PI / 2, Math.PI]);\n          x = 0;\n          points.push([x, y]);\n        } else {\n          x = 0;\n        }\n\n        r = borderRadius[0];\n        y = r.unit === '%' ? r.value / 100 * height : r.value;\n        points.push([x, y]);\n\n        if (r.value > 0) {\n          x = r.unit === '%' ? r.value / 100 * width : r.value;\n          eclipses.push([x, y, x, y, 0, Math.PI, Math.PI * 3 / 2]);\n        }\n\n        ctx.beginPath();\n        points.forEach(function (p, i) {\n          if (i === 0) ctx.moveTo(p[0], p[1]);else ctx.lineTo(p[0], p[1]);\n        });\n        ctx.closePath();\n        ctx.fillStyle = 'red';\n        ctx.fill();\n        eclipses.forEach(function (e) {\n          ctx.beginPath();\n          ctx.ellipse(e[0], e[1], e[2], e[3], e[4], e[5], e[6]);\n          ctx.fill();\n        });\n        ctx.globalCompositeOperation = 'source-in';\n      }\n\n      return new Promise(function (rs) {\n        image.onload = function () {\n          var scale;\n          var nW;\n          var nH; //todo: handle more\n\n          switch (backgroundSize) {\n            case 'cover':\n              scale = Math.max(width / image.naturalWidth, height / image.height);\n              nW = image.naturalWidth * scale;\n              nH = image.naturalHeight * scale;\n              ctx.drawImage(image, 0, 0, nW, nH);\n              break;\n\n            case 'auto':\n            default:\n              ctx.drawImage(image, 0, 0);\n          }\n\n          rs(canvas);\n        };\n\n        image.onerror = function () {\n          console.error('can not load ', image.src);\n          rs(null);\n        };\n      });\n    })[\"catch\"](function (err) {\n      console.error(err);\n    });\n    printer.image(image, rect);\n    return true;\n  }\n});\nPrintSerialHandlers.push({\n  id: 'BreakInside',\n  match: function match(elt, scope, stack) {\n    return getComputedStyleValueCache(elt, 'break-inside') === 'avoid';\n  },\n  exec: function exec(printer, elt, scope, stack, accept) {\n    var rect = _Rectangle[\"default\"].fromClientRect(elt.getBoundingClientRect());\n\n    rect.x -= printer.O.x;\n    rect.y -= printer.O.y;\n    printer.rect(rect, {});\n    return true;\n  }\n});\nPrintSerialHandlers.push({\n  id: 'MDI_FA',\n  match: function match(elt, scope, stack) {\n    return elt.classList && (elt.classList.contains('mdi') || elt.classList.contains('fab') || elt.classList.contains('far') || elt.classList.contains('fas') || elt.classList.contains('material-icons'));\n  },\n  exec: function exec(printer, elt, scope, stack, accept) {\n    var style = elt.classList.contains('material-icons') ? getComputedStyleCache(elt) : getComputedStyleCache(elt, '::before');\n    var content = elt.classList.contains('material-icons') ? elt.innerHTML : style.getPropertyValue('content');\n    content = content.replace('\"', '');\n    var font = style.getPropertyValue('font');\n\n    var rect = _Rectangle[\"default\"].fromClientRect(elt.getBoundingClientRect());\n\n    if (rect.width * rect.height === 0) return;\n    var canvas = document.createElement('canvas');\n    canvas.width = rect.width;\n    canvas.height = rect.height;\n    var ctx = canvas.getContext('2d');\n    ctx.font = font;\n    ctx.textBaseline = \"top\";\n    rect.x -= printer.O.x;\n    rect.y -= printer.O.y;\n    ctx.fillStyle = style.getPropertyValue('color');\n    ctx.fillText(content, 0, 0);\n    printer.image(canvas, rect);\n  }\n});\nPrintSerialHandlers.push({\n  id: 'Img',\n  match: function match(elt) {\n    return elt.tagName && elt.tagName.toLowerCase() === 'img' && elt.src && elt.naturalWidth;\n  },\n  exec: function exec(printer, elt, scope, stack, accept) {\n    var bound = _Rectangle[\"default\"].fromClientRect(elt.getBoundingClientRect());\n\n    if (bound.width === 0) return;\n    var rect = bound.clone();\n    rect.x -= printer.O.x;\n    rect.y -= printer.O.y;\n    printer.image(elt, rect);\n  }\n});\nPrintSerialHandlers.push({\n  id: 'Canvas',\n  match: function match(elt) {\n    return elt.tagName && elt.tagName.toLowerCase() === 'canvas';\n  },\n  exec: function exec(printer, elt, scope, stack, accept) {\n    var bound = _Rectangle[\"default\"].fromClientRect(elt.getBoundingClientRect());\n\n    if (bound.width === 0) return;\n    var rect = bound.clone();\n    rect.x -= printer.O.x;\n    rect.y -= printer.O.y;\n    printer.image(elt, rect);\n  }\n});\nPrintSerialHandlers.push({\n  id: 'SVG',\n  match: function match(elt) {\n    return elt.tagName && elt.tagName.toLowerCase() === 'svg';\n  },\n  exec: function exec(printer, elt, scope, stack, accept) {\n    var bound = _Rectangle[\"default\"].fromClientRect(elt.getBoundingClientRect());\n\n    if (bound.width === 0) return;\n    var rect = bound.clone();\n    rect.x -= printer.O.x;\n    rect.y -= printer.O.y;\n\n    var res = _Svg[\"default\"].svgToCanvas(elt.__origin__)[\"catch\"](function (err) {\n      console.error(err);\n    });\n\n    res.elt = elt;\n    printer.image(res, rect);\n  }\n});\nPrintSerialHandlers.push({\n  id: 'TextInput',\n  match: function match(elt, scope, stack) {\n    return elt.tagName === 'INPUT' && (elt.attr('type') === 'text' || elt.attr('type') === 'number' || !elt.attr('type'));\n  },\n  exec: function exec(printer, elt, scope, stack, accept) {\n    var O = printer.O;\n    var style = getComputedStyleCache(elt);\n    var paddingLeft = (0, _attribute.parseMeasureValue)(style.getPropertyValue('padding-left'));\n    var paddingTop = (0, _attribute.parseMeasureValue)(style.getPropertyValue('padding-top'));\n    var paddingBottom = (0, _attribute.parseMeasureValue)(style.getPropertyValue('padding-bottom'));\n    var borderLeftWidth = (0, _attribute.parseMeasureValue)(style.getPropertyValue('border-left-width'));\n    var borderTopWidth = (0, _attribute.parseMeasureValue)(style.getPropertyValue('border-top-width'));\n    var borderBottomWidth = (0, _attribute.parseMeasureValue)(style.getPropertyValue('border-top-width'));\n\n    var rect = _Rectangle[\"default\"].fromClientRect(elt.getBoundingClientRect());\n\n    var fontSize = elt.getFontSize();\n    var lineHeight = style.getPropertyValue('line-height');\n    if (lineHeight === 'normal') lineHeight = 1.2;else lineHeight = parseFloat(lineHeight.replace('px', '')) / fontSize;\n    if (!isNaN(lineHeight)) lineHeight = 1.2;\n    var fontWeight = style.getPropertyValue('font-weight');\n    var fontStyle = fontWeight === '400' ? 'normal' : 'bold';\n    rect.width = 700;\n    rect.x += borderLeftWidth.value + paddingLeft.value - O.x;\n    rect.height -= borderTopWidth.value + borderBottomWidth.value + paddingTop.value + paddingBottom.value;\n    rect.y += borderTopWidth.value + paddingTop.value - O.y;\n    var centerY = rect.centerPoint().y;\n    rect.y = centerY - fontSize * lineHeight / 2;\n    rect.height = fontSize * lineHeight;\n    printer.text(elt.value, rect, {\n      fontFamily: style.getPropertyValue('font-family'),\n      fontStyle: fontStyle,\n      fontSize: fontSize,\n      lineHeight: lineHeight\n    });\n  }\n});\nPrintSerialHandlers.push({\n  id: 'BreakPage',\n  match: function match(elt) {\n    return elt.hasClass && elt.hasClass('as-page-break');\n  },\n  exec: function exec(printer, elt, scope, stack, accept) {\n    var rect = _Rectangle[\"default\"].fromClientRect(elt.getBoundingClientRect());\n\n    rect.x -= printer.O.x;\n    rect.y -= printer.O.y;\n    printer.pageBreak(rect.A());\n  }\n});\nPrintSerialHandlers.push({\n  id: '*',\n  match: function match() {\n    return true;\n  },\n  exec: function exec(printer, elt, scope, stack, accept) {\n    if (elt.getComputedStyleValue('display') === 'none') return;\n\n    if (elt.childNodes) {\n      Array.prototype.forEach.call(elt.childNodes, function (child) {\n        return accept(child);\n      });\n    }\n  }\n});\nvar _default = PrintSerialHandlers;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Print/PrintSerialHandlers.js?");

/***/ }),

/***/ "./node_modules/absol/src/Print/PrintSerializer.js":
/*!*********************************************************!*\
  !*** ./node_modules/absol/src/Print/PrintSerializer.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _VarScope = _interopRequireDefault(__webpack_require__(/*! ../AppPattern/VarScope */ \"./node_modules/absol/src/AppPattern/VarScope.js\"));\n\nvar _Dom = _interopRequireWildcard(__webpack_require__(/*! ../HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _Rectangle = _interopRequireDefault(__webpack_require__(/*! ../Math/Rectangle */ \"./node_modules/absol/src/Math/Rectangle.js\"));\n\nvar _PrintSerialHandlers = _interopRequireDefault(__webpack_require__(/*! ./PrintSerialHandlers */ \"./node_modules/absol/src/Print/PrintSerialHandlers.js\"));\n\nvar _XLoader = __webpack_require__(/*! ../Network/XLoader */ \"./node_modules/absol/src/Network/XLoader.js\");\n\nvar _noop = _interopRequireDefault(__webpack_require__(/*! ../Code/noop */ \"./node_modules/absol/src/Code/noop.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/***\r\n * @typedef {Object} PSHandler\r\n * @property {string} id\r\n * @property {function(elt:AElement, scope: VarScope, stack:Array<AElement>):boolean} match\r\n * @property {function(printer: PaperPrinter,elt:AElement|Text, scope: VarScope, stack:Array<{elt: AElement|Text, scope:VarScope}>, accept: function():void):(boolean|void)} exec - return true if run other handle\r\n *\r\n */\n\n/***\r\n *\r\n * @constructor\r\n */\nfunction PrintSerializer() {\n  /***\r\n   * @type {Array<PSHandler>}\r\n   */\n  this.handlers = this.handlers.slice();\n}\n\nPrintSerializer.prototype.handlers = _PrintSerialHandlers[\"default\"];\n/***\r\n *\r\n * @param {PaperPrinter} printer\r\n * @param {AElement|AElementNS|Text} elt\r\n * @param {VarScope} scope\r\n * @param {Array<{elt: AElement|Text, scope:VarScope}>} stack\r\n */\n\nPrintSerializer.prototype.accept = function (printer, elt, scope, stack) {\n  var _this = this;\n\n  if (elt.nodeType === Node.ELEMENT_NODE) _Dom[\"default\"].ShareInstance.$(elt);\n  var handler;\n  var matched, cont;\n\n  for (var i = 0; (!matched || cont) && i < this.handlers.length; ++i) {\n    handler = this.handlers[i];\n    matched = handler.match(elt, scope, stack);\n\n    if (matched) {\n      cont = handler.exec(printer, elt, scope, stack, function (elt1) {\n        _this.accept(printer, elt1, new _VarScope[\"default\"](scope), stack.concat([{\n          elt: elt,\n          scope: scope\n        }]));\n      });\n    }\n  }\n};\n/***\r\n *\r\n * @param {Array<AElement> | AElement | Array<{elt: AElement, opt:Object}>} docList\r\n * @param printer\r\n * @param onProcess\r\n * @return {Promise<Awaited<unknown>[]>}\r\n */\n\n\nPrintSerializer.prototype.serialize = function (docList, printer, _onProcess) {\n  var _this2 = this;\n\n  var $ = _Dom[\"default\"].ShareInstance.$;\n  if (!(docList instanceof Array)) docList = [docList];\n  docList = docList.map(function (doc) {\n    if (typeof doc === \"string\") {\n      return {\n        elt: $(doc)\n      };\n    } else if ((0, _Dom.isDomNode)(doc)) {\n      return {\n        elt: $(doc)\n      };\n    } else if (_typeof(doc) === \"object\" && doc) {\n      if (typeof doc.elt === \"string\") doc.elt = $(doc.elt);\n      if (doc.elt && (0, _Dom.isDomNode)(doc.elt)) return doc;\n    } else return null;\n  }).filter(function (it) {\n    return !!it;\n  });\n  var sync = [];\n  var processInfo = {\n    state: 'RENDER_DOM',\n    total: {\n      all: 0,\n      text: 0,\n      image: 0\n    },\n    dom: {\n      text: 0,\n      image: 0\n    },\n    onProcess: function onProcess() {\n      _onProcess && _onProcess(processInfo);\n    }\n  };\n  printer.processInfo = processInfo;\n  var contentChildList = docList.map(function (doc) {\n    var elt = doc.elt;\n    return (0, _Dom.depthClone)(elt, function (originElt, copyElt) {\n      copyElt.__idx__ = processInfo.total.all;\n      copyElt.__origin__ = originElt;\n      processInfo.total.all++;\n      var parent, fontWeight, style;\n      var done = false;\n\n      if (originElt.nodeType === Node.TEXT_NODE) {\n        processInfo.total.text++;\n        sync.push(new Promise(function (rs) {\n          setTimeout(function () {\n            parent = originElt.parentElement;\n\n            if (!copyElt.__fontWeight__) {\n              style = getComputedStyle(parent);\n              fontWeight = parseInt(style.getPropertyValue('font-weight')); //not support other style\n\n              copyElt.__fontWeight__ = fontWeight;\n\n              if (fontWeight <= 400) {\n                copyElt.parentElement.style.setProperty('font-weight', 'normal');\n              } else if (fontWeight > 400) {\n                copyElt.parentElement.style.setProperty('font-weight', 'bold');\n              }\n\n              processInfo.dom.text++;\n            }\n\n            processInfo.dom.text++;\n            rs();\n          }, 0);\n        }));\n      } else if (originElt.tagName && originElt.tagName.toLowerCase() === 'canvas') {\n        copyElt.getContext('2d').drawImage(originElt, 0, 0);\n      } else if (originElt.tagName === 'IMG' && !originElt.classList.contains('absol-attachhook') && originElt.src) {\n        processInfo.total.image++;\n        sync.push((0, _XLoader.isImageURLAllowCrossOrigin)(originElt.src).then(function (result) {\n          var newElt;\n\n          if (!result) {\n            newElt = copyElt.cloneNode();\n            newElt.__idx__ = copyElt.__idx__;\n            newElt.__origin__ = copyElt.__origin__;\n            ;\n            copyElt.parentElement.replaceChild(newElt, copyElt);\n            return (0, _XLoader.loadToBlobURL)('https://absol.cf/crossdownload.php?file=' + encodeURIComponent(originElt.src)).then(function (url) {\n              return newElt.src = url;\n            }).then(function () {\n              return (0, _Dom.waitImageLoaded)(newElt, 10000);\n            }).then(function () {\n              if (!done) {\n                processInfo.dom.image++;\n                processInfo.onProcess();\n                done = true;\n              }\n            });\n          } else {\n            return (0, _Dom.waitImageLoaded)(copyElt, 10000).then(function () {\n              if (!done) {\n                processInfo.dom.image++;\n                processInfo.onProcess();\n                done = true;\n              }\n            });\n          }\n        }, function (err) {\n          console.error(err);\n\n          if (!done) {\n            processInfo.dom.image++;\n            processInfo.onProcess();\n            done = true;\n          }\n        }));\n      } else if (originElt.tagName === 'INPUT') {\n        copyElt.value = originElt.value;\n      }\n    });\n  });\n\n  var content = _Dom[\"default\"].ShareInstance._({\n    style: {\n      width: 794 - 57 * 2 + 'px',\n      //WIDTH: 1123 - 57*2\n      display: 'inline-block',\n      overflow: 'visible'\n    },\n    \"class\": 'as-printer-content',\n    child: contentChildList\n  });\n\n  var scroller = _Dom[\"default\"].ShareInstance._({\n    \"class\": 'as-printer',\n    style: {\n      'text-size-adjust': 'none',\n      '-webkit-text-size-adjust': 'none',\n      '-moz-text-size-adjust': 'none',\n      '-ms-text-size-adjust': 'none',\n      position: 'fixed',\n      top: '10px',\n      bottom: '10px',\n      left: '10px',\n      overflow: 'scroll',\n      width: '794px',\n      // maxWidth: '90vw',\n      background: 'white',\n      // zIndex: 1000,\n      opacity: '0',\n      zIndex: '-100',\n      visibility: 'hidden',\n      pointerEvents: 'none'\n    },\n    child: content\n  }).addTo(document.body);\n\n  sync.push(new Promise(function (rs) {\n    setTimeout(rs, 50);\n  }));\n  return Promise.all(sync).then(function () {\n    processInfo.state = \"SERIALIZE\";\n    processInfo.onProcess();\n    docList.forEach(function (doc, i) {\n      printer.O = _Rectangle[\"default\"].fromClientRect(contentChildList[i].getBoundingClientRect()).A();\n      printer.addSubDocument(printer.O, doc.opt);\n\n      _this2.accept(printer, contentChildList[i], new _VarScope[\"default\"](), []);\n    });\n  }).then(function () {\n    scroller.remove();\n    processInfo.onProcess = _noop[\"default\"];\n    return printer;\n  });\n};\n/***\r\n *\r\n * @param {PSHandler} handler\r\n * @returns {this}\r\n */\n\n\nPrintSerializer.prototype.addHandler = function (handler) {\n  this.handlers.unshift(handler);\n  return this;\n};\n/***\r\n *\r\n * @param {PSHandler} handler\r\n * @param {string} bf\r\n * @returns {this}\r\n */\n\n\nPrintSerializer.prototype.addHandlerBefore = function (handler, bf) {\n  var idx = this.handlers.findIndex(function (value) {\n    return value.id === bf;\n  });\n\n  if (idx >= 0) {\n    this.handlers.splice(idx, 0, handler);\n  }\n\n  return this;\n};\n/***\r\n *\r\n * @param {PSHandler} handler\r\n * @param {string} at\r\n * @returns {this}\r\n */\n\n\nPrintSerializer.prototype.addHandlerAfter = function (handler, at) {\n  var idx = this.handlers.findIndex(function (value) {\n    return value.id === at;\n  });\n\n  if (idx >= 0) {\n    this.handlers.splice(idx + 1, 0, handler);\n  }\n\n  return this;\n};\n/***\r\n *\r\n * @param {Array<PSHandler>} handlers\r\n * @returns {this}\r\n */\n\n\nPrintSerializer.prototype.addHandlers = function (handlers) {\n  this.handlers.unshift.apply(this.handlers, handlers);\n  return this;\n};\n/***\r\n *\r\n * @param {string} id\r\n * @returns {this}\r\n */\n\n\nPrintSerializer.prototype.removeHandler = function (id) {\n  var idx = this.handlers.findIndex(function (value) {\n    return value.id === id;\n  });\n\n  if (idx >= 0) {\n    this.handlers.splice(idx, 1);\n  }\n\n  return this;\n};\n/***\r\n *\r\n * @param {string} id\r\n * @returns {PSHandler|null}\r\n */\n\n\nPrintSerializer.prototype.getHandler = function (id) {\n  var idx = this.handlers.findIndex(function (value) {\n    return value.id === id;\n  });\n\n  if (idx >= 0) {\n    return this.handlers[idx];\n  }\n\n  return null;\n};\n\nvar _default = PrintSerializer;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Print/PrintSerializer.js?");

/***/ }),

/***/ "./node_modules/absol/src/Print/pdf.js":
/*!*********************************************!*\
  !*** ./node_modules/absol/src/Print/pdf.js ***!
  \*********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.mergePdfs = mergePdfs;\n\nvar _XLoader = __webpack_require__(/*! ../Network/XLoader */ \"./node_modules/absol/src/Network/XLoader.js\");\n\n// var pdLibUrl = 'https://unpkg.com/pdf-lib/dist/pdf-lib.js';\nvar pdLibUrl = 'https://absol.cf/vendor/pdf-lib.js';\nvar libSync = null;\n\nfunction loadVendorLib() {\n  if (libSync) return libSync;\n\n  if ('PDFLib' in window) {\n    libSync = Promise.resolve(window.PDFLib);\n  } else {\n    libSync = (0, _XLoader.loadScript)(pdLibUrl).then(function () {\n      return window.PDFLib;\n    });\n  }\n\n  return libSync;\n}\n\nfunction loadPdf(data) {\n  if (typeof data === \"string\") {\n    return fetch(data).then(function (res) {\n      return res.arrayBuffer();\n    }).then(function (buff) {\n      return loadPdf(buff);\n    });\n  } else if (data instanceof ArrayBuffer) {\n    return PDFLib.PDFDocument.load(data);\n  } else return null;\n}\n\nfunction mergePdfs(pdfsToMerges, onProcess) {\n  var processInfo = {\n    all: pdfsToMerges.length,\n    loaded: 0,\n    merged: 0\n  };\n  return loadVendorLib().then(function () {\n    var pdfSync = pdfsToMerges.map(function (it) {\n      return loadPdf(it).then(function (r) {\n        processInfo.loaded++;\n        onProcess && onProcess(processInfo);\n        return r;\n      });\n    });\n    pdfSync.push(PDFLib.PDFDocument.create());\n    return Promise.all(pdfSync);\n  }).then(function (pdfs) {\n    var mergedPdf = pdfs.pop();\n    return pdfs.reduce(function (sync, pdf) {\n      return mergedPdf.copyPages(pdf, pdf.getPageIndices()).then(function (copiedPages) {\n        return sync.then(function () {\n          return copiedPages;\n        });\n      }).then(function (copiedPages) {\n        copiedPages.forEach(function (page) {\n          mergedPdf.addPage(page);\n        });\n        processInfo.merged++;\n        onProcess && onProcess(processInfo);\n      });\n    }, Promise.resolve()).then(function () {\n      return mergedPdf;\n    });\n  }).then(function (mergedPdf) {\n    return mergedPdf;\n  });\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Print/pdf.js?");

/***/ }),

/***/ "./node_modules/absol/src/Print/printer.js":
/*!*************************************************!*\
  !*** ./node_modules/absol/src/Print/printer.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nObject.defineProperty(exports, \"PaperPrinter\", ({\n  enumerable: true,\n  get: function get() {\n    return _PaperPrinter[\"default\"];\n  }\n}));\nObject.defineProperty(exports, \"PrintSerializer\", ({\n  enumerable: true,\n  get: function get() {\n    return _PrintSerializer[\"default\"];\n  }\n}));\nexports.ShareSerializer = void 0;\nexports.downloadAsPDF = downloadAsPDF;\nObject.defineProperty(exports, \"mergePdfs\", ({\n  enumerable: true,\n  get: function get() {\n    return _pdf.mergePdfs;\n  }\n}));\n\nvar _Dom = _interopRequireWildcard(__webpack_require__(/*! ../HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _PrintSerializer = _interopRequireDefault(__webpack_require__(/*! ./PrintSerializer */ \"./node_modules/absol/src/Print/PrintSerializer.js\"));\n\nvar _PaperPrinter = _interopRequireDefault(__webpack_require__(/*! ./PaperPrinter */ \"./node_modules/absol/src/Print/PaperPrinter.js\"));\n\nvar _FileSaver = __webpack_require__(/*! ../Network/FileSaver */ \"./node_modules/absol/src/Network/FileSaver.js\");\n\nvar _pdf = __webpack_require__(/*! ./pdf */ \"./node_modules/absol/src/Print/pdf.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar ShareSerializer = new _PrintSerializer[\"default\"]();\nexports.ShareSerializer = ShareSerializer;\n\n/***\r\n *\r\n * @param elt\r\n * @param fileName\r\n * @param {function(processInfo):void=} onProcess\r\n * @returns {Promise<*>}\r\n */\n\n/**\r\n * @type {((elt:AElement, fileName: string, onProcess: function(processInfo):void) => Promise ) & ((elt:AElement, opt: object, onProcess: function(processInfo):void) => Promise) }\r\n */\nfunction downloadAsPDF(docList, arg2, onProcess) {\n  var opt = {\n    fileName: 'exports.pdf.js'\n  };\n  if (typeof arg2 === 'string') opt.fileName = arg2;else Object.assign(opt, arg2);\n  var $ = _Dom[\"default\"].ShareInstance.$;\n  if (!(docList instanceof Array)) docList = [docList];\n  docList = docList.map(function (doc) {\n    if (typeof doc === \"string\") {\n      return {\n        elt: $(doc)\n      };\n    } else if ((0, _Dom.isDomNode)(doc)) {\n      return {\n        elt: $(doc)\n      };\n    } else if (_typeof(doc) === \"object\" && doc) {\n      if (typeof doc.elt === \"string\") doc.elt = $(doc.elt);\n      if (doc.elt && (0, _Dom.isDomNode)(doc.elt)) return doc;\n    } else return null;\n  }).filter(function (it) {\n    return !!it;\n  }).map(function (doc) {\n    var elt = docList[0];\n\n    if (elt.fmComponent) {\n      if (!doc.opt) doc.opt = {};\n\n      if (!doc.opt.margin) {\n        doc.opt.margin = {\n          top: elt.fmComponent.style.paddingTop || 57,\n          left: elt.fmComponent.style.paddingLeft || 57,\n          bottom: elt.fmComponent.style.paddingBottom || 57,\n          right: elt.fmComponent.style.paddingRight || 57\n        };\n      }\n    }\n\n    return doc;\n  });\n  var serializer = ShareSerializer;\n  opt.onProcess = typeof onProcess === \"function\" ? onProcess : function () {};\n  var printer = new _PaperPrinter[\"default\"](opt);\n  return serializer.serialize(docList, printer, opt.onProcess).then(function (printer) {\n    return printer.exportAsPDF();\n  }).then(function (doc) {\n    (0, _FileSaver.saveAs)(doc.output('blob'), opt.fileName);\n  });\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Print/printer.js?");

/***/ }),

/***/ "./node_modules/absol/src/SCLang/SCCodeGenerator.js":
/*!**********************************************************!*\
  !*** ./node_modules/absol/src/SCLang/SCCodeGenerator.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.SCCodeHighlightingGenerator = SCCodeHighlightingGenerator;\nexports[\"default\"] = void 0;\nexports.generateSCCode = generateSCCode;\nexports.generateSCHighlightPreviewCode = generateSCHighlightPreviewCode;\n\nvar _SCGrammar = _interopRequireDefault(__webpack_require__(/*! ./SCGrammar */ \"./node_modules/absol/src/SCLang/SCGrammar.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! ../HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n *\r\n * @constructor\r\n */\nfunction SCCodeGenerator() {}\n\nSCCodeGenerator.prototype.accept = function (node) {\n  if (!node) return '/*TODO*/';\n  var visitor = this.visitors[node.type];\n\n  if (visitor) {\n    try {\n      return this.visitors[node.type].apply(this, arguments);\n    } catch (e) {\n      console.error(e, node);\n    }\n  } else {\n    return '[' + node.type + ']'; // throw { message: 'Can not handle ', node: node };\n  }\n};\n\nSCCodeGenerator.prototype.generate = function (ast) {\n  return this.accept(ast);\n};\n/***\r\n *\r\n * @type {Object<string, function>}\r\n */\n\n\nSCCodeGenerator.prototype.visitors = {\n  Program: function Program(node) {\n    var _this = this;\n\n    return node.body.map(function (st) {\n      return _this.accept(st);\n    }).join('\\n');\n  },\n  FunctionDeclaration: function FunctionDeclaration(node) {\n    var _this2 = this;\n\n    var bodyCode = this.accept(node.body);\n    var argsCode = node.params.map(function (arg) {\n      return _this2.accept(arg);\n    }).join(', ');\n    return \"function \".concat(node.id.name, \"(\").concat(argsCode, \") \").concat(bodyCode);\n  },\n  ArgumentDeclaration: function ArgumentDeclaration(node) {\n    var res = node.id.name;\n    var typeText;\n    if (node.typeAnnotation) typeText = this.accept(node.typeAnnotation);\n    if (typeText && typeText !== 'any') res += ': ' + typeText;\n    return res;\n  },\n  TypeAnnotation: function TypeAnnotation(node) {\n    return this.accept(node.typeAnnotation);\n  },\n  GenericType: function GenericType(node) {\n    var _this3 = this;\n\n    var typeText = this.accept(node.id);\n\n    if (node.typeParameters && node.typeParameters.length > 0) {\n      typeText += '<';\n      typeText += node.typeParameters.map(function (it) {\n        return _this3.accept(it);\n      }).join(', ');\n      typeText += '>';\n    }\n\n    return typeText;\n  },\n  LinkedType: function LinkedType(node) {\n    return 'linktype ' + this.accept(node.address);\n  },\n  Identifier: function Identifier(node) {\n    return node.name;\n  },\n  VariableDeclaration: function VariableDeclaration(node) {\n    var res = 'var ' + node.id.name;\n    var typeText;\n    if (node.typeAnnotation) typeText = this.accept(node.typeAnnotation);\n    if (typeText && typeText !== 'any') res += ': ' + typeText;\n    if (node.init) res += ' = ' + this.accept(node.init);\n    res += ';';\n    return res;\n  },\n  BlockStatement: function BlockStatement(node) {\n    var _this4 = this;\n\n    var bodyCode = node.body.map(function (it) {\n      return _this4.accept(it);\n    }).join('\\n');\n\n    if (bodyCode.length > 0) {\n      bodyCode = bodyCode.split('\\n').map(function (r) {\n        return '    ' + r;\n      }).join('\\n');\n    }\n\n    return ['{', bodyCode, '}'].join('\\n');\n  },\n  AssignStatement: function AssignStatement(node) {\n    return this.accept(node.left) + ' = ' + this.accept(node.right) + ';';\n  },\n  BooleanLiteral: function BooleanLiteral(node) {\n    return node.value ? 'true' : 'false';\n  },\n  NullLiteral: function NullLiteral(node) {\n    return \"null\";\n  },\n  NewExpression: function NewExpression(node) {\n    var _this5 = this;\n\n    var res = 'new ';\n\n    if (node.callee.type === 'Identifier' || node.callee.type === 'MemberExpression') {\n      res += this.accept(node.callee);\n    } else {\n      res += '(' + this.accept(node.callee) + ')';\n    }\n\n    res += '(';\n    res += node.arguments.map(function (arg) {\n      return _this5.accept(arg);\n    }).join(', ');\n    res += ')';\n    return res;\n  },\n  CallExpression: function CallExpression(node) {\n    var _this6 = this;\n\n    var res = '';\n\n    if (node.callee && (node.callee.type === 'Identifier' || node.callee.type === 'MemberExpression')) {\n      res += this.accept(node.callee);\n    } else {\n      res += '(' + this.accept(node.callee) + ')';\n    }\n\n    res += '(';\n    res += node.arguments.map(function (arg) {\n      return _this6.accept(arg);\n    }).join(', ');\n    res += ')';\n    return res;\n  },\n  MemberExpression: function MemberExpression(node) {\n    var res = '';\n\n    if (node.object.type === 'Identifier' || node.object.type === 'MemberExpression') {\n      res += this.accept(node.object);\n    } else {\n      res += '(' + this.accept(node.object) + ')';\n    }\n\n    if (node.computed) {\n      res += '[';\n      res += this.accept(node.property);\n      res += ']';\n    } else {\n      res += '.';\n      res += this.accept(node.property);\n    }\n\n    return res;\n  },\n  IfStatement: function IfStatement(node) {\n    var res = 'if (';\n    res += this.accept(node.test);\n    res += ') ';\n    res += this.accept(node.consequent);\n\n    if (node.alternate) {\n      res += '\\nelse ';\n      res += this.accept(node.alternate);\n    }\n\n    return res;\n  },\n  WhileStatement: function WhileStatement(node) {\n    var res = 'while (';\n    res += this.accept(node.test);\n    res += ') ';\n    res += this.accept(node.body);\n    return res;\n  },\n  ForCountStatement: function ForCountStatement(node) {\n    var res = ['for', this.accept(node[\"for\"]), 'from', this.accept(node.from), 'to', this.accept(node.to)].join(' ') + ' ';\n    res += this.accept(node.body);\n    return res;\n  },\n  ForOfStatement: function ForOfStatement(node) {\n    var res = ['for', this.accept(node[\"for\"]), 'of', this.accept(node.of)].join(' ') + ' ';\n    res += this.accept(node.body);\n    return res;\n  },\n  ForInStatement: function ForInStatement(node) {\n    var res = ['for', this.accept(node[\"for\"]), 'in', this.accept(node[\"in\"])].join(' ') + ' ';\n    res += this.accept(node.body);\n    return res;\n  },\n  BreakStatement: function BreakStatement() {\n    return 'break;';\n  },\n  ReturnStatement: function ReturnStatement(node) {\n    if (node.argument) return 'return ' + this.accept(node.argument) + ';';\n    return 'return;';\n  },\n  BinaryExpression: function BinaryExpression(node) {\n    var callOrderOf = function callOrderOf(snode) {\n      if (!snode) return 100;\n\n      if (snode.type === 'BinaryExpression') {\n        return Math.max(_SCGrammar[\"default\"].operatorOrder[snode.operator.content], callOrderOf(snode.right), callOrderOf(snode.right));\n      } else if (snode.type === 'UnaryExpression') return -1;else return -2;\n    };\n\n    var operatorContent = node.operator.content;\n    var cOrder = _SCGrammar[\"default\"].operatorOrder[operatorContent];\n    var left = this.accept(node.left);\n    var right = this.accept(node.right);\n    var leftOrder = callOrderOf(node.left);\n    var rightOrder = callOrderOf(node.right);\n    if (leftOrder > cOrder) left = '(' + left + ')';\n    if (rightOrder >= cOrder) right = '(' + right + ')';\n    return [left, operatorContent, right].join(' ');\n  },\n  UnaryExpression: function UnaryExpression(node) {\n    var res = node.operator.content;\n\n    if (node.argument && node.argument.type === 'BinaryExpression') {\n      res += '(' + this.accept(node.argument) + ')';\n    } else {\n      res += this.accept(node.argument);\n    }\n\n    return res;\n  },\n  ExpressionStatement: function ExpressionStatement(node) {\n    return this.accept(node.expression) + ';';\n  },\n  NumericLiteral: function NumericLiteral(node) {\n    if (typeof node.value === \"number\") return node.value.toString();\n    return '0';\n  },\n  StringLiteral: function StringLiteral(node) {\n    return JSON.stringify(node.value);\n  },\n  ArrayExpression: function ArrayExpression(node) {\n    var _this7 = this;\n\n    var res = '[';\n    var elementTexts = node.elements.map(function (arg) {\n      return _this7.accept(arg);\n    });\n    var needWrap = elementTexts.some(function (et) {\n      return et.length > 60;\n    });\n\n    if (needWrap) {\n      res += '\\n';\n      res += elementTexts.join(',\\n').split('\\n').map(function (t) {\n        return '    ' + t;\n      }).join('\\n');\n      res += '\\n';\n    } else {\n      res += elementTexts.join(', ');\n    }\n\n    res += ']';\n    return res;\n  },\n  ObjectProperty: function ObjectProperty(node) {\n    return this.accept(node.key) + ': ' + this.accept(node.value);\n  },\n  ObjectExpression: function ObjectExpression(node) {\n    var _this8 = this;\n\n    var res = '{';\n    var propertyTexts = node.properties.map(function (arg) {\n      return _this8.accept(arg);\n    });\n    var needWrap = propertyTexts.some(function (et) {\n      return et.length > 60;\n    });\n\n    if (needWrap) {\n      res += '\\n';\n      res += propertyTexts.join(',\\n').split('\\n').map(function (t) {\n        return '    ' + t;\n      }).join('\\n');\n      res += '\\n';\n    } else {\n      res += propertyTexts.join(', ');\n    }\n\n    res += '}';\n    return res;\n  }\n};\nvar _default = SCCodeGenerator;\n/***\r\n * @extends SCCodeGenerator\r\n * @constructor\r\n */\n\nexports[\"default\"] = _default;\n\nfunction SCCodeHighlightingGenerator() {\n  SCCodeGenerator.apply(this, arguments);\n}\n\n_OOP[\"default\"].mixClass(SCCodeHighlightingGenerator, SCCodeGenerator);\n\nSCCodeHighlightingGenerator.prototype.accept = function (node) {\n  if (!node) return '/*TODO*/';\n  var visitor = this.visitors[node.type];\n\n  if (visitor) {\n    try {\n      return \"<div class=\\\"sclang-node sclang-\".concat(node.type).concat(node.error ? ' sclang-error' : '', \"\\\"\").concat(node.error ? 'title=' + JSON.stringify(node.error) : '', \">\").concat(this.visitors[node.type].apply(this, arguments), \"</div>\");\n    } catch (e) {\n      console.error(e, node);\n    }\n  } else {\n    return '[' + node.type + ']'; // throw { message: 'Can not handle ', node: node };\n  }\n};\n\nSCCodeHighlightingGenerator.prototype.visitors = Object.assign({}, SCCodeGenerator.prototype.visitors, {\n  IfStatement: function IfStatement(node) {\n    var res = '<span class=\"sclang-keyword\">if</span> (';\n    res += this.accept(node.test);\n    res += ') ';\n    res += this.accept(node.consequent);\n\n    if (node.alternate) {\n      res += '\\n<span class=\"sclang-keyword\">else</span> ';\n      res += this.accept(node.alternate);\n    }\n\n    return res;\n  },\n  FunctionDeclaration: function FunctionDeclaration(node) {\n    var _this9 = this;\n\n    var bodyCode = this.accept(node.body);\n    var argsCode = node.params.map(function (arg) {\n      return _this9.accept(arg);\n    }).join(', ');\n    return \"<span class=\\\"sclang-keyword\\\">function</span> \".concat(node.id.name, \"(\").concat(argsCode, \") \").concat(bodyCode);\n  },\n  ForCountStatement: function ForCountStatement(node) {\n    var res = ['<span class=\"sclang-keyword\">for</span>', this.accept(node[\"for\"]), '<span class=\"sclang-keyword\">from</span>', this.accept(node.from), '<span class=\"sclang-keyword\">to</span>', this.accept(node.to)].join(' ') + ' ';\n    res += this.accept(node.body);\n    return res;\n  },\n  ForOfStatement: function ForOfStatement(node) {\n    var res = ['<span class=\"sclang-keyword\">for</span>', this.accept(node[\"for\"]), '<span class=\"sclang-keyword\">of</span>', this.accept(node.of)].join(' ') + ' ';\n    res += this.accept(node.body);\n    return res;\n  },\n  ForInStatement: function ForInStatement(node) {\n    var res = ['<span class=\"sclang-keyword\">for</span>', this.accept(node[\"for\"]), '<span class=\"sclang-keyword\">in</span>', this.accept(node[\"in\"])].join(' ') + ' ';\n    res += this.accept(node.body);\n    return res;\n  },\n  VariableDeclaration: function VariableDeclaration(node) {\n    var res = '<span class=\"sclang-keyword\">var</span> ' + node.id.name;\n    var typeText;\n    if (node.typeAnnotation) typeText = this.accept(node.typeAnnotation);\n    if (typeText && typeText !== 'any') res += ': ' + typeText;\n    if (node.init) res += ' = ' + this.accept(node.init);\n    res += ';';\n    return res;\n  },\n  LinkedType: function LinkedType(node) {\n    return '<span class=\"sclang-keyword\">linktype</span>&nbsp;' + this.accept(node.address);\n  }\n});\n\nSCCodeHighlightingGenerator.prototype.generate = function (ast) {\n  var text = this.accept(ast);\n  return text.split('\\n').map(function (text) {\n    return text.replace(/^\\s+/, function (full) {\n      return \"<span>\".concat('&nbsp;'.repeat(full.length), \"</span>\");\n    });\n  }).join('<br>');\n};\n\nfunction generateSCCode(ast) {\n  var generator = new SCCodeGenerator();\n  return generator.generate(ast);\n}\n\nfunction generateSCHighlightPreviewCode(ast) {\n  var generator = new SCCodeHighlightingGenerator();\n  return generator.generate(ast);\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/SCLang/SCCodeGenerator.js?");

/***/ }),

/***/ "./node_modules/absol/src/SCLang/SCGrammar.js":
/*!****************************************************!*\
  !*** ./node_modules/absol/src/SCLang/SCGrammar.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _DPParseInstance = __webpack_require__(/*! ../Pharse/DPParseInstance */ \"./node_modules/absol/src/Pharse/DPParseInstance.js\");\n\n/*********************************\r\n * EXPRESSION\r\n */\nvar operatorOrder = {\n  'NOT': 4,\n  '!': 4,\n  '*': 5,\n  '/': 5,\n  'MOD': 5,\n  '%': 5,\n  '+': 6,\n  '-': 6,\n  '<': 9,\n  '>': 9,\n  '<=': 9,\n  '>=': 9,\n  '==': 9,\n  '!=': 9,\n  'AND': 14,\n  '&&': 14,\n  'OR': 15,\n  '||': 15,\n  'XOR': 15\n};\nvar elementRegexes = [['string', /(\"(?:[^\"\\\\]|\\\\.)*?\")|('(?:[^'\\\\]|\\\\.)*?')/], ['number', /(\\d+([.]\\d*)?([eE][+-]?\\d+)?|[.]\\d+([eE][+-]?\\d+)?)/], ['word', /[_a-zA-Z][_a-zA-Z0-9]*/], ['skip', /([\\s\\r\\n]+)|(\\/\\/[^\\n]*)|(\\/\\*([^*]|[\\r\\n]|(\\*+([^*\\/]|[\\r\\n])))*\\*+\\/)/], ['dsymbol', /\\+\\+|--|==|!=|<=|>=/], ['tsymbol', /\\.\\.\\./], ['symbol', /[^\\s_a-zA-Z0-9]/]];\nvar rules = [];\nrules.push({\n  target: 'null',\n  elements: ['_null'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: 'NullLiteral'\n    };\n  }\n});\nrules.push({\n  target: 'ident',\n  elements: ['.word'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: 'Identifier',\n      name: parsedNode.children[0].content\n    };\n  }\n});\nrules.push({\n  target: 'args_list',\n  elements: ['exp'],\n  toAST: function toAST(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);\n  },\n  toASTChain: function toASTChain(parsedNode) {\n    return [(0, _DPParseInstance.parsedNodeToAST)(parsedNode)];\n  }\n});\nrules.push({\n  target: 'args_list',\n  elements: ['args_list', '_,', 'exp'],\n  longestOnly: true,\n  ident: 'args_list_rec',\n  toASTChain: function toASTChain(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToASTChain)(parsedNode.children[0]).concat((0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2]));\n  }\n});\nrules.push({\n  target: 'function_callee',\n  elements: ['ident'],\n  toAST: function toAST(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);\n  }\n});\nrules.push({\n  target: 'function_callee',\n  elements: ['mem_exp'],\n  toAST: function toAST(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);\n  }\n});\nrules.push({\n  target: 'function_call',\n  elements: ['function_callee', '_(', 'args_list', '_)'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: 'CallExpression',\n      arguments: parsedNode.children[2].rule.toASTChain(parsedNode.children[2]),\n      callee: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0])\n    };\n  }\n});\nrules.push({\n  target: 'function_call',\n  elements: ['function_callee', '_(', '_)'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: 'CallExpression',\n      arguments: [],\n      callee: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0])\n    };\n  }\n});\nrules.push({\n  target: 'new_expression',\n  elements: ['_new', 'function_call'],\n  toAST: function toAST(parsedNode) {\n    var callAst = (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1]);\n    return {\n      type: 'NewExpression',\n      arguments: callAst.arguments,\n      callee: callAst.callee\n    };\n  }\n});\nrules.push({\n  target: 'exp',\n  elements: ['new_expression'],\n  toAST: function toAST(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);\n  }\n});\nrules.push({\n  target: 'exp',\n  elements: ['null'],\n  toAST: function toAST(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);\n  }\n});\nrules.push({\n  target: 'exp',\n  elements: ['ident'],\n  toAST: function toAST(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);\n  }\n});\nrules.push({\n  target: 'number',\n  elements: ['.number'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: 'NumericLiteral',\n      value: parseFloat(parsedNode.children[0].content)\n    };\n  }\n});\nrules.push({\n  target: 'string',\n  elements: ['.string'],\n  toAST: function toAST(parsedNode) {\n    var content = parsedNode.children[0].content;\n    if (content[0] === \"'\") content = '\"' + content.substring(1, content.length - 1).replace(/[\"]/g, '\\\\\"') + '\"';\n    return {\n      type: 'StringLiteral',\n      value: JSON.parse(content)\n    };\n  }\n});\nrules.push({\n  target: 'boolean',\n  elements: ['_true'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: 'BooleanLiteral',\n      value: true\n    };\n  }\n});\nrules.push({\n  target: 'boolean',\n  elements: ['_false'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: 'BooleanLiteral',\n      value: false\n    };\n  }\n});\nrules.push({\n  target: 'exp',\n  elements: ['number'],\n  toAST: function toAST(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);\n  }\n});\nrules.push({\n  target: 'exp',\n  elements: ['string'],\n  toAST: function toAST(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);\n  }\n});\nrules.push({\n  target: 'exp',\n  elements: ['boolean'],\n  toAST: function toAST(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);\n  }\n});\n['+', '-', '*', '/', '%', '&&', '||', 'XOR', '==', '!=', '<', '>', '>=', '<='].forEach(function (op) {\n  rules.push({\n    target: 'bin_op',\n    elements: ['_' + op],\n    toAST: function toAST(parsedNode) {\n      return {\n        type: \"BinaryOperator\",\n        content: op\n      };\n    }\n  });\n});\nrules.push({\n  target: 'exp',\n  elements: ['exp', 'bin_op', 'exp'],\n  longestOnly: true,\n  ident: 'bin_op_rec',\n  toASTChain: function toASTChain(parseNode) {\n    var res = [];\n\n    if (parseNode.children[0].rule === this) {\n      res = res.concat(this.toASTChain(parseNode.children[0]));\n    } else {\n      res.push((0, _DPParseInstance.parsedNodeToAST)(parseNode.children[0]));\n    }\n\n    res.push(parseNode.children[1].children[0]);\n\n    if (parseNode.children[2].rule === this) {\n      res = res.concat(this.toASTChain(parseNode.children[2]));\n    } else {\n      res.push((0, _DPParseInstance.parsedNodeToAST)(parseNode.children[2]));\n    }\n\n    return res;\n  },\n  toAST: function toAST(parsedNode) {\n    var chain = this.toASTChain(parsedNode);\n    var stack = [];\n    var item;\n    var newNode;\n\n    while (chain.length > 0) {\n      item = chain.shift();\n\n      if (item.content in operatorOrder) {\n        while (stack.length >= 3 && operatorOrder[stack[stack.length - 2].content] <= operatorOrder[item.content]) {\n          newNode = {\n            type: 'BinaryExpression'\n          };\n          newNode.right = stack.pop();\n          newNode.operator = stack.pop();\n          newNode.left = stack.pop();\n          stack.push(newNode);\n        }\n      }\n\n      stack.push(item);\n    }\n\n    while (stack.length >= 3) {\n      newNode = {\n        type: 'BinaryExpression'\n      };\n      newNode.right = stack.pop();\n      newNode.operator = stack.pop();\n      newNode.left = stack.pop();\n      stack.push(newNode);\n    }\n\n    return stack.pop();\n  }\n});\nrules.push({\n  target: 'exp',\n  elements: ['function_call'],\n  toAST: function toAST(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);\n  }\n});\nrules.push({\n  target: 'bracket_group',\n  elements: ['_(', 'exp', '_)'],\n  toAST: function toAST(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1]);\n  }\n});\nrules.push({\n  target: 'exp',\n  elements: ['bracket_group'],\n  toAST: function toAST(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);\n  }\n}); // rules.push({\n//     target: 'exp',\n//     elements: ['_(', 'exp', '_)'],\n//     toAST: function (parsedNode) {\n//         return parsedNodeToAST(parsedNode.children[1]);\n//     }\n// });\n\n['+', '-', '!'].forEach(function (op) {\n  ['number', 'bracket_group', 'ident', 'function_call', 'mem_exp', 'unary_exp'].forEach(function (arg) {\n    rules.push({\n      target: 'unary_exp',\n      elements: ['_' + op, arg],\n      toAST: function toAST(parsedNode) {\n        return {\n          type: 'UnaryExpression',\n          argument: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1]),\n          operator: {\n            type: 'UnaryOperator',\n            content: op\n          }\n        };\n      }\n    });\n  });\n});\nrules.push({\n  target: 'exp',\n  elements: ['unary_exp'],\n  toAST: function toAST(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);\n  }\n});\nrules.push({\n  target: 'mem_exp',\n  elements: ['ident', '_.', 'ident'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: \"MemberExpression\",\n      computed: false,\n      object: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]),\n      property: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2])\n    };\n  }\n});\nrules.push({\n  target: 'mem_exp',\n  elements: ['ident', '_[', 'exp', '_]'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: \"MemberExpression\",\n      computed: true,\n      object: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]),\n      property: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2])\n    };\n  }\n});\nrules.push({\n  target: 'mem_exp',\n  elements: ['new_expression', '_.', 'ident'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: \"MemberExpression\",\n      computed: false,\n      object: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]),\n      property: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2])\n    };\n  }\n});\nrules.push({\n  target: 'mem_exp',\n  elements: ['new_expression', '_[', 'exp', '_]'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: \"MemberExpression\",\n      computed: true,\n      object: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]),\n      property: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2])\n    };\n  }\n});\nrules.push({\n  target: 'mem_exp',\n  elements: ['mem_exp', '_.', 'ident'],\n  longestOnly: true,\n  ident: 'mem_exp_ident_rev',\n  toAST: function toAST(parsedNode) {\n    return {\n      type: \"MemberExpression\",\n      computed: false,\n      object: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]),\n      property: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2])\n    };\n  }\n});\nrules.push({\n  target: 'mem_exp',\n  elements: ['mem_exp', '_[', 'exp', '_]'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: \"MemberExpression\",\n      computed: true,\n      object: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]),\n      property: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2])\n    };\n  }\n});\nrules.push({\n  target: 'mem_exp',\n  elements: ['bracket_group', '_.', 'ident'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: \"MemberExpression\",\n      computed: false,\n      object: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]),\n      property: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2])\n    };\n  }\n});\nrules.push({\n  target: 'mem_exp',\n  elements: ['bracket_group', '_[', 'exp', '_]'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: \"MemberExpression\",\n      computed: true,\n      object: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]),\n      property: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2])\n    };\n  }\n});\nrules.push({\n  target: 'exp',\n  elements: ['mem_exp'],\n  toAST: function toAST(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);\n  }\n});\n/**********************************************************************************************************************/\n\nrules.push({\n  target: 'object_exp',\n  elements: ['_{', '_}'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: 'ObjectExpression',\n      properties: []\n    };\n  }\n});\nrules.push({\n  target: 'object_exp',\n  elements: ['_{', 'object_property_list', '_}'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: 'ObjectExpression',\n      properties: (0, _DPParseInstance.parsedNodeToASTChain)(parsedNode.children[1])\n    };\n  }\n});\nrules.push({\n  target: 'exp',\n  elements: ['object_exp'],\n  toAST: function toAST(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);\n  }\n});\nrules.push({\n  target: 'object_property',\n  elements: ['ident', '_:', 'exp'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: 'ObjectProperty',\n      key: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]),\n      value: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2])\n    };\n  }\n});\nrules.push({\n  target: 'object_property',\n  elements: ['string', '_:', 'exp'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: 'ObjectProperty',\n      key: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]),\n      value: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2])\n    };\n  }\n});\nrules.push({\n  target: 'object_property_list',\n  elements: ['object_property'],\n  toASTChain: function toASTChain(parsedNode) {\n    return [(0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0])];\n  }\n});\nrules.push({\n  target: 'object_property_list',\n  elements: ['object_property_list', '_,', 'object_property'],\n  longestOnly: true,\n  ident: 'object_property_list_rec',\n  toASTChain: function toASTChain(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToASTChain)(parsedNode.children[0]).concat([(0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2])]);\n  }\n});\n/**********************************************************************************************************************/\n\nrules.push({\n  target: 'exp',\n  elements: ['array_exp'],\n  toAST: function toAST(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);\n  }\n});\nrules.push({\n  target: 'array_exp',\n  elements: ['_[', '_]'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: \"ArrayExpression\",\n      elements: []\n    };\n  }\n});\nrules.push({\n  target: 'array_exp',\n  elements: ['_[', 'array_item_list', '_]'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: \"ArrayExpression\",\n      elements: (0, _DPParseInstance.parsedNodeToASTChain)(parsedNode.children[1])\n    };\n  }\n});\nrules.push({\n  target: 'array_item_list',\n  elements: ['exp'],\n  toASTChain: function toASTChain(parsedNode) {\n    return [(0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0])];\n  }\n});\nrules.push({\n  target: 'array_item_list',\n  elements: ['array_item_list', '_,', 'exp'],\n  longestOnly: true,\n  ident: 'array_item_list_rec',\n  toASTChain: function toASTChain(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToASTChain)(parsedNode.children[0]).concat([(0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2])]);\n  }\n});\n/**********************************************************************************************************************/\n\n/**************FOR QUICK PARSING***********************/\n\nrules.push({\n  target: 'exp',\n  elements: ['.constance'],\n  toAST: function toAST(parsedNode) {\n    return parsedNode.children[0];\n  },\n  toASTChain: function toASTChain(parsedNode) {\n    return [parsedNode.children[0]];\n  }\n});\n/***********************************************************************************************************************/\n\nrules.push({\n  target: 'generic_type',\n  elements: ['ident'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: 'GenericType',\n      id: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0])\n    };\n  }\n});\nrules.push({\n  target: 'linked_type',\n  elements: ['_linktype', 'exp'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: 'LinkedType',\n      address: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1])\n    };\n  }\n});\nrules.push({\n  target: 'var_type',\n  elements: ['generic_type'],\n  toAST: function toAST(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);\n  }\n});\nrules.push({\n  target: 'var_type',\n  elements: ['linked_type'],\n  toAST: function toAST(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);\n  }\n});\n/*\r\nrules.push({\r\n    target: 'var_type',\r\n    elements: ['ident', '<', 'var_type', '>']\r\n});\r\n\r\nrules.push({\r\n    target: 'var_type',\r\n    elements: ['ident', '<', '.string', '>']\r\n});\r\n*/\n\nrules.push({\n  target: 'type_annotation',\n  elements: ['_:', 'var_type'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: 'TypeAnnotation',\n      typeAnnotation: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1])\n    };\n  }\n});\n/**********************************************************************************************************************/\n\nrules.push({\n  target: 'variable_declaration',\n  elements: ['_var', 'ident', 'type_annotation', '_;'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: 'VariableDeclaration',\n      id: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1]),\n      typeAnnotation: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2])\n    };\n  }\n});\nrules.push({\n  target: 'variable_declaration',\n  elements: ['_var', 'ident', '_;'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: 'VariableDeclaration',\n      id: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1])\n    };\n  }\n});\nrules.push({\n  target: 'variable_declaration',\n  elements: ['_var', 'ident', '_=', 'exp', '_;'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: 'VariableDeclaration',\n      id: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1]),\n      init: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[3])\n    };\n  }\n});\nrules.push({\n  target: 'variable_declaration',\n  elements: ['_var', 'ident', 'type_annotation', '_=', 'exp', '_;'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: 'VariableDeclaration',\n      id: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1]),\n      typeAnnotation: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2]),\n      init: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[4])\n    };\n  }\n}); //todo\n\nrules.push({\n  target: 'expression_statement',\n  elements: ['function_call', '_;'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: 'ExpressionStatement',\n      expression: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0])\n    };\n  }\n});\n/**********************************************************************************************************************/\n\nrules.push({\n  target: 'assign_statement',\n  elements: ['ident', '_=', 'exp', '_;'],\n  toAST: function toAST(parseNode) {\n    return {\n      type: 'AssignStatement',\n      left: (0, _DPParseInstance.parsedNodeToAST)(parseNode.children[0]),\n      right: (0, _DPParseInstance.parsedNodeToAST)(parseNode.children[2])\n    };\n  }\n});\nrules.push({\n  target: 'assign_statement',\n  elements: ['mem_exp', '_=', 'exp', '_;'],\n  toAST: function toAST(parseNode) {\n    return {\n      type: 'AssignStatement',\n      left: (0, _DPParseInstance.parsedNodeToAST)(parseNode.children[0]),\n      right: (0, _DPParseInstance.parsedNodeToAST)(parseNode.children[2])\n    };\n  }\n});\n/**********************************************************************************************************************/\n\nrules.push({\n  target: 'if_statement_1',\n  elements: ['_if', '_(', 'exp', '_)', 'statement'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: 'IfStatement',\n      test: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2]),\n      consequent: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[4])\n    };\n  }\n});\nrules.push({\n  target: 'if_statement_2',\n  elements: ['if_statement_1', '_else', 'statement'],\n  toAST: function toAST(parsedNode) {\n    var ast = (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);\n    ast.alternate = (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2]);\n    return ast;\n  }\n});\nrules.push({\n  target: 'statement',\n  elements: ['if_statement_1'],\n  toAST: function toAST(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);\n  }\n});\nrules.push({\n  target: 'statement',\n  elements: ['if_statement_2'],\n  toAST: function toAST(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);\n  }\n});\n/**********************************************************************************************************************/\n\nrules.push({\n  target: 'for_count_statement',\n  elements: ['_for', 'ident', '_from', 'exp', '_to', 'exp', 'block_statement'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: 'ForCountStatement',\n      \"for\": (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1]),\n      from: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[3]),\n      to: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[5]),\n      body: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[6])\n    };\n  }\n});\nrules.push({\n  target: 'for_of_statement',\n  elements: ['_for', 'ident', '_of', 'exp', 'block_statement'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: 'ForOfStatement',\n      \"for\": (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1]),\n      of: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[3]),\n      body: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[4])\n    };\n  }\n});\nrules.push({\n  target: 'for_in_statement',\n  elements: ['_for', 'ident', '_in', 'exp', 'block_statement'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: 'ForInStatement',\n      \"for\": (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1]),\n      \"in\": (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[3]),\n      body: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[4])\n    };\n  }\n});\nrules.push({\n  target: 'iterable_range',\n  elements: ['iterable_range_limit', '_...', 'iterable_range_limit']\n});\nrules.push({\n  target: 'iterable_range_limit',\n  elements: ['.number']\n});\nrules.push({\n  target: 'iterable_range_limit',\n  elements: ['ident']\n});\n/**********************************************************************************************************************/\n\nrules.push({\n  target: 'while_statement',\n  elements: ['_while', 'bracket_group', 'statement'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: 'WhileStatement',\n      test: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1]),\n      body: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2])\n    };\n  }\n});\nrules.push({\n  target: 'statement',\n  elements: ['while_statement'],\n  toAST: function toAST(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);\n  }\n});\n/**********************************************************************************************************************/\n\nrules.push({\n  target: 'do_while_statement',\n  elements: ['_do', 'statement', '_while', 'bracket_group', '_;'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: 'DoWhileStatement',\n      test: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[3]),\n      body: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1])\n    };\n  }\n});\nrules.push({\n  target: 'statement',\n  elements: ['do_while_statement'],\n  toAST: function toAST(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);\n  }\n});\n/**********************************************************************************************************************/\n\nrules.push({\n  target: 'break_statement',\n  elements: ['_break', '_;'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: 'BreakStatement'\n    };\n  }\n});\nrules.push({\n  target: 'statement',\n  elements: ['break_statement'],\n  toAST: function toAST(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);\n  }\n});\n/**********************************************************************************************************************/\n\nrules.push({\n  target: 'block_statement',\n  elements: ['_{', '_}'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: 'BlockStatement',\n      body: []\n    };\n  }\n});\nrules.push({\n  target: 'block_statement',\n  elements: ['_{', 'statement_arr', '_}'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: 'BlockStatement',\n      body: (0, _DPParseInstance.parsedNodeToASTChain)(parsedNode.children[1])\n    };\n  }\n});\nrules.push({\n  target: 'statement',\n  elements: ['variable_declaration'],\n  toAST: function toAST(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);\n  }\n});\nrules.push({\n  target: 'statement',\n  elements: ['block_statement'],\n  toAST: function toAST(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);\n  }\n});\nrules.push({\n  target: 'statement',\n  elements: ['expression_statement'],\n  toAST: function toAST(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);\n  }\n});\nrules.push({\n  target: 'statement',\n  elements: ['for_count_statement'],\n  toAST: function toAST(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);\n  }\n});\nrules.push({\n  target: 'statement',\n  elements: ['for_in_statement'],\n  toAST: function toAST(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);\n  }\n});\nrules.push({\n  target: 'statement',\n  elements: ['for_of_statement'],\n  toAST: function toAST(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);\n  }\n});\nrules.push({\n  target: 'statement',\n  elements: ['assign_statement'],\n  toAST: function toAST(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);\n  }\n});\nrules.push({\n  target: 'statement_arr',\n  elements: ['statement'],\n  toASTChain: function toASTChain(parsedNode) {\n    return [(0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0])];\n  }\n});\nrules.push({\n  target: 'statement_arr',\n  elements: ['statement_arr', 'statement'],\n  longestOnly: true,\n  toASTChain: function toASTChain(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToASTChain)(parsedNode.children[0]).concat([(0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1])]);\n  }\n});\n/**********************************************************************************************************************/\n\nrules.push({\n  target: 'function_arguments_declaration',\n  elements: ['_(', '_)'],\n  toASTChain: function toASTChain(parsedNode) {\n    return [];\n  }\n});\nrules.push({\n  target: 'function_arguments_declaration',\n  elements: ['_(', 'argument_declaration_list', '_)'],\n  toASTChain: function toASTChain(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToASTChain)(parsedNode.children[1]);\n  }\n});\nrules.push({\n  target: 'argument_declaration',\n  elements: ['ident', 'type_annotation'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: \"ArgumentDeclaration\",\n      id: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]),\n      typeAnnotation: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1])\n    };\n  }\n});\nrules.push({\n  target: 'argument_declaration',\n  elements: ['ident'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: \"ArgumentDeclaration\",\n      id: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0])\n    };\n  }\n});\nrules.push({\n  target: 'argument_declaration_list',\n  elements: ['argument_declaration'],\n  toASTChain: function toASTChain(parsedNode) {\n    return [(0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0])];\n  }\n});\nrules.push({\n  target: 'argument_declaration_list',\n  elements: ['argument_declaration_list', '_,', 'argument_declaration'],\n  toASTChain: function toASTChain(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToASTChain)(parsedNode.children[0]).concat([(0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[2])]);\n  }\n});\n/**********************************************************************************************************************/\n\nrules.push({\n  target: 'return_statement',\n  elements: ['_return', 'exp', '_;'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: \"ReturnStatement\",\n      argument: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1])\n    };\n  }\n});\nrules.push({\n  target: 'return_statement',\n  elements: ['_return', '_;'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: \"ReturnStatement\"\n    };\n  }\n});\nrules.push({\n  target: 'statement',\n  elements: ['return_statement'],\n  toAST: function toAST(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);\n  }\n});\n/**********************************************************************************************************************/\n\nrules.push({\n  target: 'function_declare',\n  elements: ['_function', 'ident', 'function_arguments_declaration', 'type_annotation', 'block_statement'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: 'FunctionDeclaration',\n      id: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1]),\n      params: (0, _DPParseInstance.parsedNodeToASTChain)(parsedNode.children[2]),\n      returnType: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[3]),\n      body: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[4])\n    };\n  }\n});\nrules.push({\n  target: 'function_declare',\n  elements: ['_function', 'ident', 'function_arguments_declaration', 'block_statement'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: 'FunctionDeclaration',\n      id: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[1]),\n      params: (0, _DPParseInstance.parsedNodeToASTChain)(parsedNode.children[2]),\n      body: (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[3])\n    };\n  }\n});\nrules.push({\n  target: 'statement',\n  elements: ['function_declare'],\n  toAST: function toAST(parsedNode) {\n    return (0, _DPParseInstance.parsedNodeToAST)(parsedNode.children[0]);\n  }\n});\nrules.push({\n  target: 'program',\n  elements: ['statement_arr'],\n  toAST: function toAST(parsedNode) {\n    return {\n      type: \"Program\",\n      body: (0, _DPParseInstance.parsedNodeToASTChain)(parsedNode.children[0])\n    };\n  }\n});\nvar _default = {\n  elementRegexes: elementRegexes,\n  rules: rules,\n  operatorOrder: operatorOrder\n};\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/SCLang/SCGrammar.js?");

/***/ }),

/***/ "./node_modules/absol/src/SCLang/SCOperatorExecutor.js":
/*!*************************************************************!*\
  !*** ./node_modules/absol/src/SCLang/SCOperatorExecutor.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.OperatorExecutor = OperatorExecutor;\nexports[\"default\"] = void 0;\n\nfunction OperatorExecutor() {\n  this.oFXYs = {};\n  this.oFXs = {};\n}\n/***\r\n *\r\n * @param {string} operator\r\n * @param {function(x, y, next: function):void} fxy\r\n */\n\n\nOperatorExecutor.prototype.addBinaryOperator = function (operator, fxy) {\n  if (!this.oFXYs[operator]) this.oFXYs[operator] = [];\n  this.oFXYs[operator].unshift(fxy);\n};\n/***\r\n *\r\n * @param {string} operator\r\n * @param {function(x,  next: function):void} fx\r\n */\n\n\nOperatorExecutor.prototype.addUnaryOperator = function (operator, fx) {\n  if (!this.oFXs[operator]) this.oFXs[operator] = [];\n  this.oFXs[operator].unshift(fx);\n};\n\nOperatorExecutor.prototype.executeBinaryOperator = function (operator, x, y) {\n  var fXYs = this.oFXYs[operator];\n\n  var i, _next;\n\n  if (fXYs) {\n    i = -1;\n\n    _next = function next() {\n      ++i;\n      if (i >= fXYs.length) throw {\n        message: 'Could not match any function for operator' + operator,\n        x: x,\n        y: y\n      };\n      return fXYs[i](x, y, _next);\n    };\n\n    return _next();\n  } else {\n    throw {\n      message: 'Could not find operate: ' + operator\n    };\n  }\n};\n\nOperatorExecutor.prototype.executeUnaryOperator = function (operator, x) {\n  var fXs = this.oFXs[operator];\n\n  var i, _next2;\n\n  if (fXs) {\n    i = -1;\n\n    _next2 = function next() {\n      ++i;\n      if (i >= fXs.length) throw {\n        message: 'Could not match any function for operator' + operator,\n        x: x\n      };\n      return fXs[i](x, _next2);\n    };\n\n    return _next2();\n  } else {\n    throw {\n      message: 'Could not find operate: ' + operator\n    };\n  }\n};\n/***\r\n * @type {OperatorExecutor}\r\n */\n\n\nvar SCOperatorExecutor = new OperatorExecutor();\nvar _default = SCOperatorExecutor;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/SCLang/SCOperatorExecutor.js?");

/***/ }),

/***/ "./node_modules/absol/src/SCLang/SCOperators.js":
/*!******************************************************!*\
  !*** ./node_modules/absol/src/SCLang/SCOperators.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.ADD = ADD;\nexports.DIV = DIV;\nexports.EQUAL = EQUAL;\nexports.LESS_AND_EQUAL = LESS_AND_EQUAL;\nexports.LESS_THAN = LESS_THAN;\nexports.MOD = MOD;\nexports.MORE_AND_EQUAL = MORE_AND_EQUAL;\nexports.MORE_THAN = MORE_THAN;\nexports.MUL = MUL;\nexports.NEGATIVE = NEGATIVE;\nexports.NOT = NOT;\nexports.NOT_EQUAL = NOT_EQUAL;\nexports.POSITIVE = POSITIVE;\nexports.SUB = SUB;\n\nvar _datetime = __webpack_require__(/*! ../Time/datetime */ \"./node_modules/absol/src/Time/datetime.js\");\n\nvar _SCOperatorExecutor = _interopRequireDefault(__webpack_require__(/*! ./SCOperatorExecutor */ \"./node_modules/absol/src/SCLang/SCOperatorExecutor.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction ADD(a, b) {\n  var type_a = _typeof(a);\n\n  var type_b = _typeof(b);\n\n  if (type_a === \"number\") {\n    if (type_b === \"number\" || type_b === 'string') return a + b;\n  }\n\n  if (type_a === \"undefined\" && type_b === \"undefined\") return undefined;\n\n  if (type_a === 'string') {\n    if (type_b === \"string\") return a + b;\n    if (b instanceof Date) return a + (0, _datetime.formatDateTime)(b, 'dd/MM/yyyy');\n    if (type_b === \"number\") return a + b;\n  }\n\n  if (a instanceof Date) {\n    if (type_b === 'number') {\n      return new Date(a.getTime() + _datetime.MILLIS_PER_DAY * b);\n    } else if (type_b === 'string') {\n      return (0, _datetime.formatDateTime)(a, 'dd/MM/yyyy') + b;\n    }\n  }\n\n  if (a.add && a.constructor === b.constructor) return a.add(b);\n  console.error(\"Can not add: \", a, b);\n  return NaN;\n}\n\n_SCOperatorExecutor[\"default\"].addBinaryOperator('+', ADD);\n\nfunction SUB(a, b) {\n  var type_a = _typeof(a);\n\n  var type_b = _typeof(b);\n\n  if (type_a === \"number\" && type_b === \"number\") {\n    return a - b;\n  }\n\n  if (type_a === \"undefined\" && type_b === \"undefined\") return undefined;\n\n  if (a instanceof Date) {\n    if (type_b === 'number') {\n      return new Date(a.getTime() - _datetime.MILLIS_PER_DAY * b);\n    }\n  }\n\n  if (a.sub && a.constructor === b.constructor) return a.sub(b);\n  console.error(\"Can not sub: \", a, b);\n  return NaN;\n}\n\n_SCOperatorExecutor[\"default\"].addBinaryOperator('-', SUB);\n\nfunction MUL(a, b) {\n  var type_a = _typeof(a);\n\n  var type_b = _typeof(b);\n\n  if (type_a === \"number\" && type_b === \"number\") {\n    return a * b;\n  }\n\n  if (type_a === \"undefined\" && type_b === \"undefined\") return undefined;\n\n  if (type_a === \"string\" && type_b === \"number\") {\n    return a.repeat(b);\n  }\n\n  console.error(\"Can not mul: \", a, b);\n  return NaN;\n}\n\n_SCOperatorExecutor[\"default\"].addBinaryOperator('*', MUL);\n\nfunction DIV(a, b) {\n  var type_a = _typeof(a);\n\n  var type_b = _typeof(b);\n\n  if (type_a === \"number\" && type_b === \"number\") {\n    return a / b;\n  }\n\n  if (type_a === \"undefined\" && type_b === \"undefined\") return undefined;\n  console.error(\"Can not div: \", a, b);\n  return NaN;\n}\n\n_SCOperatorExecutor[\"default\"].addBinaryOperator('/', DIV);\n\nfunction MOD(x, m) {\n  return x % m;\n}\n\n_SCOperatorExecutor[\"default\"].addBinaryOperator('%', MOD);\n\nfunction NEGATIVE(x) {\n  return -x;\n}\n\n_SCOperatorExecutor[\"default\"].addUnaryOperator('-', NEGATIVE);\n\nfunction POSITIVE(x) {\n  return x;\n}\n\n_SCOperatorExecutor[\"default\"].addUnaryOperator('+', POSITIVE);\n\nfunction NOT(x) {\n  return !x;\n}\n\n_SCOperatorExecutor[\"default\"].addUnaryOperator('!', NOT);\n\nfunction LESS_THAN(a, b) {\n  if (a instanceof Date) a = a.getTime();\n  if (b instanceof Date) b = b.getTime();\n  return a < b;\n}\n\n_SCOperatorExecutor[\"default\"].addBinaryOperator('<', LESS_THAN);\n\nfunction MORE_THAN(a, b) {\n  if (a instanceof Date) a = a.getTime();\n  if (b instanceof Date) b = b.getTime();\n  return a > b;\n}\n\n_SCOperatorExecutor[\"default\"].addBinaryOperator('>', MORE_THAN);\n\nfunction EQUAL(a, b) {\n  if (a instanceof Date) a = a.getTime();\n  if (b instanceof Date) b = b.getTime();\n  return a === b;\n}\n\n_SCOperatorExecutor[\"default\"].addBinaryOperator('==', EQUAL);\n\nfunction LESS_AND_EQUAL(a, b) {\n  if (a instanceof Date) a = a.getTime();\n  if (b instanceof Date) b = b.getTime();\n  return a <= b;\n}\n\n_SCOperatorExecutor[\"default\"].addBinaryOperator('<=', LESS_AND_EQUAL);\n\nfunction MORE_AND_EQUAL(a, b) {\n  if (a instanceof Date) a = a.getTime();\n  if (b instanceof Date) b = b.getTime();\n  return a >= b;\n}\n\n_SCOperatorExecutor[\"default\"].addBinaryOperator('>=', MORE_AND_EQUAL);\n\nfunction NOT_EQUAL(a, b) {\n  if (a instanceof Date) a = a.getTime();\n  if (b instanceof Date) b = b.getTime();\n  return a != b;\n}\n\n_SCOperatorExecutor[\"default\"].addBinaryOperator('!=', NOT_EQUAL);\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/SCLang/SCOperators.js?");

/***/ }),

/***/ "./node_modules/absol/src/SCLang/SCParser.js":
/*!***************************************************!*\
  !*** ./node_modules/absol/src/SCLang/SCParser.js ***!
  \***************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _DPParser = _interopRequireDefault(__webpack_require__(/*! ../Pharse/DPParser */ \"./node_modules/absol/src/Pharse/DPParser.js\"));\n\nvar _SCGrammar = _interopRequireDefault(__webpack_require__(/*! ./SCGrammar */ \"./node_modules/absol/src/SCLang/SCGrammar.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n * @type {DPParser}\r\n */\nvar SCParser = new _DPParser[\"default\"](_SCGrammar[\"default\"]);\nvar _default = SCParser;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/SCLang/SCParser.js?");

/***/ }),

/***/ "./node_modules/absol/src/SCLang/SCProgramInstance.js":
/*!************************************************************!*\
  !*** ./node_modules/absol/src/SCLang/SCProgramInstance.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = exports.SCStaticLibScope = exports.SCDynamicLibScope = void 0;\n\n__webpack_require__(/*! ./SCOperators */ \"./node_modules/absol/src/SCLang/SCOperators.js\");\n\nvar _SCOperatorExecutor = _interopRequireDefault(__webpack_require__(/*! ./SCOperatorExecutor */ \"./node_modules/absol/src/SCLang/SCOperatorExecutor.js\"));\n\nvar _SCScope = _interopRequireDefault(__webpack_require__(/*! ./SCScope */ \"./node_modules/absol/src/SCLang/SCScope.js\"));\n\nvar _stringGenerate = __webpack_require__(/*! ../String/stringGenerate */ \"./node_modules/absol/src/String/stringGenerate.js\");\n\nvar _SCCodeGenerator = __webpack_require__(/*! ./SCCodeGenerator */ \"./node_modules/absol/src/SCLang/SCCodeGenerator.js\");\n\nvar _ext2MineType = _interopRequireDefault(__webpack_require__(/*! ../Converter/ext2MineType */ \"./node_modules/absol/src/Converter/ext2MineType.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar SCStaticLibScope = new _SCScope[\"default\"]();\nexports.SCStaticLibScope = SCStaticLibScope;\nvar SCDynamicLibScope = new _SCScope[\"default\"](SCStaticLibScope);\nexports.SCDynamicLibScope = SCDynamicLibScope;\n\nfunction SCProgramInstance(ast, env) {\n  var _this = this;\n\n  env = env || {};\n\n  if (env instanceof _SCScope[\"default\"]) {\n    this.global = env;\n  } else {\n    this.global = new _SCScope[\"default\"](SCDynamicLibScope);\n    Object.keys(env).forEach(function (key) {\n      _this.global.declareConst(key, env[key]);\n    });\n  }\n\n  this.topScope = this.global;\n  this.stack = [{\n    scope: this.global\n  }];\n  this.ast = ast;\n}\n\nSCProgramInstance.prototype.exec = function () {\n  return this.accept(this.ast);\n};\n\nSCProgramInstance.prototype.accept = function (node) {\n  var visitor = this.visitors[node.type];\n\n  if (visitor) {\n    return this.visitors[node.type].apply(this, arguments); // try {\n    //\n    // } catch (e) {\n    //     console.error(e, node)\n    // }\n  } else {\n    throw this.makeError(\"NotHandle\", 'Can not handle node type ' + node && node.type, node);\n  }\n};\n\nSCProgramInstance.prototype.makeError = function (type, message, node) {\n  var err = {};\n\n  var copy = function copy(o) {\n    if (!o) return o;\n\n    if (o instanceof Array) {\n      return o.map(function (e) {\n        return copy(e);\n      });\n    }\n\n    if (o instanceof Date) return new Date(o.getTime());\n    if (o.constructor === Object) return Object.keys(o).reduce(function (ac, key) {\n      ac[key] = copy(o[key]);\n      return ac;\n    }, o === node ? {\n      error: message || type || true\n    } : {});\n    return o;\n  };\n\n  err.ast = copy(this.ast);\n  err.message = message;\n  err.errorNode = node;\n  err._shown = false;\n  Object.defineProperty(err, 'SHOW_ERROR', {\n    enumerable: false,\n    get: function get() {\n      if (this._shown) return;\n      this._shown = true;\n      var text = (0, _SCCodeGenerator.generateSCHighlightPreviewCode)(this.ast);\n      var html = \"<html><head><title>Error</title>\\n<style> \\n .sclang-Program {\\n    font-family: Consolas, serif;\\n    white-space: pre-wrap;\\n    line-height: 1.5;\\n}\\n.sclang-keyword {\\n    color: #2C82FF;\\n}\\n.sclang-node {\\n    display: inline;\\n}\\n .sclang-error {\\n    animation: 1s linear infinite condemned_blink_effect;\\n }\\n \\n\\n\\n@keyframes condemned_blink_effect {\\n  0% {\\n    background-color: transparent;\\n  }\\n  50% {\\n    background-color: transparent;\\n  }\\n  51% {\\n     background-color: #f76868;\\n  }\\n  100% {\\n      background-color: #f76868;\\n  }\\n}\\n.sclang-CallExpression > .sclang-MemberExpression:first-child > .sclang-Identifier:last-child,\\n.sclang-CallExpression > .sclang-Identifier:first-child{\\n    color: #41a01b;\\n}</style></head><body>\".concat(text, \"</body></html>\");\n      var blob = new Blob([html], {\n        type: _ext2MineType[\"default\"].html\n      });\n      var url = URL.createObjectURL(blob);\n      window.open(url, '_blank');\n      setTimeout(function () {\n        URL.revokeObjectURL(url);\n      }, 4000);\n      return true;\n    }\n  });\n  return err;\n};\n\nSCProgramInstance.prototype.getRefOf = function (name) {\n  return this.topScope.findRef(name);\n};\n\nSCProgramInstance.prototype.isFunctionReturned = function () {\n  var topStack = this.stack[this.stack.length - 1];\n\n  if (topStack.isFunctionReturned) {\n    return topStack.isFunctionReturned();\n  }\n\n  return false;\n};\n\nSCProgramInstance.prototype.functionReturn = function (res) {\n  var topStack = this.stack[this.stack.length - 1];\n\n  if (topStack.functionReturn) {\n    return topStack.functionReturn(res);\n  }\n};\n\nSCProgramInstance.prototype.isLoopBroken = function () {\n  var topStack = this.stack[this.stack.length - 1];\n\n  if (topStack.loop && topStack.loop.length > 0) {\n    // console.log(topStack.loop[topStack.loop.length - 1].isBroken());\n    return topStack.loop[topStack.loop.length - 1].isBroken();\n  }\n\n  return false;\n};\n\nSCProgramInstance.prototype.loopPush = function (holder) {\n  var topStack = this.stack[this.stack.length - 1];\n  topStack.loop = topStack.loop || [];\n  topStack.loop.push(holder);\n};\n\nSCProgramInstance.prototype.loopPop = function () {\n  var topStack = this.stack[this.stack.length - 1];\n  topStack.loop.pop();\n};\n\nSCProgramInstance.prototype.loopBreak = function () {\n  var topStack = this.stack[this.stack.length - 1];\n  topStack.loop[topStack.loop.length - 1][\"break\"]();\n};\n\nSCProgramInstance.prototype.visitors = {\n  Program: function Program(node) {\n    var _this2 = this;\n\n    var i = 0;\n    var statements = node.body;\n    var returnWith;\n    var res = new Promise(function (rs) {\n      return returnWith = rs;\n    });\n\n    var runStep = function runStep() {\n      var statement;\n      var sResult;\n\n      while (i < statements.length) {\n        statement = statements[i++];\n        sResult = _this2.accept(statement);\n\n        if (sResult && sResult.then) {\n          sResult.then(runStep);\n          return;\n        }\n      }\n\n      returnWith(0);\n    };\n\n    runStep();\n    return res;\n  },\n  BooleanLiteral: function BooleanLiteral(node) {\n    return node.value;\n  },\n  BlockStatement: function BlockStatement(node) {\n    var _this3 = this;\n\n    var i = 0;\n    var statements = node.body;\n    var returnWith;\n    var resolved = false;\n    var result = undefined;\n    var sync = new Promise(function (rs) {\n      returnWith = function returnWith(res) {\n        resolved = true;\n        result = res;\n        rs(res);\n      };\n    });\n\n    var runStep = function runStep() {\n      var statement;\n      var sResult;\n\n      while (i < statements.length && !_this3.isFunctionReturned() && !_this3.isLoopBroken()) {\n        statement = statements[i++];\n        sResult = _this3.accept(statement);\n\n        if (sResult && sResult.then) {\n          sResult.then(runStep);\n          return;\n        }\n      }\n\n      returnWith(0);\n    };\n\n    runStep();\n\n    if (resolved) {\n      return this.result;\n    } else return sync;\n  },\n  ExpressionStatement: function ExpressionStatement(node) {\n    return this.accept(node.expression);\n  },\n  VariableDeclaration: function VariableDeclaration(node) {\n    var _this4 = this;\n\n    var initValue = null;\n\n    if (node.init) {\n      initValue = this.accept(node.init, 'const');\n    }\n\n    if (initValue && initValue.then) {\n      return initValue.then(function (result) {\n        _this4.topScope.declareVar(node.id.name, result);\n      });\n    } else {\n      this.topScope.declareVar(node.id.name, initValue);\n    }\n  },\n  ArrayExpression: function ArrayExpression(node) {\n    var _this5 = this;\n\n    var res = [];\n    var resolved = false;\n    var resolve;\n    var sync = new Promise(function (rs) {\n      resolve = function resolve() {\n        resolved = true;\n        rs(res);\n      };\n    });\n    var elements = node.elements;\n    var i = 0;\n\n    var doStep = function doStep() {\n      var eResult;\n\n      while (i < elements.length) {\n        eResult = _this5.accept(elements[i++], 'const');\n\n        if (eResult && eResult.then) {\n          eResult.then(function (item) {\n            res.push(item);\n            doStep();\n          });\n          return;\n        } else {\n          res.push(eResult);\n        }\n      }\n\n      resolve();\n    };\n\n    doStep();\n\n    if (resolved) {\n      return res;\n    } else {\n      return sync;\n    }\n  },\n  ForCountStatement: function ForCountStatement(node) {\n    var _this6 = this;\n\n    var idRef = this.accept(node[\"for\"], 'ref');\n    var from = this.accept(node.from, 'const');\n    var to = this.accept(node.to, 'const');\n    var result;\n    var resolved = false;\n    var resolveWith;\n    var sync = new Promise(function (rs) {\n      resolveWith = function resolveWith(res) {\n        result = res;\n        resolved = true;\n        rs(res);\n      };\n    });\n    var i = from;\n\n    var runStep = function runStep() {\n      while (i <= to) {\n        idRef.set(i);\n        ++i;\n\n        var stResult = _this6.accept(node.body);\n\n        if (stResult && stResult.then) {\n          stResult.then(runStep);\n          return;\n        }\n      }\n\n      resolveWith(0);\n    };\n\n    runStep();\n\n    if (resolved) {\n      return result;\n    } else {\n      return sync;\n    }\n  },\n  WhileStatement: function WhileStatement(node) {\n    var _this7 = this;\n\n    var resolved = false;\n    var resolve;\n    var sync = new Promise(function (rs) {\n      resolve = function resolve() {\n        resolved = true;\n        rs(undefined);\n      };\n    });\n    this.loopPush({\n      \"break\": function _break() {\n        resolved = true;\n      },\n      isBroken: function isBroken() {\n        return resolved;\n      }\n    });\n    var state = 0;\n\n    var doStep = function doStep() {\n      var sResult;\n\n      while (!resolved) {\n        if (_this7.isFunctionReturned()) {\n          resolve();\n          return;\n        }\n\n        if (state === 0) {\n          sResult = _this7.accept(node.test, 'const');\n          state = 1;\n        } else {\n          sResult = _this7.accept(node.body);\n          state = 0;\n        }\n\n        if (sResult && typeof sResult.then === \"function\") {\n          sResult.then(function (sResult) {\n            if (state === 0 || sResult) {\n              doStep();\n            } else {\n              resolve();\n            }\n          });\n          return;\n        } else {\n          if (state === 1 && !sResult) {\n            resolve();\n          }\n        }\n      }\n    };\n\n    doStep();\n\n    if (resolved) {\n      this.loopPop();\n      return undefined;\n    } else {\n      return sync.then(function () {\n        return _this7.loopPop();\n      });\n    }\n  },\n  DoWhileStatement: function DoWhileStatement(node) {\n    var _this8 = this;\n\n    var resolved = false;\n    var resolve;\n    var sync = new Promise(function (rs) {\n      resolve = function resolve() {\n        resolved = true;\n        rs(undefined);\n      };\n    });\n    var state = 1;\n\n    var doStep = function doStep() {\n      var sResult;\n\n      while (!resolved) {\n        if (state === 0) {\n          sResult = _this8.accept(node.test, 'const');\n          state = 1;\n        } else {\n          sResult = _this8.accept(node.body);\n          state = 0;\n        }\n\n        if (sResult && typeof sResult.then === \"function\") {\n          sResult.then(function (sResult) {\n            if (state === 0 || sResult) {\n              doStep();\n            } else {\n              resolve();\n            }\n          });\n          return;\n        } else {\n          if (state === 1 && !sResult) {\n            resolve();\n          }\n        }\n      }\n    };\n\n    doStep();\n\n    if (resolved) {\n      return undefined;\n    } else {\n      return sync;\n    }\n  },\n  ForOfStatement: function ForOfStatement(node) {\n    var _this9 = this;\n\n    var valRef = this.accept(node[\"for\"], 'ref');\n    var of = this.accept(node.of, 'const');\n    var values;\n    var result;\n    var resolved = false;\n    var resolveWith;\n    var sync = new Promise(function (rs) {\n      resolveWith = function resolveWith(res) {\n        result = res;\n        resolved = true;\n        rs(res);\n      };\n    });\n    var i = 0;\n\n    var runStep = function runStep() {\n      while (i < values.length) {\n        valRef.set(values[i]);\n        ++i;\n\n        var stResult = _this9.accept(node.body);\n\n        if (stResult && stResult.then) {\n          stResult.then(runStep);\n          return;\n        }\n      }\n\n      resolveWith(0);\n    };\n\n    if (of.then) of.then(function (value) {\n      of = value;\n      values = of instanceof Array ? of : Object.values(value);\n      runStep();\n    });else {\n      values = of instanceof Array ? of : Object.values(value);\n      runStep();\n    }\n\n    if (resolved) {\n      return result;\n    } else {\n      return sync;\n    }\n  },\n  ForInStatement: function ForInStatement(node) {\n    var _this10 = this;\n\n    var valRef = this.accept(node[\"for\"], 'ref');\n    var inObj = this.accept(node[\"in\"], 'const');\n    var keys;\n    var result;\n    var resolved = false;\n    var resolveWith;\n    var sync = new Promise(function (rs) {\n      resolveWith = function resolveWith(res) {\n        result = res;\n        resolved = true;\n        rs(res);\n      };\n    });\n    var i = 0;\n\n    var runStep = function runStep() {\n      while (i < keys.length) {\n        valRef.set(keys[i]);\n        ++i;\n\n        var stResult = _this10.accept(node.body);\n\n        if (stResult && stResult.then) {\n          stResult.then(runStep);\n          return;\n        }\n      }\n\n      resolveWith(0);\n    };\n\n    if (inObj.then) inObj.then(function (value) {\n      inObj = value;\n      keys = Object.keys(inObj);\n      runStep();\n    });else {\n      keys = Object.keys(inObj);\n      runStep();\n    }\n\n    if (resolved) {\n      return result;\n    } else {\n      return sync;\n    }\n  },\n  AssignStatement: function AssignStatement(node) {\n    var leftRef = this.accept(node.left, 'ref');\n    var right = this.accept(node.right, 'const');\n    leftRef.set(right);\n  },\n  IfStatement: function IfStatement(node) {\n    var _this11 = this;\n\n    var test = this.accept(node.test, 'const');\n\n    if (test && typeof test.then === 'function') {\n      return test.then(function (test) {\n        if (test) {\n          return _this11.accept(node.consequent);\n        } else if (node.alternate) {\n          return _this11.accept(node.alternate);\n        }\n      });\n    } else {\n      if (test) {\n        return this.accept(node.consequent);\n      } else if (node.alternate) {\n        return this.accept(node.alternate);\n      }\n    }\n  },\n  // CallExpression: function (node){\n  //     var funcRef;\n  //     var object = null;\n  //     var func = null;\n  //     if (node.callee.type === 'Identifier'){\n  //         funcRef = this.topScope.get(node.callee.name);\n  //     }\n  //     else {\n  //         console.log(node.callee)\n  //     }\n  //\n  //Vả\n  // },\n  NullLiteral: function NullLiteral(node) {\n    return null;\n  },\n  NumericLiteral: function NumericLiteral(node) {\n    return node.value;\n  },\n  StringLiteral: function StringLiteral(node) {\n    return node.value;\n  },\n  BinaryExpression: function BinaryExpression(node) {\n    var leftValue = this.accept(node.left, 'const');\n    var rightValue = this.accept(node.right, 'const');\n    var sync = [];\n\n    if (leftValue && leftValue.then) {\n      sync.push(leftValue);\n      leftValue.then(function (result) {\n        return leftValue = result;\n      });\n    }\n\n    if (rightValue && rightValue.then) {\n      sync.push(rightValue);\n      rightValue.then(function (result) {\n        return rightValue = result;\n      });\n    }\n\n    if (sync.length === 0) {\n      return _SCOperatorExecutor[\"default\"].executeBinaryOperator(node.operator.content, leftValue, rightValue);\n    } else {\n      return Promise.all(sync).then(function (u) {\n        return _SCOperatorExecutor[\"default\"].executeBinaryOperator(node.operator.content, leftValue, rightValue);\n      });\n    }\n  },\n  UnaryExpression: function UnaryExpression(node) {\n    var arg = this.accept(node.argument, 'const');\n\n    if (arg && arg.then) {\n      return arg.then(function (value) {\n        return _SCOperatorExecutor[\"default\"].executeUnaryOperator(node.operator.content, value);\n      });\n    } else {\n      return _SCOperatorExecutor[\"default\"].executeUnaryOperator(node.operator.content, arg);\n    }\n  },\n  Identifier: function Identifier(node, type) {\n    var ref;\n\n    if (type === 'const') {\n      ref = this.getRefOf(node.name);\n\n      if (ref) {\n        return ref.get();\n      } else {\n        throw this.makeError(\"NotDeclare\", \"\", node);\n      }\n    } else if (type === 'ref') {\n      ref = this.getRefOf(node.name);\n\n      if (ref) {\n        return ref;\n      } else {\n        this.makeError(\"NotDeclare\", \"\", node);\n      }\n    }\n\n    return node.name;\n  },\n  CallExpression: function CallExpression(node) {\n    var _this12 = this;\n\n    var calleeFunction;\n    var object = null;\n    var ref;\n\n    if (node.callee.type === \"Identifier\") {\n      ref = this.getRefOf(node.callee.name);\n      calleeFunction = ref.get();\n    } else if (node.callee.type === 'MemberExpression') {\n      ref = this.accept(node.callee);\n      calleeFunction = ref.get();\n      object = ref.object;\n    }\n\n    var argumentValues = node.arguments.map(function (exp) {\n      return _this12.accept(exp, 'const');\n    });\n    var sync = [];\n    argumentValues.forEach(function (arg, i) {\n      if (arg && arg.then) {\n        sync.push(arg.then(function (result) {\n          argumentValues[i] = result;\n        }));\n      }\n    });\n\n    if (sync.length > 0) {\n      return Promise.all(sync).then(function () {\n        if (!calleeFunction) {\n          throw {\n            message: 'Undefined function ' + (0, _SCCodeGenerator.generateSCCode)(node.callee),\n            ast: node\n          };\n        }\n\n        return calleeFunction.apply(object, argumentValues);\n      });\n    } else {\n      if (!calleeFunction) {\n        throw {\n          message: 'Undefined function ' + (0, _SCCodeGenerator.generateSCCode)(node.callee),\n          ast: node\n        };\n      }\n\n      return calleeFunction.apply(object, argumentValues);\n    }\n  },\n  NewExpression: function NewExpression(node) {\n    var _this13 = this;\n\n    var calleeFunction;\n    var ref;\n\n    if (node.callee.type === \"Identifier\") {\n      ref = this.getRefOf(node.callee.name);\n      calleeFunction = ref.get();\n    } else if (node.callee.type === 'MemberExpression') {\n      ref = this.accept(node.callee);\n      calleeFunction = ref.get();\n    }\n\n    var argumentValues = node.arguments.map(function (exp) {\n      return _this13.accept(exp, 'const');\n    });\n    var code = \"return new clazz(\".concat(argumentValues.map(function (u, i) {\n      return \"args[\".concat(i, \"]\");\n    }).join(', '), \");\");\n    var f = new Function('clazz', 'args', code);\n    return f(calleeFunction, argumentValues);\n  },\n  MemberExpression: function MemberExpression(node, type) {\n    var object = this.accept(node.object, 'const');\n    var key;\n\n    if (node.property.type === 'Identifier' && !node.computed) {\n      key = node.property.name;\n    } else {\n      key = this.accept(node.property, 'const');\n    }\n\n    if (key && key.then) {\n      return key.then(function (key) {\n        if (!object) {\n          throw {\n            message: 'Can not access ' + JSON.stringify(key) + ' from ' + (0, _SCCodeGenerator.generateSCCode)(node.object)\n          };\n        }\n\n        if (type === 'const') return object[key];\n        return {\n          set: function set(value) {\n            return object[key] = value;\n          },\n          get: function get() {\n            return object[key];\n          },\n          object: object\n        };\n      });\n    } else {\n      if (type === 'const') return object[key];\n      return {\n        set: function set(value) {\n          return object[key] = value;\n        },\n        get: function get() {\n          return object[key];\n        },\n        object: object\n      };\n    }\n  },\n  ObjectProperty: function ObjectProperty(node) {\n    var res = {};\n    var key = this.accept(node.key);\n    var value = this.accept(node.value, 'const');\n\n    if (value && typeof value.then === 'function') {\n      return value.then(function (value) {\n        res[key] = value;\n        return res;\n      });\n    } else {\n      res[key] = value;\n    }\n\n    return res;\n  },\n  ObjectExpression: function ObjectExpression(node) {\n    var _this14 = this;\n\n    var res = {};\n    var resolved = false;\n    var resolve;\n    var sync = new Promise(function (rs) {\n      resolve = function resolve() {\n        resolved = true;\n        rs(res);\n      };\n    });\n    var i = 0;\n    var properties = node.properties;\n\n    var doStep = function doStep() {\n      var pResult;\n\n      while (i < properties.length) {\n        pResult = _this14.accept(properties[i++]);\n\n        if (pResult && typeof pResult.then === \"function\") {\n          pResult.then(function (pO) {\n            Object.assign(res, pO);\n          });\n          return;\n        } else {\n          Object.assign(res, pResult);\n        }\n      }\n\n      resolve();\n    };\n\n    doStep();\n\n    if (resolved) {\n      return res;\n    } else {\n      return sync;\n    }\n  },\n  FunctionDeclaration: function FunctionDeclaration(node) {\n    var self = this; //todo: overloading\n\n    var functionName = node.id.name;\n\n    function f() {\n      var scope = new _SCScope[\"default\"](self.topScope);\n      var result = undefined;\n      var resolved = false;\n\n      var functionReturn = function functionReturn(res) {\n        resolved = true;\n        result = res;\n      };\n\n      var isFunctionReturned = function isFunctionReturned() {\n        return resolved;\n      };\n\n      self.stack.push({\n        scope: scope,\n        functionReturn: functionReturn,\n        isFunctionReturned: isFunctionReturned\n      });\n      self.topScope = scope;\n\n      for (var i = 0; i < node.params.length; ++i) {\n        scope.declareVar(node.params[i].id.name, arguments[i]);\n      }\n\n      scope.declareVar('arguments', arguments);\n      var res = self.accept(node.body);\n\n      if (res && typeof res.then === \"function\") {\n        return res.then(function (res) {\n          if (self.stack[self.stack.length - 1].scope === scope) {\n            self.stack.pop();\n            self.topScope = self.stack[self.stack.length - 1].scope;\n            return result;\n          } else {\n            throw new Error('EngineError: Bug in stack!');\n          }\n        });\n      } else {\n        if (self.stack[self.stack.length - 1].scope === scope) {\n          self.stack.pop();\n          self.topScope = self.stack[self.stack.length - 1].scope;\n          return result;\n        } else {\n          throw new Error('EngineError: Bug in stack!');\n        }\n      }\n    }\n\n    var code = \"return function \".concat(functionName, \"(\").concat(node.params.map(function (pr) {\n      return pr.id.name || (0, _stringGenerate.randomIdent)(5);\n    }).join(','), \") { return f.apply(this, arguments); }\");\n    var func = new Function('f', code)(f);\n    this.topScope.declareVar(functionName, func);\n    return func;\n  },\n  BreakStatement: function BreakStatement(node) {\n    this.loopBreak();\n  },\n  ReturnStatement: function ReturnStatement(node) {\n    var _this15 = this;\n\n    var res = undefined;\n\n    if (node.argument) {\n      res = this.accept(node.argument, 'const');\n    }\n\n    if (res && res.then) {\n      res.then(function (res) {\n        _this15.functionReturn(res);\n      });\n    } else {\n      this.functionReturn(res);\n    }\n  }\n};\nvar _default = SCProgramInstance;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/SCLang/SCProgramInstance.js?");

/***/ }),

/***/ "./node_modules/absol/src/SCLang/SCScope.js":
/*!**************************************************!*\
  !*** ./node_modules/absol/src/SCLang/SCScope.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _Ref = _interopRequireDefault(__webpack_require__(/*! ../AppPattern/Ref */ \"./node_modules/absol/src/AppPattern/Ref.js\"));\n\nvar _Const = _interopRequireDefault(__webpack_require__(/*! ../AppPattern/Const */ \"./node_modules/absol/src/AppPattern/Const.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n *\r\n * @param {SCScope=} parent\r\n * @constructor\r\n */\nfunction SCScope(parent) {\n  this.parent = parent;\n  /***\r\n   *\r\n   * @type {Object<string, Ref|Const>}\r\n   */\n\n  this.data = {};\n}\n\nSCScope.prototype.set = function (name, value) {\n  var ref = this.findRef(name);\n  if (!ref) throw new Error('\"' + name + '\" was not declared!');\n\n  if (ref.set) {\n    ref.set(value);\n  } else {\n    throw new Error('\"' + name + '\" defined with const cannot be modified!');\n  }\n};\n\nSCScope.prototype.get = function (name) {\n  var ref = this.findRef(name);\n  if (!ref) throw new Error('\"' + name + '\" was not declared!');\n  return ref.get();\n};\n\nSCScope.prototype.declareConst = function (name, value, force, type) {\n  if (name in this.data && !force) throw new Error(\"Cannot redefine variable, \" + name + \" is already declared!\");\n  this.data[name] = new _Const[\"default\"](value, type);\n};\n\nSCScope.prototype.declareVar = function (name, value, force, type) {\n  if (name in this.data && !force) throw new Error(\"Cannot redefine variable, \" + name + \" is already declared!\");\n  this.data[name] = new _Ref[\"default\"](value, type);\n};\n\nSCScope.prototype.revoke = function (name) {\n  delete this.data[name];\n};\n/***\r\n *\r\n * @param {string} name\r\n * @return {Ref|Const|null}\r\n */\n\n\nSCScope.prototype.findRef = function (name) {\n  return this.data[name] || this.parent && this.parent.findRef(name) || null;\n};\n/***\r\n *\r\n * @param {string} name\r\n * @return {SCScope|null}\r\n */\n\n\nSCScope.prototype.findScope = function (name) {\n  if (this.data[name]) return this;\n  if (this.parent) return this.parent.findScope(name);\n  return null;\n};\n\nvar _default = SCScope;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/SCLang/SCScope.js?");

/***/ }),

/***/ "./node_modules/absol/src/String/getFunctionName.js":
/*!**********************************************************!*\
  !*** ./node_modules/absol/src/String/getFunctionName.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = getFunctionName;\n\n/**\r\n * \r\n * @param {Function} func \r\n */\nfunction getFunctionName(func) {\n  var ret = func.toString();\n  ret = ret.substr('function '.length);\n  ret = ret.substr(0, ret.indexOf('('));\n  return ret;\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/String/getFunctionName.js?");

/***/ }),

/***/ "./node_modules/absol/src/String/stringFormat.js":
/*!*******************************************************!*\
  !*** ./node_modules/absol/src/String/stringFormat.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.camelCaseToKebabCase = camelCaseToKebabCase;\nexports.camelCaseToPascalCase = camelCaseToPascalCase;\nexports.camelCaseToUnderScore = camelCaseToUnderScore;\nexports.camelCaseToUpperUnderScore = camelCaseToUpperUnderScore;\nexports.kebabCaseToCamelCase = kebabCaseToCamelCase;\nexports.kebabCaseToPascalCase = kebabCaseToPascalCase;\nexports.kebabCaseToUnderScore = kebabCaseToUnderScore;\nexports.kebabCaseToUpperUnderScore = kebabCaseToUpperUnderScore;\nexports.nonAccentVietnamese = nonAccentVietnamese;\nexports.normalizeIdent = normalizeIdent;\nexports.pascalCaseToCamelCase = pascalCaseToCamelCase;\nexports.pascalCaseToKebabCase = pascalCaseToKebabCase;\nexports.pascalCaseToUnderScore = pascalCaseToUnderScore;\nexports.pascalCaseToUpperUnderScore = pascalCaseToUpperUnderScore;\nexports.underScoreToCamelCase = underScoreToCamelCase;\nexports.underScoreToKebabCase = underScoreToKebabCase;\nexports.underScoreToPascalCase = underScoreToPascalCase;\nexports.wrapToLines = wrapToLines;\n\n/**\r\n *\r\n * @param {String} s\r\n * @param {Number} maxLength\r\n */\nfunction wrapToLines(s, maxLength) {\n  var res = [];\n  var currentWord = '';\n  var currentLine = '';\n\n  for (var i = 0; i < s.length; ++i) {\n    if (s[i].match(/\\s/)) {\n      if (currentWord.length + currentLine.length >= maxLength) {\n        if (currentLine.length > 0) {\n          res.push(currentLine.trim());\n          currentLine = '';\n          currentWord = currentWord.trimLeft() + s[i];\n        } else {\n          currentLine = currentLine + currentWord;\n          res.push(currentLine.trim());\n          currentLine = '';\n          currentWord = '';\n        }\n      } else {\n        currentLine = currentLine + currentWord;\n        currentWord = s[i];\n      }\n    } else {\n      currentWord = currentWord + s[i];\n    }\n  }\n\n  currentLine = (currentLine + currentWord).trim();\n  if (currentLine.length > 0) res.push(currentLine);\n  return res;\n}\n/**\r\n *\r\n * @param {String} s\r\n * @returns {String}\r\n */\n\n\nfunction nonAccentVietnamese(s) {\n  return s.replace(/à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ/g, \"a\").replace(/À|Á|Ạ|Ả|Ã|Â|Ầ|Ấ|Ậ|Ẩ|Ẫ|Ă|Ằ|Ắ|Ặ|Ẳ|Ẵ/g, \"A\").replace(/è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ/g, \"e\").replace(/È|É|Ẹ|Ẻ|Ẽ|Ê|Ề|Ế|Ệ|Ể|Ễ/g, \"E\").replace(/ì|í|ị|ỉ|ĩ/g, \"i\").replace(/Ì|Í|Ị|Ỉ|Ĩ/g, \"I\").replace(/ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ/g, \"o\").replace(/Ò|Ó|Ọ|Ỏ|Õ|Ô|Ồ|Ố|Ộ|Ổ|Ỗ|Ơ|Ờ|Ớ|Ợ|Ở|Ỡ/g, \"O\").replace(/ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ/g, \"u\").replace(/Ù|Ú|Ụ|Ủ|Ũ|Ư|Ừ|Ứ|Ự|Ử|Ữ/g, \"U\").replace(/ỳ|ý|ỵ|ỷ|ỹ/g, \"y\").replace(/Ỳ|Ý|Ỵ|Ỷ|Ỹ/g, \"Y\").replace(/đ/g, \"d\").replace(/Đ/g, \"D\").replace(/\\u0300|\\u0301|\\u0303|\\u0309|\\u0323/g, \"\").replace(/\\u02C6|\\u0306|\\u031B/g, \"\");\n}\n/**\r\n *\r\n * @param {String} s\r\n * @returns {String}\r\n */\n\n\nfunction pascalCaseToCamelCase(s) {\n  return s.substr(0, 1).toLowerCase() + s.substr(1);\n}\n/**\r\n *\r\n * @param {String} s\r\n * @returns {String}\r\n */\n\n\nfunction kebabCaseToCamelCase(s) {\n  return s.replace(/-+([^-])/g, function (full, c) {\n    return c.toUpperCase();\n  });\n}\n/**\r\n *\r\n * @param {String} s\r\n * @returns {String}\r\n */\n\n\nfunction underScoreToCamelCase(s) {\n  return s.replace(/(_+)?([^_]+)/g, function (full, underscore, word) {\n    if (underscore) {\n      if (word) {\n        return word.substr(0, 1).toUpperCase() + word.substr(1).toLowerCase();\n      } else return '';\n    } else {\n      return word.toLowerCase();\n    }\n  });\n}\n/**\r\n *\r\n * @param {String} s\r\n * @returns {String}\r\n */\n\n\nfunction camelCaseToPascalCase(s) {\n  return s.substr(0, 1).toUpperCase() + s.substr(1);\n}\n/**\r\n *\r\n * @param {String} s\r\n * @returns {String}\r\n */\n\n\nfunction underScoreToPascalCase(s) {\n  return s.replace(/(_+|^)?([^_]+)/g, function (full, underscore, word) {\n    return word.substr(0, 1).toUpperCase() + word.substr(1).toLowerCase();\n  });\n}\n/**\r\n *\r\n * @param {String} s\r\n * @returns {String}\r\n */\n\n\nfunction kebabCaseToPascalCase(s) {\n  return s.replace(/(-+|^)([^-])/g, function (full, u, c) {\n    return c.toUpperCase();\n  });\n}\n/**\r\n *\r\n * @param {String} s\r\n * @returns {String}\r\n */\n\n\nfunction pascalCaseToKebabCase(s) {\n  return s.replace(/[A-Z][^A-Z]*/g, function (full, index) {\n    if (index == 0) return full.toLowerCase();\n    return '-' + full.toLowerCase();\n  });\n}\n/**\r\n *\r\n * @param {String} s\r\n * @returns {String}\r\n */\n\n\nfunction camelCaseToKebabCase(s) {\n  return s.replace(/(^|[A-Z])[^A-Z]*/g, function (full, index) {\n    if (index == 0) return full.toLowerCase();\n    return '-' + full.toLowerCase();\n  });\n}\n/**\r\n *\r\n * @param {String} s\r\n * @returns {String}\r\n */\n\n\nfunction underScoreToKebabCase(s) {\n  return s.replace(/(^|_+)([^_]+)/g, function (full, score, word, index) {\n    if (index == 0) return word.toLowerCase();\n    return '-' + word.toLowerCase();\n  });\n}\n/**\r\n *\r\n * @param {String} s\r\n * @returns {String}\r\n */\n\n\nfunction pascalCaseToUnderScore(s) {\n  return s.replace(/[A-Z][^A-Z]*/g, function (full, index) {\n    if (index == 0) return full.toLowerCase();\n    return '_' + full.toLowerCase();\n  });\n}\n/**\r\n *\r\n * @param {String} s\r\n * @returns {String}\r\n */\n\n\nfunction pascalCaseToUpperUnderScore(s) {\n  return s.replace(/[A-Z][^A-Z]*/g, function (full, index) {\n    if (index == 0) return full.toUpperCase();\n    return '_' + full.toUpperCase();\n  });\n}\n/**\r\n *\r\n * @param {String} s\r\n * @returns {String}\r\n */\n\n\nfunction camelCaseToUnderScore(s) {\n  return s.replace(/(^|[A-Z])[^A-Z]*/g, function (full, index) {\n    if (index == 0) return full.toLowerCase();\n    return '_' + full.toLowerCase();\n  });\n}\n/**\r\n *\r\n * @param {String} s\r\n * @returns {String}\r\n */\n\n\nfunction camelCaseToUpperUnderScore(s) {\n  return s.replace(/(^|[A-Z])[^A-Z]*/g, function (full, index) {\n    if (index == 0) return full.toUpperCase();\n    return '_' + full.toUpperCase();\n  });\n}\n/**\r\n *\r\n * @param {String} s\r\n * @returns {String}\r\n */\n\n\nfunction kebabCaseToUnderScore(s) {\n  return s.replace(/(-+|^)([^-]+)/g, function (full, u, word, index) {\n    if (index == 0) return word.toLowerCase();\n    return '_' + word.toLowerCase();\n  });\n}\n/**\r\n *\r\n * @param {String} s\r\n * @returns {String}\r\n */\n\n\nfunction kebabCaseToUpperUnderScore(s) {\n  return s.replace(/(-+|^)([^-]+)/g, function (full, u, word, index) {\n    if (index == 0) return word.toUpperCase();\n    return '_' + word.toUpperCase();\n  });\n}\n/***\r\n *\r\n * @param {String} text\r\n */\n\n\nfunction normalizeIdent(text, opt) {\n  var spaces = '_';\n\n  if (opt && 'spaces' in opt) {\n    spaces = opt.spaces || '';\n  }\n\n  var symbols = '_';\n\n  if (opt && 'symbols' in opt) {\n    symbols = opt.symbols || '';\n  }\n\n  var startsWithDigit = false;\n\n  if (opt && 'startsWithDigit' in opt) {\n    startsWithDigit = opt.startsWithDigit || false;\n  }\n\n  var res = nonAccentVietnamese(text);\n\n  if (typeof spaces === \"string\") {\n    res = res.replace(/\\s+/g, spaces);\n  }\n\n  if (typeof symbols === 'string') {\n    if (spaces === '_') res = res.replace(/[^a-zA-Z0-9_$]+/g, symbols);else if (spaces === '-') {\n      res = res.replace(/[^a-zA-Z0-9_$\\-]+/g, symbols);\n    }\n  }\n\n  if (!startsWithDigit && res.match(/^[0-9]/)) {\n    res = '$' + res;\n  }\n\n  return res;\n}\n\nString.nonAccentVietnamese = nonAccentVietnamese;\n\nString.prototype.nonAccentVietnamese = function () {\n  return String.nonAccentVietnamese(this);\n};\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/String/stringFormat.js?");

/***/ }),

/***/ "./node_modules/absol/src/String/stringGenerate.js":
/*!*********************************************************!*\
  !*** ./node_modules/absol/src/String/stringGenerate.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.ipsumLoremWord = exports.identCharacters = void 0;\nexports.parallelMatch = parallelMatch;\nexports.randomIdent = randomIdent;\nexports.randomParagraph = randomParagraph;\nexports.randomPhrase = randomPhrase;\nexports.randomSentence = randomSentence;\nexports.randomWord = randomWord;\n\nvar _random = __webpack_require__(/*! ../Math/random */ \"./node_modules/absol/src/Math/random.js\");\n\nvar identCharacters = function () {\n  var chars = 'qwertyuiopasdfghjklzxcvbnm';\n  chars = chars + chars.toUpperCase();\n  var num = '0123456789';\n  var spect = '_';\n  return (chars + spect + num).split('');\n}();\n\nexports.identCharacters = identCharacters;\n\nfunction randomIdent(length) {\n  if (!(length > 0)) length = 4;\n  var factor = identCharacters;\n  return [factor[Math.random() * (factor.length - 10) >> 0]].concat(Array(length - 1).fill('').map(function () {\n    return factor[Math.random() * factor.length >> 0];\n  })).join('');\n}\n\nfunction parallelMatch(a, b) {\n  var l = Math.min(a.length, b.length);\n  var res = 0;\n\n  for (var i = 0; i < l; ++i) {\n    if (a[i] == b[i]) ++res;\n  }\n\n  return res;\n}\n\nvar ipsumLoremWord = ['lorem', 'ipsum', 'dolor', 'sit', 'amet', 'consectetur', 'adipiscing', 'elit', 'sed', 'do', 'eiusmod', 'tempor', 'incididunt', 'ut', 'labore', 'et', 'dolore', 'magna', 'aliqua', 'enim', 'ad', 'minim', 'veniam', 'quis', 'nostrud', 'exercitation', 'ullamco', 'laboris', 'nisi', 'aliquip', 'ex', 'ea', 'commodo', 'consequat', 'duis', 'aute', 'irure', 'in', 'reprehenderit', 'voluptate', 'velit', 'esse', 'cillum', 'eu', 'fugiat', 'nulla', 'pariatur', 'excepteur', 'sint', 'occaecat', 'cupidatat', 'non', 'proident', 'sunt', 'culpa', 'qui', 'officia', 'deserunt', 'mollit', 'anim', 'id', 'est', 'laborum', 'perspiciatis', 'unde', 'omnis', 'iste', 'natus', 'error', 'voluptatem', 'accusantium', 'doloremque', 'laudantium', 'totam', 'rem', 'aperiam', 'eaque', 'ipsa', 'quae', 'ab', 'illo', 'inventore', 'veritatis', 'quasi', 'architecto', 'beatae', 'vitae', 'dicta', 'explicabo', 'nemo', 'ipsam', 'quia', 'voluptas', 'aspernatur', 'aut', 'odit', 'fugit', 'consequuntur', 'magni', 'dolores', 'eos', 'ratione', 'sequi', 'nesciunt', 'neque', 'porro', 'quisquam', 'dolorem', 'adipisci', 'numquam', 'eius', 'modi', 'tempora', 'incidunt', 'magnam', 'aliquam', 'quaerat', 'minima', 'nostrum', 'exercitationem', 'ullam', 'corporis', 'suscipit', 'laboriosam', 'aliquid', 'commodi', 'consequatur', 'autem', 'vel', 'eum', 'iure', 'quam', 'nihil', 'molestiae', 'illum', 'quo', 'at', 'vero', 'accusamus', 'iusto', 'odio', 'dignissimos', 'ducimus', 'blanditiis', 'praesentium', 'voluptatum', 'deleniti', 'atque', 'corrupti', 'quos', 'quas', 'molestias', 'excepturi', 'occaecati', 'cupiditate', 'provident', 'similique', 'mollitia', 'animi', 'dolorum', 'fuga', 'harum', 'quidem', 'rerum', 'facilis', 'expedita', 'distinctio', 'nam', 'libero', 'tempore', 'sum', 'soluta', 'nobis', 'eligendi', 'optio', 'cumque', 'impedit', 'minus', 'quod', 'maxime', 'placeat', 'facere', 'possimus', 'assumenda', 'repellendus', 'temporibus', 'quibusdam', 'officiis', 'debitis', 'necessitatibus', 'saepe', 'eveniet', 'voluptates', 'repudiandae', 'recusandae', 'itaque', 'earum', 'hic', 'tenetur', 'a', 'sapiente', 'delectus', 'reiciendis', 'voluptatibus', 'maiores', 'alias', 'perferendis', 'doloribus', 'asperiores', 'repellat', 'integer', 'nec', 'praesent', 'cursus', 'ante', 'dapibus', 'diam', 'sem', 'nibh', 'elementum', 'imperdiet', 'sagittis', 'mauris', 'fusce', 'tellus', 'augue', 'semper', 'porta', 'massa', 'vestibulum', 'lacinia', 'arcu', 'eget', 'class', 'aptent', 'taciti', 'sociosqu', 'litora', 'torquent', 'per', 'conubia', 'nostra', 'inceptos', 'himenaeos', 'curabitur', 'sodales', 'ligula', 'dignissim', 'nunc', 'tortor', 'pellentesque', 'aenean', 'scelerisque', 'maecenas', 'mattis', 'convallis', 'tristique', 'proin', 'egestas', 'porttitor', 'morbi', 'lectus', 'risus', 'iaculis', 'luctus', 'ac', 'turpis', 'aliquet', 'metus', 'ullamcorper', 'tincidunt', 'euismod', 'quisque', 'volutpat', 'condimentum', 'urna', 'facilisi', 'fringilla', 'suspendisse', 'potenti', 'feugiat', 'mi', 'sapien', 'etiam', 'ultrices', 'justo', 'lacus', 'pharetra', 'auctor', 'interdum', 'primis', 'faucibus', 'orci', 'posuere', 'cubilia', 'curae', 'molestie', 'dui', 'blandit', 'congue', 'pede', 'facilisis', 'laoreet', 'donec', 'viverra', 'malesuada', 'pulvinar', 'sollicitudin', 'cras', 'nisl', 'felis', 'venenatis', 'ultricies', 'accumsan', 'pretium', 'fermentum', 'nullam', 'purus', 'mollis', 'vivamus', 'consectetuer'];\nexports.ipsumLoremWord = ipsumLoremWord;\n\nfunction randomWord() {\n  var arr = ipsumLoremWord;\n  var idx = (0, _random.randomInt)(0, arr.length - 1);\n  return arr[idx];\n}\n\nfunction randomPhrase(limitLenght) {\n  if (!limitLenght) limitLenght = 50;\n  var length = Math.ceil(Math.random() * limitLenght / 7);\n  return new Array(length).fill(null).map(randomWord).reduce(function (ac, cr) {\n    if (ac.length + cr.length < limitLenght) {\n      ac.parts.push(cr);\n    }\n\n    return ac;\n  }, {\n    parts: [],\n    length: 0\n  }).parts.join(' ');\n}\n\nfunction randomSentence(limitLenght) {\n  if (!limitLenght) limitLenght = 300;\n  var length = Math.ceil(Math.random() * limitLenght / 70);\n  var res = new Array(length).fill(null).map(randomPhrase).reduce(function (ac, cr) {\n    if (ac.length + cr.length < limitLenght) {\n      ac.parts.push(cr);\n    }\n\n    return ac;\n  }, {\n    parts: [],\n    length: 0\n  }).parts.join(', ');\n\n  if (Math.random() < 0.03) {\n    res = res.replace(/\\,/i, ':');\n  }\n\n  res = res.replace(/^./, function (x) {\n    return x.toUpperCase();\n  });\n  res += '.';\n  return res;\n}\n\nfunction randomParagraph(limitLength) {\n  if (!limitLength) limitLength = 1000;\n  var length = Math.ceil(Math.random() * limitLength / 200);\n  return new Array(length).fill(null).map(randomSentence).reduce(function (ac, cr) {\n    if (ac.length + cr.length < limitLength) {\n      ac.parts.push(cr);\n    }\n\n    return ac;\n  }, {\n    parts: [],\n    length: 0\n  }).parts.join(' ');\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/String/stringGenerate.js?");

/***/ }),

/***/ "./node_modules/absol/src/String/stringMatching.js":
/*!*********************************************************!*\
  !*** ./node_modules/absol/src/String/stringMatching.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.phraseLike = phraseLike;\nexports.phraseMatch = phraseMatch;\nexports.wordLike = wordLike;\nexports.wordsMatch = wordsMatch;\n\nvar _int = __webpack_require__(/*! absol/src/Math/int */ \"./node_modules/absol/src/Math/int.js\");\n\n/**\r\n *\r\n * @param {String} a\r\n * @param {String} b\r\n */\nfunction wordLike(a, b) {\n  var m = a.length;\n  var n = b.length;\n\n  function map(i, j) {\n    return i * (n + 1) + j;\n  }\n\n  var Q = Array((m + 1) * (n + 1)).fill(0);\n\n  for (var i = 0; i < m; ++i) {\n    for (var j = 0; j < n; ++j) {\n      if (a.charAt(i) == b.charAt(j)) {\n        if (Q[map(i + 1, j + 1)]) {\n          if (Q[map(i + 1, j + 1)] < Q[map(i, j)] + 1) Q[map(i + 1, j + 1)] = Q[map(i, j)] + 1;\n        } else Q[map(i + 1, j + 1)] = Q[map(i, j)] + 1;\n      } else Q[map(i + 1, j + 1)] = Math.max(Q[map(i + 1, j)], Q[map(i, j + 1)]);\n    }\n  }\n\n  return Q[map(m, n)] / (0, _int.harmonicMean)(m, n);\n}\n/**\r\n *\r\n * @param {Array<String>} sq1\r\n * @param {Array<String>} sq2\r\n */\n\n\nfunction wordsMatch(sq1, sq2, matchWordPow) {\n  matchWordPow = matchWordPow === undefined ? 1 : matchWordPow;\n  var m = sq1.length;\n  var n = sq2.length;\n\n  function map(i, j) {\n    return i * (n + 1) + j;\n  }\n\n  var Q = Array((m + 1) * (n + 1)).fill(0);\n  var e = 0.0;\n\n  for (var i = 0; i < m; ++i) {\n    for (var j = 0; j < n; ++j) {\n      e = Math.pow(wordLike(sq1[i], sq2[j]), matchWordPow);\n\n      if (Q[map(i + 1, j + 1)]) {\n        if (Q[map(i + 1, j + 1)] < Q[map(i, j)] + e) Q[map(i + 1, j + 1)] = Q[map(i, j)] + e;\n      } else Q[map(i + 1, j + 1)] = Q[map(i, j)] + e;\n\n      e = Math.max(Q[map(i + 1, j)], Q[map(i, j + 1)]);\n      if (e > Q[map(i + 1, j + 1)]) Q[map(i + 1, j + 1)] = e;\n    }\n  }\n\n  return Q[map(m, n)];\n}\n\nfunction phraseMatch(a, b, matchWordPow) {\n  matchWordPow = matchWordPow || 1;\n  var spliter = /[\\s,-\\.+?\\_]+/;\n\n  var notEmp = function notEmp(e) {\n    return e.length > 0;\n  };\n\n  var sq1 = a.toLowerCase().split(spliter).filter(notEmp);\n  var sq2 = b.toLowerCase().split(spliter).filter(notEmp);\n  var wordsMatchScore = wordsMatch(sq1, sq2);\n  var m = sq1.length;\n  var n = sq2.length;\n  return wordsMatchScore / Math.max((0, _int.harmonicMean)(m, n), 1);\n}\n\n;\n\nfunction phraseLike(a, b, matchWordPow) {\n  matchWordPow = matchWordPow || 1;\n  var spliter = /[\\s,-\\.+?\\_]+/;\n\n  var notEmp = function notEmp(e) {\n    return e.length > 0;\n  };\n\n  var sq1 = a.toLowerCase().split(spliter).filter(notEmp);\n  var sq2 = b.toLowerCase().split(spliter).filter(notEmp);\n  var m = sq1.length;\n  var n = sq2.length;\n  var wordsMatchScore = wordsMatch(sq1, sq2);\n  return wordsMatchScore / Math.max((0, _int.harmonicMean)(m, n), 1);\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/String/stringMatching.js?");

/***/ }),

/***/ "./node_modules/absol/src/String/stringUtils.js":
/*!******************************************************!*\
  !*** ./node_modules/absol/src/String/stringUtils.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.stringHashCode = stringHashCode;\n\nfunction stringHashCode(st) {\n  var hash = 0,\n      i,\n      chr;\n  if (st.length === 0) return hash;\n\n  for (i = 0; i < st.length; i++) {\n    chr = st.charCodeAt(i);\n    hash = (hash << 5) - hash + chr;\n    hash |= 0; // Convert to 32bit integer\n  }\n\n  return hash;\n}\n\nfunction crc16($str) {\n  var $CRC16_Lookup = [0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50A5, 0x60C6, 0x70E7, 0x8108, 0x9129, 0xA14A, 0xB16B, 0xC18C, 0xD1AD, 0xE1CE, 0xF1EF, 0x1231, 0x0210, 0x3273, 0x2252, 0x52B5, 0x4294, 0x72F7, 0x62D6, 0x9339, 0x8318, 0xB37B, 0xA35A, 0xD3BD, 0xC39C, 0xF3FF, 0xE3DE, 0x2462, 0x3443, 0x0420, 0x1401, 0x64E6, 0x74C7, 0x44A4, 0x5485, 0xA56A, 0xB54B, 0x8528, 0x9509, 0xE5EE, 0xF5CF, 0xC5AC, 0xD58D, 0x3653, 0x2672, 0x1611, 0x0630, 0x76D7, 0x66F6, 0x5695, 0x46B4, 0xB75B, 0xA77A, 0x9719, 0x8738, 0xF7DF, 0xE7FE, 0xD79D, 0xC7BC, 0x48C4, 0x58E5, 0x6886, 0x78A7, 0x0840, 0x1861, 0x2802, 0x3823, 0xC9CC, 0xD9ED, 0xE98E, 0xF9AF, 0x8948, 0x9969, 0xA90A, 0xB92B, 0x5AF5, 0x4AD4, 0x7AB7, 0x6A96, 0x1A71, 0x0A50, 0x3A33, 0x2A12, 0xDBFD, 0xCBDC, 0xFBBF, 0xEB9E, 0x9B79, 0x8B58, 0xBB3B, 0xAB1A, 0x6CA6, 0x7C87, 0x4CE4, 0x5CC5, 0x2C22, 0x3C03, 0x0C60, 0x1C41, 0xEDAE, 0xFD8F, 0xCDEC, 0xDDCD, 0xAD2A, 0xBD0B, 0x8D68, 0x9D49, 0x7E97, 0x6EB6, 0x5ED5, 0x4EF4, 0x3E13, 0x2E32, 0x1E51, 0x0E70, 0xFF9F, 0xEFBE, 0xDFDD, 0xCFFC, 0xBF1B, 0xAF3A, 0x9F59, 0x8F78, 0x9188, 0x81A9, 0xB1CA, 0xA1EB, 0xD10C, 0xC12D, 0xF14E, 0xE16F, 0x1080, 0x00A1, 0x30C2, 0x20E3, 0x5004, 0x4025, 0x7046, 0x6067, 0x83B9, 0x9398, 0xA3FB, 0xB3DA, 0xC33D, 0xD31C, 0xE37F, 0xF35E, 0x02B1, 0x1290, 0x22F3, 0x32D2, 0x4235, 0x5214, 0x6277, 0x7256, 0xB5EA, 0xA5CB, 0x95A8, 0x8589, 0xF56E, 0xE54F, 0xD52C, 0xC50D, 0x34E2, 0x24C3, 0x14A0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405, 0xA7DB, 0xB7FA, 0x8799, 0x97B8, 0xE75F, 0xF77E, 0xC71D, 0xD73C, 0x26D3, 0x36F2, 0x0691, 0x16B0, 0x6657, 0x7676, 0x4615, 0x5634, 0xD94C, 0xC96D, 0xF90E, 0xE92F, 0x99C8, 0x89E9, 0xB98A, 0xA9AB, 0x5844, 0x4865, 0x7806, 0x6827, 0x18C0, 0x08E1, 0x3882, 0x28A3, 0xCB7D, 0xDB5C, 0xEB3F, 0xFB1E, 0x8BF9, 0x9BD8, 0xABBB, 0xBB9A, 0x4A75, 0x5A54, 0x6A37, 0x7A16, 0x0AF1, 0x1AD0, 0x2AB3, 0x3A92, 0xFD2E, 0xED0F, 0xDD6C, 0xCD4D, 0xBDAA, 0xAD8B, 0x9DE8, 0x8DC9, 0x7C26, 0x6C07, 0x5C64, 0x4C45, 0x3CA2, 0x2C83, 0x1CE0, 0x0CC1, 0xEF1F, 0xFF3E, 0xCF5D, 0xDF7C, 0xAF9B, 0xBFBA, 0x8FD9, 0x9FF8, 0x6E17, 0x7E36, 0x4E55, 0x5E74, 0x2E93, 0x3EB2, 0x0ED1, 0x1EF0];\n  var $crc16 = 0xFFFF; // the CRC\n\n  var $len = $str.length;\n  var $t;\n\n  for (var $i = 0; $i < $len; $i++) {\n    $t = $crc16 >> 8 ^ $str.charCodeAt($i); // High byte Xor Message Byte to get index\n\n    $crc16 = $crc16 << 8 & 0xffff ^ $CRC16_Lookup[$t]; // Update the CRC from table\n  }\n\n  $crc16 = $crc16.toString(16).toUpperCase();\n  return $crc16;\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/String/stringUtils.js?");

/***/ }),

/***/ "./node_modules/absol/src/Time/Alarm.js":
/*!**********************************************!*\
  !*** ./node_modules/absol/src/Time/Alarm.js ***!
  \**********************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n/**\r\n * \r\n * @param {Date| Number} time \r\n * @param {Function} callback \r\n */\nfunction Alarm(time, callback) {\n  this.LIMIT_TIMEOUT = 2147483647;\n  this.callback = callback;\n  this.state = \"STAND_BY\";\n  this.timeout = -1;\n  if (typeof time == 'number') this.time = time;else this.time = time.getTime();\n  this.args = Array.prototype.slice.call(arguments, 2);\n  this.tick = this.tick.bind(this);\n  if (this.time >= new Date().getTime()) this.start();else this.kill();\n}\n\nAlarm.prototype.start = function () {\n  if (this.state == 'STAND_BY' || this.state == \"PAUSE\") {\n    this.state = \"RUNNING\";\n    this.tick();\n    return true;\n  }\n\n  return false;\n};\n\nAlarm.prototype.pause = function () {\n  if (this.state == \"RUNNING\") {\n    clearTimeout(this.timeout);\n    this.timeout = -1;\n    this.state = 'PAUSE';\n  }\n};\n\nAlarm.prototype.tick = function () {\n  var now = new Date().getTime();\n\n  if (now >= this.time) {\n    this.callback && this.callback.apply(null, this.args);\n    this.start = 'FINISH';\n  } else {\n    var deltaTime = Math.min(this.LIMIT_TIMEOUT, this.time - now);\n    this.timeout = setTimeout(this.tick, deltaTime);\n    this.state = \"RUNNING\";\n  }\n};\n\nAlarm.prototype.kill = function () {\n  if (this.state != \"FINISH\" && this.state != \"DEAD\") {\n    if (this.timeout >= 0) clearTimeout(this.timeout);\n    this.state = 'DEAD';\n    return true;\n  }\n\n  return false;\n};\n\nvar _default = Alarm;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Time/Alarm.js?");

/***/ }),

/***/ "./node_modules/absol/src/Time/datetime.js":
/*!*************************************************!*\
  !*** ./node_modules/absol/src/Time/datetime.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.MILLIS_PER_MINUTE = exports.MILLIS_PER_HOUR = exports.MILLIS_PER_DAY = exports.LOCAL_DATE_TIME_FORMAT = exports.LOCAL_DATE_FORMAT = exports.DATE_TIME_TOKEN_RGX = void 0;\nexports.addDate = addDate;\nexports.addMonth = addMonth;\nexports.addMonthKeepDate = addMonthKeepDate;\nexports.addMonthKeepDateTime = addMonthKeepDateTime;\nexports.addQuarter = addQuarter;\nexports.addWeek = addWeek;\nexports.addYear = addYear;\nexports.beginOfDay = beginOfDay;\nexports.beginOfHour = beginOfHour;\nexports.beginOfMinute = beginOfMinute;\nexports.beginOfMonth = beginOfMonth;\nexports.beginOfQuarter = beginOfQuarter;\nexports.beginOfSecond = beginOfSecond;\nexports.beginOfWeek = beginOfWeek;\nexports.beginOfYear = beginOfYear;\nexports.compareDate = compareDate;\nexports.compareMonth = compareMonth;\nexports.compareYear = compareYear;\nexports.dayNames = exports.dateFormatList = exports.dateFormat2LocationList = void 0;\nexports.daysInMonth = daysInMonth;\nexports.ddmmyyyy = ddmmyyyy;\nexports.formartDateString = formartDateString;\nexports.formatDateString = formatDateString;\nexports.formatDateTime = formatDateTime;\nexports.formatTimeRange24 = formatTimeRange24;\nexports.formatTokenRegex = void 0;\nexports.getDefaultFirstDayOfWeek = getDefaultFirstDayOfWeek;\nexports.implicitDate = implicitDate;\nexports.monthNames = exports.language2LocalDateFormat = void 0;\nexports.nextDate = nextDate;\nexports.nextMonth = nextMonth;\nexports.nextQuarter = nextQuarter;\nexports.nextWeek = nextWeek;\nexports.nextYear = nextYear;\nexports.parseDateString = parseDateString;\nexports.parseDateTime = parseDateTime;\nexports.prevDate = prevDate;\nexports.prevMonth = prevMonth;\nexports.prevQuarter = prevQuarter;\nexports.prevWeek = prevWeek;\nexports.prevYear = prevYear;\nexports.setDefaultFirstDayOfWeek = setDefaultFirstDayOfWeek;\nexports.shortMonthNames = exports.shortDayNames = void 0;\nexports.weekInYear = weekInYear;\nexports.weekIndexOf = weekIndexOf;\nexports.yyymmdd = yyymmdd;\n\nvar _stringFormat = __webpack_require__(/*! ../String/stringFormat */ \"./node_modules/absol/src/String/stringFormat.js\");\n\nvar _int = __webpack_require__(/*! ../Math/int */ \"./node_modules/absol/src/Math/int.js\");\n\nvar MILLIS_PER_DAY = 24 * 3600000;\nexports.MILLIS_PER_DAY = MILLIS_PER_DAY;\nvar MILLIS_PER_HOUR = 3600000;\nexports.MILLIS_PER_HOUR = MILLIS_PER_HOUR;\nvar MILLIS_PER_MINUTE = 60000;\nexports.MILLIS_PER_MINUTE = MILLIS_PER_MINUTE;\nvar _default_first_day_of_week = 1;\n\nfunction getDefaultFirstDayOfWeek() {\n  return _default_first_day_of_week;\n}\n\nfunction setDefaultFirstDayOfWeek(value) {\n  if (isNaN(value) || !isFinite(value)) return;\n  value = Math.floor(value) % 7;\n  _default_first_day_of_week = value;\n}\n/**\r\n *\r\n * @param {Date} date\r\n * @returns {String}\r\n */\n\n\nfunction ddmmyyyy(date) {\n  return formatDateTime(date, 'dd/MM/yyyy');\n}\n\nvar language2LocalDateFormat = {\n  \"af-ZA\": \"yyyy/mm/dd\",\n  \"am-ET\": \"d/m/yyyy\",\n  \"ar-AE\": \"dd/mm/yyyy\",\n  \"ar-BH\": \"dd/mm/yyyy\",\n  \"ar-DZ\": \"dd-mm-yyyy\",\n  \"ar-EG\": \"dd/mm/yyyy\",\n  \"ar-IQ\": \"dd/mm/yyyy\",\n  \"ar-JO\": \"dd/mm/yyyy\",\n  \"ar-KW\": \"dd/mm/yyyy\",\n  \"ar-LB\": \"dd/mm/yyyy\",\n  \"ar-LY\": \"dd/mm/yyyy\",\n  \"ar-MA\": \"dd-mm-yyyy\",\n  \"ar-OM\": \"dd/mm/yyyy\",\n  \"ar-QA\": \"dd/mm/yyyy\",\n  \"ar-SA\": \"dd/mm/yy\",\n  \"ar-SY\": \"dd/mm/yyyy\",\n  \"ar-TN\": \"dd-mm-yyyy\",\n  \"ar-YE\": \"dd/mm/yyyy\",\n  \"arn-CL\": \"dd-mm-yyyy\",\n  \"as-IN\": \"dd-mm-yyyy\",\n  \"az-Cyrl-AZ\": \"dd.mm.yyyy\",\n  \"az-Latn-AZ\": \"dd.mm.yyyy\",\n  \"ba-RU\": \"dd.mm.yy\",\n  \"be-BY\": \"dd.mm.yyyy\",\n  \"bg-BG\": \"dd.m.yyyy\",\n  \"bn-BD\": \"dd-mm-yy\",\n  \"bn-IN\": \"dd-mm-yy\",\n  \"bo-CN\": \"yyyy/m/d\",\n  \"br-FR\": \"dd/mm/yyyy\",\n  \"bs-Cyrl-BA\": \"d.m.yyyy\",\n  \"bs-Latn-BA\": \"d.m.yyyy\",\n  \"ca-ES\": \"dd/mm/yyyy\",\n  \"co-FR\": \"dd/mm/yyyy\",\n  \"cs-CZ\": \"d.m.yyyy\",\n  \"cy-GB\": \"dd/mm/yyyy\",\n  \"da-DK\": \"dd-mm-yyyy\",\n  \"de-AT\": \"dd.mm.yyyy\",\n  \"de-CH\": \"dd.mm.yyyy\",\n  \"de-DE\": \"dd.mm.yyyy\",\n  \"de-LI\": \"dd.mm.yyyy\",\n  \"de-LU\": \"dd.mm.yyyy\",\n  \"dsb-DE\": \"d. m. yyyy\",\n  \"dv-MV\": \"dd/mm/yy\",\n  \"el-GR\": \"d/m/yyyy\",\n  \"en-029\": \"mm/dd/yyyy\",\n  \"en-AU\": \"d/mm/yyyy\",\n  \"en-BZ\": \"dd/mm/yyyy\",\n  \"en-CA\": \"dd/mm/yyyy\",\n  \"en-GB\": \"dd/mm/yyyy\",\n  \"en-IE\": \"dd/mm/yyyy\",\n  \"en-IN\": \"dd-mm-yyyy\",\n  \"en-JM\": \"dd/mm/yyyy\",\n  \"en-MY\": \"d/m/yyyy\",\n  \"en-NZ\": \"d/mm/yyyy\",\n  \"en-PH\": \"m/d/yyyy\",\n  \"en-SG\": \"d/m/yyyy\",\n  \"en-TT\": \"dd/mm/yyyy\",\n  \"en-US\": \"m/d/yyyy\",\n  \"en-ZA\": \"yyyy/mm/dd\",\n  \"en-ZW\": \"m/d/yyyy\",\n  \"es-AR\": \"dd/mm/yyyy\",\n  \"es-BO\": \"dd/mm/yyyy\",\n  \"es-CL\": \"dd-mm-yyyy\",\n  \"es-CO\": \"dd/mm/yyyy\",\n  \"es-CR\": \"dd/mm/yyyy\",\n  \"es-DO\": \"dd/mm/yyyy\",\n  \"es-EC\": \"dd/mm/yyyy\",\n  \"es-ES\": \"dd/mm/yyyy\",\n  \"es-GT\": \"dd/mm/yyyy\",\n  \"es-HN\": \"dd/mm/yyyy\",\n  \"es-MX\": \"dd/mm/yyyy\",\n  \"es-NI\": \"dd/mm/yyyy\",\n  \"es-PA\": \"mm/dd/yyyy\",\n  \"es-PE\": \"dd/mm/yyyy\",\n  \"es-PR\": \"dd/mm/yyyy\",\n  \"es-PY\": \"dd/mm/yyyy\",\n  \"es-SV\": \"dd/mm/yyyy\",\n  \"es-US\": \"m/d/yyyy\",\n  \"es-UY\": \"dd/mm/yyyy\",\n  \"es-VE\": \"dd/mm/yyyy\",\n  \"et-EE\": \"d.mm.yyyy\",\n  \"eu-ES\": \"yyyy/mm/dd\",\n  \"fa-IR\": \"mm/dd/yyyy\",\n  \"fi-FI\": \"d.m.yyyy\",\n  \"fil-PH\": \"m/d/yyyy\",\n  \"fo-FO\": \"dd-mm-yyyy\",\n  \"fr-BE\": \"d/mm/yyyy\",\n  \"fr-CA\": \"yyyy-mm-dd\",\n  \"fr-CH\": \"dd.mm.yyyy\",\n  \"fr-FR\": \"dd/mm/yyyy\",\n  \"fr-LU\": \"dd/mm/yyyy\",\n  \"fr-MC\": \"dd/mm/yyyy\",\n  \"fy-NL\": \"d-m-yyyy\",\n  \"ga-IE\": \"dd/mm/yyyy\",\n  \"gd-GB\": \"dd/mm/yyyy\",\n  \"gl-ES\": \"dd/mm/yy\",\n  \"gsw-FR\": \"dd/mm/yyyy\",\n  \"gu-IN\": \"dd-mm-yy\",\n  \"ha-Latn-NG\": \"d/m/yyyy\",\n  \"he-IL\": \"dd/mm/yyyy\",\n  \"hi-IN\": \"dd-mm-yyyy\",\n  \"hr-BA\": \"d.m.yyyy.\",\n  \"hr-HR\": \"d.m.yyyy\",\n  \"hsb-DE\": \"d. m. yyyy\",\n  \"hu-HU\": \"yyyy. mm. dd.\",\n  \"hy-AM\": \"dd.mm.yyyy\",\n  \"id-ID\": \"dd/mm/yyyy\",\n  \"ig-NG\": \"d/m/yyyy\",\n  \"ii-CN\": \"yyyy/m/d\",\n  \"is-IS\": \"d.m.yyyy\",\n  \"it-CH\": \"dd.mm.yyyy\",\n  \"it-IT\": \"dd/mm/yyyy\",\n  \"iu-Cans-CA\": \"d/m/yyyy\",\n  \"iu-Latn-CA\": \"d/mm/yyyy\",\n  \"ja-JP\": \"yyyy/mm/dd\",\n  \"ka-GE\": \"dd.mm.yyyy\",\n  \"kk-KZ\": \"dd.mm.yyyy\",\n  \"kl-GL\": \"dd-mm-yyyy\",\n  \"km-KH\": \"yyyy-mm-dd\",\n  \"kn-IN\": \"dd-mm-yy\",\n  \"ko-KR\": \"yyyy-mm-dd\",\n  \"kok-IN\": \"dd-mm-yyyy\",\n  \"ky-KG\": \"dd.mm.yy\",\n  \"lb-LU\": \"dd/mm/yyyy\",\n  \"lo-LA\": \"dd/mm/yyyy\",\n  \"lt-LT\": \"yyyy.mm.dd\",\n  \"lv-LV\": \"yyyy.mm.dd.\",\n  \"mi-NZ\": \"dd/mm/yyyy\",\n  \"mk-MK\": \"dd.mm.yyyy\",\n  \"ml-IN\": \"dd-mm-yy\",\n  \"mn-MN\": \"yy.mm.dd\",\n  \"mn-Mong-CN\": \"yyyy/m/d\",\n  \"moh-CA\": \"m/d/yyyy\",\n  \"mr-IN\": \"dd-mm-yyyy\",\n  \"ms-BN\": \"dd/mm/yyyy\",\n  \"ms-MY\": \"dd/mm/yyyy\",\n  \"mt-MT\": \"dd/mm/yyyy\",\n  \"nb-NO\": \"dd.mm.yyyy\",\n  \"ne-NP\": \"m/d/yyyy\",\n  \"nl-BE\": \"d/mm/yyyy\",\n  \"nl-NL\": \"d-m-yyyy\",\n  \"nn-NO\": \"dd.mm.yyyy\",\n  \"nso-ZA\": \"yyyy/mm/dd\",\n  \"oc-FR\": \"dd/mm/yyyy\",\n  \"or-IN\": \"dd-mm-yy\",\n  \"pa-IN\": \"dd-mm-yy\",\n  \"pl-PL\": \"yyyy-mm-dd\",\n  \"prs-AF\": \"dd/mm/yy\",\n  \"ps-AF\": \"dd/mm/yy\",\n  \"pt-BR\": \"d/m/yyyy\",\n  \"pt-PT\": \"dd-mm-yyyy\",\n  \"qut-GT\": \"dd/mm/yyyy\",\n  \"quz-BO\": \"dd/mm/yyyy\",\n  \"quz-EC\": \"dd/mm/yyyy\",\n  \"quz-PE\": \"dd/mm/yyyy\",\n  \"rm-CH\": \"dd/mm/yyyy\",\n  \"ro-RO\": \"dd.mm.yyyy\",\n  \"ru-RU\": \"dd.mm.yyyy\",\n  \"rw-RW\": \"m/d/yyyy\",\n  \"sa-IN\": \"dd-mm-yyyy\",\n  \"sah-RU\": \"mm.dd.yyyy\",\n  \"se-FI\": \"d.m.yyyy\",\n  \"se-NO\": \"dd.mm.yyyy\",\n  \"se-SE\": \"yyyy-mm-dd\",\n  \"si-LK\": \"yyyy-mm-dd\",\n  \"sk-SK\": \"d. m. yyyy\",\n  \"sl-SI\": \"d.m.yyyy\",\n  \"sma-NO\": \"dd.mm.yyyy\",\n  \"sma-SE\": \"yyyy-mm-dd\",\n  \"smj-NO\": \"dd.mm.yyyy\",\n  \"smj-SE\": \"yyyy-mm-dd\",\n  \"smn-FI\": \"d.m.yyyy\",\n  \"sms-FI\": \"d.m.yyyy\",\n  \"sq-AL\": \"yyyy-mm-dd\",\n  \"sr-Cyrl-BA\": \"d.m.yyyy\",\n  \"sr-Cyrl-CS\": \"d.m.yyyy\",\n  \"sr-Cyrl-ME\": \"d.m.yyyy\",\n  \"sr-Cyrl-RS\": \"d.m.yyyy\",\n  \"sr-Latn-BA\": \"d.m.yyyy\",\n  \"sr-Latn-CS\": \"d.m.yyyy\",\n  \"sr-Latn-ME\": \"d.m.yyyy\",\n  \"sr-Latn-RS\": \"d.m.yyyy\",\n  \"sv-FI\": \"d.m.yyyy\",\n  \"sv-SE\": \"yyyy-mm-dd\",\n  \"sw-KE\": \"m/d/yyyy\",\n  \"syr-SY\": \"dd/mm/yyyy\",\n  \"ta-IN\": \"dd-mm-yyyy\",\n  \"te-IN\": \"dd-mm-yy\",\n  \"tg-Cyrl-TJ\": \"dd.mm.yy\",\n  \"th-TH\": \"d/m/yyyy\",\n  \"tk-TM\": \"dd.mm.yy\",\n  \"tn-ZA\": \"yyyy/mm/dd\",\n  \"tr-TR\": \"dd.mm.yyyy\",\n  \"tt-RU\": \"dd.mm.yyyy\",\n  \"tzm-Latn-DZ\": \"dd-mm-yyyy\",\n  \"ug-CN\": \"yyyy-m-d\",\n  \"uk-UA\": \"dd.mm.yyyy\",\n  \"ur-PK\": \"dd/mm/yyyy\",\n  \"uz-Cyrl-UZ\": \"dd.mm.yyyy\",\n  \"uz-Latn-UZ\": \"dd/mm yyyy\",\n  \"vi-VN\": \"dd/mm/yyyy\",\n  \"wo-SN\": \"dd/mm/yyyy\",\n  \"xh-ZA\": \"yyyy/mm/dd\",\n  \"yo-NG\": \"d/m/yyyy\",\n  \"zh-CN\": \"yyyy/m/d\",\n  \"zh-HK\": \"d/m/yyyy\",\n  \"zh-MO\": \"d/m/yyyy\",\n  \"zh-SG\": \"d/m/yyyy\",\n  \"zh-TW\": \"yyyy/m/d\",\n  \"zu-ZA\": \"yyyy/mm/dd\"\n};\nexports.language2LocalDateFormat = language2LocalDateFormat;\nvar dateFormat2LocationList = Object.keys(language2LocalDateFormat).reduce(function (ac, cr) {\n  ac[language2LocalDateFormat[cr]] = ac[language2LocalDateFormat[cr]] || [];\n  ac[language2LocalDateFormat[cr]].push(cr);\n  return ac;\n}, {});\nexports.dateFormat2LocationList = dateFormat2LocationList;\nvar dateFormatList = Object.keys(dateFormat2LocationList);\n/**\r\n *\r\n * @param {Date} date\r\n * @returns {String}\r\n */\n\nexports.dateFormatList = dateFormatList;\n\nfunction yyymmdd(date) {\n  return formatDateTime(date, 'yyyy/MM/dd');\n}\n\nvar dayNames = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\nexports.dayNames = dayNames;\nvar shortDayNames = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\nexports.shortDayNames = shortDayNames;\nvar monthNames = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\nexports.monthNames = monthNames;\nvar shortMonthNames = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\nexports.shortMonthNames = shortMonthNames;\nvar formatTokenRegex = /([,.\\-\\/])|([a-zA-Z0-9]+)/g; //more\n\nexports.formatTokenRegex = formatTokenRegex;\nvar DATE_TIME_TOKEN_RGX = /([^\\s.\\/:\\-,]+)|([.\\/:\\-,]+)/i;\n/**\r\n *\r\n * @param {Date} date\r\n * @param {String=} format\r\n * @returns {String}\r\n */\n\nexports.DATE_TIME_TOKEN_RGX = DATE_TIME_TOKEN_RGX;\n\nfunction formatDateString(date, format) {\n  format = format || 'dd/mm/yyyy';\n  var dt = date.getDate();\n  var day = date.getDay();\n  var month = date.getMonth();\n  var year = date.getFullYear();\n  return format.replace(formatTokenRegex, function (x) {\n    switch (x) {\n      case \"dddd\":\n        return dayNames[day];\n\n      case \"ddd\":\n        return shortDayNames[day];\n\n      case \"dd\":\n        return dt < 10 ? '0' + dt : '' + dt;\n\n      case \"d\":\n        return '' + dt;\n\n      case \"mmmm\":\n        return monthNames[month];\n\n      case \"mmm\":\n        return shortMonthNames[month];\n\n      case \"mm\":\n        return month + 1 < 10 ? '0' + (month + 1) : '' + (month + 1);\n\n      case \"m\":\n        return '' + (month + 1);\n\n      case 'yy':\n        return (year + '').match(/..$/)[0];\n\n      case 'yyyy':\n        return year + '';\n\n      default:\n        return x;\n    }\n  });\n}\n\nvar LOCAL_DATE_FORMAT = function () {\n  var d = new Date(2021, 4, 4);\n  var s = d.toLocaleDateString();\n  var fm = s.replace(new RegExp(DATE_TIME_TOKEN_RGX.source, 'g'), function (token) {\n    switch (token) {\n      case '2021':\n        return 'yyyy';\n\n      case '5':\n        return 'M';\n\n      case '05':\n        return 'MM';\n\n      case '4':\n        return 'd';\n\n      case '04':\n        return 'dd';\n\n      default:\n        return token;\n    }\n  });\n  return fm;\n}();\n\nexports.LOCAL_DATE_FORMAT = LOCAL_DATE_FORMAT;\n\nvar LOCAL_DATE_TIME_FORMAT = function () {\n  var d = new Date(2021, 4, 4, 6, 7, 3);\n  var s = d.toLocaleString();\n  var fm = s.replace(new RegExp(DATE_TIME_TOKEN_RGX.source, 'g'), function (token) {\n    switch (token) {\n      case '2021':\n        return 'yyyy';\n\n      case '5':\n        return 'M';\n\n      case '05':\n        return 'MM';\n\n      case '4':\n        return 'd';\n\n      case '04':\n        return 'dd';\n\n      case '06':\n        if (new Date(2021, 4, 4, 18, 7, 3).toLocaleString().indexOf(18) >= 0) return 'HH';\n        return 'hh';\n\n      case '6':\n        return 'h';\n\n      case '07':\n        return 'mm';\n\n      case '7':\n        return 'm';\n\n      case '03':\n        return 'ss';\n\n      case '3':\n        return 's';\n\n      case 'AM':\n        return 'a';\n\n      default:\n        return token;\n    }\n  });\n  return fm;\n}();\n\nexports.LOCAL_DATE_TIME_FORMAT = LOCAL_DATE_TIME_FORMAT;\n\nfunction formartDateString() {\n  window.ALogger.warn(\"spelled incorrectly: formartDateString\");\n  return formatDateString.apply(null, arguments);\n}\n/**\r\n *\r\n * @param {String} text\r\n * @param {String} format\r\n * @returns {Date}\r\n */\n\n\nfunction parseDateString(text, format) {\n  text = (0, _stringFormat.nonAccentVietnamese)(text).toLowerCase();\n  format = (0, _stringFormat.nonAccentVietnamese)(format).toLowerCase();\n  var textTokens = text.match(formatTokenRegex) || [];\n  var formatTokens = format.match(formatTokenRegex) || [];\n  var year = new Date().getFullYear();\n  var month = 0;\n  var day = 1;\n  var n = Math.min(textTokens.length, formatTokens.length);\n  var textToken;\n  var formatToken;\n\n  for (var i = 0; i < n; ++i) {\n    textToken = textTokens[i];\n    formatToken = formatTokens[i];\n\n    switch (formatToken) {\n      case \"dd\":\n        day = parseInt(textToken);\n        break;\n\n      case \"d\":\n        day = parseInt(textToken);\n        break;\n\n      case \"mmmm\":\n        month = monthNames.indexOf(textToken.substr(0, 1).toUpperCase() + textToken.substr(1).toLowerCase());\n        break;\n\n      case \"mmm\":\n        month = shortMonthNames.indexOf(textToken.substr(0, 1).toUpperCase() + textToken.substr(1).toLowerCase());\n        break;\n\n      case \"mm\":\n      case 'MM':\n        month = parseInt(textToken) - 1;\n        break;\n\n      case \"m\":\n      case 'M':\n        month = parseInt(textToken) - 1;\n        break;\n\n      case 'yy':\n        year = Math.floor(new Date().getFullYear() / 100) * 100 + parseInt(textToken);\n        break;\n\n      case 'yyyy':\n        year = parseInt(textToken);\n        break;\n\n      default:\n        if (textToken !== formatToken) throw new Error('Unexpected token ' + textToken);\n    }\n  }\n\n  if (isNaN(year)) throw new Error('Invalid year');\n\n  if (isNaN(month) && month !== -1) {\n    throw new Error('Invalid month');\n  } else {\n    month = Math.max(0, Math.min(11, month));\n  }\n\n  if (!isNaN(day)) {\n    day = Math.max(1, Math.min(31, day));\n\n    if (!isNaN(month)) {\n      day = Math.min(daysInMonth(2000, month), day);\n      if (!isNaN(year)) day = Math.min(daysInMonth(year, month), day);\n    }\n  } else {\n    throw new Error('Invalid day');\n  }\n\n  return new Date(year, month, day);\n}\n/***\r\n *\r\n * @param date\r\n * @param {number} delta - must be a integer\r\n * @param {boolean=} gmt\r\n * @returns {Date}\r\n */\n\n\nfunction addDate(date, delta, gmt) {\n  delta = Math.round(delta);\n  var res = beginOfDay(date, gmt);\n\n  if (gmt) {\n    res.setUTCDate(date.getUTCDate() + delta);\n  } else {\n    res.setDate(date.getDate() + delta);\n  }\n\n  return beginOfDay(res, gmt);\n}\n/**\r\n * @param {Date} date\r\n * @param {boolean=} gmt\r\n * @return {Date}\r\n */\n\n\nfunction prevDate(date, gmt) {\n  return addDate(date, -1, gmt);\n}\n/**\r\n * @param {Date} date\r\n * @param {boolean=} gmt\r\n * @return {Date}\r\n */\n\n\nfunction nextDate(date, gmt) {\n  return addDate(date, 1, gmt);\n}\n/****\r\n *\r\n * @param {Date} date\r\n * @param {boolean=} gmt\r\n * @param {number=} startDayOfWeek\r\n * @returns {number}\r\n */\n\n\nfunction weekIndexOf(date, gmt, startDayOfWeek) {\n  if (typeof startDayOfWeek !== \"number\") startDayOfWeek = getDefaultFirstDayOfWeek();\n  var by = beginOfYear(date, gmt);\n  var byw = beginOfWeek(by, gmt, startDayOfWeek);\n  var bw = beginOfWeek(date, gmt, startDayOfWeek);\n\n  if (compareYear(by, bw) > 0) {\n    return weekIndexOf(bw, gmt, startDayOfWeek);\n  }\n\n  var i = compareYear(byw, by) < 0 ? -1 : 0;\n  return Math.floor(compareDate(date, byw, gmt) / 7) + i;\n}\n/***\r\n *\r\n * @param {number} year\r\n * @param {number} weekIdx\r\n * @param {boolean=} gmt\r\n * @param {number=} startDayOfWeek\r\n * @returns {Date}\r\n */\n\n\nfunction weekInYear(year, weekIdx, gmt, startDayOfWeek) {\n  if (typeof startDayOfWeek !== \"number\") startDayOfWeek = getDefaultFirstDayOfWeek();\n  var bg = new Date(year, 0, 1);\n  if (gmt) bg.setUTCHours(0);\n  var byw = beginOfWeek(bg, gmt, startDayOfWeek);\n  var d = compareYear(bg, byw) > 0 ? MILLIS_PER_DAY * 7 : 0;\n  return new Date(byw.getTime() + d + weekIdx * 7 * MILLIS_PER_DAY);\n}\n/**\r\n * @param {Date} date\r\n * @param {Boolean=} gmt default:false\r\n * @return {Date} date at xx:xx:xx:00\r\n */\n\n\nfunction beginOfSecond(date, gmt) {\n  var res = new Date(date.getTime());\n  if (gmt) res.setUTCMilliseconds(0);else res.setMilliseconds(0);\n  return res;\n}\n/**\r\n * @param {Date} date\r\n * @param {Boolean=} gmt default:false\r\n * @return {Date} date at xx:xx:00\r\n */\n\n\nfunction beginOfMinute(date, gmt) {\n  var res = new Date(date.getTime());\n  if (gmt) res.setUTCSeconds(0, 0);else res.setSeconds(0, 0);\n  return res;\n}\n/**\r\n * @param {Date} date\r\n * @param {Boolean=} gmt default:false\r\n * @return {Date} date at 00:00\r\n */\n\n\nfunction beginOfDay(date, gmt) {\n  var res = new Date(date.getTime());\n  if (gmt) res.setUTCHours(0, 0, 0, 0);else res.setHours(0, 0, 0, 0);\n  return res;\n}\n/**\r\n * @param {Date} date\r\n * @param {Boolean=} gmt default:false\r\n * @return {Date} date at xx:00\r\n */\n\n\nfunction beginOfHour(date, gmt) {\n  var res = new Date(date.getTime());\n  if (gmt) res.setUTCMinutes(0, 0, 0);else res.setMinutes(0, 0, 0);\n  return res;\n}\n/**\r\n * @param {Date} date\r\n * @param {Boolean=} gmt default:false\r\n * @param {number=} startDayOfWeek default:0\r\n * @return {Date} date at 00:00\r\n */\n\n\nfunction beginOfWeek(date, gmt, startDayOfWeek) {\n  if (typeof startDayOfWeek !== \"number\") startDayOfWeek = getDefaultFirstDayOfWeek();\n  var res = beginOfDay(date, gmt);\n  if (isNaN(res.getTime())) return res;\n\n  while ((gmt ? res.getUTCDay() : res.getDay()) !== startDayOfWeek) {\n    res = prevDate(res, gmt);\n  }\n\n  return res;\n}\n/***\r\n *\r\n * @param {Date} date\r\n * @param {number} delta\r\n * @param {boolean=} gmt\r\n */\n\n\nfunction addWeek(date, delta, gmt) {\n  date = beginOfWeek(date, gmt);\n  delta = Math.round(delta);\n  return addDate(date, delta * 7, gmt);\n}\n/****\r\n *\r\n * @param {Date} date\r\n * @param {boolean=} gmt\r\n * @returns {Date}\r\n */\n\n\nfunction nextWeek(date, gmt) {\n  return addWeek(date, 1, gmt);\n}\n/****\r\n *\r\n * @param {Date} date\r\n * @param {boolean=} gmt\r\n * @returns {Date}\r\n */\n\n\nfunction prevWeek(date, gmt) {\n  return addWeek(date, -1, gmt);\n}\n/**\r\n * @param {Date} date\r\n * @param {Boolean=} gmt default:false\r\n * @return {Date} date at 00:00 AM\r\n */\n\n\nfunction beginOfMonth(date, gmt) {\n  var m = gmt ? date.getUTCMonth() : date.getMonth();\n  var y = gmt ? date.getUTCFullYear() : date.getFullYear();\n  var res = new Date();\n  if (gmt) res.setUTCFullYear(y, m, 1);else res.setFullYear(y, m, 1);\n  return beginOfDay(res, gmt);\n}\n/**\r\n * @param {Date} date\r\n * @param {Boolean=} gmt default:false\r\n * @return {Date} date at 00:00 AM\r\n */\n\n\nfunction beginOfQuarter(date, gmt) {\n  var y = gmt ? date.getUTCFullYear() : date.getFullYear();\n  var m = gmt ? date.getUTCMonth() : date.getMonth();\n  m = Math.floor(m / 3) * 3;\n  var res = new Date();\n  if (gmt) res.setUTCFullYear(y, m, 1);else res.setFullYear(y, m, 1);\n  return beginOfDay(res, gmt);\n}\n/***\r\n *\r\n * @param {Date} date\r\n * @param {number=} delta\r\n * @param {boolean=} gmt\r\n */\n\n\nfunction addQuarter(date, delta, gmt) {\n  delta = Math.round(delta);\n  date = beginOfQuarter(date, gmt);\n  return addMonth(date, delta * 3, gmt);\n}\n/***\r\n *\r\n * @param {Date} date\r\n * @param {boolean=} gmt\r\n * @returns {Date}\r\n */\n\n\nfunction nextQuarter(date, gmt) {\n  date = beginOfQuarter(date);\n  return nextMonth(nextMonth(nextMonth(date, gmt), gmt), gmt);\n}\n/***\r\n *\r\n * @param {Date} date\r\n * @param {boolean=} gmt\r\n * @returns {Date}\r\n */\n\n\nfunction prevQuarter(date, gmt) {\n  date = beginOfQuarter(date, gmt);\n  return prevMonth(prevMonth(prevMonth(date, gmt), gmt), gmt);\n}\n/**\r\n * @param {Date} date\r\n * @param {Boolean=} gmt default:false\r\n * @return {Date} date at 00:00 AM\r\n */\n\n\nfunction beginOfYear(date, gmt) {\n  var y = gmt ? date.getUTCFullYear() : date.getFullYear();\n  var res = new Date();\n  if (gmt) res.setUTCFullYear(y, 0, 1);else res.setFullYear(y, 0, 1);\n  return beginOfDay(res, gmt);\n}\n/**\r\n * @param {Date} date\r\n * @param {number} delta\r\n * @param {Boolean=} gmt default:false\r\n * @return {Date} date at 00:00 AM\r\n */\n\n\nfunction addYear(date, delta, gmt) {\n  delta = Math.round(delta);\n  var y = gmt ? date.getUTCFullYear() : date.getFullYear();\n  var res = new Date();\n  if (gmt) res.setUTCFullYear(y + delta, 0, 1);else res.setFullYear(y + delta, 0, 1);\n  return beginOfDay(res, gmt);\n}\n/**\r\n * @param {Date} date\r\n * @param {Boolean=} gmt default:false\r\n * @return {Date} date at 00:00 AM\r\n */\n\n\nfunction nextYear(date, gmt) {\n  return addYear(date, 1, gmt);\n}\n/**\r\n * @param {Date} date\r\n * @param {Boolean=} gmt default:false\r\n * @return {Date} date at 00:00 AM\r\n */\n\n\nfunction prevYear(date, gmt) {\n  return addYear(date, -1, gmt);\n}\n/**\r\n * @param {Date} date0\r\n * @param {Date} date1\r\n * @param {Boolean=} gmt default:false\r\n * @return {number}\r\n */\n\n\nfunction compareDate(date0, date1, gmt) {\n  date0 = beginOfDay(date0, gmt);\n  date1 = beginOfDay(date1, gmt); //Date(1975, 5, 12) has 1 hour extend\n\n  return Math.floor((date0.getTime() - date1.getTime()) / 86400000);\n}\n/**\r\n * @param {Date} date0\r\n * @param {Date} date1\r\n * @param {Boolean=} gmt default:false\r\n * @return {number}\r\n */\n\n\nfunction compareMonth(date0, date1, gmt) {\n  var m0 = gmt ? date0.getUTCMonth() : date0.getMonth();\n  var y0 = gmt ? date0.getUTCFullYear() : date0.getFullYear();\n  var m1 = gmt ? date1.getUTCMonth() : date1.getMonth();\n  var y1 = gmt ? date1.getUTCFullYear() : date1.getFullYear();\n  return (y0 - y1) * 12 + (m0 - m1);\n}\n/***\r\n *\r\n * @param {Date} date0\r\n * @param {Date} date1\r\n * @param {boolean=}gmt\r\n * @returns {number}\r\n */\n\n\nfunction compareYear(date0, date1, gmt) {\n  var y0 = gmt ? date0.getUTCFullYear() : date0.getFullYear();\n  var y1 = gmt ? date1.getUTCFullYear() : date1.getFullYear();\n  return y0 - y1;\n}\n/**\r\n *\r\n * @param {Date} date\r\n * @param {number} delta\r\n * @param {boolean=} gmt\r\n * @returns {Date}\r\n */\n\n\nfunction addMonth(date, delta, gmt) {\n  var res = beginOfMonth(date, gmt);\n\n  if (gmt) {\n    res.setUTCMonth(res.getUTCMonth() + delta);\n  } else {\n    res.setMonth(res.getMonth() + delta);\n  }\n\n  return beginOfDay(res, gmt);\n}\n/**\r\n *\r\n * @param {Date} date\r\n * @param {number} delta\r\n * @param {boolean=} gmt\r\n * @returns {Date}\r\n */\n\n\nfunction addMonthKeepDate(date, delta, gmt) {\n  var res = addMonth(date, delta, gmt);\n  var dateNum = gmt ? date.getUTCDate() : date.getDate();\n  var dim = daysInMonth(gmt ? date.getUTCFullYear() : date.getFullYear(), gmt ? date.getUTCFullYear() : date.getFullYear());\n  dateNum = Math.min(dateNum, dim);\n  res = addDate(res, dateNum - 1, gmt);\n  return res;\n}\n/**\r\n *\r\n * @param {Date} date\r\n * @param {number} delta\r\n * @param {boolean=} gmt\r\n * @returns {Date}\r\n */\n\n\nfunction addMonthKeepDateTime(date, delta, gmt) {\n  var dayOffset = date.getTime() - beginOfDay(date, gmt).getTime();\n  var res = addMonthKeepDate(date, delta, gmt);\n  res = new Date(res.getTime() + dayOffset);\n  return res;\n}\n/**\r\n *\r\n * @param {Date} date\r\n * @param {boolean=} gmt\r\n * @returns {Date}\r\n */\n\n\nfunction nextMonth(date, gmt) {\n  return addMonth(date, 1, gmt);\n}\n/**\r\n *\r\n * @param {Date} date\r\n * @param {boolean=} gmt\r\n * @returns {Date}\r\n */\n\n\nfunction prevMonth(date, gmt) {\n  return addMonth(date, -1, gmt);\n}\n/**\r\n *\r\n * @param {Number} year\r\n * @param {Number} month\r\n * @returns {Number}\r\n */\n\n\nfunction daysInMonth(year, month) {\n  var start = new Date(year, month, 1);\n  var end = nextMonth(start);\n  return compareDate(end, start);\n}\n/****\r\n *\r\n * @param text\r\n * @param format support d, M, Y, Q\r\n * @param {*=} opt\r\n * @returns {Date}\r\n */\n\n\nfunction parseDateTime(text, format, opt) {\n  opt = Object.assign({\n    startDayOfWeek: 0\n  }, opt);\n  var tokenMap = {};\n  var txtRgx = new RegExp(DATE_TIME_TOKEN_RGX.source, 'g');\n  var fmRgx = new RegExp(DATE_TIME_TOKEN_RGX.source, 'g');\n  var tkMatched, fmMatched;\n  tkMatched = txtRgx.exec(text);\n  fmMatched = fmRgx.exec(format);\n  var tkText, fmText;\n\n  while (tkMatched && fmMatched) {\n    tkText = tkMatched[0];\n    fmText = fmMatched[0];\n\n    switch (fmText) {\n      case 'd':\n      case 'dd':\n        tokenMap.day = parseInt(tkText, 10);\n        break;\n\n      case 'w':\n      case 'ww':\n        tokenMap.week = parseInt(tkText, 10) - 1;\n        break;\n\n      case 'M':\n      case 'MM':\n        tokenMap.month = parseInt(tkText, 10) - 1;\n        break;\n\n      case 'y':\n      case 'yyyy':\n        tokenMap.year = parseInt(tkText, 10);\n        break;\n\n      case 'h':\n      case 'hh':\n      case 'H':\n      case 'HH':\n        tokenMap.hour = parseInt(tkText, 10);\n        break;\n\n      case 'm':\n      case 'mm':\n        tokenMap.minute = parseInt(tkText, 10);\n        break;\n\n      case 'a':\n        if (tkText === 'AM' || tkText === 'PM') tokenMap.period = tkText;else throw new Error('Invalid period(a):' + tkText);\n        break;\n\n      case 'Q':\n      case 'QQ':\n        tokenMap.month = (parseInt(tkText, 10) - 1) * 3;\n        break;\n\n      default:\n        if (tkText !== fmText) {\n          throw new Error('Unexpected token ' + JSON.stringify(tkText) + ' at ' + tkMatched.index + ', expected ' + fmText);\n        }\n\n    }\n\n    tkMatched = txtRgx.exec(text);\n    fmMatched = fmRgx.exec(format);\n  }\n\n  if (tokenMap.period) {\n    if (tokenMap.period === 'AM' && tokenMap.hour === 12) tokenMap.hour = 0;else if (tokenMap.period === \"PM\" && tokenMap.hour < 12) tokenMap.hour += 12;\n  }\n\n  var paramNames = ['year', 'month', 'day', 'hour', 'minute', 'second'];\n  var paramShortNames = ['y', 'M', 'd', 'h', 'm', 's'];\n  var paramDefaultValues = [new Date().getFullYear(), 0, 1, 0, 0, 0];\n  var resParam = paramDefaultValues.slice();\n  var paramList = paramNames.reduce(function (ac, cr, i) {\n    var sN = paramShortNames[i];\n\n    if (cr in tokenMap) {\n      ac += sN;\n    }\n\n    return ac;\n  }, '');\n  var paramName;\n\n  for (var i = 0; i < paramNames.length; ++i) {\n    paramName = paramNames[i];\n    resParam[i] = tokenMap[paramName] === undefined ? paramDefaultValues[i] : tokenMap[paramName];\n  }\n\n  var weekDate;\n\n  if ('week' in tokenMap && !isNaN(tokenMap.week)) {\n    weekDate = weekInYear(resParam[0], tokenMap.week, false, opt.startDayOfWeek);\n    resParam[1] = weekDate.getMonth();\n    resParam[2] = weekDate.getDate();\n  }\n\n  switch (paramList) {\n    case 'hm':\n      resParam.splice(1, 2, new Date().getMonth(), new Date().getDate());\n      break;\n  }\n\n  return new Date(resParam[0], resParam[1], resParam[2], resParam[3], resParam[4], resParam[5]);\n}\n/***\r\n *\r\n * @param {Date} date\r\n * @param {string} format\r\n * @param {*=} opt\r\n * @return {string}\r\n */\n\n\nfunction formatDateTime(date, format, opt) {\n  opt = Object.assign({\n    startDayOfWeek: 0\n  }, opt);\n  var fmRgx = new RegExp(DATE_TIME_TOKEN_RGX.source, 'g');\n  return format.replace(fmRgx, function (s) {\n    var res = s;\n\n    switch (s) {\n      case 'd':\n      case 'dd':\n        res = (0, _int.integerZeroPadding)(date.getDate(), s.length);\n        break;\n\n      case 'w':\n      case 'ww':\n        res = (0, _int.integerZeroPadding)(weekIndexOf(date, false, opt.startDayOfWeek || 0) + 1, s.length);\n        break;\n\n      case 'M':\n      case 'MM':\n        res = (0, _int.integerZeroPadding)(date.getMonth() + 1, s.length);\n        break;\n\n      case 'MMM':\n        res = shortMonthNames[date.getMonth()];\n        break;\n\n      case 'MMMM':\n        res = monthNames[date.getMonth()];\n        break;\n\n      case 'y':\n      case 'yyyy':\n        res = (0, _int.integerZeroPadding)(date.getFullYear(), s.length);\n        break;\n\n      case 'yy':\n        res = (0, _int.integerZeroPadding)(date.getFullYear() % 100, s.length);\n        break;\n\n      case 'a':\n        res = date.getHours() < 12 ? \"AM\" : \"PM\";\n        break;\n\n      case \"H\":\n      case 'HH':\n        res = (0, _int.integerZeroPadding)(date.getHours(), s.length);\n        break;\n\n      case 'h':\n      case 'hh':\n        res = (0, _int.integerZeroPadding)(1 + (date.getHours() - 1) % 12, s.length);\n        break;\n\n      case 'm':\n      case 'mm':\n        res = (0, _int.integerZeroPadding)(date.getMinutes(), s.length);\n        break;\n\n      case 'Q':\n      case 'QQ':\n        res = (0, _int.integerZeroPadding)(Math.floor(date.getMonth() / 3) + 1, s.length);\n        break;\n    }\n\n    return res;\n  });\n}\n\nvar number = [/[+-]?\\d+$/, function (matched) {\n  return new Date(parseInt(matched[0]));\n}];\nvar reISO = [/^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*))(?:Z|(\\+|-)([\\d|:]*))?$/, function (matched) {\n  return new Date(matched[0]);\n}];\nvar reMsAjax = [/^\\/Date\\((d|-|.*)\\)[\\/|\\\\]$/, function (matched) {\n  return new Date(parseInt(matched[1]));\n}];\nvar reString = [/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun)\\s+([a-zA-Z]{3})\\s+[\\d\\s:]+GMT[\\d+]+\\s*\\([^)]+\\)$/, function (matched) {\n  return new Date(matched[0]);\n}];\n\nfunction implicitDate(o) {\n  var res = null;\n\n  if (o instanceof Date) {\n    res = new Date(o.getTime());\n  } else if (typeof o === \"number\") {\n    res = new Date(o);\n  } else if (typeof o === 'string') {\n    [reString, reISO, reMsAjax, number].some(function (rule) {\n      var matched = o.match(rule[0]);\n\n      if (matched) {\n        res = rule[1](matched);\n        return true;\n      }\n\n      return false;\n    });\n  }\n\n  if (res && isNaN(res.getTime())) res = null;\n  return res;\n}\n/***\r\n *\r\n * @param {null|{dayOffset?: number, duration?: number}}range\r\n * @param opt\r\n */\n\n\nfunction formatTimeRange24(range, opt) {\n  opt = Object.assign({\n    nextDayText: !window.systemconfig || typeof window.systemconfig.language !== \"string\" || window.systemconfig.language.toLowerCase().indexOf('vn') >= 0 || window.systemconfig.language.toLowerCase().indexOf('vi') >= 0 ? 'Hôm sau' : 'Next day'\n  }, opt || {});\n  range = range || {};\n  var m0 = Math.floor(range.dayOffset / MILLIS_PER_MINUTE);\n  var h0 = Math.floor(m0 / 60);\n  var d0 = Math.floor(h0 / 24);\n  m0 = m0 % 60;\n  h0 = h0 % 24;\n  var endOffset = range.dayOffset + range.duration;\n  var m1 = Math.floor(endOffset / MILLIS_PER_MINUTE);\n  var h1 = Math.floor(m1 / 60);\n  var d1 = Math.floor(h1 / 24);\n  m1 = m1 % 60;\n  h1 = h1 % 24;\n  var res = h0 + ':' + (0, _int.integerZeroPadding)(m0, 2) + ' - ' + h1 + ':' + (0, _int.integerZeroPadding)(m1, 2);\n  if (d0 !== d1) res += ' (' + opt.nextDayText + ')';\n  return res;\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Time/datetime.js?");

/***/ }),

/***/ "./node_modules/absol/src/XML/XML.js":
/*!*******************************************!*\
  !*** ./node_modules/absol/src/XML/XML.js ***!
  \*******************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _XMLDeclarationNode = _interopRequireDefault(__webpack_require__(/*! ./XMLDeclarationNode */ \"./node_modules/absol/src/XML/XMLDeclarationNode.js\"));\n\nvar _XMLElement = _interopRequireDefault(__webpack_require__(/*! ./XMLElement */ \"./node_modules/absol/src/XML/XMLElement.js\"));\n\nvar _XMLTextNode = _interopRequireDefault(__webpack_require__(/*! ./XMLTextNode */ \"./node_modules/absol/src/XML/XMLTextNode.js\"));\n\nvar _XMLConstant = _interopRequireDefault(__webpack_require__(/*! ./XMLConstant */ \"./node_modules/absol/src/XML/XMLConstant.js\"));\n\nvar _XMLCommentNode = _interopRequireDefault(__webpack_require__(/*! ./XMLCommentNode */ \"./node_modules/absol/src/XML/XMLCommentNode.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\r\n * \r\n * @param {RegExp} regex \r\n */\nfunction getRegexBody(regex) {\n  return regex.toString().match(/^\\/(.+)\\/([gimuy]*)$/)[1];\n}\n\nvar BEGIN_TAG = 1;\nvar END_TAG = 2;\nvar CDATA = 3;\nvar DECLARATION = 4;\nvar COMMENT = 5;\nvar TEXT = 6;\nvar identRgx = /[^\\s\\\"\\r\\n\\'\\!\\/=\\>\\<\\]\\[\\?\\+\\.]+/;\nvar spaceRgx = /[\\s\\r\\n]+/;\nvar stringRgx = /\\\"(([^\\\"\\\\]*|(\\\\.))*)\\\"/;\nvar textRgx = /[^\\<\\-]+/;\nvar doctypeOpenRgx = /\\<\\!DOCTYPE/;\nvar commentOpenRgx = /\\<!\\-\\-/;\nvar commentCloseRgx = /\\-\\-\\>/;\nvar cdataOpenRgx = /\\<\\!\\[CDATA\\[/;\nvar cdataCloseRgx = /\\]\\]\\>/;\nvar openRgx = /\\</;\nvar openEndTagRgx = /\\<\\//;\nvar closeRgx = /\\>/;\nvar shortCloseRgx = /\\/\\>/;\nvar declarationOpenRgx = /\\<\\?/;\nvar declarationCloseRgx = /\\?\\>/;\nvar assignOpRgx = /=/;\nvar tokenRgxBody = '(' + [spaceRgx, doctypeOpenRgx, declarationOpenRgx, cdataOpenRgx, commentOpenRgx, openEndTagRgx, openRgx, assignOpRgx, stringRgx, commentCloseRgx, identRgx, declarationCloseRgx, shortCloseRgx, closeRgx, cdataCloseRgx, textRgx].map(function (e) {\n  return getRegexBody(e);\n}).join(')|(') + ')';\nvar tokenType = {\n  space: spaceRgx,\n  doctypeOpen: doctypeOpenRgx,\n  declarationOpen: declarationOpenRgx,\n  cdataOpen: cdataOpenRgx,\n  commentOpen: commentOpenRgx,\n  openEndTag: openEndTagRgx,\n  open: openRgx,\n  ident: identRgx,\n  assignOp: assignOpRgx,\n  string: stringRgx,\n  commentClose: commentCloseRgx,\n  declarationClose: declarationCloseRgx,\n  shortClose: shortCloseRgx,\n  close: closeRgx,\n  cdataClose: cdataCloseRgx,\n  text: textRgx\n};\nvar tokenRgx = new RegExp(tokenRgxBody);\n/**\r\n * \r\n * @typedef {Object} Token\r\n * @property {String} text\r\n * @property {*} matched\r\n */\n\n/**\r\n * \r\n * @param {String} text \r\n * @returns {Array<Token>}\r\n */\n\nfunction xmlTokenize(text) {\n  var texts = text.match(new RegExp(tokenRgxBody, 'g'));\n  return text.match(new RegExp(tokenRgxBody, 'g')).map(function (tokenText, i) {\n    var result = {\n      text: tokenText,\n      matched: {}\n    };\n\n    for (var tType in tokenType) {\n      var matched = tokenText.match(tokenType[tType]);\n\n      if (matched) {\n        if (matched[0] == tokenText) result.matched[tType] = matched;\n      }\n    }\n\n    return result;\n  });\n}\n/**\r\n * @typedef {Object} XMLPaseInfo\r\n * @property {Array<Token>} tokens\r\n * @property {Number} type\r\n * @property {Number} start\r\n * @property {Number} end\r\n * @property {Error} error\r\n * @property {Boolean} closed\r\n * \r\n * \r\n * \r\n * @typedef {Object} XMLParseNode \r\n * @property {XMLPaseInfo} __xml__\r\n * @property {String} tagName\r\n * @property {*} attributes\r\n * @property {String} text\r\n */\n\n/**\r\n * \r\n * @param {Array<Token>} tokens \r\n * @param {Number} i \r\n * @returns {XMLParseNode}\r\n */\n\n\nfunction matchAssign(tokens, i) {\n  var result = {\n    __xml__: {\n      start: i\n    }\n  };\n  var cToken;\n\n  if (i < tokens.length) {\n    cToken = tokens[i];\n\n    if (cToken.matched['ident']) {\n      result.key = cToken.text;\n      ++i;\n\n      if (i < tokens.length) {\n        cToken = tokens[i];\n\n        if (cToken.matched['space']) {\n          ++i;\n        }\n\n        if (i < tokens.length) {\n          cToken = tokens[i];\n\n          if (cToken.matched['assignOp']) {\n            ++i;\n\n            if (i < tokens.length) {\n              cToken = tokens[i];\n\n              if (cToken.matched['space']) {\n                ++i;\n              }\n\n              if (i < tokens.length) {\n                cToken = tokens[i];\n\n                if (cToken.matched['string']) {\n                  result.value = cToken.matched.string[1];\n                  ++i;\n                } else {\n                  result.__xml__.error = new Error('\"' + cToken.text + '\"' + 'found, expected string');\n                }\n              } else {\n                result.__xml__.error = new Error('End of data found, expected ident');\n              }\n            } else {\n              result.__xml__.error = new Error('End of data found, expected ident');\n            }\n          } else {\n            result.__xml__.error = new Error('\"' + cToken.text + '\"' + 'found, expected =');\n          }\n        } else {\n          result.__xml__.error = new Error('End of data found, expected =');\n        }\n      } else {\n        result.__xml__.error = new Error('End of data found, expected =');\n      }\n    } else {\n      result.__xml__.error = new Error('\"' + cToken.text + '\"' + 'found, expected ident');\n    }\n  } else {\n    result.__xml__.error = new Error('End of data found, expected ident');\n  }\n\n  result.__xml__.end = i;\n  return result;\n}\n/**\r\n * \r\n * @param {Array<Token>} tokens \r\n * @param {Number} i \r\n * @returns {XMLParseNode}\r\n */\n\n\nfunction matchBeginTag(tokens, i) {\n  var result = {\n    __xml__: {\n      type: BEGIN_TAG,\n      start: i\n    }\n  };\n  var cToken;\n\n  if (i < tokens.length) {\n    cToken = tokens[i];\n\n    if (cToken.matched['open']) {\n      ++i;\n\n      if (i < tokens.length) {\n        cToken = tokens[i];\n\n        if (cToken.matched['ident']) {\n          result.tagName = cToken.text;\n          ++i;\n\n          if (i < tokens.length) {\n            var finished = false; //when find the close symbol\n\n            while (i < tokens.length) {\n              cToken = tokens[i];\n\n              if (cToken.matched['space']) {\n                ++i;\n              } //skip space between attributes\n\n\n              if (i < tokens.length) {\n                cToken = tokens[i];\n\n                if (cToken.matched['shortClose']) {\n                  result.__xml__.closed = true;\n                  ++i;\n                  finished = true;\n                  break;\n                } else if (cToken.matched['close']) {\n                  result.__xml__.closed = false;\n                  ++i;\n                  finished = true;\n                  break;\n                } else if (tokens[i - 1].matched['space']) {\n                  var assign = matchAssign(tokens, i);\n\n                  if (!assign.__xml__.error) {\n                    result.attributes = result.attributes || {};\n                    result.attributes[assign.key] = assign.value;\n                    i = assign.__xml__.end;\n                  } else if (cToken.matched['ident']) {\n                    result.attributes = result.attributes || {};\n                    result.attributes[cToken.text] = true; // a flag\n\n                    ++i;\n                  } else {\n                    //TODO: we can ignore some error here, the same with order Match* function\n                    result.__xml__.error = new Error('\"' + cToken.text + '\"' + 'found, expected > or indent');\n                    break;\n                  }\n                } else {\n                  //TODO: we can ignore some error here\n                  result.__xml__.error = new Error('\"' + cToken.text + '\"' + 'found, expected > or indent');\n                  break;\n                }\n              } else {\n                result.__xml__.error = new Error('End of data found, expected /> or >');\n                break;\n              }\n            }\n\n            if (!finished && !result.__xml__.error) {\n              result.__xml__.error = new Error('End of data found, expected /> or >');\n            }\n          } else {\n            result.__xml__.error = new Error('End of data found, expected /> or >');\n          }\n        } else {\n          result.__xml__.error = new Error('Expected indent');\n        }\n      } else {\n        result.__xml__.error = new Error('End of data found, expected indent');\n      }\n\n      result.__xml__.end = i;\n    } else {\n      result.__xml__.error = new Error('\"' + cToken.text + '\"' + 'found, expected <');\n    }\n  } else {\n    result.__xml__.error = new Error('End of data found, expected <');\n  }\n\n  result.__xml__.end = i;\n  return result;\n}\n/**\r\n * \r\n * @param {Array<Token>} tokens \r\n * @param {Number} i \r\n * @returns {XMLParseNode}\r\n */\n\n\nfunction matchEndTag(tokens, i) {\n  var result = {\n    __xml__: {\n      type: END_TAG,\n      closed: true,\n      start: i\n    }\n  };\n  var cToken;\n\n  if (i < tokens.length) {\n    cToken = tokens[i];\n\n    if (cToken.matched['openEndTag']) {\n      ++i;\n\n      if (i < tokens.length) {\n        cToken = tokens[i];\n\n        if (cToken.matched['ident']) {\n          result.tagName = cToken.text;\n          ++i;\n\n          if (i < tokens.length) {\n            var finished = false; //when find the close symbol\n\n            while (i < tokens.length) {\n              cToken = tokens[i];\n\n              if (cToken.matched['space']) {\n                ++i;\n              } //skip space between attributes\n\n\n              if (i < tokens.length) {\n                cToken = tokens[i];\n\n                if (cToken.matched['close']) {\n                  ++i;\n                  finished = true;\n                  break;\n                } else if (tokens[i - 1].matched['space']) {\n                  var assign = matchAssign(tokens, i);\n\n                  if (!assign.__xml__.error) {\n                    result.attributes = result.attributes || {};\n                    result.attributes[assign.key] = assign.value;\n                    i = assign.__xml__.end;\n                  } else if (cToken.matched['ident']) {\n                    result.attributes = result.attributes || {};\n                    result.attributes[cToken.text] = true; // a flag\n\n                    ++i;\n                  } else {\n                    result.__xml__.error = new Error('\"' + cToken.text + '\"' + 'found, expected > or indent');\n                  }\n                } else {\n                  result.__xml__.error = new Error('\"' + cToken.text + '\"' + 'found, expected > or indent');\n                }\n              } else {\n                result.__xml__.error = new Error('End of data found, expected /> or >');\n              }\n            }\n\n            if (!finished && !result.__xml__.error) {\n              result.__xml__.error = new Error('End of data found, expected /> or >');\n            }\n          } else {\n            result.__xml__.error = new Error('End of data found, expected /> or >');\n          }\n        } else {\n          result.__xml__.error = new Error('Expected indent');\n        }\n      } else {\n        result.__xml__.error = new Error('End of data found, expected indent');\n      }\n\n      result.__xml__.end = i;\n    } else {\n      result.__xml__.error = new Error('\"' + cToken.text + '\"' + 'found, expected <');\n    }\n  } else {\n    result.__xml__.error = new Error('End of data found, expected <');\n  }\n\n  result.__xml__.end = i;\n  return result;\n}\n/**\r\n * \r\n * @param {Array<Token>} tokens \r\n * @param {Number} i \r\n * @returns {XMLParseNode}\r\n */\n\n\nfunction matchDeclaration(tokens, i) {\n  var result = {\n    __xml__: {\n      type: DECLARATION,\n      start: i\n    }\n  };\n  var cToken;\n\n  if (i < tokens.length) {\n    cToken = tokens[i];\n\n    if (cToken.matched['declarationOpen']) {\n      ++i;\n\n      if (i < tokens.length) {\n        cToken = tokens[i];\n\n        if (cToken.matched['ident']) {\n          result.tagName = cToken.text;\n          ++i;\n\n          if (i < tokens.length) {\n            var finished = false; //when find the close symbol\n\n            while (i < tokens.length) {\n              cToken = tokens[i];\n\n              if (cToken.matched['space']) {\n                ++i;\n              } //skip space between attributes\n\n\n              if (i < tokens.length) {\n                cToken = tokens[i];\n\n                if (cToken.matched['declarationClose']) {\n                  result.__xml__.closed = false;\n                  ++i;\n                  finished = true;\n                  break;\n                } else if (tokens[i - 1].matched['space']) {\n                  var assign = matchAssign(tokens, i);\n\n                  if (!assign.__xml__.error) {\n                    result.attributes = result.attributes || {};\n                    result.attributes[assign.key] = assign.value;\n                    i = assign.__xml__.end;\n                  } else if (cToken.matched['ident']) {\n                    result.attributes = result.attributes || {};\n                    result.attributes[cToken.text] = true; // a flag\n\n                    ++i;\n                  } else {\n                    result.__xml__.error = new Error('\"' + cToken.text + '\"' + 'found, expected > or indent');\n                  }\n                } else {\n                  result.__xml__.error = new Error('\"' + cToken.text + '\"' + 'found, expected > or indent');\n                }\n              } else {\n                result.__xml__.error = new Error('End of data found, expected /> or >');\n              }\n            }\n\n            if (!finished && !result.__xml__.error) {\n              result.__xml__.error = new Error('End of data found, expected /> or >');\n            }\n          } else {\n            result.__xml__.error = new Error('End of data found, expected /> or >');\n          }\n        } else {\n          result.__xml__.error = new Error('Expected indent');\n        }\n      } else {\n        result.__xml__.error = new Error('End of data found, expected indent');\n      }\n\n      result.__xml__.end = i;\n    } else {\n      result.__xml__.error = new Error('\"' + cToken.text + '\"' + 'found, expected <');\n    }\n  } else {\n    result.__xml__.error = new Error('End of data found, expected <');\n  }\n\n  result.__xml__.end = i;\n  return result;\n}\n/**\r\n * \r\n * @param {Array<Token>} tokens \r\n * @param {Number} i \r\n * @returns {XMLParseNode}\r\n */\n\n\nfunction matchCData(tokens, i) {\n  var result = {\n    __xml__: {\n      type: CDATA,\n      start: i\n    }\n  };\n  var cToken;\n\n  if (i < tokens.length) {\n    cToken = tokens[i];\n\n    if (cToken.matched['cdataOpen']) {\n      ++i;\n      result.text = '';\n      var finished = false;\n\n      while (i < tokens.length) {\n        cToken = tokens[i];\n\n        if (cToken.matched['cdataClose']) {\n          finished = true;\n          ++i;\n          break;\n        } else {\n          result.text += cToken.text;\n          ++i;\n        }\n      }\n\n      if (!finished) {\n        result.__xml__.error = new Error('End of data found, expected ]]>');\n      }\n    } else {\n      result.__xml__.error = new Error('\"' + cToken.text + '\"' + 'found, expected <![CDATA[');\n    }\n  } else {\n    result.__xml__.error = new Error('End of data found, expected <![CDATA[');\n  }\n\n  result.__xml__.end = i;\n  return result;\n}\n/**\r\n * \r\n * @param {Array<Token>} tokens \r\n * @param {Number} i \r\n * @returns {XMLParseNode}\r\n */\n\n\nfunction matchComment(tokens, i) {\n  var result = {\n    __xml__: {\n      type: COMMENT,\n      start: i\n    }\n  };\n  var cToken;\n\n  if (i < tokens.length) {\n    cToken = tokens[i];\n\n    if (cToken.matched['commentOpen']) {\n      ++i;\n      result.text = '';\n      var finished = false;\n\n      while (i < tokens.length) {\n        cToken = tokens[i];\n\n        if (cToken.matched['commentClose']) {\n          finished = true;\n          ++i;\n          break;\n        } else {\n          result.text += cToken.text;\n          ++i;\n        }\n      }\n\n      if (!finished) {\n        result.__xml__.error = new Error('End of data found, expected -->');\n      }\n    } else {\n      result.__xml__.error = new Error('\"' + cToken.text + '\"' + 'found, expected <!--');\n    }\n  } else {\n    result.__xml__.error = new Error('End of data found, expected <!--');\n  }\n\n  result.__xml__.end = i;\n  return result;\n}\n/**\r\n * \r\n * @param {Token} tokens \r\n */\n\n\nfunction parseXMLTab(tokens) {\n  var tabs = [];\n  var i = 0;\n\n  while (i < tokens.length) {\n    var comment = matchComment(tokens, i);\n\n    if (!comment.__xml__.error) {\n      tabs.push(comment);\n      i = comment.__xml__.end;\n    } else {\n      var declaration = matchDeclaration(tokens, i);\n\n      if (!declaration.__xml__.error) {\n        tabs.push(declaration);\n        i = declaration.__xml__.end;\n      } else {\n        var begin = matchBeginTag(tokens, i);\n\n        if (!begin.__xml__.error) {\n          tabs.push(begin);\n          i = begin.__xml__.end;\n        } else {\n          var end = matchEndTag(tokens, i);\n\n          if (!end.__xml__.error) {\n            tabs.push(end);\n            i = end.__xml__.end;\n          } else {\n            var cdata = matchCData(tokens, i);\n\n            if (!cdata.__xml__.error) {\n              tabs.push(cdata);\n              i = cdata.__xml__.end;\n            } else {\n              ++i; //skip\n            }\n          }\n        }\n      }\n    }\n  }\n\n  return tabs;\n}\n/**\r\n * \r\n * @param {Array<Token>} tokens \r\n * @param {Array<XMLParseNode>} tabs \r\n * @returns {Array<XMLParseNode>}\r\n */\n\n\nfunction parseXMLText(tokens, tabs) {\n  var texts = [];\n  var ofs = 0;\n  var text;\n  var tab;\n\n  for (var i = 0; i < tabs.length; ++i) {\n    tab = tabs[i];\n\n    if (tab.__xml__.start > ofs) {\n      text = tokens.slice(ofs, tab.__xml__.start).map(function (token) {\n        return token.text;\n      }).join('').trim();\n      if (text.length > 0) texts.push({\n        __xml__: {\n          type: TEXT,\n          tokens: tokens,\n          start: ofs,\n          end: tab.__xml__.start\n        },\n        text: text\n      });\n    }\n\n    ofs = tab.__xml__.end;\n  }\n\n  if (ofs < tokens.length) {\n    text = tokens.slice(ofs).map(function (token) {\n      return token.text;\n    }).join('').trim();\n    if (text.length > 0) texts.push({\n      __xml__: {\n        type: TEXT,\n        tokens: tokens,\n        start: ofs,\n        end: tab.__xml__.start\n      },\n      text: text\n    });\n  }\n\n  return texts;\n}\n/**\r\n * \r\n * @param {Array<XMLParseNode>} tabs \r\n * @param {Array<XMLParseNode>} texts \r\n * @return {Array<XMLParseNode>}  \r\n */\n\n\nfunction mergeNodes(tabs, texts) {\n  var nodes = [];\n  var choose;\n  var iTabs = 0,\n      iTexts = 0;\n  var diTabs, diTexts;\n  var minStart;\n\n  do {\n    choose = undefined;\n    diTabs = 0, diTexts = 0;\n    minStart = 100000000;\n\n    if (iTabs < tabs.length) {\n      choose = tabs[iTabs];\n      minStart = choose.__xml__.start;\n      diTabs = 1;\n    }\n\n    if (iTexts < texts.length && texts[iTexts].__xml__.start < minStart) {\n      choose = texts[iTexts];\n      minStart = choose.__xml__.start;\n      diTabs = 0;\n      diTexts = 1;\n    }\n\n    if (choose) {\n      iTexts += diTexts;\n      iTabs += diTabs;\n      nodes.push(choose);\n    }\n  } while (choose);\n\n  return nodes;\n}\n/**\r\n * \r\n * @param {String} text \r\n * @return {Array<XMLParseNode>} \r\n */\n\n\nfunction parseXMLTextToXMLParseNode(text) {\n  text = text.trim();\n  var tokens = xmlTokenize(text.trim());\n  var tabs = parseXMLTab(tokens);\n  var texts = parseXMLText(tokens, tabs);\n  return mergeNodes(tabs, texts);\n}\n/**\r\n * \r\n * @param {Array<XMLParseNode>} nodes\r\n * @returns {Array}\r\n */\n\n\nfunction paresNodesToXMLs(nodes) {\n  var node;\n  var parentXMLElement = new _XMLElement[\"default\"]();\n  parentXMLElement.tagName = \"FAKE_DOCUMENT\";\n\n  var assignAttributes = function assignAttributes(node, attributes) {\n    Object.keys(attributes).forEach(function (key) {\n      node.setAttribute(key, attributes[key]);\n    });\n  };\n\n  var newXMLNode;\n\n  for (var i = 0; i < nodes.length; ++i) {\n    node = nodes[i];\n    newXMLNode = undefined;\n\n    switch (node.__xml__.type) {\n      case DECLARATION:\n        newXMLNode = new _XMLDeclarationNode[\"default\"]();\n        newXMLNode.tagName = node.tagName;\n        if (node.attributes) assignAttributes(newXMLNode, node.attributes);\n        parentXMLElement.appendChild(newXMLNode);\n        break;\n\n      case BEGIN_TAG:\n        newXMLNode = new _XMLElement[\"default\"]();\n        newXMLNode.tagName = node.tagName;\n        if (node.attributes) assignAttributes(newXMLNode, node.attributes);\n        parentXMLElement.appendChild(newXMLNode);\n        if (!node.__xml__.closed) parentXMLElement = newXMLNode;\n        break;\n\n      case END_TAG:\n        if (parentXMLElement && node.tagName == parentXMLElement.tagName) {\n          parentXMLElement = parentXMLElement.parentNode;\n        } else if (parentXMLElement && (parentXMLElement.tagName == 'img' || parentXMLElement.tagName == 'input')) {\n          // image can be not close\n          while (parentXMLElement.tagName == 'img' || parentXMLElement.tagName == 'input') {\n            parentXMLElement = parentXMLElement.parentNode;\n          }\n\n          parentXMLElement = parentXMLElement.parentNode;\n        } else {\n          throw new Error(\"Unknown close of tagName \" + node.tagName + ', but ' + (parentXMLElement ? parentXMLElement.tagName : \"EOF\") + ' expected');\n        }\n\n        break;\n\n      case TEXT:\n        newXMLNode = new _XMLTextNode[\"default\"](node.text);\n        parentXMLElement.appendChild(newXMLNode);\n        break;\n\n      case COMMENT:\n        newXMLNode = new _XMLCommentNode[\"default\"](node.text);\n        parentXMLElement.appendChild(newXMLNode);\n        break;\n    }\n  }\n\n  return parentXMLElement.childNodes.slice().map(function (e) {\n    e.remove();\n    return e;\n  });\n}\n/**\r\n * \r\n * @param {XMLElement} node \r\n */\n\n\nfunction makeOpenXMLElementTab(node) {\n  var res = '<' + node.tagName;\n  var attributesText = Object.keys(node.attributes).map(function (key) {\n    var value = node.attributes[key];\n\n    if (value === null) {\n      return key;\n    } else {\n      return key + '=' + '\"' + value + '\"';\n    }\n  }).join(' ');\n\n  if (attributesText.length > 0) {\n    res += ' ' + attributesText;\n  }\n\n  res += '>';\n  return res;\n}\n/**\r\n * \r\n * @param {XMLDeclaretionNode} node \r\n */\n\n\nfunction makeXMLDeclaretionTab(node) {\n  var res = '<?' + node.tagName;\n  var attributesText = Object.keys(node.attributes).map(function (key) {\n    var value = node.attributes[key];\n\n    if (value === null) {\n      return key;\n    } else {\n      return key + '=' + '\"' + value + '\"';\n    }\n  }).join(' ');\n\n  if (attributesText.length > 0) {\n    res += ' ' + attributesText;\n  }\n\n  res += '?>';\n  return res;\n}\n/**\r\n * \r\n * @param {XMLDeclaretionNode} node \r\n */\n\n\nfunction makeXMLCommentTab(node) {\n  var res = '<!--' + node.data + '-->';\n  return res;\n}\n\nvar XML = {};\n/**\r\n * @param {String} code\r\n * @returns {Array<XMLElement>}\r\n */\n\nXML.parseLikeHTML = function (code) {\n  var nodes = parseXMLTextToXMLParseNode(code); // console.log('nodes', nodes);\n\n  var xmls = paresNodesToXMLs(nodes);\n  return xmls;\n};\n/**\r\n * @param {String} code\r\n * @returns {XMLElement}\r\n */\n\n\nXML.parse = function (code) {\n  var xmls = this.parseLikeHTML(code);\n  if (xmls.length == 0) return undefined;\n  var obj = xmls[xmls.length - 1].toObject();\n  return obj;\n};\n\nXML.DFNodeVisit = function (node, handlers, accumulator) {\n  if (!node.childNodes || node.childNodes.length == 0) {\n    if (handlers.leaf) handlers.leaf(accumulator, node);\n  } else {\n    if (handlers.open) handlers.open(accumulator, node);\n\n    for (var i = 0; i < node.childNodes.length; ++i) {\n      this.DFNodeVisit(node.childNodes[i], handlers, accumulator);\n    }\n\n    if (handlers.close) handlers.close(accumulator, node);\n    return accumulator;\n  }\n};\n/**\r\n * @typedef {Object} XMLBeautifyOption\r\n * @property {String} indent\r\n * @property {Number} initDepth \r\n */\n\n/**\r\n * @param {Array<XMLElement>} o \r\n * @param {XMLBeautifyOption} beautifyOption \r\n * \r\n * \r\n */\n\n\nXML.stringify = function (o, beautifyOption) {\n  var texts = [];\n  var indent = '';\n  var lineBreak = '';\n  var depth = 0;\n\n  if (beautifyOption) {\n    lineBreak = '\\n';\n    indent = typeof beautifyOption.indent == 'string' ? beautifyOption.indent : '    ';\n    depth = beautifyOption.initDepth || 0;\n  }\n\n  if (!(o instanceof Array)) {\n    o = [o];\n  }\n\n  var visitor = {\n    open: function open(ac, node) {\n      var currentLineIndent = ac.lineIndentStack[ac.lineIndentStack.length - 1];\n      var openTabText = makeOpenXMLElementTab(node);\n      ac.texts.push(currentLineIndent + openTabText);\n      ac.lineIndentStack.push(currentLineIndent + ac.indent);\n    },\n    close: function close(ac, node) {\n      ac.lineIndentStack.pop();\n      var currentLineIndent = ac.lineIndentStack[ac.lineIndentStack.length - 1];\n      var endTab = '</' + node.tagName + '>';\n\n      if (node.childNodes.length == 1 && node.childNodes[0].nodeType == _XMLConstant[\"default\"].TYPE_TEXT) {\n        ac.texts[ac.texts.length - 1] += endTab;\n      } else {\n        ac.texts.push(currentLineIndent + endTab);\n      }\n    },\n    leaf: function leaf(ac, node) {\n      var currentLineIndent = ac.lineIndentStack[ac.lineIndentStack.length - 1];\n      var tab;\n\n      if (node.nodeType == _XMLConstant[\"default\"].TYPE_TEXT) {\n        if (node.parentNode && node.parentNode.childNodes.length == 1) {\n          ac.texts[ac.texts.length - 1] += node.data;\n        } else {\n          ac.texts.push(currentLineIndent + node.data);\n        }\n      } else if (node.nodeType == _XMLConstant[\"default\"].TYPE_ELEMENT) {\n        var openTabText = makeOpenXMLElementTab(node);\n        var endTab = '</' + node.tagName + '>';\n        ac.texts.push(currentLineIndent + openTabText + endTab);\n      } else if (node.nodeType == _XMLConstant[\"default\"].TYPE_DECLARATION) {\n        tab = makeXMLDeclaretionTab(node);\n        ac.texts.push(currentLineIndent + tab);\n      } else if (node.nodeType == _XMLConstant[\"default\"].TYPE_COMMENT) {\n        tab = makeXMLCommentTab(node);\n        ac.texts.push(currentLineIndent + tab);\n      }\n    }\n  };\n\n  for (var i = 0; i < o.length; ++i) {\n    this.DFNodeVisit(o[i], visitor, {\n      depth: 0,\n      texts: texts,\n      lineIndentStack: [''],\n      indent: indent\n    });\n  }\n\n  return texts.join(lineBreak);\n};\n\nvar _default = XML;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/XML/XML.js?");

/***/ }),

/***/ "./node_modules/absol/src/XML/XMLClassList.js":
/*!****************************************************!*\
  !*** ./node_modules/absol/src/XML/XMLClassList.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n/**\r\n * \r\n * @param {XMLElement} xmlNode \r\n */\nfunction XMLClassList(xmlNode) {\n  this.xmlNode = xmlNode;\n}\n/**\r\n * @param {String} name\r\n * @returns {Boolean}\r\n */\n\n\nXMLClassList.prototype.contains = function (name) {\n  var className = this.xmlNode.getAttribute('class');\n\n  if (className) {\n    var classes = className.trim().split(/\\s+/);\n\n    for (var i = 0; i < classes.length; ++i) {\n      if (classes[i] == name) return true;\n    }\n\n    return false;\n  } else return false;\n};\n/**\r\n * @param {Number} index\r\n * @returns {String}\r\n */\n\n\nXMLClassList.prototype.item = function (index) {\n  var className = this.xmlNode.getAttribute('class');\n\n  if (className) {\n    var classes = className.trim().split(/\\s+/);\n    return classes[index];\n  } else return undefined;\n};\n/**\r\n * @param {Array<String>} arguments\r\n */\n\n\nXMLClassList.prototype.remove = function () {\n  var dict = Array.prototype.reduce.call(arguments, function (ac, name) {\n    ac[name] = true;\n    return ac;\n  }, {});\n  var className = this.xmlNode.getAttribute('class');\n\n  if (className) {\n    var classes = className.trim().split(/\\s+/);\n    var newClasses = classes.filter(function (name) {\n      dict[name];\n    });\n    this.xmlNode.setAttribute(newClasses.join(' '));\n  }\n};\n/**\r\n * @param {Array<String>} arguments\r\n */\n\n\nXMLClassList.prototype.add = function () {\n  var className = this.xmlNode.getAttribute('class') || '';\n  var classes = className.trim().split(/\\s+/);\n  var dict = classes.reduce(function (ac, name) {\n    ac[name] = true;\n    return ac;\n  }, {});\n\n  for (var i = 0; i < arguments.length; ++i) {\n    var newClass = arguments[i].trim();\n    if (newClass.length == 0) return;\n\n    if (!dict[newClass]) {\n      classes.push(newClass);\n      dict[newClass] = true;\n    }\n  }\n\n  this.xmlNode.setAttribute('class', classes.join(' '));\n};\n\nvar _default = XMLClassList;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/XML/XMLClassList.js?");

/***/ }),

/***/ "./node_modules/absol/src/XML/XMLCommentNode.js":
/*!******************************************************!*\
  !*** ./node_modules/absol/src/XML/XMLCommentNode.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _XMLConstant = _interopRequireDefault(__webpack_require__(/*! ./XMLConstant */ \"./node_modules/absol/src/XML/XMLConstant.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction XMLCommentNode(data) {\n  this.nodeType = _XMLConstant[\"default\"].TYPE_COMMENT;\n  /**\r\n   * @type {XMLNode}\r\n   */\n\n  this.parentNode;\n  /**\r\n   * @type {String}\r\n   */\n\n  this.data = data || '';\n}\n\nXMLCommentNode.prototype.remove = function () {\n  if (this.parentNode) {\n    this.parentNode.removeChild(this);\n  }\n};\n\nXMLCommentNode.prototype.toObject = function () {\n  return {\n    nodeType: this.nodeType,\n    data: this.data\n  };\n};\n\nvar _default = XMLCommentNode;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/XML/XMLCommentNode.js?");

/***/ }),

/***/ "./node_modules/absol/src/XML/XMLConstant.js":
/*!***************************************************!*\
  !*** ./node_modules/absol/src/XML/XMLConstant.js ***!
  \***************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\nvar XMLConstant = {\n  TYPE_ELEMENT: 1,\n  TYPE_TEXT: 3,\n  TYPE_COMMENT: 8,\n  TYPE_DECLARATION: 16\n};\nvar _default = XMLConstant;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/XML/XMLConstant.js?");

/***/ }),

/***/ "./node_modules/absol/src/XML/XMLDeclarationNode.js":
/*!**********************************************************!*\
  !*** ./node_modules/absol/src/XML/XMLDeclarationNode.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _XMLConstant = _interopRequireDefault(__webpack_require__(/*! ./XMLConstant */ \"./node_modules/absol/src/XML/XMLConstant.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction XMLDeclaretionNode() {\n  this.nodeType = _XMLConstant[\"default\"].TYPE_DECLARATION;\n  this.parentNode;\n  /**\r\n   * @type {String}\r\n   */\n\n  this.tagName = '';\n  /**\r\n  * @type {XMLElement}\r\n  */\n\n  this.parentNode;\n  this.attributes = {};\n}\n/**\r\n * @param {String} name attribute name\r\n */\n\n\nXMLDeclaretionNode.prototype.getAttribute = function (name) {\n  return this.attributes[name];\n};\n/**\r\n * @param {String} name attribute name\r\n * @param {String} value \r\n */\n\n\nXMLDeclaretionNode.prototype.setAttribute = function (name, value) {\n  this.attributes[name] = value;\n};\n/**\r\n * @param {String} name attribute name\r\n */\n\n\nXMLDeclaretionNode.prototype.removeAttribute = function (name) {\n  delete this.attributes[name];\n};\n\nXMLDeclaretionNode.prototype.remove = function () {\n  if (this.parentNode) {\n    this.parentNode.removeChild(this);\n  }\n};\n\nXMLDeclaretionNode.prototype.toObject = function () {\n  return {\n    nodeType: this.nodeType,\n    tagName: this.tagName,\n    attributes: Object.assign({}, this.attributes)\n  };\n};\n\nvar _default = XMLDeclaretionNode;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/XML/XMLDeclarationNode.js?");

/***/ }),

/***/ "./node_modules/absol/src/XML/XMLElement.js":
/*!**************************************************!*\
  !*** ./node_modules/absol/src/XML/XMLElement.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _XMLClassList = _interopRequireDefault(__webpack_require__(/*! ./XMLClassList */ \"./node_modules/absol/src/XML/XMLClassList.js\"));\n\nvar _XMLConstant = _interopRequireDefault(__webpack_require__(/*! ./XMLConstant */ \"./node_modules/absol/src/XML/XMLConstant.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction XMLElement() {\n  this.nodeType = _XMLConstant[\"default\"].TYPE_ELEMENT;\n  /**\r\n   * @type {String}\r\n   */\n\n  this.tagName = '';\n  /**\r\n   * @type {XMLElement}\r\n   */\n\n  this.parentNode;\n  this.attributes = {};\n  /**\r\n   * @type {Array} Array of  XMLElement or XMLText\r\n   */\n\n  this.childNodes = [];\n  Object.defineProperty(this, 'classList', {\n    value: new _XMLClassList[\"default\"](this),\n    writable: false\n  });\n}\n/**\r\n * @param {String} name attribute name\r\n */\n\n\nXMLElement.prototype.getAttribute = function (name) {\n  return this.attributes[name];\n};\n/**\r\n * @param {String} name attribute name\r\n * @param {String} value \r\n */\n\n\nXMLElement.prototype.setAttribute = function (name, value) {\n  this.attributes[name] = value;\n};\n/**\r\n * @param {String} name attribute name\r\n */\n\n\nXMLElement.prototype.removeAttribute = function (name) {\n  delete this.attributes[name];\n};\n\nXMLElement.prototype.appendChild = function (node) {\n  node.remove();\n  this.childNodes.push(node);\n  node.parentNode = this;\n  return node;\n};\n/**\r\n * @param {XMLElement} child\r\n * @returns {XMLElement} removed node\r\n */\n\n\nXMLElement.prototype.removeChild = function (child) {\n  var result;\n\n  if (this == child.parentNode) {\n    var j = 0;\n\n    for (var i = 0; i < this.childNodes.length; ++i) {\n      if (child != this.childNodes[i]) {\n        this.childNodes[j] = this.childNodes[i];\n        ++j;\n      } else {\n        child.parentNode = undefined;\n        result = child;\n      }\n    }\n\n    while (j > this.childNodes.length) {\n      this.childNodes.pop();\n    }\n  }\n\n  return result;\n};\n/**\r\n * @param {XMLElement|XMLText|XMLDeclaretionNode} node\r\n */\n\n\nXMLElement.prototype.inserBefore = function (node, child) {\n  if (node == child) return;\n  var childIndex = -1;\n\n  for (var i = 0; i < this.childNodes.length; ++i) {\n    if (this.childNodes[i] == child) {\n      childIndex = i;\n      break;\n    }\n  }\n\n  if (childIndex < 0) return;\n  node.remove();\n  node.parentNode = this;\n  this.childNodes.push(null);\n  var cIndex = this.childNodes.length - 2;\n\n  while (cIndex >= 0) {\n    if (this.childNodes[cIndex] == child) {\n      this.childNodes[cIndex + 1] = node;\n    } else this.childNodes[cIndex + 1] = this.childNodes[cIndex];\n  }\n};\n\nXMLElement.prototype.remove = function () {\n  if (this.parentNode) {\n    this.parentNode.removeChild(this);\n  }\n};\n\nXMLElement.prototype.toObject = function () {\n  return {\n    nodeType: this.nodeType,\n    tagName: this.tagName,\n    attributes: Object.assign({}, this.attributes),\n    childNodes: this.childNodes.map(function (child) {\n      return child.toObject();\n    })\n  };\n};\n\nvar _default = XMLElement;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/XML/XMLElement.js?");

/***/ }),

/***/ "./node_modules/absol/src/XML/XMLTextNode.js":
/*!***************************************************!*\
  !*** ./node_modules/absol/src/XML/XMLTextNode.js ***!
  \***************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _XMLConstant = _interopRequireDefault(__webpack_require__(/*! ./XMLConstant */ \"./node_modules/absol/src/XML/XMLConstant.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction XMLTextNode(data) {\n  this.nodeType = _XMLConstant[\"default\"].TYPE_TEXT;\n  /**\r\n   * @type {XMLNode}\r\n   */\n\n  this.parentNode;\n  /**\r\n   * @type {String}\r\n   */\n\n  this.data = data || '';\n}\n\nXMLTextNode.prototype.remove = function () {\n  if (this.parentNode) {\n    this.parentNode.removeChild(this);\n  }\n};\n\nXMLTextNode.prototype.toObject = function () {\n  return {\n    nodeType: this.nodeType,\n    data: this.data\n  };\n};\n\nvar _default = XMLTextNode;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/XML/XMLTextNode.js?");

/***/ }),

/***/ "./node_modules/absol/src/absol.js":
/*!*****************************************!*\
  !*** ./node_modules/absol/src/absol.js ***!
  \*****************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar _ = _interopRequireDefault(__webpack_require__(/*! . */ \"./node_modules/absol/src/index.js\"));\n\nvar _AElement = _interopRequireDefault(__webpack_require__(/*! ./HTML5/AElement */ \"./node_modules/absol/src/HTML5/AElement.js\"));\n\nvar _AElementNS = _interopRequireDefault(__webpack_require__(/*! ./HTML5/AElementNS */ \"./node_modules/absol/src/HTML5/AElementNS.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n//for old plugin\n_[\"default\"]['HTML' + 'El' + 'ement'.toLowerCase()] = _[\"default\"].Element;\n_[\"default\"].dom = _[\"default\"].Dom;\n_[\"default\"].event = _[\"default\"].EventEmitter;\n_[\"default\"].Event = _[\"default\"].EventEmitter;\n_[\"default\"].color = _[\"default\"].Color;\n_[\"default\"].documentReady = _[\"default\"].Dom.documentReady;\nwindow.AComp = _[\"default\"].AComp;\nwindow.PhotoSwipeViewer = _[\"default\"].PhotoSwipeViewer;\nwindow.IFrameBridge = _[\"default\"].IFrameBridge;\nwindow.absol = _[\"default\"];\nvar mapKeys = {\n  ShareDom: 'coreDom',\n  ShareDomCreator: 'domCreator',\n  ShareSvgC: 'coreSvgCreator',\n  ShareSvgCreator: 'svgCreator',\n  ShareCreator: 'domCreator'\n};\n_[\"default\"].logData = [];\n\n_[\"default\"].log = function () {\n  _[\"default\"].logData.push([new Error('TraceError')].concat(Array.prototype.slice.call(arguments)));\n};\n\nObject.keys(mapKeys).forEach(function (key) {\n  var valueKey = mapKeys[key];\n  Object.defineProperty(_[\"default\"], key, {\n    get: function get() {\n      if (!this['__warn' + key + '__']) {\n        this['__warn' + key + '__'] = true;\n\n        _[\"default\"].log(\"use \" + valueKey + ' instead of ' + key);\n      }\n\n      return this[valueKey];\n    }\n  });\n});\n/**\r\n * @deprecated\r\n * @param {string|Array} className\r\n * @returns {Boolean}\r\n */\n\n_AElement[\"default\"].prototype.containsClass = function (className) {\n  if (className.forEach && className.map) {\n    for (var i = 0; i < className.length; ++i) {\n      if (!this.classList.containsClass(className[i])) return false;\n    }\n\n    return true;\n  } else return this.classList.contains(className);\n};\n/**\r\n * @deprecated\r\n * @param {string|Array} className\r\n * @returns {Boolean}\r\n */\n\n\n_AElementNS[\"default\"].prototype.containsClass = _AElement[\"default\"].prototype.containsClass;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/absol.js?");

/***/ }),

/***/ "./node_modules/absol/src/index.js":
/*!*****************************************!*\
  !*** ./node_modules/absol/src/index.js ***!
  \*****************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\n\n__webpack_require__(/*! ./Polyfill/polyfill */ \"./node_modules/absol/src/Polyfill/polyfill.js\");\n\nvar _EventEmitter = _interopRequireDefault(__webpack_require__(/*! ./HTML5/EventEmitter */ \"./node_modules/absol/src/HTML5/EventEmitter.js\"));\n\nvar _BrowserDetector = _interopRequireDefault(__webpack_require__(/*! ./Detector/BrowserDetector */ \"./node_modules/absol/src/Detector/BrowserDetector.js\"));\n\nvar _JSPath = _interopRequireDefault(__webpack_require__(/*! ./HTML5/JSPath */ \"./node_modules/absol/src/HTML5/JSPath.js\"));\n\nvar _TemplateString = _interopRequireDefault(__webpack_require__(/*! ./JSMaker/TemplateString */ \"./node_modules/absol/src/JSMaker/TemplateString.js\"));\n\nvar _TemplateXML = _interopRequireDefault(__webpack_require__(/*! ./JSMaker/TemplateXML */ \"./node_modules/absol/src/JSMaker/TemplateXML.js\"));\n\nvar _Dom = _interopRequireWildcard(__webpack_require__(/*! ./HTML5/Dom */ \"./node_modules/absol/src/HTML5/Dom.js\"));\n\nvar _Svg = _interopRequireDefault(__webpack_require__(/*! ./HTML5/Svg */ \"./node_modules/absol/src/HTML5/Svg.js\"));\n\nvar _OOP = _interopRequireDefault(__webpack_require__(/*! ./HTML5/OOP */ \"./node_modules/absol/src/HTML5/OOP.js\"));\n\nvar _XML = _interopRequireDefault(__webpack_require__(/*! ./XML/XML */ \"./node_modules/absol/src/XML/XML.js\"));\n\nvar _Color = _interopRequireDefault(__webpack_require__(/*! ./Color/Color */ \"./node_modules/absol/src/Color/Color.js\"));\n\nvar _IFrameBridge = _interopRequireDefault(__webpack_require__(/*! ./Network/IFrameBridge */ \"./node_modules/absol/src/Network/IFrameBridge.js\"));\n\nvar _JSDocx = _interopRequireDefault(__webpack_require__(/*! ./JSDocx/JSDocx */ \"./node_modules/absol/src/JSDocx/JSDocx.js\"));\n\nvar _Broadcast = _interopRequireDefault(__webpack_require__(/*! ./Network/Broadcast */ \"./node_modules/absol/src/Network/Broadcast.js\"));\n\nvar text = _interopRequireWildcard(__webpack_require__(/*! ./HTML5/Text */ \"./node_modules/absol/src/HTML5/Text.js\"));\n\nvar file = _interopRequireWildcard(__webpack_require__(/*! ./Converter/file */ \"./node_modules/absol/src/Converter/file.js\"));\n\nvar base64 = _interopRequireWildcard(__webpack_require__(/*! ./Converter/base64 */ \"./node_modules/absol/src/Converter/base64.js\"));\n\nvar _Alarm = _interopRequireDefault(__webpack_require__(/*! ./Time/Alarm */ \"./node_modules/absol/src/Time/Alarm.js\"));\n\nvar _Ref = _interopRequireDefault(__webpack_require__(/*! ./AppPattern/Ref */ \"./node_modules/absol/src/AppPattern/Ref.js\"));\n\nvar _XHR = _interopRequireDefault(__webpack_require__(/*! ./Network/XHR */ \"./node_modules/absol/src/Network/XHR.js\"));\n\nvar stringGenerate = _interopRequireWildcard(__webpack_require__(/*! ./String/stringGenerate */ \"./node_modules/absol/src/String/stringGenerate.js\"));\n\nvar stringFormat = _interopRequireWildcard(__webpack_require__(/*! ./String/stringFormat */ \"./node_modules/absol/src/String/stringFormat.js\"));\n\nvar jsxdom = _interopRequireWildcard(__webpack_require__(/*! ./JSX/dom */ \"./node_modules/absol/src/JSX/dom.js\"));\n\nvar jsxattribute = _interopRequireWildcard(__webpack_require__(/*! ./JSX/attribute */ \"./node_modules/absol/src/JSX/attribute.js\"));\n\nvar _Activity = _interopRequireDefault(__webpack_require__(/*! ./AppPattern/Activity */ \"./node_modules/absol/src/AppPattern/Activity.js\"));\n\nvar _Context = _interopRequireDefault(__webpack_require__(/*! ./AppPattern/Context */ \"./node_modules/absol/src/AppPattern/Context.js\"));\n\nvar _ContextManager = _interopRequireDefault(__webpack_require__(/*! ./AppPattern/ContextManager */ \"./node_modules/absol/src/AppPattern/ContextManager.js\"));\n\nvar _Application = _interopRequireDefault(__webpack_require__(/*! ./AppPattern/Application */ \"./node_modules/absol/src/AppPattern/Application.js\"));\n\nvar _VarScope = _interopRequireDefault(__webpack_require__(/*! ./AppPattern/VarScope */ \"./node_modules/absol/src/AppPattern/VarScope.js\"));\n\nvar _Fragment = _interopRequireDefault(__webpack_require__(/*! ./AppPattern/Fragment */ \"./node_modules/absol/src/AppPattern/Fragment.js\"));\n\nvar _Rectangle = _interopRequireDefault(__webpack_require__(/*! ./Math/Rectangle */ \"./node_modules/absol/src/Math/Rectangle.js\"));\n\nvar _Arc = _interopRequireDefault(__webpack_require__(/*! ./Math/Arc */ \"./node_modules/absol/src/Math/Arc.js\"));\n\nvar _NumRange = _interopRequireDefault(__webpack_require__(/*! ./Math/NumRange */ \"./node_modules/absol/src/Math/NumRange.js\"));\n\nvar clipboard = _interopRequireWildcard(__webpack_require__(/*! ./HTML5/Clipboard */ \"./node_modules/absol/src/HTML5/Clipboard.js\"));\n\nvar _Heap = _interopRequireDefault(__webpack_require__(/*! ./DataStructure/Heap */ \"./node_modules/absol/src/DataStructure/Heap.js\"));\n\nvar datetime = _interopRequireWildcard(__webpack_require__(/*! ./Time/datetime */ \"./node_modules/absol/src/Time/datetime.js\"));\n\nvar _CMDRunner = _interopRequireDefault(__webpack_require__(/*! ./AppPattern/CMDRunner */ \"./node_modules/absol/src/AppPattern/CMDRunner.js\"));\n\nvar _Element = _interopRequireDefault(__webpack_require__(/*! ./HTML5/Element */ \"./node_modules/absol/src/HTML5/Element.js\"));\n\nvar _AElementNS = _interopRequireDefault(__webpack_require__(/*! ./HTML5/AElementNS */ \"./node_modules/absol/src/HTML5/AElementNS.js\"));\n\nvar _DomSignal = _interopRequireDefault(__webpack_require__(/*! ./HTML5/DomSignal */ \"./node_modules/absol/src/HTML5/DomSignal.js\"));\n\nvar _CookieStore = _interopRequireDefault(__webpack_require__(/*! ./Cookie/CookieStore */ \"./node_modules/absol/src/Cookie/CookieStore.js\"));\n\nvar _parseCookieString = _interopRequireDefault(__webpack_require__(/*! ./Cookie/parseCookieString */ \"./node_modules/absol/src/Cookie/parseCookieString.js\"));\n\nvar _ResizeSystem = _interopRequireDefault(__webpack_require__(/*! ./HTML5/ResizeSystem */ \"./node_modules/absol/src/HTML5/ResizeSystem.js\"));\n\nvar _Vec = _interopRequireDefault(__webpack_require__(/*! ./Math/Vec2 */ \"./node_modules/absol/src/Math/Vec2.js\"));\n\nvar _Mat = _interopRequireDefault(__webpack_require__(/*! ./Math/Mat3 */ \"./node_modules/absol/src/Math/Mat3.js\"));\n\nvar _LanguageSystem = _interopRequireDefault(__webpack_require__(/*! ./HTML5/LanguageSystem */ \"./node_modules/absol/src/HTML5/LanguageSystem.js\"));\n\nvar _int = _interopRequireWildcard(__webpack_require__(/*! ./Math/int */ \"./node_modules/absol/src/Math/int.js\"));\n\nvar _ALogger = _interopRequireDefault(__webpack_require__(/*! ./Code/ALogger */ \"./node_modules/absol/src/Code/ALogger.js\"));\n\nvar _FlagManager = _interopRequireDefault(__webpack_require__(/*! ./Code/FlagManager */ \"./node_modules/absol/src/Code/FlagManager.js\"));\n\nvar _ObservableArray = _interopRequireDefault(__webpack_require__(/*! ./AppPattern/ObservableArray */ \"./node_modules/absol/src/AppPattern/ObservableArray.js\"));\n\nvar _ObservableStruct = _interopRequireDefault(__webpack_require__(/*! ./AppPattern/ObservableStruct */ \"./node_modules/absol/src/AppPattern/ObservableStruct.js\"));\n\nvar _CCBlock = _interopRequireDefault(__webpack_require__(/*! ./AppPattern/circuit/CCBlock */ \"./node_modules/absol/src/AppPattern/circuit/CCBlock.js\"));\n\nvar _CCLine = _interopRequireDefault(__webpack_require__(/*! ./AppPattern/circuit/CCLine */ \"./node_modules/absol/src/AppPattern/circuit/CCLine.js\"));\n\nvar FileSaver = _interopRequireWildcard(__webpack_require__(/*! ./Network/FileSaver */ \"./node_modules/absol/src/Network/FileSaver.js\"));\n\nvar _Thread = _interopRequireDefault(__webpack_require__(/*! ./Network/Thread */ \"./node_modules/absol/src/Network/Thread.js\"));\n\nvar _generator = __webpack_require__(/*! ./JSMaker/generator */ \"./node_modules/absol/src/JSMaker/generator.js\");\n\nvar _ShareConfiguration = _interopRequireDefault(__webpack_require__(/*! ./AppPattern/ShareConfiguration */ \"./node_modules/absol/src/AppPattern/ShareConfiguration.js\"));\n\nvar _safeThrow = _interopRequireDefault(__webpack_require__(/*! ./Code/safeThrow */ \"./node_modules/absol/src/Code/safeThrow.js\"));\n\nvar array = _interopRequireWildcard(__webpack_require__(/*! ./DataStructure/Array */ \"./node_modules/absol/src/DataStructure/Array.js\"));\n\nvar _remoteRequireNodeAsync = _interopRequireDefault(__webpack_require__(/*! ./Network/remoteRequireNodeAsync */ \"./node_modules/absol/src/Network/remoteRequireNodeAsync.js\"));\n\nvar _Polygon = _interopRequireDefault(__webpack_require__(/*! ./Math/Polygon */ \"./node_modules/absol/src/Math/Polygon.js\"));\n\nvar _DynamicCSS = _interopRequireDefault(__webpack_require__(/*! ./HTML5/DynamicCSS */ \"./node_modules/absol/src/HTML5/DynamicCSS.js\"));\n\nvar _SCParser = _interopRequireDefault(__webpack_require__(/*! ./SCLang/SCParser */ \"./node_modules/absol/src/SCLang/SCParser.js\"));\n\nvar _SCProgramInstance = _interopRequireWildcard(__webpack_require__(/*! ./SCLang/SCProgramInstance */ \"./node_modules/absol/src/SCLang/SCProgramInstance.js\"));\n\nvar _SCOperatorExecutor = _interopRequireDefault(__webpack_require__(/*! ./SCLang/SCOperatorExecutor */ \"./node_modules/absol/src/SCLang/SCOperatorExecutor.js\"));\n\nvar _Const = _interopRequireDefault(__webpack_require__(/*! ./AppPattern/Const */ \"./node_modules/absol/src/AppPattern/Const.js\"));\n\nvar _SCScope = _interopRequireDefault(__webpack_require__(/*! ./SCLang/SCScope */ \"./node_modules/absol/src/SCLang/SCScope.js\"));\n\nvar _SCCodeGenerator = _interopRequireWildcard(__webpack_require__(/*! ./SCLang/SCCodeGenerator */ \"./node_modules/absol/src/SCLang/SCCodeGenerator.js\"));\n\nvar printer = _interopRequireWildcard(__webpack_require__(/*! ./Print/printer */ \"./node_modules/absol/src/Print/printer.js\"));\n\nvar measurements = _interopRequireWildcard(__webpack_require__(/*! ./Math/measurements */ \"./node_modules/absol/src/Math/measurements.js\"));\n\nvar _QRCode = _interopRequireDefault(__webpack_require__(/*! ./Converter/QRCode */ \"./node_modules/absol/src/Converter/QRCode.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar absol = {\n  \"int\": _int,\n  array: array,\n  safeThrow: _safeThrow[\"default\"],\n  Rectangle: _Rectangle[\"default\"],\n  ResizeSystem: _ResizeSystem[\"default\"],\n  Arc: _Arc[\"default\"],\n  Polygon: _Polygon[\"default\"],\n  NumRange: _NumRange[\"default\"],\n  CookieStore: _CookieStore[\"default\"],\n  parseCookieString: _parseCookieString[\"default\"],\n  CMDRunner: _CMDRunner[\"default\"],\n  ContextManager: _ContextManager[\"default\"],\n  Application: _Application[\"default\"],\n  Fragment: _Fragment[\"default\"],\n  VarScope: _VarScope[\"default\"],\n  Context: _Context[\"default\"],\n  Activity: _Activity[\"default\"],\n  Element: _Element[\"default\"],\n  ElementNS: _AElementNS[\"default\"],\n  AElement: _Element[\"default\"],\n  AElementNS: _AElementNS[\"default\"],\n  DomSignal: _DomSignal[\"default\"],\n  JSPath: _JSPath[\"default\"],\n  TemplateString: _TemplateString[\"default\"],\n  TemplateXML: _TemplateXML[\"default\"],\n  Dom: _Dom[\"default\"],\n  Svg: _Svg[\"default\"],\n  BrowserDetector: _BrowserDetector[\"default\"],\n  OOP: _OOP[\"default\"],\n  XML: _XML[\"default\"],\n  Color: _Color[\"default\"],\n  EventEmitter: _EventEmitter[\"default\"],\n  JSZip: window.JSZip,\n  IFrameBridge: _IFrameBridge[\"default\"],\n  JSDocx: _JSDocx[\"default\"],\n  Broadcast: _Broadcast[\"default\"],\n  text: text,\n  file: file,\n  base64: base64,\n  Alarm: _Alarm[\"default\"],\n  coreDom: _Dom[\"default\"].ShareInstance,\n  coreSvg: _Svg[\"default\"].ShareInstance,\n  require: function require(tagName) {\n    return this.coreDom.require(tagName) || this.coreSvg.require(tagName);\n  },\n  domCreator: _Dom[\"default\"].ShareInstance.creator,\n  svgCreator: _Dom[\"default\"].ShareInstance.creator,\n  _: _Dom[\"default\"].ShareInstance._,\n  $: _Dom[\"default\"].ShareInstance.$,\n  $$: _Dom[\"default\"].ShareInstance.$$,\n  _svg: _Svg[\"default\"].ShareInstance._,\n  $svg: _Svg[\"default\"].ShareInstance.$,\n  Ref: _Ref[\"default\"],\n  Const: _Const[\"default\"],\n  XHR: _XHR[\"default\"],\n  string: Object.assign({}, stringFormat, stringGenerate),\n  jsx: {\n    dom: jsxdom,\n    attribute: jsxattribute\n  },\n  QRCode: _QRCode[\"default\"],\n  clipboard: clipboard,\n  dataStructure: {\n    Heap: _Heap[\"default\"]\n  },\n  datetime: datetime,\n  Vec2: _Vec[\"default\"],\n  Mat3: _Mat[\"default\"],\n  LanguageSystem: _LanguageSystem[\"default\"],\n  ALogger: _ALogger[\"default\"],\n  FlagManager: _FlagManager[\"default\"],\n  ObservableArray: _ObservableArray[\"default\"],\n  ObservableStruct: _ObservableStruct[\"default\"],\n  circuit: {\n    CCBlock: _CCBlock[\"default\"],\n    CCLine: _CCLine[\"default\"]\n  },\n  FileSaver: FileSaver,\n  Thread: _Thread[\"default\"],\n  generateJSVariable: _generator.generateJSVariable,\n  copyJSVariable: _generator.copyJSVariable,\n  normalizeIdent: stringFormat.normalizeIdent,\n  replaceDateStringJSVariable: _generator.replaceDateStringJSVariable,\n  remoteNodeRequireAsync: _remoteRequireNodeAsync[\"default\"],\n  shareConfiguration: _ShareConfiguration[\"default\"].instance,\n  DynamicCSS: _DynamicCSS[\"default\"],\n  getSystemFontSize: _Dom.getSystemFontSize,\n  sclang: {\n    'SCParser': _SCParser[\"default\"],\n    'SCProgramInstance': _SCProgramInstance[\"default\"],\n    'SCOperatorExecutor': _SCOperatorExecutor[\"default\"],\n    'SCStaticLibScope': _SCProgramInstance.SCStaticLibScope,\n    'SCDynamicLibScope': _SCProgramInstance.SCDynamicLibScope,\n    'SCScope': _SCScope[\"default\"],\n    'SCCodeGenerator': _SCCodeGenerator[\"default\"],\n    generateSCCode: _SCCodeGenerator.generateSCCode,\n    generateSCHighlightPreviewCode: _SCCodeGenerator.generateSCHighlightPreviewCode\n  },\n  printer: printer,\n  measurements: measurements\n};\nvar _default = absol;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/index.js?");

/***/ }),

/***/ "./node_modules/absol/src/polyfill.js":
/*!********************************************!*\
  !*** ./node_modules/absol/src/polyfill.js ***!
  \********************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\n__webpack_require__(/*! ./Polyfill/polyfill */ \"./node_modules/absol/src/Polyfill/polyfill.js\");\n\n__webpack_require__(/*! ./Polyfill/gps */ \"./node_modules/absol/src/Polyfill/gps.js\");\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/polyfill.js?");

/***/ }),

/***/ "./node_modules/atob/browser-atob.js":
/*!*******************************************!*\
  !*** ./node_modules/atob/browser-atob.js ***!
  \*******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/* module decorator */ module = __webpack_require__.nmd(module);\n/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\n\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n(function (w) {\n  \"use strict\";\n\n  function findBest(atobNative) {\n    // normal window\n    if ('function' === typeof atobNative) {\n      return atobNative;\n    } // browserify (web worker)\n\n\n    if ('function' === typeof Buffer) {\n      return function atobBrowserify(a) {\n        //!! Deliberately using an API that's deprecated in node.js because\n        //!! this file is for browsers and we expect them to cope with it.\n        //!! Discussion: github.com/node-browser-compat/atob/pull/9\n        return new Buffer(a, 'base64').toString('binary');\n      };\n    } // ios web worker with base64js\n\n\n    if ('object' === _typeof(w.base64js)) {\n      // bufferToBinaryString\n      // https://git.coolaj86.com/coolaj86/unibabel.js/blob/master/index.js#L50\n      return function atobWebWorker_iOS(a) {\n        var buf = w.base64js.b64ToByteArray(a);\n        return Array.prototype.map.call(buf, function (ch) {\n          return String.fromCharCode(ch);\n        }).join('');\n      };\n    }\n\n    return function () {\n      // ios web worker without base64js\n      throw new Error(\"You're probably in an old browser or an iOS webworker.\" + \" It might help to include beatgammit's base64-js.\");\n    };\n  }\n\n  var atobBest = findBest(w.atob);\n  w.atob = atobBest;\n\n  if (( false ? 0 : _typeof(module)) === 'object' && module && module.exports) {\n    module.exports = atobBest;\n  }\n})(window);\n\n//# sourceURL=webpack://absol-poser/./node_modules/atob/browser-atob.js?");

/***/ }),

/***/ "./node_modules/base64-js/index.js":
/*!*****************************************!*\
  !*** ./node_modules/base64-js/index.js ***!
  \*****************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nexports.byteLength = byteLength;\nexports.toByteArray = toByteArray;\nexports.fromByteArray = fromByteArray;\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nfor (var i = 0, len = code.length; i < len; ++i) {\n  lookup[i] = code[i];\n  revLookup[code.charCodeAt(i)] = i;\n} // Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\n\n\nrevLookup['-'.charCodeAt(0)] = 62;\nrevLookup['_'.charCodeAt(0)] = 63;\n\nfunction getLens(b64) {\n  var len = b64.length;\n\n  if (len % 4 > 0) {\n    throw new Error('Invalid string. Length must be a multiple of 4');\n  } // Trim off extra bytes after placeholder bytes are found\n  // See: https://github.com/beatgammit/base64-js/issues/42\n\n\n  var validLen = b64.indexOf('=');\n  if (validLen === -1) validLen = len;\n  var placeHoldersLen = validLen === len ? 0 : 4 - validLen % 4;\n  return [validLen, placeHoldersLen];\n} // base64 is 4/3 + up to two characters of the original data\n\n\nfunction byteLength(b64) {\n  var lens = getLens(b64);\n  var validLen = lens[0];\n  var placeHoldersLen = lens[1];\n  return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n}\n\nfunction _byteLength(b64, validLen, placeHoldersLen) {\n  return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n}\n\nfunction toByteArray(b64) {\n  var tmp;\n  var lens = getLens(b64);\n  var validLen = lens[0];\n  var placeHoldersLen = lens[1];\n  var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n  var curByte = 0; // if there are placeholders, only get up to the last complete 4 chars\n\n  var len = placeHoldersLen > 0 ? validLen - 4 : validLen;\n  var i;\n\n  for (i = 0; i < len; i += 4) {\n    tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)];\n    arr[curByte++] = tmp >> 16 & 0xFF;\n    arr[curByte++] = tmp >> 8 & 0xFF;\n    arr[curByte++] = tmp & 0xFF;\n  }\n\n  if (placeHoldersLen === 2) {\n    tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;\n    arr[curByte++] = tmp & 0xFF;\n  }\n\n  if (placeHoldersLen === 1) {\n    tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2;\n    arr[curByte++] = tmp >> 8 & 0xFF;\n    arr[curByte++] = tmp & 0xFF;\n  }\n\n  return arr;\n}\n\nfunction tripletToBase64(num) {\n  return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F];\n}\n\nfunction encodeChunk(uint8, start, end) {\n  var tmp;\n  var output = [];\n\n  for (var i = start; i < end; i += 3) {\n    tmp = (uint8[i] << 16 & 0xFF0000) + (uint8[i + 1] << 8 & 0xFF00) + (uint8[i + 2] & 0xFF);\n    output.push(tripletToBase64(tmp));\n  }\n\n  return output.join('');\n}\n\nfunction fromByteArray(uint8) {\n  var tmp;\n  var len = uint8.length;\n  var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n\n  var parts = [];\n  var maxChunkLength = 16383; // must be multiple of 3\n  // go through the array every three bytes, we'll deal with trailing stuff later\n\n  for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n    parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength));\n  } // pad the end with zeros, but make sure to not forget the extra bytes\n\n\n  if (extraBytes === 1) {\n    tmp = uint8[len - 1];\n    parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 0x3F] + '==');\n  } else if (extraBytes === 2) {\n    tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n    parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 0x3F] + lookup[tmp << 2 & 0x3F] + '=');\n  }\n\n  return parts.join('');\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/base64-js/index.js?");

/***/ }),

/***/ "./node_modules/btoa/index.js":
/*!************************************!*\
  !*** ./node_modules/btoa/index.js ***!
  \************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\n\n\n(function () {\n  \"use strict\";\n\n  function btoa(str) {\n    var buffer;\n\n    if (str instanceof Buffer) {\n      buffer = str;\n    } else {\n      buffer = Buffer.from(str.toString(), 'binary');\n    }\n\n    return buffer.toString('base64');\n  }\n\n  module.exports = btoa;\n})();\n\n//# sourceURL=webpack://absol-poser/./node_modules/btoa/index.js?");

/***/ }),

/***/ "./node_modules/buffer/index.js":
/*!**************************************!*\
  !*** ./node_modules/buffer/index.js ***!
  \**************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("/*!\n * The buffer module from node.js, for the browser.\n *\n * @author   Feross Aboukhadijeh <https://feross.org>\n * @license  MIT\n */\n\n/* eslint-disable no-proto */\n\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar base64 = __webpack_require__(/*! base64-js */ \"./node_modules/base64-js/index.js\");\n\nvar ieee754 = __webpack_require__(/*! ieee754 */ \"./node_modules/ieee754/index.js\");\n\nvar customInspectSymbol = typeof Symbol === 'function' && typeof Symbol['for'] === 'function' // eslint-disable-line dot-notation\n? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n: null;\nexports.Buffer = Buffer;\nexports.SlowBuffer = SlowBuffer;\nexports.INSPECT_MAX_BYTES = 50;\nvar K_MAX_LENGTH = 0x7fffffff;\nexports.kMaxLength = K_MAX_LENGTH;\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n *   === true    Use Uint8Array implementation (fastest)\n *   === false   Print warning and recommend using `buffer` v4.x which has an Object\n *               implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\n\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' && typeof console.error === 'function') {\n  console.error('This browser lacks typed array (Uint8Array) support which is required by ' + '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.');\n}\n\nfunction typedArraySupport() {\n  // Can typed array instances can be augmented?\n  try {\n    var arr = new Uint8Array(1);\n    var proto = {\n      foo: function foo() {\n        return 42;\n      }\n    };\n    Object.setPrototypeOf(proto, Uint8Array.prototype);\n    Object.setPrototypeOf(arr, proto);\n    return arr.foo() === 42;\n  } catch (e) {\n    return false;\n  }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n  enumerable: true,\n  get: function get() {\n    if (!Buffer.isBuffer(this)) return undefined;\n    return this.buffer;\n  }\n});\nObject.defineProperty(Buffer.prototype, 'offset', {\n  enumerable: true,\n  get: function get() {\n    if (!Buffer.isBuffer(this)) return undefined;\n    return this.byteOffset;\n  }\n});\n\nfunction createBuffer(length) {\n  if (length > K_MAX_LENGTH) {\n    throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"');\n  } // Return an augmented `Uint8Array` instance\n\n\n  var buf = new Uint8Array(length);\n  Object.setPrototypeOf(buf, Buffer.prototype);\n  return buf;\n}\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\n\nfunction Buffer(arg, encodingOrOffset, length) {\n  // Common case.\n  if (typeof arg === 'number') {\n    if (typeof encodingOrOffset === 'string') {\n      throw new TypeError('The \"string\" argument must be of type string. Received type number');\n    }\n\n    return allocUnsafe(arg);\n  }\n\n  return from(arg, encodingOrOffset, length);\n}\n\nBuffer.poolSize = 8192; // not used by this implementation\n\nfunction from(value, encodingOrOffset, length) {\n  if (typeof value === 'string') {\n    return fromString(value, encodingOrOffset);\n  }\n\n  if (ArrayBuffer.isView(value)) {\n    return fromArrayView(value);\n  }\n\n  if (value == null) {\n    throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + 'or Array-like Object. Received type ' + _typeof(value));\n  }\n\n  if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) {\n    return fromArrayBuffer(value, encodingOrOffset, length);\n  }\n\n  if (typeof SharedArrayBuffer !== 'undefined' && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) {\n    return fromArrayBuffer(value, encodingOrOffset, length);\n  }\n\n  if (typeof value === 'number') {\n    throw new TypeError('The \"value\" argument must not be of type number. Received type number');\n  }\n\n  var valueOf = value.valueOf && value.valueOf();\n\n  if (valueOf != null && valueOf !== value) {\n    return Buffer.from(valueOf, encodingOrOffset, length);\n  }\n\n  var b = fromObject(value);\n  if (b) return b;\n\n  if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === 'function') {\n    return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length);\n  }\n\n  throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + 'or Array-like Object. Received type ' + _typeof(value));\n}\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\n\n\nBuffer.from = function (value, encodingOrOffset, length) {\n  return from(value, encodingOrOffset, length);\n}; // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\n\n\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype);\nObject.setPrototypeOf(Buffer, Uint8Array);\n\nfunction assertSize(size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('\"size\" argument must be of type number');\n  } else if (size < 0) {\n    throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"');\n  }\n}\n\nfunction alloc(size, fill, encoding) {\n  assertSize(size);\n\n  if (size <= 0) {\n    return createBuffer(size);\n  }\n\n  if (fill !== undefined) {\n    // Only pay attention to encoding if it's a string. This\n    // prevents accidentally sending in a number that would\n    // be interpreted as a start offset.\n    return typeof encoding === 'string' ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill);\n  }\n\n  return createBuffer(size);\n}\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\n\n\nBuffer.alloc = function (size, fill, encoding) {\n  return alloc(size, fill, encoding);\n};\n\nfunction allocUnsafe(size) {\n  assertSize(size);\n  return createBuffer(size < 0 ? 0 : checked(size) | 0);\n}\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\n\n\nBuffer.allocUnsafe = function (size) {\n  return allocUnsafe(size);\n};\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\n\n\nBuffer.allocUnsafeSlow = function (size) {\n  return allocUnsafe(size);\n};\n\nfunction fromString(string, encoding) {\n  if (typeof encoding !== 'string' || encoding === '') {\n    encoding = 'utf8';\n  }\n\n  if (!Buffer.isEncoding(encoding)) {\n    throw new TypeError('Unknown encoding: ' + encoding);\n  }\n\n  var length = byteLength(string, encoding) | 0;\n  var buf = createBuffer(length);\n  var actual = buf.write(string, encoding);\n\n  if (actual !== length) {\n    // Writing a hex string, for example, that contains invalid characters will\n    // cause everything after the first invalid character to be ignored. (e.g.\n    // 'abxxcd' will be treated as 'ab')\n    buf = buf.slice(0, actual);\n  }\n\n  return buf;\n}\n\nfunction fromArrayLike(array) {\n  var length = array.length < 0 ? 0 : checked(array.length) | 0;\n  var buf = createBuffer(length);\n\n  for (var i = 0; i < length; i += 1) {\n    buf[i] = array[i] & 255;\n  }\n\n  return buf;\n}\n\nfunction fromArrayView(arrayView) {\n  if (isInstance(arrayView, Uint8Array)) {\n    var copy = new Uint8Array(arrayView);\n    return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength);\n  }\n\n  return fromArrayLike(arrayView);\n}\n\nfunction fromArrayBuffer(array, byteOffset, length) {\n  if (byteOffset < 0 || array.byteLength < byteOffset) {\n    throw new RangeError('\"offset\" is outside of buffer bounds');\n  }\n\n  if (array.byteLength < byteOffset + (length || 0)) {\n    throw new RangeError('\"length\" is outside of buffer bounds');\n  }\n\n  var buf;\n\n  if (byteOffset === undefined && length === undefined) {\n    buf = new Uint8Array(array);\n  } else if (length === undefined) {\n    buf = new Uint8Array(array, byteOffset);\n  } else {\n    buf = new Uint8Array(array, byteOffset, length);\n  } // Return an augmented `Uint8Array` instance\n\n\n  Object.setPrototypeOf(buf, Buffer.prototype);\n  return buf;\n}\n\nfunction fromObject(obj) {\n  if (Buffer.isBuffer(obj)) {\n    var len = checked(obj.length) | 0;\n    var buf = createBuffer(len);\n\n    if (buf.length === 0) {\n      return buf;\n    }\n\n    obj.copy(buf, 0, 0, len);\n    return buf;\n  }\n\n  if (obj.length !== undefined) {\n    if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n      return createBuffer(0);\n    }\n\n    return fromArrayLike(obj);\n  }\n\n  if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n    return fromArrayLike(obj.data);\n  }\n}\n\nfunction checked(length) {\n  // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n  // length is NaN (which is otherwise coerced to zero.)\n  if (length >= K_MAX_LENGTH) {\n    throw new RangeError('Attempt to allocate Buffer larger than maximum ' + 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes');\n  }\n\n  return length | 0;\n}\n\nfunction SlowBuffer(length) {\n  if (+length != length) {\n    // eslint-disable-line eqeqeq\n    length = 0;\n  }\n\n  return Buffer.alloc(+length);\n}\n\nBuffer.isBuffer = function isBuffer(b) {\n  return b != null && b._isBuffer === true && b !== Buffer.prototype; // so Buffer.isBuffer(Buffer.prototype) will be false\n};\n\nBuffer.compare = function compare(a, b) {\n  if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n  if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n\n  if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n    throw new TypeError('The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array');\n  }\n\n  if (a === b) return 0;\n  var x = a.length;\n  var y = b.length;\n\n  for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n    if (a[i] !== b[i]) {\n      x = a[i];\n      y = b[i];\n      break;\n    }\n  }\n\n  if (x < y) return -1;\n  if (y < x) return 1;\n  return 0;\n};\n\nBuffer.isEncoding = function isEncoding(encoding) {\n  switch (String(encoding).toLowerCase()) {\n    case 'hex':\n    case 'utf8':\n    case 'utf-8':\n    case 'ascii':\n    case 'latin1':\n    case 'binary':\n    case 'base64':\n    case 'ucs2':\n    case 'ucs-2':\n    case 'utf16le':\n    case 'utf-16le':\n      return true;\n\n    default:\n      return false;\n  }\n};\n\nBuffer.concat = function concat(list, length) {\n  if (!Array.isArray(list)) {\n    throw new TypeError('\"list\" argument must be an Array of Buffers');\n  }\n\n  if (list.length === 0) {\n    return Buffer.alloc(0);\n  }\n\n  var i;\n\n  if (length === undefined) {\n    length = 0;\n\n    for (i = 0; i < list.length; ++i) {\n      length += list[i].length;\n    }\n  }\n\n  var buffer = Buffer.allocUnsafe(length);\n  var pos = 0;\n\n  for (i = 0; i < list.length; ++i) {\n    var buf = list[i];\n\n    if (isInstance(buf, Uint8Array)) {\n      if (pos + buf.length > buffer.length) {\n        if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf);\n        buf.copy(buffer, pos);\n      } else {\n        Uint8Array.prototype.set.call(buffer, buf, pos);\n      }\n    } else if (!Buffer.isBuffer(buf)) {\n      throw new TypeError('\"list\" argument must be an Array of Buffers');\n    } else {\n      buf.copy(buffer, pos);\n    }\n\n    pos += buf.length;\n  }\n\n  return buffer;\n};\n\nfunction byteLength(string, encoding) {\n  if (Buffer.isBuffer(string)) {\n    return string.length;\n  }\n\n  if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n    return string.byteLength;\n  }\n\n  if (typeof string !== 'string') {\n    throw new TypeError('The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' + 'Received type ' + _typeof(string));\n  }\n\n  var len = string.length;\n  var mustMatch = arguments.length > 2 && arguments[2] === true;\n  if (!mustMatch && len === 0) return 0; // Use a for loop to avoid recursion\n\n  var loweredCase = false;\n\n  for (;;) {\n    switch (encoding) {\n      case 'ascii':\n      case 'latin1':\n      case 'binary':\n        return len;\n\n      case 'utf8':\n      case 'utf-8':\n        return utf8ToBytes(string).length;\n\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return len * 2;\n\n      case 'hex':\n        return len >>> 1;\n\n      case 'base64':\n        return base64ToBytes(string).length;\n\n      default:\n        if (loweredCase) {\n          return mustMatch ? -1 : utf8ToBytes(string).length; // assume utf8\n        }\n\n        encoding = ('' + encoding).toLowerCase();\n        loweredCase = true;\n    }\n  }\n}\n\nBuffer.byteLength = byteLength;\n\nfunction slowToString(encoding, start, end) {\n  var loweredCase = false; // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n  // property of a typed array.\n  // This behaves neither like String nor Uint8Array in that we set start/end\n  // to their upper/lower bounds if the value passed is out of range.\n  // undefined is handled specially as per ECMA-262 6th Edition,\n  // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\n  if (start === undefined || start < 0) {\n    start = 0;\n  } // Return early if start > this.length. Done here to prevent potential uint32\n  // coercion fail below.\n\n\n  if (start > this.length) {\n    return '';\n  }\n\n  if (end === undefined || end > this.length) {\n    end = this.length;\n  }\n\n  if (end <= 0) {\n    return '';\n  } // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n\n\n  end >>>= 0;\n  start >>>= 0;\n\n  if (end <= start) {\n    return '';\n  }\n\n  if (!encoding) encoding = 'utf8';\n\n  while (true) {\n    switch (encoding) {\n      case 'hex':\n        return hexSlice(this, start, end);\n\n      case 'utf8':\n      case 'utf-8':\n        return utf8Slice(this, start, end);\n\n      case 'ascii':\n        return asciiSlice(this, start, end);\n\n      case 'latin1':\n      case 'binary':\n        return latin1Slice(this, start, end);\n\n      case 'base64':\n        return base64Slice(this, start, end);\n\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return utf16leSlice(this, start, end);\n\n      default:\n        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);\n        encoding = (encoding + '').toLowerCase();\n        loweredCase = true;\n    }\n  }\n} // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\n\n\nBuffer.prototype._isBuffer = true;\n\nfunction swap(b, n, m) {\n  var i = b[n];\n  b[n] = b[m];\n  b[m] = i;\n}\n\nBuffer.prototype.swap16 = function swap16() {\n  var len = this.length;\n\n  if (len % 2 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 16-bits');\n  }\n\n  for (var i = 0; i < len; i += 2) {\n    swap(this, i, i + 1);\n  }\n\n  return this;\n};\n\nBuffer.prototype.swap32 = function swap32() {\n  var len = this.length;\n\n  if (len % 4 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 32-bits');\n  }\n\n  for (var i = 0; i < len; i += 4) {\n    swap(this, i, i + 3);\n    swap(this, i + 1, i + 2);\n  }\n\n  return this;\n};\n\nBuffer.prototype.swap64 = function swap64() {\n  var len = this.length;\n\n  if (len % 8 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 64-bits');\n  }\n\n  for (var i = 0; i < len; i += 8) {\n    swap(this, i, i + 7);\n    swap(this, i + 1, i + 6);\n    swap(this, i + 2, i + 5);\n    swap(this, i + 3, i + 4);\n  }\n\n  return this;\n};\n\nBuffer.prototype.toString = function toString() {\n  var length = this.length;\n  if (length === 0) return '';\n  if (arguments.length === 0) return utf8Slice(this, 0, length);\n  return slowToString.apply(this, arguments);\n};\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString;\n\nBuffer.prototype.equals = function equals(b) {\n  if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer');\n  if (this === b) return true;\n  return Buffer.compare(this, b) === 0;\n};\n\nBuffer.prototype.inspect = function inspect() {\n  var str = '';\n  var max = exports.INSPECT_MAX_BYTES;\n  str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim();\n  if (this.length > max) str += ' ... ';\n  return '<Buffer ' + str + '>';\n};\n\nif (customInspectSymbol) {\n  Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n}\n\nBuffer.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n  if (isInstance(target, Uint8Array)) {\n    target = Buffer.from(target, target.offset, target.byteLength);\n  }\n\n  if (!Buffer.isBuffer(target)) {\n    throw new TypeError('The \"target\" argument must be one of type Buffer or Uint8Array. ' + 'Received type ' + _typeof(target));\n  }\n\n  if (start === undefined) {\n    start = 0;\n  }\n\n  if (end === undefined) {\n    end = target ? target.length : 0;\n  }\n\n  if (thisStart === undefined) {\n    thisStart = 0;\n  }\n\n  if (thisEnd === undefined) {\n    thisEnd = this.length;\n  }\n\n  if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n    throw new RangeError('out of range index');\n  }\n\n  if (thisStart >= thisEnd && start >= end) {\n    return 0;\n  }\n\n  if (thisStart >= thisEnd) {\n    return -1;\n  }\n\n  if (start >= end) {\n    return 1;\n  }\n\n  start >>>= 0;\n  end >>>= 0;\n  thisStart >>>= 0;\n  thisEnd >>>= 0;\n  if (this === target) return 0;\n  var x = thisEnd - thisStart;\n  var y = end - start;\n  var len = Math.min(x, y);\n  var thisCopy = this.slice(thisStart, thisEnd);\n  var targetCopy = target.slice(start, end);\n\n  for (var i = 0; i < len; ++i) {\n    if (thisCopy[i] !== targetCopy[i]) {\n      x = thisCopy[i];\n      y = targetCopy[i];\n      break;\n    }\n  }\n\n  if (x < y) return -1;\n  if (y < x) return 1;\n  return 0;\n}; // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\n\n\nfunction bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n  // Empty buffer means no match\n  if (buffer.length === 0) return -1; // Normalize byteOffset\n\n  if (typeof byteOffset === 'string') {\n    encoding = byteOffset;\n    byteOffset = 0;\n  } else if (byteOffset > 0x7fffffff) {\n    byteOffset = 0x7fffffff;\n  } else if (byteOffset < -0x80000000) {\n    byteOffset = -0x80000000;\n  }\n\n  byteOffset = +byteOffset; // Coerce to Number.\n\n  if (numberIsNaN(byteOffset)) {\n    // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n    byteOffset = dir ? 0 : buffer.length - 1;\n  } // Normalize byteOffset: negative offsets start from the end of the buffer\n\n\n  if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\n  if (byteOffset >= buffer.length) {\n    if (dir) return -1;else byteOffset = buffer.length - 1;\n  } else if (byteOffset < 0) {\n    if (dir) byteOffset = 0;else return -1;\n  } // Normalize val\n\n\n  if (typeof val === 'string') {\n    val = Buffer.from(val, encoding);\n  } // Finally, search either indexOf (if dir is true) or lastIndexOf\n\n\n  if (Buffer.isBuffer(val)) {\n    // Special case: looking for empty string/buffer always fails\n    if (val.length === 0) {\n      return -1;\n    }\n\n    return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n  } else if (typeof val === 'number') {\n    val = val & 0xFF; // Search for a byte value [0-255]\n\n    if (typeof Uint8Array.prototype.indexOf === 'function') {\n      if (dir) {\n        return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n      } else {\n        return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n      }\n    }\n\n    return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n  }\n\n  throw new TypeError('val must be string, number or Buffer');\n}\n\nfunction arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n  var indexSize = 1;\n  var arrLength = arr.length;\n  var valLength = val.length;\n\n  if (encoding !== undefined) {\n    encoding = String(encoding).toLowerCase();\n\n    if (encoding === 'ucs2' || encoding === 'ucs-2' || encoding === 'utf16le' || encoding === 'utf-16le') {\n      if (arr.length < 2 || val.length < 2) {\n        return -1;\n      }\n\n      indexSize = 2;\n      arrLength /= 2;\n      valLength /= 2;\n      byteOffset /= 2;\n    }\n  }\n\n  function read(buf, i) {\n    if (indexSize === 1) {\n      return buf[i];\n    } else {\n      return buf.readUInt16BE(i * indexSize);\n    }\n  }\n\n  var i;\n\n  if (dir) {\n    var foundIndex = -1;\n\n    for (i = byteOffset; i < arrLength; i++) {\n      if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n        if (foundIndex === -1) foundIndex = i;\n        if (i - foundIndex + 1 === valLength) return foundIndex * indexSize;\n      } else {\n        if (foundIndex !== -1) i -= i - foundIndex;\n        foundIndex = -1;\n      }\n    }\n  } else {\n    if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\n    for (i = byteOffset; i >= 0; i--) {\n      var found = true;\n\n      for (var j = 0; j < valLength; j++) {\n        if (read(arr, i + j) !== read(val, j)) {\n          found = false;\n          break;\n        }\n      }\n\n      if (found) return i;\n    }\n  }\n\n  return -1;\n}\n\nBuffer.prototype.includes = function includes(val, byteOffset, encoding) {\n  return this.indexOf(val, byteOffset, encoding) !== -1;\n};\n\nBuffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n  return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n};\n\nBuffer.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n  return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n};\n\nfunction hexWrite(buf, string, offset, length) {\n  offset = Number(offset) || 0;\n  var remaining = buf.length - offset;\n\n  if (!length) {\n    length = remaining;\n  } else {\n    length = Number(length);\n\n    if (length > remaining) {\n      length = remaining;\n    }\n  }\n\n  var strLen = string.length;\n\n  if (length > strLen / 2) {\n    length = strLen / 2;\n  }\n\n  var i;\n\n  for (i = 0; i < length; ++i) {\n    var parsed = parseInt(string.substr(i * 2, 2), 16);\n    if (numberIsNaN(parsed)) return i;\n    buf[offset + i] = parsed;\n  }\n\n  return i;\n}\n\nfunction utf8Write(buf, string, offset, length) {\n  return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length);\n}\n\nfunction asciiWrite(buf, string, offset, length) {\n  return blitBuffer(asciiToBytes(string), buf, offset, length);\n}\n\nfunction base64Write(buf, string, offset, length) {\n  return blitBuffer(base64ToBytes(string), buf, offset, length);\n}\n\nfunction ucs2Write(buf, string, offset, length) {\n  return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length);\n}\n\nBuffer.prototype.write = function write(string, offset, length, encoding) {\n  // Buffer#write(string)\n  if (offset === undefined) {\n    encoding = 'utf8';\n    length = this.length;\n    offset = 0; // Buffer#write(string, encoding)\n  } else if (length === undefined && typeof offset === 'string') {\n    encoding = offset;\n    length = this.length;\n    offset = 0; // Buffer#write(string, offset[, length][, encoding])\n  } else if (isFinite(offset)) {\n    offset = offset >>> 0;\n\n    if (isFinite(length)) {\n      length = length >>> 0;\n      if (encoding === undefined) encoding = 'utf8';\n    } else {\n      encoding = length;\n      length = undefined;\n    }\n  } else {\n    throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported');\n  }\n\n  var remaining = this.length - offset;\n  if (length === undefined || length > remaining) length = remaining;\n\n  if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n    throw new RangeError('Attempt to write outside buffer bounds');\n  }\n\n  if (!encoding) encoding = 'utf8';\n  var loweredCase = false;\n\n  for (;;) {\n    switch (encoding) {\n      case 'hex':\n        return hexWrite(this, string, offset, length);\n\n      case 'utf8':\n      case 'utf-8':\n        return utf8Write(this, string, offset, length);\n\n      case 'ascii':\n      case 'latin1':\n      case 'binary':\n        return asciiWrite(this, string, offset, length);\n\n      case 'base64':\n        // Warning: maxLength not taken into account in base64Write\n        return base64Write(this, string, offset, length);\n\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return ucs2Write(this, string, offset, length);\n\n      default:\n        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);\n        encoding = ('' + encoding).toLowerCase();\n        loweredCase = true;\n    }\n  }\n};\n\nBuffer.prototype.toJSON = function toJSON() {\n  return {\n    type: 'Buffer',\n    data: Array.prototype.slice.call(this._arr || this, 0)\n  };\n};\n\nfunction base64Slice(buf, start, end) {\n  if (start === 0 && end === buf.length) {\n    return base64.fromByteArray(buf);\n  } else {\n    return base64.fromByteArray(buf.slice(start, end));\n  }\n}\n\nfunction utf8Slice(buf, start, end) {\n  end = Math.min(buf.length, end);\n  var res = [];\n  var i = start;\n\n  while (i < end) {\n    var firstByte = buf[i];\n    var codePoint = null;\n    var bytesPerSequence = firstByte > 0xEF ? 4 : firstByte > 0xDF ? 3 : firstByte > 0xBF ? 2 : 1;\n\n    if (i + bytesPerSequence <= end) {\n      var secondByte = void 0,\n          thirdByte = void 0,\n          fourthByte = void 0,\n          tempCodePoint = void 0;\n\n      switch (bytesPerSequence) {\n        case 1:\n          if (firstByte < 0x80) {\n            codePoint = firstByte;\n          }\n\n          break;\n\n        case 2:\n          secondByte = buf[i + 1];\n\n          if ((secondByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0x1F) << 0x6 | secondByte & 0x3F;\n\n            if (tempCodePoint > 0x7F) {\n              codePoint = tempCodePoint;\n            }\n          }\n\n          break;\n\n        case 3:\n          secondByte = buf[i + 1];\n          thirdByte = buf[i + 2];\n\n          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | thirdByte & 0x3F;\n\n            if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n              codePoint = tempCodePoint;\n            }\n          }\n\n          break;\n\n        case 4:\n          secondByte = buf[i + 1];\n          thirdByte = buf[i + 2];\n          fourthByte = buf[i + 3];\n\n          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | fourthByte & 0x3F;\n\n            if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n              codePoint = tempCodePoint;\n            }\n          }\n\n      }\n    }\n\n    if (codePoint === null) {\n      // we did not generate a valid codePoint so insert a\n      // replacement char (U+FFFD) and advance only 1 byte\n      codePoint = 0xFFFD;\n      bytesPerSequence = 1;\n    } else if (codePoint > 0xFFFF) {\n      // encode to utf16 (surrogate pair dance)\n      codePoint -= 0x10000;\n      res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n      codePoint = 0xDC00 | codePoint & 0x3FF;\n    }\n\n    res.push(codePoint);\n    i += bytesPerSequence;\n  }\n\n  return decodeCodePointsArray(res);\n} // Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\n\n\nvar MAX_ARGUMENTS_LENGTH = 0x1000;\n\nfunction decodeCodePointsArray(codePoints) {\n  var len = codePoints.length;\n\n  if (len <= MAX_ARGUMENTS_LENGTH) {\n    return String.fromCharCode.apply(String, codePoints); // avoid extra slice()\n  } // Decode in chunks to avoid \"call stack size exceeded\".\n\n\n  var res = '';\n  var i = 0;\n\n  while (i < len) {\n    res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n  }\n\n  return res;\n}\n\nfunction asciiSlice(buf, start, end) {\n  var ret = '';\n  end = Math.min(buf.length, end);\n\n  for (var i = start; i < end; ++i) {\n    ret += String.fromCharCode(buf[i] & 0x7F);\n  }\n\n  return ret;\n}\n\nfunction latin1Slice(buf, start, end) {\n  var ret = '';\n  end = Math.min(buf.length, end);\n\n  for (var i = start; i < end; ++i) {\n    ret += String.fromCharCode(buf[i]);\n  }\n\n  return ret;\n}\n\nfunction hexSlice(buf, start, end) {\n  var len = buf.length;\n  if (!start || start < 0) start = 0;\n  if (!end || end < 0 || end > len) end = len;\n  var out = '';\n\n  for (var i = start; i < end; ++i) {\n    out += hexSliceLookupTable[buf[i]];\n  }\n\n  return out;\n}\n\nfunction utf16leSlice(buf, start, end) {\n  var bytes = buf.slice(start, end);\n  var res = ''; // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n\n  for (var i = 0; i < bytes.length - 1; i += 2) {\n    res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n  }\n\n  return res;\n}\n\nBuffer.prototype.slice = function slice(start, end) {\n  var len = this.length;\n  start = ~~start;\n  end = end === undefined ? len : ~~end;\n\n  if (start < 0) {\n    start += len;\n    if (start < 0) start = 0;\n  } else if (start > len) {\n    start = len;\n  }\n\n  if (end < 0) {\n    end += len;\n    if (end < 0) end = 0;\n  } else if (end > len) {\n    end = len;\n  }\n\n  if (end < start) end = start;\n  var newBuf = this.subarray(start, end); // Return an augmented `Uint8Array` instance\n\n  Object.setPrototypeOf(newBuf, Buffer.prototype);\n  return newBuf;\n};\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\n\n\nfunction checkOffset(offset, ext, length) {\n  if (offset % 1 !== 0 || offset < 0) throw new RangeError('offset is not uint');\n  if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length');\n}\n\nBuffer.prototype.readUintLE = Buffer.prototype.readUIntLE = function readUIntLE(offset, byteLength, noAssert) {\n  offset = offset >>> 0;\n  byteLength = byteLength >>> 0;\n  if (!noAssert) checkOffset(offset, byteLength, this.length);\n  var val = this[offset];\n  var mul = 1;\n  var i = 0;\n\n  while (++i < byteLength && (mul *= 0x100)) {\n    val += this[offset + i] * mul;\n  }\n\n  return val;\n};\n\nBuffer.prototype.readUintBE = Buffer.prototype.readUIntBE = function readUIntBE(offset, byteLength, noAssert) {\n  offset = offset >>> 0;\n  byteLength = byteLength >>> 0;\n\n  if (!noAssert) {\n    checkOffset(offset, byteLength, this.length);\n  }\n\n  var val = this[offset + --byteLength];\n  var mul = 1;\n\n  while (byteLength > 0 && (mul *= 0x100)) {\n    val += this[offset + --byteLength] * mul;\n  }\n\n  return val;\n};\n\nBuffer.prototype.readUint8 = Buffer.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n  offset = offset >>> 0;\n  if (!noAssert) checkOffset(offset, 1, this.length);\n  return this[offset];\n};\n\nBuffer.prototype.readUint16LE = Buffer.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n  offset = offset >>> 0;\n  if (!noAssert) checkOffset(offset, 2, this.length);\n  return this[offset] | this[offset + 1] << 8;\n};\n\nBuffer.prototype.readUint16BE = Buffer.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n  offset = offset >>> 0;\n  if (!noAssert) checkOffset(offset, 2, this.length);\n  return this[offset] << 8 | this[offset + 1];\n};\n\nBuffer.prototype.readUint32LE = Buffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n  offset = offset >>> 0;\n  if (!noAssert) checkOffset(offset, 4, this.length);\n  return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 0x1000000;\n};\n\nBuffer.prototype.readUint32BE = Buffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n  offset = offset >>> 0;\n  if (!noAssert) checkOffset(offset, 4, this.length);\n  return this[offset] * 0x1000000 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n};\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE(offset) {\n  offset = offset >>> 0;\n  validateNumber(offset, 'offset');\n  var first = this[offset];\n  var last = this[offset + 7];\n\n  if (first === undefined || last === undefined) {\n    boundsError(offset, this.length - 8);\n  }\n\n  var lo = first + this[++offset] * Math.pow(2, 8) + this[++offset] * Math.pow(2, 16) + this[++offset] * Math.pow(2, 24);\n  var hi = this[++offset] + this[++offset] * Math.pow(2, 8) + this[++offset] * Math.pow(2, 16) + last * Math.pow(2, 24);\n  return BigInt(lo) + (BigInt(hi) << BigInt(32));\n});\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE(offset) {\n  offset = offset >>> 0;\n  validateNumber(offset, 'offset');\n  var first = this[offset];\n  var last = this[offset + 7];\n\n  if (first === undefined || last === undefined) {\n    boundsError(offset, this.length - 8);\n  }\n\n  var hi = first * Math.pow(2, 24) + this[++offset] * Math.pow(2, 16) + this[++offset] * Math.pow(2, 8) + this[++offset];\n  var lo = this[++offset] * Math.pow(2, 24) + this[++offset] * Math.pow(2, 16) + this[++offset] * Math.pow(2, 8) + last;\n  return (BigInt(hi) << BigInt(32)) + BigInt(lo);\n});\n\nBuffer.prototype.readIntLE = function readIntLE(offset, byteLength, noAssert) {\n  offset = offset >>> 0;\n  byteLength = byteLength >>> 0;\n  if (!noAssert) checkOffset(offset, byteLength, this.length);\n  var val = this[offset];\n  var mul = 1;\n  var i = 0;\n\n  while (++i < byteLength && (mul *= 0x100)) {\n    val += this[offset + i] * mul;\n  }\n\n  mul *= 0x80;\n  if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n  return val;\n};\n\nBuffer.prototype.readIntBE = function readIntBE(offset, byteLength, noAssert) {\n  offset = offset >>> 0;\n  byteLength = byteLength >>> 0;\n  if (!noAssert) checkOffset(offset, byteLength, this.length);\n  var i = byteLength;\n  var mul = 1;\n  var val = this[offset + --i];\n\n  while (i > 0 && (mul *= 0x100)) {\n    val += this[offset + --i] * mul;\n  }\n\n  mul *= 0x80;\n  if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n  return val;\n};\n\nBuffer.prototype.readInt8 = function readInt8(offset, noAssert) {\n  offset = offset >>> 0;\n  if (!noAssert) checkOffset(offset, 1, this.length);\n  if (!(this[offset] & 0x80)) return this[offset];\n  return (0xff - this[offset] + 1) * -1;\n};\n\nBuffer.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n  offset = offset >>> 0;\n  if (!noAssert) checkOffset(offset, 2, this.length);\n  var val = this[offset] | this[offset + 1] << 8;\n  return val & 0x8000 ? val | 0xFFFF0000 : val;\n};\n\nBuffer.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n  offset = offset >>> 0;\n  if (!noAssert) checkOffset(offset, 2, this.length);\n  var val = this[offset + 1] | this[offset] << 8;\n  return val & 0x8000 ? val | 0xFFFF0000 : val;\n};\n\nBuffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n  offset = offset >>> 0;\n  if (!noAssert) checkOffset(offset, 4, this.length);\n  return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n};\n\nBuffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n  offset = offset >>> 0;\n  if (!noAssert) checkOffset(offset, 4, this.length);\n  return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n};\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE(offset) {\n  offset = offset >>> 0;\n  validateNumber(offset, 'offset');\n  var first = this[offset];\n  var last = this[offset + 7];\n\n  if (first === undefined || last === undefined) {\n    boundsError(offset, this.length - 8);\n  }\n\n  var val = this[offset + 4] + this[offset + 5] * Math.pow(2, 8) + this[offset + 6] * Math.pow(2, 16) + (last << 24); // Overflow\n\n  return (BigInt(val) << BigInt(32)) + BigInt(first + this[++offset] * Math.pow(2, 8) + this[++offset] * Math.pow(2, 16) + this[++offset] * Math.pow(2, 24));\n});\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE(offset) {\n  offset = offset >>> 0;\n  validateNumber(offset, 'offset');\n  var first = this[offset];\n  var last = this[offset + 7];\n\n  if (first === undefined || last === undefined) {\n    boundsError(offset, this.length - 8);\n  }\n\n  var val = (first << 24) + // Overflow\n  this[++offset] * Math.pow(2, 16) + this[++offset] * Math.pow(2, 8) + this[++offset];\n  return (BigInt(val) << BigInt(32)) + BigInt(this[++offset] * Math.pow(2, 24) + this[++offset] * Math.pow(2, 16) + this[++offset] * Math.pow(2, 8) + last);\n});\n\nBuffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n  offset = offset >>> 0;\n  if (!noAssert) checkOffset(offset, 4, this.length);\n  return ieee754.read(this, offset, true, 23, 4);\n};\n\nBuffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n  offset = offset >>> 0;\n  if (!noAssert) checkOffset(offset, 4, this.length);\n  return ieee754.read(this, offset, false, 23, 4);\n};\n\nBuffer.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n  offset = offset >>> 0;\n  if (!noAssert) checkOffset(offset, 8, this.length);\n  return ieee754.read(this, offset, true, 52, 8);\n};\n\nBuffer.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n  offset = offset >>> 0;\n  if (!noAssert) checkOffset(offset, 8, this.length);\n  return ieee754.read(this, offset, false, 52, 8);\n};\n\nfunction checkInt(buf, value, offset, ext, max, min) {\n  if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance');\n  if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds');\n  if (offset + ext > buf.length) throw new RangeError('Index out of range');\n}\n\nBuffer.prototype.writeUintLE = Buffer.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength, noAssert) {\n  value = +value;\n  offset = offset >>> 0;\n  byteLength = byteLength >>> 0;\n\n  if (!noAssert) {\n    var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n    checkInt(this, value, offset, byteLength, maxBytes, 0);\n  }\n\n  var mul = 1;\n  var i = 0;\n  this[offset] = value & 0xFF;\n\n  while (++i < byteLength && (mul *= 0x100)) {\n    this[offset + i] = value / mul & 0xFF;\n  }\n\n  return offset + byteLength;\n};\n\nBuffer.prototype.writeUintBE = Buffer.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength, noAssert) {\n  value = +value;\n  offset = offset >>> 0;\n  byteLength = byteLength >>> 0;\n\n  if (!noAssert) {\n    var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n    checkInt(this, value, offset, byteLength, maxBytes, 0);\n  }\n\n  var i = byteLength - 1;\n  var mul = 1;\n  this[offset + i] = value & 0xFF;\n\n  while (--i >= 0 && (mul *= 0x100)) {\n    this[offset + i] = value / mul & 0xFF;\n  }\n\n  return offset + byteLength;\n};\n\nBuffer.prototype.writeUint8 = Buffer.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n  value = +value;\n  offset = offset >>> 0;\n  if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n  this[offset] = value & 0xff;\n  return offset + 1;\n};\n\nBuffer.prototype.writeUint16LE = Buffer.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n  value = +value;\n  offset = offset >>> 0;\n  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n  this[offset] = value & 0xff;\n  this[offset + 1] = value >>> 8;\n  return offset + 2;\n};\n\nBuffer.prototype.writeUint16BE = Buffer.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n  value = +value;\n  offset = offset >>> 0;\n  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n  this[offset] = value >>> 8;\n  this[offset + 1] = value & 0xff;\n  return offset + 2;\n};\n\nBuffer.prototype.writeUint32LE = Buffer.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n  value = +value;\n  offset = offset >>> 0;\n  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n  this[offset + 3] = value >>> 24;\n  this[offset + 2] = value >>> 16;\n  this[offset + 1] = value >>> 8;\n  this[offset] = value & 0xff;\n  return offset + 4;\n};\n\nBuffer.prototype.writeUint32BE = Buffer.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n  value = +value;\n  offset = offset >>> 0;\n  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n  this[offset] = value >>> 24;\n  this[offset + 1] = value >>> 16;\n  this[offset + 2] = value >>> 8;\n  this[offset + 3] = value & 0xff;\n  return offset + 4;\n};\n\nfunction wrtBigUInt64LE(buf, value, offset, min, max) {\n  checkIntBI(value, min, max, buf, offset, 7);\n  var lo = Number(value & BigInt(0xffffffff));\n  buf[offset++] = lo;\n  lo = lo >> 8;\n  buf[offset++] = lo;\n  lo = lo >> 8;\n  buf[offset++] = lo;\n  lo = lo >> 8;\n  buf[offset++] = lo;\n  var hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n  buf[offset++] = hi;\n  hi = hi >> 8;\n  buf[offset++] = hi;\n  hi = hi >> 8;\n  buf[offset++] = hi;\n  hi = hi >> 8;\n  buf[offset++] = hi;\n  return offset;\n}\n\nfunction wrtBigUInt64BE(buf, value, offset, min, max) {\n  checkIntBI(value, min, max, buf, offset, 7);\n  var lo = Number(value & BigInt(0xffffffff));\n  buf[offset + 7] = lo;\n  lo = lo >> 8;\n  buf[offset + 6] = lo;\n  lo = lo >> 8;\n  buf[offset + 5] = lo;\n  lo = lo >> 8;\n  buf[offset + 4] = lo;\n  var hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n  buf[offset + 3] = hi;\n  hi = hi >> 8;\n  buf[offset + 2] = hi;\n  hi = hi >> 8;\n  buf[offset + 1] = hi;\n  hi = hi >> 8;\n  buf[offset] = hi;\n  return offset + 8;\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value) {\n  var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n  return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'));\n});\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value) {\n  var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n  return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'));\n});\n\nBuffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength, noAssert) {\n  value = +value;\n  offset = offset >>> 0;\n\n  if (!noAssert) {\n    var limit = Math.pow(2, 8 * byteLength - 1);\n    checkInt(this, value, offset, byteLength, limit - 1, -limit);\n  }\n\n  var i = 0;\n  var mul = 1;\n  var sub = 0;\n  this[offset] = value & 0xFF;\n\n  while (++i < byteLength && (mul *= 0x100)) {\n    if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n      sub = 1;\n    }\n\n    this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n  }\n\n  return offset + byteLength;\n};\n\nBuffer.prototype.writeIntBE = function writeIntBE(value, offset, byteLength, noAssert) {\n  value = +value;\n  offset = offset >>> 0;\n\n  if (!noAssert) {\n    var limit = Math.pow(2, 8 * byteLength - 1);\n    checkInt(this, value, offset, byteLength, limit - 1, -limit);\n  }\n\n  var i = byteLength - 1;\n  var mul = 1;\n  var sub = 0;\n  this[offset + i] = value & 0xFF;\n\n  while (--i >= 0 && (mul *= 0x100)) {\n    if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n      sub = 1;\n    }\n\n    this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n  }\n\n  return offset + byteLength;\n};\n\nBuffer.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n  value = +value;\n  offset = offset >>> 0;\n  if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n  if (value < 0) value = 0xff + value + 1;\n  this[offset] = value & 0xff;\n  return offset + 1;\n};\n\nBuffer.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n  value = +value;\n  offset = offset >>> 0;\n  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n  this[offset] = value & 0xff;\n  this[offset + 1] = value >>> 8;\n  return offset + 2;\n};\n\nBuffer.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n  value = +value;\n  offset = offset >>> 0;\n  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n  this[offset] = value >>> 8;\n  this[offset + 1] = value & 0xff;\n  return offset + 2;\n};\n\nBuffer.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n  value = +value;\n  offset = offset >>> 0;\n  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n  this[offset] = value & 0xff;\n  this[offset + 1] = value >>> 8;\n  this[offset + 2] = value >>> 16;\n  this[offset + 3] = value >>> 24;\n  return offset + 4;\n};\n\nBuffer.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n  value = +value;\n  offset = offset >>> 0;\n  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n  if (value < 0) value = 0xffffffff + value + 1;\n  this[offset] = value >>> 24;\n  this[offset + 1] = value >>> 16;\n  this[offset + 2] = value >>> 8;\n  this[offset + 3] = value & 0xff;\n  return offset + 4;\n};\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value) {\n  var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n  return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'));\n});\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value) {\n  var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n  return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'));\n});\n\nfunction checkIEEE754(buf, value, offset, ext, max, min) {\n  if (offset + ext > buf.length) throw new RangeError('Index out of range');\n  if (offset < 0) throw new RangeError('Index out of range');\n}\n\nfunction writeFloat(buf, value, offset, littleEndian, noAssert) {\n  value = +value;\n  offset = offset >>> 0;\n\n  if (!noAssert) {\n    checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38);\n  }\n\n  ieee754.write(buf, value, offset, littleEndian, 23, 4);\n  return offset + 4;\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n  return writeFloat(this, value, offset, true, noAssert);\n};\n\nBuffer.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n  return writeFloat(this, value, offset, false, noAssert);\n};\n\nfunction writeDouble(buf, value, offset, littleEndian, noAssert) {\n  value = +value;\n  offset = offset >>> 0;\n\n  if (!noAssert) {\n    checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308);\n  }\n\n  ieee754.write(buf, value, offset, littleEndian, 52, 8);\n  return offset + 8;\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n  return writeDouble(this, value, offset, true, noAssert);\n};\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n  return writeDouble(this, value, offset, false, noAssert);\n}; // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\n\nBuffer.prototype.copy = function copy(target, targetStart, start, end) {\n  if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer');\n  if (!start) start = 0;\n  if (!end && end !== 0) end = this.length;\n  if (targetStart >= target.length) targetStart = target.length;\n  if (!targetStart) targetStart = 0;\n  if (end > 0 && end < start) end = start; // Copy 0 bytes; we're done\n\n  if (end === start) return 0;\n  if (target.length === 0 || this.length === 0) return 0; // Fatal error conditions\n\n  if (targetStart < 0) {\n    throw new RangeError('targetStart out of bounds');\n  }\n\n  if (start < 0 || start >= this.length) throw new RangeError('Index out of range');\n  if (end < 0) throw new RangeError('sourceEnd out of bounds'); // Are we oob?\n\n  if (end > this.length) end = this.length;\n\n  if (target.length - targetStart < end - start) {\n    end = target.length - targetStart + start;\n  }\n\n  var len = end - start;\n\n  if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n    // Use built-in when available, missing from IE11\n    this.copyWithin(targetStart, start, end);\n  } else {\n    Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart);\n  }\n\n  return len;\n}; // Usage:\n//    buffer.fill(number[, offset[, end]])\n//    buffer.fill(buffer[, offset[, end]])\n//    buffer.fill(string[, offset[, end]][, encoding])\n\n\nBuffer.prototype.fill = function fill(val, start, end, encoding) {\n  // Handle string cases:\n  if (typeof val === 'string') {\n    if (typeof start === 'string') {\n      encoding = start;\n      start = 0;\n      end = this.length;\n    } else if (typeof end === 'string') {\n      encoding = end;\n      end = this.length;\n    }\n\n    if (encoding !== undefined && typeof encoding !== 'string') {\n      throw new TypeError('encoding must be a string');\n    }\n\n    if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n      throw new TypeError('Unknown encoding: ' + encoding);\n    }\n\n    if (val.length === 1) {\n      var code = val.charCodeAt(0);\n\n      if (encoding === 'utf8' && code < 128 || encoding === 'latin1') {\n        // Fast path: If `val` fits into a single byte, use that numeric value.\n        val = code;\n      }\n    }\n  } else if (typeof val === 'number') {\n    val = val & 255;\n  } else if (typeof val === 'boolean') {\n    val = Number(val);\n  } // Invalid ranges are not set to a default, so can range check early.\n\n\n  if (start < 0 || this.length < start || this.length < end) {\n    throw new RangeError('Out of range index');\n  }\n\n  if (end <= start) {\n    return this;\n  }\n\n  start = start >>> 0;\n  end = end === undefined ? this.length : end >>> 0;\n  if (!val) val = 0;\n  var i;\n\n  if (typeof val === 'number') {\n    for (i = start; i < end; ++i) {\n      this[i] = val;\n    }\n  } else {\n    var bytes = Buffer.isBuffer(val) ? val : Buffer.from(val, encoding);\n    var len = bytes.length;\n\n    if (len === 0) {\n      throw new TypeError('The value \"' + val + '\" is invalid for argument \"value\"');\n    }\n\n    for (i = 0; i < end - start; ++i) {\n      this[i + start] = bytes[i % len];\n    }\n  }\n\n  return this;\n}; // CUSTOM ERRORS\n// =============\n// Simplified versions from Node, changed for Buffer-only usage\n\n\nvar errors = {};\n\nfunction E(sym, getMessage, Base) {\n  errors[sym] = /*#__PURE__*/function (_Base) {\n    _inherits(NodeError, _Base);\n\n    var _super = _createSuper(NodeError);\n\n    function NodeError() {\n      var _this;\n\n      _classCallCheck(this, NodeError);\n\n      _this = _super.call(this);\n      Object.defineProperty(_assertThisInitialized(_this), 'message', {\n        value: getMessage.apply(_assertThisInitialized(_this), arguments),\n        writable: true,\n        configurable: true\n      }); // Add the error code to the name to include it in the stack trace.\n\n      _this.name = \"\".concat(_this.name, \" [\").concat(sym, \"]\"); // Access the stack to generate the error message including the error code\n      // from the name.\n\n      _this.stack; // eslint-disable-line no-unused-expressions\n      // Reset the name to the actual name.\n\n      delete _this.name;\n      return _this;\n    }\n\n    _createClass(NodeError, [{\n      key: \"code\",\n      get: function get() {\n        return sym;\n      },\n      set: function set(value) {\n        Object.defineProperty(this, 'code', {\n          configurable: true,\n          enumerable: true,\n          value: value,\n          writable: true\n        });\n      }\n    }, {\n      key: \"toString\",\n      value: function toString() {\n        return \"\".concat(this.name, \" [\").concat(sym, \"]: \").concat(this.message);\n      }\n    }]);\n\n    return NodeError;\n  }(Base);\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS', function (name) {\n  if (name) {\n    return \"\".concat(name, \" is outside of buffer bounds\");\n  }\n\n  return 'Attempt to access memory outside buffer bounds';\n}, RangeError);\nE('ERR_INVALID_ARG_TYPE', function (name, actual) {\n  return \"The \\\"\".concat(name, \"\\\" argument must be of type number. Received type \").concat(_typeof(actual));\n}, TypeError);\nE('ERR_OUT_OF_RANGE', function (str, range, input) {\n  var msg = \"The value of \\\"\".concat(str, \"\\\" is out of range.\");\n  var received = input;\n\n  if (Number.isInteger(input) && Math.abs(input) > Math.pow(2, 32)) {\n    received = addNumericalSeparator(String(input));\n  } else if (typeof input === 'bigint') {\n    received = String(input);\n\n    if (input > Math.pow(BigInt(2), BigInt(32)) || input < -Math.pow(BigInt(2), BigInt(32))) {\n      received = addNumericalSeparator(received);\n    }\n\n    received += 'n';\n  }\n\n  msg += \" It must be \".concat(range, \". Received \").concat(received);\n  return msg;\n}, RangeError);\n\nfunction addNumericalSeparator(val) {\n  var res = '';\n  var i = val.length;\n  var start = val[0] === '-' ? 1 : 0;\n\n  for (; i >= start + 4; i -= 3) {\n    res = \"_\".concat(val.slice(i - 3, i)).concat(res);\n  }\n\n  return \"\".concat(val.slice(0, i)).concat(res);\n} // CHECK FUNCTIONS\n// ===============\n\n\nfunction checkBounds(buf, offset, byteLength) {\n  validateNumber(offset, 'offset');\n\n  if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n    boundsError(offset, buf.length - (byteLength + 1));\n  }\n}\n\nfunction checkIntBI(value, min, max, buf, offset, byteLength) {\n  if (value > max || value < min) {\n    var n = typeof min === 'bigint' ? 'n' : '';\n    var range;\n\n    if (byteLength > 3) {\n      if (min === 0 || min === BigInt(0)) {\n        range = \">= 0\".concat(n, \" and < 2\").concat(n, \" ** \").concat((byteLength + 1) * 8).concat(n);\n      } else {\n        range = \">= -(2\".concat(n, \" ** \").concat((byteLength + 1) * 8 - 1).concat(n, \") and < 2 ** \") + \"\".concat((byteLength + 1) * 8 - 1).concat(n);\n      }\n    } else {\n      range = \">= \".concat(min).concat(n, \" and <= \").concat(max).concat(n);\n    }\n\n    throw new errors.ERR_OUT_OF_RANGE('value', range, value);\n  }\n\n  checkBounds(buf, offset, byteLength);\n}\n\nfunction validateNumber(value, name) {\n  if (typeof value !== 'number') {\n    throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value);\n  }\n}\n\nfunction boundsError(value, length, type) {\n  if (Math.floor(value) !== value) {\n    validateNumber(value, type);\n    throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value);\n  }\n\n  if (length < 0) {\n    throw new errors.ERR_BUFFER_OUT_OF_BOUNDS();\n  }\n\n  throw new errors.ERR_OUT_OF_RANGE(type || 'offset', \">= \".concat(type ? 1 : 0, \" and <= \").concat(length), value);\n} // HELPER FUNCTIONS\n// ================\n\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n\nfunction base64clean(str) {\n  // Node takes equal signs as end of the Base64 encoding\n  str = str.split('=')[0]; // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\n  str = str.trim().replace(INVALID_BASE64_RE, ''); // Node converts strings with length < 2 to ''\n\n  if (str.length < 2) return ''; // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\n  while (str.length % 4 !== 0) {\n    str = str + '=';\n  }\n\n  return str;\n}\n\nfunction utf8ToBytes(string, units) {\n  units = units || Infinity;\n  var codePoint;\n  var length = string.length;\n  var leadSurrogate = null;\n  var bytes = [];\n\n  for (var i = 0; i < length; ++i) {\n    codePoint = string.charCodeAt(i); // is surrogate component\n\n    if (codePoint > 0xD7FF && codePoint < 0xE000) {\n      // last char was a lead\n      if (!leadSurrogate) {\n        // no lead yet\n        if (codePoint > 0xDBFF) {\n          // unexpected trail\n          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n          continue;\n        } else if (i + 1 === length) {\n          // unpaired lead\n          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n          continue;\n        } // valid lead\n\n\n        leadSurrogate = codePoint;\n        continue;\n      } // 2 leads in a row\n\n\n      if (codePoint < 0xDC00) {\n        if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n        leadSurrogate = codePoint;\n        continue;\n      } // valid surrogate pair\n\n\n      codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n    } else if (leadSurrogate) {\n      // valid bmp char, but last char was a lead\n      if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n    }\n\n    leadSurrogate = null; // encode utf8\n\n    if (codePoint < 0x80) {\n      if ((units -= 1) < 0) break;\n      bytes.push(codePoint);\n    } else if (codePoint < 0x800) {\n      if ((units -= 2) < 0) break;\n      bytes.push(codePoint >> 0x6 | 0xC0, codePoint & 0x3F | 0x80);\n    } else if (codePoint < 0x10000) {\n      if ((units -= 3) < 0) break;\n      bytes.push(codePoint >> 0xC | 0xE0, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n    } else if (codePoint < 0x110000) {\n      if ((units -= 4) < 0) break;\n      bytes.push(codePoint >> 0x12 | 0xF0, codePoint >> 0xC & 0x3F | 0x80, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n    } else {\n      throw new Error('Invalid code point');\n    }\n  }\n\n  return bytes;\n}\n\nfunction asciiToBytes(str) {\n  var byteArray = [];\n\n  for (var i = 0; i < str.length; ++i) {\n    // Node's code seems to be doing this and not & 0x7F..\n    byteArray.push(str.charCodeAt(i) & 0xFF);\n  }\n\n  return byteArray;\n}\n\nfunction utf16leToBytes(str, units) {\n  var c, hi, lo;\n  var byteArray = [];\n\n  for (var i = 0; i < str.length; ++i) {\n    if ((units -= 2) < 0) break;\n    c = str.charCodeAt(i);\n    hi = c >> 8;\n    lo = c % 256;\n    byteArray.push(lo);\n    byteArray.push(hi);\n  }\n\n  return byteArray;\n}\n\nfunction base64ToBytes(str) {\n  return base64.toByteArray(base64clean(str));\n}\n\nfunction blitBuffer(src, dst, offset, length) {\n  var i;\n\n  for (i = 0; i < length; ++i) {\n    if (i + offset >= dst.length || i >= src.length) break;\n    dst[i + offset] = src[i];\n  }\n\n  return i;\n} // ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\n\n\nfunction isInstance(obj, type) {\n  return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name;\n}\n\nfunction numberIsNaN(obj) {\n  // For IE11 support\n  return obj !== obj; // eslint-disable-line no-self-compare\n} // Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\n\n\nvar hexSliceLookupTable = function () {\n  var alphabet = '0123456789abcdef';\n  var table = new Array(256);\n\n  for (var i = 0; i < 16; ++i) {\n    var i16 = i * 16;\n\n    for (var j = 0; j < 16; ++j) {\n      table[i16 + j] = alphabet[i] + alphabet[j];\n    }\n  }\n\n  return table;\n}(); // Return not function with Error if BigInt not supported\n\n\nfunction defineBigIntMethod(fn) {\n  return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn;\n}\n\nfunction BufferBigIntNotDefined() {\n  throw new Error('BigInt not supported');\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/buffer/index.js?");

/***/ }),

/***/ "./node_modules/css-loader/dist/runtime/api.js":
/*!*****************************************************!*\
  !*** ./node_modules/css-loader/dist/runtime/api.js ***!
  \*****************************************************/
/***/ ((module) => {

"use strict";
eval("\n/*\n  MIT License http://www.opensource.org/licenses/mit-license.php\n  Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n\nmodule.exports = function (useSourceMap) {\n  var list = []; // return the list of modules as css string\n\n  list.toString = function toString() {\n    return this.map(function (item) {\n      var content = cssWithMappingToString(item, useSourceMap);\n\n      if (item[2]) {\n        return '@media ' + item[2] + '{' + content + '}';\n      } else {\n        return content;\n      }\n    }).join('');\n  }; // import a list of modules into the list\n\n\n  list.i = function (modules, mediaQuery) {\n    if (typeof modules === 'string') {\n      modules = [[null, modules, '']];\n    }\n\n    var alreadyImportedModules = {};\n\n    for (var i = 0; i < this.length; i++) {\n      var id = this[i][0];\n\n      if (id != null) {\n        alreadyImportedModules[id] = true;\n      }\n    }\n\n    for (i = 0; i < modules.length; i++) {\n      var item = modules[i]; // skip already imported module\n      // this implementation is not 100% perfect for weird media query combinations\n      // when a module is imported multiple times with different media queries.\n      // I hope this will never occur (Hey this way we have smaller bundles)\n\n      if (item[0] == null || !alreadyImportedModules[item[0]]) {\n        if (mediaQuery && !item[2]) {\n          item[2] = mediaQuery;\n        } else if (mediaQuery) {\n          item[2] = '(' + item[2] + ') and (' + mediaQuery + ')';\n        }\n\n        list.push(item);\n      }\n    }\n  };\n\n  return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n  var content = item[1] || '';\n  var cssMapping = item[3];\n\n  if (!cssMapping) {\n    return content;\n  }\n\n  if (useSourceMap && typeof btoa === 'function') {\n    var sourceMapping = toComment(cssMapping);\n    var sourceURLs = cssMapping.sources.map(function (source) {\n      return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */';\n    });\n    return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n  }\n\n  return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n  // eslint-disable-next-line no-undef\n  var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n  var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n  return '/*# ' + data + ' */';\n}\n\n//# sourceURL=webpack://absol-poser/./node_modules/css-loader/dist/runtime/api.js?");

/***/ }),

/***/ "./node_modules/ieee754/index.js":
/*!***************************************!*\
  !*** ./node_modules/ieee754/index.js ***!
  \***************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n  var e, m;\n  var eLen = nBytes * 8 - mLen - 1;\n  var eMax = (1 << eLen) - 1;\n  var eBias = eMax >> 1;\n  var nBits = -7;\n  var i = isLE ? nBytes - 1 : 0;\n  var d = isLE ? -1 : 1;\n  var s = buffer[offset + i];\n  i += d;\n  e = s & (1 << -nBits) - 1;\n  s >>= -nBits;\n  nBits += eLen;\n\n  for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n  m = e & (1 << -nBits) - 1;\n  e >>= -nBits;\n  nBits += mLen;\n\n  for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n  if (e === 0) {\n    e = 1 - eBias;\n  } else if (e === eMax) {\n    return m ? NaN : (s ? -1 : 1) * Infinity;\n  } else {\n    m = m + Math.pow(2, mLen);\n    e = e - eBias;\n  }\n\n  return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n};\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n  var e, m, c;\n  var eLen = nBytes * 8 - mLen - 1;\n  var eMax = (1 << eLen) - 1;\n  var eBias = eMax >> 1;\n  var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n  var i = isLE ? 0 : nBytes - 1;\n  var d = isLE ? 1 : -1;\n  var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n  value = Math.abs(value);\n\n  if (isNaN(value) || value === Infinity) {\n    m = isNaN(value) ? 1 : 0;\n    e = eMax;\n  } else {\n    e = Math.floor(Math.log(value) / Math.LN2);\n\n    if (value * (c = Math.pow(2, -e)) < 1) {\n      e--;\n      c *= 2;\n    }\n\n    if (e + eBias >= 1) {\n      value += rt / c;\n    } else {\n      value += rt * Math.pow(2, 1 - eBias);\n    }\n\n    if (value * c >= 2) {\n      e++;\n      c /= 2;\n    }\n\n    if (e + eBias >= eMax) {\n      m = 0;\n      e = eMax;\n    } else if (e + eBias >= 1) {\n      m = (value * c - 1) * Math.pow(2, mLen);\n      e = e + eBias;\n    } else {\n      m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n      e = 0;\n    }\n  }\n\n  for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n  e = e << mLen | m;\n  eLen += mLen;\n\n  for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n  buffer[offset + i - d] |= s * 128;\n};\n\n//# sourceURL=webpack://absol-poser/./node_modules/ieee754/index.js?");

/***/ }),

/***/ "./node_modules/intl/index.js":
/*!************************************!*\
  !*** ./node_modules/intl/index.js ***!
  \************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\n// Expose `IntlPolyfill` as global to add locale data into runtime later on.\n__webpack_require__.g.IntlPolyfill = __webpack_require__(/*! ./lib/core.js */ \"./node_modules/intl/lib/core.js\"); // Require all locale data for `Intl`. This module will be\n// ignored when bundling for the browser with Browserify/Webpack.\n\n__webpack_require__(/*! ./locale-data/complete.js */ \"?2dd4\"); // hack to export the polyfill as global Intl if needed\n\n\nif (!__webpack_require__.g.Intl) {\n  __webpack_require__.g.Intl = __webpack_require__.g.IntlPolyfill;\n\n  __webpack_require__.g.IntlPolyfill.__applyLocaleSensitivePrototypes();\n} // providing an idiomatic api for the nodejs version of this module\n\n\nmodule.exports = __webpack_require__.g.IntlPolyfill;\n\n//# sourceURL=webpack://absol-poser/./node_modules/intl/index.js?");

/***/ }),

/***/ "./node_modules/intl/lib/core.js":
/*!***************************************!*\
  !*** ./node_modules/intl/lib/core.js ***!
  \***************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _typeof2(obj) { \"@babel/helpers - typeof\"; return _typeof2 = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof2(obj); }\n\nvar _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n  return _typeof2(obj);\n} : function (obj) {\n  return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : _typeof2(obj);\n};\n\nvar jsx = function () {\n  var REACT_ELEMENT_TYPE = typeof Symbol === \"function\" && Symbol[\"for\"] && Symbol[\"for\"](\"react.element\") || 0xeac7;\n  return function createRawReactElement(type, props, key, children) {\n    var defaultProps = type && type.defaultProps;\n    var childrenLength = arguments.length - 3;\n\n    if (!props && childrenLength !== 0) {\n      props = {};\n    }\n\n    if (props && defaultProps) {\n      for (var propName in defaultProps) {\n        if (props[propName] === void 0) {\n          props[propName] = defaultProps[propName];\n        }\n      }\n    } else if (!props) {\n      props = defaultProps || {};\n    }\n\n    if (childrenLength === 1) {\n      props.children = children;\n    } else if (childrenLength > 1) {\n      var childArray = Array(childrenLength);\n\n      for (var i = 0; i < childrenLength; i++) {\n        childArray[i] = arguments[i + 3];\n      }\n\n      props.children = childArray;\n    }\n\n    return {\n      $$typeof: REACT_ELEMENT_TYPE,\n      type: type,\n      key: key === undefined ? null : '' + key,\n      ref: null,\n      props: props,\n      _owner: null\n    };\n  };\n}();\n\nvar asyncToGenerator = function asyncToGenerator(fn) {\n  return function () {\n    var gen = fn.apply(this, arguments);\n    return new Promise(function (resolve, reject) {\n      function step(key, arg) {\n        try {\n          var info = gen[key](arg);\n          var value = info.value;\n        } catch (error) {\n          reject(error);\n          return;\n        }\n\n        if (info.done) {\n          resolve(value);\n        } else {\n          return Promise.resolve(value).then(function (value) {\n            return step(\"next\", value);\n          }, function (err) {\n            return step(\"throw\", err);\n          });\n        }\n      }\n\n      return step(\"next\");\n    });\n  };\n};\n\nvar classCallCheck = function classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n};\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\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\n\nvar defineEnumerableProperties = function defineEnumerableProperties(obj, descs) {\n  for (var key in descs) {\n    var desc = descs[key];\n    desc.configurable = desc.enumerable = true;\n    if (\"value\" in desc) desc.writable = true;\n    Object.defineProperty(obj, key, desc);\n  }\n\n  return obj;\n};\n\nvar defaults = function defaults(obj, _defaults) {\n  var keys = Object.getOwnPropertyNames(_defaults);\n\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n    var value = Object.getOwnPropertyDescriptor(_defaults, key);\n\n    if (value && value.configurable && obj[key] === undefined) {\n      Object.defineProperty(obj, key, value);\n    }\n  }\n\n  return obj;\n};\n\nvar defineProperty$1 = function defineProperty$1(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\n  return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\nvar get = function get(object, property, receiver) {\n  if (object === null) object = Function.prototype;\n  var desc = Object.getOwnPropertyDescriptor(object, property);\n\n  if (desc === undefined) {\n    var parent = Object.getPrototypeOf(object);\n\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\n    if (getter === undefined) {\n      return undefined;\n    }\n\n    return getter.call(receiver);\n  }\n};\n\nvar inherits = function inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n  }\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\nvar _instanceof = function _instanceof(left, right) {\n  if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n    return right[Symbol.hasInstance](left);\n  } else {\n    return left instanceof right;\n  }\n};\n\nvar interopRequireDefault = function interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    \"default\": obj\n  };\n};\n\nvar interopRequireWildcard = function interopRequireWildcard(obj) {\n  if (obj && obj.__esModule) {\n    return obj;\n  } else {\n    var newObj = {};\n\n    if (obj != null) {\n      for (var key in obj) {\n        if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n      }\n    }\n\n    newObj[\"default\"] = obj;\n    return newObj;\n  }\n};\n\nvar newArrowCheck = function newArrowCheck(innerThis, boundThis) {\n  if (innerThis !== boundThis) {\n    throw new TypeError(\"Cannot instantiate an arrow function\");\n  }\n};\n\nvar objectDestructuringEmpty = function objectDestructuringEmpty(obj) {\n  if (obj == null) throw new TypeError(\"Cannot destructure undefined\");\n};\n\nvar objectWithoutProperties = function objectWithoutProperties(obj, keys) {\n  var target = {};\n\n  for (var i in obj) {\n    if (keys.indexOf(i) >= 0) continue;\n    if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n    target[i] = obj[i];\n  }\n\n  return target;\n};\n\nvar possibleConstructorReturn = function possibleConstructorReturn(self, call) {\n  if (!self) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar selfGlobal = typeof __webpack_require__.g === \"undefined\" ? self : __webpack_require__.g;\n\nvar set = function set(object, property, value, receiver) {\n  var desc = Object.getOwnPropertyDescriptor(object, property);\n\n  if (desc === undefined) {\n    var parent = Object.getPrototypeOf(object);\n\n    if (parent !== null) {\n      set(parent, property, value, receiver);\n    }\n  } else if (\"value\" in desc && desc.writable) {\n    desc.value = value;\n  } else {\n    var setter = desc.set;\n\n    if (setter !== undefined) {\n      setter.call(receiver, value);\n    }\n  }\n\n  return value;\n};\n\nvar slicedToArray = function () {\n  function sliceIterator(arr, i) {\n    var _arr = [];\n    var _n = true;\n    var _d = false;\n    var _e = undefined;\n\n    try {\n      for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n        _arr.push(_s.value);\n\n        if (i && _arr.length === i) break;\n      }\n    } catch (err) {\n      _d = true;\n      _e = err;\n    } finally {\n      try {\n        if (!_n && _i[\"return\"]) _i[\"return\"]();\n      } finally {\n        if (_d) throw _e;\n      }\n    }\n\n    return _arr;\n  }\n\n  return function (arr, i) {\n    if (Array.isArray(arr)) {\n      return arr;\n    } else if (Symbol.iterator in Object(arr)) {\n      return sliceIterator(arr, i);\n    } else {\n      throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n    }\n  };\n}();\n\nvar slicedToArrayLoose = function slicedToArrayLoose(arr, i) {\n  if (Array.isArray(arr)) {\n    return arr;\n  } else if (Symbol.iterator in Object(arr)) {\n    var _arr = [];\n\n    for (var _iterator = arr[Symbol.iterator](), _step; !(_step = _iterator.next()).done;) {\n      _arr.push(_step.value);\n\n      if (i && _arr.length === i) break;\n    }\n\n    return _arr;\n  } else {\n    throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n  }\n};\n\nvar taggedTemplateLiteral = function taggedTemplateLiteral(strings, raw) {\n  return Object.freeze(Object.defineProperties(strings, {\n    raw: {\n      value: Object.freeze(raw)\n    }\n  }));\n};\n\nvar taggedTemplateLiteralLoose = function taggedTemplateLiteralLoose(strings, raw) {\n  strings.raw = raw;\n  return strings;\n};\n\nvar temporalRef = function temporalRef(val, name, undef) {\n  if (val === undef) {\n    throw new ReferenceError(name + \" is not defined - temporal dead zone\");\n  } else {\n    return val;\n  }\n};\n\nvar temporalUndefined = {};\n\nvar toArray = function toArray(arr) {\n  return Array.isArray(arr) ? arr : Array.from(arr);\n};\n\nvar toConsumableArray = function toConsumableArray(arr) {\n  if (Array.isArray(arr)) {\n    for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n      arr2[i] = arr[i];\n    }\n\n    return arr2;\n  } else {\n    return Array.from(arr);\n  }\n};\n\nvar babelHelpers$1 = Object.freeze({\n  jsx: jsx,\n  asyncToGenerator: asyncToGenerator,\n  classCallCheck: classCallCheck,\n  createClass: createClass,\n  defineEnumerableProperties: defineEnumerableProperties,\n  defaults: defaults,\n  defineProperty: defineProperty$1,\n  get: get,\n  inherits: inherits,\n  interopRequireDefault: interopRequireDefault,\n  interopRequireWildcard: interopRequireWildcard,\n  newArrowCheck: newArrowCheck,\n  objectDestructuringEmpty: objectDestructuringEmpty,\n  objectWithoutProperties: objectWithoutProperties,\n  possibleConstructorReturn: possibleConstructorReturn,\n  selfGlobal: selfGlobal,\n  set: set,\n  slicedToArray: slicedToArray,\n  slicedToArrayLoose: slicedToArrayLoose,\n  taggedTemplateLiteral: taggedTemplateLiteral,\n  taggedTemplateLiteralLoose: taggedTemplateLiteralLoose,\n  temporalRef: temporalRef,\n  temporalUndefined: temporalUndefined,\n  toArray: toArray,\n  toConsumableArray: toConsumableArray,\n  \"typeof\": _typeof,\n  \"extends\": _extends,\n  \"instanceof\": _instanceof\n});\n\nvar realDefineProp = function () {\n  var sentinel = function sentinel() {};\n\n  try {\n    Object.defineProperty(sentinel, 'a', {\n      get: function get() {\n        return 1;\n      }\n    });\n    Object.defineProperty(sentinel, 'prototype', {\n      writable: false\n    });\n    return sentinel.a === 1 && sentinel.prototype instanceof Object;\n  } catch (e) {\n    return false;\n  }\n}(); // Need a workaround for getters in ES3\n\n\nvar es3 = !realDefineProp && !Object.prototype.__defineGetter__; // We use this a lot (and need it for proto-less objects)\n\nvar hop = Object.prototype.hasOwnProperty; // Naive defineProperty for compatibility\n\nvar defineProperty = realDefineProp ? Object.defineProperty : function (obj, name, desc) {\n  if ('get' in desc && obj.__defineGetter__) obj.__defineGetter__(name, desc.get);else if (!hop.call(obj, name) || 'value' in desc) obj[name] = desc.value;\n}; // Array.prototype.indexOf, as good as we need it to be\n\nvar arrIndexOf = Array.prototype.indexOf || function (search) {\n  /*jshint validthis:true */\n  var t = this;\n  if (!t.length) return -1;\n\n  for (var i = arguments[1] || 0, max = t.length; i < max; i++) {\n    if (t[i] === search) return i;\n  }\n\n  return -1;\n}; // Create an object with the specified prototype (2nd arg required for Record)\n\n\nvar objCreate = Object.create || function (proto, props) {\n  var obj = void 0;\n\n  function F() {}\n\n  F.prototype = proto;\n  obj = new F();\n\n  for (var k in props) {\n    if (hop.call(props, k)) defineProperty(obj, k, props[k]);\n  }\n\n  return obj;\n}; // Snapshot some (hopefully still) native built-ins\n\n\nvar arrSlice = Array.prototype.slice;\nvar arrConcat = Array.prototype.concat;\nvar arrPush = Array.prototype.push;\nvar arrJoin = Array.prototype.join;\nvar arrShift = Array.prototype.shift; // Naive Function.prototype.bind for compatibility\n\nvar fnBind = Function.prototype.bind || function (thisObj) {\n  var fn = this,\n      args = arrSlice.call(arguments, 1); // All our (presently) bound functions have either 1 or 0 arguments. By returning\n  // different function signatures, we can pass some tests in ES3 environments\n\n  if (fn.length === 1) {\n    return function () {\n      return fn.apply(thisObj, arrConcat.call(args, arrSlice.call(arguments)));\n    };\n  }\n\n  return function () {\n    return fn.apply(thisObj, arrConcat.call(args, arrSlice.call(arguments)));\n  };\n}; // Object housing internal properties for constructors\n\n\nvar internals = objCreate(null); // Keep internal properties internal\n\nvar secret = Math.random(); // Helper functions\n// ================\n\n/**\n * A function to deal with the inaccuracy of calculating log10 in pre-ES6\n * JavaScript environments. Math.log(num) / Math.LN10 was responsible for\n * causing issue #62.\n */\n\nfunction log10Floor(n) {\n  // ES6 provides the more accurate Math.log10\n  if (typeof Math.log10 === 'function') return Math.floor(Math.log10(n));\n  var x = Math.round(Math.log(n) * Math.LOG10E);\n  return x - (Number('1e' + x) > n);\n}\n/**\n * A map that doesn't contain Object in its prototype chain\n */\n\n\nfunction Record(obj) {\n  // Copy only own properties over unless this object is already a Record instance\n  for (var k in obj) {\n    if (obj instanceof Record || hop.call(obj, k)) defineProperty(this, k, {\n      value: obj[k],\n      enumerable: true,\n      writable: true,\n      configurable: true\n    });\n  }\n}\n\nRecord.prototype = objCreate(null);\n/**\n * An ordered list\n */\n\nfunction List() {\n  defineProperty(this, 'length', {\n    writable: true,\n    value: 0\n  });\n  if (arguments.length) arrPush.apply(this, arrSlice.call(arguments));\n}\n\nList.prototype = objCreate(null);\n/**\n * Constructs a regular expression to restore tainted RegExp properties\n */\n\nfunction createRegExpRestore() {\n  if (internals.disableRegExpRestore) {\n    return function () {\n      /* no-op */\n    };\n  }\n\n  var regExpCache = {\n    lastMatch: RegExp.lastMatch || '',\n    leftContext: RegExp.leftContext,\n    multiline: RegExp.multiline,\n    input: RegExp.input\n  },\n      has = false; // Create a snapshot of all the 'captured' properties\n\n  for (var i = 1; i <= 9; i++) {\n    has = (regExpCache['$' + i] = RegExp['$' + i]) || has;\n  }\n\n  return function () {\n    // Now we've snapshotted some properties, escape the lastMatch string\n    var esc = /[.?*+^$[\\]\\\\(){}|-]/g,\n        lm = regExpCache.lastMatch.replace(esc, '\\\\$&'),\n        reg = new List(); // If any of the captured strings were non-empty, iterate over them all\n\n    if (has) {\n      for (var _i = 1; _i <= 9; _i++) {\n        var m = regExpCache['$' + _i]; // If it's empty, add an empty capturing group\n\n        if (!m) lm = '()' + lm; // Else find the string in lm and escape & wrap it to capture it\n        else {\n          m = m.replace(esc, '\\\\$&');\n          lm = lm.replace(m, '(' + m + ')');\n        } // Push it to the reg and chop lm to make sure further groups come after\n\n        arrPush.call(reg, lm.slice(0, lm.indexOf('(') + 1));\n        lm = lm.slice(lm.indexOf('(') + 1);\n      }\n    }\n\n    var exprStr = arrJoin.call(reg, '') + lm; // Shorten the regex by replacing each part of the expression with a match\n    // for a string of that exact length.  This is safe for the type of\n    // expressions generated above, because the expression matches the whole\n    // match string, so we know each group and each segment between capturing\n    // groups can be matched by its length alone.\n\n    exprStr = exprStr.replace(/(\\\\\\(|\\\\\\)|[^()])+/g, function (match) {\n      return '[\\\\s\\\\S]{' + match.replace('\\\\', '').length + '}';\n    }); // Create the regular expression that will reconstruct the RegExp properties\n\n    var expr = new RegExp(exprStr, regExpCache.multiline ? 'gm' : 'g'); // Set the lastIndex of the generated expression to ensure that the match\n    // is found in the correct index.\n\n    expr.lastIndex = regExpCache.leftContext.length;\n    expr.exec(regExpCache.input);\n  };\n}\n/**\n * Mimics ES5's abstract ToObject() function\n */\n\n\nfunction toObject(arg) {\n  if (arg === null) throw new TypeError('Cannot convert null or undefined to object');\n  if ((typeof arg === 'undefined' ? 'undefined' : babelHelpers$1['typeof'](arg)) === 'object') return arg;\n  return Object(arg);\n}\n\nfunction toNumber(arg) {\n  if (typeof arg === 'number') return arg;\n  return Number(arg);\n}\n\nfunction toInteger(arg) {\n  var number = toNumber(arg);\n  if (isNaN(number)) return 0;\n  if (number === +0 || number === -0 || number === +Infinity || number === -Infinity) return number;\n  if (number < 0) return Math.floor(Math.abs(number)) * -1;\n  return Math.floor(Math.abs(number));\n}\n\nfunction toLength(arg) {\n  var len = toInteger(arg);\n  if (len <= 0) return 0;\n  if (len === Infinity) return Math.pow(2, 53) - 1;\n  return Math.min(len, Math.pow(2, 53) - 1);\n}\n/**\n * Returns \"internal\" properties for an object\n */\n\n\nfunction getInternalProperties(obj) {\n  if (hop.call(obj, '__getInternalProperties')) return obj.__getInternalProperties(secret);\n  return objCreate(null);\n}\n/**\n* Defines regular expressions for various operations related to the BCP 47 syntax,\n* as defined at http://tools.ietf.org/html/bcp47#section-2.1\n*/\n// extlang       = 3ALPHA              ; selected ISO 639 codes\n//                 *2(\"-\" 3ALPHA)      ; permanently reserved\n\n\nvar extlang = '[a-z]{3}(?:-[a-z]{3}){0,2}'; // language      = 2*3ALPHA            ; shortest ISO 639 code\n//                 [\"-\" extlang]       ; sometimes followed by\n//                                     ; extended language subtags\n//               / 4ALPHA              ; or reserved for future use\n//               / 5*8ALPHA            ; or registered language subtag\n\nvar language = '(?:[a-z]{2,3}(?:-' + extlang + ')?|[a-z]{4}|[a-z]{5,8})'; // script        = 4ALPHA              ; ISO 15924 code\n\nvar script = '[a-z]{4}'; // region        = 2ALPHA              ; ISO 3166-1 code\n//               / 3DIGIT              ; UN M.49 code\n\nvar region = '(?:[a-z]{2}|\\\\d{3})'; // variant       = 5*8alphanum         ; registered variants\n//               / (DIGIT 3alphanum)\n\nvar variant = '(?:[a-z0-9]{5,8}|\\\\d[a-z0-9]{3})'; //                                     ; Single alphanumerics\n//                                     ; \"x\" reserved for private use\n// singleton     = DIGIT               ; 0 - 9\n//               / %x41-57             ; A - W\n//               / %x59-5A             ; Y - Z\n//               / %x61-77             ; a - w\n//               / %x79-7A             ; y - z\n\nvar singleton = '[0-9a-wy-z]'; // extension     = singleton 1*(\"-\" (2*8alphanum))\n\nvar extension = singleton + '(?:-[a-z0-9]{2,8})+'; // privateuse    = \"x\" 1*(\"-\" (1*8alphanum))\n\nvar privateuse = 'x(?:-[a-z0-9]{1,8})+'; // irregular     = \"en-GB-oed\"         ; irregular tags do not match\n//               / \"i-ami\"             ; the 'langtag' production and\n//               / \"i-bnn\"             ; would not otherwise be\n//               / \"i-default\"         ; considered 'well-formed'\n//               / \"i-enochian\"        ; These tags are all valid,\n//               / \"i-hak\"             ; but most are deprecated\n//               / \"i-klingon\"         ; in favor of more modern\n//               / \"i-lux\"             ; subtags or subtag\n//               / \"i-mingo\"           ; combination\n//               / \"i-navajo\"\n//               / \"i-pwn\"\n//               / \"i-tao\"\n//               / \"i-tay\"\n//               / \"i-tsu\"\n//               / \"sgn-BE-FR\"\n//               / \"sgn-BE-NL\"\n//               / \"sgn-CH-DE\"\n\nvar irregular = '(?:en-GB-oed' + '|i-(?:ami|bnn|default|enochian|hak|klingon|lux|mingo|navajo|pwn|tao|tay|tsu)' + '|sgn-(?:BE-FR|BE-NL|CH-DE))'; // regular       = \"art-lojban\"        ; these tags match the 'langtag'\n//               / \"cel-gaulish\"       ; production, but their subtags\n//               / \"no-bok\"            ; are not extended language\n//               / \"no-nyn\"            ; or variant subtags: their meaning\n//               / \"zh-guoyu\"          ; is defined by their registration\n//               / \"zh-hakka\"          ; and all of these are deprecated\n//               / \"zh-min\"            ; in favor of a more modern\n//               / \"zh-min-nan\"        ; subtag or sequence of subtags\n//               / \"zh-xiang\"\n\nvar regular = '(?:art-lojban|cel-gaulish|no-bok|no-nyn' + '|zh-(?:guoyu|hakka|min|min-nan|xiang))'; // grandfathered = irregular           ; non-redundant tags registered\n//               / regular             ; during the RFC 3066 era\n\nvar grandfathered = '(?:' + irregular + '|' + regular + ')'; // langtag       = language\n//                 [\"-\" script]\n//                 [\"-\" region]\n//                 *(\"-\" variant)\n//                 *(\"-\" extension)\n//                 [\"-\" privateuse]\n\nvar langtag = language + '(?:-' + script + ')?(?:-' + region + ')?(?:-' + variant + ')*(?:-' + extension + ')*(?:-' + privateuse + ')?'; // Language-Tag  = langtag             ; normal language tags\n//               / privateuse          ; private use tag\n//               / grandfathered       ; grandfathered tags\n\nvar expBCP47Syntax = RegExp('^(?:' + langtag + '|' + privateuse + '|' + grandfathered + ')$', 'i'); // Match duplicate variants in a language tag\n\nvar expVariantDupes = RegExp('^(?!x).*?-(' + variant + ')-(?:\\\\w{4,8}-(?!x-))*\\\\1\\\\b', 'i'); // Match duplicate singletons in a language tag (except in private use)\n\nvar expSingletonDupes = RegExp('^(?!x).*?-(' + singleton + ')-(?:\\\\w+-(?!x-))*\\\\1\\\\b', 'i'); // Match all extension sequences\n\nvar expExtSequences = RegExp('-' + extension, 'ig'); // Default locale is the first-added locale data for us\n\nvar defaultLocale = void 0;\n\nfunction setDefaultLocale(locale) {\n  defaultLocale = locale;\n} // IANA Subtag Registry redundant tag and subtag maps\n\n\nvar redundantTags = {\n  tags: {\n    \"art-lojban\": \"jbo\",\n    \"i-ami\": \"ami\",\n    \"i-bnn\": \"bnn\",\n    \"i-hak\": \"hak\",\n    \"i-klingon\": \"tlh\",\n    \"i-lux\": \"lb\",\n    \"i-navajo\": \"nv\",\n    \"i-pwn\": \"pwn\",\n    \"i-tao\": \"tao\",\n    \"i-tay\": \"tay\",\n    \"i-tsu\": \"tsu\",\n    \"no-bok\": \"nb\",\n    \"no-nyn\": \"nn\",\n    \"sgn-BE-FR\": \"sfb\",\n    \"sgn-BE-NL\": \"vgt\",\n    \"sgn-CH-DE\": \"sgg\",\n    \"zh-guoyu\": \"cmn\",\n    \"zh-hakka\": \"hak\",\n    \"zh-min-nan\": \"nan\",\n    \"zh-xiang\": \"hsn\",\n    \"sgn-BR\": \"bzs\",\n    \"sgn-CO\": \"csn\",\n    \"sgn-DE\": \"gsg\",\n    \"sgn-DK\": \"dsl\",\n    \"sgn-ES\": \"ssp\",\n    \"sgn-FR\": \"fsl\",\n    \"sgn-GB\": \"bfi\",\n    \"sgn-GR\": \"gss\",\n    \"sgn-IE\": \"isg\",\n    \"sgn-IT\": \"ise\",\n    \"sgn-JP\": \"jsl\",\n    \"sgn-MX\": \"mfs\",\n    \"sgn-NI\": \"ncs\",\n    \"sgn-NL\": \"dse\",\n    \"sgn-NO\": \"nsl\",\n    \"sgn-PT\": \"psr\",\n    \"sgn-SE\": \"swl\",\n    \"sgn-US\": \"ase\",\n    \"sgn-ZA\": \"sfs\",\n    \"zh-cmn\": \"cmn\",\n    \"zh-cmn-Hans\": \"cmn-Hans\",\n    \"zh-cmn-Hant\": \"cmn-Hant\",\n    \"zh-gan\": \"gan\",\n    \"zh-wuu\": \"wuu\",\n    \"zh-yue\": \"yue\"\n  },\n  subtags: {\n    BU: \"MM\",\n    DD: \"DE\",\n    FX: \"FR\",\n    TP: \"TL\",\n    YD: \"YE\",\n    ZR: \"CD\",\n    heploc: \"alalc97\",\n    'in': \"id\",\n    iw: \"he\",\n    ji: \"yi\",\n    jw: \"jv\",\n    mo: \"ro\",\n    ayx: \"nun\",\n    bjd: \"drl\",\n    ccq: \"rki\",\n    cjr: \"mom\",\n    cka: \"cmr\",\n    cmk: \"xch\",\n    drh: \"khk\",\n    drw: \"prs\",\n    gav: \"dev\",\n    hrr: \"jal\",\n    ibi: \"opa\",\n    kgh: \"kml\",\n    lcq: \"ppr\",\n    mst: \"mry\",\n    myt: \"mry\",\n    sca: \"hle\",\n    tie: \"ras\",\n    tkk: \"twm\",\n    tlw: \"weo\",\n    tnf: \"prs\",\n    ybd: \"rki\",\n    yma: \"lrr\"\n  },\n  extLang: {\n    aao: [\"aao\", \"ar\"],\n    abh: [\"abh\", \"ar\"],\n    abv: [\"abv\", \"ar\"],\n    acm: [\"acm\", \"ar\"],\n    acq: [\"acq\", \"ar\"],\n    acw: [\"acw\", \"ar\"],\n    acx: [\"acx\", \"ar\"],\n    acy: [\"acy\", \"ar\"],\n    adf: [\"adf\", \"ar\"],\n    ads: [\"ads\", \"sgn\"],\n    aeb: [\"aeb\", \"ar\"],\n    aec: [\"aec\", \"ar\"],\n    aed: [\"aed\", \"sgn\"],\n    aen: [\"aen\", \"sgn\"],\n    afb: [\"afb\", \"ar\"],\n    afg: [\"afg\", \"sgn\"],\n    ajp: [\"ajp\", \"ar\"],\n    apc: [\"apc\", \"ar\"],\n    apd: [\"apd\", \"ar\"],\n    arb: [\"arb\", \"ar\"],\n    arq: [\"arq\", \"ar\"],\n    ars: [\"ars\", \"ar\"],\n    ary: [\"ary\", \"ar\"],\n    arz: [\"arz\", \"ar\"],\n    ase: [\"ase\", \"sgn\"],\n    asf: [\"asf\", \"sgn\"],\n    asp: [\"asp\", \"sgn\"],\n    asq: [\"asq\", \"sgn\"],\n    asw: [\"asw\", \"sgn\"],\n    auz: [\"auz\", \"ar\"],\n    avl: [\"avl\", \"ar\"],\n    ayh: [\"ayh\", \"ar\"],\n    ayl: [\"ayl\", \"ar\"],\n    ayn: [\"ayn\", \"ar\"],\n    ayp: [\"ayp\", \"ar\"],\n    bbz: [\"bbz\", \"ar\"],\n    bfi: [\"bfi\", \"sgn\"],\n    bfk: [\"bfk\", \"sgn\"],\n    bjn: [\"bjn\", \"ms\"],\n    bog: [\"bog\", \"sgn\"],\n    bqn: [\"bqn\", \"sgn\"],\n    bqy: [\"bqy\", \"sgn\"],\n    btj: [\"btj\", \"ms\"],\n    bve: [\"bve\", \"ms\"],\n    bvl: [\"bvl\", \"sgn\"],\n    bvu: [\"bvu\", \"ms\"],\n    bzs: [\"bzs\", \"sgn\"],\n    cdo: [\"cdo\", \"zh\"],\n    cds: [\"cds\", \"sgn\"],\n    cjy: [\"cjy\", \"zh\"],\n    cmn: [\"cmn\", \"zh\"],\n    coa: [\"coa\", \"ms\"],\n    cpx: [\"cpx\", \"zh\"],\n    csc: [\"csc\", \"sgn\"],\n    csd: [\"csd\", \"sgn\"],\n    cse: [\"cse\", \"sgn\"],\n    csf: [\"csf\", \"sgn\"],\n    csg: [\"csg\", \"sgn\"],\n    csl: [\"csl\", \"sgn\"],\n    csn: [\"csn\", \"sgn\"],\n    csq: [\"csq\", \"sgn\"],\n    csr: [\"csr\", \"sgn\"],\n    czh: [\"czh\", \"zh\"],\n    czo: [\"czo\", \"zh\"],\n    doq: [\"doq\", \"sgn\"],\n    dse: [\"dse\", \"sgn\"],\n    dsl: [\"dsl\", \"sgn\"],\n    dup: [\"dup\", \"ms\"],\n    ecs: [\"ecs\", \"sgn\"],\n    esl: [\"esl\", \"sgn\"],\n    esn: [\"esn\", \"sgn\"],\n    eso: [\"eso\", \"sgn\"],\n    eth: [\"eth\", \"sgn\"],\n    fcs: [\"fcs\", \"sgn\"],\n    fse: [\"fse\", \"sgn\"],\n    fsl: [\"fsl\", \"sgn\"],\n    fss: [\"fss\", \"sgn\"],\n    gan: [\"gan\", \"zh\"],\n    gds: [\"gds\", \"sgn\"],\n    gom: [\"gom\", \"kok\"],\n    gse: [\"gse\", \"sgn\"],\n    gsg: [\"gsg\", \"sgn\"],\n    gsm: [\"gsm\", \"sgn\"],\n    gss: [\"gss\", \"sgn\"],\n    gus: [\"gus\", \"sgn\"],\n    hab: [\"hab\", \"sgn\"],\n    haf: [\"haf\", \"sgn\"],\n    hak: [\"hak\", \"zh\"],\n    hds: [\"hds\", \"sgn\"],\n    hji: [\"hji\", \"ms\"],\n    hks: [\"hks\", \"sgn\"],\n    hos: [\"hos\", \"sgn\"],\n    hps: [\"hps\", \"sgn\"],\n    hsh: [\"hsh\", \"sgn\"],\n    hsl: [\"hsl\", \"sgn\"],\n    hsn: [\"hsn\", \"zh\"],\n    icl: [\"icl\", \"sgn\"],\n    ils: [\"ils\", \"sgn\"],\n    inl: [\"inl\", \"sgn\"],\n    ins: [\"ins\", \"sgn\"],\n    ise: [\"ise\", \"sgn\"],\n    isg: [\"isg\", \"sgn\"],\n    isr: [\"isr\", \"sgn\"],\n    jak: [\"jak\", \"ms\"],\n    jax: [\"jax\", \"ms\"],\n    jcs: [\"jcs\", \"sgn\"],\n    jhs: [\"jhs\", \"sgn\"],\n    jls: [\"jls\", \"sgn\"],\n    jos: [\"jos\", \"sgn\"],\n    jsl: [\"jsl\", \"sgn\"],\n    jus: [\"jus\", \"sgn\"],\n    kgi: [\"kgi\", \"sgn\"],\n    knn: [\"knn\", \"kok\"],\n    kvb: [\"kvb\", \"ms\"],\n    kvk: [\"kvk\", \"sgn\"],\n    kvr: [\"kvr\", \"ms\"],\n    kxd: [\"kxd\", \"ms\"],\n    lbs: [\"lbs\", \"sgn\"],\n    lce: [\"lce\", \"ms\"],\n    lcf: [\"lcf\", \"ms\"],\n    liw: [\"liw\", \"ms\"],\n    lls: [\"lls\", \"sgn\"],\n    lsg: [\"lsg\", \"sgn\"],\n    lsl: [\"lsl\", \"sgn\"],\n    lso: [\"lso\", \"sgn\"],\n    lsp: [\"lsp\", \"sgn\"],\n    lst: [\"lst\", \"sgn\"],\n    lsy: [\"lsy\", \"sgn\"],\n    ltg: [\"ltg\", \"lv\"],\n    lvs: [\"lvs\", \"lv\"],\n    lzh: [\"lzh\", \"zh\"],\n    max: [\"max\", \"ms\"],\n    mdl: [\"mdl\", \"sgn\"],\n    meo: [\"meo\", \"ms\"],\n    mfa: [\"mfa\", \"ms\"],\n    mfb: [\"mfb\", \"ms\"],\n    mfs: [\"mfs\", \"sgn\"],\n    min: [\"min\", \"ms\"],\n    mnp: [\"mnp\", \"zh\"],\n    mqg: [\"mqg\", \"ms\"],\n    mre: [\"mre\", \"sgn\"],\n    msd: [\"msd\", \"sgn\"],\n    msi: [\"msi\", \"ms\"],\n    msr: [\"msr\", \"sgn\"],\n    mui: [\"mui\", \"ms\"],\n    mzc: [\"mzc\", \"sgn\"],\n    mzg: [\"mzg\", \"sgn\"],\n    mzy: [\"mzy\", \"sgn\"],\n    nan: [\"nan\", \"zh\"],\n    nbs: [\"nbs\", \"sgn\"],\n    ncs: [\"ncs\", \"sgn\"],\n    nsi: [\"nsi\", \"sgn\"],\n    nsl: [\"nsl\", \"sgn\"],\n    nsp: [\"nsp\", \"sgn\"],\n    nsr: [\"nsr\", \"sgn\"],\n    nzs: [\"nzs\", \"sgn\"],\n    okl: [\"okl\", \"sgn\"],\n    orn: [\"orn\", \"ms\"],\n    ors: [\"ors\", \"ms\"],\n    pel: [\"pel\", \"ms\"],\n    pga: [\"pga\", \"ar\"],\n    pks: [\"pks\", \"sgn\"],\n    prl: [\"prl\", \"sgn\"],\n    prz: [\"prz\", \"sgn\"],\n    psc: [\"psc\", \"sgn\"],\n    psd: [\"psd\", \"sgn\"],\n    pse: [\"pse\", \"ms\"],\n    psg: [\"psg\", \"sgn\"],\n    psl: [\"psl\", \"sgn\"],\n    pso: [\"pso\", \"sgn\"],\n    psp: [\"psp\", \"sgn\"],\n    psr: [\"psr\", \"sgn\"],\n    pys: [\"pys\", \"sgn\"],\n    rms: [\"rms\", \"sgn\"],\n    rsi: [\"rsi\", \"sgn\"],\n    rsl: [\"rsl\", \"sgn\"],\n    sdl: [\"sdl\", \"sgn\"],\n    sfb: [\"sfb\", \"sgn\"],\n    sfs: [\"sfs\", \"sgn\"],\n    sgg: [\"sgg\", \"sgn\"],\n    sgx: [\"sgx\", \"sgn\"],\n    shu: [\"shu\", \"ar\"],\n    slf: [\"slf\", \"sgn\"],\n    sls: [\"sls\", \"sgn\"],\n    sqk: [\"sqk\", \"sgn\"],\n    sqs: [\"sqs\", \"sgn\"],\n    ssh: [\"ssh\", \"ar\"],\n    ssp: [\"ssp\", \"sgn\"],\n    ssr: [\"ssr\", \"sgn\"],\n    svk: [\"svk\", \"sgn\"],\n    swc: [\"swc\", \"sw\"],\n    swh: [\"swh\", \"sw\"],\n    swl: [\"swl\", \"sgn\"],\n    syy: [\"syy\", \"sgn\"],\n    tmw: [\"tmw\", \"ms\"],\n    tse: [\"tse\", \"sgn\"],\n    tsm: [\"tsm\", \"sgn\"],\n    tsq: [\"tsq\", \"sgn\"],\n    tss: [\"tss\", \"sgn\"],\n    tsy: [\"tsy\", \"sgn\"],\n    tza: [\"tza\", \"sgn\"],\n    ugn: [\"ugn\", \"sgn\"],\n    ugy: [\"ugy\", \"sgn\"],\n    ukl: [\"ukl\", \"sgn\"],\n    uks: [\"uks\", \"sgn\"],\n    urk: [\"urk\", \"ms\"],\n    uzn: [\"uzn\", \"uz\"],\n    uzs: [\"uzs\", \"uz\"],\n    vgt: [\"vgt\", \"sgn\"],\n    vkk: [\"vkk\", \"ms\"],\n    vkt: [\"vkt\", \"ms\"],\n    vsi: [\"vsi\", \"sgn\"],\n    vsl: [\"vsl\", \"sgn\"],\n    vsv: [\"vsv\", \"sgn\"],\n    wuu: [\"wuu\", \"zh\"],\n    xki: [\"xki\", \"sgn\"],\n    xml: [\"xml\", \"sgn\"],\n    xmm: [\"xmm\", \"ms\"],\n    xms: [\"xms\", \"sgn\"],\n    yds: [\"yds\", \"sgn\"],\n    ysl: [\"ysl\", \"sgn\"],\n    yue: [\"yue\", \"zh\"],\n    zib: [\"zib\", \"sgn\"],\n    zlm: [\"zlm\", \"ms\"],\n    zmi: [\"zmi\", \"ms\"],\n    zsl: [\"zsl\", \"sgn\"],\n    zsm: [\"zsm\", \"ms\"]\n  }\n};\n/**\n * Convert only a-z to uppercase as per section 6.1 of the spec\n */\n\nfunction toLatinUpperCase(str) {\n  var i = str.length;\n\n  while (i--) {\n    var ch = str.charAt(i);\n    if (ch >= \"a\" && ch <= \"z\") str = str.slice(0, i) + ch.toUpperCase() + str.slice(i + 1);\n  }\n\n  return str;\n}\n/**\n * The IsStructurallyValidLanguageTag abstract operation verifies that the locale\n * argument (which must be a String value)\n *\n * - represents a well-formed BCP 47 language tag as specified in RFC 5646 section\n *   2.1, or successor,\n * - does not include duplicate variant subtags, and\n * - does not include duplicate singleton subtags.\n *\n * The abstract operation returns true if locale can be generated from the ABNF\n * grammar in section 2.1 of the RFC, starting with Language-Tag, and does not\n * contain duplicate variant or singleton subtags (other than as a private use\n * subtag). It returns false otherwise. Terminal value characters in the grammar are\n * interpreted as the Unicode equivalents of the ASCII octet values given.\n */\n\n\nfunction\n/* 6.2.2 */\nIsStructurallyValidLanguageTag(locale) {\n  // represents a well-formed BCP 47 language tag as specified in RFC 5646\n  if (!expBCP47Syntax.test(locale)) return false; // does not include duplicate variant subtags, and\n\n  if (expVariantDupes.test(locale)) return false; // does not include duplicate singleton subtags.\n\n  if (expSingletonDupes.test(locale)) return false;\n  return true;\n}\n/**\n * The CanonicalizeLanguageTag abstract operation returns the canonical and case-\n * regularized form of the locale argument (which must be a String value that is\n * a structurally valid BCP 47 language tag as verified by the\n * IsStructurallyValidLanguageTag abstract operation). It takes the steps\n * specified in RFC 5646 section 4.5, or successor, to bring the language tag\n * into canonical form, and to regularize the case of the subtags, but does not\n * take the steps to bring a language tag into “extlang form” and to reorder\n * variant subtags.\n\n * The specifications for extensions to BCP 47 language tags, such as RFC 6067,\n * may include canonicalization rules for the extension subtag sequences they\n * define that go beyond the canonicalization rules of RFC 5646 section 4.5.\n * Implementations are allowed, but not required, to apply these additional rules.\n */\n\n\nfunction\n/* 6.2.3 */\nCanonicalizeLanguageTag(locale) {\n  var match = void 0,\n      parts = void 0; // A language tag is in 'canonical form' when the tag is well-formed\n  // according to the rules in Sections 2.1 and 2.2\n  // Section 2.1 says all subtags use lowercase...\n\n  locale = locale.toLowerCase(); // ...with 2 exceptions: 'two-letter and four-letter subtags that neither\n  // appear at the start of the tag nor occur after singletons.  Such two-letter\n  // subtags are all uppercase (as in the tags \"en-CA-x-ca\" or \"sgn-BE-FR\") and\n  // four-letter subtags are titlecase (as in the tag \"az-Latn-x-latn\").\n\n  parts = locale.split('-');\n\n  for (var i = 1, max = parts.length; i < max; i++) {\n    // Two-letter subtags are all uppercase\n    if (parts[i].length === 2) parts[i] = parts[i].toUpperCase(); // Four-letter subtags are titlecase\n    else if (parts[i].length === 4) parts[i] = parts[i].charAt(0).toUpperCase() + parts[i].slice(1); // Is it a singleton?\n    else if (parts[i].length === 1 && parts[i] !== 'x') break;\n  }\n\n  locale = arrJoin.call(parts, '-'); // The steps laid out in RFC 5646 section 4.5 are as follows:\n  // 1.  Extension sequences are ordered into case-insensitive ASCII order\n  //     by singleton subtag.\n\n  if ((match = locale.match(expExtSequences)) && match.length > 1) {\n    // The built-in sort() sorts by ASCII order, so use that\n    match.sort(); // Replace all extensions with the joined, sorted array\n\n    locale = locale.replace(RegExp('(?:' + expExtSequences.source + ')+', 'i'), arrJoin.call(match, ''));\n  } // 2.  Redundant or grandfathered tags are replaced by their 'Preferred-\n  //     Value', if there is one.\n\n\n  if (hop.call(redundantTags.tags, locale)) locale = redundantTags.tags[locale]; // 3.  Subtags are replaced by their 'Preferred-Value', if there is one.\n  //     For extlangs, the original primary language subtag is also\n  //     replaced if there is a primary language subtag in the 'Preferred-\n  //     Value'.\n\n  parts = locale.split('-');\n\n  for (var _i = 1, _max = parts.length; _i < _max; _i++) {\n    if (hop.call(redundantTags.subtags, parts[_i])) parts[_i] = redundantTags.subtags[parts[_i]];else if (hop.call(redundantTags.extLang, parts[_i])) {\n      parts[_i] = redundantTags.extLang[parts[_i]][0]; // For extlang tags, the prefix needs to be removed if it is redundant\n\n      if (_i === 1 && redundantTags.extLang[parts[1]][1] === parts[0]) {\n        parts = arrSlice.call(parts, _i++);\n        _max -= 1;\n      }\n    }\n  }\n\n  return arrJoin.call(parts, '-');\n}\n/**\n * The DefaultLocale abstract operation returns a String value representing the\n * structurally valid (6.2.2) and canonicalized (6.2.3) BCP 47 language tag for the\n * host environment’s current locale.\n */\n\n\nfunction\n/* 6.2.4 */\nDefaultLocale() {\n  return defaultLocale;\n} // Sect 6.3 Currency Codes\n// =======================\n\n\nvar expCurrencyCode = /^[A-Z]{3}$/;\n/**\n * The IsWellFormedCurrencyCode abstract operation verifies that the currency argument\n * (after conversion to a String value) represents a well-formed 3-letter ISO currency\n * code. The following steps are taken:\n */\n\nfunction\n/* 6.3.1 */\nIsWellFormedCurrencyCode(currency) {\n  // 1. Let `c` be ToString(currency)\n  var c = String(currency); // 2. Let `normalized` be the result of mapping c to upper case as described\n  //    in 6.1.\n\n  var normalized = toLatinUpperCase(c); // 3. If the string length of normalized is not 3, return false.\n  // 4. If normalized contains any character that is not in the range \"A\" to \"Z\"\n  //    (U+0041 to U+005A), return false.\n\n  if (expCurrencyCode.test(normalized) === false) return false; // 5. Return true\n\n  return true;\n}\n\nvar expUnicodeExSeq = /-u(?:-[0-9a-z]{2,8})+/gi; // See `extension` below\n\nfunction\n/* 9.2.1 */\nCanonicalizeLocaleList(locales) {\n  // The abstract operation CanonicalizeLocaleList takes the following steps:\n  // 1. If locales is undefined, then a. Return a new empty List\n  if (locales === undefined) return new List(); // 2. Let seen be a new empty List.\n\n  var seen = new List(); // 3. If locales is a String value, then\n  //    a. Let locales be a new array created as if by the expression new\n  //    Array(locales) where Array is the standard built-in constructor with\n  //    that name and locales is the value of locales.\n\n  locales = typeof locales === 'string' ? [locales] : locales; // 4. Let O be ToObject(locales).\n\n  var O = toObject(locales); // 5. Let lenValue be the result of calling the [[Get]] internal method of\n  //    O with the argument \"length\".\n  // 6. Let len be ToUint32(lenValue).\n\n  var len = toLength(O.length); // 7. Let k be 0.\n\n  var k = 0; // 8. Repeat, while k < len\n\n  while (k < len) {\n    // a. Let Pk be ToString(k).\n    var Pk = String(k); // b. Let kPresent be the result of calling the [[HasProperty]] internal\n    //    method of O with argument Pk.\n\n    var kPresent = (Pk in O); // c. If kPresent is true, then\n\n    if (kPresent) {\n      // i. Let kValue be the result of calling the [[Get]] internal\n      //     method of O with argument Pk.\n      var kValue = O[Pk]; // ii. If the type of kValue is not String or Object, then throw a\n      //     TypeError exception.\n\n      if (kValue === null || typeof kValue !== 'string' && (typeof kValue === \"undefined\" ? \"undefined\" : babelHelpers$1[\"typeof\"](kValue)) !== 'object') throw new TypeError('String or Object type expected'); // iii. Let tag be ToString(kValue).\n\n      var tag = String(kValue); // iv. If the result of calling the abstract operation\n      //     IsStructurallyValidLanguageTag (defined in 6.2.2), passing tag as\n      //     the argument, is false, then throw a RangeError exception.\n\n      if (!IsStructurallyValidLanguageTag(tag)) throw new RangeError(\"'\" + tag + \"' is not a structurally valid language tag\"); // v. Let tag be the result of calling the abstract operation\n      //    CanonicalizeLanguageTag (defined in 6.2.3), passing tag as the\n      //    argument.\n\n      tag = CanonicalizeLanguageTag(tag); // vi. If tag is not an element of seen, then append tag as the last\n      //     element of seen.\n\n      if (arrIndexOf.call(seen, tag) === -1) arrPush.call(seen, tag);\n    } // d. Increase k by 1.\n\n\n    k++;\n  } // 9. Return seen.\n\n\n  return seen;\n}\n/**\n * The BestAvailableLocale abstract operation compares the provided argument\n * locale, which must be a String value with a structurally valid and\n * canonicalized BCP 47 language tag, against the locales in availableLocales and\n * returns either the longest non-empty prefix of locale that is an element of\n * availableLocales, or undefined if there is no such element. It uses the\n * fallback mechanism of RFC 4647, section 3.4. The following steps are taken:\n */\n\n\nfunction\n/* 9.2.2 */\nBestAvailableLocale(availableLocales, locale) {\n  // 1. Let candidate be locale\n  var candidate = locale; // 2. Repeat\n\n  while (candidate) {\n    // a. If availableLocales contains an element equal to candidate, then return\n    // candidate.\n    if (arrIndexOf.call(availableLocales, candidate) > -1) return candidate; // b. Let pos be the character index of the last occurrence of \"-\"\n    // (U+002D) within candidate. If that character does not occur, return\n    // undefined.\n\n    var pos = candidate.lastIndexOf('-');\n    if (pos < 0) return; // c. If pos ≥ 2 and the character \"-\" occurs at index pos-2 of candidate,\n    //    then decrease pos by 2.\n\n    if (pos >= 2 && candidate.charAt(pos - 2) === '-') pos -= 2; // d. Let candidate be the substring of candidate from position 0, inclusive,\n    //    to position pos, exclusive.\n\n    candidate = candidate.substring(0, pos);\n  }\n}\n/**\n * The LookupMatcher abstract operation compares requestedLocales, which must be\n * a List as returned by CanonicalizeLocaleList, against the locales in\n * availableLocales and determines the best available language to meet the\n * request. The following steps are taken:\n */\n\n\nfunction\n/* 9.2.3 */\nLookupMatcher(availableLocales, requestedLocales) {\n  // 1. Let i be 0.\n  var i = 0; // 2. Let len be the number of elements in requestedLocales.\n\n  var len = requestedLocales.length; // 3. Let availableLocale be undefined.\n\n  var availableLocale = void 0;\n  var locale = void 0,\n      noExtensionsLocale = void 0; // 4. Repeat while i < len and availableLocale is undefined:\n\n  while (i < len && !availableLocale) {\n    // a. Let locale be the element of requestedLocales at 0-origined list\n    //    position i.\n    locale = requestedLocales[i]; // b. Let noExtensionsLocale be the String value that is locale with all\n    //    Unicode locale extension sequences removed.\n\n    noExtensionsLocale = String(locale).replace(expUnicodeExSeq, ''); // c. Let availableLocale be the result of calling the\n    //    BestAvailableLocale abstract operation (defined in 9.2.2) with\n    //    arguments availableLocales and noExtensionsLocale.\n\n    availableLocale = BestAvailableLocale(availableLocales, noExtensionsLocale); // d. Increase i by 1.\n\n    i++;\n  } // 5. Let result be a new Record.\n\n\n  var result = new Record(); // 6. If availableLocale is not undefined, then\n\n  if (availableLocale !== undefined) {\n    // a. Set result.[[locale]] to availableLocale.\n    result['[[locale]]'] = availableLocale; // b. If locale and noExtensionsLocale are not the same String value, then\n\n    if (String(locale) !== String(noExtensionsLocale)) {\n      // i. Let extension be the String value consisting of the first\n      //    substring of locale that is a Unicode locale extension sequence.\n      var extension = locale.match(expUnicodeExSeq)[0]; // ii. Let extensionIndex be the character position of the initial\n      //     \"-\" of the first Unicode locale extension sequence within locale.\n\n      var extensionIndex = locale.indexOf('-u-'); // iii. Set result.[[extension]] to extension.\n\n      result['[[extension]]'] = extension; // iv. Set result.[[extensionIndex]] to extensionIndex.\n\n      result['[[extensionIndex]]'] = extensionIndex;\n    }\n  } // 7. Else\n  else // a. Set result.[[locale]] to the value returned by the DefaultLocale abstract\n    //    operation (defined in 6.2.4).\n    result['[[locale]]'] = DefaultLocale(); // 8. Return result\n\n\n  return result;\n}\n/**\n * The BestFitMatcher abstract operation compares requestedLocales, which must be\n * a List as returned by CanonicalizeLocaleList, against the locales in\n * availableLocales and determines the best available language to meet the\n * request. The algorithm is implementation dependent, but should produce results\n * that a typical user of the requested locales would perceive as at least as\n * good as those produced by the LookupMatcher abstract operation. Options\n * specified through Unicode locale extension sequences must be ignored by the\n * algorithm. Information about such subsequences is returned separately.\n * The abstract operation returns a record with a [[locale]] field, whose value\n * is the language tag of the selected locale, which must be an element of\n * availableLocales. If the language tag of the request locale that led to the\n * selected locale contained a Unicode locale extension sequence, then the\n * returned record also contains an [[extension]] field whose value is the first\n * Unicode locale extension sequence, and an [[extensionIndex]] field whose value\n * is the index of the first Unicode locale extension sequence within the request\n * locale language tag.\n */\n\n\nfunction\n/* 9.2.4 */\nBestFitMatcher(availableLocales, requestedLocales) {\n  return LookupMatcher(availableLocales, requestedLocales);\n}\n/**\n * The ResolveLocale abstract operation compares a BCP 47 language priority list\n * requestedLocales against the locales in availableLocales and determines the\n * best available language to meet the request. availableLocales and\n * requestedLocales must be provided as List values, options as a Record.\n */\n\n\nfunction\n/* 9.2.5 */\nResolveLocale(availableLocales, requestedLocales, options, relevantExtensionKeys, localeData) {\n  if (availableLocales.length === 0) {\n    throw new ReferenceError('No locale data has been provided for this object yet.');\n  } // The following steps are taken:\n  // 1. Let matcher be the value of options.[[localeMatcher]].\n\n\n  var matcher = options['[[localeMatcher]]'];\n  var r = void 0; // 2. If matcher is \"lookup\", then\n\n  if (matcher === 'lookup') // a. Let r be the result of calling the LookupMatcher abstract operation\n    //    (defined in 9.2.3) with arguments availableLocales and\n    //    requestedLocales.\n    r = LookupMatcher(availableLocales, requestedLocales); // 3. Else\n  else // a. Let r be the result of calling the BestFitMatcher abstract\n    //    operation (defined in 9.2.4) with arguments availableLocales and\n    //    requestedLocales.\n    r = BestFitMatcher(availableLocales, requestedLocales); // 4. Let foundLocale be the value of r.[[locale]].\n\n  var foundLocale = r['[[locale]]'];\n  var extensionSubtags = void 0,\n      extensionSubtagsLength = void 0; // 5. If r has an [[extension]] field, then\n\n  if (hop.call(r, '[[extension]]')) {\n    // a. Let extension be the value of r.[[extension]].\n    var extension = r['[[extension]]']; // b. Let split be the standard built-in function object defined in ES5,\n    //    15.5.4.14.\n\n    var split = String.prototype.split; // c. Let extensionSubtags be the result of calling the [[Call]] internal\n    //    method of split with extension as the this value and an argument\n    //    list containing the single item \"-\".\n\n    extensionSubtags = split.call(extension, '-'); // d. Let extensionSubtagsLength be the result of calling the [[Get]]\n    //    internal method of extensionSubtags with argument \"length\".\n\n    extensionSubtagsLength = extensionSubtags.length;\n  } // 6. Let result be a new Record.\n\n\n  var result = new Record(); // 7. Set result.[[dataLocale]] to foundLocale.\n\n  result['[[dataLocale]]'] = foundLocale; // 8. Let supportedExtension be \"-u\".\n\n  var supportedExtension = '-u'; // 9. Let i be 0.\n\n  var i = 0; // 10. Let len be the result of calling the [[Get]] internal method of\n  //     relevantExtensionKeys with argument \"length\".\n\n  var len = relevantExtensionKeys.length; // 11 Repeat while i < len:\n\n  while (i < len) {\n    // a. Let key be the result of calling the [[Get]] internal method of\n    //    relevantExtensionKeys with argument ToString(i).\n    var key = relevantExtensionKeys[i]; // b. Let foundLocaleData be the result of calling the [[Get]] internal\n    //    method of localeData with the argument foundLocale.\n\n    var foundLocaleData = localeData[foundLocale]; // c. Let keyLocaleData be the result of calling the [[Get]] internal\n    //    method of foundLocaleData with the argument key.\n\n    var keyLocaleData = foundLocaleData[key]; // d. Let value be the result of calling the [[Get]] internal method of\n    //    keyLocaleData with argument \"0\".\n\n    var value = keyLocaleData['0']; // e. Let supportedExtensionAddition be \"\".\n\n    var supportedExtensionAddition = ''; // f. Let indexOf be the standard built-in function object defined in\n    //    ES5, 15.4.4.14.\n\n    var indexOf = arrIndexOf; // g. If extensionSubtags is not undefined, then\n\n    if (extensionSubtags !== undefined) {\n      // i. Let keyPos be the result of calling the [[Call]] internal\n      //    method of indexOf with extensionSubtags as the this value and\n      // an argument list containing the single item key.\n      var keyPos = indexOf.call(extensionSubtags, key); // ii. If keyPos ≠ -1, then\n\n      if (keyPos !== -1) {\n        // 1. If keyPos + 1 < extensionSubtagsLength and the length of the\n        //    result of calling the [[Get]] internal method of\n        //    extensionSubtags with argument ToString(keyPos +1) is greater\n        //    than 2, then\n        if (keyPos + 1 < extensionSubtagsLength && extensionSubtags[keyPos + 1].length > 2) {\n          // a. Let requestedValue be the result of calling the [[Get]]\n          //    internal method of extensionSubtags with argument\n          //    ToString(keyPos + 1).\n          var requestedValue = extensionSubtags[keyPos + 1]; // b. Let valuePos be the result of calling the [[Call]]\n          //    internal method of indexOf with keyLocaleData as the\n          //    this value and an argument list containing the single\n          //    item requestedValue.\n\n          var valuePos = indexOf.call(keyLocaleData, requestedValue); // c. If valuePos ≠ -1, then\n\n          if (valuePos !== -1) {\n            // i. Let value be requestedValue.\n            value = requestedValue, // ii. Let supportedExtensionAddition be the\n            //     concatenation of \"-\", key, \"-\", and value.\n            supportedExtensionAddition = '-' + key + '-' + value;\n          }\n        } // 2. Else\n        else {\n          // a. Let valuePos be the result of calling the [[Call]]\n          // internal method of indexOf with keyLocaleData as the this\n          // value and an argument list containing the single item\n          // \"true\".\n          var _valuePos = indexOf(keyLocaleData, 'true'); // b. If valuePos ≠ -1, then\n\n\n          if (_valuePos !== -1) // i. Let value be \"true\".\n            value = 'true';\n        }\n      }\n    } // h. If options has a field [[<key>]], then\n\n\n    if (hop.call(options, '[[' + key + ']]')) {\n      // i. Let optionsValue be the value of options.[[<key>]].\n      var optionsValue = options['[[' + key + ']]']; // ii. If the result of calling the [[Call]] internal method of indexOf\n      //     with keyLocaleData as the this value and an argument list\n      //     containing the single item optionsValue is not -1, then\n\n      if (indexOf.call(keyLocaleData, optionsValue) !== -1) {\n        // 1. If optionsValue is not equal to value, then\n        if (optionsValue !== value) {\n          // a. Let value be optionsValue.\n          value = optionsValue; // b. Let supportedExtensionAddition be \"\".\n\n          supportedExtensionAddition = '';\n        }\n      }\n    } // i. Set result.[[<key>]] to value.\n\n\n    result['[[' + key + ']]'] = value; // j. Append supportedExtensionAddition to supportedExtension.\n\n    supportedExtension += supportedExtensionAddition; // k. Increase i by 1.\n\n    i++;\n  } // 12. If the length of supportedExtension is greater than 2, then\n\n\n  if (supportedExtension.length > 2) {\n    // a.\n    var privateIndex = foundLocale.indexOf(\"-x-\"); // b.\n\n    if (privateIndex === -1) {\n      // i.\n      foundLocale = foundLocale + supportedExtension;\n    } // c.\n    else {\n      // i.\n      var preExtension = foundLocale.substring(0, privateIndex); // ii.\n\n      var postExtension = foundLocale.substring(privateIndex); // iii.\n\n      foundLocale = preExtension + supportedExtension + postExtension;\n    } // d. asserting - skipping\n    // e.\n\n\n    foundLocale = CanonicalizeLanguageTag(foundLocale);\n  } // 13. Set result.[[locale]] to foundLocale.\n\n\n  result['[[locale]]'] = foundLocale; // 14. Return result.\n\n  return result;\n}\n/**\n * The LookupSupportedLocales abstract operation returns the subset of the\n * provided BCP 47 language priority list requestedLocales for which\n * availableLocales has a matching locale when using the BCP 47 Lookup algorithm.\n * Locales appear in the same order in the returned list as in requestedLocales.\n * The following steps are taken:\n */\n\n\nfunction\n/* 9.2.6 */\nLookupSupportedLocales(availableLocales, requestedLocales) {\n  // 1. Let len be the number of elements in requestedLocales.\n  var len = requestedLocales.length; // 2. Let subset be a new empty List.\n\n  var subset = new List(); // 3. Let k be 0.\n\n  var k = 0; // 4. Repeat while k < len\n\n  while (k < len) {\n    // a. Let locale be the element of requestedLocales at 0-origined list\n    //    position k.\n    var locale = requestedLocales[k]; // b. Let noExtensionsLocale be the String value that is locale with all\n    //    Unicode locale extension sequences removed.\n\n    var noExtensionsLocale = String(locale).replace(expUnicodeExSeq, ''); // c. Let availableLocale be the result of calling the\n    //    BestAvailableLocale abstract operation (defined in 9.2.2) with\n    //    arguments availableLocales and noExtensionsLocale.\n\n    var availableLocale = BestAvailableLocale(availableLocales, noExtensionsLocale); // d. If availableLocale is not undefined, then append locale to the end of\n    //    subset.\n\n    if (availableLocale !== undefined) arrPush.call(subset, locale); // e. Increment k by 1.\n\n    k++;\n  } // 5. Let subsetArray be a new Array object whose elements are the same\n  //    values in the same order as the elements of subset.\n\n\n  var subsetArray = arrSlice.call(subset); // 6. Return subsetArray.\n\n  return subsetArray;\n}\n/**\n * The BestFitSupportedLocales abstract operation returns the subset of the\n * provided BCP 47 language priority list requestedLocales for which\n * availableLocales has a matching locale when using the Best Fit Matcher\n * algorithm. Locales appear in the same order in the returned list as in\n * requestedLocales. The steps taken are implementation dependent.\n */\n\n\nfunction\n/*9.2.7 */\nBestFitSupportedLocales(availableLocales, requestedLocales) {\n  // ###TODO: implement this function as described by the specification###\n  return LookupSupportedLocales(availableLocales, requestedLocales);\n}\n/**\n * The SupportedLocales abstract operation returns the subset of the provided BCP\n * 47 language priority list requestedLocales for which availableLocales has a\n * matching locale. Two algorithms are available to match the locales: the Lookup\n * algorithm described in RFC 4647 section 3.4, and an implementation dependent\n * best-fit algorithm. Locales appear in the same order in the returned list as\n * in requestedLocales. The following steps are taken:\n */\n\n\nfunction\n/*9.2.8 */\nSupportedLocales(availableLocales, requestedLocales, options) {\n  var matcher = void 0,\n      subset = void 0; // 1. If options is not undefined, then\n\n  if (options !== undefined) {\n    // a. Let options be ToObject(options).\n    options = new Record(toObject(options)); // b. Let matcher be the result of calling the [[Get]] internal method of\n    //    options with argument \"localeMatcher\".\n\n    matcher = options.localeMatcher; // c. If matcher is not undefined, then\n\n    if (matcher !== undefined) {\n      // i. Let matcher be ToString(matcher).\n      matcher = String(matcher); // ii. If matcher is not \"lookup\" or \"best fit\", then throw a RangeError\n      //     exception.\n\n      if (matcher !== 'lookup' && matcher !== 'best fit') throw new RangeError('matcher should be \"lookup\" or \"best fit\"');\n    }\n  } // 2. If matcher is undefined or \"best fit\", then\n\n\n  if (matcher === undefined || matcher === 'best fit') // a. Let subset be the result of calling the BestFitSupportedLocales\n    //    abstract operation (defined in 9.2.7) with arguments\n    //    availableLocales and requestedLocales.\n    subset = BestFitSupportedLocales(availableLocales, requestedLocales); // 3. Else\n  else // a. Let subset be the result of calling the LookupSupportedLocales\n    //    abstract operation (defined in 9.2.6) with arguments\n    //    availableLocales and requestedLocales.\n    subset = LookupSupportedLocales(availableLocales, requestedLocales); // 4. For each named own property name P of subset,\n\n  for (var P in subset) {\n    if (!hop.call(subset, P)) continue; // a. Let desc be the result of calling the [[GetOwnProperty]] internal\n    //    method of subset with P.\n    // b. Set desc.[[Writable]] to false.\n    // c. Set desc.[[Configurable]] to false.\n    // d. Call the [[DefineOwnProperty]] internal method of subset with P, desc,\n    //    and true as arguments.\n\n    defineProperty(subset, P, {\n      writable: false,\n      configurable: false,\n      value: subset[P]\n    });\n  } // \"Freeze\" the array so no new elements can be added\n\n\n  defineProperty(subset, 'length', {\n    writable: false\n  }); // 5. Return subset\n\n  return subset;\n}\n/**\n * The GetOption abstract operation extracts the value of the property named\n * property from the provided options object, converts it to the required type,\n * checks whether it is one of a List of allowed values, and fills in a fallback\n * value if necessary.\n */\n\n\nfunction\n/*9.2.9 */\nGetOption(options, property, type, values, fallback) {\n  // 1. Let value be the result of calling the [[Get]] internal method of\n  //    options with argument property.\n  var value = options[property]; // 2. If value is not undefined, then\n\n  if (value !== undefined) {\n    // a. Assert: type is \"boolean\" or \"string\".\n    // b. If type is \"boolean\", then let value be ToBoolean(value).\n    // c. If type is \"string\", then let value be ToString(value).\n    value = type === 'boolean' ? Boolean(value) : type === 'string' ? String(value) : value; // d. If values is not undefined, then\n\n    if (values !== undefined) {\n      // i. If values does not contain an element equal to value, then throw a\n      //    RangeError exception.\n      if (arrIndexOf.call(values, value) === -1) throw new RangeError(\"'\" + value + \"' is not an allowed value for `\" + property + '`');\n    } // e. Return value.\n\n\n    return value;\n  } // Else return fallback.\n\n\n  return fallback;\n}\n/**\n * The GetNumberOption abstract operation extracts a property value from the\n * provided options object, converts it to a Number value, checks whether it is\n * in the allowed range, and fills in a fallback value if necessary.\n */\n\n\nfunction\n/* 9.2.10 */\nGetNumberOption(options, property, minimum, maximum, fallback) {\n  // 1. Let value be the result of calling the [[Get]] internal method of\n  //    options with argument property.\n  var value = options[property]; // 2. If value is not undefined, then\n\n  if (value !== undefined) {\n    // a. Let value be ToNumber(value).\n    value = Number(value); // b. If value is NaN or less than minimum or greater than maximum, throw a\n    //    RangeError exception.\n\n    if (isNaN(value) || value < minimum || value > maximum) throw new RangeError('Value is not a number or outside accepted range'); // c. Return floor(value).\n\n    return Math.floor(value);\n  } // 3. Else return fallback.\n\n\n  return fallback;\n} // 8 The Intl Object\n\n\nvar Intl = {}; // 8.2 Function Properties of the Intl Object\n// 8.2.1\n// @spec[tc39/ecma402/master/spec/intl.html]\n// @clause[sec-intl.getcanonicallocales]\n\nfunction getCanonicalLocales(locales) {\n  // 1. Let ll be ? CanonicalizeLocaleList(locales).\n  var ll = CanonicalizeLocaleList(locales); // 2. Return CreateArrayFromList(ll).\n\n  {\n    var result = [];\n    var len = ll.length;\n    var k = 0;\n\n    while (k < len) {\n      result[k] = ll[k];\n      k++;\n    }\n\n    return result;\n  }\n}\n\nObject.defineProperty(Intl, 'getCanonicalLocales', {\n  enumerable: false,\n  configurable: true,\n  writable: true,\n  value: getCanonicalLocales\n}); // Currency minor units output from get-4217 grunt task, formatted\n\nvar currencyMinorUnits = {\n  BHD: 3,\n  BYR: 0,\n  XOF: 0,\n  BIF: 0,\n  XAF: 0,\n  CLF: 4,\n  CLP: 0,\n  KMF: 0,\n  DJF: 0,\n  XPF: 0,\n  GNF: 0,\n  ISK: 0,\n  IQD: 3,\n  JPY: 0,\n  JOD: 3,\n  KRW: 0,\n  KWD: 3,\n  LYD: 3,\n  OMR: 3,\n  PYG: 0,\n  RWF: 0,\n  TND: 3,\n  UGX: 0,\n  UYI: 0,\n  VUV: 0,\n  VND: 0\n}; // Define the NumberFormat constructor internally so it cannot be tainted\n\nfunction NumberFormatConstructor() {\n  var locales = arguments[0];\n  var options = arguments[1];\n\n  if (!this || this === Intl) {\n    return new Intl.NumberFormat(locales, options);\n  }\n\n  return InitializeNumberFormat(toObject(this), locales, options);\n}\n\ndefineProperty(Intl, 'NumberFormat', {\n  configurable: true,\n  writable: true,\n  value: NumberFormatConstructor\n}); // Must explicitly set prototypes as unwritable\n\ndefineProperty(Intl.NumberFormat, 'prototype', {\n  writable: false\n});\n/**\n * The abstract operation InitializeNumberFormat accepts the arguments\n * numberFormat (which must be an object), locales, and options. It initializes\n * numberFormat as a NumberFormat object.\n */\n\nfunction\n/*11.1.1.1 */\nInitializeNumberFormat(numberFormat, locales, options) {\n  // This will be a internal properties object if we're not already initialized\n  var internal = getInternalProperties(numberFormat); // Create an object whose props can be used to restore the values of RegExp props\n\n  var regexpRestore = createRegExpRestore(); // 1. If numberFormat has an [[initializedIntlObject]] internal property with\n  // value true, throw a TypeError exception.\n\n  if (internal['[[initializedIntlObject]]'] === true) throw new TypeError('`this` object has already been initialized as an Intl object'); // Need this to access the `internal` object\n\n  defineProperty(numberFormat, '__getInternalProperties', {\n    value: function value() {\n      // NOTE: Non-standard, for internal use only\n      if (arguments[0] === secret) return internal;\n    }\n  }); // 2. Set the [[initializedIntlObject]] internal property of numberFormat to true.\n\n  internal['[[initializedIntlObject]]'] = true; // 3. Let requestedLocales be the result of calling the CanonicalizeLocaleList\n  //    abstract operation (defined in 9.2.1) with argument locales.\n\n  var requestedLocales = CanonicalizeLocaleList(locales); // 4. If options is undefined, then\n\n  if (options === undefined) // a. Let options be the result of creating a new object as if by the\n    // expression new Object() where Object is the standard built-in constructor\n    // with that name.\n    options = {}; // 5. Else\n  else // a. Let options be ToObject(options).\n    options = toObject(options); // 6. Let opt be a new Record.\n\n  var opt = new Record(),\n      // 7. Let matcher be the result of calling the GetOption abstract operation\n  //    (defined in 9.2.9) with the arguments options, \"localeMatcher\", \"string\",\n  //    a List containing the two String values \"lookup\" and \"best fit\", and\n  //    \"best fit\".\n  matcher = GetOption(options, 'localeMatcher', 'string', new List('lookup', 'best fit'), 'best fit'); // 8. Set opt.[[localeMatcher]] to matcher.\n\n  opt['[[localeMatcher]]'] = matcher; // 9. Let NumberFormat be the standard built-in object that is the initial value\n  //    of Intl.NumberFormat.\n  // 10. Let localeData be the value of the [[localeData]] internal property of\n  //     NumberFormat.\n\n  var localeData = internals.NumberFormat['[[localeData]]']; // 11. Let r be the result of calling the ResolveLocale abstract operation\n  //     (defined in 9.2.5) with the [[availableLocales]] internal property of\n  //     NumberFormat, requestedLocales, opt, the [[relevantExtensionKeys]]\n  //     internal property of NumberFormat, and localeData.\n\n  var r = ResolveLocale(internals.NumberFormat['[[availableLocales]]'], requestedLocales, opt, internals.NumberFormat['[[relevantExtensionKeys]]'], localeData); // 12. Set the [[locale]] internal property of numberFormat to the value of\n  //     r.[[locale]].\n\n  internal['[[locale]]'] = r['[[locale]]']; // 13. Set the [[numberingSystem]] internal property of numberFormat to the value\n  //     of r.[[nu]].\n\n  internal['[[numberingSystem]]'] = r['[[nu]]']; // The specification doesn't tell us to do this, but it's helpful later on\n\n  internal['[[dataLocale]]'] = r['[[dataLocale]]']; // 14. Let dataLocale be the value of r.[[dataLocale]].\n\n  var dataLocale = r['[[dataLocale]]']; // 15. Let s be the result of calling the GetOption abstract operation with the\n  //     arguments options, \"style\", \"string\", a List containing the three String\n  //     values \"decimal\", \"percent\", and \"currency\", and \"decimal\".\n\n  var s = GetOption(options, 'style', 'string', new List('decimal', 'percent', 'currency'), 'decimal'); // 16. Set the [[style]] internal property of numberFormat to s.\n\n  internal['[[style]]'] = s; // 17. Let c be the result of calling the GetOption abstract operation with the\n  //     arguments options, \"currency\", \"string\", undefined, and undefined.\n\n  var c = GetOption(options, 'currency', 'string'); // 18. If c is not undefined and the result of calling the\n  //     IsWellFormedCurrencyCode abstract operation (defined in 6.3.1) with\n  //     argument c is false, then throw a RangeError exception.\n\n  if (c !== undefined && !IsWellFormedCurrencyCode(c)) throw new RangeError(\"'\" + c + \"' is not a valid currency code\"); // 19. If s is \"currency\" and c is undefined, throw a TypeError exception.\n\n  if (s === 'currency' && c === undefined) throw new TypeError('Currency code is required when style is currency');\n  var cDigits = void 0; // 20. If s is \"currency\", then\n\n  if (s === 'currency') {\n    // a. Let c be the result of converting c to upper case as specified in 6.1.\n    c = c.toUpperCase(); // b. Set the [[currency]] internal property of numberFormat to c.\n\n    internal['[[currency]]'] = c; // c. Let cDigits be the result of calling the CurrencyDigits abstract\n    //    operation (defined below) with argument c.\n\n    cDigits = CurrencyDigits(c);\n  } // 21. Let cd be the result of calling the GetOption abstract operation with the\n  //     arguments options, \"currencyDisplay\", \"string\", a List containing the\n  //     three String values \"code\", \"symbol\", and \"name\", and \"symbol\".\n\n\n  var cd = GetOption(options, 'currencyDisplay', 'string', new List('code', 'symbol', 'name'), 'symbol'); // 22. If s is \"currency\", then set the [[currencyDisplay]] internal property of\n  //     numberFormat to cd.\n\n  if (s === 'currency') internal['[[currencyDisplay]]'] = cd; // 23. Let mnid be the result of calling the GetNumberOption abstract operation\n  //     (defined in 9.2.10) with arguments options, \"minimumIntegerDigits\", 1, 21,\n  //     and 1.\n\n  var mnid = GetNumberOption(options, 'minimumIntegerDigits', 1, 21, 1); // 24. Set the [[minimumIntegerDigits]] internal property of numberFormat to mnid.\n\n  internal['[[minimumIntegerDigits]]'] = mnid; // 25. If s is \"currency\", then let mnfdDefault be cDigits; else let mnfdDefault\n  //     be 0.\n\n  var mnfdDefault = s === 'currency' ? cDigits : 0; // 26. Let mnfd be the result of calling the GetNumberOption abstract operation\n  //     with arguments options, \"minimumFractionDigits\", 0, 20, and mnfdDefault.\n\n  var mnfd = GetNumberOption(options, 'minimumFractionDigits', 0, 20, mnfdDefault); // 27. Set the [[minimumFractionDigits]] internal property of numberFormat to mnfd.\n\n  internal['[[minimumFractionDigits]]'] = mnfd; // 28. If s is \"currency\", then let mxfdDefault be max(mnfd, cDigits); else if s\n  //     is \"percent\", then let mxfdDefault be max(mnfd, 0); else let mxfdDefault\n  //     be max(mnfd, 3).\n\n  var mxfdDefault = s === 'currency' ? Math.max(mnfd, cDigits) : s === 'percent' ? Math.max(mnfd, 0) : Math.max(mnfd, 3); // 29. Let mxfd be the result of calling the GetNumberOption abstract operation\n  //     with arguments options, \"maximumFractionDigits\", mnfd, 20, and mxfdDefault.\n\n  var mxfd = GetNumberOption(options, 'maximumFractionDigits', mnfd, 20, mxfdDefault); // 30. Set the [[maximumFractionDigits]] internal property of numberFormat to mxfd.\n\n  internal['[[maximumFractionDigits]]'] = mxfd; // 31. Let mnsd be the result of calling the [[Get]] internal method of options\n  //     with argument \"minimumSignificantDigits\".\n\n  var mnsd = options.minimumSignificantDigits; // 32. Let mxsd be the result of calling the [[Get]] internal method of options\n  //     with argument \"maximumSignificantDigits\".\n\n  var mxsd = options.maximumSignificantDigits; // 33. If mnsd is not undefined or mxsd is not undefined, then:\n\n  if (mnsd !== undefined || mxsd !== undefined) {\n    // a. Let mnsd be the result of calling the GetNumberOption abstract\n    //    operation with arguments options, \"minimumSignificantDigits\", 1, 21,\n    //    and 1.\n    mnsd = GetNumberOption(options, 'minimumSignificantDigits', 1, 21, 1); // b. Let mxsd be the result of calling the GetNumberOption abstract\n    //     operation with arguments options, \"maximumSignificantDigits\", mnsd,\n    //     21, and 21.\n\n    mxsd = GetNumberOption(options, 'maximumSignificantDigits', mnsd, 21, 21); // c. Set the [[minimumSignificantDigits]] internal property of numberFormat\n    //    to mnsd, and the [[maximumSignificantDigits]] internal property of\n    //    numberFormat to mxsd.\n\n    internal['[[minimumSignificantDigits]]'] = mnsd;\n    internal['[[maximumSignificantDigits]]'] = mxsd;\n  } // 34. Let g be the result of calling the GetOption abstract operation with the\n  //     arguments options, \"useGrouping\", \"boolean\", undefined, and true.\n\n\n  var g = GetOption(options, 'useGrouping', 'boolean', undefined, true); // 35. Set the [[useGrouping]] internal property of numberFormat to g.\n\n  internal['[[useGrouping]]'] = g; // 36. Let dataLocaleData be the result of calling the [[Get]] internal method of\n  //     localeData with argument dataLocale.\n\n  var dataLocaleData = localeData[dataLocale]; // 37. Let patterns be the result of calling the [[Get]] internal method of\n  //     dataLocaleData with argument \"patterns\".\n\n  var patterns = dataLocaleData.patterns; // 38. Assert: patterns is an object (see 11.2.3)\n  // 39. Let stylePatterns be the result of calling the [[Get]] internal method of\n  //     patterns with argument s.\n\n  var stylePatterns = patterns[s]; // 40. Set the [[positivePattern]] internal property of numberFormat to the\n  //     result of calling the [[Get]] internal method of stylePatterns with the\n  //     argument \"positivePattern\".\n\n  internal['[[positivePattern]]'] = stylePatterns.positivePattern; // 41. Set the [[negativePattern]] internal property of numberFormat to the\n  //     result of calling the [[Get]] internal method of stylePatterns with the\n  //     argument \"negativePattern\".\n\n  internal['[[negativePattern]]'] = stylePatterns.negativePattern; // 42. Set the [[boundFormat]] internal property of numberFormat to undefined.\n\n  internal['[[boundFormat]]'] = undefined; // 43. Set the [[initializedNumberFormat]] internal property of numberFormat to\n  //     true.\n\n  internal['[[initializedNumberFormat]]'] = true; // In ES3, we need to pre-bind the format() function\n\n  if (es3) numberFormat.format = GetFormatNumber.call(numberFormat); // Restore the RegExp properties\n\n  regexpRestore(); // Return the newly initialised object\n\n  return numberFormat;\n}\n\nfunction CurrencyDigits(currency) {\n  // When the CurrencyDigits abstract operation is called with an argument currency\n  // (which must be an upper case String value), the following steps are taken:\n  // 1. If the ISO 4217 currency and funds code list contains currency as an\n  // alphabetic code, then return the minor unit value corresponding to the\n  // currency from the list; else return 2.\n  return currencyMinorUnits[currency] !== undefined ? currencyMinorUnits[currency] : 2;\n}\n/* 11.2.3 */\n\n\ninternals.NumberFormat = {\n  '[[availableLocales]]': [],\n  '[[relevantExtensionKeys]]': ['nu'],\n  '[[localeData]]': {}\n};\n/**\n * When the supportedLocalesOf method of Intl.NumberFormat is called, the\n * following steps are taken:\n */\n\n/* 11.2.2 */\n\ndefineProperty(Intl.NumberFormat, 'supportedLocalesOf', {\n  configurable: true,\n  writable: true,\n  value: fnBind.call(function (locales) {\n    // Bound functions only have the `this` value altered if being used as a constructor,\n    // this lets us imitate a native function that has no constructor\n    if (!hop.call(this, '[[availableLocales]]')) throw new TypeError('supportedLocalesOf() is not a constructor'); // Create an object whose props can be used to restore the values of RegExp props\n\n    var regexpRestore = createRegExpRestore(),\n        // 1. If options is not provided, then let options be undefined.\n    options = arguments[1],\n        // 2. Let availableLocales be the value of the [[availableLocales]] internal\n    //    property of the standard built-in object that is the initial value of\n    //    Intl.NumberFormat.\n    availableLocales = this['[[availableLocales]]'],\n        // 3. Let requestedLocales be the result of calling the CanonicalizeLocaleList\n    //    abstract operation (defined in 9.2.1) with argument locales.\n    requestedLocales = CanonicalizeLocaleList(locales); // Restore the RegExp properties\n\n    regexpRestore(); // 4. Return the result of calling the SupportedLocales abstract operation\n    //    (defined in 9.2.8) with arguments availableLocales, requestedLocales,\n    //    and options.\n\n    return SupportedLocales(availableLocales, requestedLocales, options);\n  }, internals.NumberFormat)\n});\n/**\n * This named accessor property returns a function that formats a number\n * according to the effective locale and the formatting options of this\n * NumberFormat object.\n */\n\n/* 11.3.2 */\n\ndefineProperty(Intl.NumberFormat.prototype, 'format', {\n  configurable: true,\n  get: GetFormatNumber\n});\n\nfunction GetFormatNumber() {\n  var internal = this !== null && babelHelpers$1[\"typeof\"](this) === 'object' && getInternalProperties(this); // Satisfy test 11.3_b\n\n  if (!internal || !internal['[[initializedNumberFormat]]']) throw new TypeError('`this` value for format() is not an initialized Intl.NumberFormat object.'); // The value of the [[Get]] attribute is a function that takes the following\n  // steps:\n  // 1. If the [[boundFormat]] internal property of this NumberFormat object\n  //    is undefined, then:\n\n  if (internal['[[boundFormat]]'] === undefined) {\n    // a. Let F be a Function object, with internal properties set as\n    //    specified for built-in functions in ES5, 15, or successor, and the\n    //    length property set to 1, that takes the argument value and\n    //    performs the following steps:\n    var F = function F(value) {\n      // i. If value is not provided, then let value be undefined.\n      // ii. Let x be ToNumber(value).\n      // iii. Return the result of calling the FormatNumber abstract\n      //      operation (defined below) with arguments this and x.\n      return FormatNumber(this,\n      /* x = */\n      Number(value));\n    }; // b. Let bind be the standard built-in function object defined in ES5,\n    //    15.3.4.5.\n    // c. Let bf be the result of calling the [[Call]] internal method of\n    //    bind with F as the this value and an argument list containing\n    //    the single item this.\n\n\n    var bf = fnBind.call(F, this); // d. Set the [[boundFormat]] internal property of this NumberFormat\n    //    object to bf.\n\n    internal['[[boundFormat]]'] = bf;\n  } // Return the value of the [[boundFormat]] internal property of this\n  // NumberFormat object.\n\n\n  return internal['[[boundFormat]]'];\n}\n\nfunction formatToParts() {\n  var value = arguments.length <= 0 || arguments[0] === undefined ? undefined : arguments[0];\n  var internal = this !== null && babelHelpers$1[\"typeof\"](this) === 'object' && getInternalProperties(this);\n  if (!internal || !internal['[[initializedNumberFormat]]']) throw new TypeError('`this` value for formatToParts() is not an initialized Intl.NumberFormat object.');\n  var x = Number(value);\n  return FormatNumberToParts(this, x);\n}\n\nObject.defineProperty(Intl.NumberFormat.prototype, 'formatToParts', {\n  configurable: true,\n  enumerable: false,\n  writable: true,\n  value: formatToParts\n});\n/*\n * @spec[stasm/ecma402/number-format-to-parts/spec/numberformat.html]\n * @clause[sec-formatnumbertoparts]\n */\n\nfunction FormatNumberToParts(numberFormat, x) {\n  // 1. Let parts be ? PartitionNumberPattern(numberFormat, x).\n  var parts = PartitionNumberPattern(numberFormat, x); // 2. Let result be ArrayCreate(0).\n\n  var result = []; // 3. Let n be 0.\n\n  var n = 0; // 4. For each part in parts, do:\n\n  for (var i = 0; parts.length > i; i++) {\n    var part = parts[i]; // a. Let O be ObjectCreate(%ObjectPrototype%).\n\n    var O = {}; // a. Perform ? CreateDataPropertyOrThrow(O, \"type\", part.[[type]]).\n\n    O.type = part['[[type]]']; // a. Perform ? CreateDataPropertyOrThrow(O, \"value\", part.[[value]]).\n\n    O.value = part['[[value]]']; // a. Perform ? CreateDataPropertyOrThrow(result, ? ToString(n), O).\n\n    result[n] = O; // a. Increment n by 1.\n\n    n += 1;\n  } // 5. Return result.\n\n\n  return result;\n}\n/*\n * @spec[stasm/ecma402/number-format-to-parts/spec/numberformat.html]\n * @clause[sec-partitionnumberpattern]\n */\n\n\nfunction PartitionNumberPattern(numberFormat, x) {\n  var internal = getInternalProperties(numberFormat),\n      locale = internal['[[dataLocale]]'],\n      nums = internal['[[numberingSystem]]'],\n      data = internals.NumberFormat['[[localeData]]'][locale],\n      ild = data.symbols[nums] || data.symbols.latn,\n      pattern = void 0; // 1. If x is not NaN and x < 0, then:\n\n  if (!isNaN(x) && x < 0) {\n    // a. Let x be -x.\n    x = -x; // a. Let pattern be the value of numberFormat.[[negativePattern]].\n\n    pattern = internal['[[negativePattern]]'];\n  } // 2. Else,\n  else {\n    // a. Let pattern be the value of numberFormat.[[positivePattern]].\n    pattern = internal['[[positivePattern]]'];\n  } // 3. Let result be a new empty List.\n\n\n  var result = new List(); // 4. Let beginIndex be Call(%StringProto_indexOf%, pattern, \"{\", 0).\n\n  var beginIndex = pattern.indexOf('{', 0); // 5. Let endIndex be 0.\n\n  var endIndex = 0; // 6. Let nextIndex be 0.\n\n  var nextIndex = 0; // 7. Let length be the number of code units in pattern.\n\n  var length = pattern.length; // 8. Repeat while beginIndex is an integer index into pattern:\n\n  while (beginIndex > -1 && beginIndex < length) {\n    // a. Set endIndex to Call(%StringProto_indexOf%, pattern, \"}\", beginIndex)\n    endIndex = pattern.indexOf('}', beginIndex); // a. If endIndex = -1, throw new Error exception.\n\n    if (endIndex === -1) throw new Error(); // a. If beginIndex is greater than nextIndex, then:\n\n    if (beginIndex > nextIndex) {\n      // i. Let literal be a substring of pattern from position nextIndex, inclusive, to position beginIndex, exclusive.\n      var literal = pattern.substring(nextIndex, beginIndex); // ii. Add new part record { [[type]]: \"literal\", [[value]]: literal } as a new element of the list result.\n\n      arrPush.call(result, {\n        '[[type]]': 'literal',\n        '[[value]]': literal\n      });\n    } // a. Let p be the substring of pattern from position beginIndex, exclusive, to position endIndex, exclusive.\n\n\n    var p = pattern.substring(beginIndex + 1, endIndex); // a. If p is equal \"number\", then:\n\n    if (p === \"number\") {\n      // i. If x is NaN,\n      if (isNaN(x)) {\n        // 1. Let n be an ILD String value indicating the NaN value.\n        var n = ild.nan; // 2. Add new part record { [[type]]: \"nan\", [[value]]: n } as a new element of the list result.\n\n        arrPush.call(result, {\n          '[[type]]': 'nan',\n          '[[value]]': n\n        });\n      } // ii. Else if isFinite(x) is false,\n      else if (!isFinite(x)) {\n        // 1. Let n be an ILD String value indicating infinity.\n        var _n = ild.infinity; // 2. Add new part record { [[type]]: \"infinity\", [[value]]: n } as a new element of the list result.\n\n        arrPush.call(result, {\n          '[[type]]': 'infinity',\n          '[[value]]': _n\n        });\n      } // iii. Else,\n      else {\n        // 1. If the value of numberFormat.[[style]] is \"percent\" and isFinite(x), let x be 100 × x.\n        if (internal['[[style]]'] === 'percent' && isFinite(x)) x *= 100;\n\n        var _n2 = void 0; // 2. If the numberFormat.[[minimumSignificantDigits]] and numberFormat.[[maximumSignificantDigits]] are present, then\n\n\n        if (hop.call(internal, '[[minimumSignificantDigits]]') && hop.call(internal, '[[maximumSignificantDigits]]')) {\n          // a. Let n be ToRawPrecision(x, numberFormat.[[minimumSignificantDigits]], numberFormat.[[maximumSignificantDigits]]).\n          _n2 = ToRawPrecision(x, internal['[[minimumSignificantDigits]]'], internal['[[maximumSignificantDigits]]']);\n        } // 3. Else,\n        else {\n          // a. Let n be ToRawFixed(x, numberFormat.[[minimumIntegerDigits]], numberFormat.[[minimumFractionDigits]], numberFormat.[[maximumFractionDigits]]).\n          _n2 = ToRawFixed(x, internal['[[minimumIntegerDigits]]'], internal['[[minimumFractionDigits]]'], internal['[[maximumFractionDigits]]']);\n        } // 4. If the value of the numberFormat.[[numberingSystem]] matches one of the values in the \"Numbering System\" column of Table 2 below, then\n\n\n        if (numSys[nums]) {\n          (function () {\n            // a. Let digits be an array whose 10 String valued elements are the UTF-16 string representations of the 10 digits specified in the \"Digits\" column of the matching row in Table 2.\n            var digits = numSys[nums]; // a. Replace each digit in n with the value of digits[digit].\n\n            _n2 = String(_n2).replace(/\\d/g, function (digit) {\n              return digits[digit];\n            });\n          })();\n        } // 5. Else use an implementation dependent algorithm to map n to the appropriate representation of n in the given numbering system.\n        else _n2 = String(_n2); // ###TODO###\n\n\n        var integer = void 0;\n        var fraction = void 0; // 6. Let decimalSepIndex be Call(%StringProto_indexOf%, n, \".\", 0).\n\n        var decimalSepIndex = _n2.indexOf('.', 0); // 7. If decimalSepIndex > 0, then:\n\n\n        if (decimalSepIndex > 0) {\n          // a. Let integer be the substring of n from position 0, inclusive, to position decimalSepIndex, exclusive.\n          integer = _n2.substring(0, decimalSepIndex); // a. Let fraction be the substring of n from position decimalSepIndex, exclusive, to the end of n.\n\n          fraction = _n2.substring(decimalSepIndex + 1, decimalSepIndex.length);\n        } // 8. Else:\n        else {\n          // a. Let integer be n.\n          integer = _n2; // a. Let fraction be undefined.\n\n          fraction = undefined;\n        } // 9. If the value of the numberFormat.[[useGrouping]] is true,\n\n\n        if (internal['[[useGrouping]]'] === true) {\n          // a. Let groupSepSymbol be the ILND String representing the grouping separator.\n          var groupSepSymbol = ild.group; // a. Let groups be a List whose elements are, in left to right order, the substrings defined by ILND set of locations within the integer.\n\n          var groups = []; // ----> implementation:\n          // Primary group represents the group closest to the decimal\n\n          var pgSize = data.patterns.primaryGroupSize || 3; // Secondary group is every other group\n\n          var sgSize = data.patterns.secondaryGroupSize || pgSize; // Group only if necessary\n\n          if (integer.length > pgSize) {\n            // Index of the primary grouping separator\n            var end = integer.length - pgSize; // Starting index for our loop\n\n            var idx = end % sgSize;\n            var start = integer.slice(0, idx);\n            if (start.length) arrPush.call(groups, start); // Loop to separate into secondary grouping digits\n\n            while (idx < end) {\n              arrPush.call(groups, integer.slice(idx, idx + sgSize));\n              idx += sgSize;\n            } // Add the primary grouping digits\n\n\n            arrPush.call(groups, integer.slice(end));\n          } else {\n            arrPush.call(groups, integer);\n          } // a. Assert: The number of elements in groups List is greater than 0.\n\n\n          if (groups.length === 0) throw new Error(); // a. Repeat, while groups List is not empty:\n\n          while (groups.length) {\n            // i. Remove the first element from groups and let integerGroup be the value of that element.\n            var integerGroup = arrShift.call(groups); // ii. Add new part record { [[type]]: \"integer\", [[value]]: integerGroup } as a new element of the list result.\n\n            arrPush.call(result, {\n              '[[type]]': 'integer',\n              '[[value]]': integerGroup\n            }); // iii. If groups List is not empty, then:\n\n            if (groups.length) {\n              // 1. Add new part record { [[type]]: \"group\", [[value]]: groupSepSymbol } as a new element of the list result.\n              arrPush.call(result, {\n                '[[type]]': 'group',\n                '[[value]]': groupSepSymbol\n              });\n            }\n          }\n        } // 10. Else,\n        else {\n          // a. Add new part record { [[type]]: \"integer\", [[value]]: integer } as a new element of the list result.\n          arrPush.call(result, {\n            '[[type]]': 'integer',\n            '[[value]]': integer\n          });\n        } // 11. If fraction is not undefined, then:\n\n\n        if (fraction !== undefined) {\n          // a. Let decimalSepSymbol be the ILND String representing the decimal separator.\n          var decimalSepSymbol = ild.decimal; // a. Add new part record { [[type]]: \"decimal\", [[value]]: decimalSepSymbol } as a new element of the list result.\n\n          arrPush.call(result, {\n            '[[type]]': 'decimal',\n            '[[value]]': decimalSepSymbol\n          }); // a. Add new part record { [[type]]: \"fraction\", [[value]]: fraction } as a new element of the list result.\n\n          arrPush.call(result, {\n            '[[type]]': 'fraction',\n            '[[value]]': fraction\n          });\n        }\n      }\n    } // a. Else if p is equal \"plusSign\", then:\n    else if (p === \"plusSign\") {\n      // i. Let plusSignSymbol be the ILND String representing the plus sign.\n      var plusSignSymbol = ild.plusSign; // ii. Add new part record { [[type]]: \"plusSign\", [[value]]: plusSignSymbol } as a new element of the list result.\n\n      arrPush.call(result, {\n        '[[type]]': 'plusSign',\n        '[[value]]': plusSignSymbol\n      });\n    } // a. Else if p is equal \"minusSign\", then:\n    else if (p === \"minusSign\") {\n      // i. Let minusSignSymbol be the ILND String representing the minus sign.\n      var minusSignSymbol = ild.minusSign; // ii. Add new part record { [[type]]: \"minusSign\", [[value]]: minusSignSymbol } as a new element of the list result.\n\n      arrPush.call(result, {\n        '[[type]]': 'minusSign',\n        '[[value]]': minusSignSymbol\n      });\n    } // a. Else if p is equal \"percentSign\" and numberFormat.[[style]] is \"percent\", then:\n    else if (p === \"percentSign\" && internal['[[style]]'] === \"percent\") {\n      // i. Let percentSignSymbol be the ILND String representing the percent sign.\n      var percentSignSymbol = ild.percentSign; // ii. Add new part record { [[type]]: \"percentSign\", [[value]]: percentSignSymbol } as a new element of the list result.\n\n      arrPush.call(result, {\n        '[[type]]': 'literal',\n        '[[value]]': percentSignSymbol\n      });\n    } // a. Else if p is equal \"currency\" and numberFormat.[[style]] is \"currency\", then:\n    else if (p === \"currency\" && internal['[[style]]'] === \"currency\") {\n      // i. Let currency be the value of numberFormat.[[currency]].\n      var currency = internal['[[currency]]'];\n      var cd = void 0; // ii. If numberFormat.[[currencyDisplay]] is \"code\", then\n\n      if (internal['[[currencyDisplay]]'] === \"code\") {\n        // 1. Let cd be currency.\n        cd = currency;\n      } // iii. Else if numberFormat.[[currencyDisplay]] is \"symbol\", then\n      else if (internal['[[currencyDisplay]]'] === \"symbol\") {\n        // 1. Let cd be an ILD string representing currency in short form. If the implementation does not have such a representation of currency, use currency itself.\n        cd = data.currencies[currency] || currency;\n      } // iv. Else if numberFormat.[[currencyDisplay]] is \"name\", then\n      else if (internal['[[currencyDisplay]]'] === \"name\") {\n        // 1. Let cd be an ILD string representing currency in long form. If the implementation does not have such a representation of currency, then use currency itself.\n        cd = currency;\n      } // v. Add new part record { [[type]]: \"currency\", [[value]]: cd } as a new element of the list result.\n\n\n      arrPush.call(result, {\n        '[[type]]': 'currency',\n        '[[value]]': cd\n      });\n    } // a. Else,\n    else {\n      // i. Let literal be the substring of pattern from position beginIndex, inclusive, to position endIndex, inclusive.\n      var _literal = pattern.substring(beginIndex, endIndex); // ii. Add new part record { [[type]]: \"literal\", [[value]]: literal } as a new element of the list result.\n\n\n      arrPush.call(result, {\n        '[[type]]': 'literal',\n        '[[value]]': _literal\n      });\n    } // a. Set nextIndex to endIndex + 1.\n\n\n    nextIndex = endIndex + 1; // a. Set beginIndex to Call(%StringProto_indexOf%, pattern, \"{\", nextIndex)\n\n    beginIndex = pattern.indexOf('{', nextIndex);\n  } // 9. If nextIndex is less than length, then:\n\n\n  if (nextIndex < length) {\n    // a. Let literal be the substring of pattern from position nextIndex, inclusive, to position length, exclusive.\n    var _literal2 = pattern.substring(nextIndex, length); // a. Add new part record { [[type]]: \"literal\", [[value]]: literal } as a new element of the list result.\n\n\n    arrPush.call(result, {\n      '[[type]]': 'literal',\n      '[[value]]': _literal2\n    });\n  } // 10. Return result.\n\n\n  return result;\n}\n/*\n * @spec[stasm/ecma402/number-format-to-parts/spec/numberformat.html]\n * @clause[sec-formatnumber]\n */\n\n\nfunction FormatNumber(numberFormat, x) {\n  // 1. Let parts be ? PartitionNumberPattern(numberFormat, x).\n  var parts = PartitionNumberPattern(numberFormat, x); // 2. Let result be an empty String.\n\n  var result = ''; // 3. For each part in parts, do:\n\n  for (var i = 0; parts.length > i; i++) {\n    var part = parts[i]; // a. Set result to a String value produced by concatenating result and part.[[value]].\n\n    result += part['[[value]]'];\n  } // 4. Return result.\n\n\n  return result;\n}\n/**\n * When the ToRawPrecision abstract operation is called with arguments x (which\n * must be a finite non-negative number), minPrecision, and maxPrecision (both\n * must be integers between 1 and 21) the following steps are taken:\n */\n\n\nfunction ToRawPrecision(x, minPrecision, maxPrecision) {\n  // 1. Let p be maxPrecision.\n  var p = maxPrecision;\n  var m = void 0,\n      e = void 0; // 2. If x = 0, then\n\n  if (x === 0) {\n    // a. Let m be the String consisting of p occurrences of the character \"0\".\n    m = arrJoin.call(Array(p + 1), '0'); // b. Let e be 0.\n\n    e = 0;\n  } // 3. Else\n  else {\n    // a. Let e and n be integers such that 10ᵖ⁻¹ ≤ n < 10ᵖ and for which the\n    //    exact mathematical value of n × 10ᵉ⁻ᵖ⁺¹ – x is as close to zero as\n    //    possible. If there are two such sets of e and n, pick the e and n for\n    //    which n × 10ᵉ⁻ᵖ⁺¹ is larger.\n    e = log10Floor(Math.abs(x)); // Easier to get to m from here\n\n    var f = Math.round(Math.exp(Math.abs(e - p + 1) * Math.LN10)); // b. Let m be the String consisting of the digits of the decimal\n    //    representation of n (in order, with no leading zeroes)\n\n    m = String(Math.round(e - p + 1 < 0 ? x * f : x / f));\n  } // 4. If e ≥ p, then\n\n\n  if (e >= p) // a. Return the concatenation of m and e-p+1 occurrences of the character \"0\".\n    return m + arrJoin.call(Array(e - p + 1 + 1), '0'); // 5. If e = p-1, then\n  else if (e === p - 1) // a. Return m.\n    return m; // 6. If e ≥ 0, then\n  else if (e >= 0) // a. Let m be the concatenation of the first e+1 characters of m, the character\n    //    \".\", and the remaining p–(e+1) characters of m.\n    m = m.slice(0, e + 1) + '.' + m.slice(e + 1); // 7. If e < 0, then\n  else if (e < 0) // a. Let m be the concatenation of the String \"0.\", –(e+1) occurrences of the\n    //    character \"0\", and the string m.\n    m = '0.' + arrJoin.call(Array(-(e + 1) + 1), '0') + m; // 8. If m contains the character \".\", and maxPrecision > minPrecision, then\n\n  if (m.indexOf(\".\") >= 0 && maxPrecision > minPrecision) {\n    // a. Let cut be maxPrecision – minPrecision.\n    var cut = maxPrecision - minPrecision; // b. Repeat while cut > 0 and the last character of m is \"0\":\n\n    while (cut > 0 && m.charAt(m.length - 1) === '0') {\n      //  i. Remove the last character from m.\n      m = m.slice(0, -1); //  ii. Decrease cut by 1.\n\n      cut--;\n    } // c. If the last character of m is \".\", then\n\n\n    if (m.charAt(m.length - 1) === '.') //    i. Remove the last character from m.\n      m = m.slice(0, -1);\n  } // 9. Return m.\n\n\n  return m;\n}\n/**\n * @spec[tc39/ecma402/master/spec/numberformat.html]\n * @clause[sec-torawfixed]\n * When the ToRawFixed abstract operation is called with arguments x (which must\n * be a finite non-negative number), minInteger (which must be an integer between\n * 1 and 21), minFraction, and maxFraction (which must be integers between 0 and\n * 20) the following steps are taken:\n */\n\n\nfunction ToRawFixed(x, minInteger, minFraction, maxFraction) {\n  // 1. Let f be maxFraction.\n  var f = maxFraction; // 2. Let n be an integer for which the exact mathematical value of n ÷ 10f – x is as close to zero as possible. If there are two such n, pick the larger n.\n\n  var n = Math.pow(10, f) * x; // diverging...\n  // 3. If n = 0, let m be the String \"0\". Otherwise, let m be the String consisting of the digits of the decimal representation of n (in order, with no leading zeroes).\n\n  var m = n === 0 ? \"0\" : n.toFixed(0); // divering...\n\n  {\n    // this diversion is needed to take into consideration big numbers, e.g.:\n    // 1.2344501e+37 -> 12344501000000000000000000000000000000\n    var idx = void 0;\n    var exp = (idx = m.indexOf('e')) > -1 ? m.slice(idx + 1) : 0;\n\n    if (exp) {\n      m = m.slice(0, idx).replace('.', '');\n      m += arrJoin.call(Array(exp - (m.length - 1) + 1), '0');\n    }\n  }\n\n  var _int = void 0; // 4. If f ≠ 0, then\n\n\n  if (f !== 0) {\n    // a. Let k be the number of characters in m.\n    var k = m.length; // a. If k ≤ f, then\n\n    if (k <= f) {\n      // i. Let z be the String consisting of f+1–k occurrences of the character \"0\".\n      var z = arrJoin.call(Array(f + 1 - k + 1), '0'); // ii. Let m be the concatenation of Strings z and m.\n\n      m = z + m; // iii. Let k be f+1.\n\n      k = f + 1;\n    } // a. Let a be the first k–f characters of m, and let b be the remaining f characters of m.\n\n\n    var a = m.substring(0, k - f),\n        b = m.substring(k - f, m.length); // a. Let m be the concatenation of the three Strings a, \".\", and b.\n\n    m = a + \".\" + b; // a. Let int be the number of characters in a.\n\n    _int = a.length;\n  } // 5. Else, let int be the number of characters in m.\n  else _int = m.length; // 6. Let cut be maxFraction – minFraction.\n\n\n  var cut = maxFraction - minFraction; // 7. Repeat while cut > 0 and the last character of m is \"0\":\n\n  while (cut > 0 && m.slice(-1) === \"0\") {\n    // a. Remove the last character from m.\n    m = m.slice(0, -1); // a. Decrease cut by 1.\n\n    cut--;\n  } // 8. If the last character of m is \".\", then\n\n\n  if (m.slice(-1) === \".\") {\n    // a. Remove the last character from m.\n    m = m.slice(0, -1);\n  } // 9. If int < minInteger, then\n\n\n  if (_int < minInteger) {\n    // a. Let z be the String consisting of minInteger–int occurrences of the character \"0\".\n    var _z = arrJoin.call(Array(minInteger - _int + 1), '0'); // a. Let m be the concatenation of Strings z and m.\n\n\n    m = _z + m;\n  } // 10. Return m.\n\n\n  return m;\n} // Sect 11.3.2 Table 2, Numbering systems\n// ======================================\n\n\nvar numSys = {\n  arab: [\"٠\", \"١\", \"٢\", \"٣\", \"٤\", \"٥\", \"٦\", \"٧\", \"٨\", \"٩\"],\n  arabext: [\"۰\", \"۱\", \"۲\", \"۳\", \"۴\", \"۵\", \"۶\", \"۷\", \"۸\", \"۹\"],\n  bali: [\"᭐\", \"᭑\", \"᭒\", \"᭓\", \"᭔\", \"᭕\", \"᭖\", \"᭗\", \"᭘\", \"᭙\"],\n  beng: [\"০\", \"১\", \"২\", \"৩\", \"৪\", \"৫\", \"৬\", \"৭\", \"৮\", \"৯\"],\n  deva: [\"०\", \"१\", \"२\", \"३\", \"४\", \"५\", \"६\", \"७\", \"८\", \"९\"],\n  fullwide: [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"],\n  gujr: [\"૦\", \"૧\", \"૨\", \"૩\", \"૪\", \"૫\", \"૬\", \"૭\", \"૮\", \"૯\"],\n  guru: [\"੦\", \"੧\", \"੨\", \"੩\", \"੪\", \"੫\", \"੬\", \"੭\", \"੮\", \"੯\"],\n  hanidec: [\"〇\", \"一\", \"二\", \"三\", \"四\", \"五\", \"六\", \"七\", \"八\", \"九\"],\n  khmr: [\"០\", \"១\", \"២\", \"៣\", \"៤\", \"៥\", \"៦\", \"៧\", \"៨\", \"៩\"],\n  knda: [\"೦\", \"೧\", \"೨\", \"೩\", \"೪\", \"೫\", \"೬\", \"೭\", \"೮\", \"೯\"],\n  laoo: [\"໐\", \"໑\", \"໒\", \"໓\", \"໔\", \"໕\", \"໖\", \"໗\", \"໘\", \"໙\"],\n  latn: [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"],\n  limb: [\"᥆\", \"᥇\", \"᥈\", \"᥉\", \"᥊\", \"᥋\", \"᥌\", \"᥍\", \"᥎\", \"᥏\"],\n  mlym: [\"൦\", \"൧\", \"൨\", \"൩\", \"൪\", \"൫\", \"൬\", \"൭\", \"൮\", \"൯\"],\n  mong: [\"᠐\", \"᠑\", \"᠒\", \"᠓\", \"᠔\", \"᠕\", \"᠖\", \"᠗\", \"᠘\", \"᠙\"],\n  mymr: [\"၀\", \"၁\", \"၂\", \"၃\", \"၄\", \"၅\", \"၆\", \"၇\", \"၈\", \"၉\"],\n  orya: [\"୦\", \"୧\", \"୨\", \"୩\", \"୪\", \"୫\", \"୬\", \"୭\", \"୮\", \"୯\"],\n  tamldec: [\"௦\", \"௧\", \"௨\", \"௩\", \"௪\", \"௫\", \"௬\", \"௭\", \"௮\", \"௯\"],\n  telu: [\"౦\", \"౧\", \"౨\", \"౩\", \"౪\", \"౫\", \"౬\", \"౭\", \"౮\", \"౯\"],\n  thai: [\"๐\", \"๑\", \"๒\", \"๓\", \"๔\", \"๕\", \"๖\", \"๗\", \"๘\", \"๙\"],\n  tibt: [\"༠\", \"༡\", \"༢\", \"༣\", \"༤\", \"༥\", \"༦\", \"༧\", \"༨\", \"༩\"]\n};\n/**\n * This function provides access to the locale and formatting options computed\n * during initialization of the object.\n *\n * The function returns a new object whose properties and attributes are set as\n * if constructed by an object literal assigning to each of the following\n * properties the value of the corresponding internal property of this\n * NumberFormat object (see 11.4): locale, numberingSystem, style, currency,\n * currencyDisplay, minimumIntegerDigits, minimumFractionDigits,\n * maximumFractionDigits, minimumSignificantDigits, maximumSignificantDigits, and\n * useGrouping. Properties whose corresponding internal properties are not present\n * are not assigned.\n */\n\n/* 11.3.3 */\n\ndefineProperty(Intl.NumberFormat.prototype, 'resolvedOptions', {\n  configurable: true,\n  writable: true,\n  value: function value() {\n    var prop = void 0,\n        descs = new Record(),\n        props = ['locale', 'numberingSystem', 'style', 'currency', 'currencyDisplay', 'minimumIntegerDigits', 'minimumFractionDigits', 'maximumFractionDigits', 'minimumSignificantDigits', 'maximumSignificantDigits', 'useGrouping'],\n        internal = this !== null && babelHelpers$1[\"typeof\"](this) === 'object' && getInternalProperties(this); // Satisfy test 11.3_b\n\n    if (!internal || !internal['[[initializedNumberFormat]]']) throw new TypeError('`this` value for resolvedOptions() is not an initialized Intl.NumberFormat object.');\n\n    for (var i = 0, max = props.length; i < max; i++) {\n      if (hop.call(internal, prop = '[[' + props[i] + ']]')) descs[props[i]] = {\n        value: internal[prop],\n        writable: true,\n        configurable: true,\n        enumerable: true\n      };\n    }\n\n    return objCreate({}, descs);\n  }\n});\n/* jslint esnext: true */\n// Match these datetime components in a CLDR pattern, except those in single quotes\n\nvar expDTComponents = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g; // trim patterns after transformations\n\nvar expPatternTrimmer = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g; // Skip over patterns with these datetime components because we don't have data\n// to back them up:\n// timezone, weekday, amoung others\n\nvar unwantedDTCs = /[rqQASjJgwWIQq]/; // xXVO were removed from this list in favor of computing matches with timeZoneName values but printing as empty string\n\nvar dtKeys = [\"era\", \"year\", \"month\", \"day\", \"weekday\", \"quarter\"];\nvar tmKeys = [\"hour\", \"minute\", \"second\", \"hour12\", \"timeZoneName\"];\n\nfunction isDateFormatOnly(obj) {\n  for (var i = 0; i < tmKeys.length; i += 1) {\n    if (obj.hasOwnProperty(tmKeys[i])) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nfunction isTimeFormatOnly(obj) {\n  for (var i = 0; i < dtKeys.length; i += 1) {\n    if (obj.hasOwnProperty(dtKeys[i])) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nfunction joinDateAndTimeFormats(dateFormatObj, timeFormatObj) {\n  var o = {\n    _: {}\n  };\n\n  for (var i = 0; i < dtKeys.length; i += 1) {\n    if (dateFormatObj[dtKeys[i]]) {\n      o[dtKeys[i]] = dateFormatObj[dtKeys[i]];\n    }\n\n    if (dateFormatObj._[dtKeys[i]]) {\n      o._[dtKeys[i]] = dateFormatObj._[dtKeys[i]];\n    }\n  }\n\n  for (var j = 0; j < tmKeys.length; j += 1) {\n    if (timeFormatObj[tmKeys[j]]) {\n      o[tmKeys[j]] = timeFormatObj[tmKeys[j]];\n    }\n\n    if (timeFormatObj._[tmKeys[j]]) {\n      o._[tmKeys[j]] = timeFormatObj._[tmKeys[j]];\n    }\n  }\n\n  return o;\n}\n\nfunction computeFinalPatterns(formatObj) {\n  // From http://www.unicode.org/reports/tr35/tr35-dates.html#Date_Format_Patterns:\n  //  'In patterns, two single quotes represents a literal single quote, either\n  //   inside or outside single quotes. Text within single quotes is not\n  //   interpreted in any way (except for two adjacent single quotes).'\n  formatObj.pattern12 = formatObj.extendedPattern.replace(/'([^']*)'/g, function ($0, literal) {\n    return literal ? literal : \"'\";\n  }); // pattern 12 is always the default. we can produce the 24 by removing {ampm}\n\n  formatObj.pattern = formatObj.pattern12.replace('{ampm}', '').replace(expPatternTrimmer, '');\n  return formatObj;\n}\n\nfunction expDTComponentsMeta($0, formatObj) {\n  switch ($0.charAt(0)) {\n    // --- Era\n    case 'G':\n      formatObj.era = ['short', 'short', 'short', 'long', 'narrow'][$0.length - 1];\n      return '{era}';\n    // --- Year\n\n    case 'y':\n    case 'Y':\n    case 'u':\n    case 'U':\n    case 'r':\n      formatObj.year = $0.length === 2 ? '2-digit' : 'numeric';\n      return '{year}';\n    // --- Quarter (not supported in this polyfill)\n\n    case 'Q':\n    case 'q':\n      formatObj.quarter = ['numeric', '2-digit', 'short', 'long', 'narrow'][$0.length - 1];\n      return '{quarter}';\n    // --- Month\n\n    case 'M':\n    case 'L':\n      formatObj.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][$0.length - 1];\n      return '{month}';\n    // --- Week (not supported in this polyfill)\n\n    case 'w':\n      // week of the year\n      formatObj.week = $0.length === 2 ? '2-digit' : 'numeric';\n      return '{weekday}';\n\n    case 'W':\n      // week of the month\n      formatObj.week = 'numeric';\n      return '{weekday}';\n    // --- Day\n\n    case 'd':\n      // day of the month\n      formatObj.day = $0.length === 2 ? '2-digit' : 'numeric';\n      return '{day}';\n\n    case 'D': // day of the year\n\n    case 'F': // day of the week\n\n    case 'g':\n      // 1..n: Modified Julian day\n      formatObj.day = 'numeric';\n      return '{day}';\n    // --- Week Day\n\n    case 'E':\n      // day of the week\n      formatObj.weekday = ['short', 'short', 'short', 'long', 'narrow', 'short'][$0.length - 1];\n      return '{weekday}';\n\n    case 'e':\n      // local day of the week\n      formatObj.weekday = ['numeric', '2-digit', 'short', 'long', 'narrow', 'short'][$0.length - 1];\n      return '{weekday}';\n\n    case 'c':\n      // stand alone local day of the week\n      formatObj.weekday = ['numeric', undefined, 'short', 'long', 'narrow', 'short'][$0.length - 1];\n      return '{weekday}';\n    // --- Period\n\n    case 'a': // AM, PM\n\n    case 'b': // am, pm, noon, midnight\n\n    case 'B':\n      // flexible day periods\n      formatObj.hour12 = true;\n      return '{ampm}';\n    // --- Hour\n\n    case 'h':\n    case 'H':\n      formatObj.hour = $0.length === 2 ? '2-digit' : 'numeric';\n      return '{hour}';\n\n    case 'k':\n    case 'K':\n      formatObj.hour12 = true; // 12-hour-cycle time formats (using h or K)\n\n      formatObj.hour = $0.length === 2 ? '2-digit' : 'numeric';\n      return '{hour}';\n    // --- Minute\n\n    case 'm':\n      formatObj.minute = $0.length === 2 ? '2-digit' : 'numeric';\n      return '{minute}';\n    // --- Second\n\n    case 's':\n      formatObj.second = $0.length === 2 ? '2-digit' : 'numeric';\n      return '{second}';\n\n    case 'S':\n    case 'A':\n      formatObj.second = 'numeric';\n      return '{second}';\n    // --- Timezone\n\n    case 'z': // 1..3, 4: specific non-location format\n\n    case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n\n    case 'O': // 1, 4: miliseconds in day short, long\n\n    case 'v': // 1, 4: generic non-location format\n\n    case 'V': // 1, 2, 3, 4: time zone ID or city\n\n    case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n\n    case 'x':\n      // 1, 2, 3, 4: The ISO8601 varios formats\n      // this polyfill only supports much, for now, we are just doing something dummy\n      formatObj.timeZoneName = $0.length < 4 ? 'short' : 'long';\n      return '{timeZoneName}';\n  }\n}\n/**\n * Converts the CLDR availableFormats into the objects and patterns required by\n * the ECMAScript Internationalization API specification.\n */\n\n\nfunction createDateTimeFormat(skeleton, pattern) {\n  // we ignore certain patterns that are unsupported to avoid this expensive op.\n  if (unwantedDTCs.test(pattern)) return undefined;\n  var formatObj = {\n    originalPattern: pattern,\n    _: {}\n  }; // Replace the pattern string with the one required by the specification, whilst\n  // at the same time evaluating it for the subsets and formats\n\n  formatObj.extendedPattern = pattern.replace(expDTComponents, function ($0) {\n    // See which symbol we're dealing with\n    return expDTComponentsMeta($0, formatObj._);\n  }); // Match the skeleton string with the one required by the specification\n  // this implementation is based on the Date Field Symbol Table:\n  // http://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n  // Note: we are adding extra data to the formatObject even though this polyfill\n  //       might not support it.\n\n  skeleton.replace(expDTComponents, function ($0) {\n    // See which symbol we're dealing with\n    return expDTComponentsMeta($0, formatObj);\n  });\n  return computeFinalPatterns(formatObj);\n}\n/**\n * Processes DateTime formats from CLDR to an easier-to-parse format.\n * the result of this operation should be cached the first time a particular\n * calendar is analyzed.\n *\n * The specification requires we support at least the following subsets of\n * date/time components:\n *\n *   - 'weekday', 'year', 'month', 'day', 'hour', 'minute', 'second'\n *   - 'weekday', 'year', 'month', 'day'\n *   - 'year', 'month', 'day'\n *   - 'year', 'month'\n *   - 'month', 'day'\n *   - 'hour', 'minute', 'second'\n *   - 'hour', 'minute'\n *\n * We need to cherry pick at least these subsets from the CLDR data and convert\n * them into the pattern objects used in the ECMA-402 API.\n */\n\n\nfunction createDateTimeFormats(formats) {\n  var availableFormats = formats.availableFormats;\n  var timeFormats = formats.timeFormats;\n  var dateFormats = formats.dateFormats;\n  var result = [];\n  var skeleton = void 0,\n      pattern = void 0,\n      computed = void 0,\n      i = void 0,\n      j = void 0;\n  var timeRelatedFormats = [];\n  var dateRelatedFormats = []; // Map available (custom) formats into a pattern for createDateTimeFormats\n\n  for (skeleton in availableFormats) {\n    if (availableFormats.hasOwnProperty(skeleton)) {\n      pattern = availableFormats[skeleton];\n      computed = createDateTimeFormat(skeleton, pattern);\n\n      if (computed) {\n        result.push(computed); // in some cases, the format is only displaying date specific props\n        // or time specific props, in which case we need to also produce the\n        // combined formats.\n\n        if (isDateFormatOnly(computed)) {\n          dateRelatedFormats.push(computed);\n        } else if (isTimeFormatOnly(computed)) {\n          timeRelatedFormats.push(computed);\n        }\n      }\n    }\n  } // Map time formats into a pattern for createDateTimeFormats\n\n\n  for (skeleton in timeFormats) {\n    if (timeFormats.hasOwnProperty(skeleton)) {\n      pattern = timeFormats[skeleton];\n      computed = createDateTimeFormat(skeleton, pattern);\n\n      if (computed) {\n        result.push(computed);\n        timeRelatedFormats.push(computed);\n      }\n    }\n  } // Map date formats into a pattern for createDateTimeFormats\n\n\n  for (skeleton in dateFormats) {\n    if (dateFormats.hasOwnProperty(skeleton)) {\n      pattern = dateFormats[skeleton];\n      computed = createDateTimeFormat(skeleton, pattern);\n\n      if (computed) {\n        result.push(computed);\n        dateRelatedFormats.push(computed);\n      }\n    }\n  } // combine custom time and custom date formats when they are orthogonals to complete the\n  // formats supported by CLDR.\n  // This Algo is based on section \"Missing Skeleton Fields\" from:\n  // http://unicode.org/reports/tr35/tr35-dates.html#availableFormats_appendItems\n\n\n  for (i = 0; i < timeRelatedFormats.length; i += 1) {\n    for (j = 0; j < dateRelatedFormats.length; j += 1) {\n      if (dateRelatedFormats[j].month === 'long') {\n        pattern = dateRelatedFormats[j].weekday ? formats.full : formats[\"long\"];\n      } else if (dateRelatedFormats[j].month === 'short') {\n        pattern = formats.medium;\n      } else {\n        pattern = formats[\"short\"];\n      }\n\n      computed = joinDateAndTimeFormats(dateRelatedFormats[j], timeRelatedFormats[i]);\n      computed.originalPattern = pattern;\n      computed.extendedPattern = pattern.replace('{0}', timeRelatedFormats[i].extendedPattern).replace('{1}', dateRelatedFormats[j].extendedPattern).replace(/^[,\\s]+|[,\\s]+$/gi, '');\n      result.push(computeFinalPatterns(computed));\n    }\n  }\n\n  return result;\n} // this represents the exceptions of the rule that are not covered by CLDR availableFormats\n// for single property configurations, they play no role when using multiple properties, and\n// those that are not in this table, are not exceptions or are not covered by the data we\n// provide.\n\n\nvar validSyntheticProps = {\n  second: {\n    numeric: 's',\n    '2-digit': 'ss'\n  },\n  minute: {\n    numeric: 'm',\n    '2-digit': 'mm'\n  },\n  year: {\n    numeric: 'y',\n    '2-digit': 'yy'\n  },\n  day: {\n    numeric: 'd',\n    '2-digit': 'dd'\n  },\n  month: {\n    numeric: 'L',\n    '2-digit': 'LL',\n    narrow: 'LLLLL',\n    \"short\": 'LLL',\n    \"long\": 'LLLL'\n  },\n  weekday: {\n    narrow: 'ccccc',\n    \"short\": 'ccc',\n    \"long\": 'cccc'\n  }\n};\n\nfunction generateSyntheticFormat(propName, propValue) {\n  if (validSyntheticProps[propName] && validSyntheticProps[propName][propValue]) {\n    var _ref2;\n\n    return _ref2 = {\n      originalPattern: validSyntheticProps[propName][propValue],\n      _: defineProperty$1({}, propName, propValue),\n      extendedPattern: \"{\" + propName + \"}\"\n    }, defineProperty$1(_ref2, propName, propValue), defineProperty$1(_ref2, \"pattern12\", \"{\" + propName + \"}\"), defineProperty$1(_ref2, \"pattern\", \"{\" + propName + \"}\"), _ref2;\n  }\n} // An object map of date component keys, saves using a regex later\n\n\nvar dateWidths = objCreate(null, {\n  narrow: {},\n  \"short\": {},\n  \"long\": {}\n});\n/**\n * Returns a string for a date component, resolved using multiple inheritance as specified\n * as specified in the Unicode Technical Standard 35.\n */\n\nfunction resolveDateString(data, ca, component, width, key) {\n  // From http://www.unicode.org/reports/tr35/tr35.html#Multiple_Inheritance:\n  // 'In clearly specified instances, resources may inherit from within the same locale.\n  //  For example, ... the Buddhist calendar inherits from the Gregorian calendar.'\n  var obj = data[ca] && data[ca][component] ? data[ca][component] : data.gregory[component],\n      // \"sideways\" inheritance resolves strings when a key doesn't exist\n  alts = {\n    narrow: ['short', 'long'],\n    \"short\": ['long', 'narrow'],\n    \"long\": ['short', 'narrow']\n  },\n      //\n  resolved = hop.call(obj, width) ? obj[width] : hop.call(obj, alts[width][0]) ? obj[alts[width][0]] : obj[alts[width][1]]; // `key` wouldn't be specified for components 'dayPeriods'\n\n  return key !== null ? resolved[key] : resolved;\n} // Define the DateTimeFormat constructor internally so it cannot be tainted\n\n\nfunction DateTimeFormatConstructor() {\n  var locales = arguments[0];\n  var options = arguments[1];\n\n  if (!this || this === Intl) {\n    return new Intl.DateTimeFormat(locales, options);\n  }\n\n  return InitializeDateTimeFormat(toObject(this), locales, options);\n}\n\ndefineProperty(Intl, 'DateTimeFormat', {\n  configurable: true,\n  writable: true,\n  value: DateTimeFormatConstructor\n}); // Must explicitly set prototypes as unwritable\n\ndefineProperty(DateTimeFormatConstructor, 'prototype', {\n  writable: false\n});\n/**\n * The abstract operation InitializeDateTimeFormat accepts the arguments dateTimeFormat\n * (which must be an object), locales, and options. It initializes dateTimeFormat as a\n * DateTimeFormat object.\n */\n\nfunction\n/* 12.1.1.1 */\nInitializeDateTimeFormat(dateTimeFormat, locales, options) {\n  // This will be a internal properties object if we're not already initialized\n  var internal = getInternalProperties(dateTimeFormat); // Create an object whose props can be used to restore the values of RegExp props\n\n  var regexpRestore = createRegExpRestore(); // 1. If dateTimeFormat has an [[initializedIntlObject]] internal property with\n  //    value true, throw a TypeError exception.\n\n  if (internal['[[initializedIntlObject]]'] === true) throw new TypeError('`this` object has already been initialized as an Intl object'); // Need this to access the `internal` object\n\n  defineProperty(dateTimeFormat, '__getInternalProperties', {\n    value: function value() {\n      // NOTE: Non-standard, for internal use only\n      if (arguments[0] === secret) return internal;\n    }\n  }); // 2. Set the [[initializedIntlObject]] internal property of numberFormat to true.\n\n  internal['[[initializedIntlObject]]'] = true; // 3. Let requestedLocales be the result of calling the CanonicalizeLocaleList\n  //    abstract operation (defined in 9.2.1) with argument locales.\n\n  var requestedLocales = CanonicalizeLocaleList(locales); // 4. Let options be the result of calling the ToDateTimeOptions abstract\n  //    operation (defined below) with arguments options, \"any\", and \"date\".\n\n  options = ToDateTimeOptions(options, 'any', 'date'); // 5. Let opt be a new Record.\n\n  var opt = new Record(); // 6. Let matcher be the result of calling the GetOption abstract operation\n  //    (defined in 9.2.9) with arguments options, \"localeMatcher\", \"string\", a List\n  //    containing the two String values \"lookup\" and \"best fit\", and \"best fit\".\n\n  var matcher = GetOption(options, 'localeMatcher', 'string', new List('lookup', 'best fit'), 'best fit'); // 7. Set opt.[[localeMatcher]] to matcher.\n\n  opt['[[localeMatcher]]'] = matcher; // 8. Let DateTimeFormat be the standard built-in object that is the initial\n  //    value of Intl.DateTimeFormat.\n\n  var DateTimeFormat = internals.DateTimeFormat; // This is what we *really* need\n  // 9. Let localeData be the value of the [[localeData]] internal property of\n  //    DateTimeFormat.\n\n  var localeData = DateTimeFormat['[[localeData]]']; // 10. Let r be the result of calling the ResolveLocale abstract operation\n  //     (defined in 9.2.5) with the [[availableLocales]] internal property of\n  //      DateTimeFormat, requestedLocales, opt, the [[relevantExtensionKeys]]\n  //      internal property of DateTimeFormat, and localeData.\n\n  var r = ResolveLocale(DateTimeFormat['[[availableLocales]]'], requestedLocales, opt, DateTimeFormat['[[relevantExtensionKeys]]'], localeData); // 11. Set the [[locale]] internal property of dateTimeFormat to the value of\n  //     r.[[locale]].\n\n  internal['[[locale]]'] = r['[[locale]]']; // 12. Set the [[calendar]] internal property of dateTimeFormat to the value of\n  //     r.[[ca]].\n\n  internal['[[calendar]]'] = r['[[ca]]']; // 13. Set the [[numberingSystem]] internal property of dateTimeFormat to the value of\n  //     r.[[nu]].\n\n  internal['[[numberingSystem]]'] = r['[[nu]]']; // The specification doesn't tell us to do this, but it's helpful later on\n\n  internal['[[dataLocale]]'] = r['[[dataLocale]]']; // 14. Let dataLocale be the value of r.[[dataLocale]].\n\n  var dataLocale = r['[[dataLocale]]']; // 15. Let tz be the result of calling the [[Get]] internal method of options with\n  //     argument \"timeZone\".\n\n  var tz = options.timeZone; // 16. If tz is not undefined, then\n\n  if (tz !== undefined) {\n    // a. Let tz be ToString(tz).\n    // b. Convert tz to upper case as described in 6.1.\n    //    NOTE: If an implementation accepts additional time zone values, as permitted\n    //          under certain conditions by the Conformance clause, different casing\n    //          rules apply.\n    tz = toLatinUpperCase(tz); // c. If tz is not \"UTC\", then throw a RangeError exception.\n    // ###TODO: accept more time zones###\n\n    if (tz !== 'UTC') throw new RangeError('timeZone is not supported.');\n  } // 17. Set the [[timeZone]] internal property of dateTimeFormat to tz.\n\n\n  internal['[[timeZone]]'] = tz; // 18. Let opt be a new Record.\n\n  opt = new Record(); // 19. For each row of Table 3, except the header row, do:\n\n  for (var prop in dateTimeComponents) {\n    if (!hop.call(dateTimeComponents, prop)) continue; // 20. Let prop be the name given in the Property column of the row.\n    // 21. Let value be the result of calling the GetOption abstract operation,\n    //     passing as argument options, the name given in the Property column of the\n    //     row, \"string\", a List containing the strings given in the Values column of\n    //     the row, and undefined.\n\n    var value = GetOption(options, prop, 'string', dateTimeComponents[prop]); // 22. Set opt.[[<prop>]] to value.\n\n    opt['[[' + prop + ']]'] = value;\n  } // Assigned a value below\n\n\n  var bestFormat = void 0; // 23. Let dataLocaleData be the result of calling the [[Get]] internal method of\n  //     localeData with argument dataLocale.\n\n  var dataLocaleData = localeData[dataLocale]; // 24. Let formats be the result of calling the [[Get]] internal method of\n  //     dataLocaleData with argument \"formats\".\n  //     Note: we process the CLDR formats into the spec'd structure\n\n  var formats = ToDateTimeFormats(dataLocaleData.formats); // 25. Let matcher be the result of calling the GetOption abstract operation with\n  //     arguments options, \"formatMatcher\", \"string\", a List containing the two String\n  //     values \"basic\" and \"best fit\", and \"best fit\".\n\n  matcher = GetOption(options, 'formatMatcher', 'string', new List('basic', 'best fit'), 'best fit'); // Optimization: caching the processed formats as a one time operation by\n  // replacing the initial structure from localeData\n\n  dataLocaleData.formats = formats; // 26. If matcher is \"basic\", then\n\n  if (matcher === 'basic') {\n    // 27. Let bestFormat be the result of calling the BasicFormatMatcher abstract\n    //     operation (defined below) with opt and formats.\n    bestFormat = BasicFormatMatcher(opt, formats); // 28. Else\n  } else {\n    {\n      // diverging\n      var _hr = GetOption(options, 'hour12', 'boolean'\n      /*, undefined, undefined*/\n      );\n\n      opt.hour12 = _hr === undefined ? dataLocaleData.hour12 : _hr;\n    } // 29. Let bestFormat be the result of calling the BestFitFormatMatcher\n    //     abstract operation (defined below) with opt and formats.\n\n    bestFormat = BestFitFormatMatcher(opt, formats);\n  } // 30. For each row in Table 3, except the header row, do\n\n\n  for (var _prop in dateTimeComponents) {\n    if (!hop.call(dateTimeComponents, _prop)) continue; // a. Let prop be the name given in the Property column of the row.\n    // b. Let pDesc be the result of calling the [[GetOwnProperty]] internal method of\n    //    bestFormat with argument prop.\n    // c. If pDesc is not undefined, then\n\n    if (hop.call(bestFormat, _prop)) {\n      // i. Let p be the result of calling the [[Get]] internal method of bestFormat\n      //    with argument prop.\n      var p = bestFormat[_prop];\n      {\n        // diverging\n        p = bestFormat._ && hop.call(bestFormat._, _prop) ? bestFormat._[_prop] : p;\n      } // ii. Set the [[<prop>]] internal property of dateTimeFormat to p.\n\n      internal['[[' + _prop + ']]'] = p;\n    }\n  }\n\n  var pattern = void 0; // Assigned a value below\n  // 31. Let hr12 be the result of calling the GetOption abstract operation with\n  //     arguments options, \"hour12\", \"boolean\", undefined, and undefined.\n\n  var hr12 = GetOption(options, 'hour12', 'boolean'\n  /*, undefined, undefined*/\n  ); // 32. If dateTimeFormat has an internal property [[hour]], then\n\n  if (internal['[[hour]]']) {\n    // a. If hr12 is undefined, then let hr12 be the result of calling the [[Get]]\n    //    internal method of dataLocaleData with argument \"hour12\".\n    hr12 = hr12 === undefined ? dataLocaleData.hour12 : hr12; // b. Set the [[hour12]] internal property of dateTimeFormat to hr12.\n\n    internal['[[hour12]]'] = hr12; // c. If hr12 is true, then\n\n    if (hr12 === true) {\n      // i. Let hourNo0 be the result of calling the [[Get]] internal method of\n      //    dataLocaleData with argument \"hourNo0\".\n      var hourNo0 = dataLocaleData.hourNo0; // ii. Set the [[hourNo0]] internal property of dateTimeFormat to hourNo0.\n\n      internal['[[hourNo0]]'] = hourNo0; // iii. Let pattern be the result of calling the [[Get]] internal method of\n      //      bestFormat with argument \"pattern12\".\n\n      pattern = bestFormat.pattern12;\n    } // d. Else\n    else // i. Let pattern be the result of calling the [[Get]] internal method of\n      //    bestFormat with argument \"pattern\".\n      pattern = bestFormat.pattern;\n  } // 33. Else\n  else // a. Let pattern be the result of calling the [[Get]] internal method of\n    //    bestFormat with argument \"pattern\".\n    pattern = bestFormat.pattern; // 34. Set the [[pattern]] internal property of dateTimeFormat to pattern.\n\n\n  internal['[[pattern]]'] = pattern; // 35. Set the [[boundFormat]] internal property of dateTimeFormat to undefined.\n\n  internal['[[boundFormat]]'] = undefined; // 36. Set the [[initializedDateTimeFormat]] internal property of dateTimeFormat to\n  //     true.\n\n  internal['[[initializedDateTimeFormat]]'] = true; // In ES3, we need to pre-bind the format() function\n\n  if (es3) dateTimeFormat.format = GetFormatDateTime.call(dateTimeFormat); // Restore the RegExp properties\n\n  regexpRestore(); // Return the newly initialised object\n\n  return dateTimeFormat;\n}\n/**\n * Several DateTimeFormat algorithms use values from the following table, which provides\n * property names and allowable values for the components of date and time formats:\n */\n\n\nvar dateTimeComponents = {\n  weekday: [\"narrow\", \"short\", \"long\"],\n  era: [\"narrow\", \"short\", \"long\"],\n  year: [\"2-digit\", \"numeric\"],\n  month: [\"2-digit\", \"numeric\", \"narrow\", \"short\", \"long\"],\n  day: [\"2-digit\", \"numeric\"],\n  hour: [\"2-digit\", \"numeric\"],\n  minute: [\"2-digit\", \"numeric\"],\n  second: [\"2-digit\", \"numeric\"],\n  timeZoneName: [\"short\", \"long\"]\n};\n/**\n * When the ToDateTimeOptions abstract operation is called with arguments options,\n * required, and defaults, the following steps are taken:\n */\n\nfunction ToDateTimeFormats(formats) {\n  if (Object.prototype.toString.call(formats) === '[object Array]') {\n    return formats;\n  }\n\n  return createDateTimeFormats(formats);\n}\n/**\n * When the ToDateTimeOptions abstract operation is called with arguments options,\n * required, and defaults, the following steps are taken:\n */\n\n\nfunction ToDateTimeOptions(options, required, defaults) {\n  // 1. If options is undefined, then let options be null, else let options be\n  //    ToObject(options).\n  if (options === undefined) options = null;else {\n    // (#12) options needs to be a Record, but it also needs to inherit properties\n    var opt2 = toObject(options);\n    options = new Record();\n\n    for (var k in opt2) {\n      options[k] = opt2[k];\n    }\n  } // 2. Let create be the standard built-in function object defined in ES5, 15.2.3.5.\n\n  var create = objCreate; // 3. Let options be the result of calling the [[Call]] internal method of create with\n  //    undefined as the this value and an argument list containing the single item\n  //    options.\n\n  options = create(options); // 4. Let needDefaults be true.\n\n  var needDefaults = true; // 5. If required is \"date\" or \"any\", then\n\n  if (required === 'date' || required === 'any') {\n    // a. For each of the property names \"weekday\", \"year\", \"month\", \"day\":\n    // i. If the result of calling the [[Get]] internal method of options with the\n    //    property name is not undefined, then let needDefaults be false.\n    if (options.weekday !== undefined || options.year !== undefined || options.month !== undefined || options.day !== undefined) needDefaults = false;\n  } // 6. If required is \"time\" or \"any\", then\n\n\n  if (required === 'time' || required === 'any') {\n    // a. For each of the property names \"hour\", \"minute\", \"second\":\n    // i. If the result of calling the [[Get]] internal method of options with the\n    //    property name is not undefined, then let needDefaults be false.\n    if (options.hour !== undefined || options.minute !== undefined || options.second !== undefined) needDefaults = false;\n  } // 7. If needDefaults is true and defaults is either \"date\" or \"all\", then\n\n\n  if (needDefaults && (defaults === 'date' || defaults === 'all')) // a. For each of the property names \"year\", \"month\", \"day\":\n    // i. Call the [[DefineOwnProperty]] internal method of options with the\n    //    property name, Property Descriptor {[[Value]]: \"numeric\", [[Writable]]:\n    //    true, [[Enumerable]]: true, [[Configurable]]: true}, and false.\n    options.year = options.month = options.day = 'numeric'; // 8. If needDefaults is true and defaults is either \"time\" or \"all\", then\n\n  if (needDefaults && (defaults === 'time' || defaults === 'all')) // a. For each of the property names \"hour\", \"minute\", \"second\":\n    // i. Call the [[DefineOwnProperty]] internal method of options with the\n    //    property name, Property Descriptor {[[Value]]: \"numeric\", [[Writable]]:\n    //    true, [[Enumerable]]: true, [[Configurable]]: true}, and false.\n    options.hour = options.minute = options.second = 'numeric'; // 9. Return options.\n\n  return options;\n}\n/**\n * When the BasicFormatMatcher abstract operation is called with two arguments options and\n * formats, the following steps are taken:\n */\n\n\nfunction BasicFormatMatcher(options, formats) {\n  // 1. Let removalPenalty be 120.\n  var removalPenalty = 120; // 2. Let additionPenalty be 20.\n\n  var additionPenalty = 20; // 3. Let longLessPenalty be 8.\n\n  var longLessPenalty = 8; // 4. Let longMorePenalty be 6.\n\n  var longMorePenalty = 6; // 5. Let shortLessPenalty be 6.\n\n  var shortLessPenalty = 6; // 6. Let shortMorePenalty be 3.\n\n  var shortMorePenalty = 3; // 7. Let bestScore be -Infinity.\n\n  var bestScore = -Infinity; // 8. Let bestFormat be undefined.\n\n  var bestFormat = void 0; // 9. Let i be 0.\n\n  var i = 0; // 10. Assert: formats is an Array object.\n  // 11. Let len be the result of calling the [[Get]] internal method of formats with argument \"length\".\n\n  var len = formats.length; // 12. Repeat while i < len:\n\n  while (i < len) {\n    // a. Let format be the result of calling the [[Get]] internal method of formats with argument ToString(i).\n    var format = formats[i]; // b. Let score be 0.\n\n    var score = 0; // c. For each property shown in Table 3:\n\n    for (var property in dateTimeComponents) {\n      if (!hop.call(dateTimeComponents, property)) continue; // i. Let optionsProp be options.[[<property>]].\n\n      var optionsProp = options['[[' + property + ']]']; // ii. Let formatPropDesc be the result of calling the [[GetOwnProperty]] internal method of format\n      //     with argument property.\n      // iii. If formatPropDesc is not undefined, then\n      //     1. Let formatProp be the result of calling the [[Get]] internal method of format with argument property.\n\n      var formatProp = hop.call(format, property) ? format[property] : undefined; // iv. If optionsProp is undefined and formatProp is not undefined, then decrease score by\n      //     additionPenalty.\n\n      if (optionsProp === undefined && formatProp !== undefined) score -= additionPenalty; // v. Else if optionsProp is not undefined and formatProp is undefined, then decrease score by\n      //    removalPenalty.\n      else if (optionsProp !== undefined && formatProp === undefined) score -= removalPenalty; // vi. Else\n      else {\n        // 1. Let values be the array [\"2-digit\", \"numeric\", \"narrow\", \"short\",\n        //    \"long\"].\n        var values = ['2-digit', 'numeric', 'narrow', 'short', 'long']; // 2. Let optionsPropIndex be the index of optionsProp within values.\n\n        var optionsPropIndex = arrIndexOf.call(values, optionsProp); // 3. Let formatPropIndex be the index of formatProp within values.\n\n        var formatPropIndex = arrIndexOf.call(values, formatProp); // 4. Let delta be max(min(formatPropIndex - optionsPropIndex, 2), -2).\n\n        var delta = Math.max(Math.min(formatPropIndex - optionsPropIndex, 2), -2); // 5. If delta = 2, decrease score by longMorePenalty.\n\n        if (delta === 2) score -= longMorePenalty; // 6. Else if delta = 1, decrease score by shortMorePenalty.\n        else if (delta === 1) score -= shortMorePenalty; // 7. Else if delta = -1, decrease score by shortLessPenalty.\n        else if (delta === -1) score -= shortLessPenalty; // 8. Else if delta = -2, decrease score by longLessPenalty.\n        else if (delta === -2) score -= longLessPenalty;\n      }\n    } // d. If score > bestScore, then\n\n\n    if (score > bestScore) {\n      // i. Let bestScore be score.\n      bestScore = score; // ii. Let bestFormat be format.\n\n      bestFormat = format;\n    } // e. Increase i by 1.\n\n\n    i++;\n  } // 13. Return bestFormat.\n\n\n  return bestFormat;\n}\n/**\n * When the BestFitFormatMatcher abstract operation is called with two arguments options\n * and formats, it performs implementation dependent steps, which should return a set of\n * component representations that a typical user of the selected locale would perceive as\n * at least as good as the one returned by BasicFormatMatcher.\n *\n * This polyfill defines the algorithm to be the same as BasicFormatMatcher,\n * with the addition of bonus points awarded where the requested format is of\n * the same data type as the potentially matching format.\n *\n * This algo relies on the concept of closest distance matching described here:\n * http://unicode.org/reports/tr35/tr35-dates.html#Matching_Skeletons\n * Typically a “best match” is found using a closest distance match, such as:\n *\n * Symbols requesting a best choice for the locale are replaced.\n *      j → one of {H, k, h, K}; C → one of {a, b, B}\n * -> Covered by cldr.js matching process\n *\n * For fields with symbols representing the same type (year, month, day, etc):\n *     Most symbols have a small distance from each other.\n *         M ≅ L; E ≅ c; a ≅ b ≅ B; H ≅ k ≅ h ≅ K; ...\n *     -> Covered by cldr.js matching process\n *\n *     Width differences among fields, other than those marking text vs numeric, are given small distance from each other.\n *         MMM ≅ MMMM\n *         MM ≅ M\n *     Numeric and text fields are given a larger distance from each other.\n *         MMM ≈ MM\n *     Symbols representing substantial differences (week of year vs week of month) are given much larger a distances from each other.\n *         d ≋ D; ...\n *     Missing or extra fields cause a match to fail. (But see Missing Skeleton Fields).\n *\n *\n * For example,\n *\n *     { month: 'numeric', day: 'numeric' }\n *\n * should match\n *\n *     { month: '2-digit', day: '2-digit' }\n *\n * rather than\n *\n *     { month: 'short', day: 'numeric' }\n *\n * This makes sense because a user requesting a formatted date with numeric parts would\n * not expect to see the returned format containing narrow, short or long part names\n */\n\n\nfunction BestFitFormatMatcher(options, formats) {\n  /** Diverging: this block implements the hack for single property configuration, eg.:\n   *\n   *      `new Intl.DateTimeFormat('en', {day: 'numeric'})`\n   *\n   * should produce a single digit with the day of the month. This is needed because\n   * CLDR `availableFormats` data structure doesn't cover these cases.\n   */\n  {\n    var optionsPropNames = [];\n\n    for (var property in dateTimeComponents) {\n      if (!hop.call(dateTimeComponents, property)) continue;\n\n      if (options['[[' + property + ']]'] !== undefined) {\n        optionsPropNames.push(property);\n      }\n    }\n\n    if (optionsPropNames.length === 1) {\n      var _bestFormat = generateSyntheticFormat(optionsPropNames[0], options['[[' + optionsPropNames[0] + ']]']);\n\n      if (_bestFormat) {\n        return _bestFormat;\n      }\n    }\n  } // 1. Let removalPenalty be 120.\n\n  var removalPenalty = 120; // 2. Let additionPenalty be 20.\n\n  var additionPenalty = 20; // 3. Let longLessPenalty be 8.\n\n  var longLessPenalty = 8; // 4. Let longMorePenalty be 6.\n\n  var longMorePenalty = 6; // 5. Let shortLessPenalty be 6.\n\n  var shortLessPenalty = 6; // 6. Let shortMorePenalty be 3.\n\n  var shortMorePenalty = 3;\n  var patternPenalty = 2;\n  var hour12Penalty = 1; // 7. Let bestScore be -Infinity.\n\n  var bestScore = -Infinity; // 8. Let bestFormat be undefined.\n\n  var bestFormat = void 0; // 9. Let i be 0.\n\n  var i = 0; // 10. Assert: formats is an Array object.\n  // 11. Let len be the result of calling the [[Get]] internal method of formats with argument \"length\".\n\n  var len = formats.length; // 12. Repeat while i < len:\n\n  while (i < len) {\n    // a. Let format be the result of calling the [[Get]] internal method of formats with argument ToString(i).\n    var format = formats[i]; // b. Let score be 0.\n\n    var score = 0; // c. For each property shown in Table 3:\n\n    for (var _property in dateTimeComponents) {\n      if (!hop.call(dateTimeComponents, _property)) continue; // i. Let optionsProp be options.[[<property>]].\n\n      var optionsProp = options['[[' + _property + ']]']; // ii. Let formatPropDesc be the result of calling the [[GetOwnProperty]] internal method of format\n      //     with argument property.\n      // iii. If formatPropDesc is not undefined, then\n      //     1. Let formatProp be the result of calling the [[Get]] internal method of format with argument property.\n\n      var formatProp = hop.call(format, _property) ? format[_property] : undefined; // Diverging: using the default properties produced by the pattern/skeleton\n      // to match it with user options, and apply a penalty\n\n      var patternProp = hop.call(format._, _property) ? format._[_property] : undefined;\n\n      if (optionsProp !== patternProp) {\n        score -= patternPenalty;\n      } // iv. If optionsProp is undefined and formatProp is not undefined, then decrease score by\n      //     additionPenalty.\n\n\n      if (optionsProp === undefined && formatProp !== undefined) score -= additionPenalty; // v. Else if optionsProp is not undefined and formatProp is undefined, then decrease score by\n      //    removalPenalty.\n      else if (optionsProp !== undefined && formatProp === undefined) score -= removalPenalty; // vi. Else\n      else {\n        // 1. Let values be the array [\"2-digit\", \"numeric\", \"narrow\", \"short\",\n        //    \"long\"].\n        var values = ['2-digit', 'numeric', 'narrow', 'short', 'long']; // 2. Let optionsPropIndex be the index of optionsProp within values.\n\n        var optionsPropIndex = arrIndexOf.call(values, optionsProp); // 3. Let formatPropIndex be the index of formatProp within values.\n\n        var formatPropIndex = arrIndexOf.call(values, formatProp); // 4. Let delta be max(min(formatPropIndex - optionsPropIndex, 2), -2).\n\n        var delta = Math.max(Math.min(formatPropIndex - optionsPropIndex, 2), -2);\n        {\n          // diverging from spec\n          // When the bestFit argument is true, subtract additional penalty where data types are not the same\n          if (formatPropIndex <= 1 && optionsPropIndex >= 2 || formatPropIndex >= 2 && optionsPropIndex <= 1) {\n            // 5. If delta = 2, decrease score by longMorePenalty.\n            if (delta > 0) score -= longMorePenalty;else if (delta < 0) score -= longLessPenalty;\n          } else {\n            // 5. If delta = 2, decrease score by longMorePenalty.\n            if (delta > 1) score -= shortMorePenalty;else if (delta < -1) score -= shortLessPenalty;\n          }\n        }\n      }\n    }\n\n    {\n      // diverging to also take into consideration differences between 12 or 24 hours\n      // which is special for the best fit only.\n      if (format._.hour12 !== options.hour12) {\n        score -= hour12Penalty;\n      }\n    } // d. If score > bestScore, then\n\n    if (score > bestScore) {\n      // i. Let bestScore be score.\n      bestScore = score; // ii. Let bestFormat be format.\n\n      bestFormat = format;\n    } // e. Increase i by 1.\n\n\n    i++;\n  } // 13. Return bestFormat.\n\n\n  return bestFormat;\n}\n/* 12.2.3 */\n\n\ninternals.DateTimeFormat = {\n  '[[availableLocales]]': [],\n  '[[relevantExtensionKeys]]': ['ca', 'nu'],\n  '[[localeData]]': {}\n};\n/**\n * When the supportedLocalesOf method of Intl.DateTimeFormat is called, the\n * following steps are taken:\n */\n\n/* 12.2.2 */\n\ndefineProperty(Intl.DateTimeFormat, 'supportedLocalesOf', {\n  configurable: true,\n  writable: true,\n  value: fnBind.call(function (locales) {\n    // Bound functions only have the `this` value altered if being used as a constructor,\n    // this lets us imitate a native function that has no constructor\n    if (!hop.call(this, '[[availableLocales]]')) throw new TypeError('supportedLocalesOf() is not a constructor'); // Create an object whose props can be used to restore the values of RegExp props\n\n    var regexpRestore = createRegExpRestore(),\n        // 1. If options is not provided, then let options be undefined.\n    options = arguments[1],\n        // 2. Let availableLocales be the value of the [[availableLocales]] internal\n    //    property of the standard built-in object that is the initial value of\n    //    Intl.NumberFormat.\n    availableLocales = this['[[availableLocales]]'],\n        // 3. Let requestedLocales be the result of calling the CanonicalizeLocaleList\n    //    abstract operation (defined in 9.2.1) with argument locales.\n    requestedLocales = CanonicalizeLocaleList(locales); // Restore the RegExp properties\n\n    regexpRestore(); // 4. Return the result of calling the SupportedLocales abstract operation\n    //    (defined in 9.2.8) with arguments availableLocales, requestedLocales,\n    //    and options.\n\n    return SupportedLocales(availableLocales, requestedLocales, options);\n  }, internals.NumberFormat)\n});\n/**\n * This named accessor property returns a function that formats a number\n * according to the effective locale and the formatting options of this\n * DateTimeFormat object.\n */\n\n/* 12.3.2 */\n\ndefineProperty(Intl.DateTimeFormat.prototype, 'format', {\n  configurable: true,\n  get: GetFormatDateTime\n});\n\nfunction GetFormatDateTime() {\n  var internal = this !== null && babelHelpers$1[\"typeof\"](this) === 'object' && getInternalProperties(this); // Satisfy test 12.3_b\n\n  if (!internal || !internal['[[initializedDateTimeFormat]]']) throw new TypeError('`this` value for format() is not an initialized Intl.DateTimeFormat object.'); // The value of the [[Get]] attribute is a function that takes the following\n  // steps:\n  // 1. If the [[boundFormat]] internal property of this DateTimeFormat object\n  //    is undefined, then:\n\n  if (internal['[[boundFormat]]'] === undefined) {\n    // a. Let F be a Function object, with internal properties set as\n    //    specified for built-in functions in ES5, 15, or successor, and the\n    //    length property set to 0, that takes the argument date and\n    //    performs the following steps:\n    var F = function F() {\n      var date = arguments.length <= 0 || arguments[0] === undefined ? undefined : arguments[0]; //   i. If date is not provided or is undefined, then let x be the\n      //      result as if by the expression Date.now() where Date.now is\n      //      the standard built-in function defined in ES5, 15.9.4.4.\n      //  ii. Else let x be ToNumber(date).\n      // iii. Return the result of calling the FormatDateTime abstract\n      //      operation (defined below) with arguments this and x.\n\n      var x = date === undefined ? Date.now() : toNumber(date);\n      return FormatDateTime(this, x);\n    }; // b. Let bind be the standard built-in function object defined in ES5,\n    //    15.3.4.5.\n    // c. Let bf be the result of calling the [[Call]] internal method of\n    //    bind with F as the this value and an argument list containing\n    //    the single item this.\n\n\n    var bf = fnBind.call(F, this); // d. Set the [[boundFormat]] internal property of this NumberFormat\n    //    object to bf.\n\n    internal['[[boundFormat]]'] = bf;\n  } // Return the value of the [[boundFormat]] internal property of this\n  // NumberFormat object.\n\n\n  return internal['[[boundFormat]]'];\n}\n\nfunction formatToParts$1() {\n  var date = arguments.length <= 0 || arguments[0] === undefined ? undefined : arguments[0];\n  var internal = this !== null && babelHelpers$1[\"typeof\"](this) === 'object' && getInternalProperties(this);\n  if (!internal || !internal['[[initializedDateTimeFormat]]']) throw new TypeError('`this` value for formatToParts() is not an initialized Intl.DateTimeFormat object.');\n  var x = date === undefined ? Date.now() : toNumber(date);\n  return FormatToPartsDateTime(this, x);\n}\n\nObject.defineProperty(Intl.DateTimeFormat.prototype, 'formatToParts', {\n  enumerable: false,\n  writable: true,\n  configurable: true,\n  value: formatToParts$1\n});\n\nfunction CreateDateTimeParts(dateTimeFormat, x) {\n  // 1. If x is not a finite Number, then throw a RangeError exception.\n  if (!isFinite(x)) throw new RangeError('Invalid valid date passed to format');\n\n  var internal = dateTimeFormat.__getInternalProperties(secret); // Creating restore point for properties on the RegExp object... please wait\n\n  /* let regexpRestore = */\n\n\n  createRegExpRestore(); // ###TODO: review this\n  // 2. Let locale be the value of the [[locale]] internal property of dateTimeFormat.\n\n  var locale = internal['[[locale]]']; // 3. Let nf be the result of creating a new NumberFormat object as if by the\n  // expression new Intl.NumberFormat([locale], {useGrouping: false}) where\n  // Intl.NumberFormat is the standard built-in constructor defined in 11.1.3.\n\n  var nf = new Intl.NumberFormat([locale], {\n    useGrouping: false\n  }); // 4. Let nf2 be the result of creating a new NumberFormat object as if by the\n  // expression new Intl.NumberFormat([locale], {minimumIntegerDigits: 2, useGrouping:\n  // false}) where Intl.NumberFormat is the standard built-in constructor defined in\n  // 11.1.3.\n\n  var nf2 = new Intl.NumberFormat([locale], {\n    minimumIntegerDigits: 2,\n    useGrouping: false\n  }); // 5. Let tm be the result of calling the ToLocalTime abstract operation (defined\n  // below) with x, the value of the [[calendar]] internal property of dateTimeFormat,\n  // and the value of the [[timeZone]] internal property of dateTimeFormat.\n\n  var tm = ToLocalTime(x, internal['[[calendar]]'], internal['[[timeZone]]']); // 6. Let result be the value of the [[pattern]] internal property of dateTimeFormat.\n\n  var pattern = internal['[[pattern]]']; // 7.\n\n  var result = new List(); // 8.\n\n  var index = 0; // 9.\n\n  var beginIndex = pattern.indexOf('{'); // 10.\n\n  var endIndex = 0; // Need the locale minus any extensions\n\n  var dataLocale = internal['[[dataLocale]]']; // Need the calendar data from CLDR\n\n  var localeData = internals.DateTimeFormat['[[localeData]]'][dataLocale].calendars;\n  var ca = internal['[[calendar]]']; // 11.\n\n  while (beginIndex !== -1) {\n    var fv = void 0; // a.\n\n    endIndex = pattern.indexOf('}', beginIndex); // b.\n\n    if (endIndex === -1) {\n      throw new Error('Unclosed pattern');\n    } // c.\n\n\n    if (beginIndex > index) {\n      arrPush.call(result, {\n        type: 'literal',\n        value: pattern.substring(index, beginIndex)\n      });\n    } // d.\n\n\n    var p = pattern.substring(beginIndex + 1, endIndex); // e.\n\n    if (dateTimeComponents.hasOwnProperty(p)) {\n      //   i. Let f be the value of the [[<p>]] internal property of dateTimeFormat.\n      var f = internal['[[' + p + ']]']; //  ii. Let v be the value of tm.[[<p>]].\n\n      var v = tm['[[' + p + ']]']; // iii. If p is \"year\" and v ≤ 0, then let v be 1 - v.\n\n      if (p === 'year' && v <= 0) {\n        v = 1 - v;\n      } //  iv. If p is \"month\", then increase v by 1.\n      else if (p === 'month') {\n        v++;\n      } //   v. If p is \"hour\" and the value of the [[hour12]] internal property of\n      //      dateTimeFormat is true, then\n      else if (p === 'hour' && internal['[[hour12]]'] === true) {\n        // 1. Let v be v modulo 12.\n        v = v % 12; // 2. If v is 0 and the value of the [[hourNo0]] internal property of\n        //    dateTimeFormat is true, then let v be 12.\n\n        if (v === 0 && internal['[[hourNo0]]'] === true) {\n          v = 12;\n        }\n      } //  vi. If f is \"numeric\", then\n\n\n      if (f === 'numeric') {\n        // 1. Let fv be the result of calling the FormatNumber abstract operation\n        //    (defined in 11.3.2) with arguments nf and v.\n        fv = FormatNumber(nf, v);\n      } // vii. Else if f is \"2-digit\", then\n      else if (f === '2-digit') {\n        // 1. Let fv be the result of calling the FormatNumber abstract operation\n        //    with arguments nf2 and v.\n        fv = FormatNumber(nf2, v); // 2. If the length of fv is greater than 2, let fv be the substring of fv\n        //    containing the last two characters.\n\n        if (fv.length > 2) {\n          fv = fv.slice(-2);\n        }\n      } // viii. Else if f is \"narrow\", \"short\", or \"long\", then let fv be a String\n      //     value representing f in the desired form; the String value depends upon\n      //     the implementation and the effective locale and calendar of\n      //     dateTimeFormat. If p is \"month\", then the String value may also depend\n      //     on whether dateTimeFormat has a [[day]] internal property. If p is\n      //     \"timeZoneName\", then the String value may also depend on the value of\n      //     the [[inDST]] field of tm.\n      else if (f in dateWidths) {\n        switch (p) {\n          case 'month':\n            fv = resolveDateString(localeData, ca, 'months', f, tm['[[' + p + ']]']);\n            break;\n\n          case 'weekday':\n            try {\n              fv = resolveDateString(localeData, ca, 'days', f, tm['[[' + p + ']]']); // fv = resolveDateString(ca.days, f)[tm['[['+ p +']]']];\n            } catch (e) {\n              throw new Error('Could not find weekday data for locale ' + locale);\n            }\n\n            break;\n\n          case 'timeZoneName':\n            fv = ''; // ###TODO\n\n            break;\n\n          case 'era':\n            try {\n              fv = resolveDateString(localeData, ca, 'eras', f, tm['[[' + p + ']]']);\n            } catch (e) {\n              throw new Error('Could not find era data for locale ' + locale);\n            }\n\n            break;\n\n          default:\n            fv = tm['[[' + p + ']]'];\n        }\n      } // ix\n\n\n      arrPush.call(result, {\n        type: p,\n        value: fv\n      }); // f.\n    } else if (p === 'ampm') {\n      // i.\n      var _v = tm['[[hour]]']; // ii./iii.\n\n      fv = resolveDateString(localeData, ca, 'dayPeriods', _v > 11 ? 'pm' : 'am', null); // iv.\n\n      arrPush.call(result, {\n        type: 'dayPeriod',\n        value: fv\n      }); // g.\n    } else {\n      arrPush.call(result, {\n        type: 'literal',\n        value: pattern.substring(beginIndex, endIndex + 1)\n      });\n    } // h.\n\n\n    index = endIndex + 1; // i.\n\n    beginIndex = pattern.indexOf('{', index);\n  } // 12.\n\n\n  if (endIndex < pattern.length - 1) {\n    arrPush.call(result, {\n      type: 'literal',\n      value: pattern.substr(endIndex + 1)\n    });\n  } // 13.\n\n\n  return result;\n}\n/**\n * When the FormatDateTime abstract operation is called with arguments dateTimeFormat\n * (which must be an object initialized as a DateTimeFormat) and x (which must be a Number\n * value), it returns a String value representing x (interpreted as a time value as\n * specified in ES5, 15.9.1.1) according to the effective locale and the formatting\n * options of dateTimeFormat.\n */\n\n\nfunction FormatDateTime(dateTimeFormat, x) {\n  var parts = CreateDateTimeParts(dateTimeFormat, x);\n  var result = '';\n\n  for (var i = 0; parts.length > i; i++) {\n    var part = parts[i];\n    result += part.value;\n  }\n\n  return result;\n}\n\nfunction FormatToPartsDateTime(dateTimeFormat, x) {\n  var parts = CreateDateTimeParts(dateTimeFormat, x);\n  var result = [];\n\n  for (var i = 0; parts.length > i; i++) {\n    var part = parts[i];\n    result.push({\n      type: part.type,\n      value: part.value\n    });\n  }\n\n  return result;\n}\n/**\n * When the ToLocalTime abstract operation is called with arguments date, calendar, and\n * timeZone, the following steps are taken:\n */\n\n\nfunction ToLocalTime(date, calendar, timeZone) {\n  // 1. Apply calendrical calculations on date for the given calendar and time zone to\n  //    produce weekday, era, year, month, day, hour, minute, second, and inDST values.\n  //    The calculations should use best available information about the specified\n  //    calendar and time zone. If the calendar is \"gregory\", then the calculations must\n  //    match the algorithms specified in ES5, 15.9.1, except that calculations are not\n  //    bound by the restrictions on the use of best available information on time zones\n  //    for local time zone adjustment and daylight saving time adjustment imposed by\n  //    ES5, 15.9.1.7 and 15.9.1.8.\n  // ###TODO###\n  var d = new Date(date),\n      m = 'get' + (timeZone || ''); // 2. Return a Record with fields [[weekday]], [[era]], [[year]], [[month]], [[day]],\n  //    [[hour]], [[minute]], [[second]], and [[inDST]], each with the corresponding\n  //    calculated value.\n\n  return new Record({\n    '[[weekday]]': d[m + 'Day'](),\n    '[[era]]': +(d[m + 'FullYear']() >= 0),\n    '[[year]]': d[m + 'FullYear'](),\n    '[[month]]': d[m + 'Month'](),\n    '[[day]]': d[m + 'Date'](),\n    '[[hour]]': d[m + 'Hours'](),\n    '[[minute]]': d[m + 'Minutes'](),\n    '[[second]]': d[m + 'Seconds'](),\n    '[[inDST]]': false // ###TODO###\n\n  });\n}\n/**\n * The function returns a new object whose properties and attributes are set as if\n * constructed by an object literal assigning to each of the following properties the\n * value of the corresponding internal property of this DateTimeFormat object (see 12.4):\n * locale, calendar, numberingSystem, timeZone, hour12, weekday, era, year, month, day,\n * hour, minute, second, and timeZoneName. Properties whose corresponding internal\n * properties are not present are not assigned.\n */\n\n/* 12.3.3 */\n\n\ndefineProperty(Intl.DateTimeFormat.prototype, 'resolvedOptions', {\n  writable: true,\n  configurable: true,\n  value: function value() {\n    var prop = void 0,\n        descs = new Record(),\n        props = ['locale', 'calendar', 'numberingSystem', 'timeZone', 'hour12', 'weekday', 'era', 'year', 'month', 'day', 'hour', 'minute', 'second', 'timeZoneName'],\n        internal = this !== null && babelHelpers$1[\"typeof\"](this) === 'object' && getInternalProperties(this); // Satisfy test 12.3_b\n\n    if (!internal || !internal['[[initializedDateTimeFormat]]']) throw new TypeError('`this` value for resolvedOptions() is not an initialized Intl.DateTimeFormat object.');\n\n    for (var i = 0, max = props.length; i < max; i++) {\n      if (hop.call(internal, prop = '[[' + props[i] + ']]')) descs[props[i]] = {\n        value: internal[prop],\n        writable: true,\n        configurable: true,\n        enumerable: true\n      };\n    }\n\n    return objCreate({}, descs);\n  }\n});\nvar ls = Intl.__localeSensitiveProtos = {\n  Number: {},\n  Date: {}\n};\n/**\n * When the toLocaleString method is called with optional arguments locales and options,\n * the following steps are taken:\n */\n\n/* 13.2.1 */\n\nls.Number.toLocaleString = function () {\n  // Satisfy test 13.2.1_1\n  if (Object.prototype.toString.call(this) !== '[object Number]') throw new TypeError('`this` value must be a number for Number.prototype.toLocaleString()'); // 1. Let x be this Number value (as defined in ES5, 15.7.4).\n  // 2. If locales is not provided, then let locales be undefined.\n  // 3. If options is not provided, then let options be undefined.\n  // 4. Let numberFormat be the result of creating a new object as if by the\n  //    expression new Intl.NumberFormat(locales, options) where\n  //    Intl.NumberFormat is the standard built-in constructor defined in 11.1.3.\n  // 5. Return the result of calling the FormatNumber abstract operation\n  //    (defined in 11.3.2) with arguments numberFormat and x.\n\n  return FormatNumber(new NumberFormatConstructor(arguments[0], arguments[1]), this);\n};\n/**\n * When the toLocaleString method is called with optional arguments locales and options,\n * the following steps are taken:\n */\n\n/* 13.3.1 */\n\n\nls.Date.toLocaleString = function () {\n  // Satisfy test 13.3.0_1\n  if (Object.prototype.toString.call(this) !== '[object Date]') throw new TypeError('`this` value must be a Date instance for Date.prototype.toLocaleString()'); // 1. Let x be this time value (as defined in ES5, 15.9.5).\n\n  var x = +this; // 2. If x is NaN, then return \"Invalid Date\".\n\n  if (isNaN(x)) return 'Invalid Date'; // 3. If locales is not provided, then let locales be undefined.\n\n  var locales = arguments[0]; // 4. If options is not provided, then let options be undefined.\n\n  var options = arguments[1]; // 5. Let options be the result of calling the ToDateTimeOptions abstract\n  //    operation (defined in 12.1.1) with arguments options, \"any\", and \"all\".\n\n  options = ToDateTimeOptions(options, 'any', 'all'); // 6. Let dateTimeFormat be the result of creating a new object as if by the\n  //    expression new Intl.DateTimeFormat(locales, options) where\n  //    Intl.DateTimeFormat is the standard built-in constructor defined in 12.1.3.\n\n  var dateTimeFormat = new DateTimeFormatConstructor(locales, options); // 7. Return the result of calling the FormatDateTime abstract operation (defined\n  //    in 12.3.2) with arguments dateTimeFormat and x.\n\n  return FormatDateTime(dateTimeFormat, x);\n};\n/**\n * When the toLocaleDateString method is called with optional arguments locales and\n * options, the following steps are taken:\n */\n\n/* 13.3.2 */\n\n\nls.Date.toLocaleDateString = function () {\n  // Satisfy test 13.3.0_1\n  if (Object.prototype.toString.call(this) !== '[object Date]') throw new TypeError('`this` value must be a Date instance for Date.prototype.toLocaleDateString()'); // 1. Let x be this time value (as defined in ES5, 15.9.5).\n\n  var x = +this; // 2. If x is NaN, then return \"Invalid Date\".\n\n  if (isNaN(x)) return 'Invalid Date'; // 3. If locales is not provided, then let locales be undefined.\n\n  var locales = arguments[0],\n      // 4. If options is not provided, then let options be undefined.\n  options = arguments[1]; // 5. Let options be the result of calling the ToDateTimeOptions abstract\n  //    operation (defined in 12.1.1) with arguments options, \"date\", and \"date\".\n\n  options = ToDateTimeOptions(options, 'date', 'date'); // 6. Let dateTimeFormat be the result of creating a new object as if by the\n  //    expression new Intl.DateTimeFormat(locales, options) where\n  //    Intl.DateTimeFormat is the standard built-in constructor defined in 12.1.3.\n\n  var dateTimeFormat = new DateTimeFormatConstructor(locales, options); // 7. Return the result of calling the FormatDateTime abstract operation (defined\n  //    in 12.3.2) with arguments dateTimeFormat and x.\n\n  return FormatDateTime(dateTimeFormat, x);\n};\n/**\n * When the toLocaleTimeString method is called with optional arguments locales and\n * options, the following steps are taken:\n */\n\n/* 13.3.3 */\n\n\nls.Date.toLocaleTimeString = function () {\n  // Satisfy test 13.3.0_1\n  if (Object.prototype.toString.call(this) !== '[object Date]') throw new TypeError('`this` value must be a Date instance for Date.prototype.toLocaleTimeString()'); // 1. Let x be this time value (as defined in ES5, 15.9.5).\n\n  var x = +this; // 2. If x is NaN, then return \"Invalid Date\".\n\n  if (isNaN(x)) return 'Invalid Date'; // 3. If locales is not provided, then let locales be undefined.\n\n  var locales = arguments[0]; // 4. If options is not provided, then let options be undefined.\n\n  var options = arguments[1]; // 5. Let options be the result of calling the ToDateTimeOptions abstract\n  //    operation (defined in 12.1.1) with arguments options, \"time\", and \"time\".\n\n  options = ToDateTimeOptions(options, 'time', 'time'); // 6. Let dateTimeFormat be the result of creating a new object as if by the\n  //    expression new Intl.DateTimeFormat(locales, options) where\n  //    Intl.DateTimeFormat is the standard built-in constructor defined in 12.1.3.\n\n  var dateTimeFormat = new DateTimeFormatConstructor(locales, options); // 7. Return the result of calling the FormatDateTime abstract operation (defined\n  //    in 12.3.2) with arguments dateTimeFormat and x.\n\n  return FormatDateTime(dateTimeFormat, x);\n};\n\ndefineProperty(Intl, '__applyLocaleSensitivePrototypes', {\n  writable: true,\n  configurable: true,\n  value: function value() {\n    defineProperty(Number.prototype, 'toLocaleString', {\n      writable: true,\n      configurable: true,\n      value: ls.Number.toLocaleString\n    }); // Need this here for IE 8, to avoid the _DontEnum_ bug\n\n    defineProperty(Date.prototype, 'toLocaleString', {\n      writable: true,\n      configurable: true,\n      value: ls.Date.toLocaleString\n    });\n\n    for (var k in ls.Date) {\n      if (hop.call(ls.Date, k)) defineProperty(Date.prototype, k, {\n        writable: true,\n        configurable: true,\n        value: ls.Date[k]\n      });\n    }\n  }\n});\n/**\n * Can't really ship a single script with data for hundreds of locales, so we provide\n * this __addLocaleData method as a means for the developer to add the data on an\n * as-needed basis\n */\n\ndefineProperty(Intl, '__addLocaleData', {\n  value: function value(data) {\n    if (!IsStructurallyValidLanguageTag(data.locale)) throw new Error(\"Object passed doesn't identify itself with a valid language tag\");\n    addLocaleData(data, data.locale);\n  }\n});\n\nfunction addLocaleData(data, tag) {\n  // Both NumberFormat and DateTimeFormat require number data, so throw if it isn't present\n  if (!data.number) throw new Error(\"Object passed doesn't contain locale data for Intl.NumberFormat\");\n  var locale = void 0,\n      locales = [tag],\n      parts = tag.split('-'); // Create fallbacks for locale data with scripts, e.g. Latn, Hans, Vaii, etc\n\n  if (parts.length > 2 && parts[1].length === 4) arrPush.call(locales, parts[0] + '-' + parts[2]);\n\n  while (locale = arrShift.call(locales)) {\n    // Add to NumberFormat internal properties as per 11.2.3\n    arrPush.call(internals.NumberFormat['[[availableLocales]]'], locale);\n    internals.NumberFormat['[[localeData]]'][locale] = data.number; // ...and DateTimeFormat internal properties as per 12.2.3\n\n    if (data.date) {\n      data.date.nu = data.number.nu;\n      arrPush.call(internals.DateTimeFormat['[[availableLocales]]'], locale);\n      internals.DateTimeFormat['[[localeData]]'][locale] = data.date;\n    }\n  } // If this is the first set of locale data added, make it the default\n\n\n  if (defaultLocale === undefined) setDefaultLocale(tag);\n}\n\ndefineProperty(Intl, '__disableRegExpRestore', {\n  value: function value() {\n    internals.disableRegExpRestore = true;\n  }\n});\nmodule.exports = Intl;\n\n//# sourceURL=webpack://absol-poser/./node_modules/intl/lib/core.js?");

/***/ }),

/***/ "./node_modules/style-loader/lib/urls.js":
/*!***********************************************!*\
  !*** ./node_modules/style-loader/lib/urls.js ***!
  \***********************************************/
/***/ ((module) => {

"use strict";
eval("\n\n/**\n * When source maps are enabled, `style-loader` uses a link element with a data-uri to\n * embed the css on the page. This breaks all relative urls because now they are relative to a\n * bundle instead of the current page.\n *\n * One solution is to only use full urls, but that may be impossible.\n *\n * Instead, this function \"fixes\" the relative urls to be absolute according to the current page location.\n *\n * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.\n *\n */\nmodule.exports = function (css) {\n  // get current location\n  var location = typeof window !== \"undefined\" && window.location;\n\n  if (!location) {\n    throw new Error(\"fixUrls requires window.location\");\n  } // blank or null?\n\n\n  if (!css || typeof css !== \"string\") {\n    return css;\n  }\n\n  var baseUrl = location.protocol + \"//\" + location.host;\n  var currentDir = baseUrl + location.pathname.replace(/\\/[^\\/]*$/, \"/\"); // convert each url(...)\n\n  /*\n  This regular expression is just a way to recursively match brackets within\n  a string.\n  \t /url\\s*\\(  = Match on the word \"url\" with any whitespace after it and then a parens\n     (  = Start a capturing group\n       (?:  = Start a non-capturing group\n           [^)(]  = Match anything that isn't a parentheses\n           |  = OR\n           \\(  = Match a start parentheses\n               (?:  = Start another non-capturing groups\n                   [^)(]+  = Match anything that isn't a parentheses\n                   |  = OR\n                   \\(  = Match a start parentheses\n                       [^)(]*  = Match anything that isn't a parentheses\n                   \\)  = Match a end parentheses\n               )  = End Group\n               *\\) = Match anything and then a close parens\n           )  = Close non-capturing group\n           *  = Match anything\n        )  = Close capturing group\n   \\)  = Match a close parens\n  \t /gi  = Get all matches, not the first.  Be case insensitive.\n   */\n\n  var fixedCss = css.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi, function (fullMatch, origUrl) {\n    // strip quotes (if they exist)\n    var unquotedOrigUrl = origUrl.trim().replace(/^\"(.*)\"$/, function (o, $1) {\n      return $1;\n    }).replace(/^'(.*)'$/, function (o, $1) {\n      return $1;\n    }); // already a full url? no change\n\n    if (/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/|\\s*$)/i.test(unquotedOrigUrl)) {\n      return fullMatch;\n    } // convert the url to a full url\n\n\n    var newUrl;\n\n    if (unquotedOrigUrl.indexOf(\"//\") === 0) {\n      //TODO: should we add protocol?\n      newUrl = unquotedOrigUrl;\n    } else if (unquotedOrigUrl.indexOf(\"/\") === 0) {\n      // path should be relative to the base url\n      newUrl = baseUrl + unquotedOrigUrl; // already starts with '/'\n    } else {\n      // path should be relative to current directory\n      newUrl = currentDir + unquotedOrigUrl.replace(/^\\.\\//, \"\"); // Strip leading './'\n    } // send back the fixed url(...)\n\n\n    return \"url(\" + JSON.stringify(newUrl) + \")\";\n  }); // send back the fixed css\n\n  return fixedCss;\n};\n\n//# sourceURL=webpack://absol-poser/./node_modules/style-loader/lib/urls.js?");

/***/ }),

/***/ "./utils.js":
/*!******************!*\
  !*** ./utils.js ***!
  \******************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.autoThemeVariable = autoThemeVariable;\nexports.toImageUrl = toImageUrl;\n\nvar _Color = _interopRequireDefault(__webpack_require__(/*! absol/src/Color/Color */ \"./node_modules/absol/src/Color/Color.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/***\r\n *\r\n * @param {string|Blob|File} file\r\n */\nfunction toImageUrl(file) {\n  var url;\n\n  if (file instanceof Blob || file instanceof File) {\n    file.blobUrl = file.url || URL.createObjectURL(file);\n    url = file.blobUrl;\n  } else if (typeof file === \"string\") {\n    url = file;\n  }\n\n  return url;\n}\n\nfunction autoThemeVariable(viewElt) {\n  var cp = getComputedStyle(viewElt);\n  var color = cp.getPropertyValue('--menu-background-color') || cp.getPropertyValue('--variant-color-primary') || 'blue';\n  color = _Color[\"default\"].parse(color.trim());\n  var hsla = color.toHSLA();\n  hsla[2] = (hsla[2] + 1) / 2;\n  hsla[1] = (hsla[1] + 1) / 2;\n  color = _Color[\"default\"].fromHSLA(hsla[0], hsla[1], hsla[2], hsla[3]);\n  viewElt.addStyle('--separator-line-color', color.toString('rgba'));\n}\n\n//# sourceURL=webpack://absol-poser/./utils.js?");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/common.css":
/*!******************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/common.css ***!
  \******************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \":root {\\r\\n    --ap-select-distance: 20px;\\r\\n    --ap-true-anwser-text-length: 100px;\\r\\n    --ap-focus-node-background-color: rgba(185, 235, 20, 0.3);\\r\\n    --ap-focus-block-border-color: rgb(250, 174, 0);\\r\\n}\\r\\n\\r\\n.ap-block {\\r\\n    font-size: 14px;\\r\\n    background-color: white;\\r\\n    border: 1px solid #dadce0;\\r\\n    border-radius: 4px;\\r\\n    padding: 15px 30px 10px 30px;\\r\\n    color: #202124;\\r\\n    box-sizing: border-box;\\r\\n    font: var(--font);\\r\\n}\\r\\n\\r\\n\\r\\n.ap-width-s .ap-block {\\r\\n    padding-left: 10px;\\r\\n    padding-right: 10px;\\r\\n}\\r\\n\\r\\n.ap-field-name {\\r\\n    width: 130px;\\r\\n    display: inline-block;\\r\\n    padding: 5px 0 5px 0;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n\\r\\n.ap-button {\\r\\n    font-size: 14px;\\r\\n    height: var(--icon-fontsize-cover);\\r\\n    width: var(--icon-fontsize-cover);\\r\\n    background-color: transparent;\\r\\n    padding: 0;\\r\\n    vertical-align: middle;\\r\\n    border: none;\\r\\n    border-radius: var(--button-round-coner);\\r\\n    outline: none;\\r\\n}\\r\\n\\r\\n.ap-button:not(:disabled):hover {\\r\\n    background-color: var(--icon-background-cover-hover);\\r\\n}\\r\\n\\r\\n/*.ap-button:not(:disabled):active {*/\\r\\n/*    background-color: rgba(169, 169, 169, 0.2);*/\\r\\n/*}*/\\r\\n\\r\\n.ap-button > span {\\r\\n    font-size: var(--icon-fontsize);\\r\\n}\\r\\n\\r\\n.ap-button > svg {\\r\\n    width: 1.5em;\\r\\n    height: 1.5em;\\r\\n}\\r\\n\\r\\n.ap-button:not(:disabled) > span.mdi-delete-variant {\\r\\n    color: red;\\r\\n}\\r\\n\\r\\n.ap-button:disabled > span {\\r\\n    color: #c4c4c4;\\r\\n}\\r\\n\\r\\n.ap-button:disabled > svg > path {\\r\\n    fill: #c4c4c4;\\r\\n}\\r\\n\\r\\n.ap-input {\\r\\n    padding: var(--as-input-vertical-padding) var(--as-input-horizontal-padding);\\r\\n    border: var(--control-border);\\r\\n    border-radius: var(--button-round-coner);\\r\\n    outline: none;\\r\\n    font-family: inherit;\\r\\n    font-size: inherit;\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.ap-text-input {\\r\\n    font-family: inherit;\\r\\n}\\r\\n\\r\\ninput[type=number].ap-input::-webkit-outer-spin-button,\\r\\ninput[type=number].ap-input::-webkit-inner-spin-button {\\r\\n    -webkit-appearance: none;\\r\\n}\\r\\n\\r\\ninput[type=number].ap-input[readonly] {\\r\\n    background-color: var(--disabled-backgroudcolor);\\r\\n}\\r\\n\\r\\ninput[type=number].ap-input {\\r\\n    -webkit-appearance: none;\\r\\n    -moz-appearance: textfield;\\r\\n    padding-left: var(--as-input-horizontal-padding);\\r\\n    outline: none;\\r\\n    text-align: right;\\r\\n}\\r\\n\\r\\n\\r\\n.ap-input.as-preinput {\\r\\n    min-height: var(--control-height);\\r\\n    box-sizing: border-box;\\r\\n    background-color: white;\\r\\n}\\r\\n\\r\\npre.ap-input {\\r\\n    margin: 0;\\r\\n    white-space: pre-wrap;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-exp-tree.ap-focus > .absol-exp-node {\\r\\n    background-color: var(--ap-focus-node-background-color);\\r\\n}\\r\\n\\r\\n.ap-block.ap-focus {\\r\\n    -webkit-box-shadow: 0 0 0 2px var(--ap-focus-block-border-color);\\r\\n    box-shadow: 0 0 0 3px var(--ap-focus-block-border-color);\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./css/common.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/config_format.css":
/*!*************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/config_format.css ***!
  \*************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \":root {\\r\\n    --body-height: calc(100vh);\\r\\n    --font-size-right-mouse-menu: 14px;\\r\\n    --font-size-label: 14px;\\r\\n    --font: 14px \\\"Helvetica Neue\\\",Helvetica,Arial,sans-serif;\\r\\n    --font-size-title: 14px;\\r\\n    --font-weight-title: bold;\\r\\n    --font-size-table-header: 12px;\\r\\n    --font-weight-table-header: bold;\\r\\n    --control-height: 30px;\\r\\n    --control-verticle-distance-1: 5px;\\r\\n    --control-horizontal-distance-1: 5px;\\r\\n    --control-verticle-distance-2: 10px;\\r\\n    --control-horizontal-distance-2: 10px;\\r\\n    --control-border: 1px solid #d6d6d6;\\r\\n    --control-border-alert: 1px solid red;\\r\\n    --switch-fontsize: 18px;\\r\\n    --footer-margin: 100px;\\r\\n    --fontsize-label-top-control: 12px;\\r\\n\\r\\n    --a-color: #1464f6;\\r\\n\\r\\n    --disabled-backgroudcolor: #ebebe4;\\r\\n\\r\\n    --searchbox-width: 200px;\\r\\n\\r\\n    --button-height: 30px;\\r\\n    --button-min-width: 110px;\\r\\n    --button-round-coner: 3px;\\r\\n    --button-border: 1px solid #c0c0c0;\\r\\n    --button-background-color_1: #ebebeb;\\r\\n    --button-background-color_2: #d6d6d6;\\r\\n    --button-background-color_3: #c9f1fd;\\r\\n    --button-background-color_4: #91e4fb;\\r\\n    --button-title-font-size: 12px;\\r\\n    --button-title-font-weight: bold;\\r\\n\\r\\n    --icon-fontsize: 20px;\\r\\n    --icon-fontsize-cover: 30px;\\r\\n    --icon-background-cover-hover: #91e4fb;\\r\\n    --icon-horizontal-distance: 20px;\\r\\n    --icon-remove-background-cover-hover: red;\\r\\n    --icon-remove-color-hover: white;\\r\\n\\r\\n    --table-title-font-size: 12px;\\r\\n    --table-title-font-weight: bold;\\r\\n    --table-first-row-color: xxx;\\r\\n    --table-odd-row-color: white;\\r\\n    --table-even-row-color: #f7f6f6;\\r\\n    --table-last-row-color: xxx;\\r\\n    --table-row-distance: 10px;\\r\\n    --table-background-color: #f7f6f6;\\r\\n    --table-edit-background-color: xxx;\\r\\n    --table-view-background-color: #f7f6f6;\\r\\n    --table-disable-background-color: xxx;\\r\\n    --table-row-height: 40px;\\r\\n    --table-row-boder-size: 0px;\\r\\n    --table-row-boder-color: xxx;\\r\\n\\r\\n    --tab-padding-top: 20px;\\r\\n    --tab-padding-left: 20px;\\r\\n    --tab-padding-right: 20px;\\r\\n\\r\\n    --chat-bar-col-width: 0px;\\r\\n    --chat-desktop-list-message-width: 360px;\\r\\n    --chat-desktop-gallery: 340px;\\r\\n\\r\\n    --chat-mobile-list-message-width: 100%;\\r\\n    /* menu new theme */\\r\\n    --main-menu-width: unset;\\r\\n    --header-height: 50px;\\r\\n\\r\\n    --menu-background-color: rgb(35, 49, 81);\\r\\n    --menu-background-hover: rgb(18, 25, 41);\\r\\n    --header-background-color: rgb(35, 49, 81);\\r\\n    --tab-button-background-color: rgb(35, 49, 81);\\r\\n    --tab-button-background-color-hover: rgb(59, 77, 121);\\r\\n    --tab-button-font-color-hover: white;\\r\\n    --tab-active-background-color: white;\\r\\n    --tab-active-font-color: rgb(28, 120, 179);\\r\\n    --menu-font-color: rgb(92, 209, 246);\\r\\n    --menu-font-color-hover: white;\\r\\n    --tab-font-color: rgb(92, 209, 246);\\r\\n    --tab-font-color-hover: white;\\r\\n    --logo-background: rgb(18, 25, 41);\\r\\n    --main-menu-item-height: 40px;\\r\\n    --backgroud-image-body: url(https://data.1freewallpapers.com/download/cool-nature.jpg);\\r\\n\\r\\n    --icon-close-table-font-size: 18px;\\r\\n}\\r\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./css/config_format.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/editableanswerctn.css":
/*!*****************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/editableanswerctn.css ***!
  \*****************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".ap-editable-answer-ctn {\\r\\n    background-color: white;\\r\\n    display: block;\\r\\n    position: relative;\\r\\n    padding: 5px calc(var(--control-horizontal-distance-1) + var(--icon-fontsize-cover)) 5px calc(24px + var(--control-horizontal-distance-2));\\r\\n}\\r\\n\\r\\n.ap-editable-answer-ctn.as-board-moving{\\r\\n    transform: none;\\r\\n    box-shadow: 2px 2px 6px 1px rgba(0,0,0,0.75);\\r\\n}\\r\\n\\r\\n.ap-editable-answer-ctn-drag-zone {\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    top: 5px;\\r\\n    bottom: 5px;\\r\\n    white-space: nowrap;\\r\\n    width: 24px;\\r\\n    text-align: center;\\r\\n    cursor: move;\\r\\n    /*opacity: 0;*/\\r\\n}\\r\\n\\r\\n.ap-editable-answer-ctn-drag-zone > i {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    font-size: 24px;\\r\\n}\\r\\n\\r\\n.ap-editable-answer-ctn-drag-zone:before {\\r\\n    content: \\\"\\\";\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n.ap-editable-answer-ctn-remove-bt-ctn{\\r\\n    position: absolute;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    right: 0;\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n.ap-editable-answer-ctn-remove-bt-ctn>button,\\r\\n.ap-editable-answer-ctn-remove-bt-ctn::after{\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.ap-editable-answer-ctn-remove-bt-ctn::after{\\r\\n    content: \\\"\\\";\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./css/editableanswerctn.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/linearscale.css":
/*!***********************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/linearscale.css ***!
  \***********************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".ap-editable-linear-scale-answer-range,\\r\\n.ap-editable-linear-scale-answer-title-min,\\r\\n.ap-editable-linear-scale-answer-title-max {\\r\\n    display: flex;\\r\\n}\\r\\n\\r\\n\\r\\n.ap-editable-linear-scale-answer-title-input-ctn {\\r\\n    flex-grow: 1;\\r\\n}\\r\\n\\r\\n.ap-editable-linear-scale-answer-title-input-ctn > input {\\r\\n    box-sizing: border-box;\\r\\n    width: 100%;\\r\\n}\\r\\n\\r\\n\\r\\n.ap-linear-scale-answer-table {\\r\\n    display: block;\\r\\n    max-width: 100%;\\r\\n    padding-right: 125px;\\r\\n    padding-left: 95px;\\r\\n    text-align: right;\\r\\n}\\r\\n\\r\\n\\r\\n.ap-linear-scale-answer-table-title-ctn-left {\\r\\n    position: absolute;\\r\\n    right: 100%;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    white-space: nowrap;\\r\\n\\r\\n}\\r\\n\\r\\n.ap-linear-scale-answer-table-title-ctn-left >div{\\r\\n    text-align: left;\\r\\n}\\r\\n\\r\\n\\r\\n.ap-linear-scale-answer-table-title-ctn-right {\\r\\n    position: absolute;\\r\\n    left: 100%;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    white-space: nowrap;\\r\\n    text-align: left;\\r\\n}\\r\\n\\r\\n.ap-linear-scale-answer-table-title-ctn-right >div{\\r\\n    text-align: left;\\r\\n}\\r\\n\\r\\n.ap-linear-scale-answer-table-col {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    position: relative;\\r\\n    min-width: 25px;\\r\\n}\\r\\n\\r\\n.ap-linear-scale-answer-table-col > div,\\r\\n.ap-linear-scale-answer-table-title-ctn-left > div {\\r\\n    height: 30px;\\r\\n    display: block;\\r\\n    padding-left: 2px;\\r\\n    padding-right: 2px;\\r\\n}\\r\\n\\r\\n\\r\\n.ap-linear-scale-answer-table-col > div {\\r\\n    text-align: center;\\r\\n}\\r\\n\\r\\n\\r\\n/*.ap-linear-scale-answer {*/\\r\\n/*    display: table;*/\\r\\n/*}*/\\r\\n\\r\\n/*.ap-linear-scale-answer-header,*/\\r\\n/*.ap-linear-scale-answer-select {*/\\r\\n/*    display: table-row;*/\\r\\n/*}*/\\r\\n\\r\\n/*.ap-linear-scale-answer-header > div,*/\\r\\n/*.ap-linear-scale-answer-select > div {*/\\r\\n/*    display: table-cell;*/\\r\\n/*}*/\\r\\n\\r\\n/*.ap-linear-scale-answer-header > div:not(:first-child):not(:last-child),*/\\r\\n/*.ap-linear-scale-answer-select > div:not(:first-child):not(:last-child) {*/\\r\\n/*    padding-bottom: var(--control-verticle-distance-1);*/\\r\\n/*    text-align: center;*/\\r\\n/*}*/\\r\\n\\r\\n/*.ap-linear-scale-answer-header > div:not(:first-child):not(:last-child) span {*/\\r\\n/*    display: inline-block;*/\\r\\n/*    width: 25px;*/\\r\\n/*    text-align: center;*/\\r\\n/*}*/\\r\\n\\r\\n/*.ap-linear-scale-answer-min-title,*/\\r\\n/*.ap-linear-scale-answer-select-label-ctn {*/\\r\\n/*    padding-right: 10px;*/\\r\\n/*    text-align: left;*/\\r\\n/*}*/\\r\\n\\r\\n\\r\\n/*.ap-width-xs .ap-editable-linear-scale-answer-range-input-ctn > * {*/\\r\\n/*    display: block;*/\\r\\n/*    width: 70px;*/\\r\\n/*}*/\\r\\n\\r\\n/*.ap-width-xs .ap-editable-linear-scale-answer-range-input-ctn > *:not(:last-child) {*/\\r\\n/*    margin-bottom: var(--control-verticle-distance-1);*/\\r\\n/*}*/\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./css/linearscale.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/posereditor.css":
/*!***********************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/posereditor.css ***!
  \***********************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".ap-poser-editor {\\r\\n    display: flex;\\r\\n    flex-direction: column;\\r\\n    --ap-tree-editor-width: 390px;\\r\\n    --separator-line-color: darkblue;\\r\\n}\\r\\n\\r\\n.ap-poser-editor-header {\\r\\n    border-bottom: 1px solid #dddddd;\\r\\n}\\r\\n\\r\\n.ap-poser-editor-body {\\r\\n\\r\\n    overflow: hidden;\\r\\n    flex-grow: 1;\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n.ap-poser-editor.ap-open-tree-editor .ap-poser-editor-data {\\r\\n    left: var(--ap-tree-editor-width);\\r\\n}\\r\\n\\r\\n.ap-poser-editor.ap-open-tree-editor button[data-cmd=\\\"edit_tree\\\"] {\\r\\n    color: #1464f6;\\r\\n}\\r\\n\\r\\n.ap-poser-editor-tree-editor-ctn {\\r\\n    position: absolute;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    width: var(--ap-tree-editor-width);\\r\\n    right: 100%;\\r\\n    transition: right 0.2s;\\r\\n}\\r\\n\\r\\n.ap-poser-editor-tree-editor-ctn > .ap-question-tree-editor {\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n.ap-question-tree-editor::after {\\r\\n    content: \\\"\\\";\\r\\n    display: block;\\r\\n    height: 2px;\\r\\n}\\r\\n\\r\\n.ap-poser-editor.ap-open-tree-editor .ap-poser-editor-tree-editor-ctn {\\r\\n    right: calc(100% - var(--ap-tree-editor-width));\\r\\n}\\r\\n\\r\\n.ap-poser-editor-data {\\r\\n    position: relative;\\r\\n    padding: 5px;\\r\\n    background-color: #ede7f6;\\r\\n    left: 0;\\r\\n    transition: left 0.2s;\\r\\n    overflow-y: auto;\\r\\n    overflow-x: hidden;\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.ap-poser-editor-data > .ap-block {\\r\\n    margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.ap-poser-editor-footer {\\r\\n\\r\\n}\\r\\n\\r\\n.ap-poser-editor.ap-width-s {\\r\\n    --ap-tree-editor-width: 100%;\\r\\n}\\r\\n\\r\\n.ap-poser-editor.ap-width-s * {\\r\\n}\\r\\n\\r\\n.ap-poser-editor.ap-without-tool {\\r\\n\\r\\n}\\r\\n\\r\\n\\r\\n.ap-poser-editor.ap-without-scroller {\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n\\r\\n.ap-poser-editor.ap-without-scroller .ap-poser-viewer-body {\\r\\n    flex-grow: unset;\\r\\n}\\r\\n\\r\\n.ap-poser-editor.ap-without-tool .as-form-cmd-tool {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.ap-poser-editor.ap-without-tool .ap-poser-editor-tree-editor-ctn {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n\\r\\n.ap-poser-editor.ap-without-section .ap-editable-section {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n\\r\\n.ap-editable-section .ap-editable-section-tool {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.ap-editable-section,\\r\\n.ap-block.ap-section,\\r\\n.ap-block.ap-question {\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n.ap-editable-section:not(:first-child),\\r\\n.ap-section-group:not(:first-child),\\r\\n.ap-evaluation .ap-section:not(:first-child) {\\r\\n    margin-top: 40px;\\r\\n}\\r\\n\\r\\n\\r\\n.ap-editable-section::before,\\r\\n.ap-block.ap-section::before {\\r\\n    display: inline-block;\\r\\n    content: \\\"\\\";\\r\\n    border-top: 6px solid var(--separator-line-color);\\r\\n    box-sizing: border-box;\\r\\n    position: absolute;\\r\\n    top: 0;\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n    border-radius: 4px 4px 0 0;\\r\\n}\\r\\n\\r\\n.ap-poser-editor:not(.ap-without-section) .ap-editable-question.ap-last-question::after,\\r\\n.ap-evaluation:not(.ap-without-section) .ap-question.ap-last-question::after,\\r\\n.ap-poser-viewer:not(.ap-without-section) .ap-section-group .ap-question:last-child::after {\\r\\n    display: inline-block;\\r\\n    content: \\\"\\\";\\r\\n    border-bottom: 4px solid var(--separator-line-color);\\r\\n    position: absolute;\\r\\n    bottom: 0;\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n    border-radius: 0 0 4px 4px;\\r\\n}\\r\\n\\r\\n\\r\\n.ap-editable-section-idx > input {\\r\\n    margin-right: 25px;\\r\\n}\\r\\n\\r\\n.ap-editable-section[data-idx=\\\"1\\\"] button[data-action=\\\"merge_with_above\\\"] {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.ap-editable-section-header {\\r\\n    display: flex;\\r\\n}\\r\\n\\r\\n.ap-poser-editor button[data-action=\\\"delete\\\"] {\\r\\n    color: red;\\r\\n}\\r\\n\\r\\n\\r\\n.ap-poser-editor.ap-without-section button[data-cmd=\\\"new_section\\\"] {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.ap-poser-editor.ap-read-only button[data-cmd=\\\"delete\\\"],\\r\\n.ap-poser-editor.ap-read-only button[data-cmd=\\\"new_section\\\"],\\r\\n.ap-poser-editor.ap-read-only button[data-cmd=\\\"new_question\\\"] {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.ap-editable-question-tool {\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n.ap-editable-question-tool > * {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.ap-editable-question-tool > div > label {\\r\\n    margin-right: 1em;\\r\\n}\\r\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./css/posereditor.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/poserevaluation.css":
/*!***************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/poserevaluation.css ***!
  \***************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".ap-evaluation > .ap-block:not(:last-child) {\\r\\n    margin-bottom: var(--control-verticle-distance-2);\\r\\n}\\r\\n\\r\\n.ap-evaluation:not(.ap-has-note) > .ap-question-note-ctn,\\r\\n.ap-evaluation.ap-read-only:not(.ap-has-feedback) .ap-question-feedback-ctn {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.ap-question-note-ctn > pre {\\r\\n    font-family: \\\"Helvetica Neue\\\", Arial, Helvetica, sans-serif;\\r\\n    white-space: pre-wrap;\\r\\n}\\r\\n\\r\\n\\r\\n.ap-result-answer, .ap-correct-answer {\\r\\n    /*color: #e20404;*/\\r\\n    position: relative;\\r\\n    z-index: 1;\\r\\n}\\r\\n\\r\\n.ap-result-answer .ap-choice-answer-content-ctn,\\r\\n.ap-correct-answer .ap-choice-answer-content-ctn {\\r\\n    position: relative;\\r\\n    z-index: 3;\\r\\n}\\r\\n\\r\\n.ap-correct-answer::before {\\r\\n    content: \\\"\\\";\\r\\n    display: block;\\r\\n    position: absolute;\\r\\n    left: calc(var(--ap-select-distance) * 2 - 10px);\\r\\n    top: 0;\\r\\n    bottom: 2px;\\r\\n    right: 0;\\r\\n    background: rgb(214, 214, 214);\\r\\n    z-index: 0;\\r\\n    border-radius: 4px;\\r\\n}\\r\\n\\r\\n\\r\\n.ap-evaluation .ap-correct-answer.ap-result-answer::before {\\r\\n    background: rgb(174, 221, 148);\\r\\n}\\r\\n\\r\\n\\r\\n.ap-evaluation .ap-result-answer.ap-correct-answer .ap-choice-answer-select label,\\r\\n.ap-evaluation .ap-result-answer:not(.ap-correct-answer) .ap-choice-answer-select label {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.ap-evaluation .ap-result-answer.ap-correct-answer .ap-choice-answer-select .mdi-check-bold,\\r\\n.ap-evaluation .ap-result-answer:not(.ap-correct-answer) .ap-choice-answer-select .mdi-close-thick {\\r\\n    display: inline-block;\\r\\n}\\r\\n\\r\\n.ap-evaluation .ap-result-answer .mdi-check-bold {\\r\\n    color: rgb(98, 156, 68);\\r\\n}\\r\\n\\r\\n.ap-evaluation .ap-result-answer .mdi-close-thick {\\r\\n    color: rgb(230, 22, 16);\\r\\n}\\r\\n\\r\\n.ap-evaluation .ap-result-answer:not(.ap-correct-answer) {\\r\\n    color: rgb(230, 22, 16);\\r\\n}\\r\\n\\r\\n\\r\\n.ap-evaluation.ap-read-only .ap-question-designed-score .ap-input,\\r\\n.ap-evaluation.ap-read-only .ap-question-evaluated-score .ap-input,\\r\\n.ap-evaluation.ap-read-only .ap-question-note-ctn .ap-input,\\r\\n.ap-evaluation.ap-read-only .ap-question-feedback-ctn .ap-input {\\r\\n    border: none;\\r\\n    background-color: transparent;\\r\\n    padding-top: 0;\\r\\n    padding-bottom: 0;\\r\\n    margin: 0;\\r\\n}\\r\\n\\r\\n.ap-evaluation.ap-read-only .ap-choice-answer-content-ctn.ap-empty {\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n\\r\\n.ap-evaluation.ap-read-only .ap-question-evaluated-score .ap-input {\\r\\n    font-weight: bold;\\r\\n}\\r\\n\\r\\n\\r\\n.ap-evaluation[data-type=\\\"multiple_choice\\\"][data-evaluated-score=\\\"0\\\"] .ap-question-content-ctn,\\r\\n.ap-evaluation[data-type=\\\"multiple_choice\\\"][data-evaluated-score=\\\"0\\\"] .ap-question-description {\\r\\n    color: rgb(230, 22, 16);\\r\\n}\\r\\n\\r\\n\\r\\n.ap-evaluation.ap-without-section .ap-section {\\r\\n    display: none;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./css/poserevaluation.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/poserviewer.css":
/*!***********************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/poserviewer.css ***!
  \***********************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".ap-poser-viewer {\\r\\n    display: flex;\\r\\n}\\r\\n\\r\\n\\r\\n.ap-poser-viewer-body {\\r\\n    overflow-y: auto;\\r\\n    flex-grow: 1;\\r\\n    padding: 5px;\\r\\n    background-color: #ede7f6;\\r\\n}\\r\\n\\r\\n.ap-poser-viewer-body > .ap-section-group:not(:last-child) {\\r\\n    margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n.ap-poser-viewer .ap-block:not(:last-child) {\\r\\n    margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.ap-poser-viewer.ap-without-section .ap-section .ap-section-idx,\\r\\n.ap-poser-editor.ap-without-section .ap-editable-section-idx,\\r\\n.ap-evaluation.ap-without-section .ap-section .ap-section-idx {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n\\r\\n.ap-poser-viewer.ap-without-section .ap-block.ap-section {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.ap-poser-viewer.ap-read-only input,\\r\\n.ap-poser-viewer.ap-read-only  .ap-question-body{\\r\\n    /*pointer-events: none;*/\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./css/poserviewer.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/print.css":
/*!*****************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/print.css ***!
  \*****************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"/*.as-printer{*/\\r\\n/*    z-index: 1000 !important;*/\\r\\n/*    opacity: 1 !important;*/\\r\\n/*    visibility: visible !important;*/\\r\\n/*    pointer-events: all !important;*/\\r\\n/*}*/\\r\\n\\r\\n.as-printer * {\\r\\n    user-select: inherit !important;\\r\\n}\\r\\n\\r\\n.as-printer-content .ap-editable-section-tool,\\r\\n.as-printer-content .ap-editable-question-tool,\\r\\n.as-printer-content .ap-editable-section-image-btn-ctn,\\r\\n.as-printer-content .ap-poser-editor .absol-selectmenu-btn,\\r\\n.as-printer-content .ap-editable-question-image-btn-ctn button,\\r\\n.as-printer-content .ap-editable-image-ctn button,\\r\\n.as-printer-content .ap-editable-answer-ctn-remove-bt-ctn,\\r\\n.as-printer-content .ap-editable-text-answer-btn-ctn,\\r\\n.as-printer-content .ap-editable-answer-ctn-drag-zone,\\r\\n.as-printer-content .ap-more-radio-answer,\\r\\n.as-printer-content .ap-editable-answer-note-ctn.ap-empty-filed,\\r\\n.as-printer-content .ap-editable-question-required-ctn.ap-empty-field,\\r\\n.as-printer-content .ap-editable-question-required,\\r\\n.as-printer-content .ap-poser-editor-header,\\r\\n.as-printer-content .ap-poser-editor-tree-editor-ctn,\\r\\n.as-printer-content .as-message-input-attach-preview-name{\\r\\n    display: none !important;\\r\\n}\\r\\n\\r\\n\\r\\n.as-printer-content .absol-selectmenu {\\r\\n    border: none;\\r\\n}\\r\\n\\r\\n.as-printer-content .as-message-input-attach-preview-image {\\r\\n    border-radius: 10px;\\r\\n}\\r\\n.as-printer-content .ap-poser-editor {\\r\\n    height: auto !important;\\r\\n}\\r\\n\\r\\n.as-printer-content .ap-poser-editor-data {\\r\\n    padding: 0;\\r\\n    overflow: inherit;\\r\\n    width: auto;\\r\\n    height: auto;\\r\\n    background-color: transparent;\\r\\n\\r\\n}\\r\\n\\r\\n.as-printer-content .ap-poser-editor {\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n.as-printer-content .ap-input,\\r\\n.as-printer-content .ap-poser-editor .as-preinput {\\r\\n    border: none !important;\\r\\n    padding-left: 0 !important;\\r\\n    background-color: transparent !important;\\r\\n}\\r\\n\\r\\n.as-printer-content .ap-editable-question-type-input {\\r\\n    font-size: 14px !important;\\r\\n    border: none;\\r\\n}\\r\\n\\r\\n.as-printer-content .ap-block {\\r\\n    display: inline-block;\\r\\n    width: 100%;\\r\\n    position: relative;\\r\\n    page-break-inside: avoid !important;\\r\\n    box-shadow: none !important;\\r\\n    -webkit-box-shadow: none !important;\\r\\n}\\r\\n\\r\\n.as-printer-content .ap-editable-answer-ctn {\\r\\n    padding-right: 0 !important;\\r\\n}\\r\\n\\r\\n.as-printer-content .ap-editable-answer-list-header-true-answer-text,\\r\\n.as-printer-content .ap-editable-text-true-answer-select-ctn {\\r\\n    right: 0;\\r\\n}\\r\\n\\r\\n.as-printer-content .ap-editable-text-answer {\\r\\n    padding-right: var(--ap-true-anwser-text-length)\\r\\n}\\r\\n\\r\\n.as-printer-content .ap-editable-answer-ctn {\\r\\n    padding-left: 0;\\r\\n}\\r\\n\\r\\n\\r\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./css/print.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/question.css":
/*!********************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/question.css ***!
  \********************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".ap-editable-question {\\r\\n    position: relative;\\r\\n    min-height: 50px;\\r\\n\\r\\n}\\r\\n\\r\\n.ap-editable-question div {\\r\\n    font: inherit;\\r\\n}\\r\\n\\r\\n.ap-editable-question-header {\\r\\n    display: flex;\\r\\n    flex-wrap: wrap;\\r\\n    padding-bottom: var(--control-verticle-distance-2);\\r\\n}\\r\\n\\r\\n\\r\\n.ap-editable-question-index {\\r\\n    /*flex-grow: 1;*/\\r\\n    margin-bottom: 10px;\\r\\n    padding-right: 25px;\\r\\n}\\r\\n\\r\\n.ap-editable-question-type {\\r\\n    margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n.ap-editable-question .as-ribbon-button.ap-editable-question-type-input {\\r\\n    background-color: white;\\r\\n}\\r\\n\\r\\n.ap-editable-question-type-input {\\r\\n    height: 30px;\\r\\n    border: 1px solid #d6d6d6;\\r\\n    border-radius: 3px;\\r\\n    width: 240px;\\r\\n    text-align: left;\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n.ap-editable-question-type-input .mdi-chevron-down {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.ap-editable-question-type-input:hover svg.dropdown {\\r\\n    width: 10px;\\r\\n    height: 10px;\\r\\n    fill: black;\\r\\n}\\r\\n\\r\\n\\r\\ninput[type=number].ap-editable-question-index-input {\\r\\n    -webkit-appearance: none;\\r\\n    -moz-appearance: textfield;\\r\\n    width: 60px;\\r\\n    height: 30px;\\r\\n    border: solid 1px #d6d6d6;\\r\\n    background-color: white;\\r\\n    box-sizing: border-box;\\r\\n    border-radius: 3px;\\r\\n    font-size: inherit;\\r\\n    font-family: inherit;\\r\\n    padding-left: var(--as-input-horizontal-padding);\\r\\n    outline: none;\\r\\n}\\r\\n\\r\\n\\r\\n.ap-editable-question-content-ctn,\\r\\n.ap-editable-question-description-ctn {\\r\\n    display: flex;\\r\\n    padding-bottom: var(--control-verticle-distance-2);\\r\\n}\\r\\n\\r\\n\\r\\n.ap-editable-question-description,\\r\\n.ap-editable-question-content {\\r\\n    margin: 0;\\r\\n    font-family: inherit;\\r\\n    font-size: inherit;\\r\\n    flex-grow: 1;\\r\\n    padding: 5px;\\r\\n    border: 1px solid #d6d6d6;\\r\\n    box-sizing: border-box;\\r\\n    outline: none;\\r\\n}\\r\\n\\r\\n.ap-editable-question:not(.ap-has-image) > .ap-editable-image-ctn {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.ap-editable-question.ap-has-image .ap-editable-question-image-btn-ctn {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.ap-editable-question-image-btn-ctn {\\r\\n    padding-left: 130px;\\r\\n}\\r\\n\\r\\n/*.ap-editable-answer-draggable-ctn:hover .ap-editable-answer-ctn-drag-zone {*/\\r\\n/*    opacity: 1;*/\\r\\n/*}*/\\r\\n\\r\\n\\r\\n.ap-editable-image-ctn {\\r\\n    padding: 0 10px 0 var(--as-input-horizontal-padding);\\r\\n}\\r\\n\\r\\n.ap-editable-image-ctn::before {\\r\\n    content: \\\"\\\";\\r\\n    display: block;\\r\\n    border-top: 1px solid #ddd;\\r\\n    height: var(--control-horizontal-distance-1);\\r\\n\\r\\n}\\r\\n\\r\\n.ap-editable-image-ctn > image {\\r\\n    display: inline-block;\\r\\n    vertical-align: top;\\r\\n}\\r\\n\\r\\n.ap-editable-image-remove-btn {\\r\\n    display: inline-block;\\r\\n    vertical-align: top;\\r\\n    position: relative;\\r\\n    border-radius: 50%;\\r\\n    border: none;\\r\\n    color: grey;\\r\\n    font-size: 1.3em;\\r\\n    padding: 0;\\r\\n    left: -0.75em;\\r\\n    top: -0.75em;\\r\\n    width: 1.5em;\\r\\n    height: 1.5em;\\r\\n    background-color: rgb(217, 217, 217);\\r\\n    -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 4px rgba(0, 0, 0, 0.24);\\r\\n    box-shadow: 0 0 2px rgba(0, 0, 0, 0.12), 0 2px 4px rgba(0, 0, 0, 0.24);\\r\\n}\\r\\n\\r\\n\\r\\n.ap-editable-answer-list-header {\\r\\n    position: relative;\\r\\n    height: 2em;\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.ap-width-s .ap-editable-answer-list-header {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.ap-editable-answer-list-header-true-answer-text {\\r\\n    position: absolute;\\r\\n    right: calc(var(--icon-fontsize-cover) * 2 - 5px);\\r\\n    bottom: 0;\\r\\n    width: calc(var(--ap-true-anwser-text-length) + 10px);\\r\\n    text-align: center;\\r\\n}\\r\\n\\r\\n.ap-editable-answer-list {\\r\\n    padding-top: var(--control-verticle-distance-1);\\r\\n    padding-bottom: var(--control-verticle-distance-1);\\r\\n}\\r\\n\\r\\n.ap-editable-answer-note {\\r\\n    min-height: 80px;\\r\\n    max-height: 300px;\\r\\n    overflow-y: auto;\\r\\n}\\r\\n\\r\\n.ap-editable-answer-note-ctn {\\r\\n    padding-bottom: var(--control-verticle-distance-2);\\r\\n}\\r\\n\\r\\n\\r\\n.ap-editable-question-footer {\\r\\n    display: flex;\\r\\n}\\r\\n\\r\\n.ap-editable-question-footer > div:first-child {\\r\\n    flex-grow: 1;\\r\\n}\\r\\n\\r\\n.ap-editable-question-footer > div > * {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.ap-editable-question-footer .ap-button {\\r\\n    margin-right: var(--control-horizontal-distance-2);\\r\\n}\\r\\n\\r\\n.ap-editable-question-footer label {\\r\\n    margin-right: 1.5em;\\r\\n    font-weight: normal;\\r\\n}\\r\\n\\r\\n.ap-editable-question-point {\\r\\n    width: 70px;\\r\\n}\\r\\n\\r\\n\\r\\n.ap-editable-question.ap-editable-question-type-paragraph .ap-editable-question-point-ctn,\\r\\n.ap-editable-question.ap-editable-question-type-short-answer .ap-editable-question-point-ctn,\\r\\n.ap-editable-question.ap-editable-question-type-linear-scale .ap-editable-question-point-ctn {\\r\\n    /*display: none;*//* design change */\\r\\n}\\r\\n\\r\\n.ap-editable-question.ap-editable-question-type-multiple-choice .ap-editable-answer-list-header,\\r\\n.ap-editable-question.ap-editable-question-type-checkboxes .ap-editable-answer-list-header {\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n\\r\\n.ap-question-header {\\r\\n    display: flex;\\r\\n    font-weight: bold;\\r\\n    padding-bottom: var(--control-verticle-distance-2);\\r\\n}\\r\\n\\r\\n.ap-question-idx {\\r\\n    width: 30px;\\r\\n    color: #c0c0c0;\\r\\n}\\r\\n\\r\\n.ap-question-body:not(:last-child) {\\r\\n    padding-bottom: var(--control-verticle-distance-2);\\r\\n}\\r\\n\\r\\n.ap-question-body > * {\\r\\n    width: 100%;\\r\\n}\\r\\n\\r\\n.ap-question-description {\\r\\n    padding-bottom: var(--control-verticle-distance-2);\\r\\n    white-space: pre-wrap;\\r\\n}\\r\\n\\r\\n.ap-question-image-ctn img {\\r\\n    object-fit: contain;\\r\\n    max-width: 100%;\\r\\n    max-height: 50vh;\\r\\n    margin-bottom: var(--control-verticle-distance-1);\\r\\n}\\r\\n\\r\\n.ap-multiple-choice-answer.ap-readonly .ap-choice-answer-select {\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n.ap-paragraph-answer.ap-readonly {\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n.ap-question-score-ctn {\\r\\n    display: flex;\\r\\n}\\r\\n\\r\\n.ap-question-score-ctn > div:first-child {\\r\\n    flex-grow: 1;\\r\\n}\\r\\n\\r\\n.ap-question-score-ctn input {\\r\\n    width: 60px;\\r\\n}\\r\\n\\r\\n.ap-editable-text-answer-content-ctn.ap-input pre {\\r\\n    border: none;\\r\\n    border-radius: initial;\\r\\n}\\r\\n\\r\\n\\r\\n.ap-linear-scale-answer.ap-readonly .absol-radio-button {\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n.ap-editable-question.ap-read-only .ap-editable-answer-ctn .as-board-drag-zone {\\r\\n    visibility: hidden;\\r\\n}\\r\\n\\r\\n.ap-editable-question.ap-read-only .as-message-input-attachment-add-btn,\\r\\n.ap-editable-question.ap-read-only .as-message-input-attach-preview-close-btn {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.ap-editable-question.ap-read-only .ap-editable-question-type-input .absol-selectmenu-btn,\\r\\n.ap-editable-question.ap-read-only .ap-editable-question-footer button,\\r\\n.ap-editable-question.ap-read-only .ap-editable-question-image-btn-ctn,\\r\\n.ap-editable-question.ap-read-only .ap-editable-ad-image-btn,\\r\\n.ap-editable-question.ap-read-only .ap-more-radio-answer-content-ctn span {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.ap-editable-question.ap-read-only .ap-editable-question-type-input,\\r\\n.ap-editable-question.ap-read-only .ap-editable-question-footer .absol-switch,\\r\\n.ap-editable-question.ap-read-only .ape-radio-answer-list {\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n.ap-editable-question-type {\\r\\n    margin-right: 25px;\\r\\n}\\r\\n\\r\\n.ap-editable-question-option-ctn {\\r\\n    flex-grow: 1;\\r\\n}\\r\\n\\r\\n.ap-editable-question-option-ctn > div {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    margin-right: 25px;\\r\\n}\\r\\n\\r\\n.ap-editable-question-option-ctn > div > label:first-child {\\r\\n    margin-right: 0.6em;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./css/question.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/questiontreeeditor.css":
/*!******************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/questiontreeeditor.css ***!
  \******************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".ap-question-tree-editor {\\r\\n    font-size: 14px;\\r\\n    user-select: none;\\r\\n    touch-action: none;\\r\\n    -webkit-user-select: none;\\r\\n    -moz-user-select: none;\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n.ap-question-tree-exp-scroller {\\r\\n    overflow-y: auto;\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n.ap-question-tree-editor .as-exp-group {\\r\\n    width: 100%;\\r\\n}\\r\\n\\r\\n.ap-question-tree-editor {\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n.absol-exp-tree.ap-question-tree-editor-cloned-node {\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    width: 100%;\\r\\n    top: 0;\\r\\n    background-color: white;\\r\\n    box-shadow: 4px 5px 10px 3px rgba(0, 0, 0, 0.5);\\r\\n    -webkit-box-shadow: 4px 5px 10px 3px rgba(0, 0, 0, 0.5);\\r\\n    -moz-box-shadow: 4px 5px 10px 3px rgba(0, 0, 0, 0.5);\\r\\n    opacity: 0.8;\\r\\n}\\r\\n\\r\\n.absol-exp-tree.ap-moving {\\r\\n    opacity: 0.2;\\r\\n}\\r\\n\\r\\n.ap-question-tree-editor{\\r\\n    --new-pos-y: 0px ;\\r\\n}\\r\\n\\r\\n.ap-question-tree-editor .as-exp-group{\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n.ap-question-tree-editor.ap-dragging.ap-changed .as-exp-group::after {\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    top: calc(var(--new-pos-y) - 1px);\\r\\n    width: 100%;\\r\\n    content: \\\"\\\";\\r\\n    display: block;\\r\\n    border-top: 2px solid #1464f6;\\r\\n}\\r\\n\\r\\n\\r\\n/*\\r\\n.ap-question-tree-editor > div {\\r\\n    width: 100%;\\r\\n    overflow-x: hidden;\\r\\n}\\r\\n\\r\\n.ap-question-tree-editor > div > button {\\r\\n    width: 100%;\\r\\n}*/\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./css/questiontreeeditor.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/radioanswer.css":
/*!***********************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/radioanswer.css ***!
  \***********************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".ap-more-radio-answer-content-ctn > a {\\r\\n    padding-left: 40px;\\r\\n    padding-right: 10px;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    line-height: var(--control-height);\\r\\n    color: var(--a-color);\\r\\n    cursor: pointer;\\r\\n}\\r\\n\\r\\n.ap-more-radio-answer-content-ctn > input {\\r\\n    flex-grow: 1;\\r\\n    height: var(--control-height);\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.ap-more-radio-answer-content-ctn {\\r\\n    display: flex;\\r\\n    align-items: center;\\r\\n}\\r\\n\\r\\n.ap-more-radio-answer:not(.ap-has-adding-other) .ap-more-radio-answer-content-ctn > a {\\r\\n    color: #dadce0;\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n.ap-choice-answer {\\r\\n    position: relative;\\r\\n    padding-top: var(--control-verticle-distance-1);\\r\\n    padding-bottom: var(--control-verticle-distance-2);\\r\\n    padding-left: calc(var(--ap-select-distance) * 2);\\r\\n}\\r\\n\\r\\n.ap-choice-answer-select {\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    top: calc(var(--control-verticle-distance-1) - 4px);\\r\\n    bottom: var(--control-verticle-distance-2);\\r\\n}\\r\\n\\r\\n.ap-choice-answer-select::before {\\r\\n    content: \\\"\\\";\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n.ap-choice-answer-select > *,\\r\\n.ap-choice-answer-select::before {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.ap-choice-answer-select .mdi{\\r\\n    font-size: 1.5em;\\r\\n    display: none;\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n.ap-choice-answer-content-ctn {\\r\\n}\\r\\n\\r\\n.ap-choice-answer-content {\\r\\n    white-space: pre-wrap;\\r\\n}\\r\\n\\r\\n.ap-choice-answer-content span{\\r\\n    cursor: default;\\r\\n}\\r\\n\\r\\n.ap-choice-answer-content-ctn.ap-empty .ap-choice-answer-content-placeholder {\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n.ap-choice-answer-content-placeholder {\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    top: 0;\\r\\n    right: 0;\\r\\n    bottom: 0;\\r\\n    padding-left: var(--as-input-horizontal-padding);\\r\\n    color: rgb(127, 127, 127);\\r\\n    pointer-events: none;\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.ap-choice-answer-content-placeholder::before {\\r\\n    content: \\\"\\\";\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n.ap-choice-answer-content-placeholder > *,\\r\\n.ap-choice-answer-content-placeholder::before {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n\\r\\n.ap-choice-answer-image-ctn {\\r\\n    padding-top: var(--control-verticle-distance-1);\\r\\n}\\r\\n\\r\\n.ap-choice-answer-image-ctn > img {\\r\\n    object-fit: contain;\\r\\n    max-width: 100%;\\r\\n    max-height: 50vh;\\r\\n    margin-bottom: var(--control-verticle-distance-1);\\r\\n    margin-right: var(--control-verticle-distance-1);\\r\\n}\\r\\n\\r\\n\\r\\n.ap-choice-answer:not(.ap-has-image) .ap-choice-answer-image-ctn {\\r\\n    display: none;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./css/radioanswer.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/section.css":
/*!*******************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/section.css ***!
  \*******************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".ap-editable-section-idx {\\r\\n    padding-bottom: var(--control-verticle-distance-2);\\r\\n    flex-grow: 1;\\r\\n}\\r\\n\\r\\n.ap-editable-section-content {\\r\\n    position: relative;\\r\\n    padding-right: calc(var(--icon-fontsize-cover) + var(--control-horizontal-distance-2));\\r\\n}\\r\\n\\r\\n.ap-editable-section-image-btn-ctn {\\r\\n    position: absolute;\\r\\n    right: 0;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n.ap-editable-section-image-btn-ctn:before {\\r\\n    content: \\\"\\\";\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n.ap-editable-section-image-btn-ctn > *,\\r\\n.ap-editable-section-image-btn-ctn:before {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.ap-editable-section-name-ctn,\\r\\n.ap-editable-section-description-ctn {\\r\\n    display: flex;\\r\\n    padding-bottom: var(--control-verticle-distance-2);\\r\\n}\\r\\n\\r\\n.ap-editable-section-name,\\r\\n.ap-editable-section-description {\\r\\n    flex-grow: 1;\\r\\n}\\r\\n\\r\\n.ap-editable-section:not(.ap-has-image) .ap-editable-image-ctn {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.ap-editable-section.ap-has-image .ap-editable-section-image-btn-ctn {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.ap-editable-section.ap-has-image .ap-editable-section-content {\\r\\n    padding-right: 0;\\r\\n}\\r\\n\\r\\n\\r\\n.ap-width-s .ap-editable-section-image-btn-ctn {\\r\\n    position: relative;\\r\\n    display: block;\\r\\n    padding-left: 130px;\\r\\n}\\r\\n\\r\\n\\r\\n.ap-section {\\r\\n\\r\\n}\\r\\n\\r\\n.ap-section-header {\\r\\n    display: flex;\\r\\n    font-weight: bold;\\r\\n    font-size: 1.5em;\\r\\n    padding-bottom: var(--control-verticle-distance-2);\\r\\n}\\r\\n\\r\\n.ap-section-idx {\\r\\n    width: 30px;\\r\\n    color: #c0c0c0;\\r\\n}\\r\\n\\r\\n.ap-section-name-ctn {\\r\\n    flex-grow: 1;\\r\\n}\\r\\n\\r\\n.ap-section-description {\\r\\n    white-space: pre-wrap;\\r\\n    padding-bottom: var(--control-verticle-distance-2);\\r\\n}\\r\\n\\r\\n.ap-section-image-ctn > img {\\r\\n    object-fit: contain;\\r\\n    max-width: 100%;\\r\\n    max-height: 50vh;\\r\\n    margin-bottom: var(--control-verticle-distance-1);\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./css/section.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/textanswer.css":
/*!**********************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/textanswer.css ***!
  \**********************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".ap-editable-text-answer {\\r\\n    padding-left: calc(var(--ap-select-distance) * 2);\\r\\n    padding-right: calc(var(--icon-fontsize-cover) + var(--control-horizontal-distance-2) + var(--ap-true-anwser-text-length));\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n.ap-editable-text-answer-content-ctn {\\r\\n    position: relative;\\r\\n    padding-right: calc(var(--icon-fontsize-cover) + var(--control-horizontal-distance-1) * 2);\\r\\n}\\r\\n\\r\\n.ap-input.ap-editable-text-answer {\\r\\n    padding: 0;\\r\\n}\\r\\n\\r\\n.ap-editable-text-answer .as-preinput {\\r\\n    min-height: calc(var(--control-height) - 2px);\\r\\n    box-sizing: border-box;\\r\\n    padding: var(--as-input-vertical-padding) var(--as-input-horizontal-padding);\\r\\n    outline: none;\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n.ap-editable-text-answer-btn-ctn {\\r\\n    position: absolute;\\r\\n    top: 0;\\r\\n    right: var(--control-horizontal-distance-1);\\r\\n    bottom: 0;\\r\\n}\\r\\n\\r\\n\\r\\n.ap-editable-text-answer-btn-ctn::after {\\r\\n    content: \\\"\\\";\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n.ap-editable-text-answer-btn-ctn::after,\\r\\n.ap-editable-text-answer-btn-ctn > button {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n\\r\\n.ap-editable-text-answer:not(.ap-has-image) .ap-editable-image-ctn {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.ap-editable-text-answer.ap-has-image .ap-editable-text-answer-btn-ctn {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.ap-editable-text-answer.ap-has-image .ap-editable-text-answer-content-ctn {\\r\\n    padding-right: var(--as-input-horizontal-padding);\\r\\n}\\r\\n\\r\\n.ap-editable-text-select-ctn {\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    width: calc(var(--ap-select-distance) * 2 - 16px);\\r\\n    white-space: nowrap;\\r\\n    text-align: center;\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n.ap-editable-text-select-ctn::before,\\r\\n.ap-editable-text-true-answer-select-ctn:before {\\r\\n    content: \\\"\\\";\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n.ap-editable-text-true-answer-select-ctn {\\r\\n    position: absolute;\\r\\n    right: var(--icon-fontsize-cover);\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    width: var(--ap-true-anwser-text-length);\\r\\n    text-align: center;\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n\\r\\n.ap-editable-text-select-ctn > *,\\r\\n.ap-editable-text-true-answer-select-ctn > *,\\r\\n.ap-editable-text-select-ctn::before,\\r\\n.ap-editable-text-true-answer-select-ctn:before {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n\\r\\n.ap-width-s .ap-editable-text-true-answer-select-ctn {\\r\\n    display: block;\\r\\n    position: relative;\\r\\n    padding-top: var(--control-verticle-distance-1);\\r\\n    padding-bottom: var(--control-verticle-distance-1);\\r\\n    padding-left: calc(var(--ap-select-distance) * 2);\\r\\n    text-align: left;\\r\\n}\\r\\n\\r\\n.ap-width-s .ap-editable-text-answer {\\r\\n    padding-right: 0;\\r\\n}\\r\\n\\r\\n.ap-editable-text-true-answer-label{\\r\\n    display: none;\\r\\n    cursor: pointer;\\r\\n}\\r\\n\\r\\n.ap-width-s .ap-editable-text-true-answer-label{\\r\\n    display: inline-block;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n.ap-editable-short-text-answer,\\r\\n.ap-editable-long-text-answer {\\r\\n    display: flex;\\r\\n}\\r\\n\\r\\n.ap-editable-short-text-answer-text-field {\\r\\n    flex-grow: 1;\\r\\n    position: relative;\\r\\n    height: 28px;\\r\\n}\\r\\n\\r\\n.ap-editable-short-text-answer-text-field::before,\\r\\n.ap-editable-long-text-answer-text-field > div::before {\\r\\n    content: \\\"\\\";\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n    bottom: 5px;\\r\\n    border-bottom: 1px solid rgb(129, 129, 130);\\r\\n}\\r\\n\\r\\n.ap-editable-long-text-answer-text-field,\\r\\n.ap-editable-linear-scale-answer-range-input-ctn {\\r\\n    flex-grow: 1;\\r\\n}\\r\\n\\r\\n.ap-editable-long-text-answer-text-field > div {\\r\\n    position: relative;\\r\\n    height: 30px;\\r\\n}\\r\\n\\r\\n.ap-editable-linear-scale-answer-range,\\r\\n.ap-editable-linear-scale-answer-title-min {\\r\\n    padding-bottom: var(--control-verticle-distance-2);\\r\\n}\\r\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./css/textanswer.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/autocompleteinput.css":
/*!******************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/autocompleteinput.css ***!
  \******************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-autocomplete-input {\\r\\n    display: inline-block;\\r\\n    position: relative;\\r\\n    box-sizing: border-box;\\r\\n    border: solid 1px #d6d6d6;\\r\\n}\\r\\n\\r\\n.absol-autocomplete-input.absol-disabled {\\r\\n    pointer-events: none;\\r\\n    color: rgb(84, 84, 84);\\r\\n    background-color: rgb(235, 235, 228);\\r\\n}\\r\\n\\r\\n.absol-autocomplete-input>input {\\r\\n    min-width: 100%;\\r\\n    min-height: 100%;\\r\\n    box-sizing: border-box;\\r\\n    background-color: transparent;\\r\\n    border: none;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-autocomplete-input-dropdown {\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    top: 100%;\\r\\n    min-width: 100%;\\r\\n    z-index: 1005;\\r\\n    border: solid 1px rgb(169, 169, 169);\\r\\n    box-sizing: border-box;\\r\\n    background-color: white;\\r\\n}\\r\\n\\r\\n.absol-autocomplete-input-dropdown .as-bscroller{\\r\\n    overflow-y: auto;\\r\\n}\\r\\n\\r\\n.absol-autocomplete-input-dropdown.top {\\r\\n    top: auto;\\r\\n    bottom: 100%;\\r\\n}\\r\\n\\r\\n.absol-autocomplete-input-item {\\r\\n    height: 30px;\\r\\n}\\r\\n\\r\\n.absol-autocomplete-input-item:hover {\\r\\n    background-color: rgba(169, 169, 169, 0.18605);\\r\\n    cursor: pointer;\\r\\n}\\r\\n\\r\\n.absol-autocomplete-input-item.active,\\r\\n.absol-autocomplete-input-item.active:hover {\\r\\n    background-color: rgba(169, 169, 169, 0.37209);\\r\\n}\\r\\n\\r\\n.absol-autocomplete-input-item-text {\\r\\n    line-height: 30px;\\r\\n    margin-left: 5px;\\r\\n    margin-right: 5px;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/autocompleteinput.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/boardtable.css":
/*!***********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/boardtable.css ***!
  \***********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-has-board-table-drag,\\r\\n.as-has-board-table-drag * {\\r\\n    cursor: grabbing;\\r\\n    -webkit-user-select: none !important;\\r\\n    -moz-user-select: none !important;\\r\\n    -ms-user-select: none !important;\\r\\n    user-select: none !important;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n.as-board-table {\\r\\n    overflow: visible;\\r\\n    position: relative;\\r\\n\\r\\n}\\r\\n\\r\\n.as-board-drag-zone {\\r\\n    -webkit-user-select: none !important;\\r\\n    -moz-user-select: none !important;\\r\\n    -ms-user-select: none !important;\\r\\n    user-select: none !important;\\r\\n}\\r\\n\\r\\n\\r\\n.as-board {\\r\\n    white-space: normal;\\r\\n    box-sizing: border-box;\\r\\n    position: relative;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n/**\\r\\nBug note: don't put fixed position element to a element which has transform\\r\\n */\\r\\n.as-board-moving {\\r\\n    transform-origin: 30% 55%;\\r\\n    transform: rotate(5deg);\\r\\n    transition: transform 0.05s;\\r\\n    user-select: none;\\r\\n    pointer-events: none;\\r\\n    position: fixed !important;\\r\\n    z-index: 2000;\\r\\n}\\r\\n\\r\\n\\r\\n.as-board-place-holder {\\r\\n    opacity: 0.3;\\r\\n}\\r\\n\\r\\n.as-board-table-prevent-context {\\r\\n    position: fixed;\\r\\n    --x: -10000px;\\r\\n    --y: -10000px;\\r\\n    left: calc(var(--x) - 100px);\\r\\n    top: calc(var(--y) - 100px);\\r\\n    opacity: 0;\\r\\n    z-index: 100000000;\\r\\n    width: 200px;\\r\\n    height: 200px;\\r\\n    cursor: default;\\r\\n    -webkit-user-select: none;\\r\\n    -webkit-touch-callout: none;\\r\\n    -khtml-user-select: none;\\r\\n    -moz-user-select: none;\\r\\n    -ms-user-select: none;\\r\\n    -o-user-select: none;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/boardtable.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/bscroller.css":
/*!**********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/bscroller.css ***!
  \**********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"/* OLD module */\\r\\n\\r\\n.absol-bscroller {\\r\\n    scrollbar-width: thin;\\r\\n    scrollbar-color: rgba(151, 151, 151, 0.4) rgba(220, 220, 220, 0.4);\\r\\n    overflow: auto;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-bscroller::-webkit-scrollbar {\\r\\n    width: 6px;\\r\\n    height: 6px;\\r\\n}\\r\\n\\r\\n.absol-bscroller::-webkit-scrollbar-track {\\r\\n    background: rgba(220, 220, 220, 0.4);\\r\\n}\\r\\n\\r\\n.absol-bscroller::-webkit-scrollbar-thumb {\\r\\n    background: rgba(182, 182, 182, 0.4);\\r\\n}\\r\\n\\r\\n.absol-bscroller::-webkit-scrollbar-thumb:hover {\\r\\n    background: rgba(32, 32, 32, 0.4);\\r\\n}\\r\\n\\r\\n.absol-bscroller::-webkit-scrollbar-thumb:active {\\r\\n    background: rgba(13, 13, 13, 0.6);\\r\\n}\\r\\n\\r\\n.absol-bscroller.dark,\\r\\n.dark .absol-bscroller {\\r\\n    scrollbar-color: rgba(104, 104, 104, 0.4) rgba(35, 35, 35, 0.4);\\r\\n}\\r\\n\\r\\n\\r\\n.absol-bscroller.dark::-webkit-scrollbar-track,\\r\\n.dark .absol-bscroller::-webkit-scrollbar-track {\\r\\n    background: rgba(35, 35, 35, 0.4);\\r\\n}\\r\\n\\r\\n.absol-bscroller.dark::-webkit-scrollbar-thumb,\\r\\n.dark .absol-bscroller::-webkit-scrollbar-thumb {\\r\\n    background: rgba(73, 73, 73, 0.4);\\r\\n}\\r\\n\\r\\n.absol-bscroller.dark::-webkit-scrollbar-thumb:hover,\\r\\n.dark .absol-bscroller::-webkit-scrollbar-thumb:hover {\\r\\n    background: rgba(223, 223, 223, 0.4);\\r\\n}\\r\\n\\r\\n.absol-bscroller.dark::-webkit-scrollbar-thumb:active,\\r\\n.dark .absol-bscroller::-webkit-scrollbar-thumb:active {\\r\\n    background: rgba(242, 242, 242, 0.6);\\r\\n}\\r\\n\\r\\n/*******************************************/\\r\\n.as-bscroller {\\r\\n    scrollbar-width: thin;\\r\\n    scrollbar-color: rgba(151, 151, 151, 0.4) rgba(220, 220, 220, 0.4);\\r\\n}\\r\\n\\r\\n\\r\\n.as-bscroller::-webkit-scrollbar {\\r\\n    width: 6px;\\r\\n    height: 6px;\\r\\n}\\r\\n\\r\\n.as-bscroller::-webkit-scrollbar-track {\\r\\n    background: rgba(220, 220, 220, 0.4);\\r\\n}\\r\\n\\r\\n.as-bscroller::-webkit-scrollbar-thumb {\\r\\n    background: rgba(182, 182, 182, 0.4);\\r\\n}\\r\\n\\r\\n.as-bscroller::-webkit-scrollbar-thumb:hover {\\r\\n    background: rgba(32, 32, 32, 0.4);\\r\\n}\\r\\n\\r\\n.as-bscroller::-webkit-scrollbar-thumb:active {\\r\\n    background: rgba(13, 13, 13, 0.6);\\r\\n}\\r\\n\\r\\n.as-bscroller.dark,\\r\\n.dark .as-bscroller,\\r\\n.as-dark .as-bscroller,\\r\\n.as-dark.as-bscroller\\r\\n{\\r\\n    scrollbar-color: rgba(104, 104, 104, 0.4) rgba(150, 150, 150, 0.4);\\r\\n}\\r\\n\\r\\n\\r\\n.as-bscroller.dark::-webkit-scrollbar-track,\\r\\n.dark .as-bscroller::-webkit-scrollbar-track,\\r\\n.as-dark .as-bscroller::-webkit-scrollbar-track,\\r\\n.as-dark.as-bscroller::-webkit-scrollbar-track\\r\\n{\\r\\n    background: rgba(150, 150, 150, 0.4);\\r\\n}\\r\\n\\r\\n.as-bscroller.dark::-webkit-scrollbar-thumb,\\r\\n.dark .as-bscroller::-webkit-scrollbar-thumb,\\r\\n.as-dark .as-bscroller::-webkit-scrollbar-thumb,\\r\\n.as-dark.as-bscroller::-webkit-scrollbar-thumb\\r\\n{\\r\\n    background: rgba(104, 104, 104, 0.4);\\r\\n}\\r\\n\\r\\n.as-bscroller.dark::-webkit-scrollbar-thumb:hover,\\r\\n.dark .as-bscroller::-webkit-scrollbar-thumb:hover,\\r\\n.as-dark .as-bscroller::-webkit-scrollbar-thumb:hover,\\r\\n.as-dark.as-bscroller::-webkit-scrollbar-thumb:hover\\r\\n{\\r\\n    background: rgba(223, 223, 223, 0.4);\\r\\n}\\r\\n\\r\\n.as-bscroller.dark::-webkit-scrollbar-thumb:active,\\r\\n.dark .as-bscroller::-webkit-scrollbar-thumb:active,\\r\\n.as-dark .as-bscroller::-webkit-scrollbar-thumb:active,\\r\\n.as-dark.as-bscroller::-webkit-scrollbar-thumb:active\\r\\n{\\r\\n    background: rgba(242, 242, 242, 0.6);\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/bscroller.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/buttonarray.css":
/*!************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/buttonarray.css ***!
  \************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-button-array {\\r\\n    font-size: 1rem;\\r\\n    border: 1px solid #006ce5;\\r\\n    display: inline-block;\\r\\n    border-radius: 0.2em;\\r\\n    overflow: hidden;\\r\\n}\\r\\n\\r\\n.as-button-array-item {\\r\\n    text-align: center;\\r\\n    font-size: inherit;\\r\\n    height: 2em;\\r\\n    border: none;\\r\\n    box-sizing: border-box;\\r\\n    padding-left: 0.35714em;\\r\\n    padding-right: 0.35714em;\\r\\n    outline: none;\\r\\n    color: #006ce5;\\r\\n    background-color: white;\\r\\n    border-radius: 0;\\r\\n    transition: background-color 0.1s, color 0.1s;\\r\\n    margin: 0;\\r\\n}\\r\\n\\r\\n.as-button-array-item:not(:first-child) {\\r\\n    border-left: 1px solid #006ce5;\\r\\n    border-right: none;\\r\\n}\\r\\n\\r\\n\\r\\n.as-button-array-item.as-active {\\r\\n    color: white;\\r\\n    background-color: #006ce5;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/buttonarray.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/buttonrange.css":
/*!************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/buttonrange.css ***!
  \************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-button-range-wrapper {\\r\\n    border-top: 1px solid rgb(209, 209, 213);\\r\\n    border-bottom: 1px solid rgb(209, 209, 213);\\r\\n}\\r\\n\\r\\n.as-button-range {\\r\\n    position: relative;\\r\\n    overflow-y: hidden;\\r\\n    height: var(--height);\\r\\n    box-sizing: border-box;\\r\\n    font-family: Arial, Helvetica, sans-serif;\\r\\n    --underline-left: 0;\\r\\n    --underline-width: 0;\\r\\n    --height: 2em;\\r\\n}\\r\\n\\r\\n.as-button-range-scroller {\\r\\n    font-size: inherit;\\r\\n    height: calc(var(--height) + 17px);\\r\\n    box-sizing: border-box;\\r\\n    overflow-x: scroll;\\r\\n    position: absolute;\\r\\n    top: 0;\\r\\n    left: 0.5em;\\r\\n    right: 0.5em;\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n.as-button-range-scroller::after {\\r\\n    content: \\\"\\\";\\r\\n    position: absolute;\\r\\n    left: var(--underline-left);\\r\\n    width: var(--underline-width);\\r\\n    height: 0.2em;\\r\\n    top: calc(var(--height) - 0.2em);\\r\\n    background-color: rgb(0, 106, 255);\\r\\n    transition: left 0.2s, width 0.2s;\\r\\n}\\r\\n\\r\\n.as-button-range-left-ctn,\\r\\n.as-button-range-right-ctn {\\r\\n    position: absolute;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n}\\r\\n\\r\\n.as-button-range-right-ctn::after,\\r\\n.as-button-range-left-ctn::before {\\r\\n    content: \\\"\\\";\\r\\n    height: 100%;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.as-button-range-left-ctn {\\r\\n    left: 0;\\r\\n}\\r\\n\\r\\n.as-button-range-right-ctn {\\r\\n    right: 0;\\r\\n}\\r\\n\\r\\n.as-button-range-right-btn,\\r\\n.as-button-range-left-btn {\\r\\n    font-size: inherit;\\r\\n    padding: 0;\\r\\n    margin: 0;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    border: none;\\r\\n    outline: none;\\r\\n    color: rgb(0, 106, 266);\\r\\n    background-color: rgba(255, 255, 255, 0.5);\\r\\n    border-radius: 0.5em;\\r\\n    overflow: hidden;\\r\\n}\\r\\n\\r\\n.as-button-range-left-btn {\\r\\n    -webkit-box-shadow: 1em 2px 1.5em -1em rgba(255, 255, 255, 0.62);\\r\\n    -moz-box-shadow: 1em 2px 1.5em -1em rgba(255, 255, 255, 0.62);\\r\\n    box-shadow: 1em 2px 1.5em -1em rgba(255, 255, 255, 0.62);\\r\\n}\\r\\n\\r\\n.as-button-range-right-btn {\\r\\n    -webkit-box-shadow: -1em 2px 1.5em -1em rgba(255, 255, 255, 0.62);\\r\\n    -moz-box-shadow: -1em 2px 1.5em -1em rgba(255, 255, 255, 0.62);\\r\\n    box-shadow: -1em 2px 1.5em -1em rgba(255, 255, 255, 0.62);\\r\\n}\\r\\n\\r\\n.as-button-range-right-btn polygon,\\r\\n.as-button-range-left-btn polygon {\\r\\n    fill: #2488FF;\\r\\n}\\r\\n\\r\\n.as-button-range-right-btn:disabled,\\r\\n.as-button-range-left-btn:disabled {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-button-range-left-btn > svg,\\r\\n.as-button-range-right-btn > svg {\\r\\n    width: 1.25em;\\r\\n    height: 1.25em;\\r\\n    margin-left: -0.25em;\\r\\n    margin-right: -0.25em;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n\\r\\n.as-button-range-item {\\r\\n    outline: none;\\r\\n    font-size: inherit;\\r\\n    padding: 0 0.5em;\\r\\n    margin: 0;\\r\\n    height: var(--height);\\r\\n    border: none;\\r\\n    background-color: transparent;\\r\\n    color: black;\\r\\n}\\r\\n\\r\\n.as-button-range-item.as-active {\\r\\n    color: rgb(87, 157, 255);\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/buttonrange.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/calendarinput.css":
/*!**************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/calendarinput.css ***!
  \**************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-calendar-input {\\r\\n    font-size: 1rem;\\r\\n    font-family: Arial, Helvetica, sans-serif;\\r\\n    width: 7em;\\r\\n    height: 2em;\\r\\n    box-sizing: content-box;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    border: solid 1px #d6d6d6;\\r\\n    border-radius: 0.2em;\\r\\n}\\r\\n\\r\\n.absol-calendar-input.as-border-none {\\r\\n    border: none;\\r\\n}\\r\\n\\r\\n.absol-calendar-input.as-border-none > input {\\r\\n    text-align: left;\\r\\n    padding-left: 0;\\r\\n}\\r\\n\\r\\n.absol-calendar-input > input {\\r\\n    text-align: center;\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n    outline: none;\\r\\n    border: none;\\r\\n    background: transparent;\\r\\n    padding: 0;\\r\\n    font: inherit;\\r\\n}\\r\\n\\r\\n.absol-calendar-input:not(.as-read-only) input {\\r\\n    cursor: pointer;\\r\\n}\\r\\n\\r\\n.absol-calendar-input:not(.as-read-only) > input:hover,\\r\\n.absol-calendar-input:not(.as-read-only) > input:focus {\\r\\n    color: red;\\r\\n}\\r\\n\\r\\n.absol-calendar-input.absol-disabled {\\r\\n    pointer-events: none;\\r\\n    background-color: var(--as-disabled-background-color);\\r\\n}\\r\\n\\r\\n.absol-calendar-input.absol-disabled input {\\r\\n    color: var(--as-disabled-text-color);\\r\\n}\\r\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/calendarinput.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/checkbox.css":
/*!*********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/checkbox.css ***!
  \*********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"/** align middle in table cell **/\\r\\n.KPIsimpletableclass td > .absol-checkbox:first-child:last-child,\\r\\n.KPIsimpletableclass td > .absol-checkbox.as-no-label:first-child:last-child .as-checkbox-input {\\r\\n    display: block;\\r\\n    margin: auto;\\r\\n}\\r\\n\\r\\n.cardsimpletableclass > table > tbody > tr > td > .absol-checkbox:first-child:last-child {\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n.absol-checkbox {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    line-height: 16px;\\r\\n}\\r\\n\\r\\n.absol-checkbox:not(.as-read-only):not(.as-disabled) {\\r\\n    cursor: pointer;\\r\\n    user-select: none;\\r\\n}\\r\\n\\r\\n.absol-checkbox.right > .absol-checkbox-label.as-right {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-checkbox:not(.right) > .absol-checkbox-label.as-left {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.absol-checkbox-label {\\r\\n    vertical-align: middle;\\r\\n    display: inline-block;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-checkbox-label.as-left {\\r\\n    padding-right: 0.3em;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-checkbox-label.as-right {\\r\\n    padding-left: 0.3em;\\r\\n}\\r\\n\\r\\n.absol-checkbox.as-no-label {\\r\\n    width: calc(1em + 2px);\\r\\n    height: calc(1em + 2px);\\r\\n}\\r\\n\\r\\n\\r\\n.absol-checkbox.as-no-label .absol-checkbox-label {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.absol-checkbox.as-no-label .as-checkbox-input {\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n.absol-checkbox.as-disabled .absol-checkbox-label {\\r\\n    color: var(--as-disabled-text-color);\\r\\n}\\r\\n\\r\\n\\r\\n.absol-checkbox.as-wrap-text {\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n.absol-checkbox.as-wrap-text .absol-checkbox-label {\\r\\n    white-space: normal;\\r\\n}\\r\\n\\r\\n.absol-checkbox.as-wrap-text > * {\\r\\n    vertical-align: top;\\r\\n}\\r\\n\\r\\n.absol-checkbox.as-wrap-text .absol-checkbox-label {\\r\\n    max-width: calc(100% - 24px);\\r\\n}\\r\\n\\r\\n.absol-checkbox.as-read-only .as-checkbox-input {\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n.absol-checkbox.as-read-only.as-border-none .bound {\\r\\n    display: none;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/checkbox.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/checkboxbutton.css":
/*!***************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/checkboxbutton.css ***!
  \***************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-checkbox-button{\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.as-checkbox-button .absol-checkbox-icon{\\r\\n    display: block;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/checkboxbutton.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/checkboxinput.css":
/*!**************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/checkboxinput.css ***!
  \**************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \":root {\\r\\n    --candy-border-color: #929292;\\r\\n    --candy-hover-background-color: #eeeee9;\\r\\n    --candy-disabled-background-color: #ebebe4;\\r\\n}\\r\\n\\r\\nlabel.as-checkbox-input {\\r\\n    display: inline-block;\\r\\n    position: relative;\\r\\n    width: calc(1em + 2px);\\r\\n    height: calc(1em + 2px);\\r\\n    font-size: inherit;\\r\\n    box-sizing: border-box;\\r\\n    vertical-align: middle;\\r\\n    border-radius: 0.25em;\\r\\n    padding: 0;\\r\\n    margin: 0; /*fix boostrap override*/\\r\\n}\\r\\n\\r\\n.as-checkbox-input:not(.as-read-only):not(.as-disabled){\\r\\n    cursor: pointer;\\r\\n}\\r\\n\\r\\n\\r\\nlabel.as-checkbox-input:hover:not(.as-read-only) .bound,\\r\\n.absol-checkbox:hover:not(.as-read-only) .bound {\\r\\n    fill: var(--candy-hover-background-color);\\r\\n}\\r\\n\\r\\n.as-checkbox-input .tick,\\r\\n.as-checkbox-input .minus {\\r\\n    fill: #606060;\\r\\n}\\r\\n\\r\\n\\r\\n.as-checkbox-input input.as-checkbox-input-value {\\r\\n    font-size: inherit;\\r\\n    position: absolute;\\r\\n    right: 100%;\\r\\n    top: 0;\\r\\n    opacity: 0.0;\\r\\n    z-index: -100000000000;\\r\\n}\\r\\n\\r\\ninput.as-checkbox-input-value:not(:checked) ~ svg .tick {\\r\\n    opacity: 0;\\r\\n}\\r\\n\\r\\n.as-checkbox-input.as-has-minus .minus {\\r\\n    opacity: 1;\\r\\n}\\r\\n\\r\\n.as-checkbox-input .minus,\\r\\ninput.as-checkbox-input-value:checked ~ svg .minus {\\r\\n    opacity: 0;\\r\\n}\\r\\n\\r\\n\\r\\nlabel.as-checkbox-input .bound {\\r\\n    stroke: var(--candy-border-color);\\r\\n    fill: white;\\r\\n}\\r\\n\\r\\nlabel.as-checkbox-input .tick {\\r\\n    opacity: 1;\\r\\n    transition: opacity 0.1s;\\r\\n}\\r\\n\\r\\nlabel.as-checkbox-input .minus {\\r\\n    transition: opacity 0.1s;\\r\\n}\\r\\n\\r\\nlabel.as-checkbox-input.as-disabled > svg .bound,\\r\\nlabel.as-checkbox-input.as-disabled:hover > svg .bound {\\r\\n    stroke: #929292;\\r\\n    fill: #ebebe4;\\r\\n}\\r\\n\\r\\n\\r\\n.as-checkbox-input > svg {\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n.as-checkbox-input.as-read-only.as-border-none .bound{\\r\\n    display: none;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/checkboxinput.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/checklistbox.css":
/*!*************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/checklistbox.css ***!
  \*************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-check-list-box.as-select-list-box {\\r\\n    width: calc(var(--select-list-estimate-width) + 2px + 5px + 23px + 7px);\\r\\n}\\r\\n\\r\\n.as-check-list-box.as-select-list-box.as-enable-search .as-select-list-box-scroller {\\r\\n    max-height: calc(var(--max-height) - 2em - 10px - 2em - 1px);\\r\\n}\\r\\n\\r\\n.as-check-list-box.as-select-list-box .as-select-list-box-scroller {\\r\\n    max-height: calc(var(--max-height) - 2em - 1px);\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/checklistbox.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/checklistitem.css":
/*!**************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/checklistitem.css ***!
  \**************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-check-list-item {\\r\\n    padding-left: 0.35em;\\r\\n    height: calc(30rem / 14);\\r\\n    user-select: none;\\r\\n    -webkit-user-select: none;\\r\\n    -moz-user-select: none;\\r\\n}\\r\\n\\r\\n.as-check-list-item-checkbox {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.as-check-list-item-checkbox .as-checkbox-input-check-icon{\\r\\n    display: block;\\r\\n\\r\\n}\\r\\n\\r\\n.absol-selectlist-item.as-check-list-item > span {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    line-height: calc(30rem / 14);\\r\\n}\\r\\n\\r\\n.absol-selectlist-item.as-check-list-item .absol-selectlist-item-desc {\\r\\n    line-height: calc(25rem / 14);\\r\\n}\\r\\n\\r\\n.as-check-list-item.as-no-select .as-check-list-item-checkbox {\\r\\n    visibility: hidden;\\r\\n}\\r\\n\\r\\n.as-check-list-item.as-no-select {\\r\\n    pointer-events: none;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/checklistitem.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/checktreebox.css":
/*!*************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/checktreebox.css ***!
  \*************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-select-list-box-page > .as-check-tree-item {\\r\\n    width: 100%;\\r\\n}\\r\\n\\r\\n.as-check-tree-box {\\r\\n    min-width: 18em;\\r\\n}\\r\\n\\r\\n.as-check-tree-box.as-no-transition label.as-checkbox-input .minus,\\r\\n.as-check-tree-box.as-no-transition label.as-checkbox-input .tick {\\r\\n    transition: none;\\r\\n}\\r\\n\\r\\n\\r\\n.as-check-tree-box.as-select-list-box.as-enable-search .as-select-list-box-scroller {\\r\\n    max-height: calc(var(--max-height) - 2em - 10px - 2em - 1px);\\r\\n}\\r\\n\\r\\n.as-check-tree-box.as-select-list-box .as-select-list-box-scroller {\\r\\n    max-height: calc(var(--max-height) - 2em - 1px);\\r\\n}\\r\\n\\r\\n/***********************************************************************************************************************/\\r\\n\\r\\n.am-check-tree-box .as-dropdown-box-footer {\\r\\n    min-width: 18em;\\r\\n}\\r\\n\\r\\n.am-check-tree-box-list {\\r\\n    --text-width: 100%;\\r\\n    --desc-width: 0;\\r\\n}\\r\\n\\r\\n.am-check-tree-box:not(.as-enable-search) .absol-search-text-input {\\r\\n    visibility: hidden;\\r\\n    opacity: 0;\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n.am-check-tree-box.as-has-desc {\\r\\n    --text-width: 50%;\\r\\n    --desc-width: 50%;\\r\\n}\\r\\n\\r\\n\\r\\n.am-check-tree-box-body {\\r\\n    overflow-y: auto;\\r\\n    max-height: calc(80vh - 2em);\\r\\n}\\r\\n\\r\\n.am-check-tree-box.as-enable-search .am-check-tree-box-body {\\r\\n    max-height: calc(80vh - 4em - 10px);\\r\\n}\\r\\n\\r\\n.am-check-tree-item {\\r\\n    display: block;\\r\\n    white-space: nowrap;\\r\\n    position: relative;\\r\\n    width: 100%;\\r\\n    overflow: hidden;\\r\\n    --level: 0;\\r\\n    --icon-width: 0px;\\r\\n}\\r\\n\\r\\n\\r\\n.am-check-tree-item.as-has-icon {\\r\\n    --icon-width: 2.7em;\\r\\n}\\r\\n\\r\\n\\r\\n.am-check-tree-item-toggle-ctn,\\r\\n.am-check-tree-item-icon-ctn,\\r\\n.am-check-tree-item-checkbox-ctn {\\r\\n    position: absolute;\\r\\n    white-space: nowrap;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n}\\r\\n\\r\\n.am-check-tree-item-toggle-ctn {\\r\\n    left: calc(2em * var(--level) + 0.2em);\\r\\n    width: 1.5em;\\r\\n    text-align: center;\\r\\n}\\r\\n\\r\\n.am-check-tree-item-toggle-ctn > svg {\\r\\n    width: 0.7em;\\r\\n    height: 0.7em;\\r\\n}\\r\\n\\r\\n\\r\\n.am-check-tree-item-icon-ctn {\\r\\n    left: calc(2em * var(--level) + 3.2em);\\r\\n}\\r\\n\\r\\n.am-check-tree-item-checkbox-ctn {\\r\\n    left: calc(2em * var(--level) + 1.7em)\\r\\n}\\r\\n\\r\\n.am-check-tree-item-icon-ctn > svg {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n\\r\\n}\\r\\n\\r\\n\\r\\n.am-check-tree-item.as-status-open svg .toggle-close,\\r\\n.am-check-tree-item.as-status-close svg .toggle-open,\\r\\n.am-check-tree-item:not(.as-status-close):not(.as-status-open) .am-check-tree-item-toggle-ctn {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.am-check-tree-item-icon-ctn::before,\\r\\n.am-check-tree-item-toggle-ctn::before,\\r\\n.am-check-tree-item-checkbox-ctn::before {\\r\\n    content: \\\"\\\";\\r\\n    height: 100%;\\r\\n    vertical-align: middle;\\r\\n    display: inline-block;\\r\\n}\\r\\n\\r\\n.am-check-tree-item-icon-ctn:empty {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.am-check-tree-item-icon-ctn > span {\\r\\n    font-size: 1.8em;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n\\r\\n.am-check-tree-item-icon-ctn img,\\r\\n.am-check-tree-item-icon-ctn svg {\\r\\n    width: 1.8em;\\r\\n    height: 1.8em;\\r\\n    display: inline-block;\\r\\n}\\r\\n\\r\\n\\r\\n.am-check-tree-item-text {\\r\\n    width: var(--text-width);\\r\\n    box-sizing: border-box;\\r\\n    padding: 0.3em 0.5em 0.3em calc(2.5em + 2em * var(--level) + var(--icon-width));\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    line-height: 1.5;\\r\\n    white-space: normal;\\r\\n}\\r\\n\\r\\n\\r\\n.am-check-tree-item-desc {\\r\\n    display: none;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n\\r\\n.am-check-tree-leaf-item:not(.as-is-leaf) .am-check-tree-item-checkbox-ctn {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.am-check-tree-leaf-item:not(.as-is-leaf) .am-check-tree-item-text {\\r\\n    padding: 0.3em 0.5em 0.3em calc(2em * var(--level) + var(--icon-width) + 1em);\\r\\n}\\r\\n\\r\\n.am-check-tree-leaf-item:not(.as-is-leaf) .am-check-tree-item-icon-ctn {\\r\\n    left: calc(2em * var(--level) + 1.5em);\\r\\n}\\r\\n\\r\\n.am-check-tree-box-list.as-has-desc .am-check-tree-item-desc {\\r\\n    display: inline-block;\\r\\n}\\r\\n\\r\\n.am-check-tree-box.as-leaf-only .am-check-tree-item:not(.as-has-leaf) .as-checkbox-input {\\r\\n    pointer-events: none;\\r\\n    opacity: 0.2;\\r\\n}\\r\\n\\r\\n\\r\\n.am-check-tree-box.as-leaf-only:not(.as-has-leaf) .as-select-list-box-check-all {\\r\\n    pointer-events: none;\\r\\n    color: var(--as-disabled-text-color);\\r\\n}\\r\\n\\r\\n.am-check-tree-box.as-leaf-only:not(.as-has-leaf) .as-select-list-box-check-all label.as-checkbox-input .bound {\\r\\n    stroke: #929292;\\r\\n    fill: #ebebe4;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/checktreebox.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/checktreeitem.css":
/*!**************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/checktreeitem.css ***!
  \**************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-check-tree-item {\\r\\n    font-size: inherit;\\r\\n    font-family: \\\"Helvetica Neue\\\", Arial, Helvetica, sans-serif;\\r\\n    height: 2em;\\r\\n}\\r\\n\\r\\n.as-check-tree-item:focus {\\r\\n    background-color: unset;\\r\\n}\\r\\n\\r\\n.as-check-tree-item:hover:focus {\\r\\n    background-color: rgba(169, 169, 172, 0.1);\\r\\n}\\r\\n\\r\\n.as-check-tree-item .as-checkbox-input {\\r\\n    margin-right: 0.35em;\\r\\n}\\r\\n\\r\\n.as-check-tree-item.as-no-select .as-checkbox-input,\\r\\n.absol-checkbox.as-no-select {\\r\\n    pointer-events: none;\\r\\n    opacity: 0.3;\\r\\n}\\r\\n\\r\\n.as-check-tree-item.as-no-select .as-checkbox-input .bound,\\r\\n.absol-checkbox.as-no-select .bound {\\r\\n    stroke: #929292;\\r\\n    fill: #ebebe4;\\r\\n}\\r\\n\\r\\n.as-check-tree-item.as-no-select .as-checkbox-input .tick,\\r\\n.as-check-tree-item.as-no-select .as-checkbox-input .minus,\\r\\n.absol-checkbox.as-no-select .tick,\\r\\n.absol-checkbox.as-no-select .minus {\\r\\n    display: none;\\r\\n    opacity: 0;\\r\\n    visibility: hidden;\\r\\n}\\r\\n\\r\\n.absol-checkbox.as-no-select{\\r\\n    visibility: hidden;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/checktreeitem.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/chromecalendar.css":
/*!***************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/chromecalendar.css ***!
  \***************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-chrome-calendar {\\r\\n    display: inline-block;\\r\\n    font-family: Helvetica, Arial, sans-serif;\\r\\n    font-size: 1rem;\\r\\n    padding: 0.6em;\\r\\n    border: solid 1px rgb(191, 191, 191);\\r\\n    box-shadow: 1px 1px 2px rgb(240, 240, 240);\\r\\n    z-index: 100;\\r\\n    touch-action: manipulation;\\r\\n    user-select: none;\\r\\n    background-color: rgb(255, 255, 255);\\r\\n    white-space: initial;\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar * {\\r\\n    font-size: inherit;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-chrome-calendar-header {\\r\\n    white-space: nowrap;\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-chrome-calendar-title {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar-header-buttons {\\r\\n    position: absolute;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    right: 0;\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar-header-buttons > button {\\r\\n    font-size: 1em;\\r\\n    width: 1.5em;\\r\\n    height: 1.5em;\\r\\n    padding: 0;\\r\\n    border-radius: 0.2em;\\r\\n    border: solid 1px rgb(167, 167, 167);\\r\\n    background: linear-gradient(rgb(240, 240, 240), rgb(233, 233, 233), rgb(223, 223, 223));\\r\\n    cursor: pointer;\\r\\n    outline: none;\\r\\n    box-shadow: 1px 1px 2px #aaa;\\r\\n    color: rgb(110, 110, 110);\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar-header-buttons > button:nth-child(2) {\\r\\n    margin-left: 0.2em;\\r\\n    margin-right: 0.2em;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-chrome-calendar-header-buttons > button:active {\\r\\n    box-shadow: 0px 0px 2px #aaa;\\r\\n\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar:not(.view-era) .absol-chrome-calendar-title {\\r\\n    cursor: pointer;\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar[data-level=\\\"day\\\"] .absol-chrome-calendar-title::after {\\r\\n    content: \\\"\\\\25BC\\\";\\r\\n}\\r\\n\\r\\n\\r\\n.absol-chrome-calendar-title > span {\\r\\n    line-height: 1.5em;\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar-instance {\\r\\n    margin-top: 1em;\\r\\n    border: solid 1px rgb(140, 140, 140);\\r\\n    width: calc(14em + 2px);\\r\\n    position: relative;\\r\\n    height: calc(8.4em + 3px);\\r\\n    overflow: hidden;\\r\\n    box-sizing: border-box;\\r\\n    /*border*/\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar-dayofweek {\\r\\n    background-color: rgb(241, 241, 241);\\r\\n    height: 1.2em;\\r\\n    white-space: nowrap;\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n    z-index: 10;\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar[data-level=\\\"week\\\"] .absol-chrome-calendar-dayofweek::before {\\r\\n    content: \\\"wk\\\";\\r\\n    text-align: center;\\r\\n    line-height: 1.2;\\r\\n    display: inline-block;\\r\\n    color: rgb(130, 130, 255);\\r\\n    border-bottom: solid 1px rgb(191, 191, 191);\\r\\n    border-right: solid 1px rgb(191, 191, 191);\\r\\n    box-sizing: border-box;\\r\\n    width: 12.5%;\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar-dayofweek > div {\\r\\n    text-align: center;\\r\\n    line-height: 1.2;\\r\\n    display: inline-block;\\r\\n    width: calc(100% / 7);\\r\\n    border-bottom: solid 1px rgb(191, 191, 191);\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar[data-level=\\\"week\\\"] .absol-chrome-calendar-dayofweek > div {\\r\\n    width: 12.5%;\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar-month-animation-container {\\r\\n    position: absolute;\\r\\n    transition: top 0.2s;\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar-month-animation-container.old {\\r\\n    z-index: 7;\\r\\n    /* background: red; */\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar-month-animation-container.new {\\r\\n    z-index: 8;\\r\\n    /* background: blue; */\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar-month-animation-container > .absol-chrome-calendar-month {\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n    margin-top: -1px;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-chrome-calendar-month {\\r\\n    width: 100%;\\r\\n    margin-top: 1.2em;\\r\\n    background-color: white;\\r\\n    /*for header*/\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar[data-view=\\\"month\\\"] .absol-chrome-calendar-month {\\r\\n    display: table;\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar[data-view=\\\"month\\\"] .absol-chrome-calendar-dayofweek {\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-chrome-calendar-week-in-month {\\r\\n    display: table-row;\\r\\n    height: 1.2em;\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar[data-level=\\\"week\\\"] .absol-chrome-calendar-week-in-month::before {\\r\\n    content: attr(data-week-idx-text);\\r\\n    display: table-cell;\\r\\n    text-align: right;\\r\\n    padding-right: 0.4em;\\r\\n    color: rgb(130, 130, 255);\\r\\n    text-shadow: 1px 0 0 currentColor;\\r\\n    border-right: solid 1px rgb(191, 191, 191);\\r\\n    width: 12.5%;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-chrome-calendar-week-in-month > div {\\r\\n    display: table-cell;\\r\\n    text-align: right;\\r\\n    padding-right: 0.4em;\\r\\n    cursor: pointer;\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar-week-in-month > div:hover,\\r\\n.absol-chrome-calendar[data-level=\\\"week\\\"] .absol-chrome-calendar-week-in-month:hover {\\r\\n    background-color: rgb(224, 245, 256);\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar[data-level=\\\"day\\\"] .absol-chrome-calendar-not-in-month {\\r\\n    color: rgb(140, 140, 140);\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar-today {\\r\\n    border: inset 1px rgb(191, 191, 191);\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar-selected,\\r\\n.absol-chrome-calendar[data-level=\\\"week\\\"] .as-week-selected,\\r\\n.absol-chrome-calendar[data-level=\\\"quarter\\\"] .as-quarter-selected {\\r\\n    background-color: rgb(188, 205, 236) !important;\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar[data-level=\\\"week\\\"] .as-week-selected .absol-chrome-calendar-selected {\\r\\n    background-color: transparent;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-chrome-calendar-years {\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-chrome-calendar:not(.view-year) .absol-chrome-calendar-years {\\r\\n    /* display: none; */\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    top: 0;\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n    z-index: -10000;\\r\\n    opacity: 0;\\r\\n    visibility: hidden;\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar.view-year .absol-chrome-calendar-instance {\\r\\n    border-color: rgb(77, 114, 254)\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar-month,\\r\\n.absol-chrome-calendar-dayofweek,\\r\\n.absol-chrome-calendar-era {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-chrome-calendar:not(.view-month) .absol-chrome-calendar-title {\\r\\n    color: rgb(191, 191, 191);\\r\\n}\\r\\n\\r\\n\\r\\n.absol-chrome-calendar-year {\\r\\n    overflow: hidden;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-chrome-calendar-year-head {\\r\\n    background-color: rgb(241, 241, 241);\\r\\n    border-bottom: solid 1px rgb(191, 191, 191);\\r\\n    height: 1.5em;\\r\\n    text-align: center;\\r\\n    line-height: 1.5em;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-chrome-calendar-year:last-child .absol-chrome-calendar-year-head {\\r\\n    border-bottom: solid 1px rgb(191, 191, 191);\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar-year.start-opening .absol-chrome-calendar-year-months,\\r\\n.absol-chrome-calendar-year.closing .absol-chrome-calendar-year-months {\\r\\n    margin-bottom: -6em;\\r\\n    transition: margin-bottom linear 0.1s;\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar-year.opening .absol-chrome-calendar-year-months,\\r\\n.absol-chrome-calendar-year.start-closing .absol-chrome-calendar-year-months {\\r\\n    margin-bottom: 0;\\r\\n    transition: margin-bottom linear 0.1s;\\r\\n\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar-year-months {\\r\\n    width: 100%;\\r\\n    display: table;\\r\\n    height: 6em;\\r\\n    border-bottom: solid 1px rgb(191, 191, 191);\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar-year-row-months {\\r\\n    display: table-row;\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar-year-month {\\r\\n    text-align: center;\\r\\n    display: table-cell;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar-year-month:hover,\\r\\n.absol-chrome-calendar-era-year:hover,\\r\\n.absol-chrome-calendar[data-level=\\\"quarter\\\"] .absol-chrome-calendar-year-months[data-hover-quarter=\\\"0\\\"] .absol-chrome-calendar-year-month[data-quarter=\\\"0\\\"],\\r\\n.absol-chrome-calendar[data-level=\\\"quarter\\\"] .absol-chrome-calendar-year-months[data-hover-quarter=\\\"1\\\"] .absol-chrome-calendar-year-month[data-quarter=\\\"1\\\"],\\r\\n.absol-chrome-calendar[data-level=\\\"quarter\\\"] .absol-chrome-calendar-year-months[data-hover-quarter=\\\"2\\\"] .absol-chrome-calendar-year-month[data-quarter=\\\"2\\\"],\\r\\n.absol-chrome-calendar[data-level=\\\"quarter\\\"] .absol-chrome-calendar-year-months[data-hover-quarter=\\\"3\\\"] .absol-chrome-calendar-year-month[data-quarter=\\\"3\\\"] {\\r\\n    background-color: rgb(224, 245, 256);\\r\\n}\\r\\n\\r\\n\\r\\n.absol-chrome-calendar-years:hover .absol-scrollbar {\\r\\n    opacity: 1;\\r\\n\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar-years .absol-scrollbar {\\r\\n    background-color: rgba(169, 169, 172, 0.2);\\r\\n    opacity: 0;\\r\\n    transition: opacity 0.2s;\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar-date-disabled,\\r\\n.absol-chrome-calendar-era-year.absol-chrome-calendar-date-disabled {\\r\\n    color: rgb(240, 230, 230);\\r\\n    pointer-events: none;\\r\\n    cursor: not-allowed;\\r\\n}\\r\\n\\r\\nbutton.absol-chrome-calendar-button-disabled,\\r\\n.absol-chrome-calendar button:disabled {\\r\\n    color: rgb(220, 210, 210);\\r\\n    pointer-events: none;\\r\\n    box-shadow: none;\\r\\n    cursor: not-allowed;\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar-era {\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    top: 0;\\r\\n    z-index: 1000000;\\r\\n    /*width: 100%;*/\\r\\n    /*height: 100%; */\\r\\n    width: calc(14em + 17px);\\r\\n    box-sizing: border-box;\\r\\n    height: 100%;\\r\\n    background-color: white;\\r\\n    box-shadow: 0px 0px 1px 0 black;\\r\\n    overflow-y: scroll;\\r\\n    overflow-x: hidden;\\r\\n    font-size: inherit;\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar[data-level=\\\"year\\\"]  .absol-chrome-calendar-era {\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar-era-row {\\r\\n    width: 14em;\\r\\n    height: 25%;\\r\\n    white-space: nowrap;\\r\\n    font-size: inherit;\\r\\n}\\r\\n\\r\\n.absol-chrome-calendar-era-year {\\r\\n    display: inline-block;\\r\\n    vertical-align: top;\\r\\n    height: 100%;\\r\\n    width: 25%;\\r\\n    text-align: center;\\r\\n    line-height: 2.1em;\\r\\n    font-size: inherit;\\r\\n    color: rgb(140, 140, 140);\\r\\n}\\r\\n\\r\\n\\r\\n.absol-chrome-calendar-in-decade:not(.absol-chrome-calendar-date-disabled) {\\r\\n    color: black;\\r\\n}\\r\\n\\r\\n/*.absol-chrome-calendar-era*/\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/chromecalendar.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/chrometime24picker.css":
/*!*******************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/chrometime24picker.css ***!
  \*******************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".ac-time-input.as-time-24-input {\\r\\n    width: 13em;\\r\\n}\\r\\n\\r\\n\\r\\n.as-chrome-time-24-picker .as-chrome-time-picker-h24 {\\r\\n    width: 120px;\\r\\n}\\r\\n\\r\\n.as-chrome-time-24-picker-tomorrow-text {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-in-tomorrow.as-chrome-time-picker-btn .as-chrome-time-24-picker-tomorrow-text {\\r\\n    display: initial;\\r\\n}\\r\\n\\r\\n.as-chrome-time-24-picker .as-chrome-time-picker-btn:disabled {\\r\\n    pointer-events: none;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/chrometime24picker.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/chrometimepicker.css":
/*!*****************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/chrometimepicker.css ***!
  \*****************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-chrome-time-picker {\\r\\n    box-sizing: border-box;\\r\\n    vertical-align: top;\\r\\n    display: inline-block;\\r\\n    font-family: Arial, Helvetica, sans-serif;\\r\\n    font-size: 1rem;\\r\\n    padding: 0.6em;\\r\\n    border: solid 1px rgb(191, 191, 191);\\r\\n    box-shadow: 1px 1px 2px rgb(240, 240, 240);\\r\\n    z-index: 100;\\r\\n    touch-action: manipulation;\\r\\n    user-select: none;\\r\\n    background-color: rgb(255, 255, 255);\\r\\n    /*width: calc(160px + 1.2em);*/\\r\\n    height: 12.38em;\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n.as-chrome-time-picker.as-24h-clock .as-chrome-time-picker-scroller-h12,\\r\\n.as-chrome-time-picker:not(.as-24h-clock) .as-chrome-time-picker-scroller-h24,\\r\\n.as-chrome-time-picker.as-24h-clock .as-chrome-time-picker-period {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-chrome-time-picker-period {\\r\\n    padding-top: 1.43em;\\r\\n    padding-bottom: 1.43em;\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n\\r\\n.as-chrome-time-picker > div:not(:first-child) {\\r\\n    margin-left: 5px;\\r\\n}\\r\\n\\r\\n\\r\\n.as-chrome-time-picker-scroller {\\r\\n    position: relative;\\r\\n    padding-top: 1.43em;\\r\\n    padding-bottom: 1.43em;\\r\\n    display: inline-block;\\r\\n    vertical-align: top;\\r\\n    height: 100%;\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.as-chrome-time-picker-scroller-up,\\r\\n.as-chrome-time-picker-scroller-down {\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    width: 100%;\\r\\n    height: 1.43em;\\r\\n    padding: 0;\\r\\n    box-sizing: border-box;\\r\\n    background-color: transparent;\\r\\n    border-radius: 3px;\\r\\n    border: none;\\r\\n    font-size: inherit;\\r\\n}\\r\\n\\r\\n\\r\\n.as-chrome-time-picker-scroller-up > span,\\r\\n.as-chrome-time-picker-scroller-down > span {\\r\\n    font-size: 1.5em;\\r\\n}\\r\\n\\r\\n.as-chrome-time-picker-scroller-up:hover,\\r\\n.as-chrome-time-picker-scroller-down:hover {\\r\\n    background-color: rgba(169, 169, 169, 0.2);\\r\\n}\\r\\n\\r\\n.as-chrome-time-picker-scroller-up {\\r\\n    top: -5px;\\r\\n}\\r\\n\\r\\n.as-chrome-time-picker-scroller-down {\\r\\n    bottom: -5px;\\r\\n}\\r\\n\\r\\n\\r\\n.as-chrome-time-picker-viewport {\\r\\n    width: 3.6em;\\r\\n    height: 100%;\\r\\n    overflow: hidden;\\r\\n    white-space: normal;\\r\\n    display: inline-block;\\r\\n    vertical-align: top;\\r\\n}\\r\\n\\r\\n\\r\\n.as-chrome-time-picker-list {\\r\\n    height: 100%;\\r\\n    overflow-y: scroll;\\r\\n    width: calc(100% + 18px);\\r\\n}\\r\\n\\r\\n.as-chrome-time-picker-btn {\\r\\n    font-size: inherit;\\r\\n    height: 2em;\\r\\n    width: 100%;\\r\\n    padding: 0;\\r\\n    border: none;\\r\\n    background-color: transparent;\\r\\n}\\r\\n\\r\\n.as-chrome-time-picker-btn:hover {\\r\\n    background-color: rgb(224, 245, 256);\\r\\n}\\r\\n\\r\\n.as-chrome-time-picker-btn.as-selected {\\r\\n    background-color: rgb(188, 205, 236);\\r\\n    border-radius: 3px;\\r\\n}\\r\\n\\r\\n.as-chrome-time-picker-btn > span {\\r\\n    font-size: calc(16em / 14);\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/chrometimepicker.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/circlesectionlabel.css":
/*!*******************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/circlesectionlabel.css ***!
  \*******************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-circle-section-label {\\r\\n    position: relative;\\r\\n    -webkit-print-color-adjust: exact;\\r\\n    /*friendly print*/\\r\\n}\\r\\n\\r\\n.as-circle-section-label-text {\\r\\n    position: relative;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    font-size: 1em;\\r\\n    padding-right: 2.5em;\\r\\n    color: white;\\r\\n    font-weight: bold;\\r\\n    z-index: 2;\\r\\n}\\r\\n\\r\\n\\r\\n.as-circle-section-label-index {\\r\\n    position: relative;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    text-align: center;\\r\\n    color: rgb(30, 162, 245);\\r\\n    font-weight: 900;\\r\\n    z-index: 2;\\r\\n}\\r\\n\\r\\n\\r\\n@media print {\\r\\n    .as-circle-section-label-text {\\r\\n        color: white !important;\\r\\n    }\\r\\n\\r\\n    .as-circle-section-label-index {\\r\\n        color: rgb(30, 162, 245) !important;\\r\\n    }\\r\\n}\\r\\n\\r\\n\\r\\n.as-circle-section-label-background {\\r\\n    position: absolute;\\r\\n    top: 0;\\r\\n    left: 0;\\r\\n    bottom: 0;\\r\\n    z-index: 1;\\r\\n}\\r\\n\\r\\n.as-circle-section-label-background>svg {\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n.as-circle-section-label-index-box {\\r\\n    stroke: rgb(129, 211, 246);\\r\\n    fill: white;\\r\\n    stroke-width: 2.5;\\r\\n}\\r\\n\\r\\n.as-circle-section-label-arrow {\\r\\n    stroke: rgb(30, 162, 245);\\r\\n    fill: none;\\r\\n    stroke-linecap: round;\\r\\n}\\r\\n\\r\\n.as-circle-section-label-text-box {\\r\\n    fill: rgb(30, 162, 245);\\r\\n    stroke: none;\\r\\n}\\r\\n\\r\\n.as-circle-section-label-arrow-marker-path {\\r\\n    fill: rgb(30, 162, 245);\\r\\n    stroke: none;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/circlesectionlabel.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/ckplaceholder.css":
/*!**************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/ckplaceholder.css ***!
  \**************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".cke_panel {\\r\\n    z-index: 1000000000 !important;\\r\\n}\\r\\n\\r\\n\\r\\nspan.cke_button_icon.cke_button__as-variable-box-ico_icon {\\r\\n    background-size: cover;\\r\\n    background-image: url(\\\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiICB2aWV3Qm94PSIwIDAgMjQgMjQiPgogICAgPHBhdGggZmlsbD0iIzAwMDBmZiIgZD0iTTE5IDNINUMzLjkgMyAzIDMuOSAzIDVWMTlDMyAyMC4xIDMuOSAyMSA1IDIxSDE5QzIwLjEgMjEgMjEgMjAuMSAyMSAxOVY1QzIxIDMuOSAyMC4xIDMgMTkgM003LjQgMThDNS45IDE2LjUgNSAxNC4zIDUgMTJTNS45IDcuNSA3LjQgNkw5IDYuN0M3LjcgNy45IDcgOS45IDcgMTJTNy43IDE2LjEgOSAxNy4zTDcuNCAxOE0xMi43IDE1TDExLjkgMTNMMTAuNSAxNUg5TDExLjMgMTEuOUwxMCA5SDExLjNMMTIuMSAxMUwxMy41IDlIMTVMMTIuOCAxMkwxNC4xIDE1SDEyLjdNMTYuNiAxOEwxNSAxNy4zQzE2LjMgMTYgMTcgMTQuMSAxNyAxMlMxNi4zIDcuOSAxNSA2LjdMMTYuNiA2QzE4LjEgNy41IDE5IDkuNyAxOSAxMlMxOC4xIDE2LjUgMTYuNiAxOFoiIC8+Cjwvc3ZnPg==\\\");\\r\\n}\\r\\n\\r\\nspan.cke_button_icon.cke_button__as-expression-box-ico_icon {\\r\\n    background-size: cover;\\r\\n    background-image: url(\\\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiICB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgIDxwYXRoIGZpbGw9IiMwMDAwMDAiIGQ9Ik01LDNIN1Y1SDVWMTBBMiwyIDAgMCwxIDMsMTJBMiwyIDAgMCwxIDUsMTRWMTlIN1YyMUg1QzMuOTMsMjAuNzMgMywyMC4xIDMsMTlWMTVBMiwyIDAgMCwwIDEsMTNIMFYxMUgxQTIsMiAwIDAsMCAzLDlWNUEyLDIgMCAwLDEgNSwzTTE5LDNBMiwyIDAgMCwxIDIxLDVWOUEyLDIgMCAwLDAgMjMsMTFIMjRWMTNIMjNBMiwyIDAgMCwwIDIxLDE1VjE5QTIsMiAwIDAsMSAxOSwyMUgxN1YxOUgxOVYxNEEyLDIgMCAwLDEgMjEsMTJBMiwyIDAgMCwxIDE5LDEwVjVIMTdWM0gxOU0xMiwxNUExLDEgMCAwLDEgMTMsMTZBMSwxIDAgMCwxIDEyLDE3QTEsMSAwIDAsMSAxMSwxNkExLDEgMCAwLDEgMTIsMTVNOCwxNUExLDEgMCAwLDEgOSwxNkExLDEgMCAwLDEgOCwxN0ExLDEgMCAwLDEgNywxNkExLDEgMCAwLDEgOCwxNU0xNiwxNUExLDEgMCAwLDEgMTcsMTZBMSwxIDAgMCwxIDE2LDE3QTEsMSAwIDAsMSAxNSwxNkExLDEgMCAwLDEgMTYsMTVaIiAvPgo8L3N2Zz4=\\\");\\r\\n}\\r\\n\\r\\nspan.cke_button_icon.cke_button__insert_video_icon {\\r\\n    background-size: cover;\\r\\n    background-image: url(\\\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgIDxwYXRoIGZpbGw9IiMwMDAwMDAiIGQ9Ik0xOSwxOUg1VjVIMTlNMTksM0g1QTIsMiAwIDAsMCAzLDVWMTlBMiwyIDAgMCwwIDUsMjFIMTlBMiwyIDAgMCwwIDIxLDE5VjVDMjEsMy44OSAyMC4xLDMgMTksM00xMCw4VjE2TDE1LDEyTDEwLDhaIiAvPgo8L3N2Zz4=\\\");\\r\\n}\\r\\n\\r\\n\\r\\ndiv.as-ck-inline-short-text {\\r\\n    border: 1px solid #dddddd;\\r\\n    height: 30px;\\r\\n    line-height: 28px;\\r\\n    font-size: 14px;\\r\\n    font-family: Arial, Helvetica, sans-serif;\\r\\n    padding-left: var(--as-input-horizontal-padding);\\r\\n    padding-right: var(--as-input-horizontal-padding);\\r\\n    outline: none;\\r\\n    overflow: hidden;\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n.as-ck-inline-short-text p {\\r\\n    padding: 0;\\r\\n    margin: 0;\\r\\n}\\r\\n\\r\\n.as-ck-inline-short-text p::after {\\r\\n    content: \\\"\\\";\\r\\n}\\r\\n\\r\\n.as-ck-inline-short-text .cke_reset.cke_widget_drag_handler_container {\\r\\n    visibility: hidden;\\r\\n    opacity: 0;\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.cke.cke_browser_webkit {\\r\\n    z-index: 2000000 !important;\\r\\n}\\r\\n\\r\\n.cke.cke_browser_webkit.as-hidden {\\r\\n    opacity: 0;\\r\\n    visibility: hidden;\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n.cke.as-has-sticky-toolbar {\\r\\n    border-top: none;\\r\\n}\\r\\n\\r\\n.cke.as-has-sticky-toolbar > .cke_inner > .cke_top {\\r\\n    border-top: 1px solid #d1d1d1;\\r\\n    z-index: 100;\\r\\n}\\r\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/ckplaceholder.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/common.css":
/*!*******************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/common.css ***!
  \*******************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-text-input {\\r\\n    border-style: solid;\\r\\n    border-width: 1px;\\r\\n    border-radius: var(--as-input-border-radius);\\r\\n    border-color: var(--as-input-border-color);\\r\\n    outline: none;\\r\\n    height: var(--as-input-height);\\r\\n    padding-left: var(--as-input-vertical-padding);\\r\\n    font-size: inherit;\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.as-text-input[readonly].as-border-none {\\r\\n    border: none;\\r\\n    padding-left: 0;\\r\\n    padding-right: 0;\\r\\n}\\r\\n\\r\\ninput[type=\\\"text\\\"].as-text-input:disabled,\\r\\ntextarea.as-text-input:disabled {\\r\\n    background-color: var(--as-disabled-background-color);\\r\\n}\\r\\n\\r\\n\\r\\n.as-blink-text {\\r\\n    --blink-duration: 1s;\\r\\n    --text-color: black;\\r\\n    animation-name: as-anim-text-blink-1-1;\\r\\n    animation-duration: var(--blink-duration);\\r\\n    animation-iteration-count: infinite;\\r\\n}\\r\\n\\r\\n\\r\\n@keyframes as-anim-text-blink-1-1 {\\r\\n    0% {\\r\\n        color: var(--text-color);\\r\\n    }\\r\\n    49% {\\r\\n        color: var(--text-color);\\r\\n    }\\r\\n    50% {\\r\\n        color: transparent;\\r\\n    }\\r\\n    99% {\\r\\n        color: transparent;\\r\\n    }\\r\\n    100% {\\r\\n        color: var(--text-color);\\r\\n    }\\r\\n}\\r\\n\\r\\n.as-mti-star {\\r\\n    font-family: 'Material Icons';\\r\\n    color: #ffa834;\\r\\n    font-size: var(--icon-font-size);\\r\\n    -webkit-font-smoothing: antialiased;\\r\\n}\\r\\n\\r\\n.as-mti-star::before {\\r\\n    content: \\\"star\\\";\\r\\n}\\r\\n\\r\\n.as-cursor-pointer {\\r\\n    cursor: pointer;\\r\\n}\\r\\n\\r\\n\\r\\n.as-table-grid {\\r\\n    display: table;\\r\\n}\\r\\n\\r\\n.as-table-grid.as-inline {\\r\\n    display: inline-table;\\r\\n}\\r\\n\\r\\n.as-table-grid-row {\\r\\n    display: table-row;\\r\\n}\\r\\n\\r\\n\\r\\n.as-table-grid-cell {\\r\\n    display: table-cell;\\r\\n}\\r\\n\\r\\n\\r\\n.as-pseudo-align-child-center {\\r\\n    text-align: center;\\r\\n}\\r\\n\\r\\n.as-pseudo-align-child-center::before {\\r\\n    height: 100%;\\r\\n    content: \\\"\\\";\\r\\n    vertical-align: middle;\\r\\n    display: inline-block;\\r\\n}\\r\\n\\r\\n.as-pseudo-align-child-center > * {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n\\r\\n.as-transparent-button {\\r\\n    background-color: transparent;\\r\\n    border: none;\\r\\n    padding: 0;\\r\\n    margin: 0;\\r\\n    font-size: inherit;\\r\\n    color: var(--as-transparent-button-text-color);\\r\\n}\\r\\n\\r\\n.as-transparent-button:hover{\\r\\n    color: var(--as-transparent-button-text-hover-color);\\r\\n}\\r\\n\\r\\n\\r\\n.as-transparent-button:active{\\r\\n    color: var(--as-transparent-button-text-active-color);\\r\\n}\\r\\n\\r\\n.as-transparent-button .mdi {\\r\\n    font-size: 1.5em;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/common.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/contextmenu.css":
/*!************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/contextmenu.css ***!
  \************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-context-menu-hook {\\r\\n    position: absolute;\\r\\n    z-index: -100000;\\r\\n    width: 14px;\\r\\n    height: 14px;\\r\\n    top: 0;\\r\\n    opacity: 0;\\r\\n    resize: none;\\r\\n    cursor: default;\\r\\n}\\r\\n\\r\\n.absol-context-hinge-fixed-container {\\r\\n    position: fixed;\\r\\n    left: 0;\\r\\n    top: 0;\\r\\n    z-index: 1000000001;\\r\\n}\\r\\n\\r\\n.absol-context-hinge {\\r\\n    position: relative;\\r\\n    width: 0;\\r\\n    height: 0;\\r\\n}\\r\\n\\r\\n.absol-context-hinge > .absol-context-menu {\\r\\n    position: absolute;\\r\\n    top: -10000px;\\r\\n    left: -10000px;\\r\\n    visibility: hidden;\\r\\n    z-index: 55;\\r\\n    display: inline-block;\\r\\n}\\r\\n\\r\\n.absol-context-hinge .absol-vmenu,\\r\\n.absol-context-hinge .absol-hmenu {\\r\\n    padding-top: 0.4em;\\r\\n    padding-bottom: 0.4em;\\r\\n    /* background-color: rgb(37, 37, 38);\\r\\n    -webkit-box-shadow: 2px 2px 9px 0px rgba(7, 7, 7, 1);\\r\\n    -moz-box-shadow: 2px 2px 9px 0px rgb(7, 7, 7, 1);\\r\\n    box-shadow: 2px 2px 9px 0px rgba(7, 7, 7, 1); */\\r\\n    color: black;\\r\\n    background-color: rgb(252, 252, 255);\\r\\n    -webkit-box-shadow: 2px 2px 9px 0px rgba(20, 20, 20, 1);\\r\\n    -moz-box-shadow: 2px 2px 9px 0px rgba(20, 20, 20, 1);\\r\\n    box-shadow: 2px 2px 9px 0px rgba(20, 20, 20, 1);\\r\\n}\\r\\n\\r\\n.absol-context-menu-anchor.dark .absol-hmenu,\\r\\n.absol-context-menu-anchor.dark .absol-vmenu,\\r\\n.dark .absol-context-menu-anchor .absol-hmenu,\\r\\n.dark .absol-context-menu-anchor .absol-vmenu {\\r\\n    background-color: rgb(37, 37, 38);\\r\\n}\\r\\n\\r\\n\\r\\n.absol-context-menu-anchor {\\r\\n    position: fixed;\\r\\n    z-index: -1000;\\r\\n    left: 0;\\r\\n    top: 0;\\r\\n    display: block;\\r\\n    opacity: 0;\\r\\n    visibility: hidden;\\r\\n    font-size: inherit;\\r\\n}\\r\\n\\r\\n.absol-context-menu-anchor > textarea {\\r\\n    width: 160px;\\r\\n    height: 160px;\\r\\n    margin: 0;\\r\\n    resize: none;\\r\\n    border: none;\\r\\n    opacity: 0;\\r\\n    cursor: default;\\r\\n    user-select: none;\\r\\n    -webkit-user-select: none;\\r\\n    -moz-user-select: none;\\r\\n}\\r\\n\\r\\n.absol-context-menu-anchor.absol-active {\\r\\n    z-index: 100000000 !important;\\r\\n    opacity: 1;\\r\\n    visibility: visible;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-context-menu-anchor .absol-vmenu,\\r\\n.absol-context-menu-anchor .absol-hmenu {\\r\\n    padding-top: 0.4em;\\r\\n    padding-bottom: 0.4em;\\r\\n    color: black;\\r\\n    background-color: rgb(252, 252, 255);\\r\\n    -webkit-box-shadow: 2px 2px 9px 0px rgba(20, 20, 20, 1);\\r\\n    -moz-box-shadow: 2px 2px 9px 0px rgba(20, 20, 20, 1);\\r\\n    box-shadow: 2px 2px 9px 0px rgba(20, 20, 20, 1);\\r\\n}\\r\\n\\r\\n\\r\\n.as-system-context-menu {\\r\\n    /** nothing here, to define use system context menu**/\\r\\n}\\r\\n\\r\\n.as-context-menu-ctn {\\r\\n    font-size: var(--as-context-menu-font-size);\\r\\n    font-family: var(--as-input-font-family);\\r\\n}\\r\\n\\r\\n.as-context-menu-ctn.as-anchor-modal,\\r\\n.absol-context-menu-anchor.as-anchor-modal{\\r\\n    position: fixed;\\r\\n    z-index: 8000000;\\r\\n    left: 0 !important;\\r\\n    right: 0 !important;;\\r\\n    top: 0 !important;;\\r\\n    bottom: 0 !important;;\\r\\n    box-sizing: border-box;\\r\\n    text-align: center;\\r\\n    background-color: rgba(155, 155, 155, 0.3);\\r\\n}\\r\\n\\r\\n.as-context-menu-ctn.as-anchor-modal::before,\\r\\n.as-context-menu-ctn.as-anchor-modal > .absol-vmenu ,\\r\\n.absol-context-menu-anchor.as-anchor-modal::before,\\r\\n.absol-context-menu-anchor.as-anchor-modal > .absol-vmenu\\r\\n{\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n.as-context-menu-ctn.as-anchor-modal > .absol-vmenu,\\r\\n.absol-context-menu-anchor.as-anchor-modal > .absol-vmenu\\r\\n{\\r\\n    text-align: left;\\r\\n}\\r\\n\\r\\n\\r\\n.as-context-menu-ctn.as-anchor-modal::before,\\r\\n.absol-context-menu-anchor.as-anchor-modal::before{\\r\\n    content: \\\"\\\";\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n.as-context-menu-ctn.as-anchor-modal > .absol-vmenu,\\r\\n.absol-context-menu-anchor.as-anchor-modal > .absol-vmenu {\\r\\n    min-width: 70%;\\r\\n    max-width: calc(100% - 10px);\\r\\n    max-height: calc(100% - 10px);\\r\\n}\\r\\n\\r\\n.as-quick-menu {\\r\\n    font-size: 1rem;\\r\\n}\\r\\n\\r\\n.as-quick-menu{\\r\\n    --available-height: calc(100vh - 20px);\\r\\n    max-height: var(--available-height);\\r\\n}\\r\\n\\r\\n.absol-context-menu-anchor.as-anchor-modal  .as-quick-menu{\\r\\n    max-height: calc(100vh - 20px);\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/contextmenu.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/countdownclock.css":
/*!***************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/countdownclock.css ***!
  \***************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-countdown-clock {\\r\\n    width: 7em;\\r\\n    height: 7em;\\r\\n    border-radius: 50%;\\r\\n    position: relative;\\r\\n    display:inline-block;\\r\\n    font-family: Consolas;\\r\\n}\\r\\n\\r\\n.as-countdown-clock-border-wrapper{\\r\\n    pointer-events:none;\\r\\n    position: absolute;\\r\\n    box-sizing: border-box;\\r\\n    left: 0.2em;\\r\\n    right: 0.2em;\\r\\n    top: 0.2em;\\r\\n    bottom: 0.2em;\\r\\n    filter: drop-shadow(0 0px 1px rgb(100, 200, 255));\\r\\n}\\r\\n\\r\\n.as-countdown-clock-border {\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n    border: solid 0.2em rgb(100, 200, 255);\\r\\n    border-radius: 50%;\\r\\n    object-fit: cover;\\r\\n}\\r\\n\\r\\n.as-countdown-clock-text {\\r\\n    position: absolute;\\r\\n    left: 50%;\\r\\n    top: 50%;\\r\\n    transform:translate(-50%, -50%);\\r\\n    font-size: 2em;\\r\\n}\\r\\n\\r\\n.as-countdown-clock div,\\r\\n.as-countdown-clock span\\r\\n{\\r\\n    font-family: inherit;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/countdownclock.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/countdowntext.css":
/*!**************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/countdowntext.css ***!
  \**************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-countdown-text {\\r\\n\\r\\n}\\r\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/countdowntext.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/cpuviewer.css":
/*!**********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/cpuviewer.css ***!
  \**********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-cpu-viewer{\\r\\n    position: fixed;\\r\\n    bottom: 5px;\\r\\n    right: 5px;\\r\\n    box-sizing: border-box;\\r\\n    z-index: 1000000000;\\r\\n    border: 1px solid black;\\r\\n    display: inline-block;\\r\\n}\\r\\n\\r\\n.as-cpu-viewer canvas{\\r\\n    display: block;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/cpuviewer.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/dateinput.css":
/*!**********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/dateinput.css ***!
  \**********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-date-input {\\r\\n    font-family: Arial, Helvetica, sans-serif;\\r\\n    font-size: 1rem;\\r\\n    border: 1px solid #ddd;\\r\\n    border-radius: 3px;\\r\\n    height: calc(2em + 2px);\\r\\n    width: 10.5em;\\r\\n    box-sizing: border-box;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    position: relative;\\r\\n    background-color: white;\\r\\n    overflow: hidden;\\r\\n}\\r\\n\\r\\n.as-date-input-text {\\r\\n    outline: none;\\r\\n    width: calc(100% - 29px);\\r\\n    height: 100%;\\r\\n    border: none;\\r\\n    background-color: transparent;\\r\\n    display: block;\\r\\n    padding: 0 0 0 var(--as-input-horizontal-padding);\\r\\n    font: inherit;\\r\\n    box-sizing: border-box;\\r\\n\\r\\n}\\r\\n\\r\\n.as-date-input-icon-ctn {\\r\\n    font-size: inherit;\\r\\n    border-left: 1px solid #ddd;\\r\\n    border-right: none;\\r\\n    border-top: none;\\r\\n    border-bottom: none;\\r\\n    text-align: center;\\r\\n    position: absolute;\\r\\n    right: 0;\\r\\n    width: calc(2em + 1px);\\r\\n    box-sizing: border-box;\\r\\n    top: 0;\\r\\n    height: 100%;\\r\\n    background-color: rgba(169, 169, 169, 0.1);\\r\\n    cursor: pointer;\\r\\n}\\r\\n\\r\\n\\r\\n.as-date-input-icon-ctn:hover {\\r\\n    background-color: rgba(169, 169, 169, 0.25);\\r\\n}\\r\\n\\r\\n.as-date-input-icon-ctn:active {\\r\\n    background-color: rgba(169, 169, 169, 0.5);\\r\\n}\\r\\n\\r\\n\\r\\n.as-date-input-icon-ctn > span {\\r\\n    line-height: 28px;\\r\\n    font-size: calc(16em / 14);\\r\\n}\\r\\n\\r\\n.as-date-input.as-read-only .as-date-input-icon-ctn {\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n.as-date-input.as-disabled {\\r\\n    color: var(--as-disabled-text-color);\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n.as-date-input.as-disabled input {\\r\\n    background-color: var(--as-disabled-background-color);\\r\\n}\\r\\n\\r\\n.as-date-input.as-value-null .as-date-input-clear-btn,\\r\\n.as-date-input.as-must-not-null .as-date-input-clear-btn {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-date-input-clear-btn {\\r\\n    font-size: inherit;\\r\\n    position: absolute;\\r\\n    right: 2em;\\r\\n    height: 2em;\\r\\n    padding: 0 0.3em;\\r\\n    top: calc(50% - 1em);\\r\\n    box-sizing: border-box;\\r\\n    background-color: transparent;\\r\\n    border: none;\\r\\n    color: #bbb;\\r\\n    visibility: hidden;\\r\\n}\\r\\n\\r\\n.as-date-input.as-read-only .as-date-input-clear-btn {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-date-input-clear-btn:hover {\\r\\n    color: rgb(132, 132, 132)\\r\\n}\\r\\n\\r\\n.as-date-input-clear-btn:active {\\r\\n    color: #525555;\\r\\n}\\r\\n\\r\\n.as-date-input-text:focus + .as-date-input-clear-btn,\\r\\n.as-date-input:hover .as-date-input-clear-btn {\\r\\n    visibility: visible;\\r\\n}\\r\\n\\r\\n.as-date-input.as-border-none {\\r\\n    border: transparent;\\r\\n    background-color: transparent;\\r\\n}\\r\\n\\r\\n.as-date-input.as-border-none .as-date-input-icon-ctn {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-date-input.as-border-none .as-date-input-text {\\r\\n    width: 100%;\\r\\n    padding-left: 0;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/dateinput.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/dateinyearinput.css":
/*!****************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/dateinyearinput.css ***!
  \****************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-date-in-year-follower {\\r\\n    z-index: 900000000;\\r\\n}\\r\\n\\r\\n.as-date-in-year-picker {\\r\\n    font-size: 1rem;\\r\\n    font-family: \\\"Helvetica Neue\\\", Arial, Helvetica, sans-serif;\\r\\n    /*width: 20em;*/\\r\\n    box-sizing: border-box;\\r\\n    border: 1px solid #dddddd;\\r\\n    display: inline-block;\\r\\n    padding: calc(10em / 14) calc(5rem / 14);\\r\\n    box-shadow: 1px 1px 2px rgb(240, 240, 240);\\r\\n    background-color: white;\\r\\n}\\r\\n\\r\\n\\r\\n.as-date-in-year-picker-table {\\r\\n    display: table;\\r\\n}\\r\\n\\r\\n.as-date-in-year-picker-row {\\r\\n    display: table-row;\\r\\n}\\r\\n\\r\\n\\r\\n.as-date-in-year-picker-row:first-child {\\r\\n    text-align: center;\\r\\n    line-height: 1.5;\\r\\n}\\r\\n\\r\\n.as-date-in-year-picker-cell {\\r\\n    display: table-cell;\\r\\n}\\r\\n\\r\\n\\r\\n.as-date-in-year-picker-cell:first-child {\\r\\n    padding-right: 10px;\\r\\n}\\r\\n\\r\\n\\r\\n.as-date-in-year-picker-month-col {\\r\\n    position: relative;\\r\\n    padding-top: calc(25em / 14);\\r\\n    padding-bottom: calc(25em / 14);\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.as-date-in-year-picker-month-viewport {\\r\\n    width: calc(50em / 14);\\r\\n    overflow: hidden;\\r\\n\\r\\n}\\r\\n\\r\\n.as-date-in-year-picker-month-scroller {\\r\\n    width: calc(100% + 17px);\\r\\n    height: 8em;\\r\\n    overflow-y: scroll;\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n\\r\\nbutton.as-date-in-year-picker-month {\\r\\n    font-size: inherit;\\r\\n    height: 2em;\\r\\n    width: calc(50em / 14);\\r\\n    padding: 0;\\r\\n    border: none;\\r\\n    background-color: transparent;\\r\\n}\\r\\n\\r\\nbutton.as-date-in-year-picker-month:hover {\\r\\n    background-color: rgb(224, 245, 256);\\r\\n}\\r\\n\\r\\nbutton.as-date-in-year-picker-month.as-selected {\\r\\n    background-color: rgb(188, 205, 236);\\r\\n    border-radius: 3px;\\r\\n}\\r\\n\\r\\nbutton.as-date-in-year-picker-month > span {\\r\\n    font-size: calc(16rem / 14);\\r\\n}\\r\\n\\r\\n\\r\\n.as-chrome-time-picker-scroller-up:hover,\\r\\n.as-chrome-time-picker-scroller-down:hover {\\r\\n    background-color: rgba(169, 169, 169, 0.2);\\r\\n}\\r\\n\\r\\n\\r\\n.as-date-in-year-picker-month-btn {\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    font-size: inherit;\\r\\n    height: calc(20em / 14);\\r\\n    width: calc(50em / 14);\\r\\n    padding: 0;\\r\\n    border: none;\\r\\n    background-color: transparent;\\r\\n    box-sizing: border-box;\\r\\n    border-radius: 3px;\\r\\n}\\r\\n\\r\\n.as-date-in-year-picker-month-btn.as-up {\\r\\n    top: 0;\\r\\n}\\r\\n\\r\\n.as-date-in-year-picker-month-btn.as-down {\\r\\n    bottom: 0;\\r\\n}\\r\\n\\r\\n\\r\\n.as-date-in-year-picker-month-btn:hover {\\r\\n    background-color: rgba(169, 169, 169, 0.2);\\r\\n}\\r\\n\\r\\n.as-date-in-year-picker-month-btn > span {\\r\\n    font-size: 1.5em;\\r\\n    user-select: none;\\r\\n    -moz-user-select: none;\\r\\n    -webkit-user-select: none;\\r\\n}\\r\\n\\r\\n\\r\\n.as-date-in-year-picker-days {\\r\\n    display: inline-table;\\r\\n    vertical-align: middle;\\r\\n    border: solid 1px rgb(190, 190, 190);\\r\\n}\\r\\n\\r\\n.as-date-in-year-picker-week {\\r\\n    display: table-row;\\r\\n}\\r\\n\\r\\n.as-date-in-year-picker-day {\\r\\n    display: table-cell;\\r\\n    text-align: right;\\r\\n    padding: calc(5em / 14);\\r\\n    line-height: calc(20em / 14);\\r\\n    font-size: inherit;\\r\\n    user-select: none;\\r\\n    -moz-user-select: none;\\r\\n    -webkit-user-select: none;\\r\\n}\\r\\n\\r\\n\\r\\n.as-date-in-year-picker-day:hover {\\r\\n    background-color: rgb(224, 245, 256);\\r\\n    cursor: default;\\r\\n}\\r\\n\\r\\n.as-date-in-year-picker-day.as-selected {\\r\\n    background-color: rgb(188, 205, 236);\\r\\n}\\r\\n\\r\\n\\r\\n.as-date-time-input.as-date-in-year-input {\\r\\n    width: calc(8em + 2px);\\r\\n}\\r\\n\\r\\n.as-date-in-year-input.as-must-not-null .as-time-input-clear-btn,\\r\\n.as-date-in-year-input.as-empty .as-time-input-clear-btn {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n\\r\\n.as-date-in-year-follower {\\r\\n    z-index: 1000000;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/dateinyearinput.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/datetimeinput.css":
/*!**************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/datetimeinput.css ***!
  \**************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-date-time-input {\\r\\n    border: 1px solid #ddd;\\r\\n    border-radius: 3px;\\r\\n    height: calc(2em + 2px);\\r\\n    width: calc(14em + 2px);\\r\\n    box-sizing: border-box;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    position: relative;\\r\\n    background-color: white;\\r\\n    overflow: hidden;\\r\\n}\\r\\n\\r\\n.as-date-time-input.as-disabled {\\r\\n    color: var(--as-disabled-text-color);\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n\\r\\n.as-date-time-input input {\\r\\n    font-size: inherit;\\r\\n    outline: none;\\r\\n    width: calc(100% - 2em - 1px);\\r\\n    height: 100%;\\r\\n    border: none;\\r\\n    display: block;\\r\\n    padding: 0 0 0 var(--as-input-horizontal-padding);\\r\\n    -webkit-user-select: auto;\\r\\n    user-select: auto;\\r\\n    -webkit-user-drag: none;\\r\\n    color: inherit;\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.as-date-time-input.as-disabled input {\\r\\n    background-color: var(--as-disabled-background-color);\\r\\n}\\r\\n\\r\\n.as-date-time-input-icon-btn {\\r\\n    border-right: none;\\r\\n    border-top: none;\\r\\n    border-bottom: none;\\r\\n    border-left: 1px solid #ddd;\\r\\n    position: absolute;\\r\\n    right: 0;\\r\\n    width: calc(2em + 1px);\\r\\n    box-sizing: border-box;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    background-color: rgba(169, 169, 169, 0.1);\\r\\n    cursor: pointer;\\r\\n    border-radius: 0;\\r\\n    color: inherit;\\r\\n    font-size: inherit;\\r\\n}\\r\\n\\r\\n.as-date-time-input-icon-btn > span {\\r\\n    font-size: calc(16em / 14);\\r\\n}\\r\\n\\r\\n\\r\\n.as-date-time-input-icon-btn:hover {\\r\\n    background-color: rgba(169, 169, 169, 0.25);\\r\\n}\\r\\n\\r\\n.as-date-time-input-icon-btn:active {\\r\\n    background-color: rgba(169, 169, 169, 0.5);\\r\\n}\\r\\n\\r\\n\\r\\n.as-date-time-input-icon-btn.as-disabled {\\r\\n    color: rgb(102, 102, 102);\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n.as-date-time-input-follower {\\r\\n    box-sizing: border-box;\\r\\n    background-color: white;\\r\\n    border: 1px solid #ddd;\\r\\n    padding: 5px;\\r\\n}\\r\\n\\r\\n.as-date-time-input-date-picker {\\r\\n    border: none;\\r\\n    box-shadow: none;\\r\\n}\\r\\n\\r\\n.as-date-time-input-picker-header {\\r\\n    text-align: right;\\r\\n    padding-bottom: 5px;\\r\\n}\\r\\n\\r\\n\\r\\n.as-date-time-input-picker-btn {\\r\\n    height: 20px;\\r\\n    min-width: 25px;\\r\\n    padding: 0 5px;\\r\\n    box-sizing: border-box;\\r\\n    font-size: inherit;\\r\\n    border: 1px solid rgb(47, 82, 143);\\r\\n    background-color: rgb(68, 144, 196);\\r\\n    color: white;\\r\\n    border-radius: 0;\\r\\n}\\r\\n\\r\\n.as-date-time-input-picker-btn:active {\\r\\n    background-color: rgb(50, 122, 169);\\r\\n}\\r\\n\\r\\n\\r\\n.as-chrome-time-picker.as-date-time-input-time-picker {\\r\\n    height: 11.8em;\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.as-date-time-input-picker-ctn {\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n.as-date-time-input-picker-ctn > div {\\r\\n    display: inline-block;\\r\\n    white-space: initial;\\r\\n    vertical-align: top;\\r\\n}\\r\\n\\r\\n.as-date-time-input-follower > div {\\r\\n    border-color: white;\\r\\n}\\r\\n\\r\\n.as-date-time-input:hover .as-time-input-clear-btn {\\r\\n    visibility: visible;\\r\\n}\\r\\n\\r\\n.as-date-time-input.as-must-not-null .as-time-input-clear-btn,\\r\\n.as-date-time-input.as-read-only .as-time-input-clear-btn {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n\\r\\n.as-date-time-input.as-read-only .as-date-time-input-icon-btn {\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n\\r\\n.as-date-time-input.as-border-none {\\r\\n    border: none;\\r\\n}\\r\\n\\r\\n\\r\\n.as-date-time-input.as-border-none .as-date-time-input-icon-btn {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-date-time-input.as-border-none input {\\r\\n    width: 100%;\\r\\n    padding-left: 0;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/datetimeinput.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/debugtask.css":
/*!**********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/debugtask.css ***!
  \**********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-debug-task {\\r\\n    position: fixed;\\r\\n    right: 10px;\\r\\n    bottom: 10px;\\r\\n    z-index: 999999;\\r\\n    border-radius: 4px;\\r\\n    background: rgba(169, 169, 171, 0.3);\\r\\n    border: solid 1px rgba(21, 21, 214, 0.5);\\r\\n    min-width: 45px;\\r\\n    min-height: 30px;\\r\\n    font-size: 12px;\\r\\n    padding: 5px;\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n.absol-debug-task-name{\\r\\n    color: darkcyan;\\r\\n}\\r\\n\\r\\n.absol-debug-task-value{\\r\\n    color: rgb(159, 8, 197);\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/debugtask.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/default.css":
/*!********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/default.css ***!
  \********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \":root {\\r\\n    --as-input-height: calc(2rem + 2px);\\r\\n    --as-input-font-size: 1rem;\\r\\n    --as-input-font-family: Arial, Helvetica, sans-serif;\\r\\n    --as-input-vertical-padding: 0.3571em;\\r\\n    --as-input-horizontal-padding: 0.5em;\\r\\n    --as-input-border-color: #ddd;\\r\\n    --as-input-border-radius: 3px;\\r\\n    --as-context-menu-font-size: 1rem;\\r\\n    --as-context-font-family: Arial, Helvetica, sans-serif;\\r\\n    --as-disabled-background-color: #ebebe4;\\r\\n    --as-disabled-text-color: rgb(102, 102, 102);\\r\\n    --icon-background-cover-hover: #91e4fb;\\r\\n    --as-transparent-button-hover-color: rgba(169, 169, 172, 0.1);\\r\\n    --as-transparent-button-focus-color:  rgba(20, 185, 235, 0.3);\\r\\n    --as-transparent-button-active-color:  rgba(169, 169, 172, 0.2);\\r\\n    --as-transparent-button-text-color: rgb(139, 139, 140);\\r\\n    --as-transparent-button-text-hover-color: rgb(107, 107, 107);\\r\\n    --as-transparent-button-text-active-color: rgb(0, 0, 0);\\r\\n\\r\\n    --modal-margin-top: 10vh;\\r\\n    --icon-font-size: 1.42857142857rem;\\r\\n}\\r\\n\\r\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/default.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/draggablestack.css":
/*!***************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/draggablestack.css ***!
  \***************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-draggable-stack {\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n.absol-draggable-stack .drag-zone {\\r\\n    touch-action: none;\\r\\n}\\r\\n\\r\\n.absol-draggable-stack > .as-dragging {\\r\\n    opacity: 0.2 !important;\\r\\n}\\r\\n\\r\\n.absol-draggable-stack-child-container.as-dragging {\\r\\n    opacity: 0.2 !important;\\r\\n}\\r\\n\\r\\n.absol-draggable-stack-clone-container {\\r\\n    position: fixed;\\r\\n    left: 0;\\r\\n    top: 0;\\r\\n    z-index: 100000;\\r\\n    user-select: none;\\r\\n    -moz-user-select: none;\\r\\n    -webkit-user-select: none;\\r\\n    -ms-user-select: none;\\r\\n    pointer-events: all;\\r\\n    opacity: 0.5;\\r\\n    background: white;\\r\\n}\\r\\n\\r\\n.absol-draggable-vstack > .absol-draggable-stack-clone-container {\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n\\r\\n}\\r\\n\\r\\n.absol-draggable-stack-clone-container * {\\r\\n    pointer-events: none !important;\\r\\n}\\r\\n\\r\\n.absol-draggable-stack-clone-container > * {\\r\\n    width: 100% !important;\\r\\n    height: 100% !important;\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-draggable-stack-clone-container.home-going {\\r\\n    transition: top 0.2s;\\r\\n}\\r\\n\\r\\n.absol-draggable-stack-dest-line {\\r\\n    position: absolute;\\r\\n    z-index: 99;\\r\\n    box-sizing: content-box;\\r\\n}\\r\\n\\r\\n.absol-draggable-vstack > .absol-draggable-stack-dest-line {\\r\\n    transition: top 0.1s;\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n    border-top: solid 3px rgb(74, 174, 233);\\r\\n    border-bottom: solid 3px rgb(74, 174, 233);\\r\\n}\\r\\n\\r\\n\\r\\n.absol-draggable-hstack {\\r\\n    --dest-x: 0px;\\r\\n}\\r\\n\\r\\n.absol-draggable-hstack.as-has-dragging::after {\\r\\n    content: \\\"\\\";\\r\\n    position: absolute;\\r\\n    transition: left 0.1s;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    left: calc(var(--dest-x) - 3px);\\r\\n    border-left: solid 3px rgb(74, 174, 233);\\r\\n    border-right: solid 3px rgb(74, 174, 233);\\r\\n}\\r\\n\\r\\n.absol-draggable-hstack.as-no-change::after {\\r\\n    visibility: hidden;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-draggable-hstack > * {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-draggable-vstack {\\r\\n    --dest-y: unset;\\r\\n}\\r\\n\\r\\n/**.as-state-drag*/\\r\\n.absol-draggable-vstack.as-state-drag::after {\\r\\n    content: \\\"\\\";\\r\\n    display: block;\\r\\n    position: absolute;\\r\\n    top: calc(var(--dest-y) - 3px);\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n    transition: top 0.1s;\\r\\n    border-top: solid 3px rgb(74, 174, 233);\\r\\n    border-bottom: solid 3px rgb(74, 174, 233);\\r\\n    z-index: 999;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-draggable-vstack.as-state-no-change::after {\\r\\n    visibility: hidden;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/draggablestack.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/dropdownbox.css":
/*!************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/dropdownbox.css ***!
  \************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"\\r\\n/**********************************************************************************************************************/\\r\\ndiv.as-dropdown-box-common-style {\\r\\n    -webkit-box-shadow: 2px 2px 6px 0px rgba(0, 0, 90, 0.55);\\r\\n    -moz-box-shadow: 2px 2px 6px 0px rgba(0, 0, 90, 0.55);\\r\\n    box-shadow: 2px 2px 6px 0px rgba(0, 0, 90, 0.55);\\r\\n    border: solid 1px rgb(100, 100, 255);\\r\\n    font-family: \\\"Helvetica Neue\\\", Arial, Helvetica, sans-serif;\\r\\n    background-color: white;\\r\\n}\\r\\n\\r\\n.as-dropdown-box-footer {\\r\\n    height: calc(2em + 1px);\\r\\n    border-top: 1px solid #dddddd;\\r\\n    box-sizing: border-box;\\r\\n    padding-left: 0.35em;\\r\\n    white-space: nowrap;\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n\\r\\n.as-dropdown-box-footer > *,\\r\\n.as-dropdown-box-footer::before,\\r\\n.as-dropdown-box-footer-right::before,\\r\\n.as-dropdown-box-footer-right > * {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.as-dropdown-box-footer-right::before,\\r\\n.as-dropdown-box-footer::before {\\r\\n    content: \\\"\\\";\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n.as-dropdown-box-footer > *:not(:last-child) {\\r\\n    margin-right: 6.5em;\\r\\n}\\r\\n\\r\\n.as-dropdown-box-footer .absol-checkbox-label.as-right {\\r\\n    padding-left: 0.35em;\\r\\n}\\r\\n\\r\\n.as-dropdown-box-footer-right {\\r\\n    position: absolute;\\r\\n    right: 10px;\\r\\n    top: 0;\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n.as-dropdown-box-footer a {\\r\\n    cursor: pointer;\\r\\n    margin-left: 30px;\\r\\n}\\r\\n\\r\\n.as-dropdown-box-footer a:hover {\\r\\n    color: #1da1ff;\\r\\n}\\r\\n\\r\\n.as-dropdown-box-footer a.as-select-list-box-cancel-btn {\\r\\n    color: #888888;\\r\\n}\\r\\n\\r\\n.as-dropdown-box-footer a.as-select-list-box-close-btn {\\r\\n    padding: 0 10px;\\r\\n}\\r\\n\\r\\n.as-dropdown-box-footer a.as-select-list-box-cancel-btn:hover {\\r\\n    color: #ea2121;\\r\\n}\\r\\n\\r\\n/********** MOBILE ***************/\\r\\n\\r\\n.am-modal.am-dropdown-box-modal{\\r\\n    z-index: 100001000;\\r\\n}\\r\\n\\r\\n.am-dropdown-box {\\r\\n    font-family: Arial, Helvetica, sans-serif;\\r\\n    font-size: 1rem;\\r\\n    max-width: 95vw;\\r\\n}\\r\\n\\r\\n.am-dropdown-box.as-enable-search .absol-search-text-input{\\r\\n    visibility: visible;\\r\\n}\\r\\n\\r\\n.am-dropdown-box-header {\\r\\n    height: calc(2em + 10px);\\r\\n    display: block;\\r\\n    white-space: nowrap;\\r\\n    box-sizing: border-box;\\r\\n    padding-top: 5px;\\r\\n    padding-bottom: 5px;\\r\\n    padding-left: 10px;\\r\\n    border-bottom: solid 1px #dddddd;\\r\\n}\\r\\n\\r\\n.am-dropdown-box-header .absol-search-text-input {\\r\\n    display: inline-block;\\r\\n    width: calc(100% - 2em - 18px);\\r\\n    vertical-align: middle;\\r\\n    box-sizing: border-box;\\r\\n    background-color: white;\\r\\n    visibility: hidden;\\r\\n}\\r\\n\\r\\n.am-dropdown-box-close-btn {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    border-radius: 50%;\\r\\n    padding: 0;\\r\\n    height: 2em;\\r\\n    width: 2em;\\r\\n    font-size: inherit;\\r\\n    border: none;\\r\\n    outline: none;\\r\\n    margin-left: 10px;\\r\\n    background-color: rgb(255, 255, 255);\\r\\n    color: #7a7a7a;\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n.am-dropdown-box-close-btn span {\\r\\n    font-size: 1.5em;\\r\\n}\\r\\n\\r\\n.am-dropdown-box-close-btn:active {\\r\\n    background-color: rgba(169, 169, 172, 0.3);\\r\\n}\\r\\n\\r\\n.am-dropdown-box-item {\\r\\n    border-bottom: 1px solid #efefef;\\r\\n}\\r\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/dropdownbox.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/droppanel.css":
/*!**********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/droppanel.css ***!
  \**********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"\\r\\n.absol-drop-panel-head {\\r\\n    height: 2.75em;\\r\\n    line-height: 2.75em;\\r\\n    -webkit-box-shadow: 0px 3px 4px -3px rgba(0, 0, 0, 0.75);\\r\\n    -moz-box-shadow: 0px 3px 4px -3px rgba(0, 0, 0, 0.75);\\r\\n    box-shadow: 0px 3px 4px -3px rgba(0, 0, 0, 0.75);\\r\\n    background-color: rgba(240, 240, 242);\\r\\n    color: black;\\r\\n    user-select: none;\\r\\n    -webkit-user-select: none;\\r\\n    -moz-user-select: none;\\r\\n}\\r\\n\\r\\n.absol-drop-panel-head .toggler-ico path {\\r\\n    fill: rgb(104, 104, 104);\\r\\n}\\r\\n\\r\\n\\r\\n.dark .absol-drop-panel-head {\\r\\n    background-color: rgba(54, 54, 56);\\r\\n    color: rgb(204, 204, 204);\\r\\n}\\r\\n\\r\\n.absol-drop-panel.show .absol-drop-panel-body {\\r\\n    height:auto;\\r\\n}\\r\\n\\r\\n.absol-drop-panel-body {\\r\\n    transition: height 0.2s;\\r\\n    height: 0;\\r\\n    overflow-x: hidden;\\r\\n    overflow-y: auto;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-drop-panel.show>.absol-drop-panel-head  .toggle-close{\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.absol-drop-panel:not(.show)>.absol-drop-panel-head  .toggle-open{\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/droppanel.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/dropzone.css":
/*!*********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/dropzone.css ***!
  \*********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-drop-zone {\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/dropzone.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/dualselectbox.css":
/*!**************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/dualselectbox.css ***!
  \**************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".am-dual-select-box {\\r\\n\\r\\n}\\r\\n\\r\\n\\r\\n.am-dual-select-box .absol-selectlist-item span {\\r\\n    white-space: normal;\\r\\n    display: inline-block;\\r\\n    margin-right: 0;\\r\\n    line-height: calc(30rem / 14);\\r\\n}\\r\\n\\r\\n.am-mobile-theme.bsc-white .am-dual-select-box .absol-selectlist-item span{\\r\\n    line-height: calc(30rem / 14);\\r\\n}\\r\\n\\r\\n.am-dual-select-box .absol-selectlist-item {\\r\\n    height: auto;\\r\\n}\\r\\n\\r\\n.am-mobile-theme.bsc-white .am-dual-select-box .absol-selectlist-item {\\r\\n    height: auto;\\r\\n}\\r\\n\\r\\n.am-dual-select-box .absol-selectlist-item:not(:last-child) {\\r\\n    border-bottom: 1px solid #efefef;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/dualselectbox.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/dualselectmenu.css":
/*!***************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/dualselectmenu.css ***!
  \***************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-dual-select-box {\\r\\n    -webkit-box-shadow: 2px 2px 6px 0px rgba(0, 0, 90, 0.55);\\r\\n    -moz-box-shadow: 2px 2px 6px 0px rgba(0, 0, 90, 0.55);\\r\\n    box-shadow: 2px 2px 6px 0px rgba(0, 0, 90, 0.55);\\r\\n    --max-height: 70vh;\\r\\n    box-sizing: border-box;\\r\\n    --dual-list-estimate-width: 0;\\r\\n    width: var(--dual-list-estimate-width);\\r\\n    z-index: 10000000;\\r\\n    background-color: white;\\r\\n    font-family: \\\"Helvetica Neue\\\", Arial, Helvetica, sans-serif;\\r\\n    font-size: 1rem;\\r\\n\\r\\n}\\r\\n\\r\\n.as-dual-select-box-search-ctn {\\r\\n    padding: 5px;\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n}\\r\\n\\r\\n.as-dual-select-box.as-enable-search.as-anchor-6 .as-dual-select-box-search-ctn,\\r\\n.as-dual-select-box.as-enable-search.as-anchor-5 .as-dual-select-box-search-ctn {\\r\\n    bottom: 0;\\r\\n}\\r\\n\\r\\n.as-dual-select-box.as-enable-search.as-anchor-6,\\r\\n.as-dual-select-box.as-enable-search.as-anchor-5 {\\r\\n    padding-bottom: calc(2rem + 10px);\\r\\n}\\r\\n\\r\\n.as-dual-select-box.as-enable-search.as-anchor-1,\\r\\n.as-dual-select-box.as-enable-search.as-anchor-2 {\\r\\n    padding-top: calc(2rem + 10px);\\r\\n}\\r\\n\\r\\n.as-dual-select-box.as-enable-search.as-anchor-1 .as-dual-select-box-search-ctn,\\r\\n.as-dual-select-box.as-enable-search.as-anchor-2 .as-dual-select-box-search-ctn {\\r\\n    top: 0;\\r\\n}\\r\\n\\r\\n\\r\\n.as-dual-select-box-list-ctn {\\r\\n    white-space: nowrap;\\r\\n    display: flex;\\r\\n    align-items: stretch;\\r\\n}\\r\\n\\r\\n.as-dual-select-box:not(.as-enable-search) .as-dual-select-box-search-ctn {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-dual-select-box-list {\\r\\n    display: inline-block;\\r\\n    vertical-align: top;\\r\\n    max-height: calc(var(--max-height) - 2em - 2em - 11px);\\r\\n    overflow-y: auto;\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.as-dual-select-box.as-enable-search .as-dual-select-box-list {\\r\\n    max-height: calc(var(--max-height) - 6rem - 11px);\\r\\n}\\r\\n\\r\\n.as-dual-select-box-arrow-ctn {\\r\\n    display: inline-block;\\r\\n    vertical-align: top;\\r\\n}\\r\\n\\r\\n.as-dual-select-box-arrow-ctn::before,\\r\\n.as-dual-select-box-arrow-ctn span {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.as-dual-select-box-arrow-ctn::before {\\r\\n    content: \\\"\\\";\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n\\r\\n.as-dual-select-box-list:first-child {\\r\\n    border-right: solid 1px #dddddd;\\r\\n}\\r\\n\\r\\n\\r\\n.as-dual-select-box-list:last-child {\\r\\n    border-left: solid 1px #dddddd;\\r\\n    flex-grow: 1;\\r\\n}\\r\\n\\r\\n.as-dual-select-menu.absol-selectmenu {\\r\\n    min-width: calc(var(--dual-list-estimate-text-width) + 5.5em);\\r\\n    --dual-list-estimate-text-width: 20px;\\r\\n}\\r\\n\\r\\n\\r\\n.am-dual-select-menu .absol-selectmenu-holder-item{\\r\\n    position: relative;\\r\\n    height: 100%;\\r\\n    top: unset;\\r\\n    bottom: unset;\\r\\n}\\r\\n\\r\\n.am-dual-select-menu{\\r\\n    width: auto;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/dualselectmenu.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/dvexptree.css":
/*!**********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/dvexptree.css ***!
  \**********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-dv-exp-tree {\\r\\n\\r\\n}\\r\\n\\r\\n.as-dv-exp-tree > .absol-exp-node > .absol-exp-node-level {\\r\\n}\\r\\n\\r\\n.as-dv-exp-tree > .absol-exp-node > .absol-radio-button {\\r\\n    vertical-align: middle;\\r\\n    display: inline-block;\\r\\n    margin-right: 5px;\\r\\n    /*margin-left: 5px;*/\\r\\n}\\r\\n\\r\\n\\r\\n.as-dv-exp-tree:not(.as-has-radio) > .absol-exp-node > .absol-radio-button {\\r\\n    /*visibility: hidden;*/\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n\\r\\n.as-dv-exp-tree > .absol-exp-node > .as-dv-exp-tree-index {\\r\\n    box-sizing: border-box;\\r\\n    padding: 0 0 0 0.5em;\\r\\n    margin-left: 0.5em;\\r\\n    outline: none;\\r\\n    height: 1.2em;\\r\\n    min-width: 3em;\\r\\n    box-shadow: 0 0  0 1px #dddddd;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    background-color: white;\\r\\n}\\r\\n\\r\\n.as-dv-exp-tree > .absol-exp-node > .as-dv-exp-tree-index:hover{\\r\\n    box-shadow: 0 0  0 1px #aaaaaa;\\r\\n}\\r\\n\\r\\n.as-dv-exp-tree:not(.as-has-index-input) > .absol-exp-node > .as-dv-exp-tree-index {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n/*.as-dv-exp-tree>.absol-exp-node:not(.status-open):not(.status-close)>.toggler-ico{*/\\r\\n/*    display: none;*/\\r\\n/*}*/\\r\\n\\r\\n/*.as-dv-exp-tree .absol-exp-node-ext-icon{*/\\r\\n/*    display: none;*/\\r\\n/*}*/\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/dvexptree.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/dynamictable.css":
/*!*************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/dynamictable.css ***!
  \*************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \":root {\\r\\n    --table-row-height: 40px;\\r\\n}\\r\\n\\r\\n\\r\\n.as-dynamic-table-wrapper {\\r\\n    --dt-content-height: 0px;\\r\\n    --dt-scroll-bar-width: 17px;\\r\\n    --dt-content-width: 0;\\r\\n    --dt-header-height: 0;\\r\\n    --dt-fixed-x-width: 0;\\r\\n    --dt-dragging-row-height: 0;\\r\\n    position: relative;\\r\\n\\r\\n    /*padding-right: 17px;*/\\r\\n    /*padding-bottom: 17px;*/\\r\\n    box-sizing: border-box;\\r\\n    height: var(--dt-content-height);\\r\\n    overflow: hidden;\\r\\n}\\r\\n\\r\\n\\r\\n.as-dynamic-table-wrapper.as-inline {\\r\\n    max-width: calc(var(--dt-content-width) + var(--dt-scroll-bar-width));\\r\\n}\\r\\n\\r\\n.as-dynamic-table-wrapper.as-overflow-x.as-has-fixed-col .as-dynamic-table-viewport::before {\\r\\n    content: \\\"\\\";\\r\\n    position: absolute;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    border-right: 2px solid #aaa;\\r\\n    left: calc(var(--dt-fixed-x-width) - 1px);\\r\\n    z-index: 20;\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n.as-dynamic-table-wrapper.as-overflow-y .as-dynamic-table-viewport::after {\\r\\n    content: \\\"\\\";\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    width: 100%;\\r\\n    max-width: var(--dt-content-width);\\r\\n    border-top: 2px solid #aaa;\\r\\n    top: calc(var(--dt-header-height) - 1px);\\r\\n    z-index: 20;\\r\\n}\\r\\n\\r\\n.as-dynamic-table-wrapper.as-has-fixed-col {\\r\\n    max-width: var(--dt-content-width);\\r\\n}\\r\\n\\r\\n\\r\\n.as-dynamic-table-wrapper.as-inline {\\r\\n}\\r\\n\\r\\n\\r\\n.as-dynamic-table-wrapper.as-overflow-x {\\r\\n    padding-bottom: var(--dt-scroll-bar-width);\\r\\n}\\r\\n\\r\\n.as-dynamic-table-wrapper.as-overflow-x {\\r\\n    height: calc(var(--dt-content-height) + var(--dt-scroll-bar-width));\\r\\n}\\r\\n\\r\\n.as-dynamic-table-wrapper.as-overflow-x .as-dynamic-table-hb,\\r\\n.as-dynamic-table-wrapper.as-overflow-y .as-dynamic-table-vb {\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n.as-dynamic-table-wrapper.as-overflow-y {\\r\\n    padding-right: var(--dt-scroll-bar-width);\\r\\n}\\r\\n\\r\\n\\r\\n.as-dynamic-table-wrapper.as-overflow-y.as-has-fixed-col {\\r\\n    max-width: calc(var(--dt-content-width) + var(--dt-scroll-bar-width));\\r\\n}\\r\\n\\r\\n\\r\\n.as-dynamic-table-viewport {\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n    overflow: hidden;\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n\\r\\n.as-dynamic-table.as-dt-fixed-y,\\r\\n.as-dynamic-table.as-fixed-x {\\r\\n    table-layout: fixed;\\r\\n    width: auto;\\r\\n    /*display: inline-block;*/\\r\\n}\\r\\n\\r\\n.as-dynamic-table-fixed-x-ctn {\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    top: 0;\\r\\n    z-index: 6;\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-dynamic-table-wrapper.as-has-fixed-col .as-dynamic-table-fixed-x-ctn {\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n.as-dynamic-table-fixed-xy-ctn {\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    top: 0;\\r\\n    z-index: 9;\\r\\n}\\r\\n\\r\\n\\r\\n.as-dynamic-table-fixed-y-ctn {\\r\\n    position: absolute;\\r\\n    top: 0;\\r\\n    left: 0;\\r\\n    z-index: 6;\\r\\n}\\r\\n\\r\\n.as-dynamic-table-space {\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    top: 0;\\r\\n    width: 100%;\\r\\n}\\r\\n\\r\\n.as-dynamic-table-wrapper.as-has-fixed-col .as-dynamic-table-space,\\r\\n.as-dynamic-table-wrapper.as-inline .as-dynamic-table-space {\\r\\n    width: 8096px;\\r\\n}\\r\\n\\r\\n\\r\\n.as-dynamic-table-vb {\\r\\n    position: absolute;\\r\\n    right: 0;\\r\\n    top: 0;\\r\\n    height: 100%;\\r\\n    width: var(--dt-scroll-bar-width);\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-dynamic-table-wrapper.as-overflow-x .as-dynamic-table-vb {\\r\\n    height: calc(100% - var(--dt-scroll-bar-width));\\r\\n}\\r\\n\\r\\n.as-dynamic-table-hb {\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    bottom: 0;\\r\\n    width: 100%;\\r\\n    height: var(--dt-scroll-bar-width);\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-dynamic-table-wrapper.as-overflow-y .as-dynamic-table-hb {\\r\\n    width: calc(100% - var(--dt-scroll-bar-width));\\r\\n}\\r\\n\\r\\n\\r\\n.as-dynamic-table-wrapper.as-no-paging .absol-page-selector {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-dynamic-table-wrapper .absol-page-selector[data-page-count=\\\"1\\\"] {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n\\r\\n.as-dynamic-table-fixed-x-col {\\r\\n    display: none;\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    top: 0;\\r\\n    width: auto !important;\\r\\n    z-index: 12;\\r\\n}\\r\\n\\r\\n.as-dynamic-table-wrapper.as-has-fixed-col .as-dynamic-table-fixed-x-col {\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n.as-dynamic-table {\\r\\n    font-size: 1rem;\\r\\n    font-family: Arial, Helvetica, sans-serif;\\r\\n    border-collapse: collapse;\\r\\n    box-sizing: border-box;\\r\\n    display: inline-block;\\r\\n    table-layout: fixed;\\r\\n}\\r\\n\\r\\n.as-dt-header {\\r\\n    background-color: #d6d6d6;\\r\\n}\\r\\n\\r\\n.as-dt-header-cell {\\r\\n    font-weight: bold;\\r\\n    padding: 10px;\\r\\n    border: 1px solid #ababab;\\r\\n    position: relative;\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.as-dt-header-cell-resizer {\\r\\n    position: absolute;\\r\\n    right: -2px;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    border-right: 4px solid transparent;\\r\\n    z-index: 5;\\r\\n    cursor: col-resize;\\r\\n    /*display: none;*/\\r\\n}\\r\\n\\r\\n/*\\r\\n.as-dynamic-table-wrapper[id] .as-dt-header-cell[data-col-id] .as-dt-header-cell-resizer {\\r\\n    display: block;\\r\\n}*/\\r\\n\\r\\n.as-dt-header-cell[data-sort-key] {\\r\\n    padding-right: 1.75em;\\r\\n    cursor: pointer;\\r\\n    user-select: none;\\r\\n    -webkit-user-select: none;\\r\\n    -moz-user-select: none;\\r\\n}\\r\\n\\r\\n.as-dt-sort-btn {\\r\\n    display: none;\\r\\n    vertical-align: middle;\\r\\n    line-height: 1.5em;\\r\\n    position: absolute;\\r\\n    right: 0.25em;\\r\\n    top: calc(50% - 0.75em);\\r\\n    color: #a9a9a9;\\r\\n\\r\\n    height: 1.5em;\\r\\n    width: 1.5em;\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n.as-dt-header-cell[data-sort-key] .as-dt-sort-btn {\\r\\n    display: inline-block;\\r\\n}\\r\\n\\r\\n.as-dt-header-cell[data-sort-order=\\\"ascending\\\"] .as-dt-sort-btn .mdi-menu-up,\\r\\n.as-dt-header-cell[data-sort-order=\\\"descending\\\"] .as-dt-sort-btn .mdi-menu-down {\\r\\n    color: #007bff;\\r\\n}\\r\\n\\r\\n.as-dt-sort-btn span {\\r\\n    position: absolute;\\r\\n    display: inline-block;\\r\\n    left: 0;\\r\\n    font-size: 2em;\\r\\n\\r\\n}\\r\\n\\r\\n.as-dt-sort-btn .mdi-menu-up {\\r\\n    bottom: 0.18em;\\r\\n}\\r\\n\\r\\n\\r\\n.as-dt-sort-btn .mdi-menu-down {\\r\\n    top: 0.18em;\\r\\n}\\r\\n\\r\\n\\r\\n.as-dt-body-row:nth-child(odd) {\\r\\n    background-color: rgb(245, 245, 245);\\r\\n}\\r\\n\\r\\n.as-dt-body-row:nth-child(even) {\\r\\n    background-color: white;\\r\\n}\\r\\n\\r\\n.as-dt-body-cell {\\r\\n    padding: 4px 5px;\\r\\n    border: 1px solid #ddd;\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.as-dt-body-row {\\r\\n    height: calc(40em / 14);\\r\\n}\\r\\n\\r\\n.as-dt-body-row {\\r\\n    height: var(--table-row-height);\\r\\n}\\r\\n\\r\\n.as-dynamic-table-wrapper:not(.as-searching) .as-dt-body-row .as-drag-zone {\\r\\n    cursor: move;\\r\\n}\\r\\n\\r\\n.as-dynamic-table-wrapper.as-row-dragging .as-dt-body-row{\\r\\n    transition: transform 0.2s;\\r\\n}\\r\\n\\r\\n.as-dt-body-row.as-dragging {\\r\\n    opacity: 0.0;\\r\\n    /*position: relative;*/\\r\\n    /*z-index: 1000000;*/\\r\\n\\r\\n    /*opacity: 0.8;*/\\r\\n}\\r\\n\\r\\n\\r\\n.as-dt-body-row.as-after-dragging {\\r\\n\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n.as-dt-body-row-cloned-ctn {\\r\\n    position: fixed;\\r\\n    cursor: move;\\r\\n    opacity: 0.7;\\r\\n    -webkit-box-shadow: 2px 2px 9px 0px rgba(20, 20, 20, 1);\\r\\n    -moz-box-shadow: 2px 2px 9px 0px rgba(20, 20, 20, 1);\\r\\n    box-shadow: 2px 2px 9px 0px rgba(20, 20, 20, 1);\\r\\n\\r\\n}\\r\\n\\r\\n.as-dt-body-row-cloned-ctn > table {\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n.as-dt-body-row.as-drag-neighbor {\\r\\n    position: relative;\\r\\n    z-index: 1;\\r\\n    transition: transform 0.05s;\\r\\n\\r\\n}\\r\\n\\r\\n.as-dt-body-row.as-dragging.as-homing {\\r\\n    transition: transform 0.06s;\\r\\n}\\r\\n\\r\\n\\r\\n.as-dynamic-table-wrapper.as-searching .as-drag-zone {\\r\\n    opacity: 0.3;\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n.as-dynamic-table-wrapper .as-drag-zone {\\r\\n    user-select: none;\\r\\n    -webkit-user-select: none;\\r\\n    -moz-user-select: none;\\r\\n}\\r\\n\\r\\n.as-dt-insert-line {\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n    border-top: 2px solid blue;\\r\\n}\\r\\n\\r\\n.as-dt-body-cell > .absol-checkbox:last-child:first-child {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.as-dt-row-index::before {\\r\\n    content: attr(data-idx);\\r\\n}\\r\\n\\r\\n.as-dt-row-index:not([data-idx])::before {\\r\\n    content: \\\"000\\\";\\r\\n}\\r\\n\\r\\n\\r\\n.as-dynamic-table-wrapper.as-no-graphic .as-dt-header-cell,\\r\\n.as-dynamic-table-wrapper.as-no-graphic .as-dt-body-cell {\\r\\n    border: none;\\r\\n}\\r\\n\\r\\n.as-dynamic-table-wrapper.as-no-graphic .as-dt-header,\\r\\n.as-dynamic-table-wrapper.as-no-graphic .as-dt-body-row {\\r\\n    background-color: transparent;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-single-page-scroller-viewport .as-dynamic-table-wrapper {\\r\\n    max-height: calc(var(--single-page-scroller-height) - 20px);\\r\\n}\\r\\n\\r\\n.absol-single-page-scroller-viewport > div:last-child .as-dynamic-table-wrapper {\\r\\n    max-height: calc(var(--single-page-scroller-height) - 20px);\\r\\n}\\r\\n\\r\\n/*Keeview modal*/\\r\\nbody > div > table .as-dynamic-table-wrapper {\\r\\n    width: var(--dt-content-width);\\r\\n    max-width: calc(90vw - 50px);\\r\\n}\\r\\n\\r\\nbody > div > table .as-dynamic-table-wrapper.as-overflow-y {\\r\\n    width: calc(var(--dt-content-width) + var(--dt-scroll-bar-width));\\r\\n    max-width: calc(90vw - 50px);\\r\\n}\\r\\n\\r\\n/*.as-dynamic-table-wrapper*/\\r\\n\\r\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/dynamictable.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/editabletext.css":
/*!*************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/editabletext.css ***!
  \*************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"\\r\\n.absol-editabe-text {\\r\\n    display: inline;\\r\\n}\\r\\n\\r\\n.absol-editabe-text span {\\r\\n    font-style: inherit;\\r\\n    font-size: inherit;\\r\\n    white-space: pre;\\r\\n}\\r\\n\\r\\n.absol-editabe-text-higne {\\r\\n    display: inline-block;\\r\\n    position: relative;\\r\\n    width: 0px;\\r\\n    height: 0ox;\\r\\n}\\r\\n\\r\\n.absol-editabe-text-higne input {\\r\\n    position: absolute;\\r\\n    display: none;\\r\\n    border: none;\\r\\n    top: -2;\\r\\n    left: -2;\\r\\n    padding-top: 0px;\\r\\n    padding-left: 2px;\\r\\n    padding-bottom: 4px;\\r\\n    margin: 0;\\r\\n    background: transparent;\\r\\n    outline: none;\\r\\n    font-style: inherit;\\r\\n    font-size: inherit;\\r\\n}\\r\\n\\r\\n.absol-editabe-text.editing .absol-editabe-text-higne input {\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n.absol-editabe-text.editing span {\\r\\n    visibility: hidden;\\r\\n}\\r\\n\\r\\n.absol-editabe-text.editing {\\r\\n    -webkit-box-shadow: 0px 0px 2px 0px rgba(33, 77, 255, 1);\\r\\n    -moz-box-shadow: 0px 0px 2px 0px rgba(33, 77, 255, 1);\\r\\n    box-shadow: 0px 0px 2px 0px rgba(33, 77, 255, 1);\\r\\n    border-radius: 0.17em;\\r\\n}\\r\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/editabletext.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/emojicounter.css":
/*!*************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/emojicounter.css ***!
  \*************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-emoji-counter {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    color: rgb(38, 141, 145);\\r\\n    box-sizing: border-box;\\r\\n    box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.2);\\r\\n    height:  calc(2rem + 2px);\\r\\n    text-align: center;\\r\\n    min-height:  calc(2rem + 2px);\\r\\n    padding: 0 8px;\\r\\n    border-radius: calc(1rem + 1px);\\r\\n    font-size: 1rem;\\r\\n    background-color: white;\\r\\n    outline: none;\\r\\n}\\r\\n\\r\\n.as-emoji-counter::before {\\r\\n    content: \\\"\\\";\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n.as-emoji-counter-sprite {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    width: 1.285em;\\r\\n    height:  1.285em;\\r\\n}\\r\\n\\r\\n.as-emoji-counter-num {\\r\\n    font-family: \\\"Helvetica Neue\\\", Arial, Helvetica, sans-serif;\\r\\n    margin-left: 0.2em;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    font-size: inherit;\\r\\n    color: inherit;\\r\\n    cursor: default;\\r\\n}\\r\\n\\r\\n.as-emoji-counter-num:empty {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-emoji-counter.as-zero {\\r\\n    background-color: rgba(220, 220, 220);\\r\\n}\\r\\n\\r\\n.as-emoji-counter + .as-emoji-counter {\\r\\n    margin-left: 0.3em;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/emojicounter.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/emojipicker.css":
/*!************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/emojipicker.css ***!
  \************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-emoji-picker {\\r\\n    font-size: calc(12em / 14);\\r\\n    border: 1px solid #dddddd;\\r\\n    box-sizing: border-box;\\r\\n    font-family: Arial, Helvetica, sans-serif;\\r\\n}\\r\\n\\r\\n.as-emoji-picker-preview {\\r\\n    display: inline-block;\\r\\n    vertical-align: top;\\r\\n    width: 5.7em;\\r\\n    height: calc(8em + 30px);\\r\\n    border-right: 1px solid #dddddd;\\r\\n    text-align: center;\\r\\n\\r\\n}\\r\\n\\r\\n\\r\\n.as-emoji-picker-preview-anim {\\r\\n    width: 60px;\\r\\n    height: 60px;\\r\\n    margin-top: 5px;\\r\\n}\\r\\n\\r\\n.as-emoji-picker-preview-desc {\\r\\n    font-size: 12px;\\r\\n    font-weight: bold;\\r\\n    color: black;\\r\\n}\\r\\n\\r\\n.as-emoji-picker-preview-shortcut {\\r\\n    font-size: 12px;\\r\\n    color: rgb(70, 70, 70);\\r\\n}\\r\\n\\r\\n\\r\\n.as-emoji-picker-list {\\r\\n    display: inline-block;\\r\\n    vertical-align: top;\\r\\n    overflow-y: auto;\\r\\n    width: calc(100% - 5.7em - 1px);\\r\\n    height: calc(8em + 30px);\\r\\n    padding: 5px;\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n\\r\\n.as-emoji-picker-item {\\r\\n    display: inline-block;\\r\\n    padding: 5px;\\r\\n    width: 2em;\\r\\n    height: 2em;\\r\\n    box-sizing: border-box;\\r\\n    border-radius: 0.4em;\\r\\n}\\r\\n\\r\\n.as-emoji-picker-item:hover {\\r\\n    background-color: rgba(169, 169, 170, 0.3);\\r\\n}\\r\\n\\r\\n.as-emoji-picker-item:active {\\r\\n    background-color: rgba(169, 169, 170, 0.7);\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/emojipicker.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/emojipickertooltip.css":
/*!*******************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/emojipickertooltip.css ***!
  \*******************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-emoji-picker-tooltip {\\r\\n    --tool-tip-background-color: white;\\r\\n    filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.5));\\r\\n}\\r\\n\\r\\n.as-emoji-picker-tooltip .absol-tooltip-content {\\r\\n    display: block;\\r\\n    padding: 0;\\r\\n    box-sizing: border-box;\\r\\n    position: relative;\\r\\n    white-space: nowrap;\\r\\n    overflow: hidden;\\r\\n}\\r\\n\\r\\n.as-emoji-picker-tooltip-left-btn,\\r\\n.as-emoji-picker-tooltip-right-btn {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    height: 60px;\\r\\n    width: 40px;\\r\\n    font-size: 25px;\\r\\n    padding: 0;\\r\\n    background-color: transparent;\\r\\n    border: none;\\r\\n    color: rgb(155, 155, 175);\\r\\n    outline: none;\\r\\n}\\r\\n\\r\\n.as-emoji-picker-tooltip-left-btn:hover,\\r\\n.as-emoji-picker-tooltip-right-btn:hover {\\r\\n    background-color: rgba(156, 156, 156, 0.15);\\r\\n}\\r\\n\\r\\n.as-emoji-picker-tooltip-left-btn:active,\\r\\n.as-emoji-picker-tooltip-right-btn:active {\\r\\n    background-color: rgba(0, 0, 0, 0.15);\\r\\n}\\r\\n\\r\\n.as-emoji-picker-tooltip-left-btn:disabled,\\r\\n.as-emoji-picker-tooltip-right-btn:disabled {\\r\\n    pointer-events: none;\\r\\n    color: rgb(230, 230, 235);\\r\\n}\\r\\n\\r\\n.as-emoji-picker-tooltip-scroller {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    position: relative;\\r\\n    width: 360px;\\r\\n    height: 60px;\\r\\n    overflow: hidden;\\r\\n}\\r\\n\\r\\n.as-emoji-picker-tooltip-icon-list {\\r\\n    position: absolute;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    left: 0;\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n\\r\\n.as-emoji-picker-tooltip:not(.as-scrolling) .as-emoji-picker-tooltip-icon-list {\\r\\n    transition: left 0.5s;\\r\\n}\\r\\n\\r\\n.as-emoji-picker-tooltip-icon-btn {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    height: 60px;\\r\\n    width: 60px;\\r\\n    padding: 0;\\r\\n    border: none;\\r\\n    outline: none;\\r\\n    background-color: transparent;\\r\\n}\\r\\n\\r\\n\\r\\n.as-emoji-picker-tooltip-icon {\\r\\n    transition: width 0.3s, height 0.3s;\\r\\n    width: 35px;\\r\\n    height: 35px;\\r\\n}\\r\\n\\r\\n.as-emoji-picker-tooltip-icon-btn:hover .as-emoji-picker-tooltip-icon {\\r\\n    width: 45px;\\r\\n    height: 45px;\\r\\n}\\r\\n\\r\\n.as-emoji-picker-tooltip-remove-btn {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    height: 60px;\\r\\n    width: 60px;\\r\\n    padding: 0;\\r\\n    border: none;\\r\\n    outline: none;\\r\\n    background-color: transparent;\\r\\n    font-size: 40px;\\r\\n    color: rgb(185, 185, 185);\\r\\n}\\r\\n\\r\\n.as-emoji-picker-tooltip-remove-btn:hover {\\r\\n    color: rgb(255, 30, 30);\\r\\n}\\r\\n\\r\\n\\r\\n.as-emoji-picker-tooltip:not(.as-mobile) .as-emoji-picker-tooltip-page-indicator {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-emoji-picker-tooltip.as-mobile .as-emoji-picker-tooltip-right-btn,\\r\\n.as-emoji-picker-tooltip.as-mobile .as-emoji-picker-tooltip-left-btn {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n\\r\\n@media (max-width: 410px) and (min-width: 310px) {\\r\\n    .as-emoji-picker-tooltip-left-btn,\\r\\n    .as-emoji-picker-tooltip-right-btn {\\r\\n        height: 36px;\\r\\n        width: 24px;\\r\\n        font-size: 15px;\\r\\n    }\\r\\n\\r\\n    .as-emoji-picker-tooltip-scroller {\\r\\n        width: 216px;\\r\\n        height: 36px;\\r\\n    }\\r\\n\\r\\n    .as-emoji-picker-tooltip-icon-btn {\\r\\n        height: 36px;\\r\\n        width: 36px;\\r\\n    }\\r\\n\\r\\n\\r\\n    .as-emoji-picker-tooltip-icon {\\r\\n        width: 21px;\\r\\n        height: 21px;\\r\\n    }\\r\\n\\r\\n    .as-emoji-picker-tooltip-icon-btn:hover .as-emoji-picker-tooltip-icon {\\r\\n        width: 27px;\\r\\n        height: 27px;\\r\\n    }\\r\\n\\r\\n    .as-emoji-picker-tooltip-remove-btn {\\r\\n        height: 36px;\\r\\n        width: 36px;\\r\\n        font-size: 24px;\\r\\n    }\\r\\n}\\r\\n\\r\\n@media (max-width: 510px) and (min-width: 410px) {\\r\\n    .as-emoji-picker-tooltip-left-btn,\\r\\n    .as-emoji-picker-tooltip-right-btn {\\r\\n        height: 48px;\\r\\n        width: 32px;\\r\\n        font-size: 20px;\\r\\n    }\\r\\n\\r\\n\\r\\n    .as-emoji-picker-tooltip-scroller {\\r\\n        width: 288px;\\r\\n        height: 48px;\\r\\n    }\\r\\n\\r\\n\\r\\n    .as-emoji-picker-tooltip-icon-btn {\\r\\n        height: 48px;\\r\\n        width: 48px;\\r\\n    }\\r\\n\\r\\n\\r\\n    .as-emoji-picker-tooltip-icon {\\r\\n        width: 28px;\\r\\n        height: 28px;\\r\\n    }\\r\\n\\r\\n    .as-emoji-picker-tooltip-icon-btn:hover .as-emoji-picker-tooltip-icon {\\r\\n        width: 36px;\\r\\n        height: 36px;\\r\\n    }\\r\\n\\r\\n    .as-emoji-picker-tooltip-remove-btn {\\r\\n        height: 48px;\\r\\n        width: 48px;\\r\\n        font-size: 32px;\\r\\n    }\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/emojipickertooltip.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/emojiuserlisttooltip.css":
/*!*********************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/emojiuserlisttooltip.css ***!
  \*********************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-emoji-user-list-tooltip {\\r\\n    --tool-tip-background-color: white;\\r\\n    filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.5));\\r\\n    text-align: left;\\r\\n}\\r\\n\\r\\n\\r\\n.as-emoji-user-list-tooltip-emoji {\\r\\n    position: absolute;\\r\\n    width: 60px;\\r\\n    height: 60px;\\r\\n    top: -30px;\\r\\n    left: calc(50% - 30px);\\r\\n    z-index: 2;\\r\\n\\r\\n}\\r\\n\\r\\n.as-emoji-user-list-tooltip .absol-tooltip-content {\\r\\n    min-height: 60px;\\r\\n    min-width: 120px;\\r\\n    padding-top: 25px;\\r\\n}\\r\\n\\r\\n.as-emoji-user-list-tooltip-user{\\r\\n    padding: 3px  10px 3px 0 ;\\r\\n}\\r\\n\\r\\n.as-emoji-user-list-tooltip-user.as-clickable{\\r\\n    cursor: pointer;\\r\\n}\\r\\n\\r\\n.as-emoji-user-list-tooltip-avatar {\\r\\n    width: 30px;\\r\\n    height: 30px;\\r\\n    border-radius: 50%;\\r\\n    background-size: cover;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.as-emoji-user-list-tooltip-name {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    margin-left: 10px;\\r\\n    color: rgb(70, 70, 72);\\r\\n    font-family: \\\"Helvetica Neue\\\", Arial, Helvetica, sans-serif;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/emojiuserlisttooltip.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/exptree.css":
/*!********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/exptree.css ***!
  \********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-exp-node {\\r\\n    height: 2em;\\r\\n    text-align: left;\\r\\n    background-color: transparent;\\r\\n    border: none;\\r\\n    outline: none;\\r\\n    white-space: nowrap;\\r\\n    font-size: inherit;\\r\\n    overflow: hidden;\\r\\n    text-overflow: ellipsis;\\r\\n    position: relative;\\r\\n    color: rgb(33, 33, 34);\\r\\n}\\r\\n\\r\\n.absol-exp-node .toggler-ico {\\r\\n    width: 0.7em;\\r\\n    height: 0.7em;\\r\\n    margin-right: 0.35em;\\r\\n}\\r\\n\\r\\n.absol-exp-node .toggler-ico path {\\r\\n    fill: rgb(104, 104, 104);\\r\\n}\\r\\n\\r\\n.absol-exp-node.status-removable .toggler-ico,\\r\\n.absol-exp-node.status-modified .toggler-ico {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.absol-exp-node:not(.status-open) .toggle-open {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.absol-exp-node:not(.status-close) .toggle-close {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n.absol-exp-node:hover .remove-ico {\\r\\n    visibility: visible;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n.absol-exp-node.status-removable .remove-ico,\\r\\n.absol-exp-node.status-modified .remove-ico {\\r\\n    display: inline-block;\\r\\n}\\r\\n\\r\\n.absol-exp-node.status-removable .remove-ico .modified {\\r\\n    visibility: hidden;\\r\\n}\\r\\n\\r\\n.absol-exp-node.status-modified .remove-ico .close {\\r\\n    visibility: hidden;\\r\\n}\\r\\n\\r\\n.absol-exp-node.status-modified .remove-ico:hover .close {\\r\\n    visibility: visible;\\r\\n}\\r\\n\\r\\n.absol-exp-node.status-modified .remove-ico:hover .modified {\\r\\n    visibility: hidden;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-exp-node .remove-ico {\\r\\n    width: 0.9em;\\r\\n    height: 0.9em;\\r\\n    display: none;\\r\\n    visibility: hidden;\\r\\n    margin-left: -0.3em;\\r\\n    margin-right: 0.45em;\\r\\n}\\r\\n\\r\\n.absol-exp-node .remove-ico .close,\\r\\n.absol-exp-node .remove-ico .modified {\\r\\n    fill: rgb(169, 169, 169);\\r\\n    stroke: none;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-exp-node.has-status {\\r\\n    padding-right: 2.5em;\\r\\n}\\r\\n\\r\\n.absol-exp-node>div,\\r\\n.absol-exp-node>svg {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-exp-node .editing input {\\r\\n    color: khaki;\\r\\n    padding-top: 2px;\\r\\n    padding-bottom: 2px;\\r\\n}\\r\\n\\r\\n.absol-exp-node:hover {\\r\\n    background-color: var(--as-transparent-button-hover-color);\\r\\n}\\r\\n\\r\\n.absol-exp-node:focus,\\r\\n.absol-exp-node.as-active:focus {\\r\\n    background-color: var(--as-transparent-button-focus-color);\\r\\n}\\r\\n\\r\\n.absol-exp-node.as-active {\\r\\n    background-color: var(--as-transparent-button-active-color);\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n.absol-exp-node-name {\\r\\n    /* -webkit-touch-callout: none;\\r\\n    -webkit-user-select: none;\\r\\n    -khtml-user-select: none;\\r\\n    -moz-user-select: none;\\r\\n    -ms-user-select: none; */\\r\\n    user-select: none;\\r\\n    vertical-align: middle;\\r\\n    color: black;\\r\\n    margin-left: 0.5em;\\r\\n}\\r\\n\\r\\n.absol-exp-node-desc {\\r\\n    color: rgb(104, 104, 104);\\r\\n    margin-left: 0.5em;\\r\\n    font-size: 0.85em;\\r\\n}\\r\\n\\r\\n.absol-exp-node-desc:empty {\\r\\n    margin-left: 0;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-exp-node-expand-icon {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    margin-right: 0.2em;\\r\\n    height: 0.5em;\\r\\n    width: 0.5em;\\r\\n}\\r\\n\\r\\nimg.absol-exp-node-ext-icon {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.absol-exp-node-ext-icon,\\r\\n.absol-exp-node-ext-icon>img {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    width: 1.5em;\\r\\n    height: 1.5em;\\r\\n}\\r\\n\\r\\ndiv.absol-exp-node-ext-icon:empty {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\ndiv.absol-exp-node-ext-icon {\\r\\n    text-align: center;\\r\\n}\\r\\n\\r\\n.absol-exp-node-ext-icon>.mdi,\\r\\n.absol-exp-node-ext-icon>span .absol-exp-node-ext-icon>svg {\\r\\n    line-height: 1em;\\r\\n    font-size: 1.5em;\\r\\n}\\r\\n\\r\\nimg.absol-exp-node-ext-icon[src] {\\r\\n    display: inline-block;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-exp-tree>.absol-exp-node {\\r\\n    width: 100%;\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n.absol-exp-tree.hide-children>.absol-exp-items {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n\\r\\n.dark .toggler-ico path {\\r\\n    fill: rgb(169, 169, 169);\\r\\n}\\r\\n\\r\\n\\r\\n.dark .absol-exp-node-name {\\r\\n    color: rgb(204, 204, 204);\\r\\n}\\r\\n\\r\\n.dark .absol-exp-node-desc {\\r\\n    color: rgb(169, 169, 170);\\r\\n}\\r\\n\\r\\n.dark .absol-exp-node {\\r\\n    color: rgb(169, 169, 170);\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/exptree.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/fileinputbox.css":
/*!*************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/fileinputbox.css ***!
  \*************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-file-input-box {\\r\\n    font-size: 14px;\\r\\n    position: relative;\\r\\n    width: 100px;\\r\\n    height: 100px;\\r\\n    box-sizing: border-box;\\r\\n    border: 1px solid #dddddd;\\r\\n    background-color: white;\\r\\n    font-family: Arial, Helvetica, sans-serif;\\r\\n    overflow: visible;\\r\\n}\\r\\n\\r\\n.as-file-input-box-trigger:hover + .as-file-input-box-upload-overlay,\\r\\n.as-file-input-box-trigger.as-drag-over + .as-file-input-box-upload-overlay {\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n.as-file-input-box-trigger input {\\r\\n    visibility: hidden;\\r\\n    opacity: 0;\\r\\n}\\r\\n\\r\\n.as-file-input-box-upload-overlay {\\r\\n    display: none;\\r\\n    pointer-events: none;\\r\\n    background-color: rgba(30, 30, 80, 0.3);\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    z-index: 5;\\r\\n    overflow: hidden;\\r\\n    text-align: center;\\r\\n    white-space: nowrap;\\r\\n    font-size: 3em;\\r\\n    color: #b0fffb;\\r\\n}\\r\\n\\r\\n.as-file-input-box-upload-overlay::before,\\r\\n.as-file-input-box-upload-overlay > span {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.as-file-input-box-upload-overlay::before {\\r\\n    content: \\\"\\\";\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n\\r\\n.as-file-input-box-trigger {\\r\\n    position: absolute;\\r\\n    z-index: 2;\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    opacity: 0;\\r\\n}\\r\\n\\r\\n.as-file-input-box:not(.as-has-file-name) .as-file-input-box-file-name,\\r\\n.as-file-input-box:not(.as-has-file-name) .as-file-input-box-file-name + br,\\r\\n.as-file-input-box:not(.as-has-file-size) .as-file-input-box-file-size,\\r\\n.as-file-input-box:not(.as-has-value) .as-file-input-box-action-left,\\r\\n.as-file-input-box:not(.as-has-value) .as-file-input-box-action-right,\\r\\n.as-file-input-box:not(.as-downloadable) .as-file-input-box-action-right,\\r\\n.as-file-input-box:not(.as-removable) .as-file-input-box-action-left,\\r\\n.as-file-input-box:not(.as-allow-upload) .as-file-input-box-trigger {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n\\r\\n.as-file-input-box-background {\\r\\n    position: absolute;\\r\\n    z-index: 1;\\r\\n    left: 4%;\\r\\n    top: 4%;\\r\\n    right: 4%;\\r\\n    bottom: 4%;\\r\\n    background-size: contain;\\r\\n    background-repeat: no-repeat;\\r\\n    background-position: center;\\r\\n    overflow: hidden;\\r\\n}\\r\\n\\r\\n.as-file-input-box.as-allow-upload .as-file-input-box-background {\\r\\n    background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNhYWFhYWEiIGQ9Ik0xMyw5SDE4LjVMMTMsMy41VjlNNiwySDE0TDIwLDhWMjBBMiwyIDAgMCwxIDE4LDIySDZDNC44OSwyMiA0LDIxLjEgNCwyMFY0QzQsMi44OSA0Ljg5LDIgNiwyTTExLDE1VjEySDlWMTVINlYxN0g5VjIwSDExVjE3SDE0VjE1SDExWiIgLz4NCjwvc3ZnPg==);\\r\\n}\\r\\n\\r\\n\\r\\n.as-file-input-box-info {\\r\\n    position: absolute;\\r\\n    bottom: 0;\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n    padding: 2px;\\r\\n    z-index: 3;\\r\\n    overflow: hidden;\\r\\n    text-overflow: ellipsis;\\r\\n    background-color: rgba(255, 255, 255, 0.3);\\r\\n    pointer-events: none;\\r\\n    text-align: center;\\r\\n}\\r\\n\\r\\n.as-file-input-box-file-name {\\r\\n    font-size: inherit;\\r\\n    color: black;\\r\\n    text-shadow: 0 0 5px white;\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n.as-file-input-box-action-left,\\r\\n.as-file-input-box-action-right {\\r\\n    position: absolute;\\r\\n    z-index: 6;\\r\\n    top: 0;\\r\\n}\\r\\n\\r\\n\\r\\n.as-file-input-box-action-left {\\r\\n    left: 0;\\r\\n}\\r\\n\\r\\n\\r\\n.as-file-input-box-action-right {\\r\\n    right: 0;\\r\\n}\\r\\n\\r\\n.as-file-input-box button {\\r\\n    height: 2em;\\r\\n    width: 2em;\\r\\n    padding: 0;\\r\\n    border: none;\\r\\n    background-color: rgba(255, 255, 255, 0.3);\\r\\n    border-radius: 0;\\r\\n}\\r\\n\\r\\n.as-file-input-box button span {\\r\\n    font-size: 1.5em;\\r\\n}\\r\\n\\r\\n.as-file-input-box .mdi-close {\\r\\n    color: rgb(250, 100, 100);\\r\\n}\\r\\n\\r\\n.as-file-input-box .mdi-download {\\r\\n    color: rgb(100, 100, 250);\\r\\n}\\r\\n\\r\\n.as-file-input-box button:hover .mdi-close {\\r\\n    color: rgb(250, 50, 50);\\r\\n}\\r\\n\\r\\n.as-file-input-box button:hover .mdi-download {\\r\\n    color: rgb(50, 50, 250);\\r\\n}\\r\\n\\r\\n.as-file-input-box button:active .mdi-close {\\r\\n    color: rgb(250, 0, 0);\\r\\n}\\r\\n\\r\\n.as-file-input-box button:active .mdi-download {\\r\\n    color: rgb(0, 0, 250);\\r\\n}\\r\\n\\r\\n.as-file-input-box-checked {\\r\\n    display: none;\\r\\n    box-sizing: border-box;\\r\\n    z-index: 4;\\r\\n    position: absolute;\\r\\n    left: -1px;\\r\\n    top: -1px;\\r\\n    bottom: -1px;\\r\\n    right: -1px;\\r\\n    pointer-events: none;\\r\\n    border: 3px solid #0a90eb;\\r\\n    overflow: hidden;\\r\\n}\\r\\n\\r\\n.as-file-input-box.as-checked .as-file-input-box-checked{\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n.as-file-input-box-checked::before {\\r\\n    content: \\\"\\\";\\r\\n    display: block;\\r\\n    position: absolute;\\r\\n    right: -20px;\\r\\n    top: -20px;\\r\\n    width: 40px;\\r\\n    height: 40px;\\r\\n    transform: rotate(45deg);\\r\\n    background-color: #0a90eb;\\r\\n}\\r\\n\\r\\n.as-file-input-box-checked .mdi {\\r\\n    display: inline-block;\\r\\n    position: absolute;\\r\\n    right: 0;\\r\\n    top: 0;\\r\\n    font-size: 14px;\\r\\n    color: white;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/fileinputbox.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/filelistinput.css":
/*!**************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/filelistinput.css ***!
  \**************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"\\r\\n.as-file-list-input {\\r\\n    padding: 5px;\\r\\n    border: 1px solid #dddddd;\\r\\n    box-sizing: border-box;\\r\\n    overflow: auto;\\r\\n    --item-width: 100%;\\r\\n    --item-require-width: 300px;\\r\\n    position: relative;\\r\\n    min-height: 42px;\\r\\n}\\r\\n\\r\\n.as-file-list-input.as-border-none {\\r\\n    border: none;\\r\\n    padding: 0;\\r\\n}\\r\\n\\r\\n.as-file-list-input.as-disabled {\\r\\n    background-color: var(--as-disabled-background-color);\\r\\n}\\r\\n\\r\\n.as-file-list-input.as-disabled > * {\\r\\n    opacity: 0.5;\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n.as-file-list-input-upload-overlay {\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    overflow: hidden;\\r\\n    text-align: center;\\r\\n    white-space: nowrap;\\r\\n    pointer-events: none;\\r\\n    background-color: rgba(30, 30, 80, 0.3);\\r\\n    color: #b0fffb;\\r\\n}\\r\\n\\r\\n.as-file-list-input-upload-overlay::before {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    height: 100%;\\r\\n    content: \\\"\\\";\\r\\n}\\r\\n\\r\\n.as-file-list-input-upload-overlay > span {\\r\\n    font-size: 30px;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.as-file-list-input:not(.as-drag-over) .as-file-list-input-upload-overlay,\\r\\n.as-file-list-input:not(.as-droppable) .as-file-list-input-upload-overlay,\\r\\n.as-file-list-input:not(.as-droppable) .as-file-list-drag-file-text,\\r\\n.as-file-list-input.as-read-only .as-file-list-input-upload-overlay {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n/*span.mdi.mdi-upload*/\\r\\n\\r\\n.as-file-list-input .as-file-input-box {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    margin-right: 10px;\\r\\n}\\r\\n\\r\\n.as-file-list-input.as-read-only .as-file-list-input-add {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-file-list-input-add {\\r\\n    border: none;\\r\\n    width: 3.5em;\\r\\n    border-radius: 5px;\\r\\n    background-color: rgba(235, 235, 235, 0.2);\\r\\n    height: calc(2em + 2px);\\r\\n    padding-bottom: 10px;\\r\\n    box-sizing: border-box;\\r\\n    display: inline-block;\\r\\n    overflow: hidden;\\r\\n    position: relative;\\r\\n    vertical-align: middle;\\r\\n    margin-right: 5px;\\r\\n    font-size: inherit;\\r\\n}\\r\\n\\r\\n\\r\\n.as-file-list-input-add:hover {\\r\\n    background-color: rgb(235, 235, 235);\\r\\n}\\r\\n\\r\\n.as-file-list-input-add:active {\\r\\n    background-color: rgb(212, 212, 212);\\r\\n}\\r\\n\\r\\n\\r\\n.as-file-list-input-add input {\\r\\n    opacity: 0;\\r\\n    visibility: hidden;\\r\\n}\\r\\n\\r\\n.as-file-list-input-add-icon-ctn {\\r\\n    font-size: 1.5em;\\r\\n    text-align: center;\\r\\n    color: rgb(100, 100, 250);\\r\\n    position: absolute;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n    white-space: nowrap;\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n.as-file-list-input-add-icon-ctn span {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.as-file-list-input-add-icon-ctn::before {\\r\\n    content: \\\"\\\";\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n.as-file-list-input.as-drag-over.as-droppable .as-file-list-input-add,\\r\\n.as-file-list-input.as-drag-over .as-file-list-drag-file-text {\\r\\n    visibility: hidden;\\r\\n}\\r\\n\\r\\n.as-file-list-item {\\r\\n    position: relative;\\r\\n    height: calc(2em + 2px);\\r\\n    font-size: 1rem;\\r\\n    font-family: Arial, Helvetica, sans-serif;\\r\\n    width: calc(var(--item-width) - 5px);\\r\\n    padding-left: 2.3em;\\r\\n    white-space: nowrap;\\r\\n    box-sizing: border-box;\\r\\n    user-select: none;\\r\\n    -webkit-user-select: none;\\r\\n    -moz-user-select: none;\\r\\n    padding-right: calc(2.3em + 5px);\\r\\n}\\r\\n\\r\\n.as-file-list-item .as-file-list-item-check {\\r\\n    display: none;\\r\\n    position: absolute;\\r\\n    left: 0.1em;\\r\\n    top:calc(50% - 1px - 0.5em);\\r\\n\\r\\n\\r\\n}\\r\\n\\r\\n\\r\\n.as-file-list-input.as-show-check .as-file-list-item .as-file-list-item-check {\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n.as-file-list-input.as-show-check .as-file-list-item\\r\\n{\\r\\n    padding-left: 3.5em ;\\r\\n}\\r\\n\\r\\n.as-file-list-input.as-show-check .as-file-list-item .as-file-list-item-icon{\\r\\n    left: 1.2em;\\r\\n}\\r\\n\\r\\n.as-file-list-item-icon {\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    top: calc(50% - 1em - 1px);\\r\\n    bottom: 0;\\r\\n    width: calc(2em + 2px);\\r\\n    height: calc(2em + 2px);\\r\\n}\\r\\n\\r\\n\\r\\n.as-file-list-item-name {\\r\\n    color: rgb(89, 89, 95);\\r\\n    display: inline-block;\\r\\n    overflow-x: hidden;\\r\\n    vertical-align: middle;\\r\\n    width: 100%;\\r\\n    text-overflow: ellipsis;\\r\\n    white-space: nowrap;\\r\\n    font-weight: bold;\\r\\n}\\r\\n\\r\\n\\r\\n.as-file-list-item::before {\\r\\n    content: \\\"\\\";\\r\\n    display: inline-block;\\r\\n    height: 100%;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n\\r\\n.as-file-list-input .as-file-list-item {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    margin-bottom: 5px;\\r\\n    margin-right: 5px;\\r\\n}\\r\\n\\r\\n.as-file-list-input:not(.as-empty) .as-file-list-drag-file-text,\\r\\n.as-file-list-input.as-read-only .as-file-list-drag-file-text {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n\\r\\n.as-file-list-item:hover {\\r\\n    background-color: rgba(169, 169, 172, 0.1);\\r\\n}\\r\\n\\r\\n\\r\\n.as-file-list-input .as-file-list-item:hover .as-file-list-item-quick-btn {\\r\\n    visibility: visible;\\r\\n}\\r\\n\\r\\n\\r\\n.as-file-list-item-quick-btn {\\r\\n    position: absolute;\\r\\n    border: none;\\r\\n    background-color: transparent;\\r\\n    outline: none;\\r\\n    border-radius: 3px;\\r\\n    height: 2em;\\r\\n    width: 2em;\\r\\n    font-size: inherit;\\r\\n    padding: 0;\\r\\n    right: 5px;\\r\\n    top: calc(50% - 1em);\\r\\n    visibility: hidden;\\r\\n}\\r\\n\\r\\n\\r\\n.as-file-list-item-quick-btn.as-quick-menu-attached {\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n.as-file-list-item-quick-btn > span {\\r\\n    font-size: 1.2em;\\r\\n}\\r\\n\\r\\n\\r\\n.as-file-list-item-quick-btn.as-active {\\r\\n    background-color: rgba(20, 185, 235, 0.3);\\r\\n}\\r\\n\\r\\n.as-file-list-item-quick-btn:hover {\\r\\n    background-color: #91e4fb77;\\r\\n}\\r\\n\\r\\n.as-file-list-item-quick-btn:active {\\r\\n    background-color: #91e4fb;\\r\\n\\r\\n}\\r\\n\\r\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/filelistinput.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/finder.css":
/*!*******************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/finder.css ***!
  \*******************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-finder {\\r\\n    font-size: 1rem;\\r\\n    position: relative;\\r\\n    --finder-header-height: 51px;\\r\\n    --finder-nav-width: 250px;\\r\\n    overflow: hidden;\\r\\n    font-family: Arial, Helvetica, sans-serif;\\r\\n}\\r\\n\\r\\n.as-finder.as-compact-mode {\\r\\n    --finder-header-height: 0;\\r\\n}\\r\\n\\r\\n.as-finder.as-compact-mode .as-finder-header {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-finder-header {\\r\\n    position: absolute;\\r\\n    top: 0;\\r\\n    left: 0;\\r\\n    height: var(--finder-header-height);\\r\\n    width: 100%;\\r\\n    border-bottom: 1px solid #dddddd;\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.as-finder-header .as-flexicon-button {\\r\\n    min-width: 110px;\\r\\n}\\r\\n\\r\\n.as-finder-nav-ctn,\\r\\n.as-finder-search-ctn {\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    top: var(--finder-header-height);\\r\\n    width: var(--finder-nav-width);\\r\\n    bottom: 0;\\r\\n    border-right: 1px solid #dddddd;\\r\\n    padding-top: 29px;\\r\\n    background-color: white;\\r\\n    z-index: 20;\\r\\n}\\r\\n\\r\\n.as-finder-nav-ctn {\\r\\n}\\r\\n\\r\\n.as-finder-search-ctn {\\r\\n    visibility: hidden;\\r\\n\\r\\n}\\r\\n\\r\\n\\r\\n.as-finder-nav-header,\\r\\n.as-finder-search-header {\\r\\n    display: flex;\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    top: 0;\\r\\n    right: 0;\\r\\n    height: 29px;\\r\\n    box-sizing: border-box;\\r\\n    border-bottom: 1px solid #dddddd;\\r\\n    align-items: center;\\r\\n}\\r\\n\\r\\n.as-finder-nav-header-left {\\r\\n    flex-grow: 1;\\r\\n}\\r\\n\\r\\n.as-finder-nav-header-right button {\\r\\n    height: 100%;\\r\\n    width: 30px;\\r\\n    margin-left: 5px;\\r\\n}\\r\\n\\r\\n.as-finder-nav-ctn > .as-exp-group,\\r\\n.as-finder-search-ctn > .as-finder-search-body {\\r\\n    overflow-y: auto;\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n\\r\\n.as-finder-search-body {\\r\\n    padding: 10px 5px;\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n\\r\\n.as-finder-search-field {\\r\\n    padding-top: 10px;\\r\\n}\\r\\n\\r\\n.as-finder-search-field > div {\\r\\n    display: inline-block;\\r\\n}\\r\\n\\r\\n.as-finder-search-field > div:first-child {\\r\\n    width: 5em;\\r\\n}\\r\\n\\r\\n\\r\\n.as-finder-search-footer {\\r\\n    text-align: center;\\r\\n    padding-top: 20px;\\r\\n\\r\\n}\\r\\n\\r\\n.as-finder-search-footer button {\\r\\n    min-width: 100px;\\r\\n}\\r\\n\\r\\n.as-finder-search-footer button:not(:last-child) {\\r\\n    margin-right: 20px;\\r\\n}\\r\\n\\r\\n.as-finder-body {\\r\\n    position: absolute;\\r\\n    right: 0;\\r\\n    left: var(--finder-nav-width);\\r\\n    top: var(--finder-header-height);\\r\\n    bottom: 0;\\r\\n    padding-top: 29px;\\r\\n}\\r\\n\\r\\n.as-finder-content-header {\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    top: 0;\\r\\n    right: 0;\\r\\n    height: 29px;\\r\\n    box-sizing: border-box;\\r\\n    border-bottom: 1px solid white;\\r\\n    display: flex;\\r\\n\\r\\n}\\r\\n\\r\\n.as-finder-content-header-left {\\r\\n    flex-grow: 1;\\r\\n}\\r\\n\\r\\n.as-finder:not(.as-mobile) .as-finder-content-header-right::after {\\r\\n    content: \\\"Kéo thả file vào đây để tải lên\\\";\\r\\n    color: rgb(100, 100, 180);\\r\\n    font-style: italic;\\r\\n    line-height: 28px;\\r\\n    padding-right: 10px;\\r\\n    display: inline-block;\\r\\n}\\r\\n\\r\\n\\r\\n.as-finder-content-ctn {\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n\\r\\n.as-finder-normal-action-button-ctn,\\r\\n.as-finder-tiny-action-button-ctn {\\r\\n    position: absolute;\\r\\n    left: 10px;\\r\\n    top: calc(50% - 15px);\\r\\n    white-space: nowrap;\\r\\n    max-width: calc(100% - 50px);\\r\\n    overflow: hidden;\\r\\n}\\r\\n\\r\\n.as-finder-normal-action-button-ctn > button:not(:last-child),\\r\\n.as-finder-tiny-action-button-ctn > button:not(:last-child) {\\r\\n    margin-right: 10px;\\r\\n}\\r\\n\\r\\n.as-finder-tiny-action-button-ctn button,\\r\\n.as-finder-content-header button:not(.as-ribbon-button) {\\r\\n    background-color: transparent;\\r\\n    border: none;\\r\\n    border-radius: 3px;\\r\\n    width: 30px;\\r\\n    height: 30px;\\r\\n    font-size: inherit;\\r\\n    padding: 0;\\r\\n    color: var(--as-transparent-button-text-color);\\r\\n}\\r\\n\\r\\n.as-finder-content-header button.as-ribbon-button {\\r\\n    height: 30px;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n.as-finder-tiny-action-button-ctn button span {\\r\\n    font-size: 1.3em;\\r\\n}\\r\\n\\r\\n.as-finder-tiny-action-button-ctn button:hover {\\r\\n    color: var(--as-transparent-button-text-hover-color);\\r\\n}\\r\\n\\r\\n.as-finder-tiny-action-button-ctn button:active {\\r\\n    color: var(--as-transparent-button-text-active-color);\\r\\n}\\r\\n\\r\\n\\r\\n.as-action-button-minimized .as-finder-normal-action-button-ctn,\\r\\n.as-finder:not(.as-action-button-minimized) .as-finder-tiny-action-button-ctn {\\r\\n    visibility: hidden;\\r\\n}\\r\\n\\r\\n.as-finder[data-selected-file-count=\\\"0\\\"] .as-finder-header button[name=\\\"view\\\"],\\r\\n.as-finder[data-selected-file-count=\\\"0\\\"] .as-finder-header button[name=\\\"delete\\\"],\\r\\n.as-finder:not([data-selected-folder-count=\\\"0\\\"]) .as-finder-header button[name=\\\"delete\\\"],\\r\\n.as-finder[data-selected-file-count=\\\"0\\\"] .as-finder-header button[name=\\\"download\\\"],\\r\\n.as-finder[data-selected-file-count=\\\"0\\\"][data-selected-folder-count=\\\"0\\\"] .as-finder-header button[name=\\\"move\\\"],\\r\\n.as-finder:not([data-selected-file-count=\\\"1\\\"][data-selected-folder-count=\\\"0\\\"]) .as-finder-header button[name=\\\"rename\\\"],\\r\\n.as-finder:not(.as-mini-layout) .as-finder-content-header button[name=\\\"nav_toggle\\\"],\\r\\n.as-finder:not(.as-mini-layout) .as-finder-nav-ctn button[name=\\\"nav_toggle\\\"] {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-finder-nav-ctn {\\r\\n    overflow-y: auto;\\r\\n\\r\\n}\\r\\n\\r\\n.as-finder-content-ctn {\\r\\n    overflow-y: auto;\\r\\n    z-index: 1;\\r\\n}\\r\\n\\r\\n.as-finder.as-mini-layout .as-finder-body {\\r\\n    left: 0;\\r\\n}\\r\\n\\r\\n.as-finder.as-mini-layout .as-finder-nav-ctn,\\r\\n.as-finder.as-mini-layout .as-finder-search-ctn {\\r\\n    left: calc(var(--finder-nav-width) * -1);\\r\\n    transition: left 0.2s;\\r\\n}\\r\\n\\r\\n\\r\\n.as-finder.as-mini-layout.as-nav-open .as-finder-nav-ctn,\\r\\n.as-finder.as-mini-layout.as-nav-open .as-finder-search-ctn {\\r\\n    left: 0;\\r\\n}\\r\\n\\r\\n.as-finder.as-mini-layout.as-nav-open::after {\\r\\n    content: \\\"\\\";\\r\\n    display: block;\\r\\n    z-index: 8;\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    top: var(--finder-header-height);\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n    background-color: rgba(169, 169, 172, 0.2);\\r\\n}\\r\\n\\r\\n\\r\\n.as-finder-content::before,\\r\\n.as-finder-content::after {\\r\\n    content: \\\"\\\";\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n.as-finder-content .as-file-thumbnail {\\r\\n    display: inline-block;\\r\\n    margin: 5px;\\r\\n}\\r\\n\\r\\n\\r\\n.as-finder-content {\\r\\n    user-select: none;\\r\\n    min-height: 100%;\\r\\n    box-sizing: border-box;\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n\\r\\n.as-finder:not(.as-writable-folder) .as-finder-header button[name=\\\"upload\\\"],\\r\\n.as-finder:not(.as-writable-folder) .as-finder-header button[name=\\\"delete\\\"],\\r\\n.as-finder:not(.as-writable-folder) .as-finder-header button[name=\\\"rename\\\"],\\r\\n.as-finder:not(.as-writable-folder) .as-finder-header button[name=\\\"move\\\"],\\r\\n.as-finder.as-disable-create-folder .as-finder-header button[name=\\\"new_folder\\\"]\\r\\n{\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-finder-select-area {\\r\\n    position: fixed;\\r\\n    box-sizing: border-box;\\r\\n    border: 2px solid rgba(0, 103, 240, 0.5);\\r\\n    width: 100px;\\r\\n    height: 100px;\\r\\n    background-color: rgba(0, 103, 240, 0.2);\\r\\n    /*background-color: ;*/\\r\\n}\\r\\n\\r\\n.as-finder:not(.as-dragging) .as-file-thumbnail:hover {\\r\\n    background-color: rgba(29, 161, 255, 0.13);\\r\\n}\\r\\n\\r\\n\\r\\n.as-finder-upload-overlay {\\r\\n    display: none;\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    right: 0;\\r\\n    z-index: 4;\\r\\n    backdrop-filter: blur(1px);\\r\\n    -webkit-backdrop-filter: blur(1px);\\r\\n    background-color: rgba(167, 167, 167, 0.1);\\r\\n    font-size: 2rem;\\r\\n    text-align: center;\\r\\n    text-shadow: 2px 2px 3px white, -2px -2px 3px white, -2px 2px 3px white, 2px -2px 3px white;\\r\\n    color: rgb(97, 79, 100);\\r\\n    font-weight: bold;\\r\\n    padding-top: calc(50% - 6em);\\r\\n}\\r\\n\\r\\n\\r\\n.as-finder-upload-overlay-icon-ctn {\\r\\n    text-align: center;\\r\\n    color: #1da1ff;\\r\\n    font-size: 8rem;\\r\\n\\r\\n}\\r\\n\\r\\n.as-finder:not(.as-searching) .as-finder-body.as-drag-over .as-finder-upload-overlay {\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n\\r\\n.as-finder.as-searching .as-finder-nav-ctn {\\r\\n    visibility: hidden;\\r\\n}\\r\\n\\r\\n.as-finder.as-searching .as-finder-search-ctn {\\r\\n    visibility: visible;\\r\\n}\\r\\n\\r\\n.as-finder.as-searching .as-finder-content-header-right,\\r\\n.as-finder.as-searching .as-finder-header button[name='upload'],\\r\\n.as-finder.as-searching .as-finder-header button[name='move'] {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-finder-task-check {\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n.as-finder-task-check >span{\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.as-finder-task-check .mdi {\\r\\n    font-size: 1.5em;\\r\\n    color: rgb(30, 237, 219);\\r\\n}\\r\\n\\r\\n\\r\\n.as-finder-task-check .mdi.mdi-alert-decagram-outline {\\r\\n    color: red;\\r\\n}\\r\\n\\r\\n\\r\\n/**************************************************/\\r\\n\\r\\n.as-file-thumbnail {\\r\\n    display: inline-block;\\r\\n    vertical-align: top;\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n.as-file-thumbnail-background {\\r\\n    display: block;\\r\\n    width: 100px;\\r\\n    height: 100px;\\r\\n    background-size: contain;\\r\\n    background-position: center;\\r\\n    background-repeat: no-repeat;\\r\\n    box-sizing: border-box;\\r\\n    border: 1px solid #c0c0c0;\\r\\n}\\r\\n\\r\\n.as-file-thumbnail-check {\\r\\n    display: none;\\r\\n    position: absolute;\\r\\n    top: -2px;\\r\\n    left: -2px;\\r\\n    bottom: -2px;\\r\\n    right: -2px;\\r\\n    overflow: hidden;\\r\\n    z-index: 4;\\r\\n    pointer-events: none;\\r\\n    border: 2px solid #0a90eb;\\r\\n}\\r\\n\\r\\n.as-file-thumbnail.as-checked .as-file-thumbnail-check {\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n.as-file-thumbnail-check::before {\\r\\n    content: \\\"\\\";\\r\\n    position: absolute;\\r\\n    right: -28px;\\r\\n    top: -28px;\\r\\n    width: 56px;\\r\\n    height: 56px;\\r\\n    transform: rotate(45deg);\\r\\n    background-color: #0a90eb;\\r\\n}\\r\\n\\r\\n.as-file-thumbnail-check .mdi {\\r\\n    display: inline-block;\\r\\n    position: absolute;\\r\\n    right: 5px;\\r\\n    top: 5px;\\r\\n    font-size: 14px;\\r\\n    color: white;\\r\\n}\\r\\n\\r\\n.as-file-thumbnail-file-name {\\r\\n    word-wrap: break-word; /* IE 5.5-7 */\\r\\n    white-space: -moz-pre-wrap; /* Firefox 1.0-2.0 */\\r\\n    white-space: pre-wrap;\\r\\n    text-overflow: ellipsis;\\r\\n    overflow: hidden;\\r\\n    width: 100px;\\r\\n    max-height: 6.2em;\\r\\n    line-height: 1.5;\\r\\n    text-align: center;\\r\\n    font-size: 13px;\\r\\n    padding-top: 0.2em;\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.as-file-thumbnail-file-name > span:last-child {\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n.as-finder-folder-dialog-tree-ctn {\\r\\n    max-height: calc(90vh - 250px);\\r\\n    overflow-y: auto;\\r\\n    border: 1px solid #dddddd;\\r\\n}\\r\\n\\r\\n.as-finder-folder-dialog-tree-ctn > .as-exp-group {\\r\\n    width: 300px;\\r\\n}\\r\\n\\r\\n.as-finder-folder-dialog-selected-ctn {\\r\\n    padding-bottom: 10px;\\r\\n    white-space: pre-wrap;\\r\\n}\\r\\n\\r\\n.as-finder-folder-dialog-selected-ctn > span {\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\ndiv[data-view-as=\\\"list\\\"] {\\r\\n    --col: 1;\\r\\n}\\r\\n\\r\\ndiv[data-view-as=\\\"list\\\"] .as-file-thumbnail {\\r\\n    display: inline-block;\\r\\n    margin-right: 4px;\\r\\n    height: 50px;\\r\\n    padding-left: 60px;\\r\\n    white-space: nowrap;\\r\\n    box-sizing: border-box;\\r\\n    width: calc(100% / var(--col) - 10px * var(--col));\\r\\n}\\r\\n\\r\\ndiv[data-view-as=\\\"list\\\"] .as-file-thumbnail::before {\\r\\n    content: \\\"\\\";\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\ndiv[data-view-as=\\\"list\\\"] .as-file-thumbnail-background {\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    top: 0;\\r\\n    width: 50px;\\r\\n    height: 50px;\\r\\n}\\r\\n\\r\\ndiv[data-view-as=\\\"list\\\"] .as-file-thumbnail-file-name {\\r\\n    width: unset;\\r\\n    max-width: 100%;\\r\\n    text-align: left;\\r\\n}\\r\\n\\r\\ndiv[data-view-as=\\\"list\\\"] .as-file-thumbnail-background,\\r\\ndiv[data-view-as=\\\"list\\\"] .as-file-thumbnail-file-name {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n\\r\\ndiv[data-view-as=\\\"lage_icons\\\"] .as-file-thumbnail-background{\\r\\n    width: 200px;\\r\\n    height: 200px;\\r\\n}\\r\\n\\r\\ndiv[data-view-as=\\\"lage_icons\\\"]  .as-file-thumbnail-file-name {\\r\\n    width: 200px;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/finder.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/flexiconbutton.css":
/*!***************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/flexiconbutton.css ***!
  \***************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-flexicon-button {\\r\\n    box-sizing: border-box;\\r\\n    border: solid 1px #bfbfbf;\\r\\n    background-color: #ebebeb;\\r\\n    border-radius: 0.2em;\\r\\n    outline: none;\\r\\n    padding: 0;\\r\\n    overflow: hidden;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    height: var(--as-input-height);\\r\\n    font-size: 1rem;\\r\\n}\\r\\n\\r\\n.as-flexicon-button:disabled {\\r\\n    pointer-events: none;\\r\\n    background-color: #c7c7c7 !important;\\r\\n}\\r\\n\\r\\n\\r\\n.as-flexicon-button div,\\r\\n.as-flexicon-button span {\\r\\n    font-weight: inherit;\\r\\n    font-size: inherit;\\r\\n}\\r\\n\\r\\n\\r\\n.as-icon-button-table-box {\\r\\n    display: table;\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n.as-flexicon-button:hover .as-flexicon-button-content {\\r\\n    background-color: rgba(0, 0, 0, 0.1);\\r\\n}\\r\\n\\r\\n.as-flexicon-button:active {\\r\\n    -webkit-box-shadow: inset 0 0.2em 0.25em rgba(0, 0, 0, 0.125);\\r\\n    box-shadow: inset 0 0.2em 0.25em rgba(0, 0, 0, 0.125);\\r\\n}\\r\\n\\r\\n\\r\\n.as-flexicon-button-content {\\r\\n    display: table-row;\\r\\n}\\r\\n\\r\\n\\r\\n.as-flexicon-button-icon-container,\\r\\n.as-flexicon-button-text-container {\\r\\n    display: table-cell;\\r\\n    box-sizing: content-box;\\r\\n    vertical-align: middle;\\r\\n    text-align: center;\\r\\n}\\r\\n\\r\\n.as-flexicon-button-icon-container:empty,\\r\\n.as-flexicon-button-text-container:empty:not([data-ml-key]) {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-flexicon-button-icon-container {\\r\\n    width: 2em;\\r\\n    background-color: rgba(0, 0, 0, 0.0893617021);\\r\\n    color: rgb(146, 146, 146);\\r\\n}\\r\\n\\r\\n\\r\\n.as-flexicon-button-icon-container > span,\\r\\n.as-flexicon-button-icon-container > i,\\r\\n.as-flexicon-button-icon-container > svg,\\r\\n.as-flexicon-button-icon-container > img {\\r\\n    font-size: 1em;\\r\\n}\\r\\n\\r\\n.as-flexicon-button-text-container {\\r\\n    padding-left: 0.357em;\\r\\n    padding-right: 0.357em;\\r\\n    box-sizing: border-box;\\r\\n    min-width: 2em;\\r\\n}\\r\\n\\r\\n\\r\\n.as-flexicon-button-icon-container + .as-flexicon-button-text-container {\\r\\n    border-left: solid 1px #bfbfbf;\\r\\n}\\r\\n\\r\\n.as-flexicon-button-icon-container:empty + .as-flexicon-button-text-container {\\r\\n    border-left: none;\\r\\n    padding-left: 0.714em;\\r\\n    padding-right: 0.714em;\\r\\n}\\r\\n\\r\\n/*** theme  ***/\\r\\n\\r\\n.as-flexicon-button.primary {\\r\\n    border-color: #005bbd;\\r\\n    background-color: #007bff;\\r\\n    color: white;\\r\\n}\\r\\n\\r\\n.as-flexicon-button.primary .as-flexicon-button-icon-container {\\r\\n    color: white;\\r\\n}\\r\\n\\r\\n.as-flexicon-button.primary .as-flexicon-button-text-container {\\r\\n    border-color: #005bbd;\\r\\n}\\r\\n\\r\\n\\r\\n.as-flexicon-button.secondary {\\r\\n    border-color: #4e555a;\\r\\n    background-color: #6d767e;\\r\\n    color: white;\\r\\n}\\r\\n\\r\\n.as-flexicon-button.secondary .as-flexicon-button-icon-container {\\r\\n    color: white;\\r\\n}\\r\\n\\r\\n.as-flexicon-button.secondary .as-flexicon-button-text-container {\\r\\n    border-left-color: #4e555a;\\r\\n}\\r\\n\\r\\n\\r\\n.as-flexicon-button.success {\\r\\n    border-color: #1e7b34;\\r\\n    background-color: #29a847;\\r\\n    color: white;\\r\\n}\\r\\n\\r\\n.as-flexicon-button.success .as-flexicon-button-icon-container {\\r\\n    color: white;\\r\\n}\\r\\n\\r\\n.as-flexicon-button.success .as-flexicon-button-text-container {\\r\\n    border-left-color: #1e7b34;\\r\\n}\\r\\n\\r\\n\\r\\n.as-flexicon-button.danger {\\r\\n    border-color: #b21f2e;\\r\\n    background-color: #dc3848;\\r\\n    color: white;\\r\\n}\\r\\n\\r\\n.as-flexicon-button.danger .as-flexicon-button-icon-container {\\r\\n    color: white;\\r\\n}\\r\\n\\r\\n.as-flexicon-button.danger .as-flexicon-button-text-container {\\r\\n    border-left-color: #b21f2e;\\r\\n}\\r\\n\\r\\n.as-flexicon-button.warning {\\r\\n    border-color: #9e7700;\\r\\n    background-color: #e0a800;\\r\\n    color: black;\\r\\n}\\r\\n\\r\\n.as-flexicon-button.warning .as-flexicon-button-icon-container {\\r\\n    color: white;\\r\\n}\\r\\n\\r\\n.as-flexicon-button.warning .as-flexicon-button-text-container {\\r\\n    border-left-color: #9e7700;\\r\\n}\\r\\n\\r\\n.as-flexicon-button.info {\\r\\n    border-color: #117888;\\r\\n    background-color: #17a2b8;\\r\\n    color: white;\\r\\n}\\r\\n\\r\\n.as-flexicon-button.info .as-flexicon-button-icon-container {\\r\\n    color: white;\\r\\n}\\r\\n\\r\\n.as-flexicon-button.info .as-flexicon-button-text-container {\\r\\n    border-left-color: #117888;\\r\\n}\\r\\n\\r\\n.as-flexicon-button.light {\\r\\n    border-color: #c9d1d9;\\r\\n    background-color: #f8f9fa;\\r\\n    color: #212529;\\r\\n}\\r\\n\\r\\n.as-flexicon-button.light .as-flexicon-button-icon-container {\\r\\n    color: white;\\r\\n}\\r\\n\\r\\n.as-flexicon-button.light .as-flexicon-button-text-container {\\r\\n    border-left-color: #c9d1d9;\\r\\n}\\r\\n\\r\\n.as-flexicon-button.dark {\\r\\n    border-color: #171a1c;\\r\\n    background-color: #343a40;\\r\\n    color: white;\\r\\n}\\r\\n\\r\\n.as-flexicon-button.dark .as-flexicon-button-icon-container {\\r\\n    color: white;\\r\\n}\\r\\n\\r\\n.as-flexicon-button.dark .as-flexicon-button-text-container {\\r\\n    border-left-color: #171a1c;\\r\\n}\\r\\n\\r\\n.as-flexicon-button.link {\\r\\n    border-color: transparent;\\r\\n    background-color: transparent;\\r\\n    color: #007bff;\\r\\n}\\r\\n\\r\\n.as-flexicon-button.link .as-flexicon-button-icon-container {\\r\\n    color: #007bff;\\r\\n    background: transparent;\\r\\n}\\r\\n\\r\\n.as-flexicon-button.link .as-flexicon-button-text-container {\\r\\n    border-left-color: transparent;\\r\\n}\\r\\n\\r\\n.as-flexicon-button.link:hover .as-flexicon-button-text-container {\\r\\n    text-decoration: underline;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/flexiconbutton.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/flexiconinput.css":
/*!**************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/flexiconinput.css ***!
  \**************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-flexicon-input-icon-ctn > span,\\r\\n.as-flexicon-input-icon-ctn > i,\\r\\n.as-flexicon-input-icon-ctn > svg,\\r\\n.as-flexicon-input-icon-ctn > img {\\r\\n    font-size: 1em;\\r\\n    line-height: 1;\\r\\n}\\r\\n\\r\\n.as-flexicon-input {\\r\\n    position: relative;\\r\\n    border: 1px solid #dddddd;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    height: 2em;\\r\\n    font-size: 1rem;\\r\\n    font-family: \\\"Helvetica Neue\\\", Arial, Helvetica, sans-serif;\\r\\n    box-sizing: border-box;\\r\\n    border-radius: 3px;\\r\\n    text-align: left;\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n.as-flexicon-input.as-border-none {\\r\\n    border: none;\\r\\n}\\r\\n\\r\\n.as-flexicon-input.as-disabled {\\r\\n    background-color: var(--as-disabled-background-color);\\r\\n}\\r\\n\\r\\n.as-flexicon-input::before {\\r\\n    content: \\\"\\\";\\r\\n    width: 0;\\r\\n    height: 100%;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n\\r\\n.as-flexicon-input-icon-ctn:empty {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n\\r\\n.as-flexicon-input:not(.as-flexicon-input-has-icon) input {\\r\\n    padding-left: 0.3em;\\r\\n}\\r\\n\\r\\n.as-flexicon-input-icon-ctn {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    /*text-align: center;*/\\r\\n    font-size: 1.2em;\\r\\n    width: 1.25em;\\r\\n    text-align: center;\\r\\n}\\r\\n\\r\\n.as-flexicon-input-unit-ctn {\\r\\n    width: 1.5em;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    text-align: center;\\r\\n}\\r\\n\\r\\n.as-flexicon-input-unit-ctn:empty {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n\\r\\n.as-flexicon-input input {\\r\\n    border: none;\\r\\n    font-size: inherit;\\r\\n    font-family: inherit;\\r\\n    outline: none;\\r\\n    height: 100%;\\r\\n    background-color: transparent;\\r\\n    box-sizing: border-box;\\r\\n    width: 100%;\\r\\n    padding-left: 0;\\r\\n    padding-right: 0;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n\\r\\n.as-flexicon-input.as-flexicon-input-has-icon input,\\r\\n.as-flexicon-input.as-flexicon-input-has-unit input {\\r\\n    width: calc(100% - 1.5em);\\r\\n}\\r\\n\\r\\n.as-flexicon-input.as-flexicon-input-has-unit input {\\r\\n    text-align: right;\\r\\n}\\r\\n\\r\\n\\r\\n.as-flexicon-input.as-flexicon-input-has-icon.as-flexicon-input-has-unit input {\\r\\n    width: calc(100% - 3em);\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/flexiconinput.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/follower.css":
/*!*********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/follower.css ***!
  \*********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-follower {\\r\\n    position: fixed;\\r\\n    z-index: 100;\\r\\n}\\r\\n\\r\\n.absol-follower-hidden{\\r\\n    z-index: -1000 !important;\\r\\n    opacity: 0;\\r\\n    visibility: hidden;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/follower.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/frame.css":
/*!******************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/frame.css ***!
  \******************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-frame{\\r\\n    \\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/frame.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/frameview.css":
/*!**********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/frameview.css ***!
  \**********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-frame-view {\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-frame-view-frame-container {\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    background-color: white;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-frame-view-frame-container:not(.absol-active) {\\r\\n    z-index: -100;\\r\\n    visibility: hidden;\\r\\n    opacity: 0;\\r\\n}\\r\\n\\r\\n.absol-frame-view-frame-container:not(.absol-active) *,\\r\\n.absol-frame-view-frame-container:not(.absol-active) {\\r\\n    pointer-events: none;\\r\\n    user-select: none;\\r\\n    -webkit-user-select: none;\\r\\n    -moz-user-select: none;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-frame-view-frame-container > div {\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n    display: block;/* avoid overflow if this div is inline-block*/\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/frameview.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/hanger.css":
/*!*******************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/hanger.css ***!
  \*******************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-has-hanger-drag,\\r\\n.as-has-hanger-drag * {\\r\\n    touch-action: none;\\r\\n    -webkit-user-select: none !important;\\r\\n    -moz-user-select: none !important;\\r\\n    -ms-user-select: none !important;\\r\\n    user-select: none !important;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/hanger.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/hexasectionlabel.css":
/*!*****************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/hexasectionlabel.css ***!
  \*****************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-hexa-section-label {\\r\\n    position: relative;\\r\\n    -webkit-print-color-adjust: exact;\\r\\n    /*friendly print*/\\r\\n}\\r\\n\\r\\n.as-hexa-section-label-text {\\r\\n    position: relative;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    font-size: 1em;\\r\\n    padding-right: 2.5em;\\r\\n    color: white;\\r\\n    font-weight: bold;\\r\\n    z-index: 2;\\r\\n}\\r\\n\\r\\n@media print {\\r\\n    .as-hexa-section-label-text {\\r\\n        color: white !important;\\r\\n    }\\r\\n\\r\\n    .as-hexa-section-label-index {\\r\\n        color: rgb(237, 147, 54) !important;\\r\\n    }\\r\\n}\\r\\n\\r\\n\\r\\n.as-hexa-section-label-index {\\r\\n    position: relative;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    text-align: center;\\r\\n    color: rgb(237, 147, 54);\\r\\n    font-weight: 900;\\r\\n    z-index: 2;\\r\\n}\\r\\n\\r\\n.as-hexa-section-label-background {\\r\\n    position: absolute;\\r\\n    top: 0;\\r\\n    left: 0;\\r\\n    bottom: 0;\\r\\n    z-index: 1;\\r\\n}\\r\\n\\r\\n.as-hexa-section-label-background>svg {\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n.as-hexa-section-label-index-box {\\r\\n    stroke: rgb(251, 186, 130);\\r\\n    fill: white;\\r\\n    stroke-width: 2.5;\\r\\n}\\r\\n\\r\\n.as-hexa-section-label-text-box {\\r\\n    fill: rgb(237, 147, 54);\\r\\n    stroke: none;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/hexasectionlabel.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/hruler.css":
/*!*******************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/hruler.css ***!
  \*******************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"/*margin for border size*/\\r\\n.as-hruler {\\r\\n    position: relative;\\r\\n    height: 1.5em;\\r\\n    border: solid 1px black;\\r\\n    overflow: hidden;\\r\\n    font-family: courier, \\\"courier new\\\", monospace;\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n\\r\\n.as-hruler-line {\\r\\n    position: absolute;\\r\\n    bottom: 0;\\r\\n    height: 25%;\\r\\n    border-left: solid 1px rgb(17, 48, 43);\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.as-hruler-line.major {\\r\\n    height: 50%;\\r\\n    border-left: solid 1px rgb(5, 20, 18);\\r\\n}\\r\\n\\r\\n.as-hruler-major-number{\\r\\n    position: absolute;\\r\\n    text-align: center;\\r\\n    width: 5em;\\r\\n    pointer-events: none;\\r\\n    font-size: 0.7em;\\r\\n    bottom: 50%;\\r\\n} \", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/hruler.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/icons.css":
/*!******************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/icons.css ***!
  \******************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/icons.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/keeview.css":
/*!********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/keeview.css ***!
  \********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".kv-document-2-site {\\r\\n    display: flex;\\r\\n    align-content: stretch;\\r\\n}\\r\\n\\r\\n.kv-document-2-site-left {\\r\\n\\r\\n    background-color: rgb(61, 29, 154);\\r\\n}\\r\\n\\r\\n.kv-document-2-site-right {\\r\\n    flex-grow: 1;\\r\\n\\r\\n}\\r\\n\\r\\n.kv-document-2-site-left-header {\\r\\n    font-family: \\\"Helvetica Neue\\\", Arial, Helvetica, sans-serif;\\r\\n    padding: 25px 20px;\\r\\n\\r\\n}\\r\\n\\r\\n.kv-document-2-site-left-header-logo {\\r\\n    height: 65px;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.kv-document-2-site-left-header-text {\\r\\n    font-weight: bold;\\r\\n    font-size: 25px;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    color: #26afa8;\\r\\n}\\r\\n\\r\\n.kv-document-2-site-left .as-vertical-timeline {\\r\\n    padding: 5px 20px;\\r\\n}\\r\\n\\r\\n\\r\\n/* For Document page */\\r\\n.kv-document-page {\\r\\n    flex-direction: column;\\r\\n    display: flex;\\r\\n}\\r\\n\\r\\n.kv-document-page-header {\\r\\n    position: relative;\\r\\n    text-align: left;\\r\\n    padding: 10px 10px 10px 10px;\\r\\n}\\r\\n\\r\\n.kv-document-page-title {\\r\\n    font-size: 18px;\\r\\n    font-weight: bold;\\r\\n    line-height: 30px;\\r\\n}\\r\\n\\r\\n.kv-document-page-close-btn {\\r\\n    float: right;\\r\\n}\\r\\n\\r\\n.kv-document-transparent-btn {\\r\\n    background-color: transparent;\\r\\n    border-radius: 50%;\\r\\n    height: 30px;\\r\\n    width: 30px;\\r\\n    padding: 0;\\r\\n    color: var(--as-transparent-button-text-color);\\r\\n    font-size: 20px;\\r\\n    border: none;\\r\\n}\\r\\n\\r\\n.kv-document-transparent-btn:hover {\\r\\n    color: var(--as-transparent-button-text-hover-color);\\r\\n}\\r\\n\\r\\n.kv-document-transparent-btn:active {\\r\\n    color: var(--as-transparent-button-text-active-color);\\r\\n}\\r\\n\\r\\n\\r\\n.kv-document-page-content {\\r\\n    flex-grow: 1;\\r\\n    overflow: auto;\\r\\n    padding: 10px 20px 10px 20px;\\r\\n}\\r\\n\\r\\n.kv-document-page-footer {\\r\\n    display: flex;\\r\\n    position: relative;\\r\\n    padding: 30px 20px 10px 20px;\\r\\n}\\r\\n\\r\\n.kv-document-page-footer .as-flexicon-button {\\r\\n    min-width: 110px;\\r\\n    height: 30px;\\r\\n}\\r\\n\\r\\n.kv-document-page-footer-left {\\r\\n    flex-grow: 1;\\r\\n}\\r\\n\\r\\n.kv-document-page-footer-left > *:not(:first-child) {\\r\\n    margin-left: 20px;\\r\\n}\\r\\n\\r\\n.kv-document-page-footer-right {\\r\\n    text-align: right;\\r\\n}\\r\\n\\r\\n\\r\\n.kv-document-page-footer-right > *:not(:last-child) {\\r\\n    margin-right: 20px;\\r\\n}\\r\\n\\r\\n.kv-document-link {\\r\\n    font-family: Arial, Helvetica, sans-serif;\\r\\n    font-size: 14px;\\r\\n    color: black;\\r\\n    cursor: pointer;\\r\\n    height: 30px;\\r\\n    padding: 0 20px;\\r\\n    white-space: normal;\\r\\n    border-radius: 3px;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.kv-document-link:hover {\\r\\n    color: rgb(20, 100, 246);\\r\\n}\\r\\n\\r\\n\\r\\n.kv-document-link > span,\\r\\n.kv-document-link::before {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.kv-document-link::before {\\r\\n    content: \\\"\\\";\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n\\r\\n.kv-document-link.kv-variant-primary {\\r\\n    color: white;\\r\\n    background-color: rgb(26, 146, 255);\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/keeview.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/keeview/overviewwidget.css":
/*!***********************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/keeview/overviewwidget.css ***!
  \***********************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".kv-overview-widget {\\r\\n    background-color: rgb(212, 227, 252);\\r\\n    padding: 0 5px 5px 5px;\\r\\n    border-radius: 3px;\\r\\n    box-sizing: border-box;\\r\\n    display: inline-block;\\r\\n    width: 25em;\\r\\n    height: 40em;\\r\\n    font-family: Arial, Helvetica, sans-serif;\\r\\n    font-size: 1rem;\\r\\n    position: fixed;\\r\\n    --x: 0;\\r\\n    --y: 0;\\r\\n    left: var(--x);\\r\\n    top: var(--y);\\r\\n    z-index: 3000000;\\r\\n}\\r\\n\\r\\n.kv-overview-widget-header {\\r\\n    height: 2em;\\r\\n    padding-left: calc(10em / 14);\\r\\n    user-select: none;\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n.kv-overview-widget-header-window-action {\\r\\n    position: absolute;\\r\\n    right: 5px;\\r\\n    top: calc(50% - 10em / 14);\\r\\n    height: calc(20em / 14);\\r\\n    display: inline-block;\\r\\n}\\r\\n\\r\\n.kv-overview-widget-header-window-action button {\\r\\n    background-color: transparent;\\r\\n    border-radius: 3px;\\r\\n    padding: 0;\\r\\n    border: none;\\r\\n    width: 20px;\\r\\n    height: 20px;\\r\\n    color: rgb(69, 69, 70);\\r\\n}\\r\\n\\r\\n.kv-overview-widget-header-window-action button:hover {\\r\\n    background-color: var(--as-transparent-button-hover-color);\\r\\n}\\r\\n\\r\\n.kv-overview-widget-header-window-action button:hover {\\r\\n    background-color: var(--as-transparent-button-active-color);\\r\\n}\\r\\n\\r\\n.kv-overview-widget-title {\\r\\n    font-weight: bold;\\r\\n    display: inline-block;\\r\\n    line-height: 2em;\\r\\n}\\r\\n\\r\\n.kv-overview-widget-body {\\r\\n    box-sizing: border-box;\\r\\n    padding-top: 5px;\\r\\n    background-color: white;\\r\\n    height: calc(100% - 2em);\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n.kv-overview-widget-body > .absol-tabview > .absol-tabbar .absol-hscroller-viewport {\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n.kv-overview-widget-body > .absol-tabview > .absol-tabbar .absol-hscroller-viewport {\\r\\n    padding-left: 5px;\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.kv-overview-widget-body > .absol-tabview > .absol-tabbar .as-tab-bar-button-ext-icon-ctn {\\r\\n    margin: 0;\\r\\n}\\r\\n\\r\\n.kv-overview-widget-page > div {\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n.kv-overview-widget-tab-view .absol-tabbar-button > .absol-tabbar-button-icon-container {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.kv-overview-widget-tab-view .absol-tabbar-button {\\r\\n    min-width: 70px;\\r\\n    text-align: left;\\r\\n}\\r\\n\\r\\n.kv-overview-widget-tab-view {\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n.kv-overview-widget-bubble {\\r\\n    position: fixed;\\r\\n    z-index: 3000000;\\r\\n    width: 54px;\\r\\n    height: 54px;\\r\\n    border-radius: 50%;\\r\\n    background-color: white;\\r\\n    box-shadow: 2px 2px 10px 0px rgba(0, 0, 0, 0.75);\\r\\n    -webkit-box-shadow: 2px 2px 10px 0px rgba(0, 0, 0, 0.75);\\r\\n    -moz-box-shadow: 2px 2px 10px 0px rgba(0, 0, 0, 0.75);\\r\\n    user-select: none;\\r\\n}\\r\\n\\r\\n.kv-overview-widget-bubble:hover {\\r\\n    background-color: rgb(240, 240, 250);\\r\\n\\r\\n}\\r\\n\\r\\n.kv-overview-widget-bubble:active {\\r\\n    box-shadow: 2px 2px 5px 0px rgba(0, 0, 0, 0.75);\\r\\n    -webkit-box-shadow: 2px 2px 5px 0px rgba(0, 0, 0, 0.75);\\r\\n    -moz-box-shadow: 2px 2px 5px 0px rgba(0, 0, 0, 0.75);\\r\\n}\\r\\n\\r\\n.kv-overview-widget-bubble-background {\\r\\n    position: absolute;\\r\\n    left: 20%;\\r\\n    top: 20%;\\r\\n    width: 60%;\\r\\n    height: 60%;\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n.kv-overview-widget-bubble-badge {\\r\\n    position: absolute;\\r\\n    left: calc(85% - 10px);\\r\\n    bottom: calc(85% - 10px);\\r\\n    text-align: center;\\r\\n    padding:0 3px ;\\r\\n    background-color: rgba(255,  0, 0, 0.7);\\r\\n    color: white;\\r\\n    font-family: Arial, Helvetica, sans-serif;\\r\\n    font-size: 14px;\\r\\n    height: 30px;\\r\\n    min-width: 30px;\\r\\n    white-space: nowrap;\\r\\n    border-radius: 15px;\\r\\n    box-sizing: border-box;\\r\\n\\r\\n}\\r\\n\\r\\n.kv-overview-widget-bubble-badge span,\\r\\n.kv-overview-widget-bubble-badge::before {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.kv-overview-widget-bubble-badge::before{\\r\\n    content:\\\"\\\" ;\\r\\n    height: 100%;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/keeview/overviewwidget.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/keeview/owmodal.css":
/*!****************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/keeview/owmodal.css ***!
  \****************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".kv-ow-modal-manager {\\r\\n    position: absolute;\\r\\n    z-index: 3000010;\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n    left: 0;\\r\\n    top: 0;\\r\\n    font-size: 14px;\\r\\n    font-family: Arial, Helvetica, sans-serif;\\r\\n    background-color: rgba(0, 0, 0, 0.502);\\r\\n    box-sizing: border-box;\\r\\n    overflow: auto;\\r\\n    padding-top: 10px;\\r\\n    padding-bottom: 10px;\\r\\n}\\r\\n\\r\\n.kv-ow-modal-manager:empty {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.kv-ow-modal {\\r\\n    white-space: nowrap;\\r\\n    text-align: center;\\r\\n    position: absolute;\\r\\n    z-index: 1;\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n    box-sizing: border-box;\\r\\n    padding: 60px 20px 10px 20px;\\r\\n}\\r\\n\\r\\n.kv-ow-modal::before {\\r\\n    content: \\\"\\\";\\r\\n    height: 66%;\\r\\n}\\r\\n\\r\\n.kv-ow-modal::before,\\r\\n.kv-ow-modal-window {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n\\r\\n.kv-ow-modal-window {\\r\\n    background-color: white;\\r\\n    white-space: normal;\\r\\n    text-align: left;\\r\\n    -webkit-box-shadow: 2px 2px 6px 0 rgba(0, 0, 90, 0.55);\\r\\n    -moz-box-shadow: 2px 2px 6px 0 rgba(0, 0, 90, 0.55);\\r\\n    box-shadow: 2px 2px 6px 0 rgba(0, 0, 90, 0.55);\\r\\n    border-radius: 4px;\\r\\n    max-width: 100%;\\r\\n    max-height: 100%;\\r\\n    overflow: hidden;\\r\\n    box-sizing: border-box;\\r\\n    display: inline-flex;\\r\\n    flex-direction: column;\\r\\n    align-items: stretch;\\r\\n}\\r\\n\\r\\n.kv-ow-modal-title {\\r\\n    font-size: 14px;\\r\\n    line-height: 1.5;\\r\\n    font-weight: bold;\\r\\n}\\r\\n\\r\\n.kv-ow-modal-header {\\r\\n    padding: 10px 10px 5px 10px;\\r\\n}\\r\\n\\r\\n.kv-ow-modal-body {\\r\\n    flex-grow: 1;\\r\\n    overflow-y: auto;\\r\\n    padding: 10px 10px;\\r\\n}\\r\\n\\r\\n.kv-ow-modal-footer {\\r\\n    padding: 10px 10px;\\r\\n    text-align: center;\\r\\n}\\r\\n\\r\\n.kv-ow-modal-header:empty,\\r\\n.kv-ow-modal-body:empty,\\r\\n.kv-ow-modal-footer:empty {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.kv-ow-modal-footer > button {\\r\\n    height: 30px;\\r\\n    min-width: 110px;\\r\\n}\\r\\n\\r\\n\\r\\n.kv-ow-modal-footer > button:not(:last-child) {\\r\\n    margin-right: 20px;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/keeview/owmodal.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/kvcommentitem.css":
/*!**************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/kvcommentitem.css ***!
  \**************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".kv-comment-item {\\r\\n    font-size: 1rem;\\r\\n    font-family: Arial, Helvetica, sans-serif;\\r\\n    position: relative;\\r\\n\\r\\n    padding: 0 calc(2em + 7px) 0 calc(2.85em + 20px);\\r\\n    cursor: pointer;\\r\\n    background-color: white;\\r\\n}\\r\\n\\r\\n.kv-comment-item:hover{\\r\\n    background-color: #f2f5fa;\\r\\n}\\r\\n\\r\\n\\r\\n.kv-comment-avatar-ctn {\\r\\n    position: absolute;\\r\\n    left: 10px;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n}\\r\\n\\r\\n.kv-comment-avatar-ctn::before,\\r\\n.kv-comment-item-flag-ctn::before {\\r\\n    content: \\\"\\\";\\r\\n    display: inline-block;\\r\\n    height: 100%;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.kv-comment-avatar {\\r\\n    width: 2.85em;\\r\\n    height: 2.85em;\\r\\n    background-size: cover;\\r\\n    border-radius: 50%;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.kv-comment-item-content {\\r\\n    padding: 5px 10px;\\r\\n    border: 1px solid #d6d6d6;\\r\\n    border-radius: 7px;\\r\\n    line-height: 1.5;\\r\\n}\\r\\n\\r\\n\\r\\n.kv-comment-item-flag-ctn {\\r\\n    position: absolute;\\r\\n    right: 10px;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n}\\r\\n\\r\\n.kv-comment-item-flag-unread {\\r\\n    display: none;\\r\\n    vertical-align: middle;\\r\\n    width: 0.75em;\\r\\n    height: 0.75em;\\r\\n    background-color: blue;\\r\\n    border-radius: 50%;\\r\\n}\\r\\n\\r\\n.kv-comment-item.as-unread .kv-comment-item-flag-unread {\\r\\n    display: inline-block;\\r\\n}\\r\\n\\r\\n.kv-comment-item-time {\\r\\n    font-weight: bold;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/kvcommentitem.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/linearcolorbar.css":
/*!***************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/linearcolorbar.css ***!
  \***************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-linear-color-bar {\\r\\n    position: relative;\\r\\n    height: 2em;\\r\\n}\\r\\n\\r\\n.as-linear-color-background {\\r\\n    position: absolute;\\r\\n    top: 0;\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n    bottom: 0;\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n.as-linear-color-value-text {\\r\\n    position: absolute;\\r\\n    top: 0;\\r\\n    font-weight: 900;\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n.as-linear-color-min-value-text,\\r\\n.as-linear-color-max-value-text {\\r\\n    position: absolute;\\r\\n    bottom: 0;\\r\\n    white-space: nowrap;\\r\\n    font-weight: bold;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n.as-linear-color-min-value-text {\\r\\n    left: 0;\\r\\n}\\r\\n\\r\\n.as-linear-color-rect {\\r\\n    stroke: none;\\r\\n}\\r\\n\\r\\n\\r\\n.as-linear-color-value-arrow {\\r\\n    fill: rgb(244, 124, 32);\\r\\n    stroke: rgb(244, 124, 32);\\r\\n}\\r\\n\\r\\n.as-linear-color-split-line {\\r\\n    stroke: white;\\r\\n}\\r\\n\\r\\n\\r\\n.as-linear-color-tiny-bar {\\r\\n    font-size: 1rem;\\r\\n    --value: 1;\\r\\n    --extend: 0.5;\\r\\n    --color: green;\\r\\n    position: relative;\\r\\n\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n\\r\\n.as-linear-color-tiny-text {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    padding-right: 0.3em;\\r\\n    width: 4em;\\r\\n    text-align: right;\\r\\n}\\r\\n\\r\\n.as-linear-color-tiny-bar-rect {\\r\\n    height: calc(10em / 14);\\r\\n    width: calc(10em * var(--value) / 1.4);\\r\\n    max-width: calc(10em / 1.4 + 10em * var(--extend) / 1.4);\\r\\n    min-width: 3px;\\r\\n    background-color: var(--color);\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/linearcolorbar.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/locationinput.css":
/*!**************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/locationinput.css ***!
  \**************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-location-input-modal {\\r\\n    z-index: 800001;\\r\\n}\\r\\n\\r\\n\\r\\n.as-location-picker-control-ctn {\\r\\n    margin: 10px;\\r\\n    background-color: white;\\r\\n    box-shadow: rgb(0 0 0 / 30%) 0px 1px 4px -1px;\\r\\n    border-radius: 2px;\\r\\n}\\r\\n\\r\\n\\r\\n.as-location-picker-control-btn {\\r\\n    width: 40px;\\r\\n    height: 40px;\\r\\n    padding: 0;\\r\\n    box-sizing: border-box;\\r\\n    background-color: transparent;\\r\\n    border: none;\\r\\n    color: rgb(102, 102, 102);\\r\\n}\\r\\n\\r\\n.as-location-picker-control-btn:hover {\\r\\n    color: black;\\r\\n}\\r\\n\\r\\n.gm-ui-hover-effect {\\r\\n    outline: none;\\r\\n}\\r\\n\\r\\n.as-location-picker-control-btn > span {\\r\\n    font-size: 2em;\\r\\n}\\r\\n\\r\\n\\r\\n.as-location-picker-search-input {\\r\\n    height: 30px;\\r\\n    width: 250px;\\r\\n    border-radius: 2px;\\r\\n    padding-right: 30px;\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n.as-location-picker-search-input > input {\\r\\n    outline: none;\\r\\n}\\r\\n\\r\\n\\r\\n.as-location-picker-search-input-search-icon-ctn {\\r\\n    position: absolute;\\r\\n    right: 0;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    width: 30px;\\r\\n    text-align: center;\\r\\n    font-size: 20px;\\r\\n    color: rgb(102, 102, 102);\\r\\n}\\r\\n\\r\\n.as-location-picker-search-input-search-icon-ctn:hover {\\r\\n    color: black;\\r\\n}\\r\\n\\r\\n.as-location-picker-search-input-search-icon-ctn::before,\\r\\n.as-location-picker-search-input-search-icon-ctn > span {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.as-location-picker-search-input-search-icon-ctn::before {\\r\\n    content: \\\"\\\";\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n.as-location-picker-control-ctn .as-flexicon-button {\\r\\n    font-size: 14px;\\r\\n    min-width: 9em;\\r\\n    height: calc(2em + 2px);\\r\\n}\\r\\n\\r\\n.as-location-picker-control-ctn .as-flexicon-button:not(:last-child) {\\r\\n    margin-right: 20px;\\r\\n}\\r\\n\\r\\n\\r\\n.as-location-picker-control-ctn.as-transparent {\\r\\n    background-color: transparent;\\r\\n    box-shadow: none;\\r\\n}\\r\\n\\r\\n.as-location-picker.as-read-only .as-location-picker-cancel-btn,\\r\\n.as-location-picker.as-read-only .as-location-picker-search-input {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-location-picker-control-ctn.as-bottom button{\\r\\n    box-shadow: 0 0px 2px 4px white;\\r\\n    -webkit-box-shadow: 0 0 2px 4px white;\\r\\n    -moz-box-shadow: 0 0 2px 4px white;\\r\\n}\\r\\n\\r\\n\\r\\n.as-location-input-modal {\\r\\n\\r\\n}\\r\\n\\r\\n.as-location-input-modal-window {\\r\\n    padding: 10px;\\r\\n    width: calc(100vw - 10px);\\r\\n    height: calc(100vh - 10px);\\r\\n    box-sizing: border-box;\\r\\n    max-width: 900px;\\r\\n    max-height: 600px;\\r\\n    box-shadow: 0px 1px 4px -1px rgba(0, 0, 0, 0.7);\\r\\n    -webkit-box-shadow: 0px 1px 4px -1px rgba(0, 0, 0, 0.7);\\r\\n    border-radius: 5px;\\r\\n    background-color: white;\\r\\n}\\r\\n\\r\\n\\r\\n.as-location-input-modal-window > .as-location-picker {\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n.as-location-input {\\r\\n    height: var(--as-input-height);\\r\\n    border-radius: var(--as-input-border-radius);\\r\\n    border: 1px solid #dddddd;\\r\\n    box-sizing: border-box;\\r\\n    width: calc(13em + 50px);\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    position: relative;\\r\\n    background-color: white;\\r\\n    font-family: \\\"Helvetica Neue\\\", Arial, Helvetica, sans-serif;\\r\\n}\\r\\n\\r\\n\\r\\n.as-location-input.as-disabled {\\r\\n    background-color: var(--as-disabled-background-color);\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n\\r\\n.as-location-input-text {\\r\\n    outline: none;\\r\\n    width: calc(100% - 2em - 1px);\\r\\n    height: 100%;\\r\\n    border: none;\\r\\n    background-color: transparent;\\r\\n    display: block;\\r\\n    padding: 0 0 0 var(--as-input-horizontal-padding);\\r\\n    font: inherit;\\r\\n    box-sizing: border-box;\\r\\n\\r\\n}\\r\\n\\r\\n.as-location-input-icon-ctn {\\r\\n    border-left: 1px solid #ddd;\\r\\n    border-right: none;\\r\\n    border-top: none;\\r\\n    border-bottom: none;\\r\\n    text-align: center;\\r\\n    position: absolute;\\r\\n    right: 0;\\r\\n    width: calc(2rem + 1px);\\r\\n    box-sizing: border-box;\\r\\n    top: 0;\\r\\n    height: 100%;\\r\\n    background-color: rgba(169, 169, 169, 0.1);\\r\\n    cursor: pointer;\\r\\n    font-size: inherit;\\r\\n}\\r\\n\\r\\n\\r\\n.as-location-input-icon-ctn:hover {\\r\\n    background-color: rgba(169, 169, 169, 0.25);\\r\\n}\\r\\n\\r\\n.as-location-input-icon-ctn:active {\\r\\n    background-color: rgba(169, 169, 169, 0.5);\\r\\n}\\r\\n\\r\\n\\r\\n.as-location-input-icon-ctn > span {\\r\\n    line-height: 2em;\\r\\n    font-size: calc(16em / 14);\\r\\n}\\r\\n\\r\\n.as-location-input.as-disabled {\\r\\n    color: var(--as-disabled-text-color);\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n.as-location-input.as-disabled input {\\r\\n    background-color: var(--as-disabled-background-color);\\r\\n}\\r\\n\\r\\n.as-location-input.as-value-null .as-location-input-clear-btn,\\r\\n.as-location-input.as-must-not-null .as-location-input-clear-btn {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-location-input-clear-btn {\\r\\n    font-size: inherit;\\r\\n    position: absolute;\\r\\n    right: calc(2em + 2px);\\r\\n    height: calc(2em + 2px);\\r\\n    top: calc(50% - -1em - 1px);\\r\\n    box-sizing: border-box;\\r\\n    background-color: transparent;\\r\\n    border: none;\\r\\n    color: #bbb;\\r\\n    visibility: hidden;\\r\\n}\\r\\n\\r\\n.as-location-input-clear-btn:hover {\\r\\n    color: rgb(132, 132, 132)\\r\\n}\\r\\n\\r\\n.as-location-input-clear-btn:active {\\r\\n    color: #525555;\\r\\n}\\r\\n\\r\\n.as-location-input-text:focus + .as-location-input-clear-btn,\\r\\n.as-location-input:hover .as-location-input-clear-btn {\\r\\n    visibility: visible;\\r\\n}\\r\\n\\r\\n\\r\\n@media screen and (max-width: 600px) {\\r\\n    .as-location-input-modal-window {\\r\\n        max-width: unset;\\r\\n        max-height: unset;\\r\\n\\r\\n    }\\r\\n}\\r\\n\\r\\n\\r\\n@media screen  and  (max-width: 500px) {\\r\\n    .as-location-picker-control-ctn.as-top {\\r\\n        margin-top: 60px;\\r\\n        width: calc(100% - 20px);\\r\\n    }\\r\\n\\r\\n    .as-location-picker-control-ctn.as-top .as-location-picker-search-input {\\r\\n        width: 100%;\\r\\n    }\\r\\n\\r\\n    .as-location-input-modal-window {\\r\\n        padding: 0;\\r\\n    }\\r\\n\\r\\n    .as-location-picker-control-ctn.as-bottom button{\\r\\n        margin-top: 20px;\\r\\n    }\\r\\n}\\r\\n\\r\\n\\r\\n.as-location-input-modal.as-mobile .as-location-input-modal-window {\\r\\n    height: calc(100vh - 80px);\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/locationinput.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/mediainput.css":
/*!***********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/mediainput.css ***!
  \***********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".vmedia-no-show {\\r\\n    position: fixed;\\r\\n    top: 0;\\r\\n    left: 0;\\r\\n    width: 1;\\r\\n    height: 1;\\r\\n    z-index: -100000;\\r\\n    opacity: 0;\\r\\n}\\r\\n\\r\\n.vmedia-no-select,\\r\\n.vmedia-no-select * {\\r\\n    -webkit-user-select: none;\\r\\n    -moz-user-select: none;\\r\\n    -ms-user-select: none;\\r\\n    user-select: none;\\r\\n}\\r\\n\\r\\ncoccocgrammar {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.vmedia-media-input {\\r\\n    box-sizing: border-box;\\r\\n    border: solid 1px rgba(0, 0, 0, 0.1)\\r\\n}\\r\\n\\r\\n\\r\\n.vmedia-media-input-text-container {\\r\\n    position: relative;\\r\\n    min-height: 2.5em;\\r\\n}\\r\\n\\r\\n.vmedia-media-input-text-container-editor:focus {\\r\\n    outline: none;\\r\\n}\\r\\n\\r\\n.vmedia-media-input-text-container-editor img {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.vmedia-media-input-text-container-editor * {\\r\\n    font-family: inherit;\\r\\n    font-size: inherit;\\r\\n    font-weight: inherit;\\r\\n    text-decoration: inherit;\\r\\n    color: inherit;\\r\\n    background: none;\\r\\n    padding: 0;\\r\\n    margin: 0;\\r\\n    white-space: pre;\\r\\n}\\r\\n\\r\\n.vmedia-media-input-text-container-editor {\\r\\n    min-height: 2em;\\r\\n    padding-left: 0.5em;\\r\\n    padding-top: 0.25em;\\r\\n    padding-bottom: 0.25em;\\r\\n    margin-right: 0.5em;\\r\\n    box-sizing: border-box;\\r\\n    max-height: 6.66666666em;\\r\\n    overflow-x: hidden;\\r\\n    overflow-y: auto;\\r\\n}\\r\\n\\r\\n.vmedia-media-input-imagepreview-container {\\r\\n    white-space: normal;\\r\\n}\\r\\n\\r\\n.vmedia-media-input:not(.dragover) .vmedia-media-input-dropover {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.vmedia-media-input-dropover {\\r\\n    display: inline-block;\\r\\n    width: 7em;\\r\\n    height: 7em;\\r\\n}\\r\\n\\r\\n.vmedia-media-input-dropover>svg {\\r\\n    width: 7em;\\r\\n    height: 7em;\\r\\n}\\r\\n\\r\\n.vmedia-media-input-imagepreview-container .vmedia-media-input-filepreview,\\r\\n.vmedia-media-input-imagepreview-container .vmedia-media-input-imagepreview {\\r\\n    margin: 0.3em;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.vmedia-media-input-filepreview,\\r\\n.vmedia-media-input-imagepreview {\\r\\n    position: relative;\\r\\n    display: inline-block;\\r\\n}\\r\\n\\r\\n.vmedia-media-input-imagepreview img {\\r\\n    height: 2.5em;\\r\\n    width: auto;\\r\\n}\\r\\n\\r\\n.vmedia-media-input-filepreview svg.attachment {\\r\\n    height: 2em;\\r\\n    width: 2em;\\r\\n}\\r\\n\\r\\n.vmedia-media-input-filepreview svg.times,\\r\\n.vmedia-media-input-imagepreview svg.times {\\r\\n    position: absolute;\\r\\n    top: 0.1em;\\r\\n    right: 0.1em;\\r\\n    width: 1em;\\r\\n    height: 1em;\\r\\n    fill: rgba(69, 69, 69, 0.6);\\r\\n}\\r\\n\\r\\n.vmedia-media-input-filepreview svg.times:hover,\\r\\n.vmedia-media-input-imagepreview svg.times:hover {\\r\\n    fill: rgba(144, 144, 144, 0.6);\\r\\n}\\r\\n\\r\\n.vmedia-media-input-filepreview svg.times:active,\\r\\n.vmedia-media-input-imagepreview svg.times:active {\\r\\n    fill: rgba(220, 220, 240, 0.6);\\r\\n}\\r\\n\\r\\n.vmedia-media-input-plug-button-container {\\r\\n    position: absolute;\\r\\n    left: 0.25em;\\r\\n    bottom: 0.25em;\\r\\n    top: 0.25em;\\r\\n}\\r\\n\\r\\n.vmedia-media-input-plug-button-container svg {\\r\\n    height: 1.5em;\\r\\n    width: 1.5em;\\r\\n    vertical-align: middle;\\r\\n    transition: transform .22s cubic-bezier(.5, 0, .4, 1);\\r\\n}\\r\\n\\r\\n\\r\\n.vmedia-media-input-plug-button-container svg path {\\r\\n    fill: rgba(66, 133, 244, 0.7);\\r\\n    transition: fill .22s cubic-bezier(.5, 0, .4, 1);\\r\\n}\\r\\n\\r\\n.vmedia-media-input.show-plugin .vmedia-media-input-plug-button svg path {\\r\\n    fill: rgba(134, 142, 153, 0.75);\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n.vmedia-media-input-plug-button {\\r\\n    padding: 0;\\r\\n    height: 100%;\\r\\n    width: 2em;\\r\\n    border: none;\\r\\n    background: transparent;\\r\\n    outline: none;\\r\\n\\r\\n}\\r\\n\\r\\n\\r\\n.vmedia-media-input-plugin-content-container {\\r\\n    position: absolute;\\r\\n    bottom: calc(1px + 100%);\\r\\n    opacity: 1;\\r\\n    transition: opacity .22s cubic-bezier(.5, 0, .4, 1);\\r\\n    background-color: white;\\r\\n    box-sizing: border-box;\\r\\n    border: solid 1px rgba(0, 0, 0, 0.1);\\r\\n    z-index: 20;\\r\\n    background: white;\\r\\n}\\r\\n\\r\\n.vmedia-media-input-plugin-content-container:empty{\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n.vmedia-media-input-tool-container {\\r\\n    position: relative;\\r\\n    display: block;\\r\\n    height: 1.5em;\\r\\n    /* background: red;     */\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n.vmedia-media-input-tool-container-left {\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n}\\r\\n\\r\\n.vmedia-media-input-tool-container-right {\\r\\n    position: absolute;\\r\\n    right: 0;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n}\\r\\n\\r\\n.vmedia-media-input-tool-container button {\\r\\n    width: 2.5em;\\r\\n    height: 100%;\\r\\n    font-size: 1em;\\r\\n    margin-left: 0.1em;\\r\\n    margin-right: 0.1em;\\r\\n    border: none;\\r\\n    background-color: transparent;\\r\\n    border-radius: 0.4em;\\r\\n}\\r\\n\\r\\n.vmedia-media-input-text-container-editor {\\r\\n    scrollbar-width: thin;\\r\\n}\\r\\n\\r\\n.vmedia-media-input-text-container-editor::-webkit-scrollbar {\\r\\n    width: 7px;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n.vmedia-media-input-text-container-editor::-webkit-scrollbar-track {\\r\\n    background: rgb(240, 240, 240);\\r\\n}\\r\\n\\r\\n.vmedia-media-input-text-container-editor::-webkit-scrollbar-thumb {\\r\\n    background: rgb(205, 205, 205);\\r\\n}\\r\\n\\r\\n.vmedia-media-input-tool-container button svg {\\r\\n    height: 1.25em;\\r\\n    width: 1.25em;\\r\\n}\\r\\n\\r\\n.vmedia-media-input-tool-container button:hover {\\r\\n    background-color: rgba(91, 192, 222, 0.1);\\r\\n}\\r\\n\\r\\n.vmedia-media-input-tool-container button:active {\\r\\n    background-color: rgba(91, 192, 222, 0.4);\\r\\n}\\r\\n\\r\\n.vmedia-media-input-tool-container button svg.send {\\r\\n    fill: rgba(66, 133, 244, 0.7);\\r\\n}\\r\\n\\r\\n.vmedia-media-input-tool-container button svg.add-file,\\r\\n.vmedia-media-input-tool-container button svg.add-image {\\r\\n    fill: rgba(66, 66, 66, 0.5);\\r\\n}\\r\\n\\r\\n.vmedia-media-input-tool-container button .mdi{\\r\\n    font-size:1.2em; \\r\\n}\\r\\n\\r\\n.vmedia-media-input-tool-container button:focus {\\r\\n    outline: none;\\r\\n}\\r\\n\\r\\n.vmedia-media-input-tool-container button{\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.vmedia-media-input-plugin-content-container.blur{\\r\\n    visibility: hidden;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/mediainput.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/menu.css":
/*!*****************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/menu.css ***!
  \*****************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-ico {\\r\\n    width: 1em;\\r\\n    height: 1em;\\r\\n}\\r\\n\\r\\n.absol-button {\\r\\n    white-space: normal;\\r\\n    -webkit-touch-callout: none;\\r\\n    -webkit-user-select: none;\\r\\n    -khtml-user-select: none;\\r\\n    -moz-user-select: none;\\r\\n    -ms-user-select: none;\\r\\n    user-select: none;\\r\\n}\\r\\n\\r\\n.absol-dropdown {\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n.absol-dropdown-content {\\r\\n    z-index: 1;\\r\\n    position: fixed;\\r\\n    left: 0;\\r\\n    top: 0;\\r\\n    overflow: auto;\\r\\n    -webkit-touch-callout: none;\\r\\n    -webkit-user-select: none;\\r\\n    -khtml-user-select: none;\\r\\n    -moz-user-select: none;\\r\\n    -ms-user-select: none;\\r\\n    user-select: none;\\r\\n}\\r\\n\\r\\n.absol-dropdown.top > .absol-dropdown-content {\\r\\n    top: auto;\\r\\n    bottom: 100%;\\r\\n}\\r\\n\\r\\n.absol-dropdown.overlap-left > .absol-dropdown-content {\\r\\n    left: auto;\\r\\n    right: 0;\\r\\n}\\r\\n\\r\\n.absol-dropright {\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n.absol-dropright-content {\\r\\n    z-index: 1;\\r\\n    position: fixed;\\r\\n    left: 0;\\r\\n    top: 0;\\r\\n    -webkit-touch-callout: none;\\r\\n    -webkit-user-select: none;\\r\\n    -khtml-user-select: none;\\r\\n    -moz-user-select: none;\\r\\n    -ms-user-select: none;\\r\\n    user-select: none;\\r\\n    overflow: auto;\\r\\n}\\r\\n\\r\\n.absol-dropright.overlap-top > .absol-dropright-content {\\r\\n    top: unset;\\r\\n    bottom: 0;\\r\\n}\\r\\n\\r\\n.absol-drop-hidden > .absol-dropdown-content,\\r\\n.absol-drop-hidden > .absol-dropright-content {\\r\\n    visibility: hidden;\\r\\n    top: 0 !important;\\r\\n    left: 0 !important;\\r\\n    max-height: 99vh !important;\\r\\n    opacity: 0;\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n.absol-drop-hidden > .absol-dropright-content *,\\r\\n.absol-drop-hidden > .absol-dropdown-content * {\\r\\n    visibility: hidden;\\r\\n}\\r\\n\\r\\n.absol-hmenu {\\r\\n    display: inline-block;\\r\\n    background-color: rgb(252, 252, 255);\\r\\n    /* background-color: rgb(33, 33, 33); */\\r\\n\\r\\n}\\r\\n\\r\\n.absol-hmenu > .absol-dropdown {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.absol-hmenu-button:hover,\\r\\n.absol-hmenu .absol-hmenu-button-hover {\\r\\n\\r\\n    background-color: rgb(175, 175, 175);\\r\\n}\\r\\n\\r\\n.absol-hmenu-button {\\r\\n    padding-left: 1em;\\r\\n    padding-right: 1em;\\r\\n}\\r\\n\\r\\n.absol-hmenu-button:focus {\\r\\n    outline: none;\\r\\n}\\r\\n\\r\\n.absol-hmenu-button,\\r\\n.absol-vmenu-button {\\r\\n    color: rgb(55, 55, 55);\\r\\n    height: 100%;\\r\\n    background-color: transparent;\\r\\n    font-size: 1em;\\r\\n    border: none;\\r\\n    padding: 0;\\r\\n    margin: 0;\\r\\n    outline: none;\\r\\n}\\r\\n\\r\\n.absol-hmenu-button {\\r\\n    padding-left: 1em;\\r\\n    padding-right: 1em;\\r\\n}\\r\\n\\r\\n.absol-vmenu {\\r\\n\\r\\n}\\r\\n\\r\\n.absol-hmenu .absol-dropdown-content,\\r\\n.absol-hmenu .absol-dropright-content,\\r\\n.as-v-root-menu .absol-dropright-content {\\r\\n    padding-top: 0.4em;\\r\\n    padding-bottom: 0.4em;\\r\\n    background-color: rgb(252, 252, 255);\\r\\n    -webkit-box-shadow: 2px 2px 9px 0px rgba(20, 20, 20, 1);\\r\\n    -moz-box-shadow: 2px 2px 9px 0px rgba(20, 20, 20, 1);\\r\\n    box-shadow: 2px 2px 9px 0px rgba(20, 20, 20, 1);\\r\\n}\\r\\n\\r\\n.absol-vmenu-button {\\r\\n    text-align: left;\\r\\n    padding-left: 0.5em;\\r\\n    padding-right: 2em;\\r\\n    height: 1.8em;\\r\\n    white-space: nowrap;\\r\\n    position: relative;\\r\\n    display: block;\\r\\n}\\r\\n\\r\\nimg.absol-vmenu-button-icon {\\r\\n    opacity: 0;\\r\\n    display: none;\\r\\n}\\r\\n\\r\\nimg.absol-vmenu-button-icon[src] {\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n.absol-vmenu-button-ext-icon-container {\\r\\n    display: inline-block;\\r\\n    width: 1.2em;\\r\\n    height: 1.2em;\\r\\n    vertical-align: middle;\\r\\n    margin-right: 0.5em;\\r\\n}\\r\\n\\r\\n.absol-vmenu-button-ext-icon-container > span,\\r\\n.absol-vmenu-button-ext-icon-container > i {\\r\\n    font-size: 1.2em;\\r\\n    line-height: 1;\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-vmenu-button-ext-icon-container > svg,\\r\\n.absol-vmenu-button-ext-icon-container > img {\\r\\n    height: 1.2em;\\r\\n    width: 1.2em;\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-vmenu-button-text,\\r\\n.absol-vmenu-button-key {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.absol-vmenu-button-key {\\r\\n    font-style: italic;\\r\\n    text-align: right;\\r\\n    margin-left: 1em;\\r\\n}\\r\\n\\r\\n.absol-vmenu-arrow-container {\\r\\n    position: absolute;\\r\\n    right: 0.2em;\\r\\n    top: 0.3em;\\r\\n    bottom: 0.3em;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-vmenu-arrow-container::after {\\r\\n    content: \\\"\\\";\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-vmenu-arrow {\\r\\n    display: inline-block;\\r\\n    font-size: inherit;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.absol-menu-item-disabled .absol-vmenu-arrow {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.absol-vmenu-button:hover,\\r\\n.absol-vmenu .absol-vmenu-button-hover {\\r\\n    background-color: rgb(214, 214, 217);\\r\\n}\\r\\n\\r\\n.absol-menu-item-disabled .absol-vmenu-button:hover,\\r\\n.absol-menu-item-disabled .absol-vmenu .absol-vmenu-button-hover,\\r\\n.absol-menu-item-disabled .absol-hmenu-button:hover,\\r\\n.absol-menu-item-disabled .absol-hmenu .absol-hmenu-button-hover {\\r\\n    background-color: transparent;\\r\\n}\\r\\n\\r\\n.absol-vmenu-line {\\r\\n    text-align: center;\\r\\n    padding: 0.2em 1em;\\r\\n}\\r\\n\\r\\n.absol-vmenu-line > div {\\r\\n    height: 1px;\\r\\n    background-color: rgb(97, 97, 97);\\r\\n}\\r\\n\\r\\n.absol-menu-item-disabled {\\r\\n}\\r\\n\\r\\n.absol-menu-item-hidden {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.absol-menu-item-disabled button {\\r\\n    color: rgb(155, 155, 159);\\r\\n}\\r\\n\\r\\n.dark .absol-menu-item-disabled button {\\r\\n    color: rgb(100, 100, 100);\\r\\n}\\r\\n\\r\\n.dark .absol-vmenu-button:hover,\\r\\n.dark .absol-vmenu .absol-vmenu-button-hover {\\r\\n    background-color: rgb(9, 71, 113);\\r\\n}\\r\\n\\r\\n\\r\\n.dark .absol-hmenu .absol-dropdown-content,\\r\\n.dark .absol-hmenu .absol-dropright-content {\\r\\n    background-color: rgb(37, 37, 38);\\r\\n}\\r\\n\\r\\n\\r\\n.dark .absol-hmenu-button,\\r\\n.dark .absol-vmenu-button {\\r\\n    color: rgb(200, 200, 200);\\r\\n\\r\\n}\\r\\n\\r\\n\\r\\n.dark .absol-hmenu-button:hover,\\r\\n.dark .absol-hmenu .absol-hmenu-button-hover {\\r\\n    background-color: rgb(80, 80, 80);\\r\\n}\\r\\n\\r\\n\\r\\n.dark .absol-hmenu {\\r\\n    background-color: rgb(33, 33, 33);\\r\\n}\\r\\n\\r\\n/*standard-alone*/\\r\\n.absol-vmenu-button.standard-alone {\\r\\n    height: 2em;\\r\\n    border-radius: 0.3em;\\r\\n    border: solid rgb(169, 169, 170) 1px;\\r\\n    outline: none;\\r\\n}\\r\\n\\r\\n.as-v-root-menu {\\r\\n    display: inline-block;\\r\\n    box-sizing: border-box;\\r\\n    /*overflow-y: auto;*/\\r\\n    /*overflow-x: hidden;*/\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/menu.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/messagedialog.css":
/*!**************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/messagedialog.css ***!
  \**************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-message-dialog {\\r\\n    font-size: 1rem;\\r\\n    font-family: \\\"Helvetica Neue\\\", Arial, Helvetica, sans-serif;\\r\\n    box-sizing: border-box;\\r\\n    background-color: white;\\r\\n    border-radius: 0.3em;\\r\\n    border: 1px solid #dddddd;\\r\\n    -webkit-box-shadow: 2px 2px 6px 0px rgba(0, 0, 90, 0.55);\\r\\n    -moz-box-shadow: 2px 2px 6px 0px rgba(0, 0, 90, 0.55);\\r\\n    box-shadow: 2px 2px 6px 0px rgba(0, 0, 90, 0.55);\\r\\n}\\r\\n\\r\\n.as-message-dialog-header {\\r\\n    padding: calc(5em / 14) 1em;\\r\\n    border-bottom: 1px solid #e9ecef;\\r\\n}\\r\\n\\r\\n\\r\\n.as-message-dialog-title {\\r\\n    font-size: 1.25em;\\r\\n    font-weight: 500;\\r\\n}\\r\\n\\r\\n.as-message-dialog-body {\\r\\n    padding: 1em;\\r\\n}\\r\\n\\r\\n.as-message-dialog-footer {\\r\\n    text-align: right;\\r\\n    padding: 10px 20px;\\r\\n    border-top: 1px solid #e9ecef;\\r\\n}\\r\\n\\r\\n.as-message-dialog-footer:empty,\\r\\n.as-message-dialog-header:empty {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n\\r\\n.as-message-dialog-footer button {\\r\\n    margin-left: 1.5em;\\r\\n}\\r\\n\\r\\n\\r\\n.as-message-dialog-footer button.as-flexicon-button .as-flexicon-button-text-container {\\r\\n    padding-left: 2em;\\r\\n    padding-right: 2em;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/messagedialog.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/messageinput.css":
/*!*************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/messageinput.css ***!
  \*************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-conversation-box {\\r\\n    display: flex;\\r\\n    flex-direction: column;\\r\\n    font-size: 4rem;\\r\\n    --right-width: 0;\\r\\n}\\r\\n\\r\\n.as-conversation-box-message-ctn {\\r\\n    flex-grow: 1;\\r\\n}\\r\\n\\r\\n.as-conversation-box-input-ctn {\\r\\n    /** empty**/\\r\\n}\\r\\n\\r\\n.as-message-input {\\r\\n    position: relative;\\r\\n    box-sizing: border-box;\\r\\n    padding-top: calc(5em  / 14);\\r\\n    padding-bottom: calc(5em  / 14);\\r\\n    padding-left: calc(5em  / 14);\\r\\n    overflow: visible;\\r\\n    font-size: var(--as-input-font-size);\\r\\n    font-family: var(--as-input-font-family);\\r\\n}\\r\\n\\r\\n.as-message-input * {\\r\\n    font: inherit;\\r\\n}\\r\\n\\r\\n\\r\\n.as-message-input-plugin-btn {\\r\\n    font-size: inherit;\\r\\n    width: calc(40em / 14);\\r\\n    height: calc(40em / 14);\\r\\n    padding: 0;\\r\\n    border: none;\\r\\n    color: rgb(122, 122, 122);\\r\\n    background-color: rgb(241, 241, 241);\\r\\n    outline: none;\\r\\n    border-radius: 50%;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n\\r\\n.as-message-input-plugin-btn:active {\\r\\n    background-color: rgb(212, 212, 212);\\r\\n}\\r\\n\\r\\n.as-message-input-plugin-btn:hover {\\r\\n    background-color: rgb(235, 235, 235);\\r\\n\\r\\n}\\r\\n\\r\\n\\r\\n.as-message-input-plugin-btn span {\\r\\n    font-size: calc(24em / 14);\\r\\n}\\r\\n\\r\\n\\r\\n.as-message-input-right {\\r\\n    position: absolute;\\r\\n    bottom: calc(10em / 14);\\r\\n    right: calc(5em / 14);\\r\\n    z-index: 0;\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n.as-message-input-right .as-message-input-plugin-btn {\\r\\n    margin-left: calc(10em / 14);\\r\\n}\\r\\n\\r\\n\\r\\n.as-message-input-left {\\r\\n    position: absolute;\\r\\n    left: calc(5em / 14);\\r\\n    bottom:calc(5em / 14);\\r\\n}\\r\\n\\r\\n\\r\\n.as-message-input-pre-ctn {\\r\\n    position: relative;\\r\\n    width: calc(100% - var(--right-width));\\r\\n    border-radius: 1.8em;\\r\\n    box-sizing: border-box;\\r\\n    transition: width 0.1s;\\r\\n    padding: calc(10em / 14) calc(20em / 14) calc(10em / 14) 3.57em;\\r\\n    background-color: rgb(241, 241, 244);\\r\\n}\\r\\n\\r\\n\\r\\n.as-message-input-pre-ctn::after {\\r\\n    display: inline-block;\\r\\n    content: \\\"\\\";\\r\\n    height: calc(2em + 2px);\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.as-message-input:not(.as-v2)  .as-message-input-pre:before {\\r\\n    content: \\\"\\\";\\r\\n    line-height: calc(2em + 2px);\\r\\n    display: inline;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n\\r\\n/*.as-message-input.as-has-text.as-text-changed .as-message-input-pre-ctn,*/\\r\\n/*.as-message-input.as-has-quote .as-message-input-pre-ctn,*/\\r\\n/*.as-message-input.as-has-attachment .as-message-input-pre-ctn {*/\\r\\n/*    width: calc(100% - 4em - var(--always-visible-buttons-width));*/\\r\\n/*}*/\\r\\n\\r\\n\\r\\n.as-message-input-pre {\\r\\n    display: inline-block;\\r\\n    width: calc(100% - 2px);\\r\\n    max-height: 6.5em;\\r\\n    box-sizing: border-box;\\r\\n    font-family: inherit;\\r\\n    font-size: inherit;\\r\\n    outline: none;\\r\\n    vertical-align: middle;\\r\\n    margin: 0;\\r\\n    white-space: pre-wrap;\\r\\n    overflow-x: hidden;\\r\\n    overflow-y: auto;\\r\\n    line-height: 1.5;\\r\\n    border: none;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n.as-message-input-camera-caller,\\r\\n.as-message-input-camera-microphone {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-message-input-emoji-picker-ctn {\\r\\n    position: absolute;\\r\\n    bottom: 100%;\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n    user-select: none;\\r\\n    -webkit-user-select: none;\\r\\n    background-color: white;\\r\\n}\\r\\n\\r\\n\\r\\n.as-message-input-plugin-btn.as-message-input-plugin-send {\\r\\n    color: white;\\r\\n    background: linear-gradient(135deg, rgb(0, 120, 212), rgb(0, 188, 242));\\r\\n    transform: scale(1);\\r\\n    transition: scale 0.1s;\\r\\n}\\r\\n\\r\\n.as-message-input-plugin-btn.as-message-input-plugin-send span {\\r\\n    font-size: calc(20em / 14);\\r\\n}\\r\\n\\r\\n.as-message-input-plugin-btn.as-message-input-plugin-send:hover {\\r\\n    background: linear-gradient(135deg, rgb(0, 140, 212), rgb(0, 208, 252));\\r\\n}\\r\\n\\r\\n.as-message-input-plugin-btn.as-message-input-plugin-send:active {\\r\\n    transform: scale(0.9);\\r\\n}\\r\\n\\r\\n\\r\\n.as-message-input:not(.as-text-changed):not(.as-has-attachment):not(.as-has-quote) .as-message-input-plugin-send,\\r\\n.as-message-input:not(.as-has-text):not(.as-has-attachment):not(.as-has-quote) .as-message-input-plugin-send,\\r\\n.as-message-input:not(.as-mode-edit) .as-message-input-plugin-cancel,\\r\\n.as-message-input.as-mode-edit.as-text-changed.as-has-text .as-message-input-plugin-cancel,\\r\\n.as-message-input:not(.as-has-attachment):not(.as-drag-hover) .as-message-input-attachment-ctn,\\r\\n.as-message-input.as-auto-send .as-message-input-attachment-ctn,\\r\\n.as-message-input.as-mode-edit .as-message-input-plugin-file,\\r\\n.as-message-input.as-has-text .as-message-input-plugin-file,\\r\\n.as-message-input.as-has-quote .as-message-input-plugin-file,\\r\\n.as-message-input:not(.as-has-quote) .as-message-quote-box {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-message-input .as-message-quote-box {\\r\\n    border-bottom: 1px solid #ddd;\\r\\n}\\r\\n\\r\\n.as-message-quote-box {\\r\\n    position: relative;\\r\\n\\r\\n}\\r\\n\\r\\n.as-message-input.as-has-attachment .as-message-quote-box {\\r\\n    margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.as-message-quote-remove-btn {\\r\\n    position: absolute;\\r\\n    color: rgb(43, 44, 51);\\r\\n    right: -7px;\\r\\n    top: 5px;\\r\\n    width: 20px;\\r\\n    height: 20px;\\r\\n    padding: 0;\\r\\n    background: transparent;\\r\\n    border: none;\\r\\n    border-radius: 50%;\\r\\n    font-size: 16px;\\r\\n    outline: none;\\r\\n}\\r\\n\\r\\n.as-message-quote-remove-btn:hover {\\r\\n    color: rgb(143, 144, 151);\\r\\n}\\r\\n\\r\\n.as-message-quote-box {\\r\\n    user-select: none;\\r\\n    -webkit-user-select: none;\\r\\n}\\r\\n\\r\\n.as-message-quote-box:not(.as-removable) .as-message-quote-remove-btn {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n\\r\\n.as-message-quote-box > div {\\r\\n    display: inline-block;\\r\\n    vertical-align: top;\\r\\n}\\r\\n\\r\\n.as-message-quote-box:not(.as-has-img):not(.as-has-file) .as-message-quote-img {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-message-quote-img {\\r\\n    width: 40px;\\r\\n    height: 40px;\\r\\n    padding: 5px;\\r\\n    box-sizing: border-box;\\r\\n    background-size: cover;\\r\\n    background-origin: border-box;\\r\\n    background-position: center;\\r\\n    background-repeat: no-repeat;\\r\\n}\\r\\n\\r\\n.as-message-quote-sym {\\r\\n    width: 1.8em;\\r\\n}\\r\\n\\r\\n.as-message-quote-sym > span {\\r\\n    font-size: 1.8em;\\r\\n    color: rgb(169, 169, 172);\\r\\n}\\r\\n\\r\\n.as-message-quote-content {\\r\\n    font-family: \\\"Helvetica Neue\\\", Arial, Helvetica, sans-serif;\\r\\n    width: calc(100% - 26px);\\r\\n    box-sizing: border-box;\\r\\n    padding-left: 20px;\\r\\n}\\r\\n\\r\\n.as-message-quote-box.as-has-img .as-message-quote-content,\\r\\n.as-message-quote-box.as-has-file .as-message-quote-content {\\r\\n    width: calc(100% - 66px);\\r\\n    padding-left: 5px;\\r\\n}\\r\\n\\r\\n.as-message-quote-box.as-has-file .as-message-quote-img {\\r\\n    background-origin: padding-box;\\r\\n    background-size: contain;\\r\\n}\\r\\n\\r\\n.as-message-quote-text {\\r\\n    font-size: calc(16em / 14);\\r\\n    line-height: 1.75;\\r\\n    font-style: italic;\\r\\n    color: rgb(43, 44, 51);\\r\\n    max-width: 100%;\\r\\n    word-break: break-word;\\r\\n    white-space: pre-wrap;\\r\\n}\\r\\n\\r\\n.as-message-quote-box.as-shorten-text .as-message-quote-text {\\r\\n    word-break: normal;\\r\\n\\r\\n    overflow: hidden;\\r\\n    white-space: nowrap;\\r\\n    text-overflow: ellipsis;\\r\\n}\\r\\n\\r\\n.as-message-quote-text .as-emoji {\\r\\n    width: 20px;\\r\\n    height: 20px;\\r\\n}\\r\\n\\r\\n.as-message-quote-desc {\\r\\n    font-size: 0.85em;\\r\\n    color: rgb(80, 80, 88);\\r\\n}\\r\\n\\r\\n.as-message-input-attachment-ctn {\\r\\n    border-bottom: 1px solid #ddd;\\r\\n    max-height: 170px;\\r\\n    overflow-y: auto;\\r\\n}\\r\\n\\r\\n\\r\\n.as-message-input-attach-preview {\\r\\n    display: inline-block;\\r\\n    position: relative;\\r\\n    width: 135px;\\r\\n    height: 135px;\\r\\n    vertical-align: middle;\\r\\n    margin-right: 5px;\\r\\n    margin-bottom: 5px;\\r\\n    border-radius: 10px;\\r\\n    background-color: white;\\r\\n    overflow: hidden;\\r\\n}\\r\\n\\r\\n.as-message-input-attach-preview-image {\\r\\n    min-width: 20px;\\r\\n    image-orientation: from-image;\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n    background-size: cover;\\r\\n    background-position: center center;\\r\\n    background-repeat: no-repeat;\\r\\n}\\r\\n\\r\\n\\r\\n.as-message-input-attach-preview-file {\\r\\n    max-width: 50%;\\r\\n    max-height: 50%;\\r\\n    margin-left: 10px;\\r\\n    margin-top: 10px;\\r\\n}\\r\\n\\r\\n.as-message-input-attach-preview-close-btn {\\r\\n    position: absolute;\\r\\n    right: 10px;\\r\\n    top: 10px;\\r\\n    width: 18px;\\r\\n    height: 18px;\\r\\n    border-radius: 50%;\\r\\n    text-align: center;\\r\\n    border: 1px solid white;\\r\\n    outline: none;\\r\\n    padding: 0;\\r\\n    color: white;\\r\\n    -webkit-box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.64);\\r\\n    -moz-box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.64);\\r\\n    box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.64);\\r\\n    background-color: rgba(100, 100, 100, 0.5);\\r\\n}\\r\\n\\r\\n.as-message-input-attach-preview-close-btn span {\\r\\n    font-size: 14px;\\r\\n}\\r\\n\\r\\n.as-message-input-attach-preview-close-btn:hover {\\r\\n    background-color: rgba(255, 255, 255, 0.5);\\r\\n    color: rgb(200, 200, 200);\\r\\n}\\r\\n\\r\\n.as-message-input-attach-preview-close-btn:active {\\r\\n    background-color: rgba(255, 255, 255, 0.7);\\r\\n    color: rgb(255, 255, 255);\\r\\n}\\r\\n\\r\\n\\r\\n.as-message-input:not(.as-drag-hover) .as-message-input-attachment-add-btn-drop,\\r\\n.as-message-input.as-drag-hover .as-message-input-attachment-add-btn-plus {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n\\r\\n.as-message-input-attach-preview-info {\\r\\n    position: absolute;\\r\\n    left: 10px;\\r\\n    bottom: 10px;\\r\\n    right: 10px;\\r\\n    max-height: calc(100% - 20px);\\r\\n    text-shadow: 0px 1px 3px white;\\r\\n    color: black;\\r\\n    font-size: 14px;\\r\\n    font-family: Arial, Helvetica, sans-serif;\\r\\n}\\r\\n\\r\\n.as-message-input-attach-preview-name {\\r\\n    overflow: hidden;\\r\\n    text-overflow: ellipsis;\\r\\n}\\r\\n\\r\\n.as-message-input-attach-preview-size {\\r\\n    color: #42494c;\\r\\n}\\r\\n\\r\\n.as-message-input-attachment-add-btn {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    height: 135px;\\r\\n    width: 60px;\\r\\n    border: none;\\r\\n    border-radius: 10px;\\r\\n    padding: 0;\\r\\n    background-color: rgb(196, 196, 200);\\r\\n    color: white;\\r\\n    font-size: 50px;\\r\\n    outline: none;\\r\\n    margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n.as-message-input-attachment-add-btn:hover {\\r\\n    background-color: rgb(169, 169, 169)\\r\\n\\r\\n}\\r\\n\\r\\n.as-message-input-attachment-add-btn:active {\\r\\n    background-color: rgb(138, 141, 145)\\r\\n}\\r\\n\\r\\n.as-message-input-external-tools-popup {\\r\\n    position: absolute;\\r\\n\\r\\n    max-width: 100%;\\r\\n    bottom: 100%;\\r\\n    background-color: white;\\r\\n}\\r\\n\\r\\n.as-message-input-external-tools-popup.as-align-left{\\r\\n    left: 0;\\r\\n}\\r\\n\\r\\n\\r\\n.as-message-input-external-tools-popup.as-align-right{\\r\\n    right: 0;\\r\\n}\\r\\n\\r\\n.as-message-input-external-tools-popup.as-align-fixed{\\r\\n    right: 0;\\r\\n    left: 0;\\r\\n}\\r\\n\\r\\nimg.as-emoji {\\r\\n    vertical-align: bottom;\\r\\n}\\r\\n\\r\\nspan.as-emoji-text {\\r\\n    position: absolute;\\r\\n    color: transparent;\\r\\n    width: 20px;\\r\\n    opacity: 0;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/messageinput.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/mknavigator.css":
/*!************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/mknavigator.css ***!
  \************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \":root {\\r\\n    --control-horizontal-distance-2: 10px;\\r\\n}\\r\\n\\r\\n.mk-nav {\\r\\n    position: relative;\\r\\n    --mk-nav-line-top: 0;\\r\\n    font-family: Arial, Helvetica, sans-serif;\\r\\n    font-size: 1rem;\\r\\n    user-select: none;\\r\\n    -webkit-user-select: none;\\r\\n    -ms-user-select: none;\\r\\n    -moz-user-select: none;\\r\\n    --mk-navigator-bound-left: 0;\\r\\n}\\r\\n\\r\\n.mk-nav::after {\\r\\n    content: \\\"\\\";\\r\\n    position: absolute;\\r\\n    transition: top 0.2s;\\r\\n    top: var(--mk-nav-line-top);\\r\\n    height:  calc(2em + 12px);\\r\\n    border-right: 4px solid rgb(20, 100, 246);\\r\\n    right: -3px;\\r\\n}\\r\\n\\r\\n.mk-nav.mk-has-draggable .mk-nav-item {\\r\\n    padding-left: calc(2em + 2px);\\r\\n}\\r\\n\\r\\n.mk-nav-item {\\r\\n    height: calc(2em + 12px);\\r\\n    padding-left: var(--control-horizontal-distance-2);\\r\\n    padding-right: 20px;\\r\\n    min-width: 100px;\\r\\n    cursor: pointer;\\r\\n    white-space: nowrap;\\r\\n    position: relative;\\r\\n    overflow: visible;\\r\\n    display: flex;\\r\\n    align-items: center;\\r\\n    background-color: white;\\r\\n}\\r\\n\\r\\n.mk-nav-item.as-board-moving {\\r\\n    transform: none;\\r\\n    left: var(--mk-navigator-bound-left) !important;\\r\\n    background-color: rgb(169, 169, 172, 0.3);\\r\\n}\\r\\n\\r\\n.mk-nav-item:hover {\\r\\n    background-color: rgb(169, 169, 172, 0.3);\\r\\n}\\r\\n\\r\\n.mk-nav-item.as-hidden{\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.mk-nav-item-text-ctn {\\r\\n    flex-grow: 1;\\r\\n    padding-right: var(--control-horizontal-distance-2);\\r\\n    padding-left: var(--control-horizontal-distance-2)\\r\\n}\\r\\n\\r\\n\\r\\n.mk-nav-item-switch-ctn {\\r\\n\\r\\n}\\r\\n\\r\\n/*\\r\\n.mk-nav-item::after {\\r\\n    content: \\\"\\\";\\r\\n    border: 1px solid #ddd;\\r\\n    z-index: 2;\\r\\n    pointer-events: none;\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n    top: 0;\\r\\n    bottom: -1px;\\r\\n}\\r\\n\\r\\n.mk-nav-item:hover::after,\\r\\n.mk-nav-item.mk-current::after{\\r\\n    border-color: rgb(20, 100, 246);\\r\\n    z-index: 3;\\r\\n}\\r\\n*/\\r\\n\\r\\n\\r\\n.mk-nav-item.mk-current {\\r\\n    color: rgb(20, 100, 246);\\r\\n    text-shadow: 1px 0 0 currentColor;\\r\\n}\\r\\n\\r\\n.mk-nav-item-drag-zone {\\r\\n    position: absolute;\\r\\n    z-index: 1;\\r\\n    left: 0;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    width: 30px;\\r\\n    font-size: inherit;\\r\\n}\\r\\n\\r\\n.mk-nav-item-drag-zone i {\\r\\n    font-size: 1.7em;\\r\\n}\\r\\n\\r\\n.mk-nav-item-drag-zone::before {\\r\\n    content: \\\"\\\";\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n.mk-nav-item-drag-zone::before,\\r\\n.mk-nav-item-drag-zone i {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/mknavigator.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/mobileapp.css":
/*!**********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/mobileapp.css ***!
  \**********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"/**** APP ***************/\\r\\n\\r\\n.am-application {\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n.am-application-frameview {\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n\\r\\n.am-application-tabbar {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.am-application.am-show-tabbar .am-application-tabbar {\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n.am-application.am-show-tabbar .am-application-frameview{\\r\\n    height: calc(100% - 3em);\\r\\n}\\r\\n\\r\\n\\r\\n/*************** HEADER****************************************/\\r\\n\\r\\n.am-header-bar {\\r\\n    display: flex;\\r\\n    align-items: center;\\r\\n    background-color: rgb(29, 138, 241);\\r\\n    -webkit-box-shadow: 0px 1px 10px 2px rgba(0, 0, 0, 0.5);\\r\\n    -moz-box-shadow: 0px 1px 10px 2px rgba(0, 0, 0, 0.5);\\r\\n    box-shadow: 0px 1px 5px 1px rgba(0, 0, 0, 0.5);\\r\\n    box-sizing: border-box;\\r\\n    position: relative;\\r\\n    font-family: Arial, Helvetica, sans-serif;\\r\\n    color: white;\\r\\n    height: 3em;\\r\\n    font-size: 1rem;\\r\\n}\\r\\n\\r\\n\\r\\n.am-header-bar-left-btn,\\r\\nbutton.am-header-bar-command {\\r\\n    display: inline-block;\\r\\n    text-align: center;\\r\\n    border: none;\\r\\n    background-color: transparent;\\r\\n    height: 3em;\\r\\n    width: 3em;\\r\\n    padding: 0;\\r\\n    margin: 0;\\r\\n    vertical-align: middle;\\r\\n    color: white;\\r\\n    outline: none;\\r\\n    font-size: inherit;\\r\\n}\\r\\n\\r\\n.am-header-bar-left-btn span,\\r\\nbutton.am-header-bar-command span,\\r\\n.am-header-bar-left-btn i,\\r\\nbutton.am-header-bar-command i {\\r\\n    font-size: 2em;\\r\\n}\\r\\n\\r\\nbutton.am-header-bar-command:not(:last-child) {\\r\\n    margin-right: 0.6256em;\\r\\n}\\r\\n\\r\\n\\r\\n.am-header-bar-left-btn:active,\\r\\nbutton.am-header-bar-action:active,\\r\\nbutton.am-header-bar-command:active {\\r\\n    color: rgb(220, 220, 222);\\r\\n}\\r\\n\\r\\n.am-header-bar-title-ctn {\\r\\n    flex-grow: 1;\\r\\n    white-space: nowrap;\\r\\n    overflow: inherit;\\r\\n    position: relative;\\r\\n    height: 3em;\\r\\n}\\r\\n\\r\\n.am-header-bar-no-size-wrapper {\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    right: 0;\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n.am-header-bar-no-size-wrapper::before {\\r\\n    content: \\\"\\\";\\r\\n    height: 100%;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.am-header-bar-title-wrapper {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    width: 100%;\\r\\n\\r\\n}\\r\\n\\r\\n.am-header-bar-title-ctn:first-child .am-header-bar-title {\\r\\n    padding-left: 1.2em;\\r\\n}\\r\\n\\r\\n\\r\\n.am-header-bar-title {\\r\\n    font-size: 1.2em;\\r\\n    color: white;\\r\\n    overflow: hidden;\\r\\n    text-overflow: ellipsis;\\r\\n\\r\\n}\\r\\n\\r\\n.am-header-bar-title-desc {\\r\\n    font-size: 0.8em;\\r\\n    line-height: 2;\\r\\n}\\r\\n\\r\\n.am-header-bar-title-desc:empty {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n\\r\\n.am-header-bar-right {\\r\\n\\r\\n}\\r\\n\\r\\n.am-header-bar-right::after {\\r\\n    content: \\\"\\\";\\r\\n    height: 100%;\\r\\n    vertical-align: middle;\\r\\n    display: inline-block;\\r\\n    width: 0.357142857em;\\r\\n}\\r\\n\\r\\n\\r\\n.am-header-bar-right-item-ctn {\\r\\n    vertical-align: middle;\\r\\n    display: inline-block;\\r\\n}\\r\\n\\r\\n\\r\\nbutton.am-header-bar-action {\\r\\n    height: 3em;\\r\\n    width: 3em;\\r\\n    background-color: transparent;\\r\\n    color: white;\\r\\n    border: none;\\r\\n    font-size: inherit;\\r\\n    outline: none;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.am-header-bar-quickmenu-btn.am-status-active .am-header-bar-quickmenu-btn-circle {\\r\\n    background-color: rgba(169, 169, 169, 0.5);\\r\\n}\\r\\n\\r\\n\\r\\n.am-header-bar-quickmenu-btn-circle {\\r\\n    height: 2em;\\r\\n    width: 2em;\\r\\n    border-radius: 50%;\\r\\n    text-align: center;\\r\\n}\\r\\n\\r\\n.am-header-bar-quickmenu-btn-circle span {\\r\\n    font-size: 1.6em;\\r\\n    line-height: 1.25em;\\r\\n}\\r\\n\\r\\n.am-header-bar-quickmenu-btn.as-active  .mdi-dots-horizontal-circle-outline,\\r\\n.am-header-bar-quickmenu-btn:not(.as-active)  .mdi-dots-horizontal-circle {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n\\r\\n.am-header-bar.am-light-weight,\\r\\n.am-header-bar.am-light-weight .am-header-bar-title-ctn,\\r\\n.am-header-bar.am-light-weight .am-header-bar-left-btn,\\r\\n.am-header-bar.am-light-weight button.am-header-bar-command,\\r\\n.am-header-bar.am-light-weight button.am-header-bar-action {\\r\\n    height: calc(2rem + 2px);\\r\\n}\\r\\n\\r\\n\\r\\n.am-header-bar.am-light-weight .am-header-bar-left-btn span,\\r\\n.am-header-bar.am-light-weight button.am-header-bar-command span,\\r\\n.am-header-bar-left-btn i,\\r\\n.am-header-bar.am-light-weight button.am-header-bar-command i {\\r\\n    font-size: 1.6em;\\r\\n}\\r\\n\\r\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/mobileapp.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/modal.css":
/*!******************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/modal.css ***!
  \******************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-modal {\\r\\n    position: fixed;\\r\\n    left: 0;\\r\\n    height: 100%;\\r\\n    top: 0;\\r\\n    width: 100%;\\r\\n    z-index: 1001000;\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n.as-modal.as-hidden {\\r\\n    z-index: -1000;\\r\\n    visibility: hidden;\\r\\n    opacity: 0;\\r\\n}\\r\\n\\r\\n.as-modal.as-center {\\r\\n    text-align: center;\\r\\n}\\r\\n\\r\\n\\r\\n.as-modal.as-middle::before {\\r\\n    content: \\\"\\\";\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    height: 100%;\\r\\n    width: 0;\\r\\n}\\r\\n\\r\\n.as-modal > .as-modal-content {\\r\\n    display: inline-block;\\r\\n    text-align: initial;\\r\\n    white-space: initial;\\r\\n}\\r\\n\\r\\n/*for content*/\\r\\n.as-modal.as-middle > .as-modal-content {\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.as-loading-cube-modal {\\r\\n    background-color: rgba(169, 169, 169, 0.3);\\r\\n}\\r\\n\\r\\n\\r\\n.as-loading-cube-modal {\\r\\n    z-index: 1000000;\\r\\n    background-color: rgba(169, 169, 169, 0.3);\\r\\n}\\r\\n\\r\\n.as-loading-cube-modal > .as-modal-content {\\r\\n    background-color: white;\\r\\n    border-radius: 4px;\\r\\n    padding: 10px;\\r\\n    -webkit-box-shadow: 2px 2px 9px 0px rgba(20, 20, 20, 1);\\r\\n    -moz-box-shadow: 2px 2px 9px 0px rgba(20, 20, 20, 1);\\r\\n    box-shadow: 2px 2px 9px 0px rgba(20, 20, 20, 1);\\r\\n    display: inline-block;\\r\\n}\\r\\n\\r\\n.as-loading-cube-modal > .as-modal-content > svg {\\r\\n    width: 5em;\\r\\n    height: 5em;\\r\\n}\\r\\n\\r\\n\\r\\n.am-modal {\\r\\n    z-index: 100005;\\r\\n    position: fixed;\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    text-align: center;\\r\\n    box-sizing: border-box;\\r\\n    padding-top: var(--modal-margin-top);\\r\\n}\\r\\n\\r\\n.am-modal>div{\\r\\n    text-align: initial;\\r\\n    display: inline-block;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/modal.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/multiselectmenu.css":
/*!****************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/multiselectmenu.css ***!
  \****************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \":root {\\r\\n    --multi-select-menu-max-height: 90px;\\r\\n}\\r\\n\\r\\n.as-multi-select-menu {\\r\\n    --list-min-width: 3em;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    position: relative;\\r\\n    min-height: var(--select-box-min-height);\\r\\n    min-width: var(--list-min-width);\\r\\n    border: solid 1px #d6d6d6;\\r\\n    border-radius: 3px;\\r\\n    box-sizing: border-box;\\r\\n    outline: none;\\r\\n    background-color: white;\\r\\n    padding-right: 45px;\\r\\n    white-space: normal;\\r\\n}\\r\\n\\r\\n.as-multi-select-menu-item-ctn {\\r\\n    display: block;\\r\\n    max-height: var(--multi-select-menu-max-height);\\r\\n    overflow-y: auto;\\r\\n}\\r\\n\\r\\n\\r\\n.as-multi-select-menu-toggle-btn {\\r\\n    position: absolute;\\r\\n    right: 0;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    width: 30px;\\r\\n    pointer-events: none;\\r\\n    border: none;\\r\\n    background-color: transparent;\\r\\n}\\r\\n\\r\\n.as-multi-select-menu-toggle-btn svg.dropdown {\\r\\n    width: 10px;\\r\\n    height: 10px;\\r\\n    fill: #929292;\\r\\n}\\r\\n\\r\\n.as-multi-select-menu:hover svg.dropdown {\\r\\n    fill: black;\\r\\n}\\r\\n\\r\\n.as-multi-select-menu.as-disable-click-to-focus .as-multi-select-menu-toggle-btn {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-multi-select-menu .absol-selectbox-item {\\r\\n    margin: calc((var(--select-box-min-height) - 2px - var(--select-box-item-height)) / 2) 2px;\\r\\n}\\r\\n\\r\\n\\r\\n.as-multi-select-menu.as-item-focusable .absol-selectbox-item.as-active {\\r\\n    background-color: var(--select-box-focus-item-color);\\r\\n}\\r\\n\\r\\n.as-multi-select-menu.as-disabled {\\r\\n    background-color: #ebebe4;\\r\\n}\\r\\n\\r\\n.as-multi-select-menu-toggle-btn {\\r\\n\\r\\n}\\r\\n\\r\\n.as-multi-select-menu.as-disabled .as-multi-select-menu-item-ctn * {\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n\\r\\n.as-multi-select-menu.as-multi-check-tree-leaf-menu {\\r\\n    min-width: calc(var(--select-list-estimate-width) + 14px);\\r\\n}\\r\\n\\r\\n\\r\\n.as-multi-select-menu.as-read-only .absol-selectbox-item-close,\\r\\n.as-multi-select-menu.as-read-only .as-multi-select-menu-toggle-btn,\\r\\n.as-multi-select-menu.as-disabled .absol-selectbox-item-close,\\r\\n.as-multi-select-menu.as-disabled .as-multi-select-menu-toggle-btn {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-multi-select-menu.as-read-only .absol-selectbox-item-text {\\r\\n    padding-right: 10px;\\r\\n}\\r\\n\\r\\n.as-multi-select-menu.as-read-only {\\r\\n    padding-right: 0;\\r\\n}\\r\\n\\r\\n.as-multi-select-menu.as-border-none {\\r\\n    border: none;\\r\\n}\\r\\n\\r\\n.as-multi-select-menu.as-border-none .as-multi-select-menu-item-ctn {\\r\\n    max-height: unset;\\r\\n    overflow-y: auto;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/multiselectmenu.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/numberinput.css":
/*!************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/numberinput.css ***!
  \************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-number-input {\\r\\n    text-align: right;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    position: relative;\\r\\n    min-width: calc(1em + 2px);\\r\\n    height: calc(2em + 2px);\\r\\n    border: solid 1px #d6d6d6;\\r\\n    font-size: 1rem;\\r\\n    box-sizing: border-box;\\r\\n    width: 4em;\\r\\n    --text-width: 0.5em;\\r\\n    font-family: \\\"Helvetica Neue\\\", Arial, Helvetica, sans-serif;\\r\\n}\\r\\n\\r\\n.absol-number-input.as-width-auto {\\r\\n    width: calc(var(--text-width) + 2.2em);\\r\\n}\\r\\n\\r\\n.absol-number-input.as-read-only .absol-number-input-text-container {\\r\\n    right: 0;\\r\\n}\\r\\n\\r\\n.absol-number-input.as-read-only .absol-number-input-button-up-container,\\r\\n.absol-number-input.as-read-only .absol-number-input-button-down-container {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.absol-number-input.as-read-only.as-border-none {\\r\\n    border: none;\\r\\n}\\r\\n\\r\\n.absol-number-input.as-read-only.as-border-none input {\\r\\n    /*text-align: left;*/\\r\\n    padding-left: 0;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-number-input-button-up-container {\\r\\n    top: 0;\\r\\n}\\r\\n\\r\\n.absol-number-input-button-down-container {\\r\\n    bottom: 0;\\r\\n}\\r\\n\\r\\n.absol-number-input-button-up-container,\\r\\n.absol-number-input-button-down-container {\\r\\n    right: 0;\\r\\n    position: absolute;\\r\\n    height: 1em;\\r\\n    width: 1em;\\r\\n    max-height: 50%;\\r\\n}\\r\\n\\r\\n.absol-number-input-button-up-container > button,\\r\\n.absol-number-input-button-down-container > button {\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n    line-height: 1;\\r\\n    padding: 0;\\r\\n    border: none;\\r\\n    box-sizing: border-box;\\r\\n    outline: none;\\r\\n    color: rgb(101, 101, 101);\\r\\n    background-color: transparent;\\r\\n    font-size: inherit;\\r\\n}\\r\\n\\r\\n.absol-number-input-button-up-container > button:active,\\r\\n.absol-number-input-button-down-container > button:active {\\r\\n    color: black;\\r\\n    background-color: rgba(101, 101, 101, 0.3);\\r\\n}\\r\\n\\r\\n.absol-number-input-text-container {\\r\\n    left: 0em;\\r\\n    right: 1.2em;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    position: absolute;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-number-input-text-container > input[type=\\\"text\\\"] {\\r\\n    border: none;\\r\\n    outline: none;\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n    text-align: right;\\r\\n    padding: 0 0.2em;\\r\\n    box-sizing: border-box;\\r\\n    font: inherit;\\r\\n}\\r\\n\\r\\n.absol-number-input.absol-disabled {\\r\\n    pointer-events: none;\\r\\n    color: var(--as-disabled-text-color);\\r\\n}\\r\\n\\r\\n.absol-number-input.absol-disabled input {\\r\\n    background-color: var(--as-disabled-background-color);\\r\\n}\\r\\n\\r\\n.absol-number-input.absol-disabled .absol-number-input-button-up-container,\\r\\n.absol-number-input.absol-disabled .absol-number-input-button-down-container {\\r\\n    opacity: 0.3;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/numberinput.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/objectmergetool.css":
/*!****************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/objectmergetool.css ***!
  \****************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-omt {\\r\\n    display: block;\\r\\n    font-family: \\\"Helvetica Neue\\\", Arial, Helvetica, sans-serif;\\r\\n    font-size: 1rem;\\r\\n}\\r\\n\\r\\n.as-omt-node {\\r\\n\\r\\n}\\r\\n\\r\\n\\r\\n.as-omt-field {\\r\\n    --level: 0;\\r\\n    position: relative;\\r\\n    padding-bottom: 10px;\\r\\n}\\r\\n\\r\\n\\r\\n.as-omt-field.as-hover::before {\\r\\n    border-color: rgb(30, 101, 234);\\r\\n    border-width: 2px;\\r\\n}\\r\\n\\r\\n.as-omt-field::before {\\r\\n    content: \\\"\\\";\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    top: 15px;\\r\\n    right: 0;\\r\\n    bottom: 0;\\r\\n    border: 1px solid rgb(170, 170, 200);\\r\\n    z-index: 0;\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n.as-omt-field-header {\\r\\n    padding-left: 10px;\\r\\n    line-height: 2;\\r\\n}\\r\\n\\r\\n\\r\\n.as-omt-field-body {\\r\\n    padding-left: 10px;\\r\\n    padding-right: 10px;\\r\\n    min-height: 1em;\\r\\n}\\r\\n\\r\\n\\r\\n.as-omt-field-raw-ctn,\\r\\n.as-omt-field.as-mode-raw > .as-omt-field-body {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-omt-field.as-mode-raw > .as-omt-field-raw-ctn {\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n\\r\\n.as-omt-field-command-ctn {\\r\\n    position: absolute;\\r\\n    z-index: 20;\\r\\n    right: 10px;\\r\\n    top: 20px;\\r\\n    background-color: white;\\r\\n    height: 30px;\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.bsc-white .as-omt-field-command-ctn button[data-command=\\\"view_mode\\\"] {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n\\r\\n.as-omt-field.as-hover > .as-omt-field-command-ctn {\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n.as-omt-field-command-ctn > button {\\r\\n    height: 30px;\\r\\n}\\r\\n\\r\\n.as-omt-field-command-ctn > button:not(:first-child) {\\r\\n    margin-left: 5px;\\r\\n}\\r\\n\\r\\n.as-omt-field-command-ctn > button span {\\r\\n    font-size: 24px;\\r\\n}\\r\\n\\r\\n.as-omt-field-name {\\r\\n    font-weight: bold;\\r\\n    background-color: white;\\r\\n    display: inline-block;\\r\\n    z-index: 3;\\r\\n    position: relative;\\r\\n    padding-left: 5px;\\r\\n    padding-right: 5px;\\r\\n    margin-right: 10px;\\r\\n}\\r\\n\\r\\n\\r\\n.as-omt-field-body > .as-omt-field:first-child {\\r\\n    margin-top: 10px;\\r\\n}\\r\\n\\r\\n.as-omt-field code {\\r\\n    white-space: pre-wrap;\\r\\n}\\r\\n\\r\\n.as-omt-field-raw-ctn {\\r\\n    padding-left: 10px;\\r\\n    padding-right: 10px;\\r\\n}\\r\\n\\r\\n.as-omt-field.as-type-struct > .as-omt-field-body {\\r\\n    padding-left: 20px;\\r\\n}\\r\\n\\r\\nimg.as-omt-field-value {\\r\\n    max-width: calc(100vw - 5em);\\r\\n    max-height: 10em;\\r\\n}\\r\\n\\r\\n.as-omt-dialog .as-message-dialog-body {\\r\\n    max-height: calc(90vh - 5em);\\r\\n    max-width: calc(90vw - 5em);\\r\\n    overflow: auto;\\r\\n}\\r\\n\\r\\n.as-omt-option-row {\\r\\n    display: flex;\\r\\n    align-items: center;\\r\\n}\\r\\n\\r\\n.as-omt-option-row:not(:first-child) {\\r\\n    margin-top: 5px;\\r\\n}\\r\\n\\r\\n.as-omt-field-raw-ctn > div > .as-omt-field-name {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-omt-option-row > .as-omt-field {\\r\\n    flex-grow: 1;\\r\\n}\\r\\n\\r\\n\\r\\n.as-omt-field-color-value-bg {\\r\\n    height: 2em;\\r\\n    width: 5em;\\r\\n    background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAIAAAAmkwkpAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAaSURBVBhXYzh8+PD///8hJAOcBSRxyRw+DABJUCox2kjvSgAAAABJRU5ErkJggg==');\\r\\n    background-size: 1.5em;\\r\\n    image-rendering: optimizeSpeed;\\r\\n    image-rendering: -moz-crisp-edges;\\r\\n    image-rendering: -o-crisp-edges;\\r\\n    image-rendering: -webkit-optimize-contrast;\\r\\n    image-rendering: pixelated;\\r\\n    image-rendering: optimize-contrast;\\r\\n    -ms-interpolation-mode: nearest-neighbor;\\r\\n    --omt-color-value: transparent;\\r\\n}\\r\\n\\r\\n.as-omt-field-color-value {\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n    background-color: var(--omt-color-value);\\r\\n}\\r\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/objectmergetool.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/onscreenwidget.css":
/*!***************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/onscreenwidget.css ***!
  \***************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-onscreen-widget {\\r\\n    --client-width: 0px;\\r\\n    --client-height: 0px;\\r\\n    --cx: 0.9;\\r\\n    --cy: 0.9;\\r\\n    position: fixed;\\r\\n    z-index: 1000000;\\r\\n    left: calc((100vw - var(--client-width) - 4px) * var(--cx) + 2px);\\r\\n    top: calc((100vh - var(--client-height) - 4px) * var(--cy) + 2px);\\r\\n    touch-action: none;\\r\\n    user-select: none;\\r\\n}\\r\\n\\r\\n.as-onscreen-widget.as-size-loading {\\r\\n    visibility: hidden;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/onscreenwidget.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/onscreenwindow.css":
/*!***************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/onscreenwindow.css ***!
  \***************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-onscreen-window {\\r\\n    z-index: 1002;\\r\\n    position: fixed;\\r\\n    left: 10px;\\r\\n    top: 10px;\\r\\n    width: 12em;\\r\\n    height: 5em;\\r\\n    /*default size*/\\r\\n    /* min-width: 12em;\\r\\n    min-height: 1.4em; */\\r\\n}\\r\\n\\r\\n\\r\\n.absol-onscreen-window > .as-window-box {\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n    display: flex;\\r\\n    flex-direction: column;\\r\\n}\\r\\n\\r\\n.absol-onscreen-window > .as-window-box > .as-window-box-body {\\r\\n    flex-grow: 1;\\r\\n}\\r\\n\\r\\n.as-window-box {\\r\\n    position: relative;\\r\\n\\r\\n    background: white;\\r\\n    -webkit-box-shadow: 2px 2px 17px -1px rgba(0, 0, 0, 0.54);\\r\\n    -moz-box-shadow: 2px 2px 17px -1px rgba(0, 0, 0, 0.54);\\r\\n    box-shadow: 2px 2px 17px -1px rgba(0, 0, 0, 0.54);\\r\\n}\\r\\n\\r\\n.as-window-box-header {\\r\\n    display: flex;\\r\\n    min-height: 1.4em;\\r\\n    position: relative;\\r\\n    background-color: rgba(169, 169, 169, 0.15);\\r\\n    padding: 0.2em;\\r\\n    box-sizing: border-box;\\r\\n    align-items: center;\\r\\n    user-select: none;\\r\\n    -webkit-user-select: none;\\r\\n    -moz-user-select: none;\\r\\n}\\r\\n\\r\\n.as-window-box-header-icon-ctn:empty {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-window-box-header-title {\\r\\n    flex-grow: 1;\\r\\n    padding-left: 0.2em;\\r\\n}\\r\\n\\r\\n.as-window-box-header-button-ctn {\\r\\n}\\r\\n\\r\\n.as-window-box-header-icon {\\r\\n    margin-right: 0.2em;\\r\\n    font-size: inherit;\\r\\n}\\r\\n\\r\\nspan.as-window-box-header-icon {\\r\\n    line-height: 1.2em;\\r\\n}\\r\\n\\r\\nsvg.as-window-box-header-icon {\\r\\n    width: 1.2em;\\r\\n    height: 1.2em;\\r\\n}\\r\\n\\r\\nspan.as-window-box-header-title {\\r\\n    line-height: 1.2em;\\r\\n    font-size: 1em;\\r\\n    color: rgb(33, 33, 34);\\r\\n}\\r\\n\\r\\n\\r\\n.as-window-box-header-button-ctn > button {\\r\\n    height: 100%;\\r\\n    width: 1em;\\r\\n    font-size: 1em;\\r\\n    padding: 0;\\r\\n    margin: 0 0 0 0.1em;\\r\\n    border: none;\\r\\n    color: rgb(169, 169, 169);\\r\\n    outline: none;\\r\\n}\\r\\n\\r\\n.as-window-box-header-button-ctn > button:hover {\\r\\n    color: rgb(103, 103, 103);\\r\\n}\\r\\n\\r\\n.as-window-box-header-button-ctn > button:active {\\r\\n    color: rgb(33, 33, 34);\\r\\n}\\r\\n\\r\\n.as-window-box-header-button-ctn > button:hover > .mdi-close {\\r\\n    color: rgb(255, 59, 59);\\r\\n}\\r\\n\\r\\n.as-window-box-header-button-ctn > button > span {\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.absol-onscreen-window-body-container {\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n    top: 1.4em;\\r\\n    bottom: 0;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-onscreen-window-moving-modal {\\r\\n    position: fixed;\\r\\n    left: 1px;\\r\\n    right: 1px;\\r\\n    top: 1px;\\r\\n    bottom: 1px;\\r\\n    z-index: 1000000006;\\r\\n}\\r\\n\\r\\n.absol-onscreen-window-resizer {\\r\\n    position: absolute;\\r\\n}\\r\\n\\r\\n.absol-onscreen-window-resizer.absol-onscreen-window-resize-bottom {\\r\\n    bottom: -3px;\\r\\n    height: 6px;\\r\\n    left: 3px;\\r\\n    right: 3px;\\r\\n    z-index: 3;\\r\\n}\\r\\n\\r\\n.absol-onscreen-window-resizer.absol-onscreen-window-resize-top {\\r\\n    top: -3px;\\r\\n    height: 6px;\\r\\n    left: 3px;\\r\\n    right: 3px;\\r\\n    z-index: 3;\\r\\n}\\r\\n\\r\\n.absol-onscreen-window-resizer.absol-onscreen-window-resize-left {\\r\\n    left: -3px;\\r\\n    top: 3px;\\r\\n    bottom: 3px;\\r\\n    width: 6px;\\r\\n    cursor: ew-resize;\\r\\n}\\r\\n\\r\\n.absol-onscreen-window-resizer.absol-onscreen-window-resize-right {\\r\\n    right: -3px;\\r\\n    top: 3px;\\r\\n    bottom: 3px;\\r\\n    width: 6px;\\r\\n    cursor: ew-resize;\\r\\n}\\r\\n\\r\\n.absol-onscreen-window-resizer.absol-onscreen-window-resize-bottom-right {\\r\\n    width: 6px;\\r\\n    height: 6px;\\r\\n    right: -3px;\\r\\n    bottom: -3px;\\r\\n}\\r\\n\\r\\n.absol-onscreen-window-resizer.absol-onscreen-window-resize-bottom-left {\\r\\n    width: 6px;\\r\\n    height: 6px;\\r\\n    left: -3px;\\r\\n    bottom: -3px;\\r\\n}\\r\\n\\r\\n.absol-onscreen-window-resizer.absol-onscreen-window-resize-top-left {\\r\\n    width: 6px;\\r\\n    height: 6px;\\r\\n    left: -3px;\\r\\n    top: -3px;\\r\\n}\\r\\n\\r\\n.absol-onscreen-window-resizer.absol-onscreen-window-resize-top-right {\\r\\n    width: 6px;\\r\\n    height: 6px;\\r\\n    right: -3px;\\r\\n    top: -3px;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-onscreen-window-resize-top,\\r\\n.absol-onscreen-window-resize-bottom {\\r\\n    cursor: ns-resize;\\r\\n\\r\\n}\\r\\n\\r\\n.absol-onscreen-window-resize-left,\\r\\n.absol-onscreen-window-resize-right {\\r\\n    cursor: ew-resize;\\r\\n\\r\\n}\\r\\n\\r\\n\\r\\n.absol-onscreen-window-resize-bottom-right {\\r\\n    cursor: se-resize;\\r\\n}\\r\\n\\r\\n.absol-onscreen-window-resize-bottom-left {\\r\\n    cursor: sw-resize;\\r\\n}\\r\\n\\r\\n.absol-onscreen-window-resize-top-left {\\r\\n    cursor: nw-resize;\\r\\n}\\r\\n\\r\\n.absol-onscreen-window-resize-top-right {\\r\\n    cursor: ne-resize;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/onscreenwindow.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/pageindicator.css":
/*!**************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/pageindicator.css ***!
  \**************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-page-indicator {\\r\\n    text-align: center;\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n.as-page-indicator::before{\\r\\n    content: \\\"\\\";\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n.as-page-indicator-item {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    text-align: center;\\r\\n    font-size: inherit;\\r\\n    width: 1.5em;\\r\\n    padding: 0;\\r\\n    border: 0;\\r\\n    background-color: transparent;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n.as-page-indicator-item::before {\\r\\n    content: \\\"\\\";\\r\\n    display: inline-block;\\r\\n    height: 0.5em;\\r\\n    width: 0.5em;\\r\\n    transition: width 0.25s, height 0.25s, color 0.25s;\\r\\n    border-radius: 50%;\\r\\n    background-color: rgb(196, 196, 196);\\r\\n    font-size: inherit;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.as-page-indicator-item.as-active::before{\\r\\n    width: 0.75em;\\r\\n    height: 0.75em;\\r\\n    background-color: var(--variant-color-primary);\\r\\n\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/pageindicator.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/pageselector.css":
/*!*************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/pageselector.css ***!
  \*************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-page-selector{\\r\\n    white-space: normal;\\r\\n    user-select: none;\\r\\n    -webkit-user-select: none;\\r\\n    -moz-user-select: none;\\r\\n    font-size: 1rem;\\r\\n}\\r\\n\\r\\n.absol-page-selector > ul{\\r\\n    margin-bottom: 0px;\\r\\n    margin-top: 0;\\r\\n}\\r\\n\\r\\n.absol-page-number-buttons{\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n.absol-page-number-input > label{\\r\\n    font-weight: 100;\\r\\n}\\r\\n\\r\\n.absol-page-number-buttons > li.page-previous, \\r\\n.absol-page-number-buttons > li.page-next,\\r\\n.absol-page-number-buttons > li.page-first,\\r\\n.absol-page-number-buttons > li.page-last\\r\\n{\\r\\n    display: inline-block;\\r\\n    height:  calc(2em + 2px);;\\r\\n    padding-left: 10px;\\r\\n    padding-right: 10px;\\r\\n    text-align: center;\\r\\n    transition: all .3s linear;\\r\\n    background-color: transparent;\\r\\n    cursor: pointer;\\r\\n}\\r\\n\\r\\n.absol-page-number-buttons > li.absol-page-number{\\r\\n    font-size: inherit;\\r\\n    display: inline-block;\\r\\n    height: calc(2em + 2px);\\r\\n    width: 3em;\\r\\n    text-align: center;\\r\\n    transition: all .3s linear;\\r\\n    background-color: transparent;\\r\\n    cursor: pointer;\\r\\n}\\r\\n\\r\\nli.absol-page-number>a{\\r\\n    font-size: inherit;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-page-number-buttons > li.absol-page-number.active{\\r\\n    box-shadow:  0 2px 5px 0 rgba(0,0,0,.16), 0 2px 10px 0 rgba(0,0,0,.12);\\r\\n    background-color: #4285f4;\\r\\n    border-radius:2px; \\r\\n    \\r\\n}\\r\\n\\r\\n.absol-page-number-buttons > li.absol-page-number.active > a{\\r\\n\\tcolor: white;\\r\\n    \\r\\n}\\r\\n\\r\\n.absol-page-number-buttons > li> a{\\r\\n    line-height: calc(2em + 2px);\\r\\n    text-decoration:none;\\r\\n    outline: none;\\r\\n}\\r\\n\\r\\n.absol-page-number-buttons > li:not(.active):hover{\\r\\n    background-color: #eee;\\r\\n\\r\\n}\\r\\n\\r\\n.absol-page-selector .absol-page-number-input{\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.absol-page-selector .absol-page-number-input  input[type=\\\"text\\\"]{\\r\\n    font-size: inherit;\\r\\n    width: 3em;\\r\\n    margin-left: 0.3em;\\r\\n    margin-right: 0.3em;\\r\\n    text-align: center;\\r\\n    height: 1.8em;\\r\\n    border: solid 1px #ccc;\\r\\n    border-radius: 2px;\\r\\n\\r\\n}\\r\\n\\r\\n.absol-page-link {\\r\\n    color: #147af6;\\r\\n    cursor: pointer;\\r\\n    text-decoration: underline;\\r\\n}\\r\\n\\r\\n.absol-page-number {\\r\\n    color: #147af6;\\r\\n    cursor: pointer;\\r\\n}\\r\\n\\r\\n.absol-page-number a::before{\\r\\n    content: attr(data-index-text);\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/pageselector.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/pathmenu.css":
/*!*********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/pathmenu.css ***!
  \*********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \":root {\\r\\n    --as-path-menu-max-text-width: 150px;\\r\\n}\\r\\n\\r\\n.am-mobile-theme{\\r\\n    --as-path-menu-max-text-width: 100px;\\r\\n}\\r\\n\\r\\n\\r\\n.as-path-menu-item .mdi-chevron-right::before {\\r\\n    transition: transform 0.1s;\\r\\n}\\r\\n\\r\\n.as-path-menu .as-ribbon-split-button-text {\\r\\n    max-width: var(--as-path-menu-max-text-width);\\r\\n    text-overflow: ellipsis;\\r\\n    overflow: hidden;\\r\\n    display: inline-block;\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n.as-path-menu-item.as-has-no-item .as-ribbon-split-button-extend {\\r\\n    display: none;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/pathmenu.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/placesearchautocomplete.css":
/*!************************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/placesearchautocomplete.css ***!
  \************************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-autocomplete-input-item.as-place-search-auto-complete-item:not(:last-child) {\\r\\n    border-bottom: 1px solid #dddddd;\\r\\n\\r\\n}\\r\\n\\r\\n.absol-autocomplete-input-item.as-place-search-auto-complete-item {\\r\\n    padding: 3px 5px;\\r\\n    height: auto;\\r\\n}\\r\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/placesearchautocomplete.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/preinput.css":
/*!*********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/preinput.css ***!
  \*********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-preinput {\\r\\n    margin: 0;\\r\\n    padding: 0;\\r\\n    white-space: pre-wrap;\\r\\n    -moz-user-modify: read-write;\\r\\n    -webkit-user-modify: read-write;\\r\\n    word-break: normal;\\r\\n}\\r\\npre.as-preinput{\\r\\n    word-break: normal;\\r\\n}\\r\\n\\r\\n\\r\\n.as-preinput img {\\r\\n    display: none;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/preinput.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/processlbar.css":
/*!************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/processlbar.css ***!
  \************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \":root {\\r\\n    --as-process-l-bar-active-color: rgb(255, 160, 0);\\r\\n    --as-process-l-bar-item-width: 60px;\\r\\n}\\r\\n\\r\\n.as-process-l-bar {\\r\\n    font-family: Arial, Helvetica, sans-serif;\\r\\n    font-size: 14px;\\r\\n    display: inline-block;\\r\\n    vertical-align: top;\\r\\n    position: relative;\\r\\n    --as-process-l-bar-item-min-width: 0;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n.as-process-l-bar-step-ctn {\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n.as-process-l-bar-col:not(:last-child) {\\r\\n    margin-right: 10px;\\r\\n}\\r\\n\\r\\n.as-process-l-bar-col {\\r\\n    vertical-align: top;\\r\\n    display: inline-block;\\r\\n}\\r\\n\\r\\n.as-process-l-bar-step {\\r\\n    width: var(--as-process-l-bar-item-width);\\r\\n    min-width: var(--as-process-l-bar-item-min-width);\\r\\n    height: 15px;\\r\\n    background-color: #ebebeb;\\r\\n    border: solid 1px #bfbfbf;\\r\\n    transition: background-color 0.2s;\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n.as-process-l-bar-step.as-active {\\r\\n    background-color: var(--as-process-l-bar-active-color);\\r\\n    border-color: rgb(20, 100, 246);\\r\\n}\\r\\n\\r\\n.as-process-l-bar-step.as-active::after {\\r\\n    content: \\\"\\\";\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n    top: calc(100% + 3px);\\r\\n    border-top: 2px solid rgb(20, 100, 246);\\r\\n}\\r\\n\\r\\n\\r\\n.as-process-l-bar-step::before {\\r\\n    content: \\\"\\\";\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n}\\r\\n\\r\\n.as-process-l-bar.as-disabled .as-process-l-bar-step::before{\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-process-l-bar-step:hover::before {\\r\\n    background-color: rgba(169, 169, 172, 0.3);\\r\\n}\\r\\n\\r\\n.as-process-l-bar-step.as-active,\\r\\n.as-process-l-bar-step:hover {\\r\\n    background-color: var(--as-process-l-bar-active-color);\\r\\n}\\r\\n\\r\\n\\r\\n.as-process-l-bar-col .as-process-l-bar-step:not(:last-child) {\\r\\n    margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n.as-process-l-bar-step-name {\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    top: 24px;\\r\\n    font-weight: bold;\\r\\n}\\r\\n\\r\\n\\r\\n.as-process-l-bar.as-col-layout .as-process-l-bar-step-name {\\r\\n    position: relative;\\r\\n    left: initial;\\r\\n    top: unset;\\r\\n}\\r\\n\\r\\n\\r\\n.as-process-l-bar.as-single-line .as-process-l-bar-step-ctn {\\r\\n    white-space: normal;\\r\\n}\\r\\n\\r\\n\\r\\n.as-process-l-bar.as-single-line  .as-process-l-bar-col {\\r\\n    margin-bottom: 10px;\\r\\n}\\r\\n\\r\\n.as-process-l-bar.as-single-line .as-process-l-bar-step-name {\\r\\n    position: relative;\\r\\n    display: block;\\r\\n    left: 0 !important;\\r\\n    top: 0!important;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/processlbar.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/progressbar.css":
/*!************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/progressbar.css ***!
  \************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-progress-bar {\\r\\n    height: 1em;\\r\\n    background-color: #e9ecef;\\r\\n    border-radius: .25em;\\r\\n    box-sizing: border-box;\\r\\n    overflow: hidden;\\r\\n}\\r\\n\\r\\n\\r\\n.as-progress-bar-value {\\r\\n    height: 100%;\\r\\n    width: 0;\\r\\n    color: #fff;\\r\\n    text-align: center;\\r\\n    white-space: nowrap;\\r\\n    background-color: #007bff;\\r\\n    transition: width .6s ease;\\r\\n}\\r\\n\\r\\n.as-progress-bar.as-variant-success .as-progress-bar-value {\\r\\n    background-color: #28a745;\\r\\n}\\r\\n\\r\\n.as-progress-bar.as-variant-info .as-progress-bar-value {\\r\\n    background-color: #17a2b8;\\r\\n}\\r\\n\\r\\n.as-progress-bar.as-variant-warning .as-progress-bar-value {\\r\\n    background-color: #ffc107;\\r\\n}\\r\\n\\r\\n.as-progress-bar.as-variant-danger .as-progress-bar-value {\\r\\n    background-color: #dc3545;\\r\\n}\\r\\n\\r\\n\\r\\n.as-progress-bar.as-striped .as-progress-bar-value,\\r\\n.as-progress-bar.as-animated .as-progress-bar-value {\\r\\n    background-image: linear-gradient(45deg, hsla(0, 0%, 100%, .15) 25%, transparent 0, transparent 50%, hsla(0, 0%, 100%, .15) 0, hsla(0, 0%, 100%, .15) 75%, transparent 0, transparent);\\r\\n    background-size: 1.33333em 1.33333em;\\r\\n}\\r\\n\\r\\n@keyframes as-progress-bar-stripes {\\r\\n    0% {\\r\\n        background-position: 1.33333em 0\\r\\n    }\\r\\n\\r\\n    to {\\r\\n        background-position: 0 0\\r\\n    }\\r\\n}\\r\\n\\r\\n.as-progress-bar.as-animated .as-progress-bar-value {\\r\\n    animation: as-progress-bar-stripes 1s linear infinite;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/progressbar.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/quicklistbutton.css":
/*!****************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/quicklistbutton.css ***!
  \****************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-quick-list-button {\\r\\n    box-sizing: border-box;\\r\\n    height: calc(2em + 2px);\\r\\n    font-size: 14px;\\r\\n}\\r\\n\\r\\n.as-quick-list-button .as-flexicon-button-text-container {\\r\\n    border-right: solid 1px #bfbfbf;\\r\\n}\\r\\n\\r\\n\\r\\n.as-quick-list-button-follower .absol-selectlist {\\r\\n    max-height: calc(100vh - 20px);\\r\\n    overflow-y: auto;\\r\\n    border: solid 1px rgb(100, 100, 255);\\r\\n    box-sizing: border-box;\\r\\n    background-color: white;\\r\\n    display: inline-block;\\r\\n    vertical-align: top;\\r\\n    -webkit-box-shadow: 2px 2px 6px 0px rgba(0, 0, 90, 0.55);\\r\\n    -moz-box-shadow: 2px 2px 6px 0px rgba(0, 0, 90, 0.55);\\r\\n    box-shadow: 2px 2px 6px 0px rgba(0, 0, 90, 0.55);\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/quicklistbutton.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/quickpath.css":
/*!**********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/quickpath.css ***!
  \**********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-quick-path {\\r\\n    position: relative;\\r\\n    box-sizing: border-box;\\r\\n    user-select: none;\\r\\n    -webkit-user-select: none;\\r\\n    -ms-user-select: none;\\r\\n    -moz-user-select: none;\\r\\n    min-height: 1.5em;\\r\\n}\\r\\n\\r\\n.absol-quick-path button {\\r\\n    outline: none;\\r\\n    color: rgb(69, 69, 69);\\r\\n    height: 1.5em;\\r\\n}\\r\\n\\r\\n.absol-quick-path button:hover {\\r\\n    color: black;\\r\\n}\\r\\n\\r\\n.absol-quick-path .toggler-ico path {\\r\\n    fill: rgb(104, 104, 104);\\r\\n}\\r\\n\\r\\n.dark .absol-quick-path button {\\r\\n    color: rgb(200, 200, 200);\\r\\n}\\r\\n\\r\\n\\r\\n.dark .absol-quick-path button:hover {\\r\\n    color: white;\\r\\n}\\r\\n\\r\\n.dark .absol-quick-path .toggler-ico path {\\r\\n    fill: rgb(169, 169, 169);\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n.absol-quick-path-btn:focus span {\\r\\n    text-decoration: underline;\\r\\n}\\r\\n\\r\\n/* \\r\\n.absol-quick-path-btn .toggler-ico path {\\r\\n    fill: rgb(104, 104, 104);\\r\\n} */\\r\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/quickpath.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/radio.css":
/*!******************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/radio.css ***!
  \******************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-radio {\\r\\n    display: inline;\\r\\n    cursor: pointer;\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n.absol-radio input {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.absol-radio > span {\\r\\n    white-space: pre;\\r\\n    cursor: inherit;\\r\\n    vertical-align: middle;\\r\\n    margin: 0;\\r\\n    font-size: inherit;\\r\\n}\\r\\n\\r\\n.absol-radio > span:empty {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.absol-radio > svg {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    width: calc(1em + 4px);\\r\\n    height: calc(1em + 4px);\\r\\n}\\r\\n\\r\\n.absol-radio > svg .bound {\\r\\n    stroke: #929292;\\r\\n    fill: white;\\r\\n}\\r\\n\\r\\n.absol-radio:hover > svg .bound {\\r\\n    fill: #d6d6d6;\\r\\n    stroke: black;\\r\\n}\\r\\n\\r\\n/* \\r\\n.absol-radio>svg .bound {\\r\\n    fill: none;\\r\\n} */\\r\\n\\r\\n.absol-radio-icon .border {\\r\\n}\\r\\n\\r\\n.absol-radio .dot {\\r\\n    transition: opacity 0.07s;\\r\\n    opacity: 0;\\r\\n    fill: #606060;\\r\\n}\\r\\n\\r\\n.absol-radio:hover .dot {\\r\\n    transition: opacity 0.07s;\\r\\n    opacity: 0;\\r\\n    fill: black;\\r\\n}\\r\\n\\r\\n.absol-radio.checked .dot {\\r\\n    opacity: 1;\\r\\n    transition: opacity 0.1s;\\r\\n}\\r\\n\\r\\n.absol-radio:not(.right) > span.absol-radio-left-label {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.absol-radio.right > span.absol-radio-right-label {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\nspan.absol-radio-left-label {\\r\\n    padding-right: 0.3em;\\r\\n}\\r\\n\\r\\nspan.absol-radio-right-label {\\r\\n    padding-left: 0.3em;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n.absol-radio.disabled {\\r\\n    cursor: default;\\r\\n}\\r\\n\\r\\n.absol-radio.disabled{\\r\\n    color: #777;\\r\\n}\\r\\n\\r\\n.absol-radio.disabled:hover .dot,\\r\\n.absol-radio.disabled .dot {\\r\\n    fill: #929292;\\r\\n}\\r\\n\\r\\n.absol-radio.disabled .bound,\\r\\n.absol-radio.disabled:hover .bound {\\r\\n    stroke: #929292;\\r\\n    fill: #ebebe4;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-radio .standar-alone {\\r\\n    display: inline-block;\\r\\n}\\r\\n\\r\\ninput:checked ~ .absol-radio-icon .dot {\\r\\n    opacity: 1;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/radio.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/radiobutton.css":
/*!************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/radiobutton.css ***!
  \************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-radio-button {\\r\\n    display: inline;\\r\\n    cursor: pointer;\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n.absol-radio-button input {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-radio-button > svg {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    width: calc(1em + 4px);\\r\\n    height: calc(1em + 4px);\\r\\n}\\r\\n\\r\\n.absol-radio-button > svg .bound {\\r\\n    stroke: #929292;\\r\\n    fill: white;\\r\\n}\\r\\n\\r\\n.absol-radio-button:hover > svg .bound {\\r\\n    fill: #d6d6d6;\\r\\n    stroke: black;\\r\\n}\\r\\n\\r\\n.absol-radio-icon .border {\\r\\n}\\r\\n\\r\\n.absol-radio-button .dot {\\r\\n    transition: opacity 0.07s;\\r\\n    opacity: 0;\\r\\n    fill: #606060;\\r\\n}\\r\\n\\r\\n.absol-radio-button:hover .dot {\\r\\n    transition: opacity 0.07s;\\r\\n    opacity: 0;\\r\\n    fill: black;\\r\\n}\\r\\n\\r\\n.absol-radio-button.checked .dot {\\r\\n    opacity: 1;\\r\\n    transition: opacity 0.1s;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n.absol-radio-button > span:last-child {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-radio-button.disabled {\\r\\n    cursor: default;\\r\\n}\\r\\n\\r\\n.absol-radio-button.disabled:hover .dot,\\r\\n.absol-radio-button.disabled .dot {\\r\\n    fill: #929292;\\r\\n}\\r\\n\\r\\n.absol-radio-button.disabled .bound,\\r\\n.absol-radio-button.disabled:hover .bound {\\r\\n    stroke: #929292;\\r\\n    fill: #ebebe4;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-radio .standar-alone {\\r\\n    display: inline-block;\\r\\n}\\r\\n\\r\\n.absol-radio > span:not(:last-child) {\\r\\n    padding-right: 0.3em;\\r\\n}\\r\\n\\r\\n.absol-radio span:last-child {\\r\\n    padding-left: 0.3em;\\r\\n}\\r\\n\\r\\ninput:checked ~ .absol-radio-icon .dot {\\r\\n    opacity: 1;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/radiobutton.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/radioinput.css":
/*!***********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/radioinput.css ***!
  \***********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"label.as-radio-input {\\r\\n    display: inline-block;\\r\\n    position: relative;\\r\\n    width: calc(1em + 2px);\\r\\n    height: calc(1em + 2px);\\r\\n    cursor: pointer;\\r\\n    font-size: inherit;\\r\\n    box-sizing: border-box;\\r\\n    overflow: hidden;\\r\\n    vertical-align: middle;\\r\\n    border-radius: 50%;\\r\\n    border: 1px solid var(--candy-border-color);\\r\\n    text-align: center;\\r\\n    background-color: white;\\r\\n    text-align: center;\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\nlabel.as-radio-input:hover {\\r\\n    background-color: var(--candy-hover-background-color);\\r\\n}\\r\\n\\r\\nlabel.as-radio-input::after{\\r\\n    content: \\\"\\\";\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n.as-radio-input .as-radio-input-check-mark {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    width: 0.5em;\\r\\n    height: 0.5em;\\r\\n    background-color: #606060;\\r\\n    font-size: inherit;\\r\\n    border-radius: 50%;\\r\\n}\\r\\n\\r\\n.as-radio-input input.as-radio-input-value {\\r\\n    font-size: inherit;\\r\\n    position: absolute;\\r\\n    right: 100%;\\r\\n    top: 0;\\r\\n    opacity: 0.0;\\r\\n}\\r\\n\\r\\ninput.as-radio-input-value:not(:checked) ~ .as-radio-input-check-mark {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n\\r\\nlabel.as-radio-input.as-disabled,\\r\\nlabel.as-radio-input.as-disabled:hover {\\r\\n    border-color: #929292;\\r\\n    background-color: #ebebe4;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/radioinput.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/resizebox.css":
/*!**********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/resizebox.css ***!
  \**********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-resize-box {\\r\\n    position: absolute;\\r\\n    /*or fixed*/\\r\\n    z-index: 1;\\r\\n    box-sizing: border-box;\\r\\n    opacity: 0.5;\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n.as-resize-box-body {\\r\\n    margin: -1px;\\r\\n    width: calc(100% + 2px);\\r\\n    height: calc(100% + 2px);\\r\\n    position: relative;\\r\\n    box-sizing: border-box;\\r\\n    border: solid 2px rgb(32, 150, 218);\\r\\n}\\r\\n\\r\\n.as-resize-box.as-can-move .as-resize-box-body {\\r\\n    cursor: move;\\r\\n    pointer-events: all;\\r\\n}\\r\\n\\r\\n.as-resize-box.as-can-click .as-resize-box-body {\\r\\n    pointer-events: all;\\r\\n}\\r\\n\\r\\n.as-resize-box.as-can-move .as-resize-box-dot,\\r\\n.as-resize-box.as-can-resize .as-resize-box-dot.right,\\r\\n.as-resize-box.as-can-resize .as-resize-box-dot.bottom,\\r\\n.as-resize-box.as-can-resize .as-resize-box-dot.right-bottom {\\r\\n    display: unset;\\r\\n\\r\\n}\\r\\n\\r\\n.as-resize-box-dot {\\r\\n    position: absolute;\\r\\n    width: 0.6em;\\r\\n    height: 0.6em;\\r\\n    background: rgb(32, 150, 218);\\r\\n    display: none;\\r\\n    pointer-events: all;\\r\\n}\\r\\n\\r\\n.as-resize-box-dot.left-top {\\r\\n    top: calc(-0.3em - 1px);\\r\\n    left: calc(-0.3em - 1px);\\r\\n    cursor: nw-resize;\\r\\n}\\r\\n\\r\\n.as-resize-box-dot.left-bottom {\\r\\n    bottom: calc(-0.3em - 1px);\\r\\n    left: calc(-0.3em - 1px);\\r\\n    cursor: sw-resize;\\r\\n}\\r\\n\\r\\n.as-resize-box-dot.left {\\r\\n    top: calc(50% - 0.3em);\\r\\n    left: calc(-0.3em - 1px);\\r\\n    cursor: w-resize;\\r\\n}\\r\\n\\r\\n.as-resize-box-dot.top {\\r\\n    top: calc(-0.3em - 1px);\\r\\n    left: calc(50% - 0.3em);\\r\\n    cursor: n-resize;\\r\\n}\\r\\n\\r\\n.as-resize-box-dot.bottom {\\r\\n    bottom: calc(-0.3em - 1px);\\r\\n    left: calc(50% - 0.3em);\\r\\n    cursor: s-resize;\\r\\n}\\r\\n\\r\\n.as-resize-box-dot.right-top {\\r\\n    top: calc(-0.3em - 1px);\\r\\n    right: calc(-0.3em - 1px);\\r\\n    cursor: ne-resize;\\r\\n}\\r\\n\\r\\n.as-resize-box-dot.right-bottom {\\r\\n    bottom: calc(-0.3em - 1px);\\r\\n    right: calc(-0.3em - 1px);\\r\\n    cursor: se-resize;\\r\\n}\\r\\n\\r\\n\\r\\n.as-resize-box-dot.right {\\r\\n    top: calc(50% - 0.3em);\\r\\n    right: calc(-0.3em - 1px);\\r\\n    cursor: e-resize;\\r\\n}\\r\\n\\r\\n.as-resize-box-overiding .as-resize-box-dot,\\r\\n.as-resize-box-overiding .as-resize-box-body {\\r\\n    cursor: unset;\\r\\n}\\r\\n\\r\\n.as-resize-box-overiding.body {\\r\\n    cursor: move !important;\\r\\n}\\r\\n\\r\\n\\r\\n.as-resize-box-overiding.left-top {\\r\\n    cursor: nw-resize !important;\\r\\n}\\r\\n\\r\\n.as-resize-box-overiding.left-bottom {\\r\\n    cursor: sw-resize !important;\\r\\n}\\r\\n\\r\\n.as-resize-box-overiding.left {\\r\\n    cursor: w-resize !important;\\r\\n}\\r\\n\\r\\n.as-resize-box-overiding.top {\\r\\n    cursor: n-resize !important;\\r\\n}\\r\\n\\r\\n.as-resize-box-overiding.bottom {\\r\\n    cursor: s-resize !important;\\r\\n}\\r\\n\\r\\n.as-resize-box-overiding.right-top {\\r\\n    cursor: ne-resize !important;\\r\\n}\\r\\n\\r\\n.as-resize-box-overiding.right-bottom {\\r\\n    cursor: se-resize !important;\\r\\n}\\r\\n\\r\\n\\r\\n.as-resize-box-overiding.right {\\r\\n    cursor: e-resize !important;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/resizebox.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/ribbonbutton.css":
/*!*************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/ribbonbutton.css ***!
  \*************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-ribbon-button {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    height: calc(2em + 2);\\r\\n    padding-left: 0.5em;\\r\\n    padding-right: 0.5em;\\r\\n\\r\\n    font-family: Arial, Helvetica, sans-serif;\\r\\n    font-size: 1rem;\\r\\n    box-sizing: border-box;\\r\\n    border-radius: 0;\\r\\n    outline: none;\\r\\n    border-style: solid;\\r\\n    border-color: transparent;\\r\\n    border-width: 1px 1px 1px 1px;\\r\\n    background-color: transparent;\\r\\n}\\r\\n\\r\\n.as-ribbon-button div,\\r\\n.as-ribbon-button span {\\r\\n    font-weight: inherit;\\r\\n    font-size: inherit;\\r\\n}\\r\\n\\r\\n.as-ribbon-button:hover {\\r\\n    background-color: rgba(169, 168, 169, 0.15);\\r\\n}\\r\\n\\r\\n.as-ribbon-button:active {\\r\\n    background-color: rgba(169, 168, 169, 0.3);\\r\\n}\\r\\n\\r\\n\\r\\n.as-ribbon-split-button:active:hover .as-ribbon-split-button-content > button,\\r\\n.as-ribbon-split-button:active .as-ribbon-split-button-content > button {\\r\\n    border-color: rgba(169, 168, 169, 0.3);\\r\\n}\\r\\n\\r\\n.as-ribbon-split-button:hover .as-ribbon-split-button-content > button {\\r\\n    border-color: rgba(169, 168, 169, 0.15);\\r\\n}\\r\\n\\r\\n.as-ribbon-button-icon {\\r\\n    font-size: 1.2em;\\r\\n    margin-right: 0.5em;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\nimg.as-ribbon-button-icon,\\r\\nsvg.as-ribbon-button-icon {\\r\\n    width: 1.2em;\\r\\n    height: 1.2em;\\r\\n}\\r\\n\\r\\n.as-ribbon-button-text {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    font-size: inherit;\\r\\n}\\r\\n\\r\\n.as-ribbon-button-text::before {\\r\\n    content: attr(data-text);\\r\\n}\\r\\n\\r\\n.as-ribbon-button.as-no-dropdown .mdi.mdi-chevron-down {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-ribbon-button.as-big {\\r\\n    width: 5em;\\r\\n    height: auto;\\r\\n    white-space: nowrap;\\r\\n    padding-left: 0;\\r\\n    padding-right: 0;\\r\\n}\\r\\n\\r\\n.as-ribbon-button.as-big span.as-ribbon-button-icon {\\r\\n    font-size: 2em;\\r\\n}\\r\\n\\r\\n.as-ribbon-button.as-big .as-ribbon-button-text {\\r\\n    white-space: normal;\\r\\n    max-width: calc(100% - 1em);\\r\\n}\\r\\n\\r\\n.as-ribbon-button.as-big svg.as-ribbon-button-icon,\\r\\n.as-ribbon-button.as-big img.as-ribbon-button-icon {\\r\\n    height: 2em;\\r\\n    display: block;\\r\\n    margin-left: auto;\\r\\n    margin-right: auto;\\r\\n}\\r\\n\\r\\n.as-ribbon-button.as-appearance-button {\\r\\n    height: calc(2rem + 2px);\\r\\n    box-sizing: border-box;\\r\\n    border: solid 1px #bfbfbf;\\r\\n    background-color: #ebebeb;\\r\\n    border-radius: 0.2em;\\r\\n    outline: none;\\r\\n    font-size: 1rem;\\r\\n}\\r\\n\\r\\n\\r\\n.as-ribbon-button.as-appearance-button:hover {\\r\\n    background-color: #D3D3D3;\\r\\n}\\r\\n\\r\\n.as-ribbon-button.as-appearance-button:active,\\r\\n.as-ribbon-button.as-appearance-button.as-quick-menu-attached {\\r\\n    -webkit-box-shadow: inset 0 0.2em 0.25em rgba(0, 0, 0, 0.125);\\r\\n    box-shadow: inset 0 0.2em 0.25em rgba(0, 0, 0, 0.125);\\r\\n}\\r\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/ribbonbutton.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/ribbonsplitbutton.css":
/*!******************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/ribbonsplitbutton.css ***!
  \******************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-ribbon-split-button {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    height: calc(2em + 2px);\\r\\n    font-family: Arial, Helvetica, sans-serif;\\r\\n    box-sizing: border-box;\\r\\n    font-size: 1rem;\\r\\n}\\r\\n\\r\\n.as-ribbon-split-button div,\\r\\n.as-ribbon-split-button span,\\r\\n.as-ribbon-split-button button {\\r\\n    font-weight: inherit;\\r\\n    font-size: inherit;\\r\\n}\\r\\n\\r\\n\\r\\n.as-ribbon-split-button-content {\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n.as-ribbon-split-button-content > button {\\r\\n    font-family: inherit;\\r\\n    border-radius: 0;\\r\\n    background-color: transparent;\\r\\n    height: 100%;\\r\\n    margin-right: 0;\\r\\n    outline: none;\\r\\n    box-sizing: border-box;\\r\\n    border-style: solid;\\r\\n    border-color: transparent;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n\\r\\n.as-ribbon-split-button-content > button:hover {\\r\\n    background-color: rgba(169, 168, 169, 0.15);\\r\\n}\\r\\n\\r\\n.as-ribbon-split-button-content > button:active {\\r\\n    background-color: rgba(169, 168, 169, 0.3);\\r\\n}\\r\\n\\r\\n\\r\\n.as-ribbon-split-button-primary {\\r\\n    font-size: inherit;\\r\\n    padding-left: 0.5em;\\r\\n    padding-right: 0.2em;\\r\\n    border-width: 1px 0px 1px 1px;\\r\\n}\\r\\n\\r\\n.as-ribbon-split-button-extend {\\r\\n    color: rgb(37, 36, 35);\\r\\n    width: calc(1em + 2px);\\r\\n    padding: 0;\\r\\n    text-align: center;\\r\\n    font-size: 20px;\\r\\n    border-width: 1px 1px 1px 0px;\\r\\n}\\r\\n\\r\\n.as-ribbon-split-button-extend span:before {\\r\\n    margin-left: -3px;\\r\\n}\\r\\n\\r\\n\\r\\n.as-ribbon-split-button:active:hover .as-ribbon-split-button-content > button,\\r\\n.as-ribbon-split-button:active .as-ribbon-split-button-content > button {\\r\\n    border-color: rgba(169, 168, 169, 0.3);\\r\\n}\\r\\n\\r\\n.as-ribbon-split-button:hover .as-ribbon-split-button-content > button {\\r\\n    border-color: rgba(169, 168, 169, 0.15);\\r\\n}\\r\\n\\r\\n.as-ribbon-split-button-icon {\\r\\n    margin-right: 0.5em;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\nspan.as-ribbon-split-button-icon {\\r\\n    font-size: 1.2em;\\r\\n}\\r\\n\\r\\nimg.as-ribbon-split-button-icon,\\r\\nsvg.as-ribbon-split-button-icon {\\r\\n    width: 1.2em;\\r\\n    height: 1.2em;\\r\\n}\\r\\n\\r\\n.as-ribbon-split-button-text {\\r\\n    vertical-align: middle;\\r\\n    font-size: inherit;\\r\\n}\\r\\n\\r\\n.as-ribbon-split-button-text::before {\\r\\n    content: attr(data-text);\\r\\n}\\r\\n\\r\\n.as-ribbon-split-button-extend .as-ribbon-split-button-text {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-ribbon-split-button.as-no-dropdown .as-ribbon-split-button-extend {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-ribbon-split-button.as-no-dropdown .as-ribbon-split-button-primary {\\r\\n    padding-right: 5px;\\r\\n    border-width: 1px 1px 1px 1px;\\r\\n}\\r\\n\\r\\n.as-ribbon-split-button.as-big {\\r\\n    width: 5em;\\r\\n    height: auto;\\r\\n}\\r\\n\\r\\n.as-ribbon-split-button.as-big .as-ribbon-split-button-content {\\r\\n    height: auto;\\r\\n}\\r\\n\\r\\n.as-ribbon-split-button.as-big span.as-ribbon-split-button-icon {\\r\\n    font-size: 2em;\\r\\n    display: block;\\r\\n    margin: 0;\\r\\n}\\r\\n\\r\\n.as-ribbon-split-button.as-big .as-ribbon-split-button-extend .as-ribbon-split-button-text {\\r\\n    display: inline-block;\\r\\n    white-space: normal;\\r\\n    max-width: calc(100% - 1em);\\r\\n}\\r\\n\\r\\n.as-ribbon-split-button.as-big .as-ribbon-split-button-primary .as-ribbon-split-button-text {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-ribbon-split-button.as-big .as-ribbon-split-button-extend {\\r\\n    white-space: nowrap;\\r\\n    width: 100%;\\r\\n    height: auto;\\r\\n    border-width: 0 1px 1px 1px;\\r\\n\\r\\n}\\r\\n\\r\\n.as-ribbon-split-button.as-big .as-ribbon-split-button-primary {\\r\\n    width: 100%;\\r\\n    height: 2.5em;\\r\\n    box-sizing: border-box;\\r\\n    border-width: 1px 1px 0 1px;\\r\\n}\\r\\n\\r\\n.as-ribbon-split-button.as-big img.as-ribbon-split-button-icon,\\r\\n.as-ribbon-split-button.as-big svg.as-ribbon-split-button-icon {\\r\\n    width: 2em;\\r\\n    height: 2em;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/ribbonsplitbutton.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/rotatedtext.css":
/*!************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/rotatedtext.css ***!
  \************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-rotated-text {\\r\\n\\r\\n}\\r\\n\\r\\n.as-rotated-text::after {\\r\\n    content: \\\"o\\\";\\r\\n    color: transparent;\\r\\n    display: inline;\\r\\n}\\r\\n\\r\\n.as-rotated-text-content {\\r\\n    transform: rotate(0deg);\\r\\n    transform-origin: 0.3em 50%;\\r\\n    display: block;\\r\\n    zoom: 1.001;\\r\\n}\\r\\n\\r\\n\\r\\n.as-rotated-text-anchor{\\r\\n    position: fixed;\\r\\n    z-index: 1000;\\r\\n}\\r\\n\\r\\n.as-rotated-text,.as-rotated-text-anchor,  .as-rotated-text-content{\\r\\n    font: inherit;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/rotatedtext.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/scroller.css":
/*!*********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/scroller.css ***!
  \*********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-vscroller {\\r\\n    position: relative;\\r\\n    overflow-x: hidden;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-vscroller.disabled>.absol-vscroller-viewport {\\r\\n    overflow-y: visible;\\r\\n    margin-right: 0px;\\r\\n    min-width: 100%;\\r\\n}\\r\\n\\r\\n.absol-vscroller.disabled {\\r\\n    overflow: visible;\\r\\n    overflow-x: visible;\\r\\n\\r\\n}\\r\\n\\r\\n\\r\\n.absol-vscroller-viewport {\\r\\n    overflow-y: scroll;\\r\\n    box-sizing: content-box;\\r\\n\\r\\n}\\r\\n\\r\\n.absol-vscroller>.absol-vscroller-viewport {\\r\\n    max-height: 100%;\\r\\n}\\r\\n\\r\\n.absol-vscroller.limited-height>.absol-vscroller-viewport {\\r\\n    max-height: inherit;\\r\\n}\\r\\n\\r\\n\\r\\n/************  hscroller  ***********/\\r\\n.absol-hscroller {\\r\\n    position: relative;\\r\\n    overflow-y: hidden;\\r\\n}\\r\\n\\r\\n.absol-hscroller.disabled {\\r\\n    overflow: visible;\\r\\n    overflow-y: visible;\\r\\n}\\r\\n\\r\\n.absol-hscroller-viewport {\\r\\n    overflow-x: scroll;\\r\\n    box-sizing: content-box;\\r\\n    min-height: calc(100% + 17px);\\r\\n}\\r\\n\\r\\n.absol-hscroller.disabled>.absol-hscroller-viewport {\\r\\n    overflow-x: visible;\\r\\n    margin-bottom: 0px;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-hscroller>.absol-hscroller-viewport {\\r\\n    max-width: 100%;\\r\\n}\\r\\n\\r\\n\\r\\n/********** scroll bar *********************/\\r\\n.absol-scrollbar-force-modal {\\r\\n    position: fixed;\\r\\n    top: 5px;\\r\\n    left: 5px;\\r\\n    right: 5px;\\r\\n    bottom: 5px;\\r\\n    z-index: 1000000;\\r\\n}\\r\\n\\r\\n.absol-scrollbar-container {\\r\\n    position: absolute;\\r\\n    right: 0;\\r\\n    bottom: 0;\\r\\n    z-index: 10;\\r\\n}\\r\\n\\r\\n.absol-scrollbar-container.vertical {\\r\\n    top: 0;\\r\\n    width: 7px;\\r\\n}\\r\\n\\r\\n.absol-scrollbar-container.horizontal {\\r\\n    height: 7px;\\r\\n    left: 0;\\r\\n}\\r\\n\\r\\n.absol-scrollbar-container>.absol-scrollbar {\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n.absol-scrollbar-container.vertical>.absol-scrollbar>.absol-scrollbar-button {\\r\\n    left: 1px;\\r\\n    right: 1px;\\r\\n    top: 0;\\r\\n}\\r\\n\\r\\n.absol-scrollbar-container.horizontal>.absol-scrollbar>.absol-scrollbar-button {\\r\\n    top: 1px;\\r\\n    bottom: 1px;\\r\\n    left: 0;\\r\\n}\\r\\n\\r\\n.absol-scrollbar {\\r\\n    position: relative;\\r\\n    background-color: rgba(180, 180, 182, 0.1);\\r\\n}\\r\\n\\r\\n.absol-scrollbar-button {\\r\\n    position: absolute;\\r\\n    background-color: rgba(133, 133, 133, 0.5);\\r\\n    border-radius: 2px;\\r\\n}\\r\\n\\r\\n.absol-scrollbar-button:hover, .absol-scrollbar-button:active{\\r\\n    background-color: rgba(133, 133, 133, 1);;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-scrollbar.absol-hidden {\\r\\n    visibility: hidden;\\r\\n}\\r\\n\\r\\n.absol-vscrollbar .absol-scrollbar-button  {\\r\\n    width: 100%;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-hscrollbar .absol-scrollbar-button  {\\r\\n    height: 100%;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/scroller.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/searcher.css":
/*!*********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/searcher.css ***!
  \*********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-search-text-input {\\r\\n    position: relative;\\r\\n    height: 2em;\\r\\n    border-radius: 0.3em;\\r\\n    border: solid 1px #a9a9a9;\\r\\n    font-size: 1rem;\\r\\n    background-color: white;\\r\\n}\\r\\n\\r\\n.absol-search-text-input.focus {\\r\\n    outline: solid 1px rgba(30, 30, 255, 0.4);\\r\\n}\\r\\n\\r\\n.absol-search-text-input-container {\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    right: 2em;\\r\\n}\\r\\n\\r\\n.absol-search-text-button-container {\\r\\n    position: absolute;\\r\\n    top: 0;\\r\\n    right: 0;\\r\\n    width: 2em;\\r\\n    bottom: 0em;\\r\\n}\\r\\n\\r\\n.absol-search-text-button-container button {\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n    outline: none;\\r\\n    border: none;\\r\\n    background: transparent;\\r\\n    padding: 0;\\r\\n    font-size: 1em;\\r\\n}\\r\\n\\r\\n.absol-search-text-button-container button > svg {\\r\\n    height: calc(16em / 14);\\r\\n    width: calc(16em / 14);\\r\\n    fill: rgb(132, 132, 132);\\r\\n}\\r\\n\\r\\n.absol-search-text-input-container input {\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n    font-size: 1em;\\r\\n    box-sizing: border-box;\\r\\n    outline: none;\\r\\n    border: none;\\r\\n    background-color: transparent;\\r\\n    padding-left: 0.6em;\\r\\n}\\r\\n\\r\\n.absol-search-text-input:not(.searching) svg.times {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.absol-search-text-input.searching svg.find {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.absol-search-text-input .as-spinner-ico{\\r\\n    width: 2em;\\r\\n    height: 2em;\\r\\n}\\r\\n\\r\\n.absol-search-text-input:not(.as-waiting) svg.as-spinner-ico,\\r\\n.absol-search-text-input.as-waiting svg:not(.as-spinner-ico) {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.absol-search-text-input-container input::-webkit-search-cancel-button {\\r\\n    display: none;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/searcher.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/selectbox.css":
/*!**********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/selectbox.css ***!
  \**********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \":root {\\r\\n    --select-box-item-height: calc(20rem / 14);\\r\\n    --select-box-item-font-size: 1rem;\\r\\n    --select-box-item-border-radius: 9px;\\r\\n    --select-box-item-close-opacity: 0;\\r\\n    --select-box-min-height: calc(2rem + 2px);\\r\\n    --select-box-focus-item-color: rgb(208, 145, 239);\\r\\n}\\r\\n\\r\\n.absol-selectbox {\\r\\n    --list-min-width: 3em;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    position: relative;\\r\\n    min-height: var(--select-box-min-height);\\r\\n    min-width: var(--list-min-width);\\r\\n    border: solid 1px #d6d6d6;\\r\\n    border-radius: calc(3rem / 14);\\r\\n    box-sizing: border-box;\\r\\n    padding-right: var(--select-box-item-height);\\r\\n    overflow-y: auto;\\r\\n    outline: none;\\r\\n    background-color: white;\\r\\n}\\r\\n\\r\\n.absol-selectbox:not(.as-disable-click-to-focus) {\\r\\n    cursor: copy;\\r\\n}\\r\\n\\r\\n.absol-selectbox.as-disabled {\\r\\n    pointer-events: none;\\r\\n    background-color: var(--as-disabled-background-color);\\r\\n}\\r\\n\\r\\n.absol-selectbox.as-disabled .absol-selectbox-item {\\r\\n    opacity: 0.7;\\r\\n}\\r\\n\\r\\n.absol-selectbox {\\r\\n    white-space: normal;\\r\\n}\\r\\n\\r\\n.absol-selectbox .absol-selectbox-item {\\r\\n    margin: calc((var(--select-box-min-height) - 2px - var(--select-box-item-height)) / 2) 2px;\\r\\n}\\r\\n\\r\\n.absol-selectbox-item {\\r\\n    font-family: Arial, Helvetica, sans-serif;\\r\\n    display: inline-block;\\r\\n    position: relative;\\r\\n    font-size: var(--select-box-item-font-size);\\r\\n    height: var(--select-box-item-height);\\r\\n    box-sizing: border-box;\\r\\n    border-radius: var(--select-box-item-border-radius);\\r\\n    overflow: hidden;\\r\\n    background-color: #5bc0de;\\r\\n    border-color: #46b8da;\\r\\n    vertical-align: top;\\r\\n    white-space: normal;\\r\\n    -webkit-user-select: none;\\r\\n    -moz-user-select: none;\\r\\n    -ms-user-select: none;\\r\\n    user-select: none;\\r\\n    color: black;\\r\\n    cursor: pointer;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-selectbox-item.as-theme-confirmed {\\r\\n    background-color: rgb(145, 228, 251);\\r\\n}\\r\\n\\r\\n.absol-selectbox-item.as-theme-declined {\\r\\n    background-color: rgb(255, 138, 138)\\r\\n}\\r\\n\\r\\n.absol-selectbox-item.as-theme-waiting {\\r\\n    background-color: rgb(255, 227, 174);\\r\\n    color: black;\\r\\n}\\r\\n\\r\\n.absol-selectbox-item-text {\\r\\n    height: var(--select-box-item-height);\\r\\n    padding-right: calc(var(--select-box-item-height) + 5px);\\r\\n    padding-left: 5px;\\r\\n    font-size: inherit;\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n.absol-selectbox-item-text:hover {\\r\\n    background-color: rgba(0, 0, 0, 0.0893617021);\\r\\n}\\r\\n\\r\\n.absol-selectbox-item-text span {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n.absol-selectbox-item-close {\\r\\n    position: absolute;\\r\\n    right: 0;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    width: var(--select-box-item-height);\\r\\n    text-align: center;\\r\\n    -webkit-user-select: none;\\r\\n    -moz-user-select: none;\\r\\n    -ms-user-select: none;\\r\\n    user-select: none;\\r\\n    cursor: pointer;\\r\\n    background-color: rgba(0, 0, 0, var(--select-box-item-close-opacity));\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n.absol-selectbox-item-close::after,\\r\\n.absol-selectbox-item-text::before {\\r\\n    content: \\\"\\\";\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n.absol-selectbox-item-close span {\\r\\n    font-size: 1.25em;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-selectbox.as-item-focusable .absol-selectbox-item.as-active {\\r\\n    background-color: var(--select-box-focus-item-color);\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/selectbox.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/selectlist.css":
/*!***********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/selectlist.css ***!
  \***********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-selectlist {\\r\\n    font-family: \\\"Helvetica Neue\\\", Arial, Helvetica, sans-serif;\\r\\n}\\r\\n\\r\\n.absol-selectlist * {\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.absol-selectlist .absol-selectlist-item:hover {\\r\\n    background-color: #efefef;\\r\\n}\\r\\n\\r\\n.absol-selectlist .absol-selectlist-item {\\r\\n    height: calc(20rem / 14);\\r\\n    font-size: 1rem;\\r\\n    cursor: pointer;\\r\\n}\\r\\n\\r\\n.absol-selectlist-item.as-selected {\\r\\n    background-color: #dfdfdf;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-selectlist-item.as-disabled,\\r\\n.absol-selectlist-item.as-disabled * {\\r\\n    color: var(--as-disabled-text-color);\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n.absol-selectlist:not(.as-searching) > .absol-selectlist-item.as-last-in-group,\\r\\n.as-select-list-box:not(.as-searching) .as-last-in-group {\\r\\n    position: relative;\\r\\n    overflow: visible;\\r\\n}\\r\\n\\r\\n\\r\\n.as-select-list-box:not(.as-searching) .as-last-in-group::after,\\r\\n.absol-selectlist:not(.as-searching) > .absol-selectlist-item.as-last-in-group:not(:last-child)::after {\\r\\n    content: \\\"\\\";\\r\\n    border-bottom: 1px solid black;\\r\\n    position: absolute;\\r\\n    left: 0.2em;\\r\\n    right: 0.2em;\\r\\n    bottom: -0.5px;\\r\\n}\\r\\n\\r\\n.absol-selectlist-item-text {\\r\\n    line-height: inherit;\\r\\n    white-space: pre;\\r\\n    padding-left: var(--as-input-horizontal-padding);\\r\\n    padding-right: var(--as-input-horizontal-padding);\\r\\n    -webkit-user-select: none;\\r\\n    -moz-user-select: none;\\r\\n    -ms-user-select: none;\\r\\n    user-select: none;\\r\\n}\\r\\n\\r\\n.absol-selectlist-item {\\r\\n    height: 20px;\\r\\n    line-height: 20px;\\r\\n    --level: 0;\\r\\n    padding-left: calc(0.9em * var(--level));\\r\\n}\\r\\n\\r\\n\\r\\n.absol-selectlist-item {\\r\\n    position: relative;\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.absol-selectlist-item-desc-container {\\r\\n    position: absolute;\\r\\n    right: 0.3em;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n}\\r\\n\\r\\n.absol-selectlist-item-desc {\\r\\n    font-style: italic;\\r\\n    line-height: 20px;\\r\\n    white-space: nowrap;\\r\\n    color: rgb(37, 37, 37);\\r\\n}\\r\\n\\r\\n.absol-selectlist-item-desc:empty {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.absol-selectlist-item {\\r\\n    padding-right: calc(0.35em + var(--select-list-desc-width));\\r\\n}\\r\\n\\r\\n.absol-selectlist-item-desc-container {\\r\\n    width: var(--select-list-desc-width);\\r\\n}\\r\\n\\r\\n\\r\\n.as-select-list-icon {\\r\\n    font-size: 1.5em;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    padding-left: var(--as-input-horizontal-padding);\\r\\n}\\r\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/selectlist.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/selectlistbox.css":
/*!**************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/selectlistbox.css ***!
  \**************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-select-list-box {\\r\\n    --select-list-estimate-width: 0;\\r\\n    --max-height: calc(100vh - 80px);\\r\\n    position: fixed;\\r\\n    top: 10px;\\r\\n    left: 10px;\\r\\n    width: calc(var(--select-list-estimate-width) + 2px + 5px + 7px);\\r\\n    font-size: 1rem;\\r\\n    font-family: Arial, Helvetica, sans-serif;\\r\\n    border: solid 1px rgb(100, 100, 255);\\r\\n    box-sizing: border-box;\\r\\n    background-color: white;\\r\\n    display: inline-block;\\r\\n    vertical-align: top;\\r\\n    -webkit-box-shadow: 2px 2px 6px 0px rgba(0, 0, 90, 0.55);\\r\\n    -moz-box-shadow: 2px 2px 6px 0px rgba(0, 0, 90, 0.55);\\r\\n    box-shadow: 2px 2px 6px 0px rgba(0, 0, 90, 0.55);\\r\\n    outline: none;\\r\\n}\\r\\n\\r\\n.as-select-list-box.as-has-icon .absol-selectlist-item {\\r\\n    height: calc(30rem / 14);\\r\\n    line-height: calc(30rem / 14);\\r\\n}\\r\\n\\r\\n.as-select-list-box.as-enable-search {\\r\\n    min-width: 10em;\\r\\n}\\r\\n\\r\\ndiv.absol-follower.as-select-list-box {\\r\\n    z-index: 4000000;\\r\\n}\\r\\n\\r\\n.as-select-list-box .as-select-list-box {\\r\\n    min-width: 100%;\\r\\n}\\r\\n\\r\\n.as-select-list-box-search-ctn {\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n}\\r\\n\\r\\n.as-select-list-box.as-enable-search.as-anchor-6 .as-select-list-box-search-ctn,\\r\\n.as-select-list-box.as-enable-search.as-anchor-5 .as-select-list-box-search-ctn {\\r\\n    bottom: 0;\\r\\n    top: unset;\\r\\n}\\r\\n\\r\\n.as-select-list-box.as-enable-search.as-anchor-6,\\r\\n.as-select-list-box.as-enable-search.as-anchor-5 {\\r\\n    padding-bottom: calc(2em + 10px);\\r\\n    padding-top: 0;\\r\\n}\\r\\n\\r\\n.as-select-list-box.as-enable-search,\\r\\n.as-select-list-box.as-enable-search.as-anchor-1,\\r\\n.as-select-list-box.as-enable-search.as-anchor-2 {\\r\\n    padding-top: calc(2em + 10px);\\r\\n}\\r\\n\\r\\n.as-select-list-box.as-enable-search .as-select-list-box-search-ctn,\\r\\n.as-select-list-box.as-enable-search.as-anchor-1 .as-select-list-box-search-ctn,\\r\\n.as-select-list-box.as-enable-search.as-anchor-2 .as-select-list-box-search-ctn {\\r\\n    top: 0;\\r\\n    bottom: unset;\\r\\n}\\r\\n\\r\\n.as-select-list-box-scroller {\\r\\n    overflow-y: auto;\\r\\n    overflow-x: visible;\\r\\n}\\r\\n\\r\\n.as-select-list-box .as-select-list-box-scroller {\\r\\n    max-height: var(--max-height);\\r\\n}\\r\\n\\r\\n.as-select-list-box.as-enable-search .as-select-list-box-scroller {\\r\\n    max-height: calc(var(--max-height) - 2em - 10px);\\r\\n}\\r\\n\\r\\n.as-select-list-box-content {\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n.as-select-list-box-page {\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n    top: 0;\\r\\n    overflow: hidden;\\r\\n}\\r\\n\\r\\n.as-select-list-box .absol-selectlist-item {\\r\\n    cursor: default;\\r\\n}\\r\\n\\r\\n.as-select-list-box-search-ctn {\\r\\n    display: none;\\r\\n    padding: 5px;\\r\\n}\\r\\n\\r\\n\\r\\n.as-select-list-box.as-enable-search .as-select-list-box-search-ctn {\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n\\r\\n.as-select-list-box .as-last-in-group span {\\r\\n    line-height: 19px;\\r\\n}\\r\\n\\r\\n\\r\\n.as-select-list-box .absol-selectlist-item:hover {\\r\\n    background-color: #efefef;\\r\\n}\\r\\n\\r\\n.as-select-list-box.as-value-hidden .absol-selectlist-item.as-selected {\\r\\n    color: #aaaaaa;\\r\\n}\\r\\n\\r\\n.as-select-list-box.as-value-hidden .absol-selectlist-item.as-selected.as-is-leaft {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n\\r\\n/**********************************************************************************************************************/\\r\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/selectlistbox.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/selectmenu.css":
/*!***********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/selectmenu.css ***!
  \***********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-selectmenu-anchor-container {\\r\\n    /* position: fixed; */\\r\\n\\r\\n    /* top: 0; */\\r\\n    /* left: 0; */\\r\\n    width: 0;\\r\\n    height: 0;\\r\\n    overflow: visible;\\r\\n}\\r\\n\\r\\n.absol-selectmenu-anchor {\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n.absol-selectmenu-anchor-content-container {\\r\\n    position: absolute;\\r\\n    z-index: 1002;\\r\\n    top: 0;\\r\\n    left: 0;\\r\\n}\\r\\n\\r\\n.absol-selectmenu-anchor-content-container .absol-bscroller {\\r\\n    max-height: calc(100vh - 50px);\\r\\n}\\r\\n\\r\\n\\r\\n.absol-selectmenu-anchor.absol-disabled .absol-selectmenu-anchor-content-container {\\r\\n    visibility: hidden;\\r\\n    top: -100000px;\\r\\n    left: -10000px;\\r\\n    z-index: -1000;\\r\\n    opacity: 0;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-selectmenu-dropdown-box {\\r\\n    border: solid 1px rgb(100, 100, 255);\\r\\n    box-sizing: border-box;\\r\\n    background-color: white;\\r\\n    display: inline-block;\\r\\n    vertical-align: top;\\r\\n    -webkit-box-shadow: 2px 2px 6px 0px rgba(0, 0, 90, 0.55);\\r\\n    -moz-box-shadow: 2px 2px 6px 0px rgba(0, 0, 90, 0.55);\\r\\n    box-shadow: 2px 2px 6px 0px rgba(0, 0, 90, 0.55);\\r\\n}\\r\\n\\r\\n.absol-selectmenu-dropdown-box > .as-bscroller {\\r\\n    overflow-y: auto;\\r\\n}\\r\\n\\r\\n.absol-selectmenu-dropdown-box .absol-search-text-input {\\r\\n    margin: 0.2em;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-selectmenu.absol-hidden {\\r\\n    display: none !important;\\r\\n}\\r\\n\\r\\n.absol-selectmenu-render-space {\\r\\n    position: fixed;\\r\\n    top: 0;\\r\\n    left: 0;\\r\\n    z-index: -1000;\\r\\n    visibility: hidden;\\r\\n    font-size: 14px;\\r\\n}\\r\\n\\r\\n.absol-selectmenu-render-space > div {\\r\\n    display: inline-block;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-selectmenu.as-disabled,\\r\\n.as-select-menu.as-disabled {\\r\\n    pointer-events: none;\\r\\n    background-color: var(--as-disabled-background-color);\\r\\n    color: var(--as-disabled-text-color);\\r\\n}\\r\\n\\r\\n.absol-selectmenu {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    position: relative;\\r\\n    height: calc(2em + 2px);\\r\\n    min-width: calc(2em + 2px);\\r\\n    border: solid 1px #d6d6d6;\\r\\n    border-radius: 2px;\\r\\n    box-sizing: border-box;\\r\\n    font-size: 1rem;\\r\\n    outline: none;\\r\\n    font-family: \\\"Helvetica Neue\\\", Arial, Helvetica, sans-serif;\\r\\n    background-color: white;\\r\\n}\\r\\n\\r\\n.absol-selectmenu.as-border-none {\\r\\n    border: none;\\r\\n}\\r\\n\\r\\n.absol-selectmenu.as-border-none .absol-selectlist-item span {\\r\\n    padding-left: 0;\\r\\n    user-select: inherit;\\r\\n    -ms-user-select: inherit;\\r\\n    -webkit-user-select: inherit;\\r\\n}\\r\\n\\r\\n.absol-selectmenu:not(.as-read-only) {\\r\\n    cursor: pointer;\\r\\n}\\r\\n\\r\\n.absol-selectmenu.as-read-only .absol-selectlist-item span {\\r\\n    user-select: inherit;\\r\\n    -moz-user-select: inherit;\\r\\n    -webkit-user-select: inherit;\\r\\n    -ms-user-select: inherit;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-selectmenu-btn {\\r\\n    position: absolute;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    right: 0;\\r\\n    width: 30px;\\r\\n    border: none;\\r\\n    background: transparent;\\r\\n    z-index: 2;\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n.absol-selectmenu-btn:focus {\\r\\n    outline: none;\\r\\n}\\r\\n\\r\\n.absol-selectmenu-btn svg.dropdown {\\r\\n    width: 10px;\\r\\n    height: 10px;\\r\\n    fill: #929292;\\r\\n}\\r\\n\\r\\n.absol-selectmenu.as-read-only svg.dropdown {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.absol-selectmenu:not(.as-read-only):hover svg.dropdown {\\r\\n    width: 10px;\\r\\n    height: 10px;\\r\\n    fill: black;\\r\\n}\\r\\n\\r\\n.absol-selectmenu-holder-item {\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    /*1px for border*/\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n.absol-selectmenu-holder-item::before {\\r\\n    content: \\\"\\\";\\r\\n    height: 100%;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-selectmenu-holder-item > .absol-selectlist-item {\\r\\n    display: inline-block;\\r\\n    width: 100%;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.absol-selectmenu .absol-selectlist-item-text {\\r\\n    padding-right: 28px;\\r\\n}\\r\\n\\r\\n.absol-selectmenu .absol-scroll-button {\\r\\n    background-color: rgba(0, 0, 0, 0.1);\\r\\n    border-radius: 3px;\\r\\n}\\r\\n\\r\\n.absol-selectmenu .absol-scroll-button:hover {\\r\\n    background-color: rgba(0, 0, 0, 0.2);\\r\\n}\\r\\n\\r\\n.absol-scroll-bar-v-container {\\r\\n    width: 10px;\\r\\n}\\r\\n\\r\\n.absol-selectmenu .absol-search-text-input {\\r\\n    margin: 4px;\\r\\n}\\r\\n\\r\\n.absol-selectmenu-render-space .absol-selectlist-item span {\\r\\n    padding-right: 0;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-selectmenu .absol-selectlist-item-desc-container {\\r\\n    right: 30px;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-selectmenu-dropdown-box .absol-bscroller {\\r\\n    overflow-y: auto;\\r\\n}\\r\\n\\r\\n\\r\\n.as-select-anchor {\\r\\n    position: fixed;\\r\\n    z-index: 1000001;\\r\\n}\\r\\n\\r\\n\\r\\n.as-select-anchor.as-hidden {\\r\\n    left: 0;\\r\\n    top: 0;\\r\\n    z-index: -1000;\\r\\n    visibility: hidden;\\r\\n    opacity: 0;\\r\\n}\\r\\n\\r\\n\\r\\n.as-select-menu {\\r\\n    --select-list-estimate-width: 0px;\\r\\n    --select-list-desc-width: 0px;\\r\\n    width: calc(var(--select-list-estimate-width) + 32px);\\r\\n    min-width: calc(var(--select-list-estimate-width) + 32px);\\r\\n}\\r\\n\\r\\n/***********************************************************************************************************************/\\r\\n\\r\\n.as-select-menu {\\r\\n\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/selectmenu.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/selecttable.css":
/*!************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/selecttable.css ***!
  \************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-select-table-render-space {\\r\\n    position: fixed;\\r\\n    top: 0;\\r\\n    left: 0;\\r\\n    z-index: -1000;\\r\\n    visibility: hidden;\\r\\n    font-size: 14px;\\r\\n}\\r\\n\\r\\n.absol-select-table {\\r\\n    border: solid 1px #a9a9a9;\\r\\n    min-width: 26em;\\r\\n    overflow: hidden;\\r\\n}\\r\\n\\r\\n.absol-select-table-header {\\r\\n    display: block;\\r\\n    position: relative;\\r\\n    box-sizing: content-box;\\r\\n    height: 2.2857142857em;\\r\\n}\\r\\n\\r\\n.absol-select-table-searchtextinput-container {\\r\\n    position: absolute;\\r\\n    left: 0.14285714285em;\\r\\n    top: 0.14285714285em;\\r\\n    height: 2em;\\r\\n    right: 10em;\\r\\n    /* background-color: cyan; */\\r\\n}\\r\\n\\r\\n.absol-select-table.disable-move-all .absol-select-table-buttons-container {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.absol-select-table.disable-move-all .absol-select-table-searchtextinput-container {\\r\\n    right: 0.14285714285em !important;\\r\\n}\\r\\n\\r\\n.absol-select-table-buttons-container {\\r\\n    position: absolute;\\r\\n    right: 0.14285714285em;\\r\\n    top: 0.14285714285em;\\r\\n    width: 10.7142857143em;\\r\\n    height: 2em;\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n.absol-select-table-buttons-container>button {\\r\\n    height: 2em;\\r\\n    font-size: 1em;\\r\\n    background-color: transparent;\\r\\n    border: none;\\r\\n    padding: 0 0.5em;\\r\\n    margin: 0;\\r\\n    text-decoration: underline;\\r\\n    cursor: pointer;\\r\\n}\\r\\n\\r\\n.absol-select-table-buttons-container>button:focus {\\r\\n    outline: none;\\r\\n}\\r\\n\\r\\n.absol-select-table-buttons-container>button:hover {\\r\\n    color: #a9a9a9;\\r\\n}\\r\\n\\r\\n.absol-select-table-buttons-container>button:active {\\r\\n    color: #a9a9ff;\\r\\n}\\r\\n\\r\\n.absol-select-table-body {\\r\\n    margin: 0.14285714285em;\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n.absol-select-table-items-scroller {\\r\\n    width: 50%;\\r\\n    display: inline-block;\\r\\n    box-sizing: border-box;\\r\\n    vertical-align: top;\\r\\n    overflow-y: auto;\\r\\n}\\r\\n\\r\\n.absol-select-table-items-scroller .absol-scroll-button {\\r\\n    background-color: rgba(1, 1, 30, 0.1);\\r\\n}\\r\\n\\r\\n.absol-select-table-items-scroller .absol-scroll-bar-v-container {\\r\\n    width: 0.69em;\\r\\n}\\r\\n\\r\\n.absol-select-table-selected-search-items-container,\\r\\n.absol-select-table-nonselected-search-items-container,\\r\\n.absol-select-table.searching .absol-select-table-selected-items-container,\\r\\n.absol-select-table.searching .absol-select-table-nonselected-items-container {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.absol-select-table.searching .absol-select-table-selected-search-items-container,\\r\\n.absol-select-table.searching .absol-select-table-nonselected-search-items-container {\\r\\n    display: block;\\r\\n    padding-right: 0.7em;\\r\\n}\\r\\n\\r\\n.absol-select-table-nonselected-items-container,\\r\\n.absol-select-table-selected-items-container {\\r\\n    padding-right: 0.7em;\\r\\n}\\r\\n\\r\\n.absol-select-table-nonselected-items-container>.absol-select-table-item,\\r\\n.absol-select-table-selected-items-container>.absol-select-table-item,\\r\\n.absol-select-table-nonselected-search-items-container>.absol-select-table-item,\\r\\n.absol-select-table-selected-search-items-container>.absol-select-table-item {\\r\\n    margin: 0.14285714285em;\\r\\n}\\r\\n\\r\\n.absol-select-table-item {\\r\\n    display: block;\\r\\n    line-height: 2em;\\r\\n    min-height: 2em;\\r\\n    position: relative;\\r\\n    background-color: rgba(169, 169, 169, 0.05);\\r\\n    border: solid 1px rgb(235, 235, 235);\\r\\n    border-radius: 0.2em;\\r\\n    overflow: hidden;\\r\\n    -webkit-user-select: none;\\r\\n    /* Safari 3.1+ */\\r\\n    -moz-user-select: none;\\r\\n    /* Firefox 2+ */\\r\\n    -ms-user-select: none;\\r\\n    /* IE 10+ */\\r\\n    user-select: none;\\r\\n    /* Standard syntax */\\r\\n    padding-left: 0.69em;\\r\\n    padding-right: 1.8em;\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.absol-select-table-item:hover {\\r\\n    background-color: rgba(169, 169, 169, 0.1);\\r\\n}\\r\\n\\r\\n.absol-select-table-item-right-container {\\r\\n    right: 0.3em;\\r\\n    bottom: 0.3em;\\r\\n    top: 0.3em;\\r\\n    padding: 0.2em;\\r\\n    width: 1.4em;\\r\\n    position: absolute;\\r\\n    border-radius: 0.2em;\\r\\n    box-sizing: border-box;\\r\\n ;\\r\\n}\\r\\n\\r\\n.absol-select-table-item-right-container:hover {\\r\\n    background-color: rgba(169, 169, 169, 0.3);\\r\\n}\\r\\n\\r\\nspan.absol-select-table-item-text {\\r\\n    white-space: normal;\\r\\n    \\r\\n}\\r\\n\\r\\n.absol-select-table-item-right-container-table{\\r\\n    display: table;\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n}\\r\\n.absol-select-table-item-right-container-cell{\\r\\n    display: table-cell;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.absol-select-table-item-right-container svg {\\r\\n    width: 1em;\\r\\n    height: 1em;\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n/* clearfix\\r\\n.absol-select-table-none-nonselected-items-container::after,\\r\\n.absol-select-table-none-selected-items-container::after {\\r\\n    content: \\\"\\\";\\r\\n    display:table;\\r\\n    clear: both;\\r\\n} */\\r\\n\\r\\n.absol-select-table-selected-items-container .absol-select-table-item-right-container svg.sub-icon,\\r\\n.absol-select-table-selected-search-items-container .absol-select-table-item-right-container svg.sub-icon {\\r\\n    display: block;\\r\\n    stroke: rgb(243, 61, 61);\\r\\n    fill: rgb(226, 100, 100);\\r\\n}\\r\\n\\r\\n.absol-select-table-nonselected-items-container .absol-select-table-item-right-container svg.add-icon,\\r\\n.absol-select-table-nonselected-search-items-container .absol-select-table-item-right-container svg.add-icon {\\r\\n    display: block;\\r\\n    fill: rgb(100, 226, 167);\\r\\n    stroke: rgb(61, 185, 243);\\r\\n}\\r\\n\\r\\n.absol-select-table.portrait {}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/selecttable.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/selecttreeeleafbox.css":
/*!*******************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/selecttreeeleafbox.css ***!
  \*******************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".am-select-tree-leaf-box {\\r\\n    min-width: 10em;\\r\\n}\\r\\n\\r\\n.am-select-tree-leaf-box-body {\\r\\n    overflow-y: auto;\\r\\n    max-height: calc(80vh - 2em);\\r\\n}\\r\\n\\r\\n.am-select-tree-leaf-box.as-enable-search .am-select-tree-leaf-box-body {\\r\\n    max-height: calc(80vh - 4em - 10px);\\r\\n}\\r\\n\\r\\n\\r\\n.am-select-tree-leaf-item {\\r\\n    display: block;\\r\\n    white-space: nowrap;\\r\\n    position: relative;\\r\\n    width: 100%;\\r\\n    overflow: hidden;\\r\\n    --level: 0;\\r\\n    --icon-width: 0px;\\r\\n}\\r\\n\\r\\n.am-select-tree-leaf-item:active {\\r\\n    background-color: #efefef;\\r\\n}\\r\\n\\r\\n.am-select-tree-leaf-item.as-selected {\\r\\n    background-color: #dfdfdf;\\r\\n}\\r\\n\\r\\n\\r\\n.am-select-tree-leaf-item.as-has-icon {\\r\\n    --icon-width: 2.7em;\\r\\n}\\r\\n\\r\\n\\r\\n.am-select-tree-leaf-item-toggle-ctn,\\r\\n.am-select-tree-leaf-item-icon-ctn,\\r\\n.am-select-tree-leaf-item-checkbox-ctn {\\r\\n    position: absolute;\\r\\n    white-space: nowrap;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n}\\r\\n\\r\\n.am-select-tree-leaf-item-toggle-ctn {\\r\\n    left: calc(2em * var(--level) + 0.2em);\\r\\n    width: 1.5em;\\r\\n    text-align: center;\\r\\n}\\r\\n\\r\\n.am-select-tree-leaf-item-toggle-ctn > svg {\\r\\n    width: 0.7em;\\r\\n    height: 0.7em;\\r\\n}\\r\\n\\r\\n\\r\\n.am-select-tree-leaf-item-icon-ctn {\\r\\n    left: calc(2em * var(--level) + 1.7em);\\r\\n}\\r\\n\\r\\n\\r\\n.am-select-tree-leaf-item-icon-ctn > svg {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n\\r\\n}\\r\\n\\r\\n.am-select-tree-leaf-item-icon-ctn {\\r\\n\\r\\n}\\r\\n\\r\\n.am-select-tree-leaf-item.as-status-open svg .toggle-close,\\r\\n.am-select-tree-leaf-item.as-status-close svg .toggle-open,\\r\\n.am-select-tree-leaf-item:not(.as-status-close):not(.as-status-open) .am-select-tree-leaf-item-toggle-ctn {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.am-select-tree-leaf-item-icon-ctn::before,\\r\\n.am-select-tree-leaf-item-toggle-ctn::before,\\r\\n.am-select-tree-leaf-item-checkbox-ctn::before {\\r\\n    content: \\\"\\\";\\r\\n    height: 100%;\\r\\n    vertical-align: middle;\\r\\n    display: inline-block;\\r\\n}\\r\\n\\r\\n.am-select-tree-leaf-item-icon-ctn:empty {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.am-select-tree-leaf-item-icon-ctn > span {\\r\\n    font-size: 1.8em;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n\\r\\n.am-select-tree-leaf-item-icon-ctn img,\\r\\n.am-select-tree-leaf-item-icon-ctn svg {\\r\\n    width: 1.8em;\\r\\n    height: 1.8em;\\r\\n    display: inline-block;\\r\\n}\\r\\n\\r\\n\\r\\n.am-select-tree-leaf-item-text {\\r\\n    width: var(--text-width);\\r\\n    box-sizing: border-box;\\r\\n    padding: 0.3em 0.5em 0.3em calc(1.2em + 2em * var(--level) + var(--icon-width));\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    line-height: 1.5;\\r\\n    white-space: normal;\\r\\n}\\r\\n\\r\\n\\r\\n.am-select-tree-leaf-item-desc {\\r\\n    display: none;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/selecttreeeleafbox.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/selecttreeleafmenu.css":
/*!*******************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/selecttreeleafmenu.css ***!
  \*******************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-select-tree-leaf-item:not(.as-is-leaf) > .absol-exp-node > .absol-exp-node-name,\\r\\n.as-select-tree-leaf-item:not(.as-is-leaf) > .absol-exp-node > .absol-exp-node-ext-icon {\\r\\n    color: #888;\\r\\n}\\r\\n\\r\\n.as-select-tree-leaf-item:not(.as-is-leaf) > .absol-exp-node > .absol-exp-node-desc {\\r\\n    color: rgb(169, 169, 172)\\r\\n}\\r\\n\\r\\n.as-select-tree-leaf-item > .absol-exp-node:hover,\\r\\n.as-select-tree-leaf-item > .absol-exp-node:focus,\\r\\n.as-select-tree-leaf-item > .absol-exp-node:active {\\r\\n    background-color: transparent;\\r\\n}\\r\\n\\r\\n.as-select-tree-leaf-item.as-is-leaf > .absol-exp-node:hover {\\r\\n    background-color: #efefef;\\r\\n}\\r\\n\\r\\n.as-select-tree-leaf-item.as-selected > .absol-exp-node {\\r\\n    background-color: #dfdfdf;\\r\\n}\\r\\n\\r\\n.am-select-tree-menu.absol-selectmenu {\\r\\n    width: auto;\\r\\n}\\r\\n\\r\\n.am-select-tree-menu .absol-selectmenu-holder-item {\\r\\n    position: relative;\\r\\n    left: unset;\\r\\n    right: unset;\\r\\n    top: unset;\\r\\n    bottom: unset;\\r\\n    height: 100%;\\r\\n    max-width: 100%;\\r\\n}\\r\\n\\r\\n\\r\\n.am-select-tree-menu .absol-selectlist-item-text {\\r\\n    max-width: calc(100vw - 200px);/**TODO: find better solution*/\\r\\n    text-overflow: ellipsis;\\r\\n    overflow: hidden;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/selecttreeleafmenu.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/selecttreemenu.css":
/*!***************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/selecttreemenu.css ***!
  \***************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-selecttreemenu  .absol-tree-list-item-desc-container{\\r\\n    right: 30px;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-selectmenu-holder-item .absol-tree-list-item-parent:hover {\\r\\n    background-color: transparent;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/selecttreemenu.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/singlepage.css":
/*!***********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/singlepage.css ***!
  \***********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-single-page {\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-single-page-header {\\r\\n    box-sizing: border-box;\\r\\n    z-index: 2;\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n.absol-single-page-footer {\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n    bottom: 0;\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-single-page-scroller-viewport {\\r\\n    min-height: 100%;\\r\\n    display: block;\\r\\n    position: relative;\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.absol-single-page-scroller {\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    overflow-y: auto;\\r\\n}\\r\\n\\r\\n.absol-single-page.as-viewport-full > .absol-single-page-scroller > .absol-single-page-scroller-viewport {\\r\\n    height: 100%;\\r\\n    width: 100%;\\r\\n    overflow: hidden;\\r\\n}\\r\\n\\r\\n.absol-single-page.as-no-scroll > .absol-single-page-scroller {\\r\\n    overflow: hidden;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/singlepage.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/snackbar.css":
/*!*********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/snackbar.css ***!
  \*********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-snackbar {\\r\\n    visibility: hidden;\\r\\n    min-width: 250px;\\r\\n    margin-left: -125px;\\r\\n    background-color: #333;\\r\\n    color: #fff;\\r\\n    text-align: center;\\r\\n    border-radius: 2px;\\r\\n    padding: 16px;\\r\\n    position: fixed;\\r\\n    z-index: 1000000000;\\r\\n    left: 50%;\\r\\n    bottom: 0;\\r\\n    font-size: 17px;\\r\\n    opacity: 0;\\r\\n    transition: opacity 0.25s ease-in, bottom 0.25s ease-in;\\r\\n\\r\\n}\\r\\n\\r\\n.as-snackbar.as-show {\\r\\n    visibility: visible;\\r\\n    bottom: 30px;\\r\\n    opacity: 1;\\r\\n}\\r\\n\\r\\n.as-snackbar.as-hiding{\\r\\n    transition: opacity 0.5s ease-out, bottom 0.5s ease-out;\\r\\n    visibility: visible;\\r\\n    bottom: 0;\\r\\n    opacity: 0;\\r\\n}\\r\\n\\r\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/snackbar.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/spaninput.css":
/*!**********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/spaninput.css ***!
  \**********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-span-input {\\r\\n    white-space: pre;\\r\\n}\\r\\n\\r\\n.absol-span-input:focus {\\r\\n    outline-color: rgba(30, 150, 255, 0.3);\\r\\n    outline-width: 1px;\\r\\n}\\r\\n\\r\\n.absol-span-input:empty::before {\\r\\n    content: \\\" \\\";\\r\\n    display: inline;\\r\\n    white-space: pre;\\r\\n}\\r\\n\\r\\n.absol-span-input.absol-span-input-empty-minus:empty::before {\\r\\n    content: \\\"-\\\";\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/spaninput.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/statictabbar.css":
/*!*************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/statictabbar.css ***!
  \*************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-static-tabbar {\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n.absol-static-tabbar-button {\\r\\n    height: 2em;\\r\\n    background-color: transparent;\\r\\n    border: none;\\r\\n    font-size: 1em;\\r\\n    padding-left: 0.5em;\\r\\n    padding-right: 0.5em;\\r\\n    color: rgb(104, 104, 104);\\r\\n}\\r\\n\\r\\n.absol-static-tabbar-button:hover {\\r\\n    color: rgb(30, 30, 55);\\r\\n}\\r\\n\\r\\n.absol-static-tabbar-button.active {\\r\\n    color: black;\\r\\n}\\r\\n\\r\\n.absol-static-tabbar-button:focus {\\r\\n    outline: none;\\r\\n}\\r\\n\\r\\n.absol-static-tabbar-button>span {\\r\\n    font-size: 0.7em;\\r\\n}\\r\\n\\r\\n.absol-static-tabbar-hline {\\r\\n    border-bottom: solid 1px rgb(127, 127, 128);\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n.absol-static-tabbar-active-box {\\r\\n    position: absolute;\\r\\n    bottom: 0;\\r\\n    top: 0;\\r\\n    left: 0;\\r\\n    width: 0;\\r\\n    transition: left 0.15s, width 0.15s;\\r\\n    padding-left: 0.5em;\\r\\n    padding-right: 0.5em;\\r\\n    box-sizing: border-box;\\r\\n    /* z-index: 1; */\\r\\n}\\r\\n\\r\\n.absol-static-tabbar.dark .absol-static-tabbar-hline{\\r\\n    border-bottom-color: white;\\r\\n}\\r\\n\\r\\n.absol-static-tabbar.dark .absol-static-tabbar-button.active{\\r\\n    color: white;\\r\\n}\\r\\n\\r\\n.absol-static-tabbar.dark .absol-static-tabbar-button {\\r\\n    color: rgb(204, 204, 204);\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/statictabbar.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/switch.css":
/*!*******************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/switch.css ***!
  \*******************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-switch {\\r\\n    position: relative;\\r\\n    display: inline-block;\\r\\n    width: 2.2em;\\r\\n    height: 1.2em;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.absol-switch input {\\r\\n    opacity: 0;\\r\\n    width: 0;\\r\\n    height: 0;\\r\\n}\\r\\n\\r\\n.absol-switch:not(.as-read-only) .absol-switch-slider{\\r\\n    cursor: pointer;\\r\\n}\\r\\n\\r\\n.absol-switch-slider {\\r\\n    position: absolute;\\r\\n    top: 0;\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n    bottom: 0;\\r\\n    background-color: #ccc;\\r\\n    -webkit-transition: .4s;\\r\\n    transition: .4s;\\r\\n    border-radius: 0.6em;\\r\\n}\\r\\n\\r\\n.absol-switch-slider:before {\\r\\n    position: absolute;\\r\\n    content: \\\"\\\";\\r\\n    height: 1em;\\r\\n    width: 1em;\\r\\n    left: 0.1em;\\r\\n    bottom: 0.1em;\\r\\n    background-color: white;\\r\\n    -webkit-transition: .4s;\\r\\n    transition: .4s;\\r\\n    border-radius: 0.5em;\\r\\n}\\r\\n\\r\\ninput:checked+.absol-switch-slider {\\r\\n    background-color: #2196F3;\\r\\n}\\r\\n\\r\\ninput:focus+.absol-switch-slider {\\r\\n    box-shadow: 0 0 1px #2196F3;\\r\\n}\\r\\n\\r\\ninput:checked+.absol-switch-slider:before {\\r\\n    -webkit-transform: translateX(1em);\\r\\n    -ms-transform: translateX(1em);\\r\\n    transform: translateX(1em);\\r\\n}\\r\\n\\r\\n/* Rounded absol-switch-sliders */\\r\\n.absol-switch.square .absol-switch-slider {\\r\\n    border-radius: 0;\\r\\n}\\r\\n\\r\\n.absol-switch.square .absol-switch-slider:before {\\r\\n    border-radius: 0;\\r\\n}\\r\\n\\r\\n.absol-switch.disabled {\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n.absol-switch.disabled .absol-switch-slider:before{\\r\\n    background-color: rgb(234, 234, 234);\\r\\n}\\r\\n\\r\\n.absol-switch.disabled input:checked+.absol-switch-slider {\\r\\n    background-color: rgb(141, 188, 226);\\r\\n}\\r\\n\\r\\n.absol-switch.disabled .absol-switch-slider {\\r\\n    background-color: rgb(171, 171, 171);\\r\\n}\\r\\n\\r\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/switch.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/tablescroller.css":
/*!**************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/tablescroller.css ***!
  \**************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-table-scroller .absol-table-scroller-viewport {\\r\\n    width: calc(100% + var(--scrollbar-width));\\r\\n    height: calc(100% + var(--scrollbar-width));\\r\\n}\\r\\n\\r\\n.absol-table-scroller .absol-table-scroller-header-hscroller-viewport {\\r\\n    margin-bottom: calc(0px - var(--scrollbar-width))\\r\\n}\\r\\n\\r\\n\\r\\n.absol-table-scroller {\\r\\n    --scrollbar-width: 17px;\\r\\n    --new-pos-y: 0;\\r\\n    position: relative;\\r\\n    padding-right: 17px;\\r\\n    padding-bottom: 17px;\\r\\n}\\r\\n\\r\\n.absol-table-scroller:not(.as-scroll-vertical) {\\r\\n    padding-right: 0;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-table-scroller:not(.as-scroll-horizontal) {\\r\\n    padding-bottom: 0;\\r\\n}\\r\\n\\r\\n\\r\\n.as-table-scroller-vertical-scroller {\\r\\n    overflow-y: scroll;\\r\\n    height: 100%;\\r\\n    box-sizing: border-box;\\r\\n    margin-right: calc(0px - var(--scrollbar-width));\\r\\n}\\r\\n\\r\\n.as-table-scroller-fixed-y-header-ctn {\\r\\n    position: absolute;\\r\\n    z-index: 4;\\r\\n    top: 0;\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n    overflow: hidden;\\r\\n}\\r\\n\\r\\n.as-table-scroller-fixed-x-col-ctn {\\r\\n    position: absolute;\\r\\n    z-index: 5;\\r\\n    top: 0;\\r\\n    left: 0;\\r\\n    overflow: hidden;\\r\\n}\\r\\n\\r\\n.as-table-scroller-fixed-xy-header-ctn {\\r\\n    position: absolute;\\r\\n    z-index: 12;\\r\\n    top: 0;\\r\\n    left: 0;\\r\\n    overflow: hidden;\\r\\n}\\r\\n\\r\\n.as-table-scroller-fixed-y-header-scroller {\\r\\n    overflow-x: scroll;\\r\\n    margin-bottom: calc(var(--scrollbar-width) * -1);\\r\\n}\\r\\n\\r\\n\\r\\n.as-table-scroller-horizontal-scroller-viewport {\\r\\n    overflow: hidden;\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n.as-table-scroller-horizontal-scroller {\\r\\n    overflow-x: scroll;\\r\\n    width: 100%;\\r\\n    box-sizing: border-box;\\r\\n    margin-bottom: calc(var(--scrollbar-width) * -1);\\r\\n}\\r\\n\\r\\n.absol-table-scroller-content {\\r\\n    position: relative;\\r\\n    overflow: hidden;\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n.absol-table-scroller-render-space {\\r\\n    position: fixed;\\r\\n    overflow: scroll;\\r\\n    left: 0;\\r\\n    top: 0;\\r\\n    max-width: calc(99vw - 30px);\\r\\n    max-height: calc(99vh - 30px);\\r\\n    opacity: 0;\\r\\n    z-index: -1000;\\r\\n    visibility: hidden;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-table-scroller-viewport {\\r\\n    box-sizing: border-box;\\r\\n    overflow: scroll;\\r\\n    width: calc(100% + 17px);\\r\\n    height: calc(100% + 17px);\\r\\n    background-color: white;\\r\\n}\\r\\n\\r\\n.absol-table-scroller-fixed-viewport {\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    top: 0;\\r\\n    z-index: 10;\\r\\n    overflow: hidden;\\r\\n    background-color: white;\\r\\n    /*pointer-events: none;*/\\r\\n}\\r\\n\\r\\n.absol-table-scroller-fixed-viewport > table > thead,\\r\\n.absol-table-scroller-fixed-viewport > table {\\r\\n    /*border-top-color: transparent !important;*/\\r\\n}\\r\\n\\r\\n.absol-table-scroller-fixed-hidden {\\r\\n    visibility: hidden !important;\\r\\n    opacity: 0 !important;\\r\\n    border-color: transparent !important;\\r\\n\\r\\n}\\r\\n\\r\\n.absol-table-scroller-header-hscroller {\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    top: 0;\\r\\n    right: 0;\\r\\n    z-index: 9;\\r\\n    overflow: hidden;\\r\\n    /*pointer-events: none;*/\\r\\n}\\r\\n\\r\\n.absol-table-scroller-header-hscroller-viewport {\\r\\n    max-width: 100%;\\r\\n    overflow-x: scroll;\\r\\n    margin-bottom: -17px; /*default*/\\r\\n    background-color: white;\\r\\n}\\r\\n\\r\\n.absol-table-scroller-header-hscroller-viewport table {\\r\\n    table-layout: fixed;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-table-scroller-left-vscroller {\\r\\n    position: absolute;\\r\\n    top: 0;\\r\\n    left: 0;\\r\\n    bottom: 0;\\r\\n    z-index: 7;\\r\\n    /* width: 200px; */\\r\\n    overflow-x: hidden;\\r\\n    /*pointer-events: none;*/\\r\\n}\\r\\n\\r\\n.absol-table-scroller-left-vscroller-viewport {\\r\\n    max-height: 100%;\\r\\n    overflow-y: scroll;\\r\\n    min-width: calc(100% + 19px);\\r\\n    overflow-x: hidden;\\r\\n    background-color: white;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-table-scroller-head-line,\\r\\n.absol-table-scroller-left-line {\\r\\n    z-index: 30;\\r\\n    /*pointer-events: none;*/\\r\\n    position: absolute;\\r\\n}\\r\\n\\r\\n.absol-table-scroller-head-line {\\r\\n    left: 0;\\r\\n    border-bottom: solid 2px rgb(169, 169, 170);\\r\\n    width: 100%;\\r\\n}\\r\\n\\r\\n.absol-table-scroller-left-line {\\r\\n    top: 0;\\r\\n    border-right: solid 2px rgb(169, 169, 170);\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-table-scroller.as-scroll-vertical .absol-table-scroller-head-line {\\r\\n    width: 100%;\\r\\n}\\r\\n\\r\\n.absol-table-scroller.as-scroll-horizontal .absol-table-scroller-left-line {\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-table-scroller:not(.as-scroll-vertical) .absol-table-scroller-head-line {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.absol-table-scroller:not(.as-scroll-horizontal) .absol-table-scroller-left-line {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-table-scroller-vscrollbar-container {\\r\\n    position: absolute;\\r\\n    top: 0;\\r\\n    right: 0px;\\r\\n    width: 17px;\\r\\n    bottom: 0;\\r\\n    z-index: 31;\\r\\n}\\r\\n\\r\\n.absol-table-scroller-vscrollbar-container .absol-scrollbar-button {\\r\\n    left: 1px;\\r\\n    right: 1px;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-table-scroller-vscrollbar-container > div,\\r\\n.absol-table-scroller-hscrollbar-container > div {\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n.absol-table-scroller-hscrollbar-container {\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n    height: 17px;\\r\\n    bottom: 0;\\r\\n    z-index: 31;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-table-scroller-hscrollbar-container .absol-scrollbar-button {\\r\\n    top: 1px;\\r\\n    bottom: 1px;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-table-scroller:not(.as-scroll-vertical) .absol-table-scroller-vscrollbar-container {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.absol-table-scroller:not(.as-scroll-horizontal) .absol-table-scroller-hscrollbar-container {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-table-scroller.as-scroll-horizontal .absol-table-scroller-vscrollbar-container {\\r\\n    bottom: 17px;\\r\\n}\\r\\n\\r\\n.absol-table-scroller.as-scroll-vertical .absol-table-scroller-hscrollbar-container {\\r\\n    right: 17px;\\r\\n}\\r\\n\\r\\n.absol-table-scroller-fixed-table {\\r\\n    table-layout: fixed;\\r\\n    box-sizing: border-box;\\r\\n\\r\\n}\\r\\n\\r\\n.absol-table-scroller-fixed-table *,\\r\\n.absol-table-scroller-header-hscroller * {\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.absol-table-scroller .as-drag-zone {\\r\\n    cursor: move;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-table-scroller tr.as-dragging {\\r\\n    position: relative;\\r\\n    z-index: 1;\\r\\n    -webkit-box-shadow: 2px 2px 9px 0px rgba(20, 20, 20, 1);\\r\\n    -moz-box-shadow: 2px 2px 9px 0px rgba(20, 20, 20, 1);\\r\\n    box-shadow: 2px 2px 9px 0px rgba(20, 20, 20, 1);\\r\\n    opacity: 0.8;\\r\\n}\\r\\n\\r\\n.absol-table-scroller td.as-transparent-fix {\\r\\n    visibility: hidden;\\r\\n    opacity: 0;\\r\\n}\\r\\n\\r\\n.absol-table-scroller.as-dragging tbody tr:not(.as-dragging) {\\r\\n    transition: transform 0.1s;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-table-scroller-viewport thead .as-rotated-text-anchor,\\r\\n.absol-table-scroller-fixed-viewport thead .as-rotated-text-anchor,\\r\\n.absol-table-scroller-left-vscroller thead .as-rotated-text-anchor {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.absol-table-scroller .as-rotated-text-anchor {\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n\\r\\n.as-table-scroller-row-index::before {\\r\\n    content: attr(data-idx);\\r\\n}\\r\\n\\r\\n/*.absol-table-scroller.as-has-new-pos.as-dragging::before {*/\\r\\n/*    content: \\\"\\\";*/\\r\\n/*    position: absolute;*/\\r\\n/*    left: 0;*/\\r\\n/*    top: var(--new-pos-y);*/\\r\\n/*    right: 0;*/\\r\\n/*    border-top: 2px solid blue;*/\\r\\n/*    z-index: 8;*/\\r\\n/*    transition: top 0.1s;*/\\r\\n/*}*/\\r\\n\\r\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/tablescroller.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/tablevscroller.css":
/*!***************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/tablevscroller.css ***!
  \***************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-table-vscroller {\\r\\n    position: relative;\\r\\n    --tvs-scroll-padding-bottom: 1px;\\r\\n}\\r\\n\\r\\n.absol-table-vscroller-head {\\r\\n    position: absolute;\\r\\n    z-index: 2;\\r\\n    width: 300px;\\r\\n    height: 20px;\\r\\n    top: 0;\\r\\n    left: 0;\\r\\n}\\r\\n\\r\\n.absol-table-vscroller-head-line{\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    z-index: 3;\\r\\n    pointer-events: none;\\r\\n    border-bottom:solid 2px rgb(169, 169, 170); \\r\\n    width: 100%;\\r\\n}\\r\\n\\r\\n.absol-table-vscroller.scroll-v .absol-table-vscroller-head-line{\\r\\n    width: calc(100% - 7px);\\r\\n}\\r\\n\\r\\n.absol-table-vscroller-viewport {\\r\\n    max-height: 100%;\\r\\n    padding-bottom: var(--tvs-scroll-padding-bottom);\\r\\n    padding-top: 1px;\\r\\n    overflow-y: auto;\\r\\n}\\r\\n\\r\\n.absol-table-vscroller-viewport > table{\\r\\n    box-sizing: border-box;\\r\\n    width: 100%;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/tablevscroller.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/tabview.css":
/*!********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/tabview.css ***!
  \********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-tabbar {\\r\\n    height: 2em;\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-tabbar .absol-hscroller-viewport {\\r\\n    overflow-y: hidden;\\r\\n}\\r\\n\\r\\n.absol-tabbar .absol-tabbar-button,\\r\\n.absol-tabbar .as-tab-bar-add-btn {\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n/* .absol-tabbar .absol-scrollbar-container {\\r\\n    height: 5px;\\r\\n} */\\r\\n\\r\\n.absol-tabbar .absol-scrollbar-container.horizontal {\\r\\n    bottom: -2px;\\r\\n}\\r\\n\\r\\n.absol-tabbar .absol-scrollbar-container {\\r\\n    opacity: 0;\\r\\n    transition: opacity 0.2s;\\r\\n    background: rgba(169, 169, 169, 0.1);\\r\\n}\\r\\n\\r\\n.absol-tabbar:hover .absol-scrollbar-container,\\r\\n.absol-tabbar:active .absol-scrollbar-container {\\r\\n    opacity: 1;\\r\\n}\\r\\n\\r\\n.absol-tabbar .absol-scrollbar-button {\\r\\n    background-color: rgba(33, 33, 40, 0.1);\\r\\n}\\r\\n\\r\\n.absol-tabbar .absol-scrollbar-button:hover {\\r\\n    background-color: rgba(33, 33, 40, 0.3);\\r\\n}\\r\\n\\r\\n\\r\\n.absol-tabbar .absol-scrollbar-button:active,\\r\\n.absol-tabbar .absol-hscrollbar.absol-active .absol-scrollbar-button {\\r\\n    background-color: rgba(47, 47, 55, 0.4);\\r\\n\\r\\n}\\r\\n\\r\\n\\r\\n.absol-tabbar-button {\\r\\n    padding-left: 1em;\\r\\n    padding-right: 1em;\\r\\n    background-color: rgb(45, 45, 45);\\r\\n    color: rgb(200, 200, 200);\\r\\n    margin-right: 1px;\\r\\n    border: none;\\r\\n    outline: none;\\r\\n    font-size: 1em;\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n.as-tab-bar-add-btn {\\r\\n    padding-left: 0.5em;\\r\\n    padding-right: 0.5em;\\r\\n    background-color: rgb(45, 45, 45);\\r\\n    color: rgb(200, 200, 200);\\r\\n    margin-right: 1px;\\r\\n    border: none;\\r\\n    outline: none;\\r\\n    font-size: 1em;\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n\\r\\n.as-tab-bar-button-ext-icon-ctn:empty {\\r\\n    display: none\\r\\n}\\r\\n\\r\\n.as-tab-bar-button-ext-icon-ctn {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    padding-right: 0.35em;\\r\\n    margin-left: -0.5em;\\r\\n}\\r\\n\\r\\n.absol-tabbar-button-text {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    max-width: 300px;\\r\\n    overflow: hidden;\\r\\n    text-overflow: ellipsis;\\r\\n}\\r\\n\\r\\n.as-tab-bar-button-ext-icon-ctn span {\\r\\n    font-size: 1.2em;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-tabbar .absol-tabbar-button-active {\\r\\n    background-color: rgb(30, 30, 30);\\r\\n    color: rgb(250, 250, 252);\\r\\n}\\r\\n\\r\\n.absol-tabbar-button-text,\\r\\n.absol-tabbar-button-icon-container > span {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    font-size: 1em;\\r\\n}\\r\\n\\r\\n.absol-tabbar-button .absol-tabbar-button-close,\\r\\n.absol-tabbar-button .absol-tabbar-button-close-circle {\\r\\n    visibility: hidden;\\r\\n    color: rgb(190, 190, 190);\\r\\n}\\r\\n\\r\\n.absol-tabbar-button.as-prevent-closing .absol-tabbar-button-close,\\r\\n.absol-tabbar-button.as-prevent-closing .absol-tabbar-button-close-circle {\\r\\n    visibility: hidden;\\r\\n}\\r\\n\\r\\n.absol-tabbar-button.as-prevent-closing .absol-tabbar-button-icon-container {\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n.absol-tabbar-button-icon-container {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    margin-left: 0.5em;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-tabbar-button:not(.as-prevent-closing):hover .absol-tabbar-button-close,\\r\\n.absol-tabbar-button-active:not(.as-prevent-closing) .absol-tabbar-button-close,\\r\\n.absol-tabbar-button:hover:not(.as-prevent-closing) .absol-tabbar-button-close-circle,\\r\\n.absol-tabbar-button-active:not(.as-prevent-closing) .absol-tabbar-button-close-circle {\\r\\n    visibility: visible;\\r\\n    color: red;\\r\\n}\\r\\n\\r\\n.absol-tabbar-button-active .absol-tabbar-button-modified-flag {\\r\\n    color: lightblue;\\r\\n}\\r\\n\\r\\n.absol-tabbar-button-modified-flag {\\r\\n    color: mediumaquamarine;\\r\\n}\\r\\n\\r\\n.absol-tabbar-button:not(.absol-tabbar-button-modified) .absol-tabbar-button-modified-flag,\\r\\n.absol-tabbar-button.absol-tabbar-button-modified:not(.active) .absol-tabbar-button-icon-container:hover .absol-tabbar-button-modified-flag,\\r\\n.absol-tabbar-button.absol-tabbar-button-modified .absol-tabbar-button-icon-container:not(:hover) .absol-tabbar-button-close,\\r\\n.absol-tabbar-button:not(.absol-tabbar-button-modified) .absol-tabbar-button-icon-container:not(:hover) .absol-tabbar-button-close-circle,\\r\\n.absol-tabbar-button:not(.absol-tabbar-button-modified) .absol-tabbar-button-icon-container:hover .absol-tabbar-button-close,\\r\\n.absol-tabbar-button.absol-tabbar-button-modified .absol-tabbar-button-close-circle,\\r\\n.absol-tabbar-button.absol-tabbar-button-modified .absol-tabbar-button-icon-container:not(:hover) .absol-tabbar-button-close {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-button-range {\\r\\n}\\r\\n\\r\\n\\r\\n.absol-tabview {\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-tabview-container {\\r\\n    position: absolute;\\r\\n    top: 2em;\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n    bottom: 0;\\r\\n    overflow: auto;\\r\\n    background-color: white;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-tabview-container.absol-tabview-container-hidden {\\r\\n    z-index: -9999;\\r\\n    visibility: hidden;\\r\\n    opacity: 0;\\r\\n\\r\\n}\\r\\n\\r\\n.absol-tabview-container.absol-tabview-container-hidden *,\\r\\n.absol-tabview-container.absol-tabview-container-hidden {\\r\\n    pointer-events: none;\\r\\n    user-select: none;\\r\\n    -webkit-user-select: none;\\r\\n    -moz-user-select: none;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-tabview-container > div,\\r\\n.absol-tabview-container > pre {\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.absol-tabview-container > pre {\\r\\n    margin: 0;\\r\\n}\\r\\n\\r\\n.absol-frame > iframe {\\r\\n    border: none;\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.absol-tabview .absol-tabbar-button {\\r\\n    border-radius: 0.7em 0.7em 0 0;\\r\\n    height: 2em;\\r\\n    box-sizing: border-box;\\r\\n    border: solid 1px #ccc;\\r\\n    background-color: white;\\r\\n    color: black;\\r\\n    padding-left: 1em;\\r\\n    padding-right: 0.357em;\\r\\n    margin-right: 0.357em;\\r\\n}\\r\\n\\r\\n.absol-tabview .as-tab-bar-add-btn {\\r\\n    border-radius: 0.7em 0.7em 0 0;\\r\\n    height: 2em;\\r\\n    box-sizing: border-box;\\r\\n    border: solid 1px #ccc;\\r\\n    background-color: white;\\r\\n    color: black;\\r\\n}\\r\\n\\r\\n.absol-tabview .absol-tabbar {\\r\\n    height: 2em;\\r\\n    overflow-y: hidden;\\r\\n    border-bottom: 1px solid #ccc;\\r\\n    box-sizing: border-box;\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n}\\r\\n\\r\\n.absol-tabview .absol-tabbar-button-active {\\r\\n    background-color: #5bc0de;\\r\\n    border-color: #46b8da;\\r\\n    color: white;\\r\\n}\\r\\n\\r\\n/* .absol-tabview .absol-tabbar-button-close {\\r\\n    color: rgb(170, 170, 170);\\r\\n    line-height: 1.5em;\\r\\n    margin-left: 1em;\\r\\n    font-size: 1.3em;\\r\\n} */\\r\\n\\r\\n.absol-tabview .absol-tabbar-button-close:hover {\\r\\n    color: red;\\r\\n}\\r\\n\\r\\n\\r\\n/************** Mini version - like window form ***********************/\\r\\n\\r\\n.absol-tabview.xp-tiny .absol-tabbar {\\r\\n    height: 1.5em;\\r\\n    border-bottom: none;\\r\\n}\\r\\n\\r\\n.absol-tabview.xp-tiny .absol-tabbar-button,\\r\\n.absol-tabview.xp-tiny .as-tab-bar-add-btn {\\r\\n    height: 1.4em;\\r\\n    padding-left: 5px;\\r\\n    padding-right: 5px;\\r\\n    border-radius: 0;\\r\\n    vertical-align: bottom;\\r\\n    margin: 0.1em 0 0 0;\\r\\n    background-color: rgb(242, 242, 242);\\r\\n    color: black;\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n.absol-tabview.xp-tiny::before {\\r\\n    content: \\\"\\\";\\r\\n    position: absolute;\\r\\n    top: calc(1.5em - 4px);\\r\\n    z-index: 0;\\r\\n    left: 0;\\r\\n    right: 0;\\r\\n    height: 4px;\\r\\n    border-bottom: solid 1px #ccc;\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.absol-tabview.xp-tiny .absol-tabbar-button.absol-tabbar-button-active {\\r\\n    height: 1.5em;\\r\\n    margin-top: 0;\\r\\n    background-color: white;\\r\\n    border-top-color: #ccc;\\r\\n    border-left-color: #ccc;\\r\\n    border-right-color: #ccc;\\r\\n    border-bottom-color: white;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-hscroller.absol-tabbar.disabled .absol-scrollbar-container {\\r\\n    visibility: hidden;\\r\\n}\\r\\n\\r\\n.absol-tabview.absol-tabview.xp-tiny .absol-tabbar-button-close {\\r\\n    line-height: 1.4em;\\r\\n}\\r\\n\\r\\n.absol-tabview.xp-tiny .absol-tabbar-button-icon-container {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.absol-tabview.xp-tiny .absol-tabview-container {\\r\\n    top: 1.5em;\\r\\n}\\r\\n\\r\\n.absol-tabview.xp-tiny .absol-tab-absol {\\r\\n    border-left: solid 1px #ccc;\\r\\n    border-right: solid 1px #ccc;\\r\\n    border-bottom: solid 1px #ccc;\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-tabview.as-without-close-button > .absol-tabbar .absol-tabbar-button .absol-tabbar-button-icon-container {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.absol-tabview.as-without-close-button > .absol-tabbar .absol-tabbar-button {\\r\\n    padding-right: 1em;\\r\\n}\\r\\n\\r\\n.absol-tabview > .absol-tabbar .as-tab-bar-add-btn {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.absol-tabview.as-has-add-btn > .absol-tabbar .as-tab-bar-add-btn {\\r\\n    display: inline-block;\\r\\n}\\r\\n\\r\\n\\r\\n/************************ Like Metro theme *********************/\\r\\n\\r\\n.absol-tabview.metro-flat > .absol-tabbar .absol-tabbar-button,\\r\\n.absol-tabview.metro-flat > .absol-tabbar .as-tab-bar-add-btn {\\r\\n    border-radius: 0;\\r\\n    margin-right: 0;\\r\\n    margin-left: 0;\\r\\n    border-left: none;\\r\\n    border-top: none;\\r\\n    border-bottom: none;\\r\\n    border-right: solid 1px rgba(169, 169, 169, 0.3);\\r\\n    font-size: 1em;\\r\\n}\\r\\n\\r\\n.absol-tabview.metro-flat > .absol-tabbar {\\r\\n    box-shadow: 0px -1px 0px 0px #ccc;\\r\\n}\\r\\n\\r\\n/************************ Round Out theme *********************/\\r\\n\\r\\n/*.absol-tabview.rond-out > .absol-tabbar .absol-tabbar-button*/\\r\\n\\r\\n.absol-tabview.cad-dark > .absol-tabbar {\\r\\n    border-bottom: calc(0.1em + 1px) solid #3B4453;;\\r\\n}\\r\\n\\r\\n.absol-tabview.cad-dark > .absol-tabview-container {\\r\\n    top: 2.1em;\\r\\n}\\r\\n\\r\\n.absol-tabview.cad-dark > .absol-tabbar {\\r\\n    height: 2.1em;\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.absol-tabview.cad-dark > .absol-tabbar .absol-tabbar-button.absol-tabbar-button-active {\\r\\n    background-color: #3B4453;\\r\\n    color: white;\\r\\n}\\r\\n\\r\\n.absol-tabview.cad-dark > .absol-tabbar .absol-tabbar-button {\\r\\n    background-color: #313946;\\r\\n    color: rgb(169, 169, 170);\\r\\n\\r\\n}\\r\\n\\r\\n.absol-tabview.cad-dark > .absol-tabbar .absol-tabbar-button::before,\\r\\n.absol-tabview.cad-dark > .absol-tabbar .absol-tabbar-button::after {\\r\\n    content: \\\"\\\";\\r\\n    position: absolute;\\r\\n    bottom: 0;\\r\\n    width: 1em;\\r\\n    height: 1em;\\r\\n    z-index: 1;\\r\\n    background-size: cover;\\r\\n    background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMTYiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDguNDY2NjY2NCA0LjIzMzMzMzUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiA8ZyBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyIj4KICA8cGF0aCB0cmFuc2Zvcm09Im1hdHJpeCguMTMzOTAzNjQgMCAwIC4yNzU0NTg5MSAtLjAzMjY2NDYxIC0uMDgwNjM0OTIpIiBkPSJNIDMxLjg1ODcxNiwwLjI5MjcyOTQxIFYgMTUuNjYxMDIzIEggMC4yNDM5NDExNyBDIDE1LjI0NzAyOCwxNS43NzU5MjkgMzEuMzU0NDkzLDExLjExODk1NiAzMS44NTg3MTYsMC4yOTI3Mjk0MSBaIiBzdHlsZT0icGFpbnQtb3JkZXI6ZmlsbCBtYXJrZXJzIHN0cm9rZTtmaWxsOiMzMTM5NDYiLz4KICA8cGF0aCB0cmFuc2Zvcm09Im1hdHJpeCgtLjEzMzkwMzY0IDAgMCAuMjc1NDU4OTEgOC40OTkzMzE1IC0uMDgwNjM0OTIpIiBkPSJNIDMxLjg1ODcxNiwwLjI5MjcyOTQxIFYgMTUuNjYxMDIzIEggMC4yNDM5NDExNyBDIDE1LjI0NzAyOCwxNS43NzU5MjkgMzEuMzU0NDkzLDExLjExODk1NiAzMS44NTg3MTYsMC4yOTI3Mjk0MSBaIiBzdHlsZT0icGFpbnQtb3JkZXI6ZmlsbCBtYXJrZXJzIHN0cm9rZTtmaWxsOiMzMTM5NDYiLz4KIDwvZz4KPC9zdmc+Cg==');\\r\\n}\\r\\n\\r\\n.absol-tabview.cad-dark > .absol-tabbar .absol-tabbar-button.absol-tabbar-button-active::before,\\r\\n.absol-tabview.cad-dark > .absol-tabbar .absol-tabbar-button.absol-tabbar-button-active::after,\\r\\n.absol-tabview.cad-dark > .absol-tabbar .absol-tabbar-button.absol-tabbar-button-active {\\r\\n    z-index: 3;\\r\\n}\\r\\n\\r\\n.absol-tabview.cad-dark > .absol-tabbar .absol-tabbar-button.absol-tabbar-button-active::before,\\r\\n.absol-tabview.cad-dark > .absol-tabbar .absol-tabbar-button.absol-tabbar-button-active::after {\\r\\n    background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMTYiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDguNDY2NjY2NCA0LjIzMzMzMzUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiA8ZyBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyIj4KICA8cGF0aCB0cmFuc2Zvcm09Im1hdHJpeCguMTMzOTAzNjQgMCAwIC4yNzU0NTg5MSAtLjAzMjY2NDYxIC0uMDgwNjM0OTIpIiBkPSJNIDMxLjg1ODcxNiwwLjI5MjcyOTQxIFYgMTUuNjYxMDIzIEggMC4yNDM5NDExNyBDIDE1LjI0NzAyOCwxNS43NzU5MjkgMzEuMzU0NDkzLDExLjExODk1NiAzMS44NTg3MTYsMC4yOTI3Mjk0MSBaIiBzdHlsZT0icGFpbnQtb3JkZXI6ZmlsbCBtYXJrZXJzIHN0cm9rZTtmaWxsOiMzQjQ0NTMiLz4KICA8cGF0aCB0cmFuc2Zvcm09Im1hdHJpeCgtLjEzMzkwMzY0IDAgMCAuMjc1NDU4OTEgOC40OTkzMzE1IC0uMDgwNjM0OTIpIiBkPSJNIDMxLjg1ODcxNiwwLjI5MjcyOTQxIFYgMTUuNjYxMDIzIEggMC4yNDM5NDExNyBDIDE1LjI0NzAyOCwxNS43NzU5MjkgMzEuMzU0NDkzLDExLjExODk1NiAzMS44NTg3MTYsMC4yOTI3Mjk0MSBaIiBzdHlsZT0icGFpbnQtb3JkZXI6ZmlsbCBtYXJrZXJzIHN0cm9rZTtmaWxsOiMzQjQ0NTMiLz4KIDwvZz4KPC9zdmc+Cg==');\\r\\n}\\r\\n\\r\\n\\r\\n.absol-tabview.cad-dark > .absol-tabbar .absol-tabbar-button {\\r\\n    position: relative;\\r\\n    margin-right: 0;\\r\\n    border: none;\\r\\n    border-radius: 0.8em 0.8em 0 0;\\r\\n}\\r\\n\\r\\n.absol-tabview.cad-dark > .absol-tabbar .absol-hscroller-viewport {\\r\\n    padding-left: 1.2em;\\r\\n}\\r\\n\\r\\n.absol-tabview.cad-dark > .absol-tabbar .absol-tabbar-button::before {\\r\\n    left: -0.98em;\\r\\n    background-position: left;\\r\\n}\\r\\n\\r\\n.absol-tabview.cad-dark > .absol-tabbar .absol-tabbar-button::after {\\r\\n    right: -0.98em;\\r\\n    background-position: right;\\r\\n\\r\\n}\\r\\n\\r\\n.absol-tabview.cad-dark > .absol-tabbar .as-tab-bar-add-btn {\\r\\n    background-color: #313946;\\r\\n    color: rgb(169, 169, 170);\\r\\n    font-weight: bold;\\r\\n    border: 4px solid #222933;\\r\\n    border-radius: 0.8em 0.8em 0 0.8em;\\r\\n}\\r\\n\\r\\n.absol-tabview.cad-dark > .absol-tabbar .as-tab-bar-add-btn:active {\\r\\n    color: white;\\r\\n    background-color: #3B4453;\\r\\n    font-weight: bold;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/tabview.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/textarea2.css":
/*!**********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/textarea2.css ***!
  \**********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-textarea2 {\\r\\n    overflow: hidden;\\r\\n    resize: none;\\r\\n    box-sizing: border-box;\\r\\n    --content-height: 1.425em;\\r\\n    height: var(--content-height);\\r\\n    font: inherit;\\r\\n}\\r\\n\\r\\n.absol-textarea2.as-border-none {\\r\\n    border: none;\\r\\n    outline: none;\\r\\n}\\r\\n\\r\\n.absol-textarea2:disabled {\\r\\n    background-color: var(--as-disabled-background-color);\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/textarea2.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/textclipboard.css":
/*!**************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/textclipboard.css ***!
  \**************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-text-clipboard {\\r\\n    opacity: 0;\\r\\n    font-size: 1px;\\r\\n    height: 1px;\\r\\n    width: 1px;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/textclipboard.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/timeinput.css":
/*!**********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/timeinput.css ***!
  \**********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".ac-time-input {\\r\\n    box-sizing: border-box;\\r\\n    height: calc(2em + 2px);\\r\\n    width: 9em;\\r\\n    border: solid 1px #d6d6d6;\\r\\n    border-radius: 2px;\\r\\n    font-size: 1rem;\\r\\n    outline: none;\\r\\n    font-family: \\\"Helvetica Neue\\\", Arial, Helvetica, sans-serif;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    background-color: white;\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n.ac-time-input.as-disabled {\\r\\n    color: rgb(102, 102, 102);\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n.ac-time-input.as-must-not-null .as-time-input-clear-btn {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.ac-time-input.as-read-only.as-border-none {\\r\\n    border: none;\\r\\n}\\r\\n\\r\\n.ac-time-input.as-read-only.as-border-none .as-time-input-icon-btn {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.ac-time-input.as-read-only.as-border-none input {\\r\\n    padding-left: 0;\\r\\n}\\r\\n\\r\\n.ac-time-input input {\\r\\n    font: inherit;\\r\\n    outline: none;\\r\\n    width: calc(100% - 2em - 2px);\\r\\n    height: 100%;\\r\\n    border: none;\\r\\n    display: block;\\r\\n    padding: 0 0 0 var(--as-input-horizontal-padding);\\r\\n    -webkit-user-select: auto;\\r\\n    user-select: auto;\\r\\n    -webkit-user-drag: none;\\r\\n    color: inherit;\\r\\n    box-sizing: border-box;\\r\\n    background-color: transparent;\\r\\n}\\r\\n\\r\\n.ac-time-input.as-disabled {\\r\\n    background-color: var(--as-disabled-background-color);\\r\\n}\\r\\n\\r\\n.as-time-input-icon-btn {\\r\\n    border-right: none;\\r\\n    border-top: none;\\r\\n    border-bottom: none;\\r\\n    border-left: 1px solid #ddd;\\r\\n    position: absolute;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    right: 0;\\r\\n    width: calc(2em + 1px);\\r\\n    box-sizing: border-box;\\r\\n    background-color: rgba(169, 169, 169, 0.1);\\r\\n    cursor: pointer;\\r\\n    border-radius: 0;\\r\\n    font-size: inherit;\\r\\n    color: inherit;\\r\\n}\\r\\n\\r\\n.ac-time-input.as-read-only .as-time-input-icon-btn {\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n\\r\\n.as-time-input-icon-btn > span {\\r\\n    font-size: calc(16em / 14);\\r\\n}\\r\\n\\r\\n\\r\\n.as-time-input-icon-btn:hover {\\r\\n    background-color: rgba(169, 169, 169, 0.25);\\r\\n}\\r\\n\\r\\n.as-time-input-icon-btn:active {\\r\\n    background-color: rgba(169, 169, 169, 0.5);\\r\\n}\\r\\n\\r\\n\\r\\n.as-time-input-icon-btn.as-disabled {\\r\\n    color: rgb(102, 102, 102);\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n\\r\\n.as-time-input-clear-btn {\\r\\n    font-size: inherit;\\r\\n    position: absolute;\\r\\n    right: calc(2em + 2px);\\r\\n    height: 2em;\\r\\n    top: calc(50% - 1em);\\r\\n    box-sizing: border-box;\\r\\n    background-color: transparent;\\r\\n    border: none;\\r\\n    color: #bbb;\\r\\n    visibility: hidden;\\r\\n}\\r\\n\\r\\n\\r\\n.ac-time-input.as-value-null .as-time-input-clear-btn {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-time-input-clear-btn:hover {\\r\\n    color: rgb(132, 132, 132);\\r\\n}\\r\\n\\r\\n.as-time-input-clear-btn:active {\\r\\n    color: #525555;\\r\\n}\\r\\n\\r\\ninput:focus + .as-time-input-clear-btn,\\r\\n.ac-time-input .as-time-input-clear-btn {\\r\\n    visibility: visible;\\r\\n}\\r\\n\\r\\n.as-dropdown-box-common-style .as-time-input-picker {\\r\\n    border: none;\\r\\n    box-shadow: none;\\r\\n}\\r\\n\\r\\n\\r\\n/*.ac-time-input-picker-ctn {*/\\r\\n/*    position: fixed;*/\\r\\n/*}*/\\r\\n\\r\\n/*.ac-time-input > span {*/\\r\\n/*    font-size: 1em;*/\\r\\n/*    line-height: 2em;*/\\r\\n/*}*/\\r\\n\\r\\n/*.ac-time-input-picker-ctn-hidden {*/\\r\\n/*    z-index: -1000;*/\\r\\n/*    opacity: 0;*/\\r\\n/*    visibility: hidden;*/\\r\\n/*}*/\\r\\n\\r\\n/*.ac-time-input-picker-ctn-hidden:not(.absol-follower) {*/\\r\\n/*    transition: all 0.1s;*/\\r\\n/*}*/\\r\\n\\r\\n/*.ac-time-input.as-disabled {*/\\r\\n/*    color: rgb(102, 102, 102);*/\\r\\n/*    pointer-events: none;*/\\r\\n/*}*/\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/timeinput.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/timepicker.css":
/*!***********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/timepicker.css ***!
  \***********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".ac-time-picker {\\r\\n    /*like chrome-calender*/\\r\\n    display: inline-block;\\r\\n    font-family: Arial, Helvetica, sans-serif;\\r\\n    font-size: 1rem;\\r\\n    padding: 0.6em;\\r\\n    border: solid 1px rgb(191, 191, 191);\\r\\n    box-shadow: 1px 1px 2px rgb(240, 240, 240);\\r\\n    z-index: 100;\\r\\n    touch-action: manipulation;\\r\\n    user-select: none;\\r\\n    background-color: rgb(255, 255, 255);\\r\\n    white-space: initial;\\r\\n}\\r\\n\\r\\n\\r\\n@media screen and (orientation: portrait) {\\r\\n    .ac-time-picker.ac-time-picker-touch {\\r\\n        font-size: 5vw;\\r\\n    }\\r\\n}\\r\\n\\r\\n@media screen and (orientation: landscape) {\\r\\n    .ac-time-picker.ac-time-picker-touch {\\r\\n        font-size: 4vh;\\r\\n    }\\r\\n}\\r\\n\\r\\n\\r\\n.ac-time-picker:not(.ac-time-picker-clock-mode) .ac-time-picker-set-clock,\\r\\n.ac-time-picker:not(.ac-time-picker-clock-mode) .ac-time-picker-keyboard-btn,\\r\\n.ac-time-picker:not(.ac-time-picker-touch) .ac-time-picker-keyboard-btn,\\r\\n.ac-time-picker:not(.ac-time-picker-time-mode) .ac-time-picker-set-time,\\r\\n.ac-time-picker:not(.ac-time-picker-time-mode) .ac-time-picker-clock-btn {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.ac-time-picker-set-clock-header {\\r\\n    font-size: 2.8em;\\r\\n    text-align: center;\\r\\n    min-width: 4.28571428571em;\\r\\n    font-weight: bold;\\r\\n\\r\\n}\\r\\n\\r\\n.ac-time-picker-set-clock-header > span {\\r\\n    font-size: inherit;\\r\\n}\\r\\n\\r\\n.ac-time-picker-clock {\\r\\n    width: 12em;\\r\\n    height: 12em;\\r\\n}\\r\\n\\r\\n.ac-time-picker-clock-hour-pm {\\r\\n    fill: rgb(20, 20, 20);\\r\\n    font-size: 0.7em;\\r\\n}\\r\\n\\r\\n\\r\\n.ac-time-picker-clock-hour-am {\\r\\n    fill: black;\\r\\n    font-size: 0.8em;\\r\\n}\\r\\n\\r\\n.ac-time-picker-clock-minute {\\r\\n    fill: black;\\r\\n    font-size: 0.8em;\\r\\n}\\r\\n\\r\\n\\r\\n.ac-time-picker-clock-center,\\r\\n.ac-time-picker-clock-select-circle {\\r\\n    fill: rgb(115, 166, 248);\\r\\n}\\r\\n\\r\\n.ac-time-picker-clock-select-center {\\r\\n    fill: white;\\r\\n}\\r\\n\\r\\n.ac-time-picker-clock-select-line {\\r\\n    stroke-width: 1;\\r\\n    stroke: rgb(115, 166, 248);\\r\\n}\\r\\n\\r\\n\\r\\n.ac-time-picker-hour,\\r\\n.ac-time-picker-minute {\\r\\n    outline: none;\\r\\n}\\r\\n\\r\\n.ac-time-picker-edit-hour .ac-time-picker-hour,\\r\\n.ac-time-picker-edit-minute .ac-time-picker-minute {\\r\\n    color: rgb(62, 125, 189);\\r\\n}\\r\\n\\r\\n.ac-time-picker:not(.ac-time-picker-edit-hour) .ac-time-picker-clock-hour-ctn,\\r\\n.ac-time-picker:not(.ac-time-picker-edit-minute) .ac-time-picker-clock-minute-ctn {\\r\\n    visibility: hidden;\\r\\n}\\r\\n\\r\\n.ac-time-picker:not(.ac-time-picker-edit-hour):not(.ac-time-picker-edit-minute) .ac-time-picker-clock {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.ac-time-picker-hour:empty::before,\\r\\n.ac-time-picker-minute:empty::before {\\r\\n    content: \\\"0\\\";\\r\\n    display: inline;\\r\\n}\\r\\n\\r\\n.ac-time-picker-footer {\\r\\n    display: block;\\r\\n    position: relative;\\r\\n    min-height: 1.5em;\\r\\n    min-width: 12em;\\r\\n}\\r\\n\\r\\n.ac-time-picker-footer-right {\\r\\n    position: absolute;\\r\\n    right: 0;\\r\\n    top: 0;\\r\\n}\\r\\n\\r\\n.ac-time-picker-footer button {\\r\\n    font-size: 1em;\\r\\n    height: 1.5em;\\r\\n    padding-top: 0;\\r\\n    padding-bottom: 0;\\r\\n    border: none;\\r\\n    background-color: transparent;\\r\\n    outline: none;\\r\\n    padding-left: 0.3em;\\r\\n    padding-right: 0.3em;\\r\\n}\\r\\n\\r\\n.ac-time-picker-footer button:hover,\\r\\n.ac-time-picker-footer button:focus {\\r\\n    background-color: rgba(170, 170, 170, 0.3);\\r\\n}\\r\\n\\r\\n.ac-time-picker-footer > button {\\r\\n    margin-right: 1em;\\r\\n}\\r\\n\\r\\n.ac-time-picker-footer-right > button {\\r\\n    margin-left: 1em;\\r\\n}\\r\\n\\r\\n\\r\\n.ac-time-picker-footer button .mdi {\\r\\n    font-size: 1.3em;\\r\\n}\\r\\n\\r\\n\\r\\n/* .ac-time-picker:not(.ac-time-picker-touch) .ac-time-picker-keyboard-btn {\\r\\n    display: none;\\r\\n} */\\r\\n\\r\\n/* keyboard-outline */\\r\\n\\r\\n.ac-time-picker-set-time-header {\\r\\n    font-size: 1.4em;\\r\\n    font-weight: bold;\\r\\n    margin-bottom: 1em;\\r\\n}\\r\\n\\r\\n.ac-time-picker-set-time-label {\\r\\n    font-size: 1em;\\r\\n    font-weight: bold;\\r\\n    margin-bottom: 0.3em;\\r\\n}\\r\\n\\r\\n.ac-time-picker-set-time-input-group {\\r\\n    margin-bottom: 0.3em;\\r\\n    font-size: 1em;\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n.ac-time-picker-set-time-input-hm > input {\\r\\n    height: 1.2em;\\r\\n    line-height: 1.2em;\\r\\n    width: 2em;\\r\\n    text-align: center;\\r\\n    font-size: 1em;\\r\\n    border-top: none;\\r\\n    border-left: none;\\r\\n    border-right: none;\\r\\n    border-bottom: 1px solid rgb(70, 70, 72);\\r\\n    outline: none;\\r\\n}\\r\\n\\r\\n.ac-time-picker-set-time-input-label-hm {\\r\\n    font-size: 1em;\\r\\n    white-space: nowrap;\\r\\n\\r\\n}\\r\\n\\r\\n.ac-time-picker-set-time-input-label-hm span {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    font-size: 1em;\\r\\n\\r\\n}\\r\\n\\r\\n\\r\\n.ac-time-picker-set-time-input-label-hm > span:first-child {\\r\\n    width: 2em;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/timepicker.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/timerange24input.css":
/*!*****************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/timerange24input.css ***!
  \*****************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-time-range-24-input {\\r\\n    white-space: nowrap;\\r\\n    display: inline-block;\\r\\n    min-width: 318px;\\r\\n}\\r\\n\\r\\n.as-time-range-24-input > div:first-child {\\r\\n    margin-right: 10px;\\r\\n}\\r\\n\\r\\n\\r\\n.as-time-range-24-input.as-read-only.as-border-none .ac-time-input {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-time-range-24-input.as-read-only.as-border-none::after{\\r\\n    content: attr(data-text);\\r\\n    vertical-align: middle;\\r\\n    display: inline-block;\\r\\n}\\r\\n\\r\\n.as-time-range-24-input.as-read-only.as-border-none::before{\\r\\n    content: \\\"\\\";\\r\\n    vertical-align: middle;\\r\\n    display: inline-block;\\r\\n    height: calc(2em + 2px);\\r\\n}\\r\\n\\r\\n\\r\\n.as-chrome-time-24-picker-follower .as-chrome-time-24-picker {\\r\\n    border: none;\\r\\n    box-shadow: none;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/timerange24input.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/timeselectinput.css":
/*!****************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/timeselectinput.css ***!
  \****************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-time-select-input {\\r\\n    display: inline-block;\\r\\n    position: relative;\\r\\n    height: calc(2em + 2px);\\r\\n    border: solid 1px #d6d6d6;\\r\\n    border-radius: 2px;\\r\\n    box-sizing: border-box;\\r\\n    cursor: pointer;\\r\\n    font-size: 1rem;\\r\\n    outline: none;\\r\\n    font-family: \\\"Helvetica Neue\\\", Arial, Helvetica, sans-serif;\\r\\n    white-space: nowrap;\\r\\n    padding-right: 30px;\\r\\n    --list-min-width: unset;\\r\\n    width: calc(var(--list-min-width) + 2em + 2px);\\r\\n    min-width: calc(var(--list-min-width) + 2em + 2px);\\r\\n}\\r\\n\\r\\n.as-time-select-input.as-disabled {\\r\\n    pointer-events: none;\\r\\n    background-color: #ebebe4;\\r\\n}\\r\\n\\r\\n.as-time-select-input-text {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    height: 100%;\\r\\n    width: 100%;\\r\\n    outline: none;\\r\\n    border: none;\\r\\n    box-sizing: border-box;\\r\\n    padding-left: 10px;\\r\\n    padding-right: 0;\\r\\n    background-color: transparent;\\r\\n    font-size: inherit;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/timeselectinput.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/toast.css":
/*!******************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/toast.css ***!
  \******************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-toast-list {\\r\\n    position: fixed;\\r\\n    z-index: 1100000000;\\r\\n    width: 25em;\\r\\n    max-height: calc(100vh - 20px);\\r\\n    overflow-y: auto;\\r\\n}\\r\\n\\r\\n.as-toast-list > .as-toast {\\r\\n    box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.35);\\r\\n}\\r\\n\\r\\n\\r\\n.as-toast-list.as-se {\\r\\n    bottom: 10px;\\r\\n    right: 10px;\\r\\n}\\r\\n\\r\\n.as-toast-list.as-sw {\\r\\n    bottom: 10px;\\r\\n    left: 10px;\\r\\n}\\r\\n\\r\\n.as-toast-list.as-ne {\\r\\n    top: 10px;\\r\\n    right: 10px;\\r\\n}\\r\\n\\r\\n.as-toast-list.as-nw {\\r\\n    top: 10px;\\r\\n    left: 10px;\\r\\n}\\r\\n\\r\\n\\r\\n.as-toast-list.as-sc {\\r\\n    bottom: 10px;\\r\\n    left: calc(50% - 177px);\\r\\n}\\r\\n\\r\\n.as-toast-list:empty {\\r\\n    visibility: hidden;\\r\\n}\\r\\n\\r\\n.as-toast-list.as-ne > .as-toast,\\r\\n.as-toast-list.as-nw > .as-toast {\\r\\n    margin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.as-toast-list.as-sc > .as-toast,\\r\\n.as-toast-list.as-se > .as-toast,\\r\\n.as-toast-list.as-sw > .as-toast {\\r\\n    margin-top: 5px;\\r\\n}\\r\\n\\r\\n\\r\\n.as-toast {\\r\\n    display: block;\\r\\n    max-width: calc(100vw - 20px);\\r\\n    overflow: hidden;\\r\\n    background-color: white;\\r\\n    background-clip: padding-box;\\r\\n    border: 1px solid rgba(0, 0, 0, 0.1);\\r\\n    font-family: Roboto, sans-serif;\\r\\n    font-size: 1rem;\\r\\n}\\r\\n\\r\\n.as-toast-header {\\r\\n    display: flex;\\r\\n    display: -ms-flex;\\r\\n    -ms-flex-align: center;\\r\\n    align-items: center;\\r\\n    padding: 0.25em 0.75em;\\r\\n    color: #6c757d;\\r\\n    background-clip: padding-box;\\r\\n    border-bottom: 1px solid rgba(0, 0, 0, 0.05);\\r\\n}\\r\\n\\r\\n.as-toast-header strong {\\r\\n    text-align: left;\\r\\n    margin-right: auto;\\r\\n}\\r\\n\\r\\n.as-toast-variant-color {\\r\\n    margin-right: 0.5em;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    background-color: var(--variant-color-primary);\\r\\n    width: 1.25em;\\r\\n    height: 1.25em;\\r\\n}\\r\\n\\r\\n\\r\\n.as-toast-close-btn {\\r\\n    padding: 0;\\r\\n    background-color: transparent;\\r\\n    border: none;\\r\\n    outline: none;\\r\\n    color: inherit;\\r\\n    margin-left: 0.25em;\\r\\n    margin-bottom: 0.25em;\\r\\n    font-size: inherit;\\r\\n}\\r\\n\\r\\n.as-toast-close-btn:hover {\\r\\n    color: black;\\r\\n}\\r\\n\\r\\n.as-toast-close-btn span {\\r\\n    font-size: 1.5em;\\r\\n    text-shadow: 0 1px 0 currentColor;\\r\\n}\\r\\n\\r\\n.as-toast-body {\\r\\n\\r\\n}\\r\\n\\r\\n.as-toast-message {\\r\\n    padding: 0.75em;\\r\\n}\\r\\n\\r\\n\\r\\n.as-toast.as-not-appeared {\\r\\n    opacity: 0;\\r\\n    transition: opacity 0.2s;\\r\\n}\\r\\n\\r\\n.as-toast.as-not-appeared.as-appearing {\\r\\n    opacity: 1;\\r\\n}\\r\\n\\r\\n.as-toast.as-appeared {\\r\\n    transition: opacity 0.5s;\\r\\n    opacity: 1;\\r\\n}\\r\\n\\r\\n.as-toast.as-disappearing {\\r\\n    opacity: 0;\\r\\n}\\r\\n\\r\\n.as-toast.as-variant-sticky-note {\\r\\n    background-color: #ffff88;\\r\\n}\\r\\n\\r\\n\\r\\n.as-toast.as-variant-sticky-note .as-toast-variant-color,\\r\\n.as-toast.as-variant-background .as-toast-variant-color {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-toast.as-variant-sticky-note .as-toast-title {\\r\\n    color: #1e1ec8;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/toast.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/toclist.css":
/*!********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/toclist.css ***!
  \********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-toc-list {\\r\\n\\r\\n}\\r\\n\\r\\n.as-toc-list.as-searching .as-toc-list-body,\\r\\n.as-toc-list:not(.as-searching) .as-toc-list-searching {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-toc-item {\\r\\n    font-size: 14px;\\r\\n    font-family: Arial, Helvetica, sans-serif;\\r\\n    display: flex;\\r\\n    height: 30px;\\r\\n    align-items: stretch;\\r\\n    --level: 0;\\r\\n}\\r\\n\\r\\n.as-toc-item:not(.as-status-close) .as-toc-item-toggle-ico-ctn .toggle-close,\\r\\n.as-toc-item:not(.as-status-open) .as-toc-item-toggle-ico-ctn .toggle-open {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-toc-item.as-status-none .as-toc-item-toggle-ico-ctn {\\r\\n    visibility: hidden;\\r\\n}\\r\\n\\r\\n.as-toc-item.as-active {\\r\\n    background-color: var(--as-transparent-button-active-color);\\r\\n}\\r\\n\\r\\n\\r\\n.as-toc-item:hover {\\r\\n    background-color: var(--as-transparent-button-hover-color);\\r\\n}\\r\\n\\r\\n.as-toc-item > div {\\r\\n    white-space: nowrap;\\r\\n    width: 30px;\\r\\n}\\r\\n\\r\\n.as-toc-item > div::before,\\r\\n.as-toc-item > div > * {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.as-toc-item > div::before {\\r\\n    content: \\\"\\\";\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n.as-toc-item-name-ctn {\\r\\n    flex-grow: 1;\\r\\n\\r\\n}\\r\\n\\r\\n.as-toc-item-name {\\r\\n    user-select: none;\\r\\n    max-width: 100%;\\r\\n    overflow: hidden;\\r\\n    text-overflow: ellipsis;\\r\\n}\\r\\n\\r\\ndiv.as-toc-item-toggle-ico-ctn {\\r\\n    padding-left: calc(20px * var(--level));\\r\\n    box-sizing: content-box !important;\\r\\n}\\r\\n\\r\\n.as-toc-item-toggle-ico-ctn .toggler-ico {\\r\\n    width: 0.7em;\\r\\n    height: 0.7em;\\r\\n}\\r\\n\\r\\n.as-toc-item-toggle-ico-ctn .toggler-ico path {\\r\\n    fill: rgb(104, 104, 104);\\r\\n}\\r\\n\\r\\n.as-toc-item-ext-icon-ctn:empty {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-toc-item-ext-icon-ctn > img,\\r\\n.as-toc-item-ext-icon-ctn > svg {\\r\\n    width: 20px;\\r\\n    height: 20px;\\r\\n}\\r\\n\\r\\n.as-toc-item-ext-icon-ctn > span {\\r\\n    font-size: 20px;\\r\\n}\\r\\n\\r\\n\\r\\n.as-toc-item-toggle-ico-ctn,\\r\\n.as-toc-item-check-ctn,\\r\\n.as-toc-item-quick-menu-ctn,\\r\\n.as-toc-item-ext-icon-ctn {\\r\\n    text-align: center;\\r\\n    width: 30px;\\r\\n}\\r\\n\\r\\n.as-toc-item-quick-menu-ctn span {\\r\\n    font-size: 20px;\\r\\n}\\r\\n\\r\\n.as-toc-item-quick-menu-ctn button {\\r\\n    border: none;\\r\\n    background-color: transparent;\\r\\n    padding: 0;\\r\\n    width: 24px;\\r\\n    height: 24px;\\r\\n}\\r\\n\\r\\n.as-toc-item-quick-menu-ctn button.as-quick-menu-attached {\\r\\n    background-color: var(--as-transparent-button-active-color);\\r\\n}\\r\\n\\r\\n.as-toc-item-quick-menu-ctn button:hover {\\r\\n    background-color: var(--icon-background-cover-hover);\\r\\n}\\r\\n\\r\\n.as-toc-item:not(.as-has-quick-menu) .as-toc-item-quick-menu-ctn {\\r\\n    visibility: hidden;\\r\\n    pointer-events: none;\\r\\n    opacity: 0;\\r\\n}\\r\\n\\r\\n.as-toc-item-name-ctn input {\\r\\n    font: inherit;\\r\\n    border: none;\\r\\n    /*background-color: transparent;*/\\r\\n    width: 8px;\\r\\n    padding-left: 2px;\\r\\n    padding-right: 2px;\\r\\n    margin-left: -2px;\\r\\n    margin-right: -2px;\\r\\n    outline: none;\\r\\n    box-sizing: content-box;\\r\\n    background-color: #5bc0de;\\r\\n    max-width: 100%;\\r\\n}\\r\\n\\r\\n.as-toc-item:not(.as-renaming) .as-toc-item-name-ctn input,\\r\\n.as-toc-item.as-renaming .as-toc-item-name {\\r\\n    display: none;\\r\\n}\\r\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/toclist.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/tokenfield.css":
/*!***********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/tokenfield.css ***!
  \***********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-token-field {\\r\\n    font-size: 1rem;\\r\\n    border: 1px solid #dddddd;\\r\\n}\\r\\n\\r\\n.as-token-field-input-text {\\r\\n    font: inherit;\\r\\n    padding: 0;\\r\\n    box-sizing: border-box;\\r\\n    min-width: 4.3em;\\r\\n    border: none;\\r\\n    outline: none;\\r\\n    height: var(--select-box-item-height);\\r\\n    line-height: var(--select-box-item-height);\\r\\n    vertical-align: top;\\r\\n    margin-top: 2px;\\r\\n}\\r\\n\\r\\n.absol-selectbox-item.as-token-field-item {\\r\\n    font: inherit;\\r\\n    margin: 2px;\\r\\n    outline: none;\\r\\n}\\r\\n\\r\\n.as-token-field-item:focus {\\r\\n    background-color: var(--select-box-focus-item-color);\\r\\n}\\r\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/tokenfield.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/tokenizeinput.css":
/*!**************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/tokenizeinput.css ***!
  \**************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-tokenize-hyper-input {\\r\\n    margin: 0;\\r\\n    padding: 0;\\r\\n    white-space: pre-wrap;\\r\\n    -moz-user-modify: read-write;\\r\\n    -webkit-user-modify: read-write;\\r\\n    word-break: normal;\\r\\n    font-family: \\\"Helvetica Neue\\\", Arial, Helvetica, sans-serif;\\r\\n}\\r\\n\\r\\n\\r\\n.as-emoji-token{\\r\\n    font-size: inherit;\\r\\n    overflow: hidden;\\r\\n    box-sizing: border-box;\\r\\n    display: inline;\\r\\n    white-space: pre;\\r\\n    background-size: 1.2em;\\r\\n    background-position:left;\\r\\n    background-repeat: no-repeat;\\r\\n}\\r\\n\\r\\n.as-tag-token{\\r\\n    font-size: inherit;\\r\\n    display: inline;\\r\\n    white-space: pre;\\r\\n    font-weight: bold;\\r\\n    color: #1e1ec8;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/tokenizeinput.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/tooltip.css":
/*!********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/tooltip.css ***!
  \********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \":root {\\r\\n    --tool-tip-arrow-pos: 50%;\\r\\n    --tool-tip-background-color: gray;\\r\\n    --tool-tip-text-color: white;\\r\\n}\\r\\n\\r\\n.absol-tooltip {\\r\\n    margin: 0;\\r\\n    position: relative;\\r\\n    box-sizing: border-box;\\r\\n    display: inline-block;\\r\\n    color: var(--tool-tip-text-color);\\r\\n}\\r\\n\\r\\n.absol-tooltip-content {\\r\\n    display: block;\\r\\n    border-radius: 0.25em;\\r\\n    background-color: var(--tool-tip-background-color);\\r\\n    padding: 0.25em 0.5em;\\r\\n    font-size: inherit;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-tooltip-arrow {\\r\\n    width: 0;\\r\\n    height: 0;\\r\\n    position: absolute;\\r\\n    box-sizing: content-box;\\r\\n    font-size: inherit;\\r\\n}\\r\\n\\r\\n.absol-tooltip.top .absol-tooltip-arrow {\\r\\n    border-left: 0.4em solid transparent;\\r\\n    border-right: 0.3em solid transparent;\\r\\n\\r\\n    border-top: 0.3em solid var(--tool-tip-background-color);\\r\\n    bottom: 0;\\r\\n    left: calc(var(--tool-tip-arrow-pos) - 0.3em);\\r\\n}\\r\\n\\r\\n\\r\\n.absol-tooltip.top {\\r\\n    padding-bottom: 0.3em;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-tooltip.bottom .absol-tooltip-arrow {\\r\\n    border-left: 0.3em solid transparent;\\r\\n    border-right: 0.4em solid transparent;\\r\\n    border-bottom: 0.3em solid var(--tool-tip-background-color);\\r\\n\\r\\n    top: 0;\\r\\n    left: calc(var(--tool-tip-arrow-pos) - 0.3em);\\r\\n}\\r\\n\\r\\n.absol-tooltip.bottom {\\r\\n    padding-top: 0.3em;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-tooltip.left .absol-tooltip-arrow {\\r\\n    border-top: 0.3em solid transparent;\\r\\n    border-bottom: 0.4em solid transparent;\\r\\n    border-left: 0.4em solid var(--tool-tip-background-color);\\r\\n\\r\\n    right: 0;\\r\\n    top: calc(var(--tool-tip-arrow-pos) - 0.3em);\\r\\n}\\r\\n\\r\\n.absol-tooltip.left {\\r\\n    padding-right: 0.4em;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-tooltip.right .absol-tooltip-arrow {\\r\\n    border-top: 0.4em solid transparent;\\r\\n    border-bottom: 0.4em solid transparent;\\r\\n    border-right: 0.4em solid var(--tool-tip-background-color);\\r\\n\\r\\n    left: 0;\\r\\n    top: calc(var(--tool-tip-arrow-pos) - 0.3em);\\r\\n}\\r\\n\\r\\n.absol-tooltip.ne .absol-tooltip-arrow {\\r\\n    border-top: 0.3em solid transparent;\\r\\n    border-bottom: 0.4em solid transparent;\\r\\n    border-left: 0.4em solid var(--tool-tip-background-color);\\r\\n    bottom: -0.3em;\\r\\n    left: 0;\\r\\n}\\r\\n\\r\\n.absol-tooltip.nw .absol-tooltip-arrow {\\r\\n    border-top: 0.3em solid transparent;\\r\\n    border-bottom: 0.4em solid transparent;\\r\\n    border-right: 0.4em solid var(--tool-tip-background-color);\\r\\n    bottom: -0.3em;\\r\\n    right: 0;\\r\\n}\\r\\n\\r\\n.absol-tooltip.se .absol-tooltip-arrow {\\r\\n    border-top: 0.3em solid transparent;\\r\\n    border-bottom: 0.4em solid transparent;\\r\\n    border-left: 0.4em solid var(--tool-tip-background-color);\\r\\n    top: -0.3em;\\r\\n    left: 0;\\r\\n}\\r\\n\\r\\n.absol-tooltip.sw .absol-tooltip-arrow {\\r\\n    border-top: 0.3em solid transparent;\\r\\n    border-bottom: 0.4em solid transparent;\\r\\n    border-right: 0.4em solid var(--tool-tip-background-color);\\r\\n    top: -0.25em;\\r\\n    right: 0;\\r\\n}\\r\\n\\r\\n.absol-tooltip.right {\\r\\n    padding-left: 0.4em;\\r\\n}\\r\\n\\r\\n\\r\\n.absol-tooltip-root {\\r\\n    position: relative;\\r\\n    width: 0;\\r\\n    height: 0;\\r\\n}\\r\\n\\r\\n.absol-tooltip-root-holder {\\r\\n    position: fixed;\\r\\n    z-index: 100000000;\\r\\n    left: 0;\\r\\n    top: 0;\\r\\n}\\r\\n\\r\\n.as-copyable-icon-tooltip {\\r\\n    font-size: inherit;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    color: #428bca;\\r\\n    border: none;\\r\\n    padding: 0;\\r\\n    margin: 0;\\r\\n    background-color: transparent;\\r\\n}\\r\\n\\r\\n.as-copyable-icon-tooltip:hover {\\r\\n    background-color: var(--as-transparent-button-hover-color);\\r\\n}\\r\\n\\r\\n.as-copyable-icon-tooltip:active {\\r\\n    background-color: var(--as-transparent-button-active-color);\\r\\n}\\r\\n\\r\\n.as-cit-icon {\\r\\n    font-size: inherit;\\r\\n    color: inherit;\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n.as-cit-icon::before {\\r\\n    display: block;\\r\\n}\\r\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/tooltip.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/trackbar.css":
/*!*********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/trackbar.css ***!
  \*********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-trackbar {\\r\\n    height: 1.2em;\\r\\n    min-width: 7em;\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    -webkit-touch-callout: none;\\r\\n    -webkit-user-select: none;\\r\\n    -khtml-user-select: none;\\r\\n    -moz-user-select: none;\\r\\n    -ms-user-select: none;\\r\\n    user-select: none;\\r\\n    padding: 0 0.6em;\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.absol-trackbar-line {\\r\\n    display: block;\\r\\n    position: relative;\\r\\n    margin-top: 0.4em;\\r\\n    height: 0.4em;\\r\\n    background-color: rgb(200, 200, 200);\\r\\n    -webkit-box-shadow: 0 0 0.2em 0.1em rgb(160, 160, 160) inset;\\r\\n    -moz-box-shadow: 0 0 0.2em 0.1em rgb(160, 160, 160) inset;\\r\\n    box-shadow: 0 0 0.2em 0.1em rgb(160, 160, 160) inset;\\r\\n    border-radius: 0.15em;\\r\\n}\\r\\n\\r\\n.absol-trackbar-button {\\r\\n    position: absolute;\\r\\n    z-index: 1;\\r\\n    top: -0.4em;\\r\\n    /* bottom: -0.4em; */\\r\\n    height: 1.2em;\\r\\n    left: 0;\\r\\n    margin-left: -0.6em;\\r\\n    width: 1.2em;\\r\\n    background: rgb(245, 245, 245);\\r\\n    border-radius: 50%;\\r\\n    border: solid 1px rgb(139, 139, 139);\\r\\n}\\r\\n\\r\\n.absol-trackbar:not(.as-read-only) .absol-trackbar-button,\\r\\n.absol-trackbar:not(.as-read-only) .absol-trackbar-line {\\r\\n    cursor: pointer;\\r\\n}\\r\\n\\r\\n.absol-trackbar.as-disabled {\\r\\n    pointer-events: none;\\r\\n}\\r\\n\\r\\n.absol-trackbar.as-disabled .absol-trackbar-button {\\r\\n    background: rgb(225, 225, 225);\\r\\n    border: solid 1px rgb(200, 200, 200);\\r\\n}\\r\\n\\r\\n.absol-trackbar.as-disabled .absol-trackbar-line {\\r\\n    background-color: rgb(220, 220, 220);\\r\\n    -webkit-box-shadow: 0 0 0.2em 0.1em rgb(200, 200, 200) inset;\\r\\n    -moz-box-shadow: 0 0 0.2em 0.1em rgb(200, 200, 200) inset;\\r\\n    box-shadow: 0 0 0.2em 0.1em rgb(200, 200, 200) inset;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/trackbar.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/trackbarinput.css":
/*!**************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/trackbarinput.css ***!
  \**************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-trackbar-input {\\r\\n    box-sizing: border-box;\\r\\n    display: inline-block;\\r\\n    white-space: nowrap;\\r\\n    position: relative;\\r\\n    min-width: 13.5em;\\r\\n    height: 2em;\\r\\n    --input-width: 4em;\\r\\n    font-size: 1rem;\\r\\n}\\r\\n\\r\\n.absol-trackbar-input::after {\\r\\n    content: \\\"\\\";\\r\\n    vertical-align: middle;\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n.absol-trackbar-input > .absol-trackbar {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    width: calc(100% - var(--input-width) - 5px);\\r\\n}\\r\\n\\r\\n\\r\\n.absol-trackbar-input > .as-flexicon-input {\\r\\n    width: var(--input-width);\\r\\n    vertical-align: middle;\\r\\n    height: 2em;\\r\\n    box-sizing: border-box;\\r\\n    margin-left: 5px;\\r\\n}\\r\\n\\r\\n.absol-trackbar-input.as-disabled {\\r\\n    pointer-events: none;\\r\\n    color: #777777;\\r\\n\\r\\n}\\r\\n\\r\\n.absol-trackbar-input input {\\r\\n    color: inherit;\\r\\n    font-size: inherit;\\r\\n}\\r\\n\\r\\n.absol-trackbar-input.as-border-none .as-flexicon-input {\\r\\n    border: none;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/trackbarinput.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/treechart.css":
/*!**********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/treechart.css ***!
  \**********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-tree-chart * {\\r\\n    box-sizing: border-box;\\r\\n    font-family: \\\"Helvetica Neue\\\", Arial, Helvetica, sans-serif;\\r\\n\\r\\n}\\r\\n\\r\\n.as-tree-chart {\\r\\n    --node-background-color: rgba(0, 150, 150);\\r\\n    --node-text-color: white;\\r\\n    font-size: 1rem;\\r\\n}\\r\\n\\r\\n.as-tree-chart-node {\\r\\n    display: inline-block;\\r\\n    white-space: normal;\\r\\n    vertical-align: top;\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n.as-tree-chart-content-ctn {\\r\\n    text-align: center;\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n.as-tree-chart-content {\\r\\n    padding: 5px;\\r\\n    border-radius: 4px;\\r\\n    border: 1px solid black;\\r\\n    text-align: center;\\r\\n    position: relative;\\r\\n    display: inline-block;\\r\\n    background-color: var(--node-background-color);\\r\\n    color: var(--node-text-color);\\r\\n}\\r\\n\\r\\n.as-as-tree-chart-icon,\\r\\n.as-as-tree-chart-text{\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.as-as-tree-chart-icon {\\r\\n    font-size: 1.25em;\\r\\n    padding-right: 0.25em;\\r\\n}\\r\\n\\r\\n.as-tree-chart-node.as-has-children > .as-tree-chart-content-ctn {\\r\\n    padding-bottom: 10px;\\r\\n}\\r\\n\\r\\n.as-tree-chart-node.as-has-children > .as-tree-chart-content-ctn::after {\\r\\n    content: \\\"\\\";\\r\\n    position: absolute;\\r\\n    bottom: 0;\\r\\n    left: 50%;\\r\\n    height: 10px;\\r\\n    border-left: 1px solid black;\\r\\n}\\r\\n\\r\\n.as-tree-chart-child-ctn {\\r\\n    white-space: nowrap;\\r\\n    padding-top: 10px;\\r\\n}\\r\\n\\r\\n.as-tree-chart-node:not(.as-horizontal) > .as-tree-chart-child-ctn > .as-tree-chart-node:not(:last-child) {\\r\\n    margin-right: 10px;\\r\\n}\\r\\n\\r\\n.as-tree-chart-child-ctn > .as-tree-chart-node:not(:first-child):not(:last-child)::before {\\r\\n    content: \\\"\\\";\\r\\n    border-top: 1px solid black;\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    right: -10px;\\r\\n    top: -10px;\\r\\n}\\r\\n\\r\\n.as-tree-chart-child-ctn > .as-tree-chart-node:first-child:not(:last-child)::before {\\r\\n    content: \\\"\\\";\\r\\n    border-top: 1px solid black;\\r\\n    position: absolute;\\r\\n    left: 50%;\\r\\n    right: -10px;\\r\\n    top: -10px;\\r\\n}\\r\\n\\r\\n.as-tree-chart-child-ctn > .as-tree-chart-node > .as-tree-chart-content-ctn .as-tree-chart-content::before {\\r\\n    content: \\\"\\\";\\r\\n    position: absolute;\\r\\n    left: 50%;\\r\\n    height: 10px;\\r\\n    top: -11px;\\r\\n    border-left: 1px solid black;\\r\\n}\\r\\n\\r\\n.as-tree-chart-child-ctn > .as-tree-chart-node:not(:first-child):last-child > .as-tree-chart-content-ctn::before {\\r\\n    content: \\\"\\\";\\r\\n    border-top: 1px solid black;\\r\\n    position: absolute;\\r\\n    left: 0;\\r\\n    width: calc(50% + 1px);\\r\\n    top: -10px;\\r\\n}\\r\\n\\r\\n.as-tree-chart-node.as-horizontal .as-tree-chart-child-ctn  .as-tree-chart-content{\\r\\n    text-align: left;\\r\\n}\\r\\n\\r\\n.as-tree-chart-node.as-horizontal > .as-tree-chart-content-ctn .as-tree-chart-content {\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n.as-tree-chart-node.as-horizontal .as-tree-chart-node {\\r\\n    display: block;\\r\\n}\\r\\n\\r\\n.as-tree-chart-node.as-horizontal .as-tree-chart-child-ctn {\\r\\n    padding-left: 20px;\\r\\n}\\r\\n\\r\\n.as-tree-chart-node.as-horizontal .as-tree-chart-child-ctn .as-tree-chart-content-ctn {\\r\\n    text-align: left;\\r\\n}\\r\\n\\r\\n.as-tree-chart-node.as-horizontal .as-tree-chart-content-ctn::after {\\r\\n    left: 10px;\\r\\n}\\r\\n\\r\\n.as-tree-chart-node.as-horizontal .as-tree-chart-node:not(:last-child)::before {\\r\\n    right: unset;\\r\\n    bottom: 0;\\r\\n    border-top: none;\\r\\n    border-left: 1px solid black;\\r\\n    left: -10px;\\r\\n    height: unset;\\r\\n}\\r\\n\\r\\n.as-tree-chart-node.as-horizontal .as-tree-chart-child-ctn > .as-tree-chart-node > .as-tree-chart-content-ctn .as-tree-chart-content::before {\\r\\n    border-left: none;\\r\\n    border-top: 1px solid black;\\r\\n    left: -10px;\\r\\n    width: 10px;\\r\\n    top: 50%;\\r\\n}\\r\\n\\r\\n.as-tree-chart-node.as-horizontal .as-tree-chart-node:last-child > .as-tree-chart-content-ctn::before {\\r\\n    content: \\\"\\\";\\r\\n    position: absolute;\\r\\n    left: -10px;\\r\\n    top: -10px;\\r\\n    height: calc(50% + 10px);\\r\\n    border-top: none;\\r\\n    border-left: 1px solid black;\\r\\n    /*width: unset;*/\\r\\n}\\r\\n\\r\\n.as-tree-chart-node.as-horizontal .as-tree-chart-node.as-has-children:last-child > .as-tree-chart-content-ctn::before {\\r\\n    height: calc(50% + 5px);\\r\\n    /*width: unset;*/\\r\\n}\\r\\n\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/treechart.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/treelist.css":
/*!*********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/treelist.css ***!
  \*********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-tree-list {}\\r\\n\\r\\n.absol-tree-list-item {}\\r\\n\\r\\n.absol-tree-list-item-parent:hover {\\r\\n    background: #efefef;\\r\\n    cursor: pointer;\\r\\n}\\r\\n\\r\\n.absol-tree-list-item-parent {\\r\\n    padding-left: 0.3em;\\r\\n    padding-right: 0.6em;\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n.absol-tree-list-item.active>.absol-tree-list-item-parent {\\r\\n    background: #dfdfdf;\\r\\n}\\r\\n\\r\\n.absol-tree-list-item-parent>span {\\r\\n    line-height: 20px;\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n.absol-tree-list-item-child {}\\r\\n\\r\\n.absol-tree-list-item>.absol-tree-list-item-child:empty {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.absol-tree-list-item-desc-container {\\r\\n    right: 0.3em;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    position: absolute;\\r\\n}\\r\\n\\r\\n.absol-tree-list-item-desc {\\r\\n    font-style: italic;\\r\\n    line-height: 20px;\\r\\n    white-space: nowrap;\\r\\n    margin-left: 1em;\\r\\n    color: rgb(37, 37, 37);\\r\\n}\\r\\n\\r\\n.absol-tree-list-item-desc:empty {\\r\\n    display: none;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/treelist.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/treetable.css":
/*!**********************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/treetable.css ***!
  \**********************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"\\r\\n.as-tree-table {\\r\\n    font-size: 1rem;\\r\\n    font-family: Arial, Helvetica, sans-serif;\\r\\n    border-collapse: collapse;\\r\\n}\\r\\n\\r\\n.as-tree-table-toggle {\\r\\n    position: absolute;\\r\\n    left: 5px;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    vertical-align: middle;\\r\\n    padding-right: 0.3em;\\r\\n    white-space: nowrap;\\r\\n    user-select: none;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n.as-tree-table-toggle::before {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    content: \\\"\\\";\\r\\n    height: 100%;\\r\\n}\\r\\n\\r\\n.as-tree-table-head {\\r\\n    background-color: #d6d6d6;\\r\\n}\\r\\n\\r\\n\\r\\n.as-tree-table-head-cell {\\r\\n    font-weight: bold;\\r\\n    padding: 10px;\\r\\n    border: 1px solid #ddd;\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n\\r\\n.as-tree-table-row {\\r\\n    height: calc(40em / 14);\\r\\n}\\r\\n\\r\\n.as-tree-table-row:nth-child(odd) {\\r\\n    background-color: rgb(245, 245, 245);\\r\\n}\\r\\n\\r\\n.as-tree-table-row:nth-child(even) {\\r\\n    background-color: white;\\r\\n}\\r\\n\\r\\n.as-tree-table-cell {\\r\\n    padding: 5px;\\r\\n    border: 1px solid #ddd;\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n.as-tree-table-cell[data-type=\\\"number\\\"] {\\r\\n    text-align: right;\\r\\n}\\r\\n\\r\\n.as-tree-table-row.as-is-opened .as-tree-table-toggle .toggle-close,\\r\\n.as-tree-table-row:not(.as-is-opened) .as-tree-table-toggle .toggle-open {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-tree-table-toggle .toggler-ico {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n.as-tree-table-row:not(.as-has-sub-row) .as-tree-table-toggle .toggler-ico {\\r\\n    visibility: hidden;\\r\\n}\\r\\n\\r\\n/*.as-tree-table-row {*/\\r\\n/*    height: var(--table-row-height);*/\\r\\n/*}*/\\r\\n\\r\\n.as-printer-content .as-tree-table-toggle svg{\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-printer-content .as-tree-table-head-cell,\\r\\n.as-printer-content .as-tree-table-cell{\\r\\n    border-color: black;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/treetable.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/variantcolors.css":
/*!**************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/variantcolors.css ***!
  \**************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \":root {\\r\\n    --variant-color-primary: #007bff;\\r\\n    --variant-color-secondary: #6c757d;\\r\\n    --variant-color-success: #28a745;\\r\\n    --variant-color-warning: #ffc107;\\r\\n    --variant-color-danger: #dc3545;\\r\\n    --variant-color-info: #17a2b8;\\r\\n    --variant-color-light: #f8f9fa;\\r\\n    --variant-color-dark: #343a40;\\r\\n    --variant-color-error: #ff4052;\\r\\n    --variant-color-link: #007bff;\\r\\n    --variant-color-note: #ffff88;\\r\\n\\r\\n\\r\\n    --variant-medium-contract-color-primary: #e2edd5;\\r\\n    --variant-medium-contract-color-secondary: #fca75b;\\r\\n    --variant-medium-contract-color-success: #fce8e8;\\r\\n    --variant-medium-contract-color-info: #fcf5e8;\\r\\n    --variant-medium-contract-color-warning: #5e5a75;\\r\\n    --variant-medium-contract-color-error:#e0dfce;\\r\\n    --variant-medium-contract-color-danger: #e5e8d5;\\r\\n    --variant-medium-contract-color-light: #7a5b3c;\\r\\n    --variant-medium-contract-color-dark: #bf7d3b;\\r\\n    --variant-medium-contract-color-link: #dde8c9;\\r\\n    --variant-medium-contract-color-note: #1e1ec8;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/variantcolors.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/verticaltimeline.css":
/*!*****************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/verticaltimeline.css ***!
  \*****************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \":root {\\r\\n    --as-vertical-timeline-item-height: 40px;\\r\\n}\\r\\n\\r\\n.as-vertical-timeline {\\r\\n    display: inline-block;\\r\\n    color: white;\\r\\n    font-size: 14px;\\r\\n    font-family: Arial, Helvetica, sans-serif;\\r\\n    text-align: left;\\r\\n    padding: 5px;\\r\\n}\\r\\n\\r\\n.as-vertical-timeline-item {\\r\\n    height: var(--as-vertical-timeline-item-height);\\r\\n    white-space: nowrap;\\r\\n}\\r\\n\\r\\n.as-vertical-timeline-item.as-inactive {\\r\\n    color: rgba(200, 200, 200, 0.5);\\r\\n}\\r\\n\\r\\n.as-vertical-timeline-item.as-active .as-vertical-timeline-tile {\\r\\n    text-shadow: 1px 0 0 currentColor;\\r\\n}\\r\\n\\r\\n.as-vertical-timeline-item:not(:first-child) .as-vertical-timeline-icon-ctn::before {\\r\\n    content: \\\"\\\";\\r\\n    display: inline-block;\\r\\n    height: calc(var(--as-vertical-timeline-item-height) - 30px);\\r\\n    border-left: 2px solid currentColor;\\r\\n    position: absolute;\\r\\n    left: calc(50% - 1px);\\r\\n    bottom: calc(100% + 2px);\\r\\n}\\r\\n\\r\\n\\r\\n.as-vertical-timeline-icon-ctn {\\r\\n    display: inline-block;\\r\\n    margin-right: 20px;\\r\\n    position: relative;\\r\\n    vertical-align: middle;\\r\\n\\r\\n}\\r\\n\\r\\n.as-vertical-timeline-icon-ctn span {\\r\\n    font-size: 24px;\\r\\n}\\r\\n\\r\\n\\r\\n.as-vertical-timeline-tile {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n\\r\\n}\\r\\n\\r\\n\\r\\n/*//check-circle*/\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/verticaltimeline.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/verticaltreediagram.css":
/*!********************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/verticaltreediagram.css ***!
  \********************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-vertical-tree-diagram {\\r\\n    --node-name-max-width: 200px;\\r\\n}\\r\\n\\r\\n\\r\\n.as-vertical-tree-diagram-node {\\r\\n\\r\\n}\\r\\n\\r\\n.template-ctn {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-vertical-tree-diagram-node, .as-vertical-tree-diagram-node * {\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.as-vertical-tree-diagram-node {\\r\\n    display: inline-block;\\r\\n    vertical-align: top;\\r\\n    position: relative;\\r\\n    background: white;\\r\\n}\\r\\n\\r\\n.as-vertical-tree-diagram-child-ctn > .as-vertical-tree-diagram-node:not(:first-child) {\\r\\n    margin-left: 10px;\\r\\n}\\r\\n\\r\\n.as-vertical-tree-diagram-node-name-ctn {\\r\\n    text-align: center;\\r\\n    padding-bottom: 9px;\\r\\n}\\r\\n\\r\\n.as-vertical-tree-diagram-node-name {\\r\\n    display: inline-block;\\r\\n    padding: 5px;\\r\\n    border: 1px solid #333;\\r\\n    position: relative;\\r\\n    white-space: normal;\\r\\n    max-width: var(--node-name-max-width);\\r\\n}\\r\\n\\r\\n.as-vertical-tree-diagram-node.as-has-child > .as-vertical-tree-diagram-node-name-ctn .as-vertical-tree-diagram-node-name::before {\\r\\n    content: \\\"\\\";\\r\\n    position: absolute;\\r\\n    height: 10px;\\r\\n    left: 50%;\\r\\n    top: 100%;\\r\\n    border-left: 1px solid #333;\\r\\n}\\r\\n\\r\\n.as-vertical-tree-diagram-node.as-has-child.as-has-1-child > .as-vertical-tree-diagram-node-name-ctn .as-vertical-tree-diagram-node-name::before {\\r\\n    height: 20px;\\r\\n}\\r\\n\\r\\n.as-vertical-tree-diagram-child-ctn {\\r\\n    padding-top: 10px;\\r\\n\\r\\n}\\r\\n\\r\\n.as-vertical-tree-diagram-node:not(.as-has-1-child) > .as-vertical-tree-diagram-child-ctn {\\r\\n    border-top: 1px solid #333;\\r\\n}\\r\\n\\r\\n.as-vertical-tree-diagram-node:not(.as-has-child) > .as-vertical-tree-diagram-child-ctn {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n.as-vertical-tree-diagram-child-ctn > .as-vertical-tree-diagram-node::before {\\r\\n    content: \\\"\\\";\\r\\n    position: absolute;\\r\\n    z-index: 1;\\r\\n    left: 50%;\\r\\n    bottom: 100%;\\r\\n    height: 10px;\\r\\n    border-left: 1px solid black;\\r\\n}\\r\\n\\r\\n.as-vertical-tree-diagram-node.as-has-1-child > .as-vertical-tree-diagram-child-ctn > .as-vertical-tree-diagram-node::before,\\r\\n.as-vertical-tree-diagram-node.as-has-1-child > .as-vertical-tree-diagram-child-ctn > .as-vertical-tree-diagram-node::after {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n\\r\\n.as-vertical-tree-diagram-child-ctn > .as-vertical-tree-diagram-node:last-child::before {\\r\\n    left: unset;\\r\\n    right: 50%;\\r\\n}\\r\\n\\r\\n\\r\\n.as-vertical-tree-diagram-child-ctn > .as-vertical-tree-diagram-node:first-child::after {\\r\\n    content: \\\"\\\";\\r\\n    position: absolute;\\r\\n    z-index: 2;\\r\\n    right: 50%;\\r\\n    left: 0;\\r\\n    bottom: 100%;\\r\\n    height: 11px;\\r\\n    background-color: white;\\r\\n}\\r\\n\\r\\n.as-vertical-tree-diagram-child-ctn > .as-vertical-tree-diagram-node:last-child::after {\\r\\n    content: \\\"\\\";\\r\\n    position: absolute;\\r\\n    z-index: 2;\\r\\n    left: 50%;\\r\\n    right: 0;\\r\\n    bottom: 100%;\\r\\n    height: 11px;\\r\\n    background-color: white;\\r\\n}\\r\\n\\r\\n.as-vertical-tree-diagram-child-ctn > .as-vertical-tree-diagram-node:first-child:last-child::after {\\r\\n    display: none;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/verticaltreediagram.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/videourldialog.css":
/*!***************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/videourldialog.css ***!
  \***************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"\\r\\n.as-video-url-dialog-url {\\r\\n    max-width: calc(100vw - 8em - 40px);\\r\\n    width: 500px;\\r\\n    min-height: 30px;\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.as-video-url-dialog input[type=\\\"number\\\"] {\\r\\n    width: 5em;\\r\\n}\\r\\n\\r\\n.as-video-url-dialog-row> label {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n    width: 6em;\\r\\n}\\r\\n\\r\\n.as-video-url-dialog-row {\\r\\n    padding-bottom: 10px;\\r\\n    white-space: pre;\\r\\n}\\r\\n\\r\\n.as-video-url-dialog-row > * {\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.as-video-url-dialog-video-image{\\r\\n    max-width: 200px;\\r\\n    max-height: 200px;\\r\\n\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/videourldialog.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/vruler.css":
/*!*******************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/vruler.css ***!
  \*******************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"/*margin for border size*/\\r\\n.as-vruler {\\r\\n    position: relative;\\r\\n    width: 1.5em;\\r\\n    border: solid 1px black;\\r\\n    overflow: hidden;\\r\\n    font-family: courier, \\\"courier new\\\", monospace;\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n\\r\\n.as-vruler-line {\\r\\n    position: absolute;\\r\\n    right: 0;\\r\\n    width: 25%;\\r\\n    border-top: solid 1px rgb(17, 48, 43);\\r\\n    box-sizing: border-box;\\r\\n\\r\\n}\\r\\n\\r\\n.as-vruler-line.major {\\r\\n    width: 50%;\\r\\n    border-top: solid 1px rgb(5, 20, 18);\\r\\n}\\r\\n\\r\\n.as-vruler-major-number {\\r\\n    position: absolute;\\r\\n    text-align: center;\\r\\n    width:  5em;\\r\\n    pointer-events: none;\\r\\n    font-size: 0.7em;\\r\\n    right: calc(52% - 2em);\\r\\n    height: 1em;\\r\\n    transform-origin: center;\\r\\n    \\r\\n    -webkit-transform:rotate(90deg);\\r\\n    -moz-transform:rotate(90deg);\\r\\n    -o-transform: rotate(90deg);\\r\\n    -ms-transform:rotate(90deg);\\r\\n    transform: rotate(-90deg);\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/vruler.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/widthheightresizer.css":
/*!*******************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/widthheightresizer.css ***!
  \*******************************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".absol-width-height-resizer {\\r\\n    position: relative;\\r\\n    box-sizing: border-box;\\r\\n}\\r\\n\\r\\n.absol-width-height-resizer-anchor-bot-right {\\r\\n    cursor: nwse-resize;\\r\\n    position: absolute;\\r\\n    z-index: 1;\\r\\n    right: 0;\\r\\n    bottom: 0;\\r\\n    height: 13px;\\r\\n    width: 13px;\\r\\n    background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAQUlEQVQoz2NgIBGkpaX9Z2IgA9BWU1pa2n+S/UGSZnRFBDVhU4BXEy4bcGrC5ySsmgj5AUMTMZ4mOehhmhjJ0QkA9TYwPsqIBKMAAAAASUVORK5CYII=');\\r\\n}\\r\\n\\r\\n.absol-width-height-resizer-anchor-bot-left {\\r\\n    cursor: nesw-resize;\\r\\n    position: absolute;\\r\\n    z-index: 1;\\r\\n    left: 0;\\r\\n    bottom: 0;\\r\\n    height: 13px;\\r\\n    width: 13px;\\r\\n    background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAABCSURBVChTY0hLS/vPQCJggtIkAco0keRMZMVEa0RXSJRGbIoIaoQpIMlGZEmiNRJSiFUjNkGCGrGaRAAwkq6JgQEAnaEwPtyU/MEAAAAASUVORK5CYII=');\\r\\n}\\r\\n\\r\\n.absol-width-height-resizer-anchor-top-right {\\r\\n    cursor: nesw-resize;\\r\\n    position: absolute;\\r\\n    z-index: 1;\\r\\n    right: 0;\\r\\n    top: 0;\\r\\n    height: 13px;\\r\\n    width: 13px;\\r\\n    background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAABMSURBVChTY0xLS/vPQGsAsoQJygYDdFuJdgUhjTgNwqcQpyYQwKURryYQwKaAoCYQwGUjQYCskGhNIABTTJImGABpQolcYgEZmhgYAEPpMD56IPESAAAAAElFTkSuQmCC')\\r\\n}\\r\\n\\r\\n.absol-width-height-resizer-anchor-top-left {\\r\\n    cursor: nwse-resize;\\r\\n    position: absolute;\\r\\n    z-index: 1;\\r\\n    top: 0;\\r\\n    left: 0;\\r\\n    height: 13px;\\r\\n    width: 13px;\\r\\n    background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAABNSURBVChTnZFbCgAgCAStw3r/GxQLClaSj/kJckcFBzMvqtKRprwHd6OncRRwN7GfKQFoIS0Ar/gVQGmCYkMpAWgwLYBSWHCPG9GQiDbsRTA+Srvt5gAAAABJRU5ErkJggg==');\\r\\n}\\r\\n\\r\\n.absol-width-height-resizer-content {\\r\\n    width: 100%;\\r\\n    height: 100%;\\r\\n    overflow: auto;\\r\\n}\\r\\n\\r\\n/* .absol-width-height-resizer */\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/widthheightresizer.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-form/css/cmdtool.css":
/*!*******************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-form/css/cmdtool.css ***!
  \*******************************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ../../css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".as-form-cmd-tool-window .absol-onscreen-window-body-container {\\r\\n    overflow-y: auto;\\r\\n}\\r\\n\\r\\n.as-from-tool-button {\\r\\n    font-size: 12px;\\r\\n    height: 2em;\\r\\n    width: 2em;\\r\\n    background-color: transparent;\\r\\n    padding: 0;\\r\\n    vertical-align: middle;\\r\\n    border: none;\\r\\n    outline: none;\\r\\n}\\r\\n\\r\\n.as-from-tool-button:not(:disabled):hover {\\r\\n    background-color: rgba(169, 169, 169, 0.1);\\r\\n}\\r\\n\\r\\n.as-from-tool-button:not(:disabled):active {\\r\\n    background-color: rgba(169, 169, 169, 0.2);\\r\\n}\\r\\n\\r\\n.as-from-tool-button > span {\\r\\n    font-size: 1.5em;\\r\\n}\\r\\n\\r\\n.as-from-tool-button > svg {\\r\\n    width: 1.5em;\\r\\n    height: 1.5em;\\r\\n}\\r\\n\\r\\n.as-from-tool-button:not(:disabled) > span.mdi-delete-variant {\\r\\n    color: red;\\r\\n}\\r\\n\\r\\n.as-from-tool-button:disabled > span {\\r\\n    color: #c4c4c4 !important;\\r\\n}\\r\\n\\r\\n.as-from-tool-button:disabled > svg > path {\\r\\n    fill: #c4c4c4;\\r\\n}\\r\\n\\r\\n.as-from-tool-button.as-type-toggle-switch.as-checked {\\r\\n    -webkit-box-shadow: inset 0px 0px 2px 0px rgba(0, 0, 0, 0.6);\\r\\n    box-shadow: inset 0px 0px 2px 0px rgba(0, 0, 0, 0.6);\\r\\n    background-color: rgba(0, 0, 0, 0.05);\\r\\n}\\r\\n\\r\\n.as-form-cmd-tool .as-from-tool-ribbon-button,\\r\\n.bsc-white .as-form-cmd-tool .as-from-tool-ribbon-button {\\r\\n    font-size: 12px;\\r\\n    height: 2em;\\r\\n    width: 3em;\\r\\n    padding-right: 0.2em;\\r\\n    /**override theme*/\\r\\n    min-width: unset !important;\\r\\n    white-space: nowrap;\\r\\n    border: none !important;\\r\\n    background-color: transparent;\\r\\n}\\r\\n\\r\\n.bsc-white .as-form-cmd-tool .as-from-tool-ribbon-button:hover {\\r\\n    background-color: rgba(169, 169, 169, 0.1);\\r\\n}\\r\\n\\r\\n.as-from-tool-ribbon-button > span {\\r\\n    margin: 0;\\r\\n}\\r\\n\\r\\n.as-from-tool-ribbon-button > svg {\\r\\n    margin: 0;\\r\\n    width: 12px;\\r\\n    height: 13px;\\r\\n}\\r\\n\\r\\n.as-from-tool-group-buttons {\\r\\n    margin-right: 2px;\\r\\n\\r\\n    display: inline-block;\\r\\n    vertical-align: middle;\\r\\n}\\r\\n\\r\\n.as-from-tool-group-buttons .as-from-tool-group-buttons:not(:last-child) {\\r\\n    border-right: 0.5px solid #ddd;\\r\\n}\\r\\n\\r\\n.as-from-tool-group-buttons .as-from-tool-group-buttons:not(:first-child) {\\r\\n    border-left: 0.5px solid #ddd;\\r\\n}\\r\\n\\r\\n.absol-tooltip-root {\\r\\n    z-index: 100;\\r\\n}\\r\\n\\r\\n.as-from-tool-group-buttons:empty {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n\\r\\n.as-form-cmd-tool-menu-trigger {\\r\\n    position: absolute;\\r\\n    right: 0;\\r\\n    top: 0;\\r\\n    bottom: 0;\\r\\n    color: #ddd;\\r\\n}\\r\\n\\r\\n.as-form-cmd-tool-window .absol-onscreen-window-head-bar-button-dock {\\r\\n    display: none;\\r\\n}\\r\\n\\r\\n\\r\\n.as-form-cmd-tool-window .as-form-cmd-tool-menu-trigger {\\r\\n    display: none;\\r\\n}\", \"\"]);\n\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-form/css/cmdtool.css?./node_modules/css-loader/dist/cjs.js??ruleSet%5B1%5D.rules%5B2%5D.use%5B1%5D");

/***/ }),

/***/ "./node_modules/absol-acomp/assets/icon/mdi_store_marker_outline.tpl":
/*!***************************************************************************!*\
  !*** ./node_modules/absol-acomp/assets/icon/mdi_store_marker_outline.tpl ***!
  \***************************************************************************/
/***/ ((__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__ = (\"<svg viewBox=\\\"0 0 24 24\\\">\\n    <path fill=\\\"currentColor\\\" d=\\\"M20 6H4V4H20V6M14.3 12C13.5 12.96 13 14.18 13 15.5C13 16.64 13.43 17.86 14 19V20H4V14H3V12L4 7H20L20.7 10.5C20.04 10.18 19.32 10 18.56 10L18.36 9H5.64L5.04 12H14.3M12 14H6V18H12V14M22 15.5C22 18.1 18.5 22 18.5 22S15 18.1 15 15.5C15 13.6 16.6 12 18.5 12S22 13.6 22 15.5M19.7 15.6C19.7 15 19.1 14.4 18.5 14.4S17.3 14.9 17.3 15.6C17.3 16.2 17.8 16.8 18.5 16.8S19.8 16.2 19.7 15.6Z\\\" />\\n</svg>\");\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/assets/icon/mdi_store_marker_outline.tpl?");

/***/ }),

/***/ "./node_modules/absol-acomp/assets/icon/spinner.tpl":
/*!**********************************************************!*\
  !*** ./node_modules/absol-acomp/assets/icon/spinner.tpl ***!
  \**********************************************************/
/***/ ((__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__ = (\"<svg class=\\\"as-spinner-ico\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"  viewBox=\\\"0 0 100 100\\\" preserveAspectRatio=\\\"xMidYMid\\\">\\n    <g><circle cx=\\\"73.801\\\" cy=\\\"68.263\\\" fill=\\\"#e15b64\\\" r=\\\"4\\\">\\n        <animateTransform attributeName=\\\"transform\\\" type=\\\"rotate\\\" calcMode=\\\"spline\\\" values=\\\"0 50 50;360 50 50\\\" times=\\\"0;1\\\" keySplines=\\\"0.5 0 0.5 1\\\" repeatCount=\\\"indefinite\\\" dur=\\\"1.4925373134328357s\\\" begin=\\\"0s\\\"></animateTransform>\\n    </circle><circle cx=\\\"68.263\\\" cy=\\\"73.801\\\" fill=\\\"#f47e60\\\" r=\\\"4\\\">\\n        <animateTransform attributeName=\\\"transform\\\" type=\\\"rotate\\\" calcMode=\\\"spline\\\" values=\\\"0 50 50;360 50 50\\\" times=\\\"0;1\\\" keySplines=\\\"0.5 0 0.5 1\\\" repeatCount=\\\"indefinite\\\" dur=\\\"1.4925373134328357s\\\" begin=\\\"-0.062s\\\"></animateTransform>\\n    </circle><circle cx=\\\"61.481\\\" cy=\\\"77.716\\\" fill=\\\"#f8b26a\\\" r=\\\"4\\\">\\n        <animateTransform attributeName=\\\"transform\\\" type=\\\"rotate\\\" calcMode=\\\"spline\\\" values=\\\"0 50 50;360 50 50\\\" times=\\\"0;1\\\" keySplines=\\\"0.5 0 0.5 1\\\" repeatCount=\\\"indefinite\\\" dur=\\\"1.4925373134328357s\\\" begin=\\\"-0.125s\\\"></animateTransform>\\n    </circle><circle cx=\\\"53.916\\\" cy=\\\"79.743\\\" fill=\\\"#abbd81\\\" r=\\\"4\\\">\\n        <animateTransform attributeName=\\\"transform\\\" type=\\\"rotate\\\" calcMode=\\\"spline\\\" values=\\\"0 50 50;360 50 50\\\" times=\\\"0;1\\\" keySplines=\\\"0.5 0 0.5 1\\\" repeatCount=\\\"indefinite\\\" dur=\\\"1.4925373134328357s\\\" begin=\\\"-0.187s\\\"></animateTransform>\\n    </circle><circle cx=\\\"46.084\\\" cy=\\\"79.743\\\" fill=\\\"#849b87\\\" r=\\\"4\\\">\\n        <animateTransform attributeName=\\\"transform\\\" type=\\\"rotate\\\" calcMode=\\\"spline\\\" values=\\\"0 50 50;360 50 50\\\" times=\\\"0;1\\\" keySplines=\\\"0.5 0 0.5 1\\\" repeatCount=\\\"indefinite\\\" dur=\\\"1.4925373134328357s\\\" begin=\\\"-0.25s\\\"></animateTransform>\\n    </circle><circle cx=\\\"38.519\\\" cy=\\\"77.716\\\" fill=\\\"#6492ac\\\" r=\\\"4\\\">\\n        <animateTransform attributeName=\\\"transform\\\" type=\\\"rotate\\\" calcMode=\\\"spline\\\" values=\\\"0 50 50;360 50 50\\\" times=\\\"0;1\\\" keySplines=\\\"0.5 0 0.5 1\\\" repeatCount=\\\"indefinite\\\" dur=\\\"1.4925373134328357s\\\" begin=\\\"-0.312s\\\"></animateTransform>\\n    </circle><circle cx=\\\"31.737\\\" cy=\\\"73.801\\\" fill=\\\"#637cb5\\\" r=\\\"4\\\">\\n        <animateTransform attributeName=\\\"transform\\\" type=\\\"rotate\\\" calcMode=\\\"spline\\\" values=\\\"0 50 50;360 50 50\\\" times=\\\"0;1\\\" keySplines=\\\"0.5 0 0.5 1\\\" repeatCount=\\\"indefinite\\\" dur=\\\"1.4925373134328357s\\\" begin=\\\"-0.375s\\\"></animateTransform>\\n    </circle><circle cx=\\\"26.199\\\" cy=\\\"68.263\\\" fill=\\\"#6a63b6\\\" r=\\\"4\\\">\\n        <animateTransform attributeName=\\\"transform\\\" type=\\\"rotate\\\" calcMode=\\\"spline\\\" values=\\\"0 50 50;360 50 50\\\" times=\\\"0;1\\\" keySplines=\\\"0.5 0 0.5 1\\\" repeatCount=\\\"indefinite\\\" dur=\\\"1.4925373134328357s\\\" begin=\\\"-0.437s\\\"></animateTransform>\\n    </circle><animateTransform attributeName=\\\"transform\\\" type=\\\"rotate\\\" calcMode=\\\"spline\\\" values=\\\"0 50 50;0 50 50\\\" times=\\\"0;1\\\" keySplines=\\\"0.5 0 0.5 1\\\" repeatCount=\\\"indefinite\\\" dur=\\\"1.4925373134328357s\\\"></animateTransform></g>\\n</svg>\");\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/assets/icon/spinner.tpl?");

/***/ }),

/***/ "./node_modules/absol-acomp/js/ckeditor/ckcontentstyle.css.tpl":
/*!*********************************************************************!*\
  !*** ./node_modules/absol-acomp/js/ckeditor/ckcontentstyle.css.tpl ***!
  \*********************************************************************/
/***/ ((__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__ = (\"\\r\\n.as-ck-alert {\\r\\n    padding: .75rem 1.25rem;\\r\\n    margin-bottom: 1rem;\\r\\n    border: 1px solid transparent;\\r\\n    border-radius: .188rem;\\r\\n}\\r\\n\\r\\n.as-ck-alert.as-variant-notice {\\r\\n    color: #7b5700;\\r\\n    background-color: #fbedcc;\\r\\n    border-color: #fae6b8;\\r\\n}\\r\\n\\r\\n.as-ck-alert.as-variant-warning {\\r\\n    color: #852d19;\\r\\n    background-color: #ffddd6;\\r\\n    border-color: #ffd0c5;\\r\\n}\\r\\n\\r\\n.as-ck-alert.as-variant-info {\\r\\n    color: #352c64;\\r\\n    background-color: #e0ddf2;\\r\\n    border-color: #d4cfed;\\r\\n}\\r\\n\\r\\n.as-ck-alert.as-variant-success {\\r\\n    color: #2a601f;\\r\\n    background-color: #dcf1d8;\\r\\n    border-color: #ceebc8;\\r\\n}\\r\\n\\r\\n\\r\\n.cke_contents_ltr ul {\\r\\n    list-style: none;\\r\\n}\\r\\n\\r\\n.cke_contents_ltr ul li {\\r\\n    position: relative;\\r\\n}\\r\\n\\r\\n.cke_contents_ltr ul li::before {\\r\\n    color: #007bff;\\r\\n    content: '●';\\r\\n    position: absolute;\\r\\n    left: -1.2em;\\r\\n    top: -0.1em;\\r\\n    display: inline-block;\\r\\n}\\r\\n\\r\\n.cke_contents_ltr thead {\\r\\n    background-color: #d6d6d6;\\r\\n\\r\\n}\\r\\n\\r\\n.cke_contents_ltr table {\\r\\n    border-collapse: collapse;\\r\\n}\\r\\n\\r\\n.cke_contents_ltr table[align=\\\"center\\\"] {\\r\\n    margin-left: auto;\\r\\n    margin-right: auto;\\r\\n}\\r\\n\\r\\n.cke_contents_ltr table[align=\\\"right\\\"] {\\r\\n    margin-left: auto;\\r\\n}\\r\\n\\r\\n\\r\\n.cke_contents_ltr thead td {\\r\\n    padding: 10px;\\r\\n    border: 1px solid #efefef;\\r\\n    font-weight: bold;\\r\\n}\\r\\n\\r\\n.cke_contents_ltr thead td:last-child {\\r\\n    border-right-color: #dddddd;\\r\\n}\\r\\n\\r\\n\\r\\n.cke_contents_ltr thead td:first-child {\\r\\n    border-left-color: #dddddd;\\r\\n}\\r\\n\\r\\n\\r\\n.cke_contents_ltr tbody td {\\r\\n\\r\\n}\\r\\n\\r\\n.cke_contents_ltr tbody tr:nth-child(odd) {\\r\\n    background-color: rgb(245, 245, 245);\\r\\n}\\r\\n\\r\\n.cke_contents_ltr tbody tr:nth-child(even) {\\r\\n    background-color: white;\\r\\n}\\r\\n\\r\\n.cke_contents_ltr tbody td {\\r\\n    padding: 5px 10px;\\r\\n    border: 1px solid #ddd;\\r\\n}\\r\\n\\r\\n\\r\\n.cke_button_icon.cke_button__insert_expression_icon {\\r\\n    background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiICB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgIDxwYXRoIGZpbGw9IiMwMDAwMDAiIGQ9Ik01LDNIN1Y1SDVWMTBBMiwyIDAgMCwxIDMsMTJBMiwyIDAgMCwxIDUsMTRWMTlIN1YyMUg1QzMuOTMsMjAuNzMgMywyMC4xIDMsMTlWMTVBMiwyIDAgMCwwIDEsMTNIMFYxMUgxQTIsMiAwIDAsMCAzLDlWNUEyLDIgMCAwLDEgNSwzTTE5LDNBMiwyIDAgMCwxIDIxLDVWOUEyLDIgMCAwLDAgMjMsMTFIMjRWMTNIMjNBMiwyIDAgMCwwIDIxLDE1VjE5QTIsMiAwIDAsMSAxOSwyMUgxN1YxOUgxOVYxNEEyLDIgMCAwLDEgMjEsMTJBMiwyIDAgMCwxIDE5LDEwVjVIMTdWM0gxOU0xMiwxNUExLDEgMCAwLDEgMTMsMTZBMSwxIDAgMCwxIDEyLDE3QTEsMSAwIDAsMSAxMSwxNkExLDEgMCAwLDEgMTIsMTVNOCwxNUExLDEgMCAwLDEgOSwxNkExLDEgMCAwLDEgOCwxN0ExLDEgMCAwLDEgNywxNkExLDEgMCAwLDEgOCwxNU0xNiwxNUExLDEgMCAwLDEgMTcsMTZBMSwxIDAgMCwxIDE2LDE3QTEsMSAwIDAsMSAxNSwxNkExLDEgMCAwLDEgMTYsMTVaIiAvPgo8L3N2Zz4=');\\r\\n    background-position: 0 0px;\\r\\n    background-size: 16px;\\r\\n}\\r\\n\\r\\n.cke_button_icon.cke_button__insert_variable_icon {\\r\\n    background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiICB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgIDxwYXRoIGZpbGw9IiMwMDAwMDAiIGQ9Ik0yMC40MSwzQzIxLjgsNS43MSAyMi4zNSw4Ljg0IDIyLDEyQzIxLjgsMTUuMTYgMjAuNywxOC4yOSAxOC44MywyMUwxNy4zLDIwQzE4LjkxLDE3LjU3IDE5Ljg1LDE0LjggMjAsMTJDMjAuMzQsOS4yIDE5Ljg5LDYuNDMgMTguNyw0TDIwLjQxLDNNNS4xNywzTDYuNyw0QzUuMDksNi40MyA0LjE1LDkuMiA0LDEyQzMuNjYsMTQuOCA0LjEyLDE3LjU3IDUuMywyMEwzLjYxLDIxQzIuMjEsMTguMjkgMS42NSwxNS4xNyAyLDEyQzIuMiw4Ljg0IDMuMyw1LjcxIDUuMTcsM00xMi4wOCwxMC42OEwxNC40LDcuNDVIMTYuOTNMMTMuMTUsMTIuNDVMMTUuMzUsMTcuMzdIMTMuMDlMMTEuNzEsMTRMOS4yOCwxNy4zM0g2Ljc2TDEwLjY2LDEyLjIxTDguNTMsNy40NUgxMC44TDEyLjA4LDEwLjY4WiIgLz4KPC9zdmc+');\\r\\n    background-position: 0 0px;\\r\\n    background-size: 16px;\\r\\n}\\r\\n\\r\\n.cke_button_icon.cke_button__insert_dynamic_link_icon {\\r\\n    background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiICB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgIDxwYXRoIGZpbGw9IiMwMDAwMDAiIGQ9Ik0zIDFDMS44OSAxIDEgMS44OSAxIDNWMTRDMSAxNS4xMSAxLjg5IDE2IDMgMTZIMTRDMTUuMTEgMTYgMTYgMTUuMTEgMTYgMTRWMTFIMTRWMTRIM1YzSDE0VjVIMTZWM0MxNiAxLjg5IDE1LjExIDEgMTQgMU05IDdDNy44OSA3IDcgNy44OSA3IDlWMTJIOVY5SDIwVjIwSDlWMThIN1YyMEM3IDIxLjExIDcuODkgMjIgOSAyMkgyMEMyMS4xMSAyMiAyMiAyMS4xMSAyMiAyMFY5QzIyIDcuODkgMjEuMTEgNyAyMCA3SDkiIC8+Cjwvc3ZnPg==');\\r\\n    background-position: 0 0px;\\r\\n    background-size: 16px;\\r\\n}\\r\\n\\r\\n\\r\\n.as-ck-widget-expression {\\r\\n    color: #1da1ff;\\r\\n}\\r\\n\\r\\n.as-ck-widget-variable {\\r\\n    color: #144f25;\\r\\n}\\r\\n\\r\\n\\r\\n.cke_button__image_mgn_dialog_icon {\\r\\n    background: url($basePath/plugins/icons.png) no-repeat 0 -960px !important;\\r\\n}\\r\\n\\r\\n\\r\\nbody .cke_contents_ltr h1,\\r\\nbody .cke_contents_ltr h2,\\r\\nbody .cke_contents_ltr h3,\\r\\nbody .cke_contents_ltr h4,\\r\\nbody .cke_contents_ltr h5,\\r\\nbody .cke_contents_ltr h6 {\\r\\n    font-weight: normal;\\r\\n    line-height: 1.2;\\r\\n}\\r\\n\\r\\nbody .cke_contents_ltr {\\r\\n    line-height: 1.6;\\r\\n    font-size: inherit;\\r\\n    font-family: sans-serif, Arial, Verdana, \\\"Trebuchet MS\\\", \\\"Apple Color Emoji\\\", \\\"Segoe UI Emoji\\\", \\\"Segoe UI Symbol\\\";\\r\\n    background-color: #fff;\\r\\n    word-wrap: break-word;\\r\\n    text-align: left;\\r\\n}\\r\\n\\r\\n.cke_contents_ltr blockquote {\\r\\n    font-style: italic;\\r\\n    font-family: inherit;\\r\\n    border-style: solid;\\r\\n    border-color: #ccc;\\r\\n    border-width: 0;\\r\\n    padding-left: 20px;\\r\\n    padding-right: 8px;\\r\\n    border-left-width: 5px;\\r\\n}\\r\\n\\r\\nbody .cke_contents_ltr a {\\r\\n    color: #0782C1;\\r\\n}\\r\\n\\r\\nbody .cke_contents_ltr ol,\\r\\nbody .cke_contents_ltr ul,\\r\\nbody .cke_contents_ltr dl {\\r\\n    /* IE7: reset rtl list margin. (#7334) */\\r\\n    *margin-right: 0px;\\r\\n    /* Preserved spaces for list items with text direction different than the list. (#6249,#8049)*/\\r\\n    padding: 0 40px;\\r\\n}\\r\\n\\r\\n\\r\\nbody.cke_contents_ltr { /*editor*/\\r\\n    font-size: 14px;\\r\\n}\\r\\n\\r\\n\\r\\nbody .cke_contents_ltr hr\\r\\n{\\r\\n    border: 0px;\\r\\n    border-top: 1px solid #ccc;\\r\\n}\\r\\n\\r\\nbody .cke_contents_ltr img.right\\r\\n{\\r\\n    border: 1px solid #ccc;\\r\\n    float: right;\\r\\n    margin-left: 15px;\\r\\n    padding: 5px;\\r\\n}\\r\\n\\r\\nbody .cke_contents_ltr img.left\\r\\n{\\r\\n    border: 1px solid #ccc;\\r\\n    float: left;\\r\\n    margin-right: 15px;\\r\\n    padding: 5px;\\r\\n}\\r\\n\\r\\nbody .cke_contents_ltr pre\\r\\n{\\r\\n    white-space: pre-wrap; /* CSS 2.1 */\\r\\n    word-wrap: break-word; /* IE7 */\\r\\n    -moz-tab-size: 4;\\r\\n    tab-size: 4;\\r\\n}\\r\\n\\r\\nbody .cke_contents_ltr .marker\\r\\n{\\r\\n    background-color: Yellow;\\r\\n}\\r\\n\\r\\nbody .cke_contents_ltr span[lang]\\r\\n{\\r\\n    font-style: italic;\\r\\n}\\r\\n\\r\\nbody .cke_contents_ltr figure\\r\\n{\\r\\n    text-align: center;\\r\\n    outline: solid 1px #ccc;\\r\\n    background: rgba(0,0,0,0.05);\\r\\n    padding: 10px;\\r\\n    margin: 10px 20px;\\r\\n    display: inline-block;\\r\\n}\\r\\n\\r\\nbody .cke_contents_ltr figure > figcaption\\r\\n{\\r\\n    text-align: center;\\r\\n    display: block; /* For IE8 */\\r\\n}\\r\\n\\r\\nbody .cke_contents_ltr a > img {\\r\\n    padding: 1px;\\r\\n    margin: 1px;\\r\\n    border: none;\\r\\n    outline: 1px solid #0782C1;\\r\\n}\\r\\n\\r\\n/* Widget Styles */\\r\\nbody .cke_contents_ltr .code-featured\\r\\n{\\r\\n    border: 5px solid red;\\r\\n}\\r\\n\\r\\nbody .cke_contents_ltr .math-featured\\r\\n{\\r\\n    padding: 20px;\\r\\n    box-shadow: 0 0 2px rgba(200, 0, 0, 1);\\r\\n    background-color: rgba(255, 0, 0, 0.05);\\r\\n    margin: 10px;\\r\\n}\\r\\n\\r\\nbody .cke_contents_ltr .image-clean\\r\\n{\\r\\n    border: 0;\\r\\n    background: none;\\r\\n    padding: 0;\\r\\n}\\r\\n\\r\\nbody .cke_contents_ltr .image-clean > figcaption\\r\\n{\\r\\n    font-size: .9em;\\r\\n    text-align: right;\\r\\n}\\r\\n\\r\\nbody .cke_contents_ltr .image-grayscale\\r\\n{\\r\\n    background-color: white;\\r\\n    color: #666;\\r\\n}\\r\\n\\r\\nbody .cke_contents_ltr .image-grayscale img, img.image-grayscale\\r\\n{\\r\\n    filter: grayscale(100%);\\r\\n}\\r\\n\\r\\nbody .cke_contents_ltr .embed-240p\\r\\n{\\r\\n    max-width: 426px;\\r\\n    max-height: 240px;\\r\\n    margin:0 auto;\\r\\n}\\r\\n\\r\\nbody .cke_contents_ltr .embed-360p\\r\\n{\\r\\n    max-width: 640px;\\r\\n    max-height: 360px;\\r\\n    margin:0 auto;\\r\\n}\\r\\n\\r\\nbody .cke_contents_ltr .embed-480p\\r\\n{\\r\\n    max-width: 854px;\\r\\n    max-height: 480px;\\r\\n    margin:0 auto;\\r\\n}\\r\\n\\r\\nbody .cke_contents_ltr .embed-720p\\r\\n{\\r\\n    max-width: 1280px;\\r\\n    max-height: 720px;\\r\\n    margin:0 auto;\\r\\n}\\r\\n\\r\\nbody .cke_contents_ltr .embed-1080p\\r\\n{\\r\\n    max-width: 1920px;\\r\\n    max-height: 1080px;\\r\\n    margin:0 auto;\\r\\n}\\r\\n\");\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/js/ckeditor/ckcontentstyle.css.tpl?");

/***/ }),

/***/ "./node_modules/absol/src/JSDocx/assets/content_types.xml":
/*!****************************************************************!*\
  !*** ./node_modules/absol/src/JSDocx/assets/content_types.xml ***!
  \****************************************************************/
/***/ ((__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__ = (\"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"yes\\\"?>\\r\\n<Types xmlns=\\\"http://schemas.openxmlformats.org/package/2006/content-types\\\">\\r\\n  <Default Extension=\\\"rels\\\" ContentType=\\r\\n    \\\"application/vnd.openxmlformats-package.relationships+xml\\\" />\\r\\n  <Override PartName=\\\"/word/document.xml\\\" ContentType=\\r\\n    \\\"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml\\\"/>\\r\\n  <Override PartName=\\\"/word/afchunk.mht\\\" ContentType=\\\"message/rfc822\\\"/>\\r\\n</Types>\\r\\n\");\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/JSDocx/assets/content_types.xml?");

/***/ }),

/***/ "./node_modules/absol/src/JSDocx/assets/document.xml.rels":
/*!****************************************************************!*\
  !*** ./node_modules/absol/src/JSDocx/assets/document.xml.rels ***!
  \****************************************************************/
/***/ ((__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__ = (\"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"yes\\\"?>\\r\\n<Relationships xmlns=\\\"http://schemas.openxmlformats.org/package/2006/relationships\\\">\\r\\n  <Relationship Type=\\\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/aFChunk\\\"\\r\\n    Target=\\\"/word/afchunk.mht\\\" Id=\\\"htmlChunk\\\" />\\r\\n</Relationships>\\r\\n\");\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/JSDocx/assets/document.xml.rels?");

/***/ }),

/***/ "./node_modules/absol/src/JSDocx/assets/rels.xml":
/*!*******************************************************!*\
  !*** ./node_modules/absol/src/JSDocx/assets/rels.xml ***!
  \*******************************************************/
/***/ ((__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__ = (\"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"yes\\\"?>\\r\\n<Relationships xmlns=\\\"http://schemas.openxmlformats.org/package/2006/relationships\\\">\\r\\n  <Relationship\\r\\n      Type=\\\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\\\"\\r\\n      Target=\\\"/word/document.xml\\\" Id=\\\"R09c83fafc067488e\\\" />\\r\\n</Relationships>\\r\\n\");\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/JSDocx/assets/rels.xml?");

/***/ }),

/***/ "./node_modules/absol/src/JSDocx/templates/document.tpl":
/*!**************************************************************!*\
  !*** ./node_modules/absol/src/JSDocx/templates/document.tpl ***!
  \**************************************************************/
/***/ ((__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__ = (\"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"yes\\\"?>\\r\\n<w:document\\r\\n  xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\\r\\n  xmlns:m=\\\"http://schemas.openxmlformats.org/officeDocument/2006/math\\\"\\r\\n  xmlns:r=\\\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\\\"\\r\\n  xmlns:wp=\\\"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\\\"\\r\\n  xmlns:a=\\\"http://schemas.openxmlformats.org/drawingml/2006/main\\\"\\r\\n  xmlns:ns6=\\\"http://schemas.openxmlformats.org/schemaLibrary/2006/main\\\"\\r\\n  xmlns:c=\\\"http://schemas.openxmlformats.org/drawingml/2006/chart\\\"\\r\\n  xmlns:ns8=\\\"http://schemas.openxmlformats.org/drawingml/2006/chartDrawing\\\"\\r\\n  xmlns:dgm=\\\"http://schemas.openxmlformats.org/drawingml/2006/diagram\\\"\\r\\n  xmlns:pic=\\\"http://schemas.openxmlformats.org/drawingml/2006/picture\\\"\\r\\n  xmlns:ns11=\\\"http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing\\\"\\r\\n  xmlns:dsp=\\\"http://schemas.microsoft.com/office/drawing/2008/diagram\\\"\\r\\n  xmlns:ns13=\\\"urn:schemas-microsoft-com:office:excel\\\"\\r\\n  xmlns:o=\\\"urn:schemas-microsoft-com:office:office\\\"\\r\\n  xmlns:v=\\\"urn:schemas-microsoft-com:vml\\\"\\r\\n  xmlns:w10=\\\"urn:schemas-microsoft-com:office:word\\\"\\r\\n  xmlns:ns17=\\\"urn:schemas-microsoft-com:office:powerpoint\\\"\\r\\n  xmlns:odx=\\\"http://opendope.org/xpaths\\\"\\r\\n  xmlns:odc=\\\"http://opendope.org/conditions\\\"\\r\\n  xmlns:odq=\\\"http://opendope.org/questions\\\"\\r\\n  xmlns:odi=\\\"http://opendope.org/components\\\"\\r\\n  xmlns:odgm=\\\"http://opendope.org/SmartArt/DataHierarchy\\\"\\r\\n  xmlns:ns24=\\\"http://schemas.openxmlformats.org/officeDocument/2006/bibliography\\\"\\r\\n  xmlns:ns25=\\\"http://schemas.openxmlformats.org/drawingml/2006/compatibility\\\"\\r\\n  xmlns:ns26=\\\"http://schemas.openxmlformats.org/drawingml/2006/lockedCanvas\\\">\\r\\n  <w:body>\\r\\n    <w:altChunk r:id=\\\"htmlChunk\\\" />\\r\\n    <w:sectPr>\\r\\n      <w:pgSz w:w=\\\"{{ pageSetting.width }}\\\" w:h=\\\"{{ pageSetting.height }}\\\" w:orient=\\\"{{ pageSetting.orient }}\\\" />\\r\\n      <w:pgMar w:top=\\\"{{ pageSetting.margins.top }}\\\"\\r\\n               w:right=\\\"{{ pageSetting.margins.right }}\\\"\\r\\n               w:bottom=\\\"{{ pageSetting.margins.bottom }}\\\"\\r\\n               w:left=\\\"{{ pageSetting.margins.left }}\\\"\\r\\n               w:header=\\\"{{ pageSetting.margins.header }}\\\"\\r\\n               w:footer=\\\"{{ pageSetting.margins.footer }}\\\"\\r\\n               w:gutter=\\\"{{ pageSetting.margins.gutter }}\\\"/>\\r\\n    </w:sectPr>\\r\\n  </w:body>\\r\\n</w:document>\\r\\n\");\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/JSDocx/templates/document.tpl?");

/***/ }),

/***/ "./node_modules/absol/src/JSDocx/templates/mht_document.tpl":
/*!******************************************************************!*\
  !*** ./node_modules/absol/src/JSDocx/templates/mht_document.tpl ***!
  \******************************************************************/
/***/ ((__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__ = (\"MIME-Version: 1.0\\r\\nContent-Type: multipart/related;\\r\\n    type=\\\"text/html\\\";\\r\\n    boundary=\\\"----=mhtDocumentPart\\\"\\r\\n\\r\\n\\r\\n------=mhtDocumentPart\\r\\nContent-Type: text/html;\\r\\n    charset=\\\"utf-8\\\"\\r\\nContent-Transfer-Encoding: quoted-printable\\r\\nContent-Location: file:///C:/fake/document.html\\r\\n\\r\\n{{ htmlSource }}\\r\\n\\r\\n{{ contentParts }}\\r\\n\\r\\n------=mhtDocumentPart--\\r\\n\");\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/JSDocx/templates/mht_document.tpl?");

/***/ }),

/***/ "./node_modules/absol/src/JSDocx/templates/mht_part.tpl":
/*!**************************************************************!*\
  !*** ./node_modules/absol/src/JSDocx/templates/mht_part.tpl ***!
  \**************************************************************/
/***/ ((__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__ = (\"------=mhtDocumentPart\\r\\nContent-Type: {{ contentType }}\\r\\nContent-Transfer-Encoding: {{ contentEncoding }}\\r\\nContent-Location: {{ contentLocation }}\\r\\n\\r\\n{{ encodedContent }}\\r\\n\");\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/JSDocx/templates/mht_part.tpl?");

/***/ }),

/***/ "./node_modules/absol/src/Network/RemoteThread.tpl":
/*!*********************************************************!*\
  !*** ./node_modules/absol/src/Network/RemoteThread.tpl ***!
  \*********************************************************/
/***/ ((__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__ = (\"function safeThrow(error) {\\r\\n    setTimeout(function () {\\r\\n        throw  error;\\r\\n    }, 0);\\r\\n}\\r\\n\\r\\nfunction EventEmitter() {\\r\\n    if (!this._azar_extendEvents) {\\r\\n        Object.defineProperty(this, '_azar_extendEvents', {\\r\\n            enumerable: false,\\r\\n            value: this._azar_extendEvents || { supported: {}, prioritize: {}, nonprioritize: {} }\\r\\n        });\\r\\n        Object.defineProperty(this, '__azar_force', {\\r\\n            value: true,\\r\\n            enumerable: false\\r\\n        });\\r\\n    }\\r\\n}\\r\\n\\r\\n\\r\\nEventEmitter.prototype.defineEvent = function (name) {\\r\\n    if (name instanceof Array) {\\r\\n        for (var i = 0; i < name.length; ++i)\\r\\n            this._azar_extendEvents.supported[name[i]] = true;\\r\\n    }\\r\\n    else\\r\\n        this._azar_extendEvents.supported[name] = true;\\r\\n    return this;\\r\\n};\\r\\n\\r\\nEventEmitter.prototype.isSupportedEvent = function (name) {\\r\\n    return true;\\r\\n};\\r\\n\\r\\n\\r\\nEventEmitter.prototype.emit = function (eventName, data) {\\r\\n    this.fire.apply(this, arguments);\\r\\n};\\r\\n\\r\\nEventEmitter.prototype.fire = function (eventName, data) {\\r\\n    var others = Array.prototype.slice.call(arguments, 1);\\r\\n    if (this.isSupportedEvent(eventName)) {\\r\\n        var listenerList;\\r\\n        var i;\\r\\n        if (this._azar_extendEvents.prioritize[eventName]) {\\r\\n            listenerList = this._azar_extendEvents.prioritize[eventName].slice();\\r\\n            for (i = 0; i < listenerList.length; ++i) {\\r\\n                try {\\r\\n                    listenerList[i].wrappedCallback.apply(this, others);\\r\\n                } catch (e) {\\r\\n                   safeThrow(e);\\r\\n                }\\r\\n            }\\r\\n        }\\r\\n\\r\\n        if (this._azar_extendEvents.nonprioritize[eventName]) {\\r\\n            listenerList = this._azar_extendEvents.nonprioritize[eventName].slice();\\r\\n            for (i = 0; i < listenerList.length; ++i) {\\r\\n                try {\\r\\n                    listenerList[i].wrappedCallback.apply(this, others);\\r\\n                } catch (e) {\\r\\n                    safeThrow(e);\\r\\n                }\\r\\n            }\\r\\n        }\\r\\n    }\\r\\n    else {\\r\\n        if (this.dispatchEvent) {\\r\\n            var event = new Event(eventName);\\r\\n            data && Object.assign(event, data);\\r\\n            this.dispatchEvent(event);\\r\\n        }\\r\\n        else\\r\\n            throw new Error(\\\"Not support event \\\" + eventName);\\r\\n    }\\r\\n    return this;\\r\\n};\\r\\n\\r\\n\\r\\nEventEmitter.prototype.eventEmittorOnWithTime = function (isOnce, arg0, arg1, arg2) {\\r\\n    if (typeof arg0 == 'object') {\\r\\n        for (var key in arg0) {\\r\\n            this.eventEmittorOnWithTime(isOnce, key, arg0[key]);\\r\\n        }\\r\\n        return this;\\r\\n    }\\r\\n    else {\\r\\n        if (typeof arg1 == 'object') {\\r\\n            return this.eventEmittorOnWithTime(isOnce, arg0, arg1.callback, arg1.cap);\\r\\n        }\\r\\n        else {\\r\\n            var eventArr = this._azar_extendEvents[arg2 ? 'prioritize' : 'nonprioritize'][arg0] || [];\\r\\n            var eventIndex = -1;\\r\\n            for (var i = 0; i < eventArr.length; ++i) {\\r\\n                if (eventArr[i].wrappedCallback == arg1) {\\r\\n                    eventIndex = i;\\r\\n                    break;\\r\\n                }\\r\\n            }\\r\\n            if (eventIndex < 0) {\\r\\n                var event = { isOnce: isOnce, eventName: arg0, callback: arg1, cap: !!arg2 };\\r\\n                //wrappedCallback will be call\\r\\n                if (isOnce) {\\r\\n                    event.wrappedCallback = function () {\\r\\n                        event.callback.apply(this, arguments);\\r\\n                        this.off(event.eventName, event.wrappedCallback, event.cap);\\r\\n                    };\\r\\n                }\\r\\n                else {\\r\\n                    event.wrappedCallback = event.callback;\\r\\n                }\\r\\n\\r\\n                if (!this.isSupportedEvent(arg0)) {\\r\\n                    if (this.addEventListener) {\\r\\n                        this.addEventListener(arg0, event.wrappedCallback, !!arg2);\\r\\n                    }\\r\\n                    else {\\r\\n                        this.attachEvent('on' + arg0, arg1, !!arg2);\\r\\n                    }\\r\\n                }\\r\\n\\r\\n                eventArr.push(event);\\r\\n                this._azar_extendEvents[arg2 ? 'prioritize' : 'nonprioritize'][arg0] = eventArr;\\r\\n            }\\r\\n            else {\\r\\n                console.warn(\\\"dupplicate event\\\");\\r\\n            }\\r\\n\\r\\n        }\\r\\n        return this;\\r\\n    }\\r\\n};\\r\\n\\r\\n\\r\\nEventEmitter.prototype.on = function (arg0, arg1, arg2) {\\r\\n    this.eventEmittorOnWithTime(false, arg0, arg1, arg2);\\r\\n    return this;\\r\\n};\\r\\n\\r\\n\\r\\nEventEmitter.prototype.once = function (arg0, arg1, arg2) {\\r\\n    this.eventEmittorOnWithTime(true, arg0, arg1, arg2);\\r\\n    return this;\\r\\n};\\r\\n\\r\\nEventEmitter.prototype.off = function (arg0, arg1, arg2) {\\r\\n    if (typeof arg0 == 'object') {\\r\\n        for (var key in arg0) {\\r\\n            this.off(key, arg0[key]);\\r\\n        }\\r\\n        return this;\\r\\n    }\\r\\n    else {\\r\\n        if (typeof arg1 == 'object') {\\r\\n            return this.off(arg0, arg1.callback, arg1.cap);\\r\\n        }\\r\\n        else {\\r\\n            var eventArr = this._azar_extendEvents[arg2 ? 'prioritize' : 'nonprioritize'][arg0] || [];\\r\\n            var newEventArray = [];\\r\\n            for (var i = 0; i < eventArr.length; ++i) {\\r\\n                var event = eventArr[i];\\r\\n                if (event.wrappedCallback == arg1) {\\r\\n                    //Dont add to newEventArray\\r\\n                    if (this.isSupportedEvent(arg0)) {\\r\\n                    }\\r\\n                    else {\\r\\n                        if (this.removeEventListener) {\\r\\n                            this.removeEventListener(event.eventName, event.wrappedCallback, !!event.cap);\\r\\n                        }\\r\\n                        else {\\r\\n                            this.detachEvent('on' + event.eventName, event.wrappedCallback, !!event.cap);\\r\\n                        }\\r\\n                    }\\r\\n                }\\r\\n                else {\\r\\n                    newEventArray.push(event);\\r\\n                }\\r\\n            }\\r\\n            this._azar_extendEvents[arg2 ? 'prioritize' : 'nonprioritize'][arg0] = newEventArray;\\r\\n            return this;\\r\\n        }\\r\\n    }\\r\\n\\r\\n};\\r\\n\\r\\n\\r\\nvar TYPE_WORKER = 'WORKER';\\r\\n\\r\\n/**\\r\\n *\\r\\n * @param {Worker|HTMLIFrameElement|WorkerGlobalScope|Window=} host\\r\\n */\\r\\nfunction IFrameBridge(host) {\\r\\n    EventEmitter.call(this);\\r\\n    /***\\r\\n     *\\r\\n     * @type {Worker|HTMLIFrameElement|WorkerGlobalScope|Window|WorkerGlobalScope|Window}\\r\\n     */\\r\\n    this.host = host || self;\\r\\n    this.sender = null;\\r\\n    this.receiver = null;\\r\\n    this.origin = null;\\r\\n    this.type = 'NOT_DETECT';\\r\\n    this.id = \\\"UNSET\\\";\\r\\n\\r\\n    this.sync = this._detectHost().then(() => this._attach());\\r\\n\\r\\n    this.__azarResolveCallbacks = {};\\r\\n    this.__azarRejectCallbacks = {};\\r\\n}\\r\\n\\r\\nIFrameBridge.prototype._detectHost = function () {\\r\\n          this.type = TYPE_WORKER;\\r\\n          this.sender = this.host;\\r\\n          this.receiver = this.host;\\r\\n          return Promise.resolve();\\r\\n};\\r\\n\\r\\n\\r\\nIFrameBridge.prototype._attach = function () {\\r\\n    if (this.receiver.addEventListener) {\\r\\n        this.receiver.addEventListener(\\\"message\\\", this.__azarMessageListener.bind(this), false);\\r\\n    }\\r\\n    else if (this.receiver.attachEvent) {\\r\\n        this.receiver.attachEvent(\\\"onmessage\\\", this.__azarMessageListener.bind(this));\\r\\n    }\\r\\n    else {\\r\\n        this.receiver.onmessage = this.__azarMessageListener.bind(this);\\r\\n    }\\r\\n};\\r\\n\\r\\n\\r\\nIFrameBridge.getInstance = function () {\\r\\n    if (!IFrameBridge.shareInstance) {\\r\\n        var origin = location.origin;\\r\\n        var rootOrigin = IFrameBridge.getParentUrl().match(/^(http|https):\\\\/\\\\/[^/]+/);\\r\\n        if (rootOrigin) {\\r\\n            rootOrigin = rootOrigin[0];\\r\\n        }\\r\\n        else {\\r\\n            rootOrigin = origin;\\r\\n        }\\r\\n\\r\\n        // IFrameBridge.shareInstance = new IFrameBridge(self, rootOrigin == origin? undefined: \\\"*\\\" || rootOrigin );\\r\\n        var host = self;\\r\\n        IFrameBridge.shareInstance = new IFrameBridge(host, rootOrigin);\\r\\n    }\\r\\n    return IFrameBridge.shareInstance;\\r\\n};\\r\\n\\r\\n\\r\\nObject.defineProperties(IFrameBridge.prototype, Object.getOwnPropertyDescriptors(EventEmitter.prototype));\\r\\nIFrameBridge.prototype.constructor = IFrameBridge;\\r\\n\\r\\n\\r\\nIFrameBridge.getParentUrl = function () {\\r\\n    var parentUrl = (window.location != window.parent.location)\\r\\n        ? document.referrer\\r\\n        : document.location.href;\\r\\n    return parentUrl;\\r\\n};\\r\\n\\r\\nIFrameBridge.prototype.__azarMessageListener = function (event) {\\r\\n    this.__azarHandleData(event.data);\\r\\n};\\r\\n\\r\\n\\r\\nIFrameBridge.prototype.__azarHandleData = function (data) {\\r\\n    if (data.bridgeId !== this.id) return;\\r\\n    if (data.type) {\\r\\n        if (data.type == \\\"INVOKE\\\") {\\r\\n            try {\\r\\n                var result = this.__azarSelfInvoke(data.name, data.params);\\r\\n                if (result && typeof result.then == 'function') {\\r\\n                    result.then(function (result) {\\r\\n                        this.__azarResolve(data.taskId, result);\\r\\n                    }.bind(this))\\r\\n                        .catch(function (err) {\\r\\n                            safeThrow(err);\\r\\n                            this.__azarResolve(data.taskId, null, err);\\r\\n                        }.bind(this));\\r\\n                }\\r\\n                else {\\r\\n                    this.__azarResolve(data.taskId, result);\\r\\n                }\\r\\n            } catch (err) {\\r\\n                safeThrow(err);\\r\\n                this.__azarResolve(data.taskId, null, err);\\r\\n            }\\r\\n        }\\r\\n        else if (data.type == \\\"INVOKE_RESULT\\\") {\\r\\n            if (this.__azarResolveCallbacks[data.taskId]) {\\r\\n                if (data.error) {\\r\\n                    this.__azarRejectCallbacks[data.taskId](data.error);\\r\\n                }\\r\\n                else {\\r\\n                    this.__azarResolveCallbacks[data.taskId](data.result);\\r\\n                }\\r\\n                delete this.__azarResolveCallbacks[data.taskId];\\r\\n                delete this.__azarRejectCallbacks[data.taskId];\\r\\n            }\\r\\n        }\\r\\n        else if (data.type == \\\"EMIT\\\") {\\r\\n            this.fire.apply(this, data.params);\\r\\n        }\\r\\n        else this.fire('message', data, this);\\r\\n    }\\r\\n};\\r\\n\\r\\n\\r\\nIFrameBridge.prototype.__azarResolve = function (taskId, result, error) {\\r\\n    var data = {\\r\\n        type: \\\"INVOKE_RESULT\\\",\\r\\n        taskId: taskId,\\r\\n        result: result,\\r\\n        error: error,\\r\\n        bridgeId: this.id\\r\\n    };\\r\\n\\r\\n    if (this.origin) {\\r\\n        this.sender.postMessage(data, this.origin);\\r\\n    }\\r\\n    else {\\r\\n        this.sender.postMessage(data);\\r\\n    }\\r\\n};\\r\\n\\r\\n\\r\\nIFrameBridge.prototype.__azarSelfInvoke = function (name, params) {\\r\\n    if (typeof this[name] == 'function') {\\r\\n        return this[name].apply(this, params);\\r\\n    }\\r\\n    else {\\r\\n        return this[name];\\r\\n    }\\r\\n};\\r\\n\\r\\n\\r\\nIFrameBridge.prototype.emit = function () {\\r\\n    var params = [];\\r\\n    params.push.apply(params, arguments);\\r\\n    this.sync.then(function () {\\r\\n        var data = {\\r\\n            type: \\\"EMIT\\\",\\r\\n            params: params,\\r\\n            bridgeId: this.id\\r\\n        };\\r\\n        if (this.origin) {\\r\\n            this.sender.postMessage(data, this.origin);\\r\\n        }\\r\\n        else {\\r\\n            this.sender.postMessage(data);\\r\\n        }\\r\\n    }.bind(this));\\r\\n    return this;\\r\\n};\\r\\n\\r\\n\\r\\nIFrameBridge.prototype.invoke = function (name) {\\r\\n    var params = [];\\r\\n    params.push.apply(params, arguments);\\r\\n    params.shift();\\r\\n    return this.sync.then(function () {\\r\\n        var indent = randomIdent(32);\\r\\n        var data = {\\r\\n            type: 'INVOKE',\\r\\n            params: params,\\r\\n            taskId: indent,\\r\\n            name: name,\\r\\n            bridgeId: this.id\\r\\n        };\\r\\n        if (this.origin) {\\r\\n            this.host.postMessage(data, this.origin);\\r\\n        }\\r\\n        else {\\r\\n            this.host.postMessage(data);\\r\\n        }\\r\\n        return new Promise(function (resolve, reject) {\\r\\n            this.__azarResolveCallbacks[indent] = resolve;\\r\\n            this.__azarRejectCallbacks[indent] = reject;\\r\\n        }.bind(this));\\r\\n    }.bind(this));\\r\\n};\\r\\n\\r\\nIFrameBridge.prototype.importScriptURLs = function () {\\r\\n    return this.invoke.apply(this, ['_receiveScriptURLs'].concat(Array.prototype.slice.call(arguments)));\\r\\n};\\r\\n\\r\\nIFrameBridge.prototype.importScript = function (code) {\\r\\n    var blob = new Blob([code], { type: 'application/javascript' });\\r\\n    var url = URL.createObjectURL(blob);\\r\\n    return this.importScriptURLs(url);\\r\\n};\\r\\n\\r\\n\\r\\nIFrameBridge.prototype.createMethod = function (name, fx) {\\r\\n    this[name] = function () {\\r\\n        return this.invoke.apply(this, [name].concat(Array.prototype.slice.call(arguments)));\\r\\n    };\\r\\n    return this.invoke.apply(this, ['_receiveMethod', name, fx.toString()]);\\r\\n};\\r\\n\\r\\n\\r\\nIFrameBridge.prototype._receiveScriptURLs = function () {\\r\\n    if (self.importScripts) {\\r\\n        self.importScripts.apply(self, arguments);\\r\\n    }\\r\\n};\\r\\n\\r\\n\\r\\nIFrameBridge.prototype._receiveMethod = function (name, code) {\\r\\n    this[name] = (new Function('return ' + code))();\\r\\n};\\r\\n\\r\\n\\r\\nvar IFrameBridge_prototype_descriptors = Object.getOwnPropertyDescriptors(IFrameBridge.prototype);\\r\\ndelete IFrameBridge_prototype_descriptors.constructor;\\r\\n\\r\\nObject.defineProperties(self, IFrameBridge_prototype_descriptors);\\r\\nIFrameBridge.call(self, self);\");\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol/src/Network/RemoteThread.tpl?");

/***/ }),

/***/ "./css/common.css":
/*!************************!*\
  !*** ./css/common.css ***!
  \************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./common.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/common.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../node_modules/style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./css/common.css?");

/***/ }),

/***/ "./css/config_format.css":
/*!*******************************!*\
  !*** ./css/config_format.css ***!
  \*******************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./config_format.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/config_format.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../node_modules/style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./css/config_format.css?");

/***/ }),

/***/ "./css/editableanswerctn.css":
/*!***********************************!*\
  !*** ./css/editableanswerctn.css ***!
  \***********************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./editableanswerctn.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/editableanswerctn.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../node_modules/style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./css/editableanswerctn.css?");

/***/ }),

/***/ "./css/linearscale.css":
/*!*****************************!*\
  !*** ./css/linearscale.css ***!
  \*****************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./linearscale.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/linearscale.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../node_modules/style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./css/linearscale.css?");

/***/ }),

/***/ "./css/posereditor.css":
/*!*****************************!*\
  !*** ./css/posereditor.css ***!
  \*****************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./posereditor.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/posereditor.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../node_modules/style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./css/posereditor.css?");

/***/ }),

/***/ "./css/poserevaluation.css":
/*!*********************************!*\
  !*** ./css/poserevaluation.css ***!
  \*********************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./poserevaluation.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/poserevaluation.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../node_modules/style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./css/poserevaluation.css?");

/***/ }),

/***/ "./css/poserviewer.css":
/*!*****************************!*\
  !*** ./css/poserviewer.css ***!
  \*****************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./poserviewer.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/poserviewer.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../node_modules/style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./css/poserviewer.css?");

/***/ }),

/***/ "./css/print.css":
/*!***********************!*\
  !*** ./css/print.css ***!
  \***********************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./print.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/print.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../node_modules/style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./css/print.css?");

/***/ }),

/***/ "./css/question.css":
/*!**************************!*\
  !*** ./css/question.css ***!
  \**************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./question.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/question.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../node_modules/style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./css/question.css?");

/***/ }),

/***/ "./css/questiontreeeditor.css":
/*!************************************!*\
  !*** ./css/questiontreeeditor.css ***!
  \************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./questiontreeeditor.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/questiontreeeditor.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../node_modules/style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./css/questiontreeeditor.css?");

/***/ }),

/***/ "./css/radioanswer.css":
/*!*****************************!*\
  !*** ./css/radioanswer.css ***!
  \*****************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./radioanswer.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/radioanswer.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../node_modules/style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./css/radioanswer.css?");

/***/ }),

/***/ "./css/section.css":
/*!*************************!*\
  !*** ./css/section.css ***!
  \*************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./section.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/section.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../node_modules/style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./css/section.css?");

/***/ }),

/***/ "./css/textanswer.css":
/*!****************************!*\
  !*** ./css/textanswer.css ***!
  \****************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./textanswer.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./css/textanswer.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../node_modules/style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./css/textanswer.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/autocompleteinput.css":
/*!************************************************************!*\
  !*** ./node_modules/absol-acomp/css/autocompleteinput.css ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./autocompleteinput.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/autocompleteinput.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/autocompleteinput.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/boardtable.css":
/*!*****************************************************!*\
  !*** ./node_modules/absol-acomp/css/boardtable.css ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./boardtable.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/boardtable.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/boardtable.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/bscroller.css":
/*!****************************************************!*\
  !*** ./node_modules/absol-acomp/css/bscroller.css ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./bscroller.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/bscroller.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/bscroller.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/buttonarray.css":
/*!******************************************************!*\
  !*** ./node_modules/absol-acomp/css/buttonarray.css ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./buttonarray.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/buttonarray.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/buttonarray.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/buttonrange.css":
/*!******************************************************!*\
  !*** ./node_modules/absol-acomp/css/buttonrange.css ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./buttonrange.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/buttonrange.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/buttonrange.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/calendarinput.css":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/css/calendarinput.css ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./calendarinput.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/calendarinput.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/calendarinput.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/checkbox.css":
/*!***************************************************!*\
  !*** ./node_modules/absol-acomp/css/checkbox.css ***!
  \***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./checkbox.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/checkbox.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/checkbox.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/checkboxbutton.css":
/*!*********************************************************!*\
  !*** ./node_modules/absol-acomp/css/checkboxbutton.css ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./checkboxbutton.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/checkboxbutton.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/checkboxbutton.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/checkboxinput.css":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/css/checkboxinput.css ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./checkboxinput.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/checkboxinput.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/checkboxinput.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/checklistbox.css":
/*!*******************************************************!*\
  !*** ./node_modules/absol-acomp/css/checklistbox.css ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./checklistbox.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/checklistbox.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/checklistbox.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/checklistitem.css":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/css/checklistitem.css ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./checklistitem.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/checklistitem.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/checklistitem.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/checktreebox.css":
/*!*******************************************************!*\
  !*** ./node_modules/absol-acomp/css/checktreebox.css ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./checktreebox.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/checktreebox.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/checktreebox.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/checktreeitem.css":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/css/checktreeitem.css ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./checktreeitem.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/checktreeitem.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/checktreeitem.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/chromecalendar.css":
/*!*********************************************************!*\
  !*** ./node_modules/absol-acomp/css/chromecalendar.css ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./chromecalendar.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/chromecalendar.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/chromecalendar.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/chrometime24picker.css":
/*!*************************************************************!*\
  !*** ./node_modules/absol-acomp/css/chrometime24picker.css ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./chrometime24picker.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/chrometime24picker.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/chrometime24picker.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/chrometimepicker.css":
/*!***********************************************************!*\
  !*** ./node_modules/absol-acomp/css/chrometimepicker.css ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./chrometimepicker.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/chrometimepicker.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/chrometimepicker.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/circlesectionlabel.css":
/*!*************************************************************!*\
  !*** ./node_modules/absol-acomp/css/circlesectionlabel.css ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./circlesectionlabel.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/circlesectionlabel.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/circlesectionlabel.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/ckplaceholder.css":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/css/ckplaceholder.css ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./ckplaceholder.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/ckplaceholder.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/ckplaceholder.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/common.css":
/*!*************************************************!*\
  !*** ./node_modules/absol-acomp/css/common.css ***!
  \*************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./common.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/common.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/common.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/contextmenu.css":
/*!******************************************************!*\
  !*** ./node_modules/absol-acomp/css/contextmenu.css ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./contextmenu.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/contextmenu.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/contextmenu.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/countdownclock.css":
/*!*********************************************************!*\
  !*** ./node_modules/absol-acomp/css/countdownclock.css ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./countdownclock.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/countdownclock.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/countdownclock.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/countdowntext.css":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/css/countdowntext.css ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./countdowntext.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/countdowntext.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/countdowntext.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/cpuviewer.css":
/*!****************************************************!*\
  !*** ./node_modules/absol-acomp/css/cpuviewer.css ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./cpuviewer.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/cpuviewer.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/cpuviewer.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/dateinput.css":
/*!****************************************************!*\
  !*** ./node_modules/absol-acomp/css/dateinput.css ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./dateinput.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/dateinput.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/dateinput.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/dateinyearinput.css":
/*!**********************************************************!*\
  !*** ./node_modules/absol-acomp/css/dateinyearinput.css ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./dateinyearinput.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/dateinyearinput.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/dateinyearinput.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/datetimeinput.css":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/css/datetimeinput.css ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./datetimeinput.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/datetimeinput.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/datetimeinput.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/debugtask.css":
/*!****************************************************!*\
  !*** ./node_modules/absol-acomp/css/debugtask.css ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./debugtask.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/debugtask.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/debugtask.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/default.css":
/*!**************************************************!*\
  !*** ./node_modules/absol-acomp/css/default.css ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./default.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/default.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/default.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/draggablestack.css":
/*!*********************************************************!*\
  !*** ./node_modules/absol-acomp/css/draggablestack.css ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./draggablestack.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/draggablestack.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/draggablestack.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/dropdownbox.css":
/*!******************************************************!*\
  !*** ./node_modules/absol-acomp/css/dropdownbox.css ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./dropdownbox.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/dropdownbox.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/dropdownbox.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/droppanel.css":
/*!****************************************************!*\
  !*** ./node_modules/absol-acomp/css/droppanel.css ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./droppanel.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/droppanel.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/droppanel.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/dropzone.css":
/*!***************************************************!*\
  !*** ./node_modules/absol-acomp/css/dropzone.css ***!
  \***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./dropzone.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/dropzone.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/dropzone.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/dualselectbox.css":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/css/dualselectbox.css ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./dualselectbox.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/dualselectbox.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/dualselectbox.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/dualselectmenu.css":
/*!*********************************************************!*\
  !*** ./node_modules/absol-acomp/css/dualselectmenu.css ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./dualselectmenu.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/dualselectmenu.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/dualselectmenu.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/dvexptree.css":
/*!****************************************************!*\
  !*** ./node_modules/absol-acomp/css/dvexptree.css ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./dvexptree.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/dvexptree.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/dvexptree.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/dynamictable.css":
/*!*******************************************************!*\
  !*** ./node_modules/absol-acomp/css/dynamictable.css ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./dynamictable.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/dynamictable.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/dynamictable.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/editabletext.css":
/*!*******************************************************!*\
  !*** ./node_modules/absol-acomp/css/editabletext.css ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./editabletext.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/editabletext.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/editabletext.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/emojicounter.css":
/*!*******************************************************!*\
  !*** ./node_modules/absol-acomp/css/emojicounter.css ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./emojicounter.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/emojicounter.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/emojicounter.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/emojipicker.css":
/*!******************************************************!*\
  !*** ./node_modules/absol-acomp/css/emojipicker.css ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./emojipicker.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/emojipicker.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/emojipicker.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/emojipickertooltip.css":
/*!*************************************************************!*\
  !*** ./node_modules/absol-acomp/css/emojipickertooltip.css ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./emojipickertooltip.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/emojipickertooltip.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/emojipickertooltip.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/emojiuserlisttooltip.css":
/*!***************************************************************!*\
  !*** ./node_modules/absol-acomp/css/emojiuserlisttooltip.css ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./emojiuserlisttooltip.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/emojiuserlisttooltip.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/emojiuserlisttooltip.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/exptree.css":
/*!**************************************************!*\
  !*** ./node_modules/absol-acomp/css/exptree.css ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./exptree.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/exptree.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/exptree.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/fileinputbox.css":
/*!*******************************************************!*\
  !*** ./node_modules/absol-acomp/css/fileinputbox.css ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./fileinputbox.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/fileinputbox.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/fileinputbox.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/filelistinput.css":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/css/filelistinput.css ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./filelistinput.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/filelistinput.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/filelistinput.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/finder.css":
/*!*************************************************!*\
  !*** ./node_modules/absol-acomp/css/finder.css ***!
  \*************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./finder.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/finder.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/finder.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/flexiconbutton.css":
/*!*********************************************************!*\
  !*** ./node_modules/absol-acomp/css/flexiconbutton.css ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./flexiconbutton.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/flexiconbutton.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/flexiconbutton.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/flexiconinput.css":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/css/flexiconinput.css ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./flexiconinput.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/flexiconinput.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/flexiconinput.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/follower.css":
/*!***************************************************!*\
  !*** ./node_modules/absol-acomp/css/follower.css ***!
  \***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./follower.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/follower.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/follower.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/frame.css":
/*!************************************************!*\
  !*** ./node_modules/absol-acomp/css/frame.css ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./frame.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/frame.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/frame.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/frameview.css":
/*!****************************************************!*\
  !*** ./node_modules/absol-acomp/css/frameview.css ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./frameview.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/frameview.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/frameview.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/hanger.css":
/*!*************************************************!*\
  !*** ./node_modules/absol-acomp/css/hanger.css ***!
  \*************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./hanger.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/hanger.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/hanger.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/hexasectionlabel.css":
/*!***********************************************************!*\
  !*** ./node_modules/absol-acomp/css/hexasectionlabel.css ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./hexasectionlabel.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/hexasectionlabel.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/hexasectionlabel.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/hruler.css":
/*!*************************************************!*\
  !*** ./node_modules/absol-acomp/css/hruler.css ***!
  \*************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./hruler.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/hruler.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/hruler.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/icons.css":
/*!************************************************!*\
  !*** ./node_modules/absol-acomp/css/icons.css ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./icons.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/icons.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/icons.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/keeview.css":
/*!**************************************************!*\
  !*** ./node_modules/absol-acomp/css/keeview.css ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./keeview.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/keeview.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/keeview.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/keeview/overviewwidget.css":
/*!*****************************************************************!*\
  !*** ./node_modules/absol-acomp/css/keeview/overviewwidget.css ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./overviewwidget.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/keeview/overviewwidget.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/keeview/overviewwidget.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/keeview/owmodal.css":
/*!**********************************************************!*\
  !*** ./node_modules/absol-acomp/css/keeview/owmodal.css ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./owmodal.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/keeview/owmodal.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/keeview/owmodal.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/kvcommentitem.css":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/css/kvcommentitem.css ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./kvcommentitem.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/kvcommentitem.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/kvcommentitem.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/linearcolorbar.css":
/*!*********************************************************!*\
  !*** ./node_modules/absol-acomp/css/linearcolorbar.css ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./linearcolorbar.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/linearcolorbar.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/linearcolorbar.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/locationinput.css":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/css/locationinput.css ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./locationinput.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/locationinput.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/locationinput.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/mediainput.css":
/*!*****************************************************!*\
  !*** ./node_modules/absol-acomp/css/mediainput.css ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./mediainput.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/mediainput.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/mediainput.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/menu.css":
/*!***********************************************!*\
  !*** ./node_modules/absol-acomp/css/menu.css ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./menu.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/menu.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/menu.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/messagedialog.css":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/css/messagedialog.css ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./messagedialog.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/messagedialog.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/messagedialog.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/messageinput.css":
/*!*******************************************************!*\
  !*** ./node_modules/absol-acomp/css/messageinput.css ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./messageinput.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/messageinput.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/messageinput.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/mknavigator.css":
/*!******************************************************!*\
  !*** ./node_modules/absol-acomp/css/mknavigator.css ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./mknavigator.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/mknavigator.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/mknavigator.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/mobileapp.css":
/*!****************************************************!*\
  !*** ./node_modules/absol-acomp/css/mobileapp.css ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./mobileapp.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/mobileapp.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/mobileapp.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/modal.css":
/*!************************************************!*\
  !*** ./node_modules/absol-acomp/css/modal.css ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./modal.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/modal.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/modal.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/multiselectmenu.css":
/*!**********************************************************!*\
  !*** ./node_modules/absol-acomp/css/multiselectmenu.css ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./multiselectmenu.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/multiselectmenu.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/multiselectmenu.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/numberinput.css":
/*!******************************************************!*\
  !*** ./node_modules/absol-acomp/css/numberinput.css ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./numberinput.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/numberinput.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/numberinput.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/objectmergetool.css":
/*!**********************************************************!*\
  !*** ./node_modules/absol-acomp/css/objectmergetool.css ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./objectmergetool.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/objectmergetool.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/objectmergetool.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/onscreenwidget.css":
/*!*********************************************************!*\
  !*** ./node_modules/absol-acomp/css/onscreenwidget.css ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./onscreenwidget.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/onscreenwidget.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/onscreenwidget.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/onscreenwindow.css":
/*!*********************************************************!*\
  !*** ./node_modules/absol-acomp/css/onscreenwindow.css ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./onscreenwindow.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/onscreenwindow.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/onscreenwindow.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/pageindicator.css":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/css/pageindicator.css ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./pageindicator.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/pageindicator.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/pageindicator.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/pageselector.css":
/*!*******************************************************!*\
  !*** ./node_modules/absol-acomp/css/pageselector.css ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./pageselector.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/pageselector.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/pageselector.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/pathmenu.css":
/*!***************************************************!*\
  !*** ./node_modules/absol-acomp/css/pathmenu.css ***!
  \***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./pathmenu.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/pathmenu.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/pathmenu.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/placesearchautocomplete.css":
/*!******************************************************************!*\
  !*** ./node_modules/absol-acomp/css/placesearchautocomplete.css ***!
  \******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./placesearchautocomplete.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/placesearchautocomplete.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/placesearchautocomplete.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/preinput.css":
/*!***************************************************!*\
  !*** ./node_modules/absol-acomp/css/preinput.css ***!
  \***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./preinput.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/preinput.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/preinput.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/processlbar.css":
/*!******************************************************!*\
  !*** ./node_modules/absol-acomp/css/processlbar.css ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./processlbar.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/processlbar.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/processlbar.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/progressbar.css":
/*!******************************************************!*\
  !*** ./node_modules/absol-acomp/css/progressbar.css ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./progressbar.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/progressbar.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/progressbar.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/quicklistbutton.css":
/*!**********************************************************!*\
  !*** ./node_modules/absol-acomp/css/quicklistbutton.css ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./quicklistbutton.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/quicklistbutton.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/quicklistbutton.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/quickpath.css":
/*!****************************************************!*\
  !*** ./node_modules/absol-acomp/css/quickpath.css ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./quickpath.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/quickpath.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/quickpath.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/radio.css":
/*!************************************************!*\
  !*** ./node_modules/absol-acomp/css/radio.css ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./radio.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/radio.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/radio.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/radiobutton.css":
/*!******************************************************!*\
  !*** ./node_modules/absol-acomp/css/radiobutton.css ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./radiobutton.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/radiobutton.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/radiobutton.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/radioinput.css":
/*!*****************************************************!*\
  !*** ./node_modules/absol-acomp/css/radioinput.css ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./radioinput.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/radioinput.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/radioinput.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/resizebox.css":
/*!****************************************************!*\
  !*** ./node_modules/absol-acomp/css/resizebox.css ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./resizebox.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/resizebox.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/resizebox.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/ribbonbutton.css":
/*!*******************************************************!*\
  !*** ./node_modules/absol-acomp/css/ribbonbutton.css ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./ribbonbutton.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/ribbonbutton.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/ribbonbutton.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/ribbonsplitbutton.css":
/*!************************************************************!*\
  !*** ./node_modules/absol-acomp/css/ribbonsplitbutton.css ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./ribbonsplitbutton.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/ribbonsplitbutton.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/ribbonsplitbutton.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/rotatedtext.css":
/*!******************************************************!*\
  !*** ./node_modules/absol-acomp/css/rotatedtext.css ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./rotatedtext.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/rotatedtext.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/rotatedtext.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/scroller.css":
/*!***************************************************!*\
  !*** ./node_modules/absol-acomp/css/scroller.css ***!
  \***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./scroller.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/scroller.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/scroller.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/searcher.css":
/*!***************************************************!*\
  !*** ./node_modules/absol-acomp/css/searcher.css ***!
  \***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./searcher.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/searcher.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/searcher.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/selectbox.css":
/*!****************************************************!*\
  !*** ./node_modules/absol-acomp/css/selectbox.css ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./selectbox.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/selectbox.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/selectbox.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/selectlist.css":
/*!*****************************************************!*\
  !*** ./node_modules/absol-acomp/css/selectlist.css ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./selectlist.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/selectlist.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/selectlist.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/selectlistbox.css":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/css/selectlistbox.css ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./selectlistbox.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/selectlistbox.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/selectlistbox.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/selectmenu.css":
/*!*****************************************************!*\
  !*** ./node_modules/absol-acomp/css/selectmenu.css ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./selectmenu.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/selectmenu.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/selectmenu.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/selecttable.css":
/*!******************************************************!*\
  !*** ./node_modules/absol-acomp/css/selecttable.css ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./selecttable.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/selecttable.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/selecttable.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/selecttreeeleafbox.css":
/*!*************************************************************!*\
  !*** ./node_modules/absol-acomp/css/selecttreeeleafbox.css ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./selecttreeeleafbox.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/selecttreeeleafbox.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/selecttreeeleafbox.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/selecttreeleafmenu.css":
/*!*************************************************************!*\
  !*** ./node_modules/absol-acomp/css/selecttreeleafmenu.css ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./selecttreeleafmenu.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/selecttreeleafmenu.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/selecttreeleafmenu.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/selecttreemenu.css":
/*!*********************************************************!*\
  !*** ./node_modules/absol-acomp/css/selecttreemenu.css ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./selecttreemenu.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/selecttreemenu.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/selecttreemenu.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/singlepage.css":
/*!*****************************************************!*\
  !*** ./node_modules/absol-acomp/css/singlepage.css ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./singlepage.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/singlepage.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/singlepage.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/snackbar.css":
/*!***************************************************!*\
  !*** ./node_modules/absol-acomp/css/snackbar.css ***!
  \***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./snackbar.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/snackbar.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/snackbar.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/spaninput.css":
/*!****************************************************!*\
  !*** ./node_modules/absol-acomp/css/spaninput.css ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./spaninput.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/spaninput.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/spaninput.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/statictabbar.css":
/*!*******************************************************!*\
  !*** ./node_modules/absol-acomp/css/statictabbar.css ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./statictabbar.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/statictabbar.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/statictabbar.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/switch.css":
/*!*************************************************!*\
  !*** ./node_modules/absol-acomp/css/switch.css ***!
  \*************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./switch.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/switch.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/switch.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/tablescroller.css":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/css/tablescroller.css ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./tablescroller.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/tablescroller.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/tablescroller.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/tablevscroller.css":
/*!*********************************************************!*\
  !*** ./node_modules/absol-acomp/css/tablevscroller.css ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./tablevscroller.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/tablevscroller.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/tablevscroller.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/tabview.css":
/*!**************************************************!*\
  !*** ./node_modules/absol-acomp/css/tabview.css ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./tabview.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/tabview.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/tabview.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/textarea2.css":
/*!****************************************************!*\
  !*** ./node_modules/absol-acomp/css/textarea2.css ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./textarea2.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/textarea2.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/textarea2.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/textclipboard.css":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/css/textclipboard.css ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./textclipboard.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/textclipboard.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/textclipboard.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/timeinput.css":
/*!****************************************************!*\
  !*** ./node_modules/absol-acomp/css/timeinput.css ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./timeinput.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/timeinput.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/timeinput.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/timepicker.css":
/*!*****************************************************!*\
  !*** ./node_modules/absol-acomp/css/timepicker.css ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./timepicker.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/timepicker.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/timepicker.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/timerange24input.css":
/*!***********************************************************!*\
  !*** ./node_modules/absol-acomp/css/timerange24input.css ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./timerange24input.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/timerange24input.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/timerange24input.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/timeselectinput.css":
/*!**********************************************************!*\
  !*** ./node_modules/absol-acomp/css/timeselectinput.css ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./timeselectinput.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/timeselectinput.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/timeselectinput.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/toast.css":
/*!************************************************!*\
  !*** ./node_modules/absol-acomp/css/toast.css ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./toast.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/toast.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/toast.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/toclist.css":
/*!**************************************************!*\
  !*** ./node_modules/absol-acomp/css/toclist.css ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./toclist.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/toclist.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/toclist.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/tokenfield.css":
/*!*****************************************************!*\
  !*** ./node_modules/absol-acomp/css/tokenfield.css ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./tokenfield.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/tokenfield.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/tokenfield.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/tokenizeinput.css":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/css/tokenizeinput.css ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./tokenizeinput.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/tokenizeinput.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/tokenizeinput.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/tooltip.css":
/*!**************************************************!*\
  !*** ./node_modules/absol-acomp/css/tooltip.css ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./tooltip.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/tooltip.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/tooltip.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/trackbar.css":
/*!***************************************************!*\
  !*** ./node_modules/absol-acomp/css/trackbar.css ***!
  \***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./trackbar.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/trackbar.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/trackbar.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/trackbarinput.css":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/css/trackbarinput.css ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./trackbarinput.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/trackbarinput.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/trackbarinput.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/treechart.css":
/*!****************************************************!*\
  !*** ./node_modules/absol-acomp/css/treechart.css ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./treechart.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/treechart.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/treechart.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/treelist.css":
/*!***************************************************!*\
  !*** ./node_modules/absol-acomp/css/treelist.css ***!
  \***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./treelist.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/treelist.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/treelist.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/treetable.css":
/*!****************************************************!*\
  !*** ./node_modules/absol-acomp/css/treetable.css ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./treetable.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/treetable.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/treetable.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/variantcolors.css":
/*!********************************************************!*\
  !*** ./node_modules/absol-acomp/css/variantcolors.css ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./variantcolors.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/variantcolors.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/variantcolors.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/verticaltimeline.css":
/*!***********************************************************!*\
  !*** ./node_modules/absol-acomp/css/verticaltimeline.css ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./verticaltimeline.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/verticaltimeline.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/verticaltimeline.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/verticaltreediagram.css":
/*!**************************************************************!*\
  !*** ./node_modules/absol-acomp/css/verticaltreediagram.css ***!
  \**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./verticaltreediagram.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/verticaltreediagram.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/verticaltreediagram.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/videourldialog.css":
/*!*********************************************************!*\
  !*** ./node_modules/absol-acomp/css/videourldialog.css ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./videourldialog.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/videourldialog.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/videourldialog.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/vruler.css":
/*!*************************************************!*\
  !*** ./node_modules/absol-acomp/css/vruler.css ***!
  \*************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./vruler.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/vruler.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/vruler.css?");

/***/ }),

/***/ "./node_modules/absol-acomp/css/widthheightresizer.css":
/*!*************************************************************!*\
  !*** ./node_modules/absol-acomp/css/widthheightresizer.css ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./widthheightresizer.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-acomp/css/widthheightresizer.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/css/widthheightresizer.css?");

/***/ }),

/***/ "./node_modules/absol-form/css/cmdtool.css":
/*!*************************************************!*\
  !*** ./node_modules/absol-form/css/cmdtool.css ***!
  \*************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\nvar content = __webpack_require__(/*! !!../../css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./cmdtool.css */ \"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/absol-form/css/cmdtool.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = __webpack_require__(/*! !../../style-loader/lib/addStyles.js */ \"./node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(false) {}\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-form/css/cmdtool.css?");

/***/ }),

/***/ "./node_modules/style-loader/lib/addStyles.js":
/*!****************************************************!*\
  !*** ./node_modules/style-loader/lib/addStyles.js ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getTarget = function (target, parent) {\n  if (parent){\n    return parent.querySelector(target);\n  }\n  return document.querySelector(target);\n};\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(target, parent) {\n                // If passing function in options, then use it for resolve \"head\" element.\n                // Useful for Shadow Root style i.e\n                // {\n                //   insertInto: function () { return document.querySelector(\"#foo\").shadowRoot }\n                // }\n                if (typeof target === 'function') {\n                        return target();\n                }\n                if (typeof memo[target] === \"undefined\") {\n\t\t\tvar styleTarget = getTarget.call(this, target, parent);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[target] = styleTarget;\n\t\t}\n\t\treturn memo[target]\n\t};\n})();\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = __webpack_require__(/*! ./urls */ \"./node_modules/style-loader/lib/urls.js\");\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n\t// tags it will allow on a page\n\tif (!options.singleton && typeof options.singleton !== \"boolean\") options.singleton = isOldIE();\n\n\t// By default, add <style> tags to the <head> element\n        if (!options.insertInto) options.insertInto = \"head\";\n\n\t// By default, add <style> tags to the bottom of the target\n\tif (!options.insertAt) options.insertAt = \"bottom\";\n\n\tvar styles = listToStyles(list, options);\n\n\taddStylesToDom(styles, options);\n\n\treturn function update (newList) {\n\t\tvar mayRemove = [];\n\n\t\tfor (var i = 0; i < styles.length; i++) {\n\t\t\tvar item = styles[i];\n\t\t\tvar domStyle = stylesInDom[item.id];\n\n\t\t\tdomStyle.refs--;\n\t\t\tmayRemove.push(domStyle);\n\t\t}\n\n\t\tif(newList) {\n\t\t\tvar newStyles = listToStyles(newList, options);\n\t\t\taddStylesToDom(newStyles, options);\n\t\t}\n\n\t\tfor (var i = 0; i < mayRemove.length; i++) {\n\t\t\tvar domStyle = mayRemove[i];\n\n\t\t\tif(domStyle.refs === 0) {\n\t\t\t\tfor (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();\n\n\t\t\t\tdelete stylesInDom[domStyle.id];\n\t\t\t}\n\t\t}\n\t};\n};\n\nfunction addStylesToDom (styles, options) {\n\tfor (var i = 0; i < styles.length; i++) {\n\t\tvar item = styles[i];\n\t\tvar domStyle = stylesInDom[item.id];\n\n\t\tif(domStyle) {\n\t\t\tdomStyle.refs++;\n\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\n\t\t\t}\n\n\t\t\tfor(; j < item.parts.length; j++) {\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t} else {\n\t\t\tvar parts = [];\n\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\n\t\t}\n\t}\n}\n\nfunction listToStyles (list, options) {\n\tvar styles = [];\n\tvar newStyles = {};\n\n\tfor (var i = 0; i < list.length; i++) {\n\t\tvar item = list[i];\n\t\tvar id = options.base ? item[0] + options.base : item[0];\n\t\tvar css = item[1];\n\t\tvar media = item[2];\n\t\tvar sourceMap = item[3];\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\n\n\t\tif(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});\n\t\telse newStyles[id].parts.push(part);\n\t}\n\n\treturn styles;\n}\n\nfunction insertStyleElement (options, style) {\n\tvar target = getElement(options.insertInto)\n\n\tif (!target) {\n\t\tthrow new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");\n\t}\n\n\tvar lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];\n\n\tif (options.insertAt === \"top\") {\n\t\tif (!lastStyleElementInsertedAtTop) {\n\t\t\ttarget.insertBefore(style, target.firstChild);\n\t\t} else if (lastStyleElementInsertedAtTop.nextSibling) {\n\t\t\ttarget.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);\n\t\t} else {\n\t\t\ttarget.appendChild(style);\n\t\t}\n\t\tstylesInsertedAtTop.push(style);\n\t} else if (options.insertAt === \"bottom\") {\n\t\ttarget.appendChild(style);\n\t} else if (typeof options.insertAt === \"object\" && options.insertAt.before) {\n\t\tvar nextSibling = getElement(options.insertAt.before, target);\n\t\ttarget.insertBefore(style, nextSibling);\n\t} else {\n\t\tthrow new Error(\"[Style Loader]\\n\\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\\n Must be 'top', 'bottom', or Object.\\n (https://github.com/webpack-contrib/style-loader#insertat)\\n\");\n\t}\n}\n\nfunction removeStyleElement (style) {\n\tif (style.parentNode === null) return false;\n\tstyle.parentNode.removeChild(style);\n\n\tvar idx = stylesInsertedAtTop.indexOf(style);\n\tif(idx >= 0) {\n\t\tstylesInsertedAtTop.splice(idx, 1);\n\t}\n}\n\nfunction createStyleElement (options) {\n\tvar style = document.createElement(\"style\");\n\n\tif(options.attrs.type === undefined) {\n\t\toptions.attrs.type = \"text/css\";\n\t}\n\n\tif(options.attrs.nonce === undefined) {\n\t\tvar nonce = getNonce();\n\t\tif (nonce) {\n\t\t\toptions.attrs.nonce = nonce;\n\t\t}\n\t}\n\n\taddAttrs(style, options.attrs);\n\tinsertStyleElement(options, style);\n\n\treturn style;\n}\n\nfunction createLinkElement (options) {\n\tvar link = document.createElement(\"link\");\n\n\tif(options.attrs.type === undefined) {\n\t\toptions.attrs.type = \"text/css\";\n\t}\n\toptions.attrs.rel = \"stylesheet\";\n\n\taddAttrs(link, options.attrs);\n\tinsertStyleElement(options, link);\n\n\treturn link;\n}\n\nfunction addAttrs (el, attrs) {\n\tObject.keys(attrs).forEach(function (key) {\n\t\tel.setAttribute(key, attrs[key]);\n\t});\n}\n\nfunction getNonce() {\n\tif (false) {}\n\n\treturn __webpack_require__.nc;\n}\n\nfunction addStyle (obj, options) {\n\tvar style, update, remove, result;\n\n\t// If a transform function was defined, run it on the css\n\tif (options.transform && obj.css) {\n\t    result = typeof options.transform === 'function'\n\t\t ? options.transform(obj.css) \n\t\t : options.transform.default(obj.css);\n\n\t    if (result) {\n\t    \t// If transform returns a value, use that instead of the original css.\n\t    \t// This allows running runtime transformations on the css.\n\t    \tobj.css = result;\n\t    } else {\n\t    \t// If the transform function returns a falsy value, don't add this css.\n\t    \t// This allows conditional loading of css\n\t    \treturn function() {\n\t    \t\t// noop\n\t    \t};\n\t    }\n\t}\n\n\tif (options.singleton) {\n\t\tvar styleIndex = singletonCounter++;\n\n\t\tstyle = singleton || (singleton = createStyleElement(options));\n\n\t\tupdate = applyToSingletonTag.bind(null, style, styleIndex, false);\n\t\tremove = applyToSingletonTag.bind(null, style, styleIndex, true);\n\n\t} else if (\n\t\tobj.sourceMap &&\n\t\ttypeof URL === \"function\" &&\n\t\ttypeof URL.createObjectURL === \"function\" &&\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\n\t\ttypeof Blob === \"function\" &&\n\t\ttypeof btoa === \"function\"\n\t) {\n\t\tstyle = createLinkElement(options);\n\t\tupdate = updateLink.bind(null, style, options);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\n\t\t\tif(style.href) URL.revokeObjectURL(style.href);\n\t\t};\n\t} else {\n\t\tstyle = createStyleElement(options);\n\t\tupdate = applyToTag.bind(null, style);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\t\t};\n\t}\n\n\tupdate(obj);\n\n\treturn function updateStyle (newObj) {\n\t\tif (newObj) {\n\t\t\tif (\n\t\t\t\tnewObj.css === obj.css &&\n\t\t\t\tnewObj.media === obj.media &&\n\t\t\t\tnewObj.sourceMap === obj.sourceMap\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdate(obj = newObj);\n\t\t} else {\n\t\t\tremove();\n\t\t}\n\t};\n}\n\nvar replaceText = (function () {\n\tvar textStore = [];\n\n\treturn function (index, replacement) {\n\t\ttextStore[index] = replacement;\n\n\t\treturn textStore.filter(Boolean).join('\\n');\n\t};\n})();\n\nfunction applyToSingletonTag (style, index, remove, obj) {\n\tvar css = remove ? \"\" : obj.css;\n\n\tif (style.styleSheet) {\n\t\tstyle.styleSheet.cssText = replaceText(index, css);\n\t} else {\n\t\tvar cssNode = document.createTextNode(css);\n\t\tvar childNodes = style.childNodes;\n\n\t\tif (childNodes[index]) style.removeChild(childNodes[index]);\n\n\t\tif (childNodes.length) {\n\t\t\tstyle.insertBefore(cssNode, childNodes[index]);\n\t\t} else {\n\t\t\tstyle.appendChild(cssNode);\n\t\t}\n\t}\n}\n\nfunction applyToTag (style, obj) {\n\tvar css = obj.css;\n\tvar media = obj.media;\n\n\tif(media) {\n\t\tstyle.setAttribute(\"media\", media)\n\t}\n\n\tif(style.styleSheet) {\n\t\tstyle.styleSheet.cssText = css;\n\t} else {\n\t\twhile(style.firstChild) {\n\t\t\tstyle.removeChild(style.firstChild);\n\t\t}\n\n\t\tstyle.appendChild(document.createTextNode(css));\n\t}\n}\n\nfunction updateLink (link, options, obj) {\n\tvar css = obj.css;\n\tvar sourceMap = obj.sourceMap;\n\n\t/*\n\t\tIf convertToAbsoluteUrls isn't defined, but sourcemaps are enabled\n\t\tand there is no publicPath defined then lets turn convertToAbsoluteUrls\n\t\ton by default.  Otherwise default to the convertToAbsoluteUrls option\n\t\tdirectly\n\t*/\n\tvar autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;\n\n\tif (options.convertToAbsoluteUrls || autoFixUrls) {\n\t\tcss = fixUrls(css);\n\t}\n\n\tif (sourceMap) {\n\t\t// http://stackoverflow.com/a/26603875\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\n\t}\n\n\tvar blob = new Blob([css], { type: \"text/css\" });\n\n\tvar oldSrc = link.href;\n\n\tlink.href = URL.createObjectURL(blob);\n\n\tif(oldSrc) URL.revokeObjectURL(oldSrc);\n}\n\n\n//# sourceURL=webpack://absol-poser/./node_modules/style-loader/lib/addStyles.js?");

/***/ }),

/***/ "?2dd4":
/*!*******************************************!*\
  !*** ./locale-data/complete.js (ignored) ***!
  \*******************************************/
/***/ (() => {

eval("/* (ignored) */\n\n//# sourceURL=webpack://absol-poser/./locale-data/complete.js_(ignored)?");

/***/ }),

/***/ "./node_modules/absol-acomp/assets/exticons/catalog.json":
/*!***************************************************************!*\
  !*** ./node_modules/absol-acomp/assets/exticons/catalog.json ***!
  \***************************************************************/
/***/ ((module) => {

"use strict";
eval("module.exports = JSON.parse('[\"3g2\",\"3ga\",\"3gp\",\"7z\",\"aa\",\"aac\",\"ac\",\"accdb\",\"accdt\",\"ace\",\"adn\",\"ai\",\"aif\",\"aifc\",\"aiff\",\"ait\",\"amr\",\"ani\",\"apk\",\"app\",\"applescript\",\"asax\",\"asc\",\"ascx\",\"asf\",\"ash\",\"ashx\",\"asm\",\"asmx\",\"asp\",\"aspx\",\"asx\",\"au\",\"aup\",\"avi\",\"axd\",\"aze\",\"bak\",\"bash\",\"bat\",\"bin\",\"blank\",\"bmp\",\"bowerrc\",\"bpg\",\"browser\",\"bz2\",\"bzempty\",\"c\",\"cab\",\"cad\",\"caf\",\"cal\",\"cd\",\"cdda\",\"cer\",\"cfg\",\"cfm\",\"cfml\",\"cgi\",\"chm\",\"class\",\"cmd\",\"code-workspace\",\"codekit\",\"coffee\",\"coffeelintignore\",\"com\",\"compile\",\"conf\",\"config\",\"cpp\",\"cptx\",\"cr2\",\"crdownload\",\"crt\",\"crypt\",\"cs\",\"csh\",\"cson\",\"csproj\",\"css\",\"csv\",\"cue\",\"cur\",\"dart\",\"dat\",\"data\",\"db\",\"dbf\",\"deb\",\"default\",\"dgn\",\"dist\",\"diz\",\"dll\",\"dmg\",\"dng\",\"doc\",\"docb\",\"docm\",\"docx\",\"dot\",\"dotm\",\"dotx\",\"download\",\"dpj\",\"ds_store\",\"dsn\",\"dtd\",\"dwg\",\"dxf\",\"editorconfig\",\"el\",\"elf\",\"eml\",\"enc\",\"eot\",\"eps\",\"epub\",\"eslintignore\",\"exe\",\"f4v\",\"fax\",\"fb2\",\"fla\",\"flac\",\"flv\",\"fnt\",\"folder\",\"fon\",\"gadget\",\"gdp\",\"gem\",\"gif\",\"gitattributes\",\"gitignore\",\"go\",\"gpg\",\"gpl\",\"gradle\",\"gz\",\"h\",\"handlebars\",\"hbs\",\"heic\",\"hlp\",\"hs\",\"hsl\",\"htm\",\"html\",\"ibooks\",\"icns\",\"ico\",\"ics\",\"idx\",\"iff\",\"ifo\",\"image\",\"img\",\"iml\",\"in\",\"inc\",\"indd\",\"inf\",\"info\",\"ini\",\"inv\",\"iso\",\"j2\",\"jar\",\"java\",\"jpe\",\"jpeg\",\"jpg\",\"js\",\"json\",\"jsp\",\"jsx\",\"key\",\"kf8\",\"kmk\",\"ksh\",\"kt\",\"kts\",\"kup\",\"less\",\"lex\",\"licx\",\"lisp\",\"lit\",\"lnk\",\"lock\",\"log\",\"lua\",\"m\",\"m2v\",\"m3u\",\"m3u8\",\"m4\",\"m4a\",\"m4r\",\"m4v\",\"map\",\"master\",\"mc\",\"md\",\"mdb\",\"mdf\",\"me\",\"mi\",\"mid\",\"midi\",\"mk\",\"mkv\",\"mm\",\"mng\",\"mo\",\"mobi\",\"mod\",\"mov\",\"mp2\",\"mp3\",\"mp4\",\"mpa\",\"mpd\",\"mpe\",\"mpeg\",\"mpg\",\"mpga\",\"mpp\",\"mpt\",\"msg\",\"msi\",\"msu\",\"nef\",\"nes\",\"nfo\",\"nix\",\"npmignore\",\"ocx\",\"odb\",\"ods\",\"odt\",\"ogg\",\"ogv\",\"ost\",\"otf\",\"ott\",\"ova\",\"ovf\",\"p12\",\"p7b\",\"pages\",\"part\",\"pcd\",\"pdb\",\"pdf\",\"pem\",\"pfx\",\"pgp\",\"ph\",\"phar\",\"php\",\"pid\",\"pkg\",\"pl\",\"plist\",\"pm\",\"png\",\"po\",\"pom\",\"pot\",\"potx\",\"pps\",\"ppsx\",\"ppt\",\"pptm\",\"pptx\",\"prop\",\"ps\",\"ps1\",\"psd\",\"psp\",\"pst\",\"pub\",\"py\",\"pyc\",\"qt\",\"ra\",\"ram\",\"rar\",\"raw\",\"rb\",\"rdf\",\"rdl\",\"reg\",\"resx\",\"retry\",\"rm\",\"rom\",\"rpm\",\"rpt\",\"rsa\",\"rss\",\"rst\",\"rtf\",\"ru\",\"rub\",\"sass\",\"scss\",\"sdf\",\"sed\",\"sh\",\"sit\",\"sitemap\",\"skin\",\"sldm\",\"sldx\",\"sln\",\"sol\",\"sphinx\",\"sql\",\"sqlite\",\"step\",\"stl\",\"svg\",\"swd\",\"swf\",\"swift\",\"swp\",\"sys\",\"tar\",\"tax\",\"tcsh\",\"tex\",\"tfignore\",\"tga\",\"tgz\",\"tif\",\"tiff\",\"tmp\",\"tmx\",\"torrent\",\"tpl\",\"ts\",\"tsv\",\"ttf\",\"twig\",\"txt\",\"udf\",\"vb\",\"vbproj\",\"vbs\",\"vcd\",\"vcf\",\"vcs\",\"vdi\",\"vdx\",\"vmdk\",\"vob\",\"vox\",\"vscodeignore\",\"vsd\",\"vss\",\"vst\",\"vsx\",\"vtx\",\"war\",\"wav\",\"wbk\",\"webinfo\",\"webm\",\"webp\",\"wma\",\"wmf\",\"wmv\",\"woff\",\"woff2\",\"wps\",\"wsf\",\"xaml\",\"xcf\",\"xfl\",\"xlm\",\"xls\",\"xlsm\",\"xlsx\",\"xlt\",\"xltm\",\"xltx\",\"xml\",\"xpi\",\"xps\",\"xrb\",\"xsd\",\"xsl\",\"xspf\",\"xz\",\"yaml\",\"yml\",\"z\",\"zip\",\"zsh\"]');\n\n//# sourceURL=webpack://absol-poser/./node_modules/absol-acomp/assets/exticons/catalog.json?");

/***/ })

/******/ 	});
/************************************************************************/
/******/ 	// The module cache
/******/ 	var __webpack_module_cache__ = {};
/******/ 	
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/ 		// Check if module is in cache
/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
/******/ 		if (cachedModule !== undefined) {
/******/ 			return cachedModule.exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = __webpack_module_cache__[moduleId] = {
/******/ 			id: moduleId,
/******/ 			loaded: false,
/******/ 			exports: {}
/******/ 		};
/******/ 	
/******/ 		// Execute the module function
/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/ 	
/******/ 		// Flag the module as loaded
/******/ 		module.loaded = true;
/******/ 	
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/ 	
/************************************************************************/
/******/ 	/* webpack/runtime/define property getters */
/******/ 	(() => {
/******/ 		// define getter functions for harmony exports
/******/ 		__webpack_require__.d = (exports, definition) => {
/******/ 			for(var key in definition) {
/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ 				}
/******/ 			}
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/global */
/******/ 	(() => {
/******/ 		__webpack_require__.g = (function() {
/******/ 			if (typeof globalThis === 'object') return globalThis;
/******/ 			try {
/******/ 				return this || new Function('return this')();
/******/ 			} catch (e) {
/******/ 				if (typeof window === 'object') return window;
/******/ 			}
/******/ 		})();
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
/******/ 	(() => {
/******/ 		__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/make namespace object */
/******/ 	(() => {
/******/ 		// define __esModule on exports
/******/ 		__webpack_require__.r = (exports) => {
/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 			}
/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/node module decorator */
/******/ 	(() => {
/******/ 		__webpack_require__.nmd = (module) => {
/******/ 			module.paths = [];
/******/ 			if (!module.children) module.children = [];
/******/ 			return module;
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/nonce */
/******/ 	(() => {
/******/ 		__webpack_require__.nc = undefined;
/******/ 	})();
/******/ 	
/************************************************************************/
/******/ 	
/******/ 	// startup
/******/ 	// Load entry module and return exports
/******/ 	// This entry module can't be inlined because the eval devtool is used.
/******/ 	var __webpack_exports__ = __webpack_require__("./dev.js");
/******/ 	
/******/ })()
;

VaKeR 2022