1409 lines
1.8 MiB
1409 lines
1.8 MiB
/*
|
|
* ATTENTION: An "eval-source-map" devtool has been used.
|
|
* This devtool is neither made for production nor for readable output files.
|
|
* It uses "eval()" calls to create a separate source file with attached SourceMaps 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/).
|
|
*/
|
|
var Grav;
|
|
/******/ (() => { // webpackBootstrap
|
|
/******/ var __webpack_modules__ = ({
|
|
|
|
/***/ "./app/dashboard/backup.js":
|
|
/*!*********************************!*\
|
|
!*** ./app/dashboard/backup.js ***!
|
|
\*********************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/request */ \"./app/utils/request.js\");\n/* harmony import */ var _chart__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./chart */ \"./app/dashboard/chart.js\");\n\n\n\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-backup][data-ajax*=\"backup/\"]').on('click', function () {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n var url = element.data('ajax');\n var inDropdown = element.closest('.dropdown-menu');\n (inDropdown.length ? inDropdown : element).closest('.button-group').find('> button:first').attr('disabled', 'disabled').find('> .fa').removeClass('fa-life-ring').addClass('fa-spin fa-refresh');\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__.default)(url, function ()\n /* response */\n {\n if (_chart__WEBPACK_IMPORTED_MODULE_3__.Instances && _chart__WEBPACK_IMPORTED_MODULE_3__.Instances.backups) {\n _chart__WEBPACK_IMPORTED_MODULE_3__.Instances.backups.updateData({\n series: [0, 100]\n });\n _chart__WEBPACK_IMPORTED_MODULE_3__.Instances.backups.element.find('.numeric').html(\"0 <em>\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.DAYS.toLowerCase(), \"</em>\"));\n }\n\n (inDropdown.length ? inDropdown : element).closest('.button-group').find('> button:first').removeAttr('disabled').find('> .fa').removeClass('fa-spin fa-refresh').addClass('fa-life-ring');\n });\n});\njquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-backup][data-ajax*=\"backupDelete\"]').on('click', function () {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n var url = element.data('ajax');\n var tr = element.closest('tr');\n tr.addClass('deleting');\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__.default)(url, function (response) {\n if (response.status === 'success') {\n tr.remove();\n } else {\n tr.removeClass('deleting');\n }\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Rhc2hib2FyZC9iYWNrdXAuanM/MWFiZCJdLCJuYW1lcyI6WyIkIiwib24iLCJlbGVtZW50IiwidXJsIiwiZGF0YSIsImluRHJvcGRvd24iLCJjbG9zZXN0IiwibGVuZ3RoIiwiZmluZCIsImF0dHIiLCJyZW1vdmVDbGFzcyIsImFkZENsYXNzIiwicmVxdWVzdCIsIkNoYXJ0cyIsInNlcmllcyIsImh0bWwiLCJ0cmFuc2xhdGlvbnMiLCJyZW1vdmVBdHRyIiwidHIiLCJyZXNwb25zZSIsInN0YXR1cyIsInJlbW92ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBRUFBLDZDQUFDLENBQUMscUNBQUQsQ0FBRCxDQUF5Q0MsRUFBekMsQ0FBNEMsT0FBNUMsRUFBcUQsWUFBVztBQUM1RCxNQUFJQyxPQUFPLEdBQUdGLDZDQUFDLENBQUMsSUFBRCxDQUFmO0FBQ0EsTUFBSUcsR0FBRyxHQUFHRCxPQUFPLENBQUNFLElBQVIsQ0FBYSxNQUFiLENBQVY7QUFDQSxNQUFNQyxVQUFVLEdBQUdILE9BQU8sQ0FBQ0ksT0FBUixDQUFnQixnQkFBaEIsQ0FBbkI7QUFFQSxHQUFDRCxVQUFVLENBQUNFLE1BQVgsR0FBb0JGLFVBQXBCLEdBQWlDSCxPQUFsQyxFQUNLSSxPQURMLENBQ2EsZUFEYixFQUM4QkUsSUFEOUIsQ0FDbUMsZ0JBRG5DLEVBRUtDLElBRkwsQ0FFVSxVQUZWLEVBRXNCLFVBRnRCLEVBR0tELElBSEwsQ0FHVSxPQUhWLEVBR21CRSxXQUhuQixDQUcrQixjQUgvQixFQUcrQ0MsUUFIL0MsQ0FHd0Qsb0JBSHhEO0FBS0FDLHlEQUFPLENBQUNULEdBQUQsRUFBTTtBQUFDO0FBQW1CO0FBQzdCLFFBQUlVLDZDQUFNLElBQUlBLHFEQUFkLEVBQThCO0FBQzFCQSxzRUFBQSxDQUEwQjtBQUFFQyxjQUFNLEVBQUUsQ0FBQyxDQUFELEVBQUksR0FBSjtBQUFWLE9BQTFCO0FBQ0FELHdFQUFBLENBQTRCLFVBQTVCLEVBQXdDRSxJQUF4QyxpQkFBc0RDLG1GQUFBLEVBQXREO0FBQ0g7O0FBRUQsS0FBQ1gsVUFBVSxDQUFDRSxNQUFYLEdBQW9CRixVQUFwQixHQUFpQ0gsT0FBbEMsRUFDS0ksT0FETCxDQUNhLGVBRGIsRUFDOEJFLElBRDlCLENBQ21DLGdCQURuQyxFQUVLUyxVQUZMLENBRWdCLFVBRmhCLEVBR0tULElBSEwsQ0FHVSxPQUhWLEVBR21CRSxXQUhuQixDQUcrQixvQkFIL0IsRUFHcURDLFFBSHJELENBRzhELGNBSDlEO0FBSUgsR0FWTSxDQUFQO0FBV0gsQ0FyQkQ7QUF1QkFYLDZDQUFDLENBQUMsMENBQUQsQ0FBRCxDQUE4Q0MsRUFBOUMsQ0FBaUQsT0FBakQsRUFBMEQsWUFBVztBQUNqRSxNQUFJQyxPQUFPLEdBQUdGLDZDQUFDLENBQUMsSUFBRCxDQUFmO0FBQ0EsTUFBSUcsR0FBRyxHQUFHRCxPQUFPLENBQUNFLElBQVIsQ0FBYSxNQUFiLENBQVY7QUFDQSxNQUFNYyxFQUFFLEdBQUdoQixPQUFPLENBQUNJLE9BQVIsQ0FBZ0IsSUFBaEIsQ0FBWDtBQUNBWSxJQUFFLENBQUNQLFFBQUgsQ0FBWSxVQUFaO0FBRUFDLHlEQUFPLENBQUNULEdBQUQsRUFBTSxVQUFDZ0IsUUFBRCxFQUFjO0FBQ3ZCLFFBQUlBLFFBQVEsQ0FBQ0MsTUFBVCxLQUFvQixTQUF4QixFQUFtQztBQUMvQkYsUUFBRSxDQUFDRyxNQUFIO0FBQ0gsS0FGRCxNQUVPO0FBQ0hILFFBQUUsQ0FBQ1IsV0FBSCxDQUFlLFVBQWY7QUFDSDtBQUNKLEdBTk0sQ0FBUDtBQU9ILENBYkQiLCJmaWxlIjoiLi9hcHAvZGFzaGJvYXJkL2JhY2t1cC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgeyB0cmFuc2xhdGlvbnMgfSBmcm9tICdncmF2LWNvbmZpZyc7XG5pbXBvcnQgcmVxdWVzdCBmcm9tICcuLi91dGlscy9yZXF1ZXN0JztcbmltcG9ydCB7IEluc3RhbmNlcyBhcyBDaGFydHMgfSBmcm9tICcuL2NoYXJ0JztcblxuJCgnW2RhdGEtYmFja3VwXVtkYXRhLWFqYXgqPVwiYmFja3VwL1wiXScpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkge1xuICAgIGxldCBlbGVtZW50ID0gJCh0aGlzKTtcbiAgICBsZXQgdXJsID0gZWxlbWVudC5kYXRhKCdhamF4Jyk7XG4gICAgY29uc3QgaW5Ecm9wZG93biA9IGVsZW1lbnQuY2xvc2VzdCgnLmRyb3Bkb3duLW1lbnUnKTtcblxuICAgIChpbkRyb3Bkb3duLmxlbmd0aCA/IGluRHJvcGRvd24gOiBlbGVtZW50KVxuICAgICAgICAuY2xvc2VzdCgnLmJ1dHRvbi1ncm91cCcpLmZpbmQoJz4gYnV0dG9uOmZpcnN0JylcbiAgICAgICAgLmF0dHIoJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJylcbiAgICAgICAgLmZpbmQoJz4gLmZhJykucmVtb3ZlQ2xhc3MoJ2ZhLWxpZmUtcmluZycpLmFkZENsYXNzKCdmYS1zcGluIGZhLXJlZnJlc2gnKTtcblxuICAgIHJlcXVlc3QodXJsLCAoLyogcmVzcG9uc2UgKi8pID0+IHtcbiAgICAgICAgaWYgKENoYXJ0cyAmJiBDaGFydHMuYmFja3Vwcykge1xuICAgICAgICAgICAgQ2hhcnRzLmJhY2t1cHMudXBkYXRlRGF0YSh7IHNlcmllczogWzAsIDEwMF0gfSk7XG4gICAgICAgICAgICBDaGFydHMuYmFja3Vwcy5lbGVtZW50LmZpbmQoJy5udW1lcmljJykuaHRtbChgMCA8ZW0+JHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLkRBWVMudG9Mb3dlckNhc2UoKX08L2VtPmApO1xuICAgICAgICB9XG5cbiAgICAgICAgKGluRHJvcGRvd24ubGVuZ3RoID8gaW5Ecm9wZG93biA6IGVsZW1lbnQpXG4gICAgICAgICAgICAuY2xvc2VzdCgnLmJ1dHRvbi1ncm91cCcpLmZpbmQoJz4gYnV0dG9uOmZpcnN0JylcbiAgICAgICAgICAgIC5yZW1vdmVBdHRyKCdkaXNhYmxlZCcpXG4gICAgICAgICAgICAuZmluZCgnPiAuZmEnKS5yZW1vdmVDbGFzcygnZmEtc3BpbiBmYS1yZWZyZXNoJykuYWRkQ2xhc3MoJ2ZhLWxpZmUtcmluZycpO1xuICAgIH0pO1xufSk7XG5cbiQoJ1tkYXRhLWJhY2t1cF1bZGF0YS1hamF4Kj1cImJhY2t1cERlbGV0ZVwiXScpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkge1xuICAgIGxldCBlbGVtZW50ID0gJCh0aGlzKTtcbiAgICBsZXQgdXJsID0gZWxlbWVudC5kYXRhKCdhamF4Jyk7XG4gICAgY29uc3QgdHIgPSBlbGVtZW50LmNsb3Nlc3QoJ3RyJyk7XG4gICAgdHIuYWRkQ2xhc3MoJ2RlbGV0aW5nJyk7XG5cbiAgICByZXF1ZXN0KHVybCwgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09ICdzdWNjZXNzJykge1xuICAgICAgICAgICAgdHIucmVtb3ZlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0ci5yZW1vdmVDbGFzcygnZGVsZXRpbmcnKTtcbiAgICAgICAgfVxuICAgIH0pO1xufSk7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/dashboard/backup.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/dashboard/cache.js":
|
|
/*!********************************!*\
|
|
!*** ./app/dashboard/cache.js ***!
|
|
\********************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Cache),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/request */ \"./app/utils/request.js\");\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); return Constructor; }\n\n\n\n\n\nvar getUrl = function getUrl() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n\n if (type) {\n type = \"cleartype:\".concat(type, \"/\");\n }\n\n return \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/cache.json/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep, \"clearCache/\").concat(type, \"admin-nonce\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep).concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.admin_nonce);\n};\n\nvar Cache = /*#__PURE__*/function () {\n function Cache() {\n var _this = this;\n\n _classCallCheck(this, Cache);\n\n this.element = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-clear-cache]');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('click', '[data-clear-cache]', function (event) {\n return _this.clear(event, event.target);\n });\n }\n\n _createClass(Cache, [{\n key: \"clear\",\n value: function clear(event, element) {\n var _this2 = this;\n\n var type = '';\n\n if (event && event.preventDefault) {\n event.preventDefault();\n }\n\n if (typeof event === 'string') {\n type = event;\n }\n\n element = element ? jquery__WEBPACK_IMPORTED_MODULE_0___default()(element) : jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-clear-cache-type=\\\"\".concat(type, \"\\\"]\"));\n type = type || jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).data('clear-cache-type') || '';\n var url = element.data('clearCache') || getUrl(type);\n this.disable();\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__.default)(url, function () {\n return _this2.enable();\n });\n }\n }, {\n key: \"enable\",\n value: function enable() {\n this.element.removeAttr('disabled').find('> .fa').removeClass('fa-refresh fa-spin fa-retweet').addClass('fa-retweet');\n }\n }, {\n key: \"disable\",\n value: function disable() {\n this.element.attr('disabled', 'disabled').find('> .fa').removeClass('fa-retweet').addClass('fa-refresh fa-spin');\n }\n }]);\n\n return Cache;\n}();\n\n\nvar Instance = new Cache();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Rhc2hib2FyZC9jYWNoZS5qcz9jYjJiIl0sIm5hbWVzIjpbImdldFVybCIsInR5cGUiLCJjb25maWciLCJDYWNoZSIsImVsZW1lbnQiLCIkIiwib24iLCJldmVudCIsImNsZWFyIiwidGFyZ2V0IiwicHJldmVudERlZmF1bHQiLCJkYXRhIiwidXJsIiwiZGlzYWJsZSIsInJlcXVlc3QiLCJlbmFibGUiLCJyZW1vdmVBdHRyIiwiZmluZCIsInJlbW92ZUNsYXNzIiwiYWRkQ2xhc3MiLCJhdHRyIiwiSW5zdGFuY2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7O0FBRUEsSUFBTUEsTUFBTSxHQUFHLFNBQVRBLE1BQVMsR0FBZTtBQUFBLE1BQWRDLElBQWMsdUVBQVAsRUFBTzs7QUFDMUIsTUFBSUEsSUFBSixFQUFVO0FBQ05BLFFBQUksdUJBQWdCQSxJQUFoQixNQUFKO0FBQ0g7O0FBRUQsbUJBQVVDLGlFQUFWLDZCQUFxREEseURBQXJELHdCQUFtRkQsSUFBbkYsd0JBQXFHQyx5REFBckcsU0FBd0hBLDJEQUF4SDtBQUNILENBTkQ7O0lBUXFCQyxLO0FBQ2pCLG1CQUFjO0FBQUE7O0FBQUE7O0FBQ1YsU0FBS0MsT0FBTCxHQUFlQyw2Q0FBQyxDQUFDLG9CQUFELENBQWhCO0FBQ0FBLGlEQUFDLENBQUMsTUFBRCxDQUFELENBQVVDLEVBQVYsQ0FBYSxPQUFiLEVBQXNCLG9CQUF0QixFQUE0QyxVQUFDQyxLQUFEO0FBQUEsYUFBVyxLQUFJLENBQUNDLEtBQUwsQ0FBV0QsS0FBWCxFQUFrQkEsS0FBSyxDQUFDRSxNQUF4QixDQUFYO0FBQUEsS0FBNUM7QUFDSDs7OztXQUVELGVBQU1GLEtBQU4sRUFBYUgsT0FBYixFQUFzQjtBQUFBOztBQUNsQixVQUFJSCxJQUFJLEdBQUcsRUFBWDs7QUFFQSxVQUFJTSxLQUFLLElBQUlBLEtBQUssQ0FBQ0csY0FBbkIsRUFBbUM7QUFBRUgsYUFBSyxDQUFDRyxjQUFOO0FBQXlCOztBQUM5RCxVQUFJLE9BQU9ILEtBQVAsS0FBaUIsUUFBckIsRUFBK0I7QUFBRU4sWUFBSSxHQUFHTSxLQUFQO0FBQWU7O0FBRWhESCxhQUFPLEdBQUdBLE9BQU8sR0FBR0MsNkNBQUMsQ0FBQ0QsT0FBRCxDQUFKLEdBQWdCQyw2Q0FBQyxvQ0FBNEJKLElBQTVCLFNBQWxDO0FBQ0FBLFVBQUksR0FBR0EsSUFBSSxJQUFJSSw2Q0FBQyxDQUFDRCxPQUFELENBQUQsQ0FBV08sSUFBWCxDQUFnQixrQkFBaEIsQ0FBUixJQUErQyxFQUF0RDtBQUNBLFVBQUlDLEdBQUcsR0FBR1IsT0FBTyxDQUFDTyxJQUFSLENBQWEsWUFBYixLQUE4QlgsTUFBTSxDQUFDQyxJQUFELENBQTlDO0FBRUEsV0FBS1ksT0FBTDtBQUVBQyw2REFBTyxDQUFDRixHQUFELEVBQU07QUFBQSxlQUFNLE1BQUksQ0FBQ0csTUFBTCxFQUFOO0FBQUEsT0FBTixDQUFQO0FBQ0g7OztXQUVELGtCQUFTO0FBQ0wsV0FBS1gsT0FBTCxDQUNLWSxVQURMLENBQ2dCLFVBRGhCLEVBRUtDLElBRkwsQ0FFVSxPQUZWLEVBRW1CQyxXQUZuQixDQUUrQiwrQkFGL0IsRUFFZ0VDLFFBRmhFLENBRXlFLFlBRnpFO0FBR0g7OztXQUVELG1CQUFVO0FBQ04sV0FBS2YsT0FBTCxDQUNLZ0IsSUFETCxDQUNVLFVBRFYsRUFDc0IsVUFEdEIsRUFFS0gsSUFGTCxDQUVVLE9BRlYsRUFFbUJDLFdBRm5CLENBRStCLFlBRi9CLEVBRTZDQyxRQUY3QyxDQUVzRCxvQkFGdEQ7QUFHSDs7Ozs7OztBQUdMLElBQUlFLFFBQVEsR0FBRyxJQUFJbEIsS0FBSixFQUFmIiwiZmlsZSI6Ii4vYXBwL2Rhc2hib2FyZC9jYWNoZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgeyBjb25maWcgfSBmcm9tICdncmF2LWNvbmZpZyc7XG5pbXBvcnQgcmVxdWVzdCBmcm9tICcuLi91dGlscy9yZXF1ZXN0JztcblxuY29uc3QgZ2V0VXJsID0gKHR5cGUgPSAnJykgPT4ge1xuICAgIGlmICh0eXBlKSB7XG4gICAgICAgIHR5cGUgPSBgY2xlYXJ0eXBlOiR7dHlwZX0vYDtcbiAgICB9XG5cbiAgICByZXR1cm4gYCR7Y29uZmlnLmJhc2VfdXJsX3JlbGF0aXZlfS9jYWNoZS5qc29uL3Rhc2ske2NvbmZpZy5wYXJhbV9zZXB9Y2xlYXJDYWNoZS8ke3R5cGV9YWRtaW4tbm9uY2Uke2NvbmZpZy5wYXJhbV9zZXB9JHtjb25maWcuYWRtaW5fbm9uY2V9YDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENhY2hlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50ID0gJCgnW2RhdGEtY2xlYXItY2FjaGVdJyk7XG4gICAgICAgICQoJ2JvZHknKS5vbignY2xpY2snLCAnW2RhdGEtY2xlYXItY2FjaGVdJywgKGV2ZW50KSA9PiB0aGlzLmNsZWFyKGV2ZW50LCBldmVudC50YXJnZXQpKTtcbiAgICB9XG5cbiAgICBjbGVhcihldmVudCwgZWxlbWVudCkge1xuICAgICAgICBsZXQgdHlwZSA9ICcnO1xuXG4gICAgICAgIGlmIChldmVudCAmJiBldmVudC5wcmV2ZW50RGVmYXVsdCkgeyBldmVudC5wcmV2ZW50RGVmYXVsdCgpOyB9XG4gICAgICAgIGlmICh0eXBlb2YgZXZlbnQgPT09ICdzdHJpbmcnKSB7IHR5cGUgPSBldmVudDsgfVxuXG4gICAgICAgIGVsZW1lbnQgPSBlbGVtZW50ID8gJChlbGVtZW50KSA6ICQoYFtkYXRhLWNsZWFyLWNhY2hlLXR5cGU9XCIke3R5cGV9XCJdYCk7XG4gICAgICAgIHR5cGUgPSB0eXBlIHx8ICQoZWxlbWVudCkuZGF0YSgnY2xlYXItY2FjaGUtdHlwZScpIHx8ICcnO1xuICAgICAgICBsZXQgdXJsID0gZWxlbWVudC5kYXRhKCdjbGVhckNhY2hlJykgfHwgZ2V0VXJsKHR5cGUpO1xuXG4gICAgICAgIHRoaXMuZGlzYWJsZSgpO1xuXG4gICAgICAgIHJlcXVlc3QodXJsLCAoKSA9PiB0aGlzLmVuYWJsZSgpKTtcbiAgICB9XG5cbiAgICBlbmFibGUoKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudFxuICAgICAgICAgICAgLnJlbW92ZUF0dHIoJ2Rpc2FibGVkJylcbiAgICAgICAgICAgIC5maW5kKCc+IC5mYScpLnJlbW92ZUNsYXNzKCdmYS1yZWZyZXNoIGZhLXNwaW4gZmEtcmV0d2VldCcpLmFkZENsYXNzKCdmYS1yZXR3ZWV0Jyk7XG4gICAgfVxuXG4gICAgZGlzYWJsZSgpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50XG4gICAgICAgICAgICAuYXR0cignZGlzYWJsZWQnLCAnZGlzYWJsZWQnKVxuICAgICAgICAgICAgLmZpbmQoJz4gLmZhJykucmVtb3ZlQ2xhc3MoJ2ZhLXJldHdlZXQnKS5hZGRDbGFzcygnZmEtcmVmcmVzaCBmYS1zcGluJyk7XG4gICAgfVxufVxuXG5sZXQgSW5zdGFuY2UgPSBuZXcgQ2FjaGUoKTtcblxuZXhwb3J0IHsgSW5zdGFuY2UgfTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/dashboard/cache.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/dashboard/chart.js":
|
|
/*!********************************!*\
|
|
!*** ./app/dashboard/chart.js ***!
|
|
\********************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"defaults\": () => (/* binding */ defaults),\n/* harmony export */ \"default\": () => (/* binding */ Chart),\n/* harmony export */ \"UpdatesChart\": () => (/* binding */ UpdatesChart),\n/* harmony export */ \"Instances\": () => (/* binding */ Instances)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var chartist__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! chartist */ \"./node_modules/chartist/dist/chartist.js\");\n/* harmony import */ var chartist__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(chartist__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _utils_gpm__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/gpm */ \"./app/utils/gpm.js\");\n/* harmony import */ var _updates__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../updates */ \"./app/updates/index.js\");\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || 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; } 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 : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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); return Constructor; }\n\n\n\n\n\n // let isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n\nvar defaults = {\n data: {\n series: [100, 0]\n },\n options: {\n Pie: {\n donut: true,\n donutWidth: 10,\n startAngle: 0,\n total: 100,\n showLabel: false,\n height: 150,\n // chartPadding: !isFirefox ? 10 : 25 // workaround for older versions of firefox\n chartPadding: 5\n },\n Bar: {\n height: 164,\n chartPadding: 20,\n // workaround for older versions of firefox\n axisX: {\n showGrid: false,\n labelOffset: {\n x: 0,\n y: 0\n }\n },\n axisY: {\n offset: 15,\n showLabel: true,\n showGrid: true,\n labelOffset: {\n x: 5,\n y: 5\n },\n scaleMinSpace: 25\n }\n }\n }\n};\n\nvar Chart = /*#__PURE__*/function () {\n function Chart(element) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n _classCallCheck(this, Chart);\n\n this.element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element) || [];\n\n if (!this.element[0]) {\n return;\n }\n\n var type = (this.element.data('chart-type') || 'pie').toLowerCase();\n this.type = type.charAt(0).toUpperCase() + type.substr(1).toLowerCase();\n options = Object.assign({}, defaults.options[this.type], options);\n data = Object.assign({}, defaults.data, data);\n Object.assign(this, {\n options: options,\n data: data\n });\n this.chart = (chartist__WEBPACK_IMPORTED_MODULE_1___default())[this.type](this.element.find('.ct-chart').empty()[0], this.data, this.options);\n this.chart.on('created', function () {\n _this.element.find('.hidden').removeClass('hidden'); // FIX: workaround for chartist issue not allowing HTML in labels anymore\n // https://github.com/gionkunz/chartist-js/issues/937\n\n\n _this.element.find('.ct-label').each(function (index, label) {\n label = jquery__WEBPACK_IMPORTED_MODULE_0___default()(label);\n var text = label.html().replace('<', '<').replace('>', '>');\n label.html(text);\n });\n });\n }\n\n _createClass(Chart, [{\n key: \"updateData\",\n value: function updateData(data) {\n Object.assign(this.data, data);\n this.chart.update(this.data);\n }\n }]);\n\n return Chart;\n}();\n\n\n;\nvar UpdatesChart = /*#__PURE__*/function (_Chart) {\n _inherits(UpdatesChart, _Chart);\n\n var _super = _createSuper(UpdatesChart);\n\n function UpdatesChart(element) {\n var _this2;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n _classCallCheck(this, UpdatesChart);\n\n _this2 = _super.call(this, element, options, data);\n\n _this2.chart.on('draw', function (data) {\n return _this2.draw(data);\n });\n\n _utils_gpm__WEBPACK_IMPORTED_MODULE_3__.Instance.on('fetched', function (response) {\n if (!response.payload) {\n return;\n }\n\n var payload = response.payload.grav;\n var missing = (response.payload.resources.total + (payload.isUpdatable ? 1 : 0)) * 100 / (response.payload.installed + (payload.isUpdatable ? 1 : 0));\n var updated = 100 - missing;\n\n _this2.updateData({\n series: [updated, missing]\n });\n\n if (response.payload.resources.total) {\n _updates__WEBPACK_IMPORTED_MODULE_4__.Instance.maintenance('show');\n }\n });\n return _this2;\n }\n\n _createClass(UpdatesChart, [{\n key: \"draw\",\n value: function draw(data) {\n if (data.index) {\n return;\n }\n\n var notice = grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN[data.value === 100 ? 'FULLY_UPDATED' : 'UPDATES_AVAILABLE'];\n this.element.find('.numeric span').text(\"\".concat(Math.round(data.value), \"%\"));\n this.element.find('.js__updates-available-description').html(notice);\n this.element.find('.hidden').removeClass('hidden');\n }\n }, {\n key: \"updateData\",\n value: function updateData(data) {\n _get(_getPrototypeOf(UpdatesChart.prototype), \"updateData\", this).call(this, data); // missing updates\n\n\n if (this.data.series[0] < 100) {\n this.element.closest('#updates').find('[data-update-packages]').fadeIn();\n }\n }\n }]);\n\n return UpdatesChart;\n}(Chart);\nvar charts = {};\njquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-chart-name]').each(function () {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n var name = element.data('chart-name') || '';\n var options = element.data('chart-options') || {};\n var data = element.data('chart-data') || {};\n\n if (name === 'updates') {\n charts[name] = new UpdatesChart(element, options, data);\n } else {\n charts[name] = new Chart(element, options, data);\n }\n});\nvar Instances = charts;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Rhc2hib2FyZC9jaGFydC5qcz8xZTg2Il0sIm5hbWVzIjpbImRlZmF1bHRzIiwiZGF0YSIsInNlcmllcyIsIm9wdGlvbnMiLCJQaWUiLCJkb251dCIsImRvbnV0V2lkdGgiLCJzdGFydEFuZ2xlIiwidG90YWwiLCJzaG93TGFiZWwiLCJoZWlnaHQiLCJjaGFydFBhZGRpbmciLCJCYXIiLCJheGlzWCIsInNob3dHcmlkIiwibGFiZWxPZmZzZXQiLCJ4IiwieSIsImF4aXNZIiwib2Zmc2V0Iiwic2NhbGVNaW5TcGFjZSIsIkNoYXJ0IiwiZWxlbWVudCIsIiQiLCJ0eXBlIiwidG9Mb3dlckNhc2UiLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInN1YnN0ciIsIk9iamVjdCIsImFzc2lnbiIsImNoYXJ0IiwiY2hhcnRpc3QiLCJmaW5kIiwiZW1wdHkiLCJvbiIsInJlbW92ZUNsYXNzIiwiZWFjaCIsImluZGV4IiwibGFiZWwiLCJ0ZXh0IiwiaHRtbCIsInJlcGxhY2UiLCJ1cGRhdGUiLCJVcGRhdGVzQ2hhcnQiLCJkcmF3IiwiZ3BtIiwicmVzcG9uc2UiLCJwYXlsb2FkIiwiZ3JhdiIsIm1pc3NpbmciLCJyZXNvdXJjZXMiLCJpc1VwZGF0YWJsZSIsImluc3RhbGxlZCIsInVwZGF0ZWQiLCJ1cGRhdGVEYXRhIiwidXBkYXRlcyIsIm5vdGljZSIsInRyYW5zbGF0aW9ucyIsInZhbHVlIiwiTWF0aCIsInJvdW5kIiwiY2xvc2VzdCIsImZhZGVJbiIsImNoYXJ0cyIsIm5hbWUiLCJJbnN0YW5jZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7Q0FHQTs7QUFFTyxJQUFNQSxRQUFRLEdBQUc7QUFDcEJDLE1BQUksRUFBRTtBQUNGQyxVQUFNLEVBQUUsQ0FBQyxHQUFELEVBQU0sQ0FBTjtBQUROLEdBRGM7QUFJcEJDLFNBQU8sRUFBRTtBQUNM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QUMsbUJBQUQsQ0FBRCxDQUF1QmMsSUFBdkIsQ0FBNEIsWUFBVztBQUNuQyxNQUFJZixPQUFPLEdBQUdDLDZDQUFDLENBQUMsSUFBRCxDQUFmO0FBQ0EsTUFBSTBDLElBQUksR0FBRzNDLE9BQU8sQ0FBQ3JCLElBQVIsQ0FBYSxZQUFiLEtBQThCLEVBQXpDO0FBQ0EsTUFBSUUsT0FBTyxHQUFHbUIsT0FBTyxDQUFDckIsSUFBUixDQUFhLGVBQWIsS0FBaUMsRUFBL0M7QUFDQSxNQUFJQSxJQUFJLEdBQUdxQixPQUFPLENBQUNyQixJQUFSLENBQWEsWUFBYixLQUE4QixFQUF6Qzs7QUFFQSxNQUFJZ0UsSUFBSSxLQUFLLFNBQWIsRUFBd0I7QUFDcEJELFVBQU0sQ0FBQ0MsSUFBRCxDQUFOLEdBQWUsSUFBSXJCLFlBQUosQ0FBaUJ0QixPQUFqQixFQUEwQm5CLE9BQTFCLEVBQW1DRixJQUFuQyxDQUFmO0FBQ0gsR0FGRCxNQUVPO0FBQ0grRCxVQUFNLENBQUNDLElBQUQsQ0FBTixHQUFlLElBQUk1QyxLQUFKLENBQVVDLE9BQVYsRUFBbUJuQixPQUFuQixFQUE0QkYsSUFBNUIsQ0FBZjtBQUNIO0FBQ0osQ0FYRDtBQWFPLElBQUlpRSxTQUFTLEdBQUdGLE1BQWhCIiwiZmlsZSI6Ii4vYXBwL2Rhc2hib2FyZC9jaGFydC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgY2hhcnRpc3QgZnJvbSAnY2hhcnRpc3QnO1xuaW1wb3J0IHsgdHJhbnNsYXRpb25zIH0gZnJvbSAnZ3Jhdi1jb25maWcnO1xuaW1wb3J0IHsgSW5zdGFuY2UgYXMgZ3BtIH0gZnJvbSAnLi4vdXRpbHMvZ3BtJztcbmltcG9ydCB7IEluc3RhbmNlIGFzIHVwZGF0ZXMgfSBmcm9tICcuLi91cGRhdGVzJztcblxuLy8gbGV0IGlzRmlyZWZveCA9IG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5pbmRleE9mKCdmaXJlZm94JykgPiAtMTtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRzID0ge1xuICAgIGRhdGE6IHtcbiAgICAgICAgc2VyaWVzOiBbMTAwLCAwXVxuICAgIH0sXG4gICAgb3B0aW9uczoge1xuICAgICAgICBQaWU6IHtcbiAgICAgICAgICAgIGRvbnV0OiB0cnVlLFxuICAgICAgICAgICAgZG9udXRXaWR0aDogMTAsXG4gICAgICAgICAgICBzdGFydEFuZ2xlOiAwLFxuICAgICAgICAgICAgdG90YWw6IDEwMCxcbiAgICAgICAgICAgIHNob3dMYWJlbDogZmFsc2UsXG4gICAgICAgICAgICBoZWlnaHQ6IDE1MCxcbiAgICAgICAgICAgIC8vIGNoYXJ0UGFkZGluZzogIWlzRmlyZWZveCA/IDEwIDogMjUgLy8gd29ya2Fyb3VuZCBmb3Igb2xkZXIgdmVyc2lvbnMgb2YgZmlyZWZveFxuICAgICAgICAgICAgY2hhcnRQYWRkaW5nOiA1XG4gICAgICAgIH0sXG4gICAgICAgIEJhcjoge1xuICAgICAgICAgICAgaGVpZ2h0OiAxNjQsXG4gICAgICAgICAgICBjaGFydFBhZGRpbmc6IDIwLCAvLyB3b3JrYXJvdW5kIGZvciBvbGRlciB2ZXJzaW9ucyBvZiBmaXJlZm94XG5cbiAgICAgICAgICAgIGF4aXNYOiB7XG4gICAgICAgICAgICAgICAgc2hvd0dyaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGxhYmVsT2Zmc2V0OiB7XG4gICAgICAgICAgICAgICAgICAgIHg6IDAsXG4gICAgICAgICAgICAgICAgICAgIHk6IDBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYXhpc1k6IHtcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IDE1LFxuICAgICAgICAgICAgICAgIHNob3dMYWJlbDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzaG93R3JpZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBsYWJlbE9mZnNldDoge1xuICAgICAgICAgICAgICAgICAgICB4OiA1LFxuICAgICAgICAgICAgICAgICAgICB5OiA1XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzY2FsZU1pblNwYWNlOiAyNVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ2hhcnQge1xuICAgIGNvbnN0cnVjdG9yKGVsZW1lbnQsIG9wdGlvbnMgPSB7fSwgZGF0YSA9IHt9KSB7XG4gICAgICAgIHRoaXMuZWxlbWVudCA9ICQoZWxlbWVudCkgfHwgW107XG4gICAgICAgIGlmICghdGhpcy5lbGVtZW50WzBdKSB7IHJldHVybjsgfVxuXG4gICAgICAgIGxldCB0eXBlID0gKHRoaXMuZWxlbWVudC5kYXRhKCdjaGFydC10eXBlJykgfHwgJ3BpZScpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIHRoaXMudHlwZSA9IHR5cGUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB0eXBlLnN1YnN0cigxKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICAgIG9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0cy5vcHRpb25zW3RoaXMudHlwZV0sIG9wdGlvbnMpO1xuICAgICAgICBkYXRhID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdHMuZGF0YSwgZGF0YSk7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywge1xuICAgICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgICAgIGRhdGFcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY2hhcnQgPSBjaGFydGlzdFt0aGlzLnR5cGVdKHRoaXMuZWxlbWVudC5maW5kKCcuY3QtY2hhcnQnKS5lbXB0eSgpWzBdLCB0aGlzLmRhdGEsIHRoaXMub3B0aW9ucyk7XG4gICAgICAgIHRoaXMuY2hhcnQub24oJ2NyZWF0ZWQnLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuZmluZCgnLmhpZGRlbicpLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTtcblxuICAgICAgICAgICAgLy8gRklYOiB3b3JrYXJvdW5kIGZvciBjaGFydGlzdCBpc3N1ZSBub3QgYWxsb3dpbmcgSFRNTCBpbiBsYWJlbHMgYW55bW9yZVxuICAgICAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2dpb25rdW56L2NoYXJ0aXN0LWpzL2lzc3Vlcy85MzdcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC5maW5kKCcuY3QtbGFiZWwnKS5lYWNoKChpbmRleCwgbGFiZWwpID0+IHtcbiAgICAgICAgICAgICAgICBsYWJlbCA9ICQobGFiZWwpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRleHQgPSBsYWJlbC5odG1sKCkucmVwbGFjZSgnJmx0OycsICc8JykucmVwbGFjZSgnJmd0OycsICc+Jyk7XG4gICAgICAgICAgICAgICAgbGFiZWwuaHRtbCh0ZXh0KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB1cGRhdGVEYXRhKGRhdGEpIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLmRhdGEsIGRhdGEpO1xuICAgICAgICB0aGlzLmNoYXJ0LnVwZGF0ZSh0aGlzLmRhdGEpO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVzQ2hhcnQgZXh0ZW5kcyBDaGFydCB7XG4gICAgY29uc3RydWN0b3IoZWxlbWVudCwgb3B0aW9ucyA9IHt9LCBkYXRhID0ge30pIHtcbiAgICAgICAgc3VwZXIoZWxlbWVudCwgb3B0aW9ucywgZGF0YSk7XG5cbiAgICAgICAgdGhpcy5jaGFydC5vbignZHJhdycsIChkYXRhKSA9PiB0aGlzLmRyYXcoZGF0YSkpO1xuXG4gICAgICAgIGdwbS5vbignZmV0Y2hlZCcsIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFyZXNwb25zZS5wYXlsb2FkKSB7IHJldHVybjsgfVxuXG4gICAgICAgICAgICBsZXQgcGF5bG9hZCA9IHJlc3BvbnNlLnBheWxvYWQuZ3JhdjtcbiAgICAgICAgICAgIGxldCBtaXNzaW5nID0gKHJlc3BvbnNlLnBheWxvYWQucmVzb3VyY2VzLnRvdGFsICsgKHBheWxvYWQuaXNVcGRhdGFibGUgPyAxIDogMCkpICogMTAwIC8gKHJlc3BvbnNlLnBheWxvYWQuaW5zdGFsbGVkICsgKHBheWxvYWQuaXNVcGRhdGFibGUgPyAxIDogMCkpO1xuICAgICAgICAgICAgbGV0IHVwZGF0ZWQgPSAxMDAgLSBtaXNzaW5nO1xuXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZURhdGEoeyBzZXJpZXM6IFt1cGRhdGVkLCBtaXNzaW5nXSB9KTtcblxuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnBheWxvYWQucmVzb3VyY2VzLnRvdGFsKSB7XG4gICAgICAgICAgICAgICAgdXBkYXRlcy5tYWludGVuYW5jZSgnc2hvdycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBkcmF3KGRhdGEpIHtcbiAgICAgICAgaWYgKGRhdGEuaW5kZXgpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgbGV0IG5vdGljZSA9IHRyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU5bZGF0YS52YWx1ZSA9PT0gMTAwID8gJ0ZVTExZX1VQREFURUQnIDogJ1VQREFURVNfQVZBSUxBQkxFJ107XG4gICAgICAgIHRoaXMuZWxlbWVudC5maW5kKCcubnVtZXJpYyBzcGFuJykudGV4dChgJHtNYXRoLnJvdW5kKGRhdGEudmFsdWUpfSVgKTtcbiAgICAgICAgdGhpcy5lbGVtZW50LmZpbmQoJy5qc19fdXBkYXRlcy1hdmFpbGFibGUtZGVzY3JpcHRpb24nKS5odG1sKG5vdGljZSk7XG4gICAgICAgIHRoaXMuZWxlbWVudC5maW5kKCcuaGlkZGVuJykucmVtb3ZlQ2xhc3MoJ2hpZGRlbicpO1xuICAgIH1cblxuICAgIHVwZGF0ZURhdGEoZGF0YSkge1xuICAgICAgICBzdXBlci51cGRhdGVEYXRhKGRhdGEpO1xuXG4gICAgICAgIC8vIG1pc3NpbmcgdXBkYXRlc1xuICAgICAgICBpZiAodGhpcy5kYXRhLnNlcmllc1swXSA8IDEwMCkge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50LmNsb3Nlc3QoJyN1cGRhdGVzJykuZmluZCgnW2RhdGEtdXBkYXRlLXBhY2thZ2VzXScpLmZhZGVJbigpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5sZXQgY2hhcnRzID0ge307XG5cbiQoJ1tkYXRhLWNoYXJ0LW5hbWVdJykuZWFjaChmdW5jdGlvbigpIHtcbiAgICBsZXQgZWxlbWVudCA9ICQodGhpcyk7XG4gICAgbGV0IG5hbWUgPSBlbGVtZW50LmRhdGEoJ2NoYXJ0LW5hbWUnKSB8fCAnJztcbiAgICBsZXQgb3B0aW9ucyA9IGVsZW1lbnQuZGF0YSgnY2hhcnQtb3B0aW9ucycpIHx8IHt9O1xuICAgIGxldCBkYXRhID0gZWxlbWVudC5kYXRhKCdjaGFydC1kYXRhJykgfHwge307XG5cbiAgICBpZiAobmFtZSA9PT0gJ3VwZGF0ZXMnKSB7XG4gICAgICAgIGNoYXJ0c1tuYW1lXSA9IG5ldyBVcGRhdGVzQ2hhcnQoZWxlbWVudCwgb3B0aW9ucywgZGF0YSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY2hhcnRzW25hbWVdID0gbmV3IENoYXJ0KGVsZW1lbnQsIG9wdGlvbnMsIGRhdGEpO1xuICAgIH1cbn0pO1xuXG5leHBvcnQgbGV0IEluc3RhbmNlcyA9IGNoYXJ0cztcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/dashboard/chart.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/dashboard/index.js":
|
|
/*!********************************!*\
|
|
!*** ./app/dashboard/index.js ***!
|
|
\********************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _chart__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./chart */ \"./app/dashboard/chart.js\");\n/* harmony import */ var _cache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cache */ \"./app/dashboard/cache.js\");\n/* harmony import */ var _backup__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./backup */ \"./app/dashboard/backup.js\");\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n Chart: {\n Chart: _chart__WEBPACK_IMPORTED_MODULE_0__.default,\n UpdatesChart: _chart__WEBPACK_IMPORTED_MODULE_0__.UpdatesChart,\n Instances: _chart__WEBPACK_IMPORTED_MODULE_0__.Instances\n },\n Cache: _cache__WEBPACK_IMPORTED_MODULE_1__.Instance\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Rhc2hib2FyZC9pbmRleC5qcz9hMTk1Il0sIm5hbWVzIjpbIkNoYXJ0IiwiVXBkYXRlc0NoYXJ0IiwiSW5zdGFuY2VzIiwiQ2FjaGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFFQSxpRUFBZTtBQUNYQSxPQUFLLEVBQUU7QUFDSEEsU0FBSyxFQUFMQSwyQ0FERztBQUVIQyxnQkFBWSxFQUFaQSxnREFGRztBQUdIQyxhQUFTLEVBQVRBLDZDQUFTQTtBQUhOLEdBREk7QUFNWEMsT0FBSyxFQUFMQSw0Q0FBS0E7QUFOTSxDQUFmIiwiZmlsZSI6Ii4vYXBwL2Rhc2hib2FyZC9pbmRleC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDaGFydCwgeyBVcGRhdGVzQ2hhcnQsIEluc3RhbmNlcyB9IGZyb20gJy4vY2hhcnQnO1xuaW1wb3J0IHsgSW5zdGFuY2UgYXMgQ2FjaGUgfSBmcm9tICcuL2NhY2hlJztcbmltcG9ydCAnLi9iYWNrdXAnO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gICAgQ2hhcnQ6IHtcbiAgICAgICAgQ2hhcnQsXG4gICAgICAgIFVwZGF0ZXNDaGFydCxcbiAgICAgICAgSW5zdGFuY2VzXG4gICAgfSxcbiAgICBDYWNoZVxufTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/dashboard/index.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/forms/fields/acl-picker.js":
|
|
/*!****************************************!*\
|
|
!*** ./app/forms/fields/acl-picker.js ***!
|
|
\****************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\nvar body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body');\nbody.on('change', '[data-acl_picker] select', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var value = target.val();\n var item = target.closest('.permissions-item');\n var inputs = item.find('input[type=\"checkbox\"], input[type=\"radio\"]');\n var hidden = item.find('input[type=\"hidden\"][name]');\n var wrapper = target.closest('[data-acl_picker_id]');\n var type = item.data('fieldType');\n\n if (type === 'access') {\n inputs.each(function (index, input) {\n input = jquery__WEBPACK_IMPORTED_MODULE_0___default()(input);\n var name = input.prop('name');\n input.prop('name', name.replace(/(.*)(\\[[^\\]]*\\])/, \"$1[\".concat(value, \"]\")));\n });\n } else if (type === 'permissions') {\n var crudpContainer = item.find('[data-field-name]');\n inputs.each(function (index, input) {\n input = jquery__WEBPACK_IMPORTED_MODULE_0___default()(input);\n var rand = Math.round(Math.random() * 500);\n var name = crudpContainer.data('fieldName');\n var id = input.prop('id').split('_').slice(0, -1).join('_') + \"_\".concat(value, \"+\").concat(rand); // const key = input.data('crudpKey');\n\n hidden.prop('name', name.replace(/(.*)(\\[[^\\]]*\\])/, \"$1[\".concat(value, \"]\")));\n input.prop('id', id);\n input.next('label').prop('for', id);\n });\n }\n\n wrapper.find('.permissions-item .button.add-item')[!value ? 'addClass' : 'removeClass']('disabled').prop('disabled', !value ? 'disabled' : null);\n});\nbody.on('input', 'input[data-crudp-key]', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var container = target.closest('.crudp-container');\n var hidden = container.find('input[type=\"hidden\"][name]');\n var key = target.data('crudpKey');\n var json = JSON.parse(hidden.val() || '{}');\n json[key] = target.val();\n hidden.val(JSON.stringify(json));\n});\nbody.on('click', '[data-acl_picker] .remove-item', function (event) {\n event.preventDefault();\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var container = target.closest('.permissions-item');\n var wrapper = target.closest('[data-acl_picker_id]');\n container.remove();\n var empty = wrapper.find('.permissions-item').length === 1; // show the initial + button\n\n if (empty) {\n wrapper.find('.permissions-item.empty-list').removeClass('hidden');\n }\n});\nbody.on('click', '[data-acl_picker] .add-item', function (event) {\n event.preventDefault();\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var item = target.closest('.permissions-item');\n var wrapper = target.closest('[data-acl_picker_id]');\n var ID = wrapper.data('acl_picker_id');\n var template = document.querySelector(\"template[data-id=\\\"acl_picker-\".concat(ID, \"\\\"]\"));\n var clone = jquery__WEBPACK_IMPORTED_MODULE_0___default()(template.content.firstElementChild).clone();\n clone.insertAfter(item); // randomize ids\n\n clone.find('.switch-toggle input[type=\"radio\"]').each(function (index, input) {\n input = jquery__WEBPACK_IMPORTED_MODULE_0___default()(input);\n var id = input.prop('id');\n var label = input.next('label');\n var rand = (Date.now().toString(36) + Math.random().toString(36).substr(2, 5)).toLowerCase();\n input.prop('id', \"\".concat(id).concat(rand));\n label.prop('for', \"\".concat(id).concat(rand));\n }); // hide the initial + button\n\n wrapper.find('.permissions-item.empty-list').addClass('hidden'); // disable all + buttons until one is selected\n\n wrapper.find('.permissions-item .button.add-item').addClass('disabled').prop('disabled', 'disabled');\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL2ZpZWxkcy9hY2wtcGlja2VyLmpzP2RmODciXSwibmFtZXMiOlsiYm9keSIsIiQiLCJvbiIsImV2ZW50IiwidGFyZ2V0IiwiY3VycmVudFRhcmdldCIsInZhbHVlIiwidmFsIiwiaXRlbSIsImNsb3Nlc3QiLCJpbnB1dHMiLCJmaW5kIiwiaGlkZGVuIiwid3JhcHBlciIsInR5cGUiLCJkYXRhIiwiZWFjaCIsImluZGV4IiwiaW5wdXQiLCJuYW1lIiwicHJvcCIsInJlcGxhY2UiLCJjcnVkcENvbnRhaW5lciIsInJhbmQiLCJNYXRoIiwicm91bmQiLCJyYW5kb20iLCJpZCIsInNwbGl0Iiwic2xpY2UiLCJqb2luIiwibmV4dCIsImNvbnRhaW5lciIsImtleSIsImpzb24iLCJKU09OIiwicGFyc2UiLCJzdHJpbmdpZnkiLCJwcmV2ZW50RGVmYXVsdCIsInJlbW92ZSIsImVtcHR5IiwibGVuZ3RoIiwicmVtb3ZlQ2xhc3MiLCJJRCIsInRlbXBsYXRlIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiY2xvbmUiLCJjb250ZW50IiwiZmlyc3RFbGVtZW50Q2hpbGQiLCJpbnNlcnRBZnRlciIsImxhYmVsIiwiRGF0ZSIsIm5vdyIsInRvU3RyaW5nIiwic3Vic3RyIiwidG9Mb3dlckNhc2UiLCJhZGRDbGFzcyJdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7QUFFQSxJQUFNQSxJQUFJLEdBQUdDLDZDQUFDLENBQUMsTUFBRCxDQUFkO0FBRUFELElBQUksQ0FBQ0UsRUFBTCxDQUFRLFFBQVIsRUFBa0IsMEJBQWxCLEVBQThDLFVBQUNDLEtBQUQsRUFBVztBQUNyRCxNQUFNQyxNQUFNLEdBQUdILDZDQUFDLENBQUNFLEtBQUssQ0FBQ0UsYUFBUCxDQUFoQjtBQUNBLE1BQU1DLEtBQUssR0FBR0YsTUFBTSxDQUFDRyxHQUFQLEVBQWQ7QUFDQSxNQUFNQyxJQUFJLEdBQUdKLE1BQU0sQ0FBQ0ssT0FBUCxDQUFlLG1CQUFmLENB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ZmlsZSI6Ii4vYXBwL2Zvcm1zL2ZpZWxkcy9hY2wtcGlja2VyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcblxuY29uc3QgYm9keSA9ICQoJ2JvZHknKTtcblxuYm9keS5vbignY2hhbmdlJywgJ1tkYXRhLWFjbF9waWNrZXJdIHNlbGVjdCcsIChldmVudCkgPT4ge1xuICAgIGNvbnN0IHRhcmdldCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgY29uc3QgdmFsdWUgPSB0YXJnZXQudmFsKCk7XG4gICAgY29uc3QgaXRlbSA9IHRhcmdldC5jbG9zZXN0KCcucGVybWlzc2lvbnMtaXRlbScpO1xuICAgIGNvbnN0IGlucHV0cyA9IGl0ZW0uZmluZCgnaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLCBpbnB1dFt0eXBlPVwicmFkaW9cIl0nKTtcbiAgICBjb25zdCBoaWRkZW4gPSBpdGVtLmZpbmQoJ2lucHV0W3R5cGU9XCJoaWRkZW5cIl1bbmFtZV0nKTtcbiAgICBjb25zdCB3cmFwcGVyID0gdGFyZ2V0LmNsb3Nlc3QoJ1tkYXRhLWFjbF9waWNrZXJfaWRdJyk7XG4gICAgY29uc3QgdHlwZSA9IGl0ZW0uZGF0YSgnZmllbGRUeXBlJyk7XG5cbiAgICBpZiAodHlwZSA9PT0gJ2FjY2VzcycpIHtcbiAgICAgICAgaW5wdXRzLmVhY2goKGluZGV4LCBpbnB1dCkgPT4ge1xuICAgICAgICAgICAgaW5wdXQgPSAkKGlucHV0KTtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBpbnB1dC5wcm9wKCduYW1lJyk7XG4gICAgICAgICAgICBpbnB1dC5wcm9wKCduYW1lJywgbmFtZS5yZXBsYWNlKC8oLiopKFxcW1teXFxdXSpcXF0pLywgYCQxWyR7dmFsdWV9XWApKTtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAncGVybWlzc2lvbnMnKSB7XG4gICAgICAgIGNvbnN0IGNydWRwQ29udGFpbmVyID0gaXRlbS5maW5kKCdbZGF0YS1maWVsZC1uYW1lXScpO1xuICAgICAgICBpbnB1dHMuZWFjaCgoaW5kZXgsIGlucHV0KSA9PiB7XG4gICAgICAgICAgICBpbnB1dCA9ICQoaW5wdXQpO1xuICAgICAgICAgICAgY29uc3QgcmFuZCA9IE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDUwMCk7XG4gICAgICAgICAgICBjb25zdCBuYW1lID0gY3J1ZHBDb250YWluZXIuZGF0YSgnZmllbGROYW1lJyk7XG4gICAgICAgICAgICBjb25zdCBpZCA9IGlucHV0LnByb3AoJ2lkJykuc3BsaXQoJ18nKS5zbGljZSgwLCAtMSkuam9pbignXycpICsgYF8ke3ZhbHVlfSske3JhbmR9YDtcbiAgICAgICAgICAgIC8vIGNvbnN0IGtleSA9IGlucHV0LmRhdGEoJ2NydWRwS2V5Jyk7XG4gICAgICAgICAgICBoaWRkZW4ucHJvcCgnbmFtZScsIG5hbWUucmVwbGFjZSgvKC4qKShcXFtbXlxcXV0qXFxdKS8sIGAkMVske3ZhbHVlfV1gKSk7XG4gICAgICAgICAgICBpbnB1dC5wcm9wKCdpZCcsIGlkKTtcbiAgICAgICAgICAgIGlucHV0Lm5leHQoJ2xhYmVsJykucHJvcCgnZm9yJywgaWQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB3cmFwcGVyLmZpbmQoJy5wZXJtaXNzaW9ucy1pdGVtIC5idXR0b24uYWRkLWl0ZW0nKVshdmFsdWUgPyAnYWRkQ2xhc3MnIDogJ3JlbW92ZUNsYXNzJ10oJ2Rpc2FibGVkJykucHJvcCgnZGlzYWJsZWQnLCAhdmFsdWUgPyAnZGlzYWJsZWQnIDogbnVsbCk7XG59KTtcblxuYm9keS5vbignaW5wdXQnLCAnaW5wdXRbZGF0YS1jcnVkcC1rZXldJywgKGV2ZW50KSA9PiB7XG4gICAgY29uc3QgdGFyZ2V0ID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgICBjb25zdCBjb250YWluZXIgPSB0YXJnZXQuY2xvc2VzdCgnLmNydWRwLWNvbnRhaW5lcicpO1xuICAgIGNvbnN0IGhpZGRlbiA9IGNvbnRhaW5lci5maW5kKCdpbnB1dFt0eXBlPVwiaGlkZGVuXCJdW25hbWVdJyk7XG4gICAgY29uc3Qga2V5ID0gdGFyZ2V0LmRhdGEoJ2NydWRwS2V5Jyk7XG4gICAgY29uc3QganNvbiA9IEpTT04ucGFyc2UoaGlkZGVuLnZhbCgpIHx8ICd7fScpO1xuICAgIGpzb25ba2V5XSA9IHRhcmdldC52YWwoKTtcbiAgICBoaWRkZW4udmFsKEpTT04uc3RyaW5naWZ5KGpzb24pKTtcbn0pO1xuXG5ib2R5Lm9uKCdjbGljaycsICdbZGF0YS1hY2xfcGlja2VyXSAucmVtb3ZlLWl0ZW0nLCAoZXZlbnQpID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGNvbnN0IHRhcmdldCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgY29uc3QgY29udGFpbmVyID0gdGFyZ2V0LmNsb3Nlc3QoJy5wZXJtaXNzaW9ucy1pdGVtJyk7XG4gICAgY29uc3Qgd3JhcHBlciA9IHRhcmdldC5jbG9zZXN0KCdbZGF0YS1hY2xfcGlja2VyX2lkXScpO1xuICAgIGNvbnRhaW5lci5yZW1vdmUoKTtcblxuICAgIGNvbnN0IGVtcHR5ID0gd3JhcHBlci5maW5kKCcucGVybWlzc2lvbnMtaXRlbScpLmxlbmd0aCA9PT0gMTtcblxuICAgIC8vIHNob3cgdGhlIGluaXRpYWwgKyBidXR0b25cbiAgICBpZiAoZW1wdHkpIHtcbiAgICAgICAgd3JhcHBlci5maW5kKCcucGVybWlzc2lvbnMtaXRlbS5lbXB0eS1saXN0JykucmVtb3ZlQ2xhc3MoJ2hpZGRlbicpO1xuICAgIH1cbn0pO1xuXG5ib2R5Lm9uKCdjbGljaycsICdbZGF0YS1hY2xfcGlja2VyXSAuYWRkLWl0ZW0nLCAoZXZlbnQpID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGNvbnN0IHRhcmdldCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgY29uc3QgaXRlbSA9IHRhcmdldC5jbG9zZXN0KCcucGVybWlzc2lvbnMtaXRlbScpO1xuICAgIGNvbnN0IHdyYXBwZXIgPSB0YXJnZXQuY2xvc2VzdCgnW2RhdGEtYWNsX3BpY2tlcl9pZF0nKTtcbiAgICBjb25zdCBJRCA9IHdyYXBwZXIuZGF0YSgnYWNsX3BpY2tlcl9pZCcpO1xuICAgIGNvbnN0IHRlbXBsYXRlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgdGVtcGxhdGVbZGF0YS1pZD1cImFjbF9waWNrZXItJHtJRH1cIl1gKTtcblxuICAgIGNvbnN0IGNsb25lID0gJCh0ZW1wbGF0ZS5jb250ZW50LmZpcnN0RWxlbWVudENoaWxkKS5jbG9uZSgpO1xuICAgIGNsb25lLmluc2VydEFmdGVyKGl0ZW0pO1xuXG4gICAgLy8gcmFuZG9taXplIGlkc1xuICAgIGNsb25lLmZpbmQoJy5zd2l0Y2gtdG9nZ2xlIGlucHV0W3R5cGU9XCJyYWRpb1wiXScpLmVhY2goKGluZGV4LCBpbnB1dCkgPT4ge1xuICAgICAgICBpbnB1dCA9ICQoaW5wdXQpO1xuICAgICAgICBjb25zdCBpZCA9IGlucHV0LnByb3AoJ2lkJyk7XG4gICAgICAgIGNvbnN0IGxhYmVsID0gaW5wdXQubmV4dCgnbGFiZWwnKTtcbiAgICAgICAgY29uc3QgcmFuZCA9IChEYXRlLm5vdygpLnRvU3RyaW5nKDM2KSArIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLCA1KSkudG9Mb3dlckNhc2UoKTtcblxuICAgICAgICBpbnB1dC5wcm9wKCdpZCcsIGAke2lkfSR7cmFuZH1gKTtcbiAgICAgICAgbGFiZWwucHJvcCgnZm9yJywgYCR7aWR9JHtyYW5kfWApO1xuICAgIH0pO1xuXG4gICAgLy8gaGlkZSB0aGUgaW5pdGlhbCArIGJ1dHRvblxuICAgIHdyYXBwZXIuZmluZCgnLnBlcm1pc3Npb25zLWl0ZW0uZW1wdHktbGlzdCcpLmFkZENsYXNzKCdoaWRkZW4nKTtcblxuICAgIC8vIGRpc2FibGUgYWxsICsgYnV0dG9ucyB1bnRpbCBvbmUgaXMgc2VsZWN0ZWRcbiAgICB3cmFwcGVyLmZpbmQoJy5wZXJtaXNzaW9ucy1pdGVtIC5idXR0b24uYWRkLWl0ZW0nKS5hZGRDbGFzcygnZGlzYWJsZWQnKS5wcm9wKCdkaXNhYmxlZCcsICdkaXNhYmxlZCcpO1xufSk7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/forms/fields/acl-picker.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/forms/fields/array.js":
|
|
/*!***********************************!*\
|
|
!*** ./app/forms/fields/array.js ***!
|
|
\***********************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ArrayField),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var sortablejs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! sortablejs */ \"./node_modules/sortablejs/modular/sortable.esm.js\");\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); return Constructor; }\n\n\n\nvar body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body');\n\nvar Template = /*#__PURE__*/function () {\n function Template(container) {\n _classCallCheck(this, Template);\n\n this.container = jquery__WEBPACK_IMPORTED_MODULE_0___default()(container);\n\n if (this.getName() === undefined) {\n this.container = this.container.closest('[data-grav-array-name]');\n }\n }\n\n _createClass(Template, [{\n key: \"getName\",\n value: function getName() {\n return this.container.data('grav-array-name') || '';\n }\n }, {\n key: \"getKeyPlaceholder\",\n value: function getKeyPlaceholder() {\n return this.container.data('grav-array-keyname') || 'Key';\n }\n }, {\n key: \"getValuePlaceholder\",\n value: function getValuePlaceholder() {\n return this.container.data('grav-array-valuename') || 'Value';\n }\n }, {\n key: \"isValueOnly\",\n value: function isValueOnly() {\n return this.container.find('[data-grav-array-mode=\"value_only\"]:first').length || false;\n }\n }, {\n key: \"isTextArea\",\n value: function isTextArea() {\n return this.container.data('grav-array-textarea') || false;\n }\n }, {\n key: \"shouldBeDisabled\",\n value: function shouldBeDisabled() {\n // check for toggleables, if field is toggleable and it's not enabled, render disabled\n var toggle = this.container.closest('.form-field').find('[data-grav-field=\"toggleable\"] input[type=\"checkbox\"]');\n return toggle.length && toggle.is(':not(:checked)');\n }\n }, {\n key: \"getNewRow\",\n value: function getNewRow() {\n var tpl = '';\n var value = this.isTextArea() ? \"<textarea \".concat(this.shouldBeDisabled() ? 'disabled=\"disabled\"' : '', \" data-grav-array-type=\\\"value\\\" name=\\\"\\\" placeholder=\\\"\").concat(this.getValuePlaceholder(), \"\\\"></textarea>\") : \"<input \".concat(this.shouldBeDisabled() ? 'disabled=\"disabled\"' : '', \" data-grav-array-type=\\\"value\\\" type=\\\"text\\\" name=\\\"\\\" value=\\\"\\\" placeholder=\\\"\").concat(this.getValuePlaceholder(), \"\\\" />\");\n\n if (this.isValueOnly()) {\n tpl += \"\\n <div class=\\\"form-row array-field-value_only\\\" data-grav-array-type=\\\"row\\\">\\n <span data-grav-array-action=\\\"sort\\\" class=\\\"fa fa-bars\\\"></span>\\n \".concat(value, \"\\n \");\n } else {\n tpl += \"\\n <div class=\\\"form-row\\\" data-grav-array-type=\\\"row\\\">\\n <span data-grav-array-action=\\\"sort\\\" class=\\\"fa fa-bars\\\"></span>\\n <input \".concat(this.shouldBeDisabled() ? 'disabled=\"disabled\"' : '', \" data-grav-array-type=\\\"key\\\" type=\\\"text\\\" value=\\\"\\\" placeholder=\\\"\").concat(this.getKeyPlaceholder(), \"\\\" />\\n \").concat(value, \"\\n \");\n }\n\n tpl += \"\\n <span data-grav-array-action=\\\"rem\\\" class=\\\"fa fa-minus\\\"></span>\\n <span data-grav-array-action=\\\"add\\\" class=\\\"fa fa-plus\\\"></span>\\n </div>\";\n return tpl;\n }\n }]);\n\n return Template;\n}();\n\nvar ArrayField = /*#__PURE__*/function () {\n function ArrayField() {\n var _this = this;\n\n _classCallCheck(this, ArrayField);\n\n body.on('input', '[data-grav-array-type=\"key\"], [data-grav-array-type=\"value\"]', function (event) {\n return _this.actionInput(event);\n });\n body.on('click touch', '[data-grav-array-action]:not([data-grav-array-action=\"sort\"])', function (event) {\n return _this.actionEvent(event);\n });\n this.arrays = jquery__WEBPACK_IMPORTED_MODULE_0___default()();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-grav-field=\"array\"]').each(function (index, list) {\n return _this.addArray(list);\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('mutation._grav', this._onAddedNodes.bind(this));\n }\n\n _createClass(ArrayField, [{\n key: \"addArray\",\n value: function addArray(list) {\n var _this2 = this;\n\n list = jquery__WEBPACK_IMPORTED_MODULE_0___default()(list);\n list.find('[data-grav-array-type=\"container\"]').each(function (index, container) {\n container = jquery__WEBPACK_IMPORTED_MODULE_0___default()(container);\n\n if (container.data('array-sort') || container[0].hasAttribute('data-array-nosort')) {\n return;\n }\n\n container.data('array-sort', new sortablejs__WEBPACK_IMPORTED_MODULE_1__.default(container.get(0), {\n handle: '.fa-bars',\n animation: 150,\n onUpdate: function onUpdate() {\n var item = container.find('[data-grav-array-type=\"row\"]:first');\n\n _this2._setTemplate(item);\n\n var template = item.data('array-template');\n\n _this2.refreshNames(template);\n }\n }));\n });\n }\n }, {\n key: \"actionInput\",\n value: function actionInput(event) {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target);\n var type = element.data('grav-array-type');\n\n this._setTemplate(element);\n\n var template = element.data('array-template');\n var keyElement = type === 'key' ? element : element.siblings('[data-grav-array-type=\"key\"]:first');\n var valueElement = type === 'value' ? element : element.siblings('[data-grav-array-type=\"value\"]:first');\n var escaped_name = !template.isValueOnly() ? keyElement.val() : this.getIndexFor(element);\n escaped_name = escaped_name.toString().replace(/\\[/g, '%5B').replace(/]/g, '%5D');\n var name = \"\".concat(template.getName(), \"[\").concat(escaped_name, \"]\");\n\n if (!template.isValueOnly() && !keyElement.val() && !valueElement.val()) {\n valueElement.attr('name', '');\n } else {\n // valueElement.attr('name', !valueElement.val() ? template.getName() : name);\n valueElement.attr('name', name);\n }\n\n this.refreshNames(template);\n }\n }, {\n key: \"actionEvent\",\n value: function actionEvent(event) {\n event && event.preventDefault();\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target);\n var action = element.data('grav-array-action');\n var container = element.parents('[data-grav-array-type=\"container\"]');\n\n this._setTemplate(element);\n\n this[\"\".concat(action, \"Action\")](element);\n var siblings = container.find('> div');\n container[siblings.length > 1 ? 'removeClass' : 'addClass']('one-child');\n }\n }, {\n key: \"addAction\",\n value: function addAction(element) {\n var template = element.data('array-template');\n var row = element.closest('[data-grav-array-type=\"row\"]');\n row.after(template.getNewRow());\n }\n }, {\n key: \"remAction\",\n value: function remAction(element) {\n var template = element.data('array-template');\n var row = element.closest('[data-grav-array-type=\"row\"]');\n var isLast = !row.siblings().length;\n\n if (isLast) {\n var newRow = jquery__WEBPACK_IMPORTED_MODULE_0___default()(template.getNewRow());\n row.after(newRow);\n newRow.find('[data-grav-array-type=\"value\"]:last').attr('name', template.getName());\n }\n\n row.remove();\n this.refreshNames(template);\n }\n }, {\n key: \"refreshNames\",\n value: function refreshNames(template) {\n if (!template.isValueOnly()) {\n return;\n }\n\n var row = template.container.find('> div > [data-grav-array-type=\"row\"]');\n var inputs = row.find('[name]:not([name=\"\"])');\n inputs.each(function (index, input) {\n input = jquery__WEBPACK_IMPORTED_MODULE_0___default()(input);\n var preserved_name = input.closest('[data-grav-array-name]');\n var name = \"\".concat(preserved_name.attr('data-grav-array-name'), \"[\").concat(index, \"]\");\n input.attr('name', name);\n });\n\n if (!inputs.length) {\n row.find('[data-grav-array-type=\"value\"]').attr('name', template.getName());\n }\n }\n }, {\n key: \"getIndexFor\",\n value: function getIndexFor(element) {\n var template = element.data('array-template');\n var row = element.closest('[data-grav-array-type=\"row\"]');\n return template.container.find(\"\".concat(template.isValueOnly() ? '> div ' : '', \" > [data-grav-array-type=\\\"row\\\"]\")).index(row);\n }\n }, {\n key: \"_setTemplate\",\n value: function _setTemplate(element) {\n if (!element.data('array-template')) {\n element.data('array-template', new Template(element.closest('[data-grav-array-name]')));\n }\n }\n }, {\n key: \"_onAddedNodes\",\n value: function _onAddedNodes(event, target\n /* , record, instance */\n ) {\n var _this3 = this;\n\n var arrays = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target).find('[data-grav-field=\"array\"]');\n\n if (!arrays.length) {\n return;\n }\n\n arrays.each(function (index, list) {\n list = jquery__WEBPACK_IMPORTED_MODULE_0___default()(list);\n\n if (!~_this3.arrays.index(list)) {\n _this3.addArray(list);\n }\n });\n }\n }]);\n\n return ArrayField;\n}();\n\n\nvar Instance = new ArrayField();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL2ZpZWxkcy9hcnJheS5qcz8zODRhIl0sIm5hbWVzIjpbImJvZHkiLCIkIiwiVGVtcGxhdGUiLCJjb250YWluZXIiLCJnZXROYW1lIiwidW5kZWZpbmVkIiwiY2xvc2VzdCIsImRhdGEiLCJmaW5kIiwibGVuZ3RoIiwidG9nZ2xlIiwiaXMiLCJ0cGwiLCJ2YWx1ZSIsImlzVGV4dEFyZWEiLCJzaG91bGRCZURpc2FibGVkIiwiZ2V0VmFsdWVQbGFjZWhvbGRlciIsImlzVmFsdWVPbmx5IiwiZ2V0S2V5UGxhY2Vob2xkZXIiLCJBcnJheUZpZWxkIiwib24iLCJldmVudCIsImFjdGlvbklucHV0IiwiYWN0aW9uRXZlbnQiLCJhcnJheXMiLCJlYWNoIiwiaW5kZXgiLCJsaXN0IiwiYWRkQXJyYXkiLCJfb25BZGRlZE5vZGVzIiwiYmluZCIsImhhc0F0dHJpYnV0ZSIsIlNvcnRhYmxlIiwiZ2V0IiwiaGFuZGxlIiwiYW5pbWF0aW9uIiwib25VcGRhdGUiLCJpdGVtIiwiX3NldFRlbXBsYXRlIiwidGVtcGxhdGUiLCJyZWZyZXNoTmFtZXMiLCJlbGVtZW50IiwidGFyZ2V0IiwidHlwZSIsImtleUVsZW1lbnQiLCJzaWJsaW5ncyIsInZhbHVlRWxlbWVudCIsImVzY2FwZWRfbmFtZSIsInZhbCIsImdldEluZGV4Rm9yIiwidG9TdHJpbmciLCJyZXBsYWNlIiwibmFtZSIsImF0dHIiLCJwcmV2ZW50RGVmYXVsdCIsImFjdGlvbiIsInBhcmVudHMiLCJyb3ciLCJhZnRlciIsImdldE5ld1JvdyIsImlzTGFzdCIsIm5ld1JvdyIsInJlbW92ZSIsImlucHV0cyIsImlucHV0IiwicHJlc2VydmVkX25hbWUiLCJJbnN0YW5jZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBRUEsSUFBSUEsSUFBSSxHQUFHQyw2Q0FBQyxDQUFDLE1BQUQsQ0FBWjs7SUFFTUMsUTtBQUNGLG9CQUFZQyxTQUFaLEVBQXVC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QUFQO0FBQ0g7OztXQUVELHNCQUFhaEIsT0FBYixFQUFzQjtBQUNsQixVQUFJLENBQUNBLE9BQU8sQ0FBQ2xDLElBQVIsQ0FBYSxnQkFBYixDQUFMLEVBQXFDO0FBQ2pDa0MsZUFBTyxDQUFDbEMsSUFBUixDQUFhLGdCQUFiLEVBQStCLElBQUlMLFFBQUosQ0FBYXVDLE9BQU8sQ0FBQ25DLE9BQVIsQ0FBZ0Isd0JBQWhCLENBQWIsQ0FBL0I7QUFDSDtBQUNKOzs7V0FFRCx1QkFBY2UsS0FBZCxFQUFxQnFCO0FBQU07QUFBM0IsTUFBcUQ7QUFBQTs7QUFDakQsVUFBSWxCLE1BQU0sR0FBR3ZCLDZDQUFDLENBQUN5QyxNQUFELENBQUQsQ0FBVWxDLElBQVYsQ0FBZSwyQkFBZixDQUFiOztBQUNBLFVBQUksQ0FBQ2dCLE1BQU0sQ0FBQ2YsTUFBWixFQUFvQjtBQUFFO0FBQVM7O0FBRS9CZSxZQUFNLENBQUNDLElBQVAsQ0FBWSxVQUFDQyxLQUFELEVBQVFDLElBQVIsRUFBaUI7QUFDekJBLFlBQUksR0FBRzFCLDZDQUFDLENBQUMwQixJQUFELENBQVI7O0FBQ0EsWUFBSSxDQUFDLENBQUMsTUFBSSxDQUFDSCxNQUFMLENBQVlFLEtBQVosQ0FBa0JDLElBQWxCLENBQU4sRUFBK0I7QUFDM0IsZ0JBQUksQ0FBQ0MsUUFBTCxDQUFjRCxJQUFkO0FBQ0g7QUFDSixPQUxEO0FBTUg7Ozs7Ozs7QUFHRSxJQUFJdUMsUUFBUSxHQUFHLElBQUkvQyxVQUFKLEVBQWYiLCJmaWxlIjoiLi9hcHAvZm9ybXMvZmllbGRzL2FycmF5LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCBTb3J0YWJsZSBmcm9tICdzb3J0YWJsZWpzJztcblxubGV0IGJvZHkgPSAkKCdib2R5Jyk7XG5cbmNsYXNzIFRlbXBsYXRlIHtcbiAgICBjb25zdHJ1Y3Rvcihjb250YWluZXIpIHtcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSAkKGNvbnRhaW5lcik7XG5cbiAgICAgICAgaWYgKHRoaXMuZ2V0TmFtZSgpID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyID0gdGhpcy5jb250YWluZXIuY2xvc2VzdCgnW2RhdGEtZ3Jhdi1hcnJheS1uYW1lXScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0TmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGFpbmVyLmRhdGEoJ2dyYXYtYXJyYXktbmFtZScpIHx8ICcnO1xuICAgIH1cblxuICAgIGdldEtleVBsYWNlaG9sZGVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250YWluZXIuZGF0YSgnZ3Jhdi1hcnJheS1rZXluYW1lJykgfHwgJ0tleSc7XG4gICAgfVxuXG4gICAgZ2V0VmFsdWVQbGFjZWhvbGRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGFpbmVyLmRhdGEoJ2dyYXYtYXJyYXktdmFsdWVuYW1lJykgfHwgJ1ZhbHVlJztcbiAgICB9XG5cbiAgICBpc1ZhbHVlT25seSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGFpbmVyLmZpbmQoJ1tkYXRhLWdyYXYtYXJyYXktbW9kZT1cInZhbHVlX29ubHlcIl06Zmlyc3QnKS5sZW5ndGggfHwgZmFsc2U7XG4gICAgfVxuXG4gICAgaXNUZXh0QXJlYSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGFpbmVyLmRhdGEoJ2dyYXYtYXJyYXktdGV4dGFyZWEnKSB8fCBmYWxzZTtcbiAgICB9XG5cbiAgICBzaG91bGRCZURpc2FibGVkKCkge1xuICAgICAgICAvLyBjaGVjayBmb3IgdG9nZ2xlYWJsZXMsIGlmIGZpZWxkIGlzIHRvZ2dsZWFibGUgYW5kIGl0J3Mgbm90IGVuYWJsZWQsIHJlbmRlciBkaXNhYmxlZFxuICAgICAgICBsZXQgdG9nZ2xlID0gdGhpcy5jb250YWluZXIuY2xvc2VzdCgnLmZvcm0tZmllbGQnKS5maW5kKCdbZGF0YS1ncmF2LWZpZWxkPVwidG9nZ2xlYWJsZVwiXSBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0nKTtcbiAgICAgICAgcmV0dXJuIHRvZ2dsZS5sZW5ndGggJiYgdG9nZ2xlLmlzKCc6bm90KDpjaGVja2VkKScpO1xuICAgIH1cblxuICAgIGdldE5ld1JvdygpIHtcbiAgICAgICAgbGV0IHRwbCA9ICcnO2NvbnN0IHZhbHVlID0gdGhpcy5pc1RleHRBcmVhKClcbiAgICAgICAgICAgID8gYDx0ZXh0YXJlYSAke3RoaXMuc2hvdWxkQmVEaXNhYmxlZCgpID8gJ2Rpc2FibGVkPVwiZGlzYWJsZWRcIicgOiAnJ30gZGF0YS1ncmF2LWFycmF5LXR5cGU9XCJ2YWx1ZVwiIG5hbWU9XCJcIiBwbGFjZWhvbGRlcj1cIiR7dGhpcy5nZXRWYWx1ZVBsYWNlaG9sZGVyKCl9XCI+PC90ZXh0YXJlYT5gXG4gICAgICAgICAgICA6IGA8aW5wdXQgJHt0aGlzLnNob3VsZEJlRGlzYWJsZWQoKSA/ICdkaXNhYmxlZD1cImRpc2FibGVkXCInIDogJyd9IGRhdGEtZ3Jhdi1hcnJheS10eXBlPVwidmFsdWVcIiB0eXBlPVwidGV4dFwiIG5hbWU9XCJcIiB2YWx1ZT1cIlwiICBwbGFjZWhvbGRlcj1cIiR7dGhpcy5nZXRWYWx1ZVBsYWNlaG9sZGVyKCl9XCIgLz5gO1xuXG4gICAgICAgIGlmICh0aGlzLmlzVmFsdWVPbmx5KCkpIHtcbiAgICAgICAgICAgIHRwbCArPSBgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1yb3cgYXJyYXktZmllbGQtdmFsdWVfb25seVwiIGRhdGEtZ3Jhdi1hcnJheS10eXBlPVwicm93XCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gZGF0YS1ncmF2LWFycmF5LWFjdGlvbj1cInNvcnRcIiBjbGFzcz1cImZhIGZhLWJhcnNcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgJHt2YWx1ZX1cbiAgICAgICAgICAgIGA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0cGwgKz0gYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tcm93XCIgZGF0YS1ncmF2LWFycmF5LXR5cGU9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBkYXRhLWdyYXYtYXJyYXktYWN0aW9uPVwic29ydFwiIGNsYXNzPVwiZmEgZmEtYmFyc1wiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgJHt0aGlzLnNob3VsZEJlRGlzYWJsZWQoKSA/ICdkaXNhYmxlZD1cImRpc2FibGVkXCInIDogJyd9IGRhdGEtZ3Jhdi1hcnJheS10eXBlPVwia2V5XCIgdHlwZT1cInRleHRcIiB2YWx1ZT1cIlwiIHBsYWNlaG9sZGVyPVwiJHt0aGlzLmdldEtleVBsYWNlaG9sZGVyKCl9XCIgLz5cbiAgICAgICAgICAgICAgICAke3ZhbHVlfVxuICAgICAgICAgICAgYDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRwbCArPSBgXG4gICAgICAgICAgICA8c3BhbiBkYXRhLWdyYXYtYXJyYXktYWN0aW9uPVwicmVtXCIgY2xhc3M9XCJmYSBmYS1taW51c1wiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGRhdGEtZ3Jhdi1hcnJheS1hY3Rpb249XCJhZGRcIiBjbGFzcz1cImZhIGZhLXBsdXNcIj48L3NwYW4+XG4gICAgICAgIDwvZGl2PmA7XG5cbiAgICAgICAgcmV0dXJuIHRwbDtcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFycmF5RmllbGQge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBib2R5Lm9uKCdpbnB1dCcsICdbZGF0YS1ncmF2LWFycmF5LXR5cGU9XCJrZXlcIl0sIFtkYXRhLWdyYXYtYXJyYXktdHlwZT1cInZhbHVlXCJdJywgKGV2ZW50KSA9PiB0aGlzLmFjdGlvbklucHV0KGV2ZW50KSk7XG4gICAgICAgIGJvZHkub24oJ2NsaWNrIHRvdWNoJywgJ1tkYXRhLWdyYXYtYXJyYXktYWN0aW9uXTpub3QoW2RhdGEtZ3Jhdi1hcnJheS1hY3Rpb249XCJzb3J0XCJdKScsIChldmVudCkgPT4gdGhpcy5hY3Rpb25FdmVudChldmVudCkpO1xuXG4gICAgICAgIHRoaXMuYXJyYXlzID0gJCgpO1xuXG4gICAgICAgICQoJ1tkYXRhLWdyYXYtZmllbGQ9XCJhcnJheVwiXScpLmVhY2goKGluZGV4LCBsaXN0KSA9PiB0aGlzLmFkZEFycmF5KGxpc3QpKTtcbiAgICAgICAgJCgnYm9keScpLm9uKCdtdXRhdGlvbi5fZ3JhdicsIHRoaXMuX29uQWRkZWROb2Rlcy5iaW5kKHRoaXMpKTtcbiAgICB9XG5cbiAgICBhZGRBcnJheShsaXN0KSB7XG4gICAgICAgIGxpc3QgPSAkKGxpc3QpO1xuXG4gICAgICAgIGxpc3QuZmluZCgnW2RhdGEtZ3Jhdi1hcnJheS10eXBlPVwiY29udGFpbmVyXCJdJykuZWFjaCgoaW5kZXgsIGNvbnRhaW5lcikgPT4ge1xuICAgICAgICAgICAgY29udGFpbmVyID0gJChjb250YWluZXIpO1xuICAgICAgICAgICAgaWYgKGNvbnRhaW5lci5kYXRhKCdhcnJheS1zb3J0JykgfHwgY29udGFpbmVyWzBdLmhhc0F0dHJpYnV0ZSgnZGF0YS1hcnJheS1ub3NvcnQnKSkgeyByZXR1cm47IH1cblxuICAgICAgICAgICAgY29udGFpbmVyLmRhdGEoJ2FycmF5LXNvcnQnLCBuZXcgU29ydGFibGUoY29udGFpbmVyLmdldCgwKSwge1xuICAgICAgICAgICAgICAgIGhhbmRsZTogJy5mYS1iYXJzJyxcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IDE1MCxcbiAgICAgICAgICAgICAgICBvblVwZGF0ZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpdGVtID0gY29udGFpbmVyLmZpbmQoJ1tkYXRhLWdyYXYtYXJyYXktdHlwZT1cInJvd1wiXTpmaXJzdCcpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZXRUZW1wbGF0ZShpdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGVtcGxhdGUgPSBpdGVtLmRhdGEoJ2FycmF5LXRlbXBsYXRlJyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaE5hbWVzKHRlbXBsYXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFjdGlvbklucHV0KGV2ZW50KSB7XG4gICAgICAgIGxldCBlbGVtZW50ID0gJChldmVudC50YXJnZXQpO1xuICAgICAgICBsZXQgdHlwZSA9IGVsZW1lbnQuZGF0YSgnZ3Jhdi1hcnJheS10eXBlJyk7XG5cbiAgICAgICAgdGhpcy5fc2V0VGVtcGxhdGUoZWxlbWVudCk7XG5cbiAgICAgICAgbGV0IHRlbXBsYXRlID0gZWxlbWVudC5kYXRhKCdhcnJheS10ZW1wbGF0ZScpO1xuICAgICAgICBsZXQga2V5RWxlbWVudCA9IHR5cGUgPT09ICdrZXknID8gZWxlbWVudCA6IGVsZW1lbnQuc2libGluZ3MoJ1tkYXRhLWdyYXYtYXJyYXktdHlwZT1cImtleVwiXTpmaXJzdCcpO1xuICAgICAgICBsZXQgdmFsdWVFbGVtZW50ID0gdHlwZSA9PT0gJ3ZhbHVlJyA/IGVsZW1lbnQgOiBlbGVtZW50LnNpYmxpbmdzKCdbZGF0YS1ncmF2LWFycmF5LXR5cGU9XCJ2YWx1ZVwiXTpmaXJzdCcpO1xuXG4gICAgICAgIGxldCBlc2NhcGVkX25hbWUgPSAhdGVtcGxhdGUuaXNWYWx1ZU9ubHkoKSA/IGtleUVsZW1lbnQudmFsKCkgOiB0aGlzLmdldEluZGV4Rm9yKGVsZW1lbnQpO1xuICAgICAgICBlc2NhcGVkX25hbWUgPSBlc2NhcGVkX25hbWUudG9TdHJpbmcoKS5yZXBsYWNlKC9cXFsvZywgJyU1QicpLnJlcGxhY2UoL10vZywgJyU1RCcpO1xuICAgICAgICBsZXQgbmFtZSA9IGAke3RlbXBsYXRlLmdldE5hbWUoKX1bJHtlc2NhcGVkX25hbWV9XWA7XG5cbiAgICAgICAgaWYgKCF0ZW1wbGF0ZS5pc1ZhbHVlT25seSgpICYmICgha2V5RWxlbWVudC52YWwoKSAmJiAhdmFsdWVFbGVtZW50LnZhbCgpKSkge1xuICAgICAgICAgICAgdmFsdWVFbGVtZW50LmF0dHIoJ25hbWUnLCAnJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyB2YWx1ZUVsZW1lbnQuYXR0cignbmFtZScsICF2YWx1ZUVsZW1lbnQudmFsKCkgPyB0ZW1wbGF0ZS5nZXROYW1lKCkgOiBuYW1lKTtcbiAgICAgICAgICAgIHZhbHVlRWxlbWVudC5hdHRyKCduYW1lJywgbmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlZnJlc2hOYW1lcyh0ZW1wbGF0ZSk7XG4gICAgfVxuXG4gICAgYWN0aW9uRXZlbnQoZXZlbnQpIHtcbiAgICAgICAgZXZlbnQgJiYgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgbGV0IGVsZW1lbnQgPSAkKGV2ZW50LnRhcmdldCk7XG4gICAgICAgIGxldCBhY3Rpb24gPSBlbGVtZW50LmRhdGEoJ2dyYXYtYXJyYXktYWN0aW9uJyk7XG4gICAgICAgIGxldCBjb250YWluZXIgPSBlbGVtZW50LnBhcmVudHMoJ1tkYXRhLWdyYXYtYXJyYXktdHlwZT1cImNvbnRhaW5lclwiXScpO1xuXG4gICAgICAgIHRoaXMuX3NldFRlbXBsYXRlKGVsZW1lbnQpO1xuXG4gICAgICAgIHRoaXNbYCR7YWN0aW9ufUFjdGlvbmBdKGVsZW1lbnQpO1xuXG4gICAgICAgIGxldCBzaWJsaW5ncyA9IGNvbnRhaW5lci5maW5kKCc+IGRpdicpO1xuICAgICAgICBjb250YWluZXJbc2libGluZ3MubGVuZ3RoID4gMSA/ICdyZW1vdmVDbGFzcycgOiAnYWRkQ2xhc3MnXSgnb25lLWNoaWxkJyk7XG4gICAgfVxuXG4gICAgYWRkQWN0aW9uKGVsZW1lbnQpIHtcbiAgICAgICAgbGV0IHRlbXBsYXRlID0gZWxlbWVudC5kYXRhKCdhcnJheS10ZW1wbGF0ZScpO1xuICAgICAgICBsZXQgcm93ID0gZWxlbWVudC5jbG9zZXN0KCdbZGF0YS1ncmF2LWFycmF5LXR5cGU9XCJyb3dcIl0nKTtcblxuICAgICAgICByb3cuYWZ0ZXIodGVtcGxhdGUuZ2V0TmV3Um93KCkpO1xuICAgIH1cblxuICAgIHJlbUFjdGlvbihlbGVtZW50KSB7XG4gICAgICAgIGxldCB0ZW1wbGF0ZSA9IGVsZW1lbnQuZGF0YSgnYXJyYXktdGVtcGxhdGUnKTtcbiAgICAgICAgbGV0IHJvdyA9IGVsZW1lbnQuY2xvc2VzdCgnW2RhdGEtZ3Jhdi1hcnJheS10eXBlPVwicm93XCJdJyk7XG4gICAgICAgIGxldCBpc0xhc3QgPSAhcm93LnNpYmxpbmdzKCkubGVuZ3RoO1xuXG4gICAgICAgIGlmIChpc0xhc3QpIHtcbiAgICAgICAgICAgIGxldCBuZXdSb3cgPSAkKHRlbXBsYXRlLmdldE5ld1JvdygpKTtcbiAgICAgICAgICAgIHJvdy5hZnRlcihuZXdSb3cpO1xuICAgICAgICAgICAgbmV3Um93LmZpbmQoJ1tkYXRhLWdyYXYtYXJyYXktdHlwZT1cInZhbHVlXCJdOmxhc3QnKS5hdHRyKCduYW1lJywgdGVtcGxhdGUuZ2V0TmFtZSgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJvdy5yZW1vdmUoKTtcbiAgICAgICAgdGhpcy5yZWZyZXNoTmFtZXModGVtcGxhdGUpO1xuICAgIH1cblxuICAgIHJlZnJlc2hOYW1lcyh0ZW1wbGF0ZSkge1xuICAgICAgICBpZiAoIXRlbXBsYXRlLmlzVmFsdWVPbmx5KCkpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgbGV0IHJvdyA9IHRlbXBsYXRlLmNvbnRhaW5lci5maW5kKCc+IGRpdiA+IFtkYXRhLWdyYXYtYXJyYXktdHlwZT1cInJvd1wiXScpO1xuICAgICAgICBsZXQgaW5wdXRzID0gcm93LmZpbmQoJ1tuYW1lXTpub3QoW25hbWU9XCJcIl0pJyk7XG5cbiAgICAgICAgaW5wdXRzLmVhY2goKGluZGV4LCBpbnB1dCkgPT4ge1xuICAgICAgICAgICAgaW5wdXQgPSAkKGlucHV0KTtcbiAgICAgICAgICAgIGNvbnN0IHByZXNlcnZlZF9uYW1lID0gaW5wdXQuY2xvc2VzdCgnW2RhdGEtZ3Jhdi1hcnJheS1uYW1lXScpO1xuICAgICAgICAgICAgY29uc3QgbmFtZSA9IGAke3ByZXNlcnZlZF9uYW1lLmF0dHIoJ2RhdGEtZ3Jhdi1hcnJheS1uYW1lJyl9WyR7aW5kZXh9XWA7XG4gICAgICAgICAgICBpbnB1dC5hdHRyKCduYW1lJywgbmFtZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICghaW5wdXRzLmxlbmd0aCkge1xuICAgICAgICAgICAgcm93LmZpbmQoJ1tkYXRhLWdyYXYtYXJyYXktdHlwZT1cInZhbHVlXCJdJykuYXR0cignbmFtZScsIHRlbXBsYXRlLmdldE5hbWUoKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRJbmRleEZvcihlbGVtZW50KSB7XG4gICAgICAgIGxldCB0ZW1wbGF0ZSA9IGVsZW1lbnQuZGF0YSgnYXJyYXktdGVtcGxhdGUnKTtcbiAgICAgICAgbGV0IHJvdyA9IGVsZW1lbnQuY2xvc2VzdCgnW2RhdGEtZ3Jhdi1hcnJheS10eXBlPVwicm93XCJdJyk7XG5cbiAgICAgICAgcmV0dXJuIHRlbXBsYXRlLmNvbnRhaW5lci5maW5kKGAke3RlbXBsYXRlLmlzVmFsdWVPbmx5KCkgPyAnPiBkaXYgJyA6ICcnfSA+IFtkYXRhLWdyYXYtYXJyYXktdHlwZT1cInJvd1wiXWApLmluZGV4KHJvdyk7XG4gICAgfVxuXG4gICAgX3NldFRlbXBsYXRlKGVsZW1lbnQpIHtcbiAgICAgICAgaWYgKCFlbGVtZW50LmRhdGEoJ2FycmF5LXRlbXBsYXRlJykpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuZGF0YSgnYXJyYXktdGVtcGxhdGUnLCBuZXcgVGVtcGxhdGUoZWxlbWVudC5jbG9zZXN0KCdbZGF0YS1ncmF2LWFycmF5LW5hbWVdJykpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIF9vbkFkZGVkTm9kZXMoZXZlbnQsIHRhcmdldC8qICwgcmVjb3JkLCBpbnN0YW5jZSAqLykge1xuICAgICAgICBsZXQgYXJyYXlzID0gJCh0YXJnZXQpLmZpbmQoJ1tkYXRhLWdyYXYtZmllbGQ9XCJhcnJheVwiXScpO1xuICAgICAgICBpZiAoIWFycmF5cy5sZW5ndGgpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgYXJyYXlzLmVhY2goKGluZGV4LCBsaXN0KSA9PiB7XG4gICAgICAgICAgICBsaXN0ID0gJChsaXN0KTtcbiAgICAgICAgICAgIGlmICghfnRoaXMuYXJyYXlzLmluZGV4KGxpc3QpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRBcnJheShsaXN0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5leHBvcnQgbGV0IEluc3RhbmNlID0gbmV3IEFycmF5RmllbGQoKTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/forms/fields/array.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/forms/fields/collections.js":
|
|
/*!*****************************************!*\
|
|
!*** ./app/forms/fields/collections.js ***!
|
|
\*****************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ CollectionsField),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var sortablejs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! sortablejs */ \"./node_modules/sortablejs/modular/sortable.esm.js\");\n/* harmony import */ var _utils_jquery_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/jquery-utils */ \"./app/utils/jquery-utils.js\");\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); return Constructor; }\n\n\n\n\n\nvar CollectionsField = /*#__PURE__*/function () {\n function CollectionsField() {\n var _this = this;\n\n _classCallCheck(this, CollectionsField);\n\n this.lists = jquery__WEBPACK_IMPORTED_MODULE_0___default()();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-type=\"collection\"]').each(function (index, list) {\n return _this.addList(list);\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('mutation._grav', this._onAddedNodes.bind(this));\n }\n\n _createClass(CollectionsField, [{\n key: \"addList\",\n value: function addList(list) {\n var _this2 = this;\n\n list = jquery__WEBPACK_IMPORTED_MODULE_0___default()(list);\n this.lists = this.lists.add(list);\n list.on('click', '> .collection-actions [data-action=\"add\"]', function (event) {\n return _this2.addItem(event);\n });\n list.on('click', '> ul > li > .item-actions [data-action=\"delete\"]', function (event) {\n return _this2.removeItem(event);\n });\n list.on('click', '> ul > li > .item-actions [data-action=\"collapse\"]', function (event) {\n return _this2.collapseItem(event);\n });\n list.on('click', '> ul > li > .item-actions [data-action=\"expand\"]', function (event) {\n return _this2.expandItem(event);\n });\n list.on('click', '> .collection-actions [data-action-sort=\"date\"]', function (event) {\n return _this2.sortItems(event);\n });\n list.on('click', '> .collection-actions [data-action=\"collapse_all\"]', function (event) {\n return _this2.collapseItems(event);\n });\n list.on('click', '> .collection-actions [data-action=\"expand_all\"]', function (event) {\n return _this2.expandItems(event);\n });\n list.on('input change', '[data-key-observe]', function (event) {\n return _this2.observeKey(event);\n });\n list.find('[data-collection-holder]').each(function (index, container) {\n container = jquery__WEBPACK_IMPORTED_MODULE_0___default()(container);\n\n if (container.data('collection-sort') || container[0].hasAttribute('data-collection-nosort')) {\n return;\n }\n\n container.data('collection-sort', new sortablejs__WEBPACK_IMPORTED_MODULE_1__.default(container.get(0), {\n forceFallback: false,\n handle: '.collection-sort',\n animation: 150,\n onUpdate: function onUpdate() {\n return _this2.reindex(container);\n }\n }));\n });\n\n this._updateActionsStateBasedOnMinMax(list);\n }\n }, {\n key: \"addItem\",\n value: function addItem(event) {\n var button = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var position = button.data('action-add') || 'bottom';\n var list = jquery__WEBPACK_IMPORTED_MODULE_0___default()(button.closest('[data-type=\"collection\"]'));\n var template = jquery__WEBPACK_IMPORTED_MODULE_0___default()(list.find('> [data-collection-template=\"new\"]').data('collection-template-html'));\n\n this._updateActionsStateBasedOnMinMax(list);\n\n var items = list.closest('[data-type=\"collection\"]').find('> ul > [data-collection-item]');\n var maxItems = list.data('max');\n\n if (typeof maxItems !== 'undefined' && items.length >= maxItems) {\n return;\n }\n\n list.find('> [data-collection-holder]')[position === 'top' ? 'prepend' : 'append'](template);\n this.reindex(list);\n items = list.closest('[data-type=\"collection\"]').find('> ul > [data-collection-item]');\n var topAction = list.closest('[data-type=\"collection\"]').find('[data-action-add=\"top\"]');\n var sortAction = list.closest('[data-type=\"collection\"]').find('[data-action=\"sort\"]');\n\n if (items.length) {\n if (topAction.length) {\n topAction.parent().removeClass('hidden');\n }\n\n if (sortAction.length && items.length > 1) {\n sortAction.removeClass('hidden');\n }\n } // refresh toggleables in a list\n\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-grav-field=\"toggleable\"] input[type=\"checkbox\"]').trigger('change');\n }\n }, {\n key: \"removeItem\",\n value: function removeItem(event) {\n var button = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var item = button.closest('[data-collection-item]');\n var list = jquery__WEBPACK_IMPORTED_MODULE_0___default()(button.closest('[data-type=\"collection\"]'));\n var items = list.closest('[data-type=\"collection\"]').find('> ul > [data-collection-item]');\n var minItems = list.data('min');\n\n if (typeof minItems !== 'undefined' && items.length <= minItems) {\n return;\n }\n\n item.remove();\n this.reindex(list);\n items = list.closest('[data-type=\"collection\"]').find('> ul > [data-collection-item]');\n var topAction = list.closest('[data-type=\"collection\"]').find('[data-action-add=\"top\"]');\n var sortAction = list.closest('[data-type=\"collection\"]').find('[data-action=\"sort\"]');\n\n if (!items.length) {\n if (topAction.length) {\n topAction.parent().addClass('hidden');\n }\n }\n\n if (sortAction.length && items.length <= 1) {\n sortAction.addClass('hidden');\n }\n\n this._updateActionsStateBasedOnMinMax(list);\n }\n }, {\n key: \"collapseItems\",\n value: function collapseItems(event) {\n var button = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var items = jquery__WEBPACK_IMPORTED_MODULE_0___default()(button.closest('[data-type=\"collection\"]')).find('> ul > [data-collection-item] > .item-actions [data-action=\"collapse\"]');\n items.click();\n }\n }, {\n key: \"collapseItem\",\n value: function collapseItem(event) {\n var button = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var item = button.closest('[data-collection-item]');\n button.attr('data-action', 'expand').removeClass('fa-chevron-circle-down').addClass('fa-chevron-circle-right');\n item.addClass('collection-collapsed');\n }\n }, {\n key: \"expandItems\",\n value: function expandItems(event) {\n var button = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var items = jquery__WEBPACK_IMPORTED_MODULE_0___default()(button.closest('[data-type=\"collection\"]')).find('> ul > [data-collection-item] > .item-actions [data-action=\"expand\"]');\n items.click();\n }\n }, {\n key: \"expandItem\",\n value: function expandItem(event) {\n var button = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var item = button.closest('[data-collection-item]');\n button.attr('data-action', 'collapse').removeClass('fa-chevron-circle-right').addClass('fa-chevron-circle-down');\n item.removeClass('collection-collapsed');\n }\n }, {\n key: \"sortItems\",\n value: function sortItems(event) {\n var button = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var sortby = button.data('action-sort');\n var sortby_dir = button.data('action-sort-dir') || 'asc';\n var list = jquery__WEBPACK_IMPORTED_MODULE_0___default()(button.closest('[data-type=\"collection\"]'));\n var items = list.closest('[data-type=\"collection\"]').find('> ul > [data-collection-item]');\n items.sort(function (a, b) {\n var A = jquery__WEBPACK_IMPORTED_MODULE_0___default()(a).find('[name$=\"[' + sortby + ']\"]');\n var B = jquery__WEBPACK_IMPORTED_MODULE_0___default()(b).find('[name$=\"[' + sortby + ']\"]');\n var sort;\n\n if (sortby_dir === 'asc') {\n sort = A.val() < B.val() ? -1 : A.val() > B.val() ? 1 : 0;\n } else {\n sort = A.val() > B.val() ? -1 : A.val() < B.val() ? 1 : 0;\n }\n\n return sort;\n }).each(function (_, container) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(container).parent().append(container);\n });\n this.reindex(list);\n }\n }, {\n key: \"observeKey\",\n value: function observeKey(event) {\n var input = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target);\n var value = input.val();\n var item = input.closest('[data-collection-key]');\n item.data('collection-key-backup', item.data('collection-key')).data('collection-key', value);\n this.reindex(null, item);\n }\n }, {\n key: \"reindex\",\n value: function reindex(list, items) {\n items = items || jquery__WEBPACK_IMPORTED_MODULE_0___default()(list).closest('[data-type=\"collection\"]').find('> ul > [data-collection-item]');\n items.each(function (index, item) {\n item = jquery__WEBPACK_IMPORTED_MODULE_0___default()(item);\n var observed = item.find('[data-key-observe]');\n var observedValue = observed.val();\n var hasCustomKey = observed.length;\n var currentKey = item.data('collection-key-backup');\n item.attr('data-collection-key', hasCustomKey ? observedValue : index);\n ['name', 'data-grav-field-name', 'for', 'id', 'data-grav-file-settings', 'data-file-post-add', 'data-file-post-remove', 'data-grav-array-name'].forEach(function (prop) {\n item.find('[' + prop + '], [_' + prop + ']').each(function () {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n var indexes = [];\n var array_index = null;\n var regexps = [new RegExp('\\\\[(\\\\d+|\\\\*|' + currentKey + ')\\\\]', 'g'), new RegExp('\\\\.(\\\\d+|\\\\*|' + currentKey + ')\\\\.', 'g')]; // special case to preserve array field index keys\n\n if (prop === 'name' && element.data('gravArrayType')) {\n var match_index = element.attr(prop).match(/\\[[0-9]{1,}\\]$/);\n var pattern = element[0].closest('[data-grav-array-name]').dataset.gravArrayName;\n\n if (match_index && pattern) {\n array_index = match_index[0];\n element.attr(prop, \"\".concat(pattern).concat(match_index[0]));\n return;\n }\n }\n\n if (hasCustomKey && !observedValue) {\n element.attr(\"_\".concat(prop), element.attr(prop));\n element.attr(prop, null);\n return;\n }\n\n if (element.attr(\"_\".concat(prop))) {\n element.attr(prop, element.attr(\"_\".concat(prop)));\n element.attr(\"_\".concat(prop), null);\n }\n\n element.parents('[data-collection-key]').map(function (idx, parent) {\n return indexes.push(jquery__WEBPACK_IMPORTED_MODULE_0___default()(parent).attr('data-collection-key'));\n });\n indexes.reverse();\n var matchedKey = currentKey;\n var replaced = element.attr(prop).replace(regexps[0], function ()\n /* str, p1, offset */\n {\n var extras = '';\n\n if (array_index) {\n extras = array_index;\n console.log(indexes, extras);\n }\n\n matchedKey = indexes.shift() || matchedKey;\n return \"[\".concat(matchedKey, \"]\").concat(extras);\n });\n replaced = replaced.replace(regexps[1], function ()\n /* str, p1, offset */\n {\n matchedKey = indexes.shift() || matchedKey;\n return \".\".concat(matchedKey, \".\");\n });\n element.attr(prop, replaced);\n });\n });\n });\n }\n }, {\n key: \"_onAddedNodes\",\n value: function _onAddedNodes(event, target\n /* , record, instance */\n ) {\n var _this3 = this;\n\n var collections = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target).find('[data-type=\"collection\"]');\n\n if (!collections.length) {\n return;\n }\n\n collections.each(function (index, collection) {\n collection = jquery__WEBPACK_IMPORTED_MODULE_0___default()(collection);\n\n if (!~_this3.lists.index(collection)) {\n _this3.addList(collection);\n }\n });\n }\n }, {\n key: \"_updateActionsStateBasedOnMinMax\",\n value: function _updateActionsStateBasedOnMinMax(list) {\n var items = list.closest('[data-type=\"collection\"]').find('> ul > [data-collection-item]');\n var minItems = list.data('min');\n var maxItems = list.data('max');\n list.find('> .collection-actions [data-action=\"add\"]').attr('disabled', false);\n list.find('> ul > li > .item-actions [data-action=\"delete\"]').attr('disabled', false);\n\n if (typeof minItems !== 'undefined' && items.length <= minItems) {\n list.find('> ul > li > .item-actions [data-action=\"delete\"]').attr('disabled', true);\n }\n\n if (typeof maxItems !== 'undefined' && items.length >= maxItems) {\n list.find('> .collection-actions [data-action=\"add\"]').attr('disabled', true);\n }\n }\n }]);\n\n return CollectionsField;\n}();\n\n\nvar Instance = new CollectionsField();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL2ZpZWxkcy9jb2xsZWN0aW9ucy5qcz82YzU1Il0sIm5hbWVzIjpbIkNvbGxlY3Rpb25zRmllbGQiLCJsaXN0cyIsIiQiLCJlYWNoIiwiaW5kZXgiLCJsaXN0IiwiYWRkTGlzdCIsIm9uIiwiX29uQWRkZWROb2RlcyIsImJpbmQiLCJhZGQiLCJldmVudCIsImFkZEl0ZW0iLCJyZW1vdmVJdGVtIiwiY29sbGFwc2VJdGVtIiwiZXhwYW5kSXRlbSIsInNvcnRJdGVtcyIsImNvbGxhcHNlSXRlbXMiLCJleHBhbmRJdGVtcyIsIm9ic2VydmVLZXkiLCJmaW5kIiwiY29udGFpbmVyIiwiZGF0YSIsImhhc0F0dHJpYnV0ZSIsIlNvcnRhYmxlIiwiZ2V0IiwiZm9yY2VGYWxsYmFjayIsImhhbmRsZSIsImFuaW1hdGlvbiIsIm9uVXBkYXRlIiwicmVpbmRleCIsIl91cGRhdGVBY3Rpb25zU3RhdGVCYXNlZE9uTWluTWF4IiwiYnV0dG9uIiwiY3VycmVudFRhcmdldCIsInBvc2l0aW9uIiwiY2xvc2VzdCIsInRlbXBsYXRlIiwiaXRlbXMiLCJtYXhJdGVtcyIsImxlbmd0aCIsInRvcEFjdGlvbiIsInNvcnRBY3Rpb24iLCJwYXJlbnQiLCJyZW1vdmVDbGFzcyIsInRyaWdnZXIiLCJpdGVtIiwibWluSXRlbXMiLCJyZW1vdmUiLCJhZGRDbGFzcyIsImNsaWNrIiwiYXR0ciIsInNvcnRieSIsInNvcnRieV9kaXIiLCJzb3J0IiwiYSIsImIiLCJBIiwiQiIsInZhbCIsIl8iLCJhcHBlbmQiLCJpbnB1dCIsInRhcmdldCIsInZhbHVlIiwib2JzZXJ2ZWQiLCJvYnNlcnZlZFZhbHVlIiwiaGFzQ3VzdG9tS2V5IiwiY3VycmVudEtleSIsImZvckVhY2giLCJwcm9wIiwiZWxlbWVudCIsImluZGV4ZXMiLCJhcnJheV9pbmRleCIsInJlZ2V4cHMiLCJSZWdFeHAiLCJtYXRjaF9pbmRleCIsIm1hdGNoIiwicGF0dGVybiIsImRhdGFzZXQiLCJncmF2QXJyYXlOYW1lIiwicGFyZW50cyIsIm1hcCIsImlkeCIsInB1c2giLCJyZXZlcnNlIiwibWF0Y2hlZEtleSIsInJlcGxhY2VkIiwicmVwbGFjZSIsImV4dHJhcyIsImNvbnNvbGUiLCJsb2ciLCJzaGlmdCIsImNvbGxlY3Rpb25zIiwiY29sbGVjdGlvbiIsIkluc3RhbmNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7O0lBRXFCQSxnQjtBQUNqQiw4QkFBYztBQUFBOztBQUFBOztBQUNWLFNBQUtDLEtBQUwsR0FBYUMsNkNBQUMsRUFBZDtBQUVBQSxpREFBQyxDQUFDLDBCQUFELENBQUQsQ0FBOEJDLElBQTlCLENBQW1DLFVBQUNDLEtBQUQsRUFBUUMsSUFBUjtBQUFBLGFBQWlCLEtBQUksQ0FBQ0MsT0FBTCxDQUFhRCxJQUFiLENBQWpCO0FBQUEsS0FBbkM7QUFDQUgsaURBQUMsQ0FBQyxNQUFELENBQUQsQ0FBVUssRUFBVixDQUFhLGdCQUFiLEVBQStCLEtBQUtDLGFBQUwsQ0FBbUJDLElBQW5CLENBQXdCLElBQXhCLENBQS9CO0FBRUg7Ozs7V0FFRCxpQkFBUUosSUFBUixFQUFjO0FBQUE7O0FBQ1ZBLFVBQUksR0FBR0gsNkNBQUMsQ0FBQ0csSUFBRCxDQUFSO0FBQ0EsV0FBS0osS0FBTCxHQUFhLEtBQUtBLEtBQUwsQ0FBV1MsR0FBWCxDQUFlTCxJQUFmLENBQWI7QUFFQUEsVUFBSSxDQUFDRSxFQUFMLENBQVEsT0FBUixFQUFpQiwyQ0FBakIsRUFBOEQsVUFBQ0ksS0FBRDtBQUFBLGVBQVcsTUFBSSxDQUFDQyxPQUFMLENBQWFELEtBQWIsQ0FBWDtBQUFBLE9BQTlEO0FBQ0FOLFVBQUksQ0FBQ0UsRUFBTCxDQUFRLE9BQVIsRUFBaUIsa0RBQWpCLEVBQXFFLFVBQUNJLEtBQUQ7QUFBQSxlQUFXLE1BQUksQ0FBQ0UsVUFBTCxDQUFnQkYsS0FBaEIsQ0FBWDtBQUFBLE9BQXJFO0FBQ0FOLFVBQUksQ0FBQ0UsRUFBTCxDQUFRLE9BQVIsRUFBaUIs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QUFiO0FBQ0g7QUFDSixPQUxEO0FBTUg7OztXQUVELDBDQUFpQ3hGLElBQWpDLEVBQXVDO0FBQ25DLFVBQUlnQyxLQUFLLEdBQUdoQyxJQUFJLENBQUM4QixPQUFMLENBQWEsMEJBQWIsRUFBeUNmLElBQXpDLENBQThDLCtCQUE5QyxDQUFaO0FBQ0EsVUFBSTBCLFFBQVEsR0FBR3pDLElBQUksQ0FBQ2lCLElBQUwsQ0FBVSxLQUFWLENBQWY7QUFDQSxVQUFJZ0IsUUFBUSxHQUFHakMsSUFBSSxDQUFDaUIsSUFBTCxDQUFVLEtBQVYsQ0FBZjtBQUVBakIsVUFBSSxDQUFDZSxJQUFMLENBQVUsMkNBQVYsRUFBdUQ4QixJQUF2RCxDQUE0RCxVQUE1RCxFQUF3RSxLQUF4RTtBQUNBN0MsVUFBSSxDQUFDZSxJQUFMLENBQVUsa0RBQVYsRUFBOEQ4QixJQUE5RCxDQUFtRSxVQUFuRSxFQUErRSxLQUEvRTs7QUFFQSxVQUFJLE9BQU9KLFFBQVAsS0FBb0IsV0FBcEIsSUFBbUNULEtBQUssQ0FBQ0UsTUFBTixJQUFnQk8sUUFBdkQsRUFBaUU7QUFDN0R6QyxZQUFJLENBQUNlLElBQUwsQ0FBVSxrREFBVixFQUE4RDhCLElBQTlELENBQW1FLFVBQW5FLEVBQStFLElBQS9FO0FBQ0g7O0FBRUQsVUFBSSxPQUFPWixRQUFQLEtBQW9CLFdBQXBCLElBQW1DRCxLQUFLLENBQUNFLE1BQU4sSUFBZ0JELFFBQXZELEVBQWlFO0FBQzdEakMsWUFBSSxDQUFDZSxJQUFMLENBQVUsMkNBQVYsRUFBdUQ4QixJQUF2RCxDQUE0RCxVQUE1RCxFQUF3RSxJQUF4RTtBQUNIO0FBQ0o7Ozs7Ozs7QUFHRSxJQUFJNEMsUUFBUSxHQUFHLElBQUk5RixnQkFBSixFQUFmIiwiZmlsZSI6Ii4vYXBwL2Zvcm1zL2ZpZWxkcy9jb2xsZWN0aW9ucy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgU29ydGFibGUgZnJvbSAnc29ydGFibGVqcyc7XG5pbXBvcnQgJy4uLy4uL3V0aWxzL2pxdWVyeS11dGlscyc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbGxlY3Rpb25zRmllbGQge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmxpc3RzID0gJCgpO1xuXG4gICAgICAgICQoJ1tkYXRhLXR5cGU9XCJjb2xsZWN0aW9uXCJdJykuZWFjaCgoaW5kZXgsIGxpc3QpID0+IHRoaXMuYWRkTGlzdChsaXN0KSk7XG4gICAgICAgICQoJ2JvZHknKS5vbignbXV0YXRpb24uX2dyYXYnLCB0aGlzLl9vbkFkZGVkTm9kZXMuYmluZCh0aGlzKSk7XG5cbiAgICB9XG5cbiAgICBhZGRMaXN0KGxpc3QpIHtcbiAgICAgICAgbGlzdCA9ICQobGlzdCk7XG4gICAgICAgIHRoaXMubGlzdHMgPSB0aGlzLmxpc3RzLmFkZChsaXN0KTtcblxuICAgICAgICBsaXN0Lm9uKCdjbGljaycsICc+IC5jb2xsZWN0aW9uLWFjdGlvbnMgW2RhdGEtYWN0aW9uPVwiYWRkXCJdJywgKGV2ZW50KSA9PiB0aGlzLmFkZEl0ZW0oZXZlbnQpKTtcbiAgICAgICAgbGlzdC5vbignY2xpY2snLCAnPiB1bCA+IGxpID4gLml0ZW0tYWN0aW9ucyBbZGF0YS1hY3Rpb249XCJkZWxldGVcIl0nLCAoZXZlbnQpID0+IHRoaXMucmVtb3ZlSXRlbShldmVudCkpO1xuICAgICAgICBsaXN0Lm9uKCdjbGljaycsICc+IHVsID4gbGkgPiAuaXRlbS1hY3Rpb25zIFtkYXRhLWFjdGlvbj1cImNvbGxhcHNlXCJdJywgKGV2ZW50KSA9PiB0aGlzLmNvbGxhcHNlSXRlbShldmVudCkpO1xuICAgICAgICBsaXN0Lm9uKCdjbGljaycsICc+IHVsID4gbGkgPiAuaXRlbS1hY3Rpb25zIFtkYXRhLWFjdGlvbj1cImV4cGFuZFwiXScsIChldmVudCkgPT4gdGhpcy5leHBhbmRJdGVtKGV2ZW50KSk7XG4gICAgICAgIGxpc3Qub24oJ2NsaWNrJywgJz4gLmNvbGxlY3Rpb24tYWN0aW9ucyBbZGF0YS1hY3Rpb24tc29ydD1cImRhdGVcIl0nLCAoZXZlbnQpID0+IHRoaXMuc29ydEl0ZW1zKGV2ZW50KSk7XG4gICAgICAgIGxpc3Qub24oJ2NsaWNrJywgJz4gLmNvbGxlY3Rpb24tYWN0aW9ucyBbZGF0YS1hY3Rpb249XCJjb2xsYXBzZV9hbGxcIl0nLCAoZXZlbnQpID0+IHRoaXMuY29sbGFwc2VJdGVtcyhldmVudCkpO1xuICAgICAgICBsaXN0Lm9uKCdjbGljaycsICc+IC5jb2xsZWN0aW9uLWFjdGlvbnMgW2RhdGEtYWN0aW9uPVwiZXhwYW5kX2FsbFwiXScsIChldmVudCkgPT4gdGhpcy5leHBhbmRJdGVtcyhldmVudCkpO1xuICAgICAgICBsaXN0Lm9uKCdpbnB1dCBjaGFuZ2UnLCAnW2RhdGEta2V5LW9ic2VydmVdJywgKGV2ZW50KSA9PiB0aGlzLm9ic2VydmVLZXkoZXZlbnQpKTtcblxuICAgICAgICBsaXN0LmZpbmQoJ1tkYXRhLWNvbGxlY3Rpb24taG9sZGVyXScpLmVhY2goKGluZGV4LCBjb250YWluZXIpID0+IHtcbiAgICAgICAgICAgIGNvbnRhaW5lciA9ICQoY29udGFpbmVyKTtcbiAgICAgICAgICAgIGlmIChjb250YWluZXIuZGF0YSgnY29sbGVjdGlvbi1zb3J0JykgfHwgY29udGFpbmVyWzBdLmhhc0F0dHJpYnV0ZSgnZGF0YS1jb2xsZWN0aW9uLW5vc29ydCcpKSB7IHJldHVybjsgfVxuXG4gICAgICAgICAgICBjb250YWluZXIuZGF0YSgnY29sbGVjdGlvbi1zb3J0JywgbmV3IFNvcnRhYmxlKGNvbnRhaW5lci5nZXQoMCksIHtcbiAgICAgICAgICAgICAgICBmb3JjZUZhbGxiYWNrOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBoYW5kbGU6ICcuY29sbGVjdGlvbi1zb3J0JyxcbiAgICAgICAgICAgICAgICBhbmltYXRpb246IDE1MCxcbiAgICAgICAgICAgICAgICBvblVwZGF0ZTogKCkgPT4gdGhpcy5yZWluZGV4KGNvbnRhaW5lcilcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fdXBkYXRlQWN0aW9uc1N0YXRlQmFzZWRPbk1pbk1heChsaXN0KTtcbiAgICB9XG5cbiAgICBhZGRJdGVtKGV2ZW50KSB7XG4gICAgICAgIGxldCBidXR0b24gPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuICAgICAgICBsZXQgcG9zaXRpb24gPSBidXR0b24uZGF0YSgnYWN0aW9uLWFkZCcpIHx8ICdib3R0b20nO1xuICAgICAgICBsZXQgbGlzdCA9ICQoYnV0dG9uLmNsb3Nlc3QoJ1tkYXRhLXR5cGU9XCJjb2xsZWN0aW9uXCJdJykpO1xuICAgICAgICBsZXQgdGVtcGxhdGUgPSAkKGxpc3QuZmluZCgnPiBbZGF0YS1jb2xsZWN0aW9uLXRlbXBsYXRlPVwibmV3XCJdJykuZGF0YSgnY29sbGVjdGlvbi10ZW1wbGF0ZS1odG1sJykpO1xuXG4gICAgICAgIHRoaXMuX3VwZGF0ZUFjdGlvbnNTdGF0ZUJhc2VkT25NaW5NYXgobGlzdCk7XG4gICAgICAgIGxldCBpdGVtcyA9IGxpc3QuY2xvc2VzdCgnW2RhdGEtdHlwZT1cImNvbGxlY3Rpb25cIl0nKS5maW5kKCc+IHVsID4gW2RhdGEtY29sbGVjdGlvbi1pdGVtXScpO1xuICAgICAgICBsZXQgbWF4SXRlbXMgPSBsaXN0LmRhdGEoJ21heCcpO1xuICAgICAgICBpZiAodHlwZW9mIG1heEl0ZW1zICE9PSAndW5kZWZpbmVkJyAmJiBpdGVtcy5sZW5ndGggPj0gbWF4SXRlbXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpc3QuZmluZCgnPiBbZGF0YS1jb2xsZWN0aW9uLWhvbGRlcl0nKVtwb3NpdGlvbiA9PT0gJ3RvcCcgPyAncHJlcGVuZCcgOiAnYXBwZW5kJ10odGVtcGxhdGUpO1xuICAgICAgICB0aGlzLnJlaW5kZXgobGlzdCk7XG5cbiAgICAgICAgaXRlbXMgPSBsaXN0LmNsb3Nlc3QoJ1tkYXRhLXR5cGU9XCJjb2xsZWN0aW9uXCJdJykuZmluZCgnPiB1bCA+IFtkYXRhLWNvbGxlY3Rpb24taXRlbV0nKTtcbiAgICAgICAgbGV0IHRvcEFjdGlvbiA9IGxpc3QuY2xvc2VzdCgnW2RhdGEtdHlwZT1cImNvbGxlY3Rpb25cIl0nKS5maW5kKCdbZGF0YS1hY3Rpb24tYWRkPVwidG9wXCJdJyk7XG4gICAgICAgIGxldCBzb3J0QWN0aW9uID0gbGlzdC5jbG9zZXN0KCdbZGF0YS10eXBlPVwiY29sbGVjdGlvblwiXScpLmZpbmQoJ1tkYXRhLWFjdGlvbj1cInNvcnRcIl0nKTtcblxuICAgICAgICBpZiAoaXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAodG9wQWN0aW9uLmxlbmd0aCkgeyB0b3BBY3Rpb24ucGFyZW50KCkucmVtb3ZlQ2xhc3MoJ2hpZGRlbicpOyB9XG4gICAgICAgICAgICBpZiAoc29ydEFjdGlvbi5sZW5ndGggJiYgaXRlbXMubGVuZ3RoID4gMSkgeyBzb3J0QWN0aW9uLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTsgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gcmVmcmVzaCB0b2dnbGVhYmxlcyBpbiBhIGxpc3RcbiAgICAgICAgJCgnW2RhdGEtZ3Jhdi1maWVsZD1cInRvZ2dsZWFibGVcIl0gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdJykudHJpZ2dlcignY2hhbmdlJyk7XG4gICAgfVxuXG4gICAgcmVtb3ZlSXRlbShldmVudCkge1xuICAgICAgICBsZXQgYnV0dG9uID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgICAgICAgbGV0IGl0ZW0gPSBidXR0b24uY2xvc2VzdCgnW2RhdGEtY29sbGVjdGlvbi1pdGVtXScpO1xuICAgICAgICBsZXQgbGlzdCA9ICQoYnV0dG9uLmNsb3Nlc3QoJ1tkYXRhLXR5cGU9XCJjb2xsZWN0aW9uXCJdJykpO1xuXG4gICAgICAgIGxldCBpdGVtcyA9IGxpc3QuY2xvc2VzdCgnW2RhdGEtdHlwZT1cImNvbGxlY3Rpb25cIl0nKS5maW5kKCc+IHVsID4gW2RhdGEtY29sbGVjdGlvbi1pdGVtXScpO1xuICAgICAgICBsZXQgbWluSXRlbXMgPSBsaXN0LmRhdGEoJ21pbicpO1xuXG4gICAgICAgIGlmICh0eXBlb2YgbWluSXRlbXMgIT09ICd1bmRlZmluZWQnICYmIGl0ZW1zLmxlbmd0aCA8PSBtaW5JdGVtcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaXRlbS5yZW1vdmUoKTtcbiAgICAgICAgdGhpcy5yZWluZGV4KGxpc3QpO1xuXG4gICAgICAgIGl0ZW1zID0gbGlzdC5jbG9zZXN0KCdbZGF0YS10eXBlPVwiY29sbGVjdGlvblwiXScpLmZpbmQoJz4gdWwgPiBbZGF0YS1jb2xsZWN0aW9uLWl0ZW1dJyk7XG4gICAgICAgIGxldCB0b3BBY3Rpb24gPSBsaXN0LmNsb3Nlc3QoJ1tkYXRhLXR5cGU9XCJjb2xsZWN0aW9uXCJdJykuZmluZCgnW2RhdGEtYWN0aW9uLWFkZD1cInRvcFwiXScpO1xuICAgICAgICBsZXQgc29ydEFjdGlvbiA9IGxpc3QuY2xvc2VzdCgnW2RhdGEtdHlwZT1cImNvbGxlY3Rpb25cIl0nKS5maW5kKCdbZGF0YS1hY3Rpb249XCJzb3J0XCJdJyk7XG5cbiAgICAgICAgaWYgKCFpdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGlmICh0b3BBY3Rpb24ubGVuZ3RoKSB7IHRvcEFjdGlvbi5wYXJlbnQoKS5hZGRDbGFzcygnaGlkZGVuJyk7IH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzb3J0QWN0aW9uLmxlbmd0aCAmJiBpdGVtcy5sZW5ndGggPD0gMSkgeyBzb3J0QWN0aW9uLmFkZENsYXNzKCdoaWRkZW4nKTsgfVxuICAgICAgICB0aGlzLl91cGRhdGVBY3Rpb25zU3RhdGVCYXNlZE9uTWluTWF4KGxpc3QpO1xuICAgIH1cblxuICAgIGNvbGxhcHNlSXRlbXMoZXZlbnQpIHtcbiAgICAgICAgbGV0IGJ1dHRvbiA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgICAgIGxldCBpdGVtcyA9ICQoYnV0dG9uLmNsb3Nlc3QoJ1tkYXRhLXR5cGU9XCJjb2xsZWN0aW9uXCJdJykpLmZpbmQoJz4gdWwgPiBbZGF0YS1jb2xsZWN0aW9uLWl0ZW1dID4gLml0ZW0tYWN0aW9ucyBbZGF0YS1hY3Rpb249XCJjb2xsYXBzZVwiXScpO1xuXG4gICAgICAgIGl0ZW1zLmNsaWNrKCk7XG4gICAgfVxuXG4gICAgY29sbGFwc2VJdGVtKGV2ZW50KSB7XG4gICAgICAgIGxldCBidXR0b24gPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuICAgICAgICBsZXQgaXRlbSA9IGJ1dHRvbi5jbG9zZXN0KCdbZGF0YS1jb2xsZWN0aW9uLWl0ZW1dJyk7XG5cbiAgICAgICAgYnV0dG9uLmF0dHIoJ2RhdGEtYWN0aW9uJywgJ2V4cGFuZCcpLnJlbW92ZUNsYXNzKCdmYS1jaGV2cm9uLWNpcmNsZS1kb3duJykuYWRkQ2xhc3MoJ2ZhLWNoZXZyb24tY2lyY2xlLXJpZ2h0Jyk7XG4gICAgICAgIGl0ZW0uYWRkQ2xhc3MoJ2NvbGxlY3Rpb24tY29sbGFwc2VkJyk7XG4gICAgfVxuXG4gICAgZXhwYW5kSXRlbXMoZXZlbnQpIHtcbiAgICAgICAgbGV0IGJ1dHRvbiA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgICAgIGxldCBpdGVtcyA9ICQoYnV0dG9uLmNsb3Nlc3QoJ1tkYXRhLXR5cGU9XCJjb2xsZWN0aW9uXCJdJykpLmZpbmQoJz4gdWwgPiBbZGF0YS1jb2xsZWN0aW9uLWl0ZW1dID4gLml0ZW0tYWN0aW9ucyBbZGF0YS1hY3Rpb249XCJleHBhbmRcIl0nKTtcblxuICAgICAgICBpdGVtcy5jbGljaygpO1xuICAgIH1cblxuICAgIGV4cGFuZEl0ZW0oZXZlbnQpIHtcbiAgICAgICAgbGV0IGJ1dHRvbiA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgICAgIGxldCBpdGVtID0gYnV0dG9uLmNsb3Nlc3QoJ1tkYXRhLWNvbGxlY3Rpb24taXRlbV0nKTtcblxuICAgICAgICBidXR0b24uYXR0cignZGF0YS1hY3Rpb24nLCAnY29sbGFwc2UnKS5yZW1vdmVDbGFzcygnZmEtY2hldnJvbi1jaXJjbGUtcmlnaHQnKS5hZGRDbGFzcygnZmEtY2hldnJvbi1jaXJjbGUtZG93bicpO1xuICAgICAgICBpdGVtLnJlbW92ZUNsYXNzKCdjb2xsZWN0aW9uLWNvbGxhcHNlZCcpO1xuICAgIH1cblxuICAgIHNvcnRJdGVtcyhldmVudCkge1xuICAgICAgICBsZXQgYnV0dG9uID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgICAgICAgbGV0IHNvcnRieSA9IGJ1dHRvbi5kYXRhKCdhY3Rpb24tc29ydCcpO1xuICAgICAgICBsZXQgc29ydGJ5X2RpciA9IGJ1dHRvbi5kYXRhKCdhY3Rpb24tc29ydC1kaXInKSB8fCAnYXNjJztcbiAgICAgICAgbGV0IGxpc3QgPSAkKGJ1dHRvbi5jbG9zZXN0KCdbZGF0YS10eXBlPVwiY29sbGVjdGlvblwiXScpKTtcbiAgICAgICAgbGV0IGl0ZW1zID0gbGlzdC5jbG9zZXN0KCdbZGF0YS10eXBlPVwiY29sbGVjdGlvblwiXScpLmZpbmQoJz4gdWwgPiBbZGF0YS1jb2xsZWN0aW9uLWl0ZW1dJyk7XG5cbiAgICAgICAgaXRlbXMuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAgICAgbGV0IEEgPSAkKGEpLmZpbmQoJ1tuYW1lJD1cIlsnICsgc29ydGJ5ICsgJ11cIl0nKTtcbiAgICAgICAgICAgIGxldCBCID0gJChiKS5maW5kKCdbbmFtZSQ9XCJbJyArIHNvcnRieSArICddXCJdJyk7XG4gICAgICAgICAgICBsZXQgc29ydDtcblxuICAgICAgICAgICAgaWYgKHNvcnRieV9kaXIgPT09ICdhc2MnKSB7XG4gICAgICAgICAgICAgICAgc29ydCA9IChBLnZhbCgpIDwgQi52YWwoKSkgPyAtMSA6IChBLnZhbCgpID4gQi52YWwoKSkgPyAxIDogMDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc29ydCA9IChBLnZhbCgpID4gQi52YWwoKSkgPyAtMSA6IChBLnZhbCgpIDwgQi52YWwoKSkgPyAxIDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHNvcnQ7XG4gICAgICAgIH0pLmVhY2goKF8sIGNvbnRhaW5lcikgPT4ge1xuICAgICAgICAgICAgJChjb250YWluZXIpLnBhcmVudCgpLmFwcGVuZChjb250YWluZXIpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnJlaW5kZXgobGlzdCk7XG4gICAgfVxuXG4gICAgb2JzZXJ2ZUtleShldmVudCkge1xuICAgICAgICBsZXQgaW5wdXQgPSAkKGV2ZW50LnRhcmdldCk7XG4gICAgICAgIGxldCB2YWx1ZSA9IGlucHV0LnZhbCgpO1xuICAgICAgICBsZXQgaXRlbSA9IGlucHV0LmNsb3Nlc3QoJ1tkYXRhLWNvbGxlY3Rpb24ta2V5XScpO1xuXG4gICAgICAgIGl0ZW0uZGF0YSgnY29sbGVjdGlvbi1rZXktYmFja3VwJywgaXRlbS5kYXRhKCdjb2xsZWN0aW9uLWtleScpKS5kYXRhKCdjb2xsZWN0aW9uLWtleScsIHZhbHVlKTtcbiAgICAgICAgdGhpcy5yZWluZGV4KG51bGwsIGl0ZW0pO1xuICAgIH1cblxuICAgIHJlaW5kZXgobGlzdCwgaXRlbXMpIHtcbiAgICAgICAgaXRlbXMgPSBpdGVtcyB8fCAkKGxpc3QpLmNsb3Nlc3QoJ1tkYXRhLXR5cGU9XCJjb2xsZWN0aW9uXCJdJykuZmluZCgnPiB1bCA+IFtkYXRhLWNvbGxlY3Rpb24taXRlbV0nKTtcblxuICAgICAgICBpdGVtcy5lYWNoKChpbmRleCwgaXRlbSkgPT4ge1xuICAgICAgICAgICAgaXRlbSA9ICQoaXRlbSk7XG5cbiAgICAgICAgICAgIGxldCBvYnNlcnZlZCA9IGl0ZW0uZmluZCgnW2RhdGEta2V5LW9ic2VydmVdJyk7XG4gICAgICAgICAgICBsZXQgb2JzZXJ2ZWRWYWx1ZSA9IG9ic2VydmVkLnZhbCgpO1xuICAgICAgICAgICAgbGV0IGhhc0N1c3RvbUtleSA9IG9ic2VydmVkLmxlbmd0aDtcbiAgICAgICAgICAgIGxldCBjdXJyZW50S2V5ID0gaXRlbS5kYXRhKCdjb2xsZWN0aW9uLWtleS1iYWNrdXAnKTtcblxuICAgICAgICAgICAgaXRlbS5hdHRyKCdkYXRhLWNvbGxlY3Rpb24ta2V5JywgaGFzQ3VzdG9tS2V5ID8gb2JzZXJ2ZWRWYWx1ZSA6IGluZGV4KTtcblxuICAgICAgICAgICAgWyduYW1lJywgJ2RhdGEtZ3Jhdi1maWVsZC1uYW1lJywgJ2ZvcicsICdpZCcsICdkYXRhLWdyYXYtZmlsZS1zZXR0aW5ncycsICdkYXRhLWZpbGUtcG9zdC1hZGQnLCAnZGF0YS1maWxlLXBvc3QtcmVtb3ZlJywgJ2RhdGEtZ3Jhdi1hcnJheS1uYW1lJ10uZm9yRWFjaCgocHJvcCkgPT4ge1xuICAgICAgICAgICAgICAgIGl0ZW0uZmluZCgnWycgKyBwcm9wICsgJ10sIFtfJyArIHByb3AgKyAnXScpLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBlbGVtZW50ID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGluZGV4ZXMgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGFycmF5X2luZGV4ID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHJlZ2V4cHMgPSBbXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXcgUmVnRXhwKCdcXFxcWyhcXFxcZCt8XFxcXCp8JyArIGN1cnJlbnRLZXkgKyAnKVxcXFxdJywgJ2cnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBSZWdFeHAoJ1xcXFwuKFxcXFxkK3xcXFxcKnwnICsgY3VycmVudEtleSArICcpXFxcXC4nLCAnZycpXG4gICAgICAgICAgICAgICAgICAgIF07XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gc3BlY2lhbCBjYXNlIHRvIHByZXNlcnZlIGFycmF5IGZpZWxkIGluZGV4IGtleXNcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByb3AgPT09ICduYW1lJyAmJiBlbGVtZW50LmRhdGEoJ2dyYXZBcnJheVR5cGUnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hfaW5kZXggPSBlbGVtZW50LmF0dHIocHJvcCkubWF0Y2goL1xcW1swLTldezEsfVxcXSQvKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhdHRlcm4gPSBlbGVtZW50WzBdLmNsb3Nlc3QoJ1tkYXRhLWdyYXYtYXJyYXktbmFtZV0nKS5kYXRhc2V0LmdyYXZBcnJheU5hbWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobWF0Y2hfaW5kZXggJiYgcGF0dGVybikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5X2luZGV4ID0gbWF0Y2hfaW5kZXhbMF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5hdHRyKHByb3AsIGAke3BhdHRlcm59JHttYXRjaF9pbmRleFswXX1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoaGFzQ3VzdG9tS2V5ICYmICFvYnNlcnZlZFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmF0dHIoYF8ke3Byb3B9YCwgZWxlbWVudC5hdHRyKHByb3ApKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuYXR0cihwcm9wLCBudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmF0dHIoYF8ke3Byb3B9YCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuYXR0cihwcm9wLCBlbGVtZW50LmF0dHIoYF8ke3Byb3B9YCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5hdHRyKGBfJHtwcm9wfWAsIG51bGwpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5wYXJlbnRzKCdbZGF0YS1jb2xsZWN0aW9uLWtleV0nKS5tYXAoKGlkeCwgcGFyZW50KSA9PiBpbmRleGVzLnB1c2goJChwYXJlbnQpLmF0dHIoJ2RhdGEtY29sbGVjdGlvbi1rZXknKSkpO1xuICAgICAgICAgICAgICAgICAgICBpbmRleGVzLnJldmVyc2UoKTtcblxuICAgICAgICAgICAgICAgICAgICBsZXQgbWF0Y2hlZEtleSA9IGN1cnJlbnRLZXk7XG4gICAgICAgICAgICAgICAgICAgIGxldCByZXBsYWNlZCA9IGVsZW1lbnQuYXR0cihwcm9wKS5yZXBsYWNlKHJlZ2V4cHNbMF0sICgvKiBzdHIsIHAxLCBvZmZzZXQgKi8pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBleHRyYXMgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcnJheV9pbmRleCkgeyBleHRyYXMgPSBhcnJheV9pbmRleDsgY29uc29sZS5sb2coaW5kZXhlcywgZXh0cmFzKTsgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRjaGVkS2V5ID0gaW5kZXhlcy5zaGlmdCgpIHx8IG1hdGNoZWRLZXk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYFske21hdGNoZWRLZXl9XSR7ZXh0cmFzfWA7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIHJlcGxhY2VkID0gcmVwbGFjZWQucmVwbGFjZShyZWdleHBzWzFdLCAoLyogc3RyLCBwMSwgb2Zmc2V0ICovKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRjaGVkS2V5ID0gaW5kZXhlcy5zaGlmdCgpIHx8IG1hdGNoZWRLZXk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYC4ke21hdGNoZWRLZXl9LmA7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuYXR0cihwcm9wLCByZXBsYWNlZCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgX29uQWRkZWROb2RlcyhldmVudCwgdGFyZ2V0LyogLCByZWNvcmQsIGluc3RhbmNlICovKSB7XG4gICAgICAgIGxldCBjb2xsZWN0aW9ucyA9ICQodGFyZ2V0KS5maW5kKCdbZGF0YS10eXBlPVwiY29sbGVjdGlvblwiXScpO1xuICAgICAgICBpZiAoIWNvbGxlY3Rpb25zLmxlbmd0aCkgeyByZXR1cm47IH1cblxuICAgICAgICBjb2xsZWN0aW9ucy5lYWNoKChpbmRleCwgY29sbGVjdGlvbikgPT4ge1xuICAgICAgICAgICAgY29sbGVjdGlvbiA9ICQoY29sbGVjdGlvbik7XG4gICAgICAgICAgICBpZiAoIX50aGlzLmxpc3RzLmluZGV4KGNvbGxlY3Rpb24pKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRMaXN0KGNvbGxlY3Rpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBfdXBkYXRlQWN0aW9uc1N0YXRlQmFzZWRPbk1pbk1heChsaXN0KSB7XG4gICAgICAgIGxldCBpdGVtcyA9IGxpc3QuY2xvc2VzdCgnW2RhdGEtdHlwZT1cImNvbGxlY3Rpb25cIl0nKS5maW5kKCc+IHVsID4gW2RhdGEtY29sbGVjdGlvbi1pdGVtXScpO1xuICAgICAgICBsZXQgbWluSXRlbXMgPSBsaXN0LmRhdGEoJ21pbicpO1xuICAgICAgICBsZXQgbWF4SXRlbXMgPSBsaXN0LmRhdGEoJ21heCcpO1xuXG4gICAgICAgIGxpc3QuZmluZCgnPiAuY29sbGVjdGlvbi1hY3Rpb25zIFtkYXRhLWFjdGlvbj1cImFkZFwiXScpLmF0dHIoJ2Rpc2FibGVkJywgZmFsc2UpO1xuICAgICAgICBsaXN0LmZpbmQoJz4gdWwgPiBsaSA+IC5pdGVtLWFjdGlvbnMgW2RhdGEtYWN0aW9uPVwiZGVsZXRlXCJdJykuYXR0cignZGlzYWJsZWQnLCBmYWxzZSk7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBtaW5JdGVtcyAhPT0gJ3VuZGVmaW5lZCcgJiYgaXRlbXMubGVuZ3RoIDw9IG1pbkl0ZW1zKSB7XG4gICAgICAgICAgICBsaXN0LmZpbmQoJz4gdWwgPiBsaSA+IC5pdGVtLWFjdGlvbnMgW2RhdGEtYWN0aW9uPVwiZGVsZXRlXCJdJykuYXR0cignZGlzYWJsZWQnLCB0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgbWF4SXRlbXMgIT09ICd1bmRlZmluZWQnICYmIGl0ZW1zLmxlbmd0aCA+PSBtYXhJdGVtcykge1xuICAgICAgICAgICAgbGlzdC5maW5kKCc+IC5jb2xsZWN0aW9uLWFjdGlvbnMgW2RhdGEtYWN0aW9uPVwiYWRkXCJdJykuYXR0cignZGlzYWJsZWQnLCB0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGxldCBJbnN0YW5jZSA9IG5ldyBDb2xsZWN0aW9uc0ZpZWxkKCk7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/forms/fields/collections.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/forms/fields/colorpicker.js":
|
|
/*!*****************************************!*\
|
|
!*** ./app/forms/fields/colorpicker.js ***!
|
|
\*****************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ColorpickerField),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var mout_math_clamp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mout/math/clamp */ \"./node_modules/mout/math/clamp.js\");\n/* harmony import */ var mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(mout_math_clamp__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var mout_function_bind__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! mout/function/bind */ \"./node_modules/mout/function/bind.js\");\n/* harmony import */ var mout_function_bind__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(mout_function_bind__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _utils_colors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils/colors */ \"./app/utils/colors.js\");\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); return Constructor; }\n\n\n\n\n\nvar isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\nvar body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body');\nvar MOUSEDOWN = 'mousedown touchstart MSPointerDown pointerdown';\nvar MOUSEMOVE = 'mousemove touchmove MSPointerMove pointermove';\nvar MOUSEUP = 'mouseup touchend MSPointerUp pointerup';\nvar FOCUSIN = isFirefox ? 'focus' : 'focusin';\n\nvar ColorpickerField = /*#__PURE__*/function () {\n function ColorpickerField(selector) {\n var _this = this;\n\n _classCallCheck(this, ColorpickerField);\n\n this.selector = selector;\n this.field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.selector);\n this.options = Object.assign({}, this.field.data('grav-colorpicker'));\n this.built = false;\n this.attach();\n\n if (this.options.update) {\n this.field.on('change._grav_colorpicker', function (event, field, hex, opacity) {\n var backgroundColor = hex;\n var rgb = (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.hex2rgb)(hex);\n\n if (opacity < 1) {\n backgroundColor = 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', ' + opacity + ')';\n }\n\n var target = field.closest(_this.options.update);\n\n if (!target.length) {\n target = field.siblings(_this.options.update);\n }\n\n if (!target.length) {\n target = field.parent('.g-colorpicker').find(_this.options.update);\n }\n\n target.css({\n backgroundColor: backgroundColor\n });\n });\n }\n }\n\n _createClass(ColorpickerField, [{\n key: \"attach\",\n value: function attach() {\n var _this2 = this;\n\n body.on(FOCUSIN, this.selector, function (event) {\n return _this2.show(event, event.currentTarget);\n });\n body.on(MOUSEDOWN, this.selector + ' .g-colorpicker, ' + this.selector + ' .g-colorpicker i', this.bound('iconClick'));\n body.on('keydown', this.selector, function (event) {\n switch (event.keyCode) {\n case 9:\n // tab\n _this2.hide();\n\n break;\n\n case 13: // enter\n\n case 27:\n // esc\n _this2.hide();\n\n event.currentTarget.blur();\n break;\n }\n\n return true;\n }); // Update on keyup\n\n body.on('keyup', this.selector, function (event) {\n _this2.updateFromInput(true, event.currentTarget);\n\n return true;\n }); // Update on paste\n\n body.on('paste', this.selector, function (event) {\n setTimeout(function () {\n return _this2.updateFromInput(true, event.currentTarget);\n }, 1);\n });\n }\n }, {\n key: \"show\",\n value: function show(event, target) {\n target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target);\n\n if (!this.built) {\n this.build();\n }\n\n this.element = target;\n this.reposition();\n this.wrapper.addClass('cp-visible');\n this.updateFromInput();\n this.wrapper.on(MOUSEDOWN, '.cp-grid, .cp-slider, .cp-opacity-slider', this.bound('bodyDown'));\n body.on(MOUSEMOVE, this.bound('bodyMove'));\n body.on(MOUSEDOWN, this.bound('bodyClick'));\n body.on(MOUSEUP, this.bound('targetReset'));\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('#admin-main > .content-wrapper').on('scroll', this.bound('reposition'));\n }\n }, {\n key: \"hide\",\n value: function hide() {\n if (!this.built) {\n return;\n }\n\n this.wrapper.removeClass('cp-visible');\n this.wrapper.undelegate(MOUSEDOWN, '.cp-grid, .cp-slider, .cp-opacity-slider', this.bound('bodyDown'));\n body.off(MOUSEMOVE, this.bound('bodyMove'));\n body.off(MOUSEDOWN, this.bound('bodyClick'));\n body.off(MOUSEUP, this.bound('targetReset'));\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('#admin-main > .content-wrapper').on('scroll', this.bound('reposition'));\n }\n }, {\n key: \"build\",\n value: function build() {\n var _this3 = this;\n\n this.wrapper = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"cp-wrapper cp-with-opacity cp-mode-hue\" />');\n this.slider = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"cp-slider cp-sprite\" />').appendTo(this.wrapper).append(jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"cp-picker\" />'));\n this.opacitySlider = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"cp-opacity-slider cp-sprite\" />').appendTo(this.wrapper).append(jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"cp-picker\" />'));\n this.grid = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"cp-grid cp-sprite\" />').appendTo(this.wrapper).append(jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"cp-grid-inner\" />')).append(jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"cp-picker\" />'));\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div />').appendTo(this.grid.find('.cp-picker'));\n var tabs = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"cp-tabs\" />').appendTo(this.wrapper);\n this.tabs = {\n hue: jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"cp-tab-hue active\" />').text('HUE').appendTo(tabs),\n brightness: jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"cp-tab-brightness\" />').text('BRI').appendTo(tabs),\n saturation: jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"cp-tab-saturation\" />').text('SAT').appendTo(tabs),\n wheel: jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"cp-tab-wheel\" />').text('WHEEL').appendTo(tabs),\n transparent: jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"cp-tab-transp\" />').text('TRANSPARENT').appendTo(tabs)\n };\n tabs.on(MOUSEDOWN, '> div', function (event) {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n\n if (element.is(_this3.tabs.transparent)) {\n var sliderHeight = _this3.opacitySlider.height();\n\n _this3.opacity = 0;\n\n _this3.opacitySlider.find('.cp-picker').css({\n 'top': mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(sliderHeight - sliderHeight * _this3.opacity, 0, sliderHeight)\n });\n\n _this3.move(_this3.opacitySlider, {\n manualOpacity: true\n });\n\n return;\n }\n\n var active = tabs.find('.active');\n var mode = active.attr('class').replace(/\\s|active|cp-tab-/g, '');\n var newMode = element.attr('class').replace(/\\s|active|cp-tab-/g, '');\n\n _this3.wrapper.removeClass('cp-mode-' + mode).addClass('cp-mode-' + newMode);\n\n active.removeClass('active');\n element.addClass('active');\n _this3.mode = newMode;\n\n _this3.updateFromInput();\n });\n this.wrapper.appendTo('.content-wrapper');\n this.built = true;\n this.mode = 'hue';\n }\n }, {\n key: \"reposition\",\n value: function reposition() {\n var ct = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.content-wrapper')[0];\n var offset = this.element[0].getBoundingClientRect();\n var ctOffset = ct.getBoundingClientRect();\n var delta = {\n x: 0,\n y: 0\n };\n\n if (this.options.offset) {\n delta.x = this.options.offset.x || 0;\n delta.y = this.options.offset.y || 0;\n }\n\n this.wrapper.css({\n top: offset.top + offset.height + ct.scrollTop - ctOffset.top + delta.y,\n left: offset.left + ct.scrollLeft - ctOffset.left + delta.x\n });\n }\n }, {\n key: \"iconClick\",\n value: function iconClick(event) {\n if (this.wrapper && this.wrapper.hasClass('cp-visible')) {\n return true;\n }\n\n event && event.preventDefault();\n var input = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget).find('input');\n setTimeout(function () {\n return input.focus();\n }, 50);\n }\n }, {\n key: \"bodyMove\",\n value: function bodyMove(event) {\n event && event.preventDefault();\n\n if (this.target) {\n this.move(this.target, event);\n }\n }\n }, {\n key: \"bodyClick\",\n value: function bodyClick(event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target);\n\n if (!target.closest('.cp-wrapper').length && !target.is(this.selector)) {\n this.hide();\n }\n }\n }, {\n key: \"bodyDown\",\n value: function bodyDown(event) {\n event && event.preventDefault();\n this.target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n this.move(this.target, event, true);\n }\n }, {\n key: \"targetReset\",\n value: function targetReset(event) {\n event && event.preventDefault();\n this.target = null;\n }\n }, {\n key: \"move\",\n value: function move(target, event) {\n var input = this.element;\n var picker = target.find('.cp-picker');\n var clientRect = target[0].getBoundingClientRect();\n var offsetX = clientRect.left + window.scrollX;\n var offsetY = clientRect.top + window.scrollY;\n var x = Math.round((event ? event.pageX : 0) - offsetX);\n var y = Math.round((event ? event.pageY : 0) - offsetY);\n var wx;\n var wy;\n var r;\n var phi; // Touch support\n\n var touchEvents = event.changedTouches || event.originalEvent && event.originalEvent.changedTouches;\n\n if (event && touchEvents) {\n x = (touchEvents ? touchEvents[0].pageX : 0) - offsetX;\n y = (touchEvents ? touchEvents[0].pageY : 0) - offsetY;\n }\n\n if (event && event.manualOpacity) {\n y = clientRect.height;\n } // Constrain picker to its container\n\n\n if (x < 0) x = 0;\n if (y < 0) y = 0;\n if (x > clientRect.width) x = clientRect.width;\n if (y > clientRect.height) y = clientRect.height; // Constrain color wheel values to the wheel\n\n if (target.parent('.cp-mode-wheel').length && picker.parent('.cp-grid').length) {\n wx = 75 - x;\n wy = 75 - y;\n r = Math.sqrt(wx * wx + wy * wy);\n phi = Math.atan2(wy, wx);\n if (phi < 0) phi += Math.PI * 2;\n\n if (r > 75) {\n x = 75 - 75 * Math.cos(phi);\n y = 75 - 75 * Math.sin(phi);\n }\n\n x = Math.round(x);\n y = Math.round(y);\n } // Move the picker\n\n\n if (target.hasClass('cp-grid')) {\n picker.css({\n top: y,\n left: x\n });\n this.updateFromPicker(input, target);\n } else {\n picker.css({\n top: y\n });\n this.updateFromPicker(input, target);\n }\n }\n }, {\n key: \"updateFromInput\",\n value: function updateFromInput(dontFireEvent, element) {\n element = element ? jquery__WEBPACK_IMPORTED_MODULE_0___default()(element) : this.element;\n var value = element.val();\n var opacity = value.replace(/\\s/g, '').match(/^rgba?\\([0-9]{1,3},[0-9]{1,3},[0-9]{1,3},(.+)\\)/);\n var hex;\n var hsb;\n value = (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.rgbstr2hex)(value) || value;\n opacity = opacity ? mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(opacity[1], 0, 1) : 1;\n\n if (!(hex = (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.parseHex)(value))) {\n hex = '#ffffff';\n }\n\n hsb = (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.hex2hsb)(hex);\n\n if (this.built) {\n // opacity\n this.opacity = opacity;\n var sliderHeight = this.opacitySlider.height();\n this.opacitySlider.find('.cp-picker').css({\n 'top': mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(sliderHeight - sliderHeight * this.opacity, 0, sliderHeight)\n }); // bg color\n\n var gridHeight = this.grid.height();\n var gridWidth = this.grid.width();\n var r;\n var phi;\n var x;\n var y;\n sliderHeight = this.slider.height();\n\n switch (this.mode) {\n case 'wheel':\n // Set grid position\n r = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(Math.ceil(hsb.s * 0.75), 0, gridHeight / 2);\n phi = hsb.h * Math.PI / 180;\n x = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(75 - Math.cos(phi) * r, 0, gridWidth);\n y = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(75 - Math.sin(phi) * r, 0, gridHeight);\n this.grid.css({\n backgroundColor: 'transparent'\n }).find('.cp-picker').css({\n top: y,\n left: x\n }); // Set slider position\n\n y = 150 - hsb.b / (100 / gridHeight);\n if (hex === '') y = 0;\n this.slider.find('.cp-picker').css({\n top: y\n }); // Update panel color\n\n this.slider.css({\n backgroundColor: (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.hsb2hex)({\n h: hsb.h,\n s: hsb.s,\n b: 100\n })\n });\n break;\n\n case 'saturation':\n // Set grid position\n x = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(5 * hsb.h / 12, 0, 150);\n y = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(gridHeight - Math.ceil(hsb.b / (100 / gridHeight)), 0, gridHeight);\n this.grid.find('.cp-picker').css({\n top: y,\n left: x\n }); // Set slider position\n\n y = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(sliderHeight - hsb.s * (sliderHeight / 100), 0, sliderHeight);\n this.slider.find('.cp-picker').css({\n top: y\n }); // Update UI\n\n this.slider.css({\n backgroundColor: (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.hsb2hex)({\n h: hsb.h,\n s: 100,\n b: hsb.b\n })\n });\n this.grid.find('.cp-grid-inner').css({\n opacity: hsb.s / 100\n });\n break;\n\n case 'brightness':\n // Set grid position\n x = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(5 * hsb.h / 12, 0, 150);\n y = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(gridHeight - Math.ceil(hsb.s / (100 / gridHeight)), 0, gridHeight);\n this.grid.find('.cp-picker').css({\n top: y,\n left: x\n }); // Set slider position\n\n y = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(sliderHeight - hsb.b * (sliderHeight / 100), 0, sliderHeight);\n this.slider.find('.cp-picker').css({\n top: y\n }); // Update UI\n\n this.slider.css({\n backgroundColor: (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.hsb2hex)({\n h: hsb.h,\n s: hsb.s,\n b: 100\n })\n });\n this.grid.find('.cp-grid-inner').css({\n opacity: 1 - hsb.b / 100\n });\n break;\n\n case 'hue':\n default:\n // Set grid position\n x = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(Math.ceil(hsb.s / (100 / gridWidth)), 0, gridWidth);\n y = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(gridHeight - Math.ceil(hsb.b / (100 / gridHeight)), 0, gridHeight);\n this.grid.find('.cp-picker').css({\n top: y,\n left: x\n }); // Set slider position\n\n y = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(sliderHeight - hsb.h / (360 / sliderHeight), 0, sliderHeight);\n this.slider.find('.cp-picker').css({\n top: y\n }); // Update panel color\n\n this.grid.css({\n backgroundColor: (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.hsb2hex)({\n h: hsb.h,\n s: 100,\n b: 100\n })\n });\n break;\n }\n }\n\n if (!dontFireEvent) {\n element.val(this.getValue(hex));\n }\n\n (this.element || element).trigger('change._grav_colorpicker', [element, hex, opacity]);\n }\n }, {\n key: \"updateFromPicker\",\n value: function updateFromPicker(input, target) {\n var getCoords = function getCoords(picker, container) {\n var left, top;\n if (!picker.length || !container) return null;\n left = picker[0].getBoundingClientRect().left;\n top = picker[0].getBoundingClientRect().top;\n return {\n x: left - container[0].getBoundingClientRect().left + picker[0].offsetWidth / 2,\n y: top - container[0].getBoundingClientRect().top + picker[0].offsetHeight / 2\n };\n };\n\n var hex;\n var hue;\n var saturation;\n var brightness;\n var x;\n var y;\n var r;\n var phi; // Panel objects\n\n var grid = this.wrapper.find('.cp-grid');\n var slider = this.wrapper.find('.cp-slider');\n var opacitySlider = this.wrapper.find('.cp-opacity-slider'); // Picker objects\n\n var gridPicker = grid.find('.cp-picker');\n var sliderPicker = slider.find('.cp-picker');\n var opacityPicker = opacitySlider.find('.cp-picker'); // Picker positions\n\n var gridPos = getCoords(gridPicker, grid);\n var sliderPos = getCoords(sliderPicker, slider);\n var opacityPos = getCoords(opacityPicker, opacitySlider); // Sizes\n\n var gridWidth = grid[0].getBoundingClientRect().width;\n var gridHeight = grid[0].getBoundingClientRect().height;\n var sliderHeight = slider[0].getBoundingClientRect().height;\n var opacitySliderHeight = opacitySlider[0].getBoundingClientRect().height;\n var value = this.element.val();\n value = (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.rgbstr2hex)(value) || value;\n\n if (!(hex = (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.parseHex)(value))) {\n hex = '#ffffff';\n } // Handle colors\n\n\n if (target.hasClass('cp-grid') || target.hasClass('cp-slider')) {\n // Determine HSB values\n switch (this.mode) {\n case 'wheel':\n // Calculate hue, saturation, and brightness\n x = gridWidth / 2 - gridPos.x;\n y = gridHeight / 2 - gridPos.y;\n r = Math.sqrt(x * x + y * y);\n phi = Math.atan2(y, x);\n if (phi < 0) phi += Math.PI * 2;\n\n if (r > 75) {\n r = 75;\n gridPos.x = 69 - 75 * Math.cos(phi);\n gridPos.y = 69 - 75 * Math.sin(phi);\n }\n\n saturation = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(r / 0.75, 0, 100);\n hue = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(phi * 180 / Math.PI, 0, 360);\n brightness = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(100 - Math.floor(sliderPos.y * (100 / sliderHeight)), 0, 100);\n hex = (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.hsb2hex)({\n h: hue,\n s: saturation,\n b: brightness\n }); // Update UI\n\n slider.css({\n backgroundColor: (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.hsb2hex)({\n h: hue,\n s: saturation,\n b: 100\n })\n });\n break;\n\n case 'saturation':\n // Calculate hue, saturation, and brightness\n hue = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(parseInt(gridPos.x * (360 / gridWidth), 10), 0, 360);\n saturation = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(100 - Math.floor(sliderPos.y * (100 / sliderHeight)), 0, 100);\n brightness = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(100 - Math.floor(gridPos.y * (100 / gridHeight)), 0, 100);\n hex = (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.hsb2hex)({\n h: hue,\n s: saturation,\n b: brightness\n }); // Update UI\n\n slider.css({\n backgroundColor: (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.hsb2hex)({\n h: hue,\n s: 100,\n b: brightness\n })\n });\n grid.find('.cp-grid-inner').css({\n opacity: saturation / 100\n });\n break;\n\n case 'brightness':\n // Calculate hue, saturation, and brightness\n hue = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(parseInt(gridPos.x * (360 / gridWidth), 10), 0, 360);\n saturation = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(100 - Math.floor(gridPos.y * (100 / gridHeight)), 0, 100);\n brightness = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(100 - Math.floor(sliderPos.y * (100 / sliderHeight)), 0, 100);\n hex = (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.hsb2hex)({\n h: hue,\n s: saturation,\n b: brightness\n }); // Update UI\n\n slider.css({\n backgroundColor: (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.hsb2hex)({\n h: hue,\n s: saturation,\n b: 100\n })\n });\n grid.find('.cp-grid-inner').css({\n opacity: 1 - brightness / 100\n });\n break;\n\n default:\n // Calculate hue, saturation, and brightness\n hue = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(360 - parseInt(sliderPos.y * (360 / sliderHeight), 10), 0, 360);\n saturation = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(Math.floor(gridPos.x * (100 / gridWidth)), 0, 100);\n brightness = mout_math_clamp__WEBPACK_IMPORTED_MODULE_1___default()(100 - Math.floor(gridPos.y * (100 / gridHeight)), 0, 100);\n hex = (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.hsb2hex)({\n h: hue,\n s: saturation,\n b: brightness\n }); // Update UI\n\n grid.css({\n backgroundColor: (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.hsb2hex)({\n h: hue,\n s: 100,\n b: 100\n })\n });\n break;\n }\n } // Handle opacity\n\n\n if (target.hasClass('cp-opacity-slider')) {\n this.opacity = parseFloat(1 - opacityPos.y / opacitySliderHeight).toFixed(2);\n } // Adjust case\n\n\n input.val(this.getValue(hex)); // Handle change event\n\n this.element.trigger('change._grav_colorpicker', [this.element, hex, this.opacity]);\n }\n }, {\n key: \"getValue\",\n value: function getValue(hex) {\n if (this.opacity === 1) {\n return hex;\n }\n\n var rgb = (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.hex2rgb)(hex);\n return 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', ' + this.opacity + ')';\n }\n }, {\n key: \"bound\",\n value: function bound(name) {\n var bound = this._bound || (this._bound = {});\n return bound[name] || (bound[name] = mout_function_bind__WEBPACK_IMPORTED_MODULE_2___default()(this[name], this));\n }\n }]);\n\n return ColorpickerField;\n}();\n\n\nvar Instance = new ColorpickerField('[data-grav-colorpicker]');//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL2ZpZWxkcy9jb2xvcnBpY2tlci5qcz9iYTk4Il0sIm5hbWVzIjpbImlzRmlyZWZveCIsIm5hdmlnYXRvciIsInVzZXJBZ2VudCIsInRvTG93ZXJDYXNlIiwiaW5kZXhPZiIsImJvZHkiLCIkIiwiTU9VU0VET1dOIiwiTU9VU0VNT1ZFIiwiTU9VU0VVUCIsIkZPQ1VTSU4iLCJDb2xvcnBpY2tlckZpZWxkIiwic2VsZWN0b3IiLCJmaWVsZCIsIm9wdGlvbnMiLCJPYmplY3QiLCJhc3NpZ24iLCJkYXRhIiwiYnVpbHQiLCJhdHRhY2giLCJ1cGRhdGUiLCJvbiIsImV2ZW50IiwiaGV4Iiwib3BhY2l0eSIsImJhY2tncm91bmRDb2xvciIsInJnYiIsImhleDJyZ2IiLCJyIiwiZyIsImIiLCJ0YXJnZXQiLCJjbG9zZXN0IiwibGVuZ3RoIiwic2libGluZ3MiLCJwYXJlbnQiLCJmaW5kIiwiY3NzIiwic2hvdyIsImN1cnJlbnRUYXJnZXQiLCJib3VuZCIsImtleUNvZGUiLCJoaWRlIiwiYmx1ciIsInVwZGF0ZUZyb21JbnB1dCIsInNldFRpbWVvdXQiLCJidWlsZCIsImVsZW1lbnQiLCJyZXBvc2l0aW9uIiwid3JhcHBlciIsImFkZENsYXNzIiwicmVtb3ZlQ2xhc3MiLCJ1bmRlbGVnYXRlIiwib2ZmIiwic2xpZGVyIiwiYXBwZW5kVG8iLCJhcHBlbmQiLCJvcGFjaXR5U2xpZGVyIiwiZ3JpZCIsInRhYnMiLCJodWUiLCJ0ZXh0IiwiYnJpZ2h0bmVzcyIsInNhdHVyYXRpb24iLCJ3aGVlbCIsInRyYW5zcGFyZW50IiwiaXMiLCJzbGlkZXJIZWlnaHQiLCJoZWlnaHQiLCJjbGFtcCIsIm1vdmUiLCJtYW51YWxPcGFjaXR5IiwiYWN0aXZlIiwibW9kZSIsImF0dHIiLCJyZXBsYWNlIiwibmV3TW9kZSIsImN0Iiwib2Zmc2V0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwiY3RPZmZzZXQiLCJkZWx0YSIsIngiLCJ5IiwidG9wIiwic2Nyb2xsVG9wIiwibGVmdCIsInNjcm9sbExlZnQiLCJoYXNDbGFzcyIsInByZXZlbnREZWZhdWx0IiwiaW5wdXQiLCJmb2N1cyIsInBpY2tlciIsImNsaWVudFJlY3QiLCJvZmZzZXRYIiwid2luZG93Iiwic2Nyb2xsWCIsIm9mZnNldFkiLCJzY3JvbGxZIiwiTWF0aCIsInJvdW5kIiwicGFnZVgiLCJwYWdlWSIsInd4Iiwid3kiLCJwaGkiLCJ0b3VjaEV2ZW50cyIsImNoYW5nZWRUb3VjaGVzIiwib3JpZ2luYWxFdmVudCIsIndpZHRoIiwic3FydCIsImF0YW4yIiwiUEkiLCJjb3MiLCJzaW4iLCJ1cGRhdGVGcm9tUGlja2VyIiwiZG9udEZpcmVFdmVudCIsInZhbHVlIiwidmFsIiwibWF0Y2giLCJoc2IiLCJyZ2JzdHIyaGV4IiwicGFyc2VIZXgiLCJoZXgyaHNiIiwiZ3JpZEhlaWdodCIsImdyaWRXaWR0aCIsImNlaWwiLCJzIiwiaCIsImhzYjJoZXgiLCJnZXRWYWx1ZSIsInRyaWdnZXIiLCJnZXRDb29yZHMiLCJjb250YWluZXIiLCJvZmZzZXRXaWR0aCIsIm9mZnNldEhlaWdodCIsImdyaWRQaWNrZXIiLCJzbGlkZXJQaWNrZXIiLCJvcGFjaXR5UGlja2VyIiwiZ3JpZFBvcyIsInNsaWRlclBvcyIsIm9wYWNpdHlQb3MiLCJvcGFjaXR5U2xpZGVySGVpZ2h0IiwiZmxvb3IiLCJwYXJzZUludCIsInBhcnNlRmxvYXQiLCJ0b0ZpeGVkIiwibmFtZSIsIl9ib3VuZCIsImJpbmQiLCJJbnN0YW5jZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFFQSxJQUFNQSxTQUFTLEdBQUdDLFNBQVMsQ0FBQ0MsU0FBVixDQUFvQkMsV0FBcEIsR0FBa0NDLE9BQWxDLENBQTBDLFNBQTFDLElBQXVELENBQUMsQ0FBMUU7QUFDQSxJQUFNQyxJQUFJLEdBQUdDLDZDQUFDLENBQUMsTUFBRCxDQUFkO0FBRUEsSUFBTUMsU0FBUyxHQUFHLGdEQUFsQjtB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LElBQUwsQ0FBRCxFQUFhLElBQWIsQ0FBbEMsQ0FBUDtBQUNIOzs7Ozs7O0FBR0UsSUFBSUcsUUFBUSxHQUFHLElBQUkzSSxnQkFBSixDQUFxQix5QkFBckIsQ0FBZiIsImZpbGUiOiIuL2FwcC9mb3Jtcy9maWVsZHMvY29sb3JwaWNrZXIuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IGNsYW1wIGZyb20gJ21vdXQvbWF0aC9jbGFtcCc7XG5pbXBvcnQgYmluZCBmcm9tICdtb3V0L2Z1bmN0aW9uL2JpbmQnO1xuaW1wb3J0IHsgcmdic3RyMmhleCwgaHNiMmhleCwgaGV4MmhzYiwgaGV4MnJnYiwgcGFyc2VIZXggfSBmcm9tICcuLi8uLi91dGlscy9jb2xvcnMnO1xuXG5jb25zdCBpc0ZpcmVmb3ggPSBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkuaW5kZXhPZignZmlyZWZveCcpID4gLTE7XG5jb25zdCBib2R5ID0gJCgnYm9keScpO1xuXG5jb25zdCBNT1VTRURPV04gPSAnbW91c2Vkb3duIHRvdWNoc3RhcnQgTVNQb2ludGVyRG93biBwb2ludGVyZG93bic7XG5jb25zdCBNT1VTRU1PVkUgPSAnbW91c2Vtb3ZlIHRvdWNobW92ZSBNU1BvaW50ZXJNb3ZlIHBvaW50ZXJtb3ZlJztcbmNvbnN0IE1PVVNFVVAgPSAnbW91c2V1cCB0b3VjaGVuZCBNU1BvaW50ZXJVcCBwb2ludGVydXAnO1xuY29uc3QgRk9DVVNJTiA9IGlzRmlyZWZveCA/ICdmb2N1cycgOiAnZm9jdXNpbic7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbG9ycGlja2VyRmllbGQge1xuICAgIGNvbnN0cnVjdG9yKHNlbGVjdG9yKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0b3IgPSBzZWxlY3RvcjtcbiAgICAgICAgdGhpcy5maWVsZCA9ICQodGhpcy5zZWxlY3Rvcik7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZmllbGQuZGF0YSgnZ3Jhdi1jb2xvcnBpY2tlcicpKTtcbiAgICAgICAgdGhpcy5idWlsdCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmF0dGFjaCgpO1xuXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMudXBkYXRlKSB7XG4gICAgICAgICAgICB0aGlzLmZpZWxkLm9uKCdjaGFuZ2UuX2dyYXZfY29sb3JwaWNrZXInLCAoZXZlbnQsIGZpZWxkLCBoZXgsIG9wYWNpdHkpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgYmFja2dyb3VuZENvbG9yID0gaGV4O1xuICAgICAgICAgICAgICAgIGxldCByZ2IgPSBoZXgycmdiKGhleCk7XG5cbiAgICAgICAgICAgICAgICBpZiAob3BhY2l0eSA8IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yID0gJ3JnYmEoJyArIHJnYi5yICsgJywgJyArIHJnYi5nICsgJywgJyArIHJnYi5iICsgJywgJyArIG9wYWNpdHkgKyAnKSc7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbGV0IHRhcmdldCA9IGZpZWxkLmNsb3Nlc3QodGhpcy5vcHRpb25zLnVwZGF0ZSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0YXJnZXQubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldCA9IGZpZWxkLnNpYmxpbmdzKHRoaXMub3B0aW9ucy51cGRhdGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIXRhcmdldC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0ID0gZmllbGQucGFyZW50KCcuZy1jb2xvcnBpY2tlcicpLmZpbmQodGhpcy5vcHRpb25zLnVwZGF0ZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGFyZ2V0LmNzcyh7IGJhY2tncm91bmRDb2xvciB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXR0YWNoKCkge1xuICAgICAgICBib2R5Lm9uKEZPQ1VTSU4sIHRoaXMuc2VsZWN0b3IsIChldmVudCkgPT4gdGhpcy5zaG93KGV2ZW50LCBldmVudC5jdXJyZW50VGFyZ2V0KSk7XG4gICAgICAgIGJvZHkub24oTU9VU0VET1dOLCB0aGlzLnNlbGVjdG9yICsgJyAuZy1jb2xvcnBpY2tlciwgJyArIHRoaXMuc2VsZWN0b3IgKyAnIC5nLWNvbG9ycGlja2VyIGknLCB0aGlzLmJvdW5kKCdpY29uQ2xpY2snKSk7XG4gICAgICAgIGJvZHkub24oJ2tleWRvd24nLCB0aGlzLnNlbGVjdG9yLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIHN3aXRjaCAoZXZlbnQua2V5Q29kZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgOTogLy8gdGFiXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDEzOiAvLyBlbnRlclxuICAgICAgICAgICAgICAgIGNhc2UgMjc6IC8vIGVzY1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuY3VycmVudFRhcmdldC5ibHVyKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFVwZGF0ZSBvbiBrZXl1cFxuICAgICAgICBib2R5Lm9uKCdrZXl1cCcsIHRoaXMuc2VsZWN0b3IsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVGcm9tSW5wdXQodHJ1ZSwgZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gVXBkYXRlIG9uIHBhc3RlXG4gICAgICAgIGJvZHkub24oJ3Bhc3RlJywgdGhpcy5zZWxlY3RvciwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlRnJvbUlucHV0KHRydWUsIGV2ZW50LmN1cnJlbnRUYXJnZXQpLCAxKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvdyhldmVudCwgdGFyZ2V0KSB7XG4gICAgICAgIHRhcmdldCA9ICQodGFyZ2V0KTtcblxuICAgICAgICBpZiAoIXRoaXMuYnVpbHQpIHtcbiAgICAgICAgICAgIHRoaXMuYnVpbGQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZWxlbWVudCA9IHRhcmdldDtcbiAgICAgICAgdGhpcy5yZXBvc2l0aW9uKCk7XG4gICAgICAgIHRoaXMud3JhcHBlci5hZGRDbGFzcygnY3AtdmlzaWJsZScpO1xuICAgICAgICB0aGlzLnVwZGF0ZUZyb21JbnB1dCgpO1xuXG4gICAgICAgIHRoaXMud3JhcHBlci5vbihNT1VTRURPV04sICcuY3AtZ3JpZCwgLmNwLXNsaWRlciwgLmNwLW9wYWNpdHktc2xpZGVyJywgdGhpcy5ib3VuZCgnYm9keURvd24nKSk7XG4gICAgICAgIGJvZHkub24oTU9VU0VNT1ZFLCB0aGlzLmJvdW5kKCdib2R5TW92ZScpKTtcbiAgICAgICAgYm9keS5vbihNT1VTRURPV04sIHRoaXMuYm91bmQoJ2JvZHlDbGljaycpKTtcbiAgICAgICAgYm9keS5vbihNT1VTRVVQLCB0aGlzLmJvdW5kKCd0YXJnZXRSZXNldCcpKTtcbiAgICAgICAgJCgnI2FkbWluLW1haW4gPiAuY29udGVudC13cmFwcGVyJykub24oJ3Njcm9sbCcsIHRoaXMuYm91bmQoJ3JlcG9zaXRpb24nKSk7XG4gICAgfVxuXG4gICAgaGlkZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmJ1aWx0KSB7IHJldHVybjsgfVxuICAgICAgICB0aGlzLndyYXBwZXIucmVtb3ZlQ2xhc3MoJ2NwLXZpc2libGUnKTtcblxuICAgICAgICB0aGlzLndyYXBwZXIudW5kZWxlZ2F0ZShNT1VTRURPV04sICcuY3AtZ3JpZCwgLmNwLXNsaWRlciwgLmNwLW9wYWNpdHktc2xpZGVyJywgdGhpcy5ib3VuZCgnYm9keURvd24nKSk7XG4gICAgICAgIGJvZHkub2ZmKE1PVVNFTU9WRSwgdGhpcy5ib3VuZCgnYm9keU1vdmUnKSk7XG4gICAgICAgIGJvZHkub2ZmKE1PVVNFRE9XTiwgdGhpcy5ib3VuZCgnYm9keUNsaWNrJykpO1xuICAgICAgICBib2R5Lm9mZihNT1VTRVVQLCB0aGlzLmJvdW5kKCd0YXJnZXRSZXNldCcpKTtcbiAgICAgICAgJCgnI2FkbWluLW1haW4gPiAuY29udGVudC13cmFwcGVyJykub24oJ3Njcm9sbCcsIHRoaXMuYm91bmQoJ3JlcG9zaXRpb24nKSk7XG4gICAgfVxuXG4gICAgYnVpbGQoKSB7XG4gICAgICAgIHRoaXMud3JhcHBlciA9ICQoJzxkaXYgY2xhc3M9XCJjcC13cmFwcGVyIGNwLXdpdGgtb3BhY2l0eSBjcC1tb2RlLWh1ZVwiIC8+Jyk7XG4gICAgICAgIHRoaXMuc2xpZGVyID0gJCgnPGRpdiBjbGFzcz1cImNwLXNsaWRlciBjcC1zcHJpdGVcIiAvPicpLmFwcGVuZFRvKHRoaXMud3JhcHBlcikuYXBwZW5kKCQoJzxkaXYgY2xhc3M9XCJjcC1waWNrZXJcIiAvPicpKTtcbiAgICAgICAgdGhpcy5vcGFjaXR5U2xpZGVyID0gJCgnPGRpdiBjbGFzcz1cImNwLW9wYWNpdHktc2xpZGVyIGNwLXNwcml0ZVwiIC8+JykuYXBwZW5kVG8odGhpcy53cmFwcGVyKS5hcHBlbmQoJCgnPGRpdiBjbGFzcz1cImNwLXBpY2tlclwiIC8+JykpO1xuICAgICAgICB0aGlzLmdyaWQgPSAkKCc8ZGl2IGNsYXNzPVwiY3AtZ3JpZCBjcC1zcHJpdGVcIiAvPicpLmFwcGVuZFRvKHRoaXMud3JhcHBlcikuYXBwZW5kKCQoJzxkaXYgY2xhc3M9XCJjcC1ncmlkLWlubmVyXCIgLz4nKSkuYXBwZW5kKCQoJzxkaXYgY2xhc3M9XCJjcC1waWNrZXJcIiAvPicpKTtcblxuICAgICAgICAkKCc8ZGl2IC8+JykuYXBwZW5kVG8odGhpcy5ncmlkLmZpbmQoJy5jcC1waWNrZXInKSk7XG5cbiAgICAgICAgbGV0IHRhYnMgPSAkKCc8ZGl2IGNsYXNzPVwiY3AtdGFic1wiIC8+JykuYXBwZW5kVG8odGhpcy53cmFwcGVyKTtcbiAgICAgICAgdGhpcy50YWJzID0ge1xuICAgICAgICAgICAgaHVlOiAkKCc8ZGl2IGNsYXNzPVwiY3AtdGFiLWh1ZSBhY3RpdmVcIiAvPicpLnRleHQoJ0hVRScpLmFwcGVuZFRvKHRhYnMpLFxuICAgICAgICAgICAgYnJpZ2h0bmVzczogJCgnPGRpdiBjbGFzcz1cImNwLXRhYi1icmlnaHRuZXNzXCIgLz4nKS50ZXh0KCdCUkknKS5hcHBlbmRUbyh0YWJzKSxcbiAgICAgICAgICAgIHNhdHVyYXRpb246ICQoJzxkaXYgY2xhc3M9XCJjcC10YWItc2F0dXJhdGlvblwiIC8+JykudGV4dCgnU0FUJykuYXBwZW5kVG8odGFicyksXG4gICAgICAgICAgICB3aGVlbDogJCgnPGRpdiBjbGFzcz1cImNwLXRhYi13aGVlbFwiIC8+JykudGV4dCgnV0hFRUwnKS5hcHBlbmRUbyh0YWJzKSxcbiAgICAgICAgICAgIHRyYW5zcGFyZW50OiAkKCc8ZGl2IGNsYXNzPVwiY3AtdGFiLXRyYW5zcFwiIC8+JykudGV4dCgnVFJBTlNQQVJFTlQnKS5hcHBlbmRUbyh0YWJzKVxuICAgICAgICB9O1xuXG4gICAgICAgIHRhYnMub24oTU9VU0VET1dOLCAnPiBkaXYnLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGxldCBlbGVtZW50ID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgICAgICAgICAgIGlmIChlbGVtZW50LmlzKHRoaXMudGFicy50cmFuc3BhcmVudCkpIHtcbiAgICAgICAgICAgICAgICBsZXQgc2xpZGVySGVpZ2h0ID0gdGhpcy5vcGFjaXR5U2xpZGVyLmhlaWdodCgpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5vcGFjaXR5ID0gMDtcbiAgICAgICAgICAgICAgICB0aGlzLm9wYWNpdHlTbGlkZXIuZmluZCgnLmNwLXBpY2tlcicpLmNzcyh7ICd0b3AnOiBjbGFtcChzbGlkZXJIZWlnaHQgLSAoc2xpZGVySGVpZ2h0ICogdGhpcy5vcGFjaXR5KSwgMCwgc2xpZGVySGVpZ2h0KSB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLm1vdmUodGhpcy5vcGFjaXR5U2xpZGVyLCB7IG1hbnVhbE9wYWNpdHk6IHRydWUgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsZXQgYWN0aXZlID0gdGFicy5maW5kKCcuYWN0aXZlJyk7XG4gICAgICAgICAgICBsZXQgbW9kZSA9IGFjdGl2ZS5hdHRyKCdjbGFzcycpLnJlcGxhY2UoL1xcc3xhY3RpdmV8Y3AtdGFiLS9nLCAnJyk7XG4gICAgICAgICAgICBsZXQgbmV3TW9kZSA9IGVsZW1lbnQuYXR0cignY2xhc3MnKS5yZXBsYWNlKC9cXHN8YWN0aXZlfGNwLXRhYi0vZywgJycpO1xuXG4gICAgICAgICAgICB0aGlzLndyYXBwZXIucmVtb3ZlQ2xhc3MoJ2NwLW1vZGUtJyArIG1vZGUpLmFkZENsYXNzKCdjcC1tb2RlLScgKyBuZXdNb2RlKTtcbiAgICAgICAgICAgIGFjdGl2ZS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XG4gICAgICAgICAgICBlbGVtZW50LmFkZENsYXNzKCdhY3RpdmUnKTtcblxuICAgICAgICAgICAgdGhpcy5tb2RlID0gbmV3TW9kZTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRnJvbUlucHV0KCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMud3JhcHBlci5hcHBlbmRUbygnLmNvbnRlbnQtd3JhcHBlcicpO1xuXG4gICAgICAgIHRoaXMuYnVpbHQgPSB0cnVlO1xuICAgICAgICB0aGlzLm1vZGUgPSAnaHVlJztcbiAgICB9XG5cbiAgICByZXBvc2l0aW9uKCkge1xuICAgICAgICBsZXQgY3QgPSAkKCcuY29udGVudC13cmFwcGVyJylbMF07XG4gICAgICAgIGxldCBvZmZzZXQgPSB0aGlzLmVsZW1lbnRbMF0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGxldCBjdE9mZnNldCA9IGN0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBsZXQgZGVsdGEgPSB7IHg6IDAsIHk6IDAgfTtcblxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLm9mZnNldCkge1xuICAgICAgICAgICAgZGVsdGEueCA9IHRoaXMub3B0aW9ucy5vZmZzZXQueCB8fCAwO1xuICAgICAgICAgICAgZGVsdGEueSA9IHRoaXMub3B0aW9ucy5vZmZzZXQueSB8fCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy53cmFwcGVyLmNzcyh7XG4gICAgICAgICAgICB0b3A6IG9mZnNldC50b3AgKyBvZmZzZXQuaGVpZ2h0ICsgY3Quc2Nyb2xsVG9wIC0gY3RPZmZzZXQudG9wICsgZGVsdGEueSxcbiAgICAgICAgICAgIGxlZnQ6IG9mZnNldC5sZWZ0ICsgY3Quc2Nyb2xsTGVmdCAtIGN0T2Zmc2V0LmxlZnQgKyBkZWx0YS54XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGljb25DbGljayhldmVudCkge1xuICAgICAgICBpZiAodGhpcy53cmFwcGVyICYmIHRoaXMud3JhcHBlci5oYXNDbGFzcygnY3AtdmlzaWJsZScpKSB7IHJldHVybiB0cnVlOyB9XG5cbiAgICAgICAgZXZlbnQgJiYgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICBsZXQgaW5wdXQgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpLmZpbmQoJ2lucHV0Jyk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gaW5wdXQuZm9jdXMoKSwgNTApO1xuICAgIH1cblxuICAgIGJvZHlNb3ZlKGV2ZW50KSB7XG4gICAgICAgIGV2ZW50ICYmIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgaWYgKHRoaXMudGFyZ2V0KSB7IHRoaXMubW92ZSh0aGlzLnRhcmdldCwgZXZlbnQpOyB9XG4gICAgfVxuXG4gICAgYm9keUNsaWNrKGV2ZW50KSB7XG4gICAgICAgIGxldCB0YXJnZXQgPSAkKGV2ZW50LnRhcmdldCk7XG5cbiAgICAgICAgaWYgKCF0YXJnZXQuY2xvc2VzdCgnLmNwLXdyYXBwZXInKS5sZW5ndGggJiYgIXRhcmdldC5pcyh0aGlzLnNlbGVjdG9yKSkge1xuICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBib2R5RG93bihldmVudCkge1xuICAgICAgICBldmVudCAmJiBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIHRoaXMudGFyZ2V0ID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgICAgICAgdGhpcy5tb3ZlKHRoaXMudGFyZ2V0LCBldmVudCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgdGFyZ2V0UmVzZXQoZXZlbnQpIHtcbiAgICAgICAgZXZlbnQgJiYgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICB0aGlzLnRhcmdldCA9IG51bGw7XG4gICAgfVxuXG4gICAgbW92ZSh0YXJnZXQsIGV2ZW50KSB7XG4gICAgICAgIGxldCBpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgbGV0IHBpY2tlciA9IHRhcmdldC5maW5kKCcuY3AtcGlja2VyJyk7XG4gICAgICAgIGxldCBjbGllbnRSZWN0ID0gdGFyZ2V0WzBdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBsZXQgb2Zmc2V0WCA9IGNsaWVudFJlY3QubGVmdCArIHdpbmRvdy5zY3JvbGxYO1xuICAgICAgICBsZXQgb2Zmc2V0WSA9IGNsaWVudFJlY3QudG9wICsgd2luZG93LnNjcm9sbFk7XG4gICAgICAgIGxldCB4ID0gTWF0aC5yb3VuZCgoZXZlbnQgPyBldmVudC5wYWdlWCA6IDApIC0gb2Zmc2V0WCk7XG4gICAgICAgIGxldCB5ID0gTWF0aC5yb3VuZCgoZXZlbnQgPyBldmVudC5wYWdlWSA6IDApIC0gb2Zmc2V0WSk7XG4gICAgICAgIGxldCB3eDtcbiAgICAgICAgbGV0IHd5O1xuICAgICAgICBsZXQgcjtcbiAgICAgICAgbGV0IHBoaTtcblxuICAgICAgICAvLyBUb3VjaCBzdXBwb3J0XG4gICAgICAgIGxldCB0b3VjaEV2ZW50cyA9IGV2ZW50LmNoYW5nZWRUb3VjaGVzIHx8IChldmVudC5vcmlnaW5hbEV2ZW50ICYmIGV2ZW50Lm9yaWdpbmFsRXZlbnQuY2hhbmdlZFRvdWNoZXMpO1xuICAgICAgICBpZiAoZXZlbnQgJiYgdG91Y2hFdmVudHMpIHtcbiAgICAgICAgICAgIHggPSAodG91Y2hFdmVudHMgPyB0b3VjaEV2ZW50c1swXS5wYWdlWCA6IDApIC0gb2Zmc2V0WDtcbiAgICAgICAgICAgIHkgPSAodG91Y2hFdmVudHMgPyB0b3VjaEV2ZW50c1swXS5wYWdlWSA6IDApIC0gb2Zmc2V0WTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChldmVudCAmJiBldmVudC5tYW51YWxPcGFjaXR5KSB7XG4gICAgICAgICAgICB5ID0gY2xpZW50UmVjdC5oZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDb25zdHJhaW4gcGlja2VyIHRvIGl0cyBjb250YWluZXJcbiAgICAgICAgaWYgKHggPCAwKSB4ID0gMDtcbiAgICAgICAgaWYgKHkgPCAwKSB5ID0gMDtcbiAgICAgICAgaWYgKHggPiBjbGllbnRSZWN0LndpZHRoKSB4ID0gY2xpZW50UmVjdC53aWR0aDtcbiAgICAgICAgaWYgKHkgPiBjbGllbnRSZWN0LmhlaWdodCkgeSA9IGNsaWVudFJlY3QuaGVpZ2h0O1xuXG4gICAgICAgIC8vIENvbnN0cmFpbiBjb2xvciB3aGVlbCB2YWx1ZXMgdG8gdGhlIHdoZWVsXG4gICAgICAgIGlmICh0YXJnZXQucGFyZW50KCcuY3AtbW9kZS13aGVlbCcpLmxlbmd0aCAmJiBwaWNrZXIucGFyZW50KCcuY3AtZ3JpZCcpLmxlbmd0aCkge1xuICAgICAgICAgICAgd3ggPSA3NSAtIHg7XG4gICAgICAgICAgICB3eSA9IDc1IC0geTtcbiAgICAgICAgICAgIHIgPSBNYXRoLnNxcnQod3ggKiB3eCArIHd5ICogd3kpO1xuICAgICAgICAgICAgcGhpID0gTWF0aC5hdGFuMih3eSwgd3gpO1xuXG4gICAgICAgICAgICBpZiAocGhpIDwgMCkgcGhpICs9IE1hdGguUEkgKiAyO1xuICAgICAgICAgICAgaWYgKHIgPiA3NSkge1xuICAgICAgICAgICAgICAgIHggPSA3NSAtICg3NSAqIE1hdGguY29zKHBoaSkpO1xuICAgICAgICAgICAgICAgIHkgPSA3NSAtICg3NSAqIE1hdGguc2luKHBoaSkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB4ID0gTWF0aC5yb3VuZCh4KTtcbiAgICAgICAgICAgIHkgPSBNYXRoLnJvdW5kKHkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTW92ZSB0aGUgcGlja2VyXG4gICAgICAgIGlmICh0YXJnZXQuaGFzQ2xhc3MoJ2NwLWdyaWQnKSkge1xuICAgICAgICAgICAgcGlja2VyLmNzcyh7XG4gICAgICAgICAgICAgICAgdG9wOiB5LFxuICAgICAgICAgICAgICAgIGxlZnQ6IHhcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUZyb21QaWNrZXIoaW5wdXQsIHRhcmdldCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwaWNrZXIuY3NzKHtcbiAgICAgICAgICAgICAgICB0b3A6IHlcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVGcm9tUGlja2VyKGlucHV0LCB0YXJnZXQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlRnJvbUlucHV0KGRvbnRGaXJlRXZlbnQsIGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudCA9IGVsZW1lbnQgPyAkKGVsZW1lbnQpIDogdGhpcy5lbGVtZW50O1xuICAgICAgICBsZXQgdmFsdWUgPSBlbGVtZW50LnZhbCgpO1xuICAgICAgICBsZXQgb3BhY2l0eSA9IHZhbHVlLnJlcGxhY2UoL1xccy9nLCAnJykubWF0Y2goL15yZ2JhP1xcKFswLTldezEsM30sWzAtOV17MSwzfSxbMC05XXsxLDN9LCguKylcXCkvKTtcbiAgICAgICAgbGV0IGhleDtcbiAgICAgICAgbGV0IGhzYjtcblxuICAgICAgICB2YWx1ZSA9IHJnYnN0cjJoZXgodmFsdWUpIHx8IHZhbHVlO1xuICAgICAgICBvcGFjaXR5ID0gb3BhY2l0eSA/IGNsYW1wKG9wYWNpdHlbMV0sIDAsIDEpIDogMTtcblxuICAgICAgICBpZiAoIShoZXggPSBwYXJzZUhleCh2YWx1ZSkpKSB7IGhleCA9ICcjZmZmZmZmJzsgfVxuICAgICAgICBoc2IgPSBoZXgyaHNiKGhleCk7XG5cbiAgICAgICAgaWYgKHRoaXMuYnVpbHQpIHtcbiAgICAgICAgICAgIC8vIG9wYWNpdHlcbiAgICAgICAgICAgIHRoaXMub3BhY2l0eSA9IG9wYWNpdHk7XG4gICAgICAgICAgICB2YXIgc2xpZGVySGVpZ2h0ID0gdGhpcy5vcGFjaXR5U2xpZGVyLmhlaWdodCgpO1xuICAgICAgICAgICAgdGhpcy5vcGFjaXR5U2xpZGVyLmZpbmQoJy5jcC1waWNrZXInKS5jc3MoeyAndG9wJzogY2xhbXAoc2xpZGVySGVpZ2h0IC0gKHNsaWRlckhlaWdodCAqIHRoaXMub3BhY2l0eSksIDAsIHNsaWRlckhlaWdodCkgfSk7XG5cbiAgICAgICAgICAgIC8vIGJnIGNvbG9yXG4gICAgICAgICAgICBsZXQgZ3JpZEhlaWdodCA9IHRoaXMuZ3JpZC5oZWlnaHQoKTtcbiAgICAgICAgICAgIGxldCBncmlkV2lkdGggPSB0aGlzLmdyaWQud2lkdGgoKTtcbiAgICAgICAgICAgIGxldCByO1xuICAgICAgICAgICAgbGV0IHBoaTtcbiAgICAgICAgICAgIGxldCB4O1xuICAgICAgICAgICAgbGV0IHk7XG5cbiAgICAgICAgICAgIHNsaWRlckhlaWdodCA9IHRoaXMuc2xpZGVyLmhlaWdodCgpO1xuXG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMubW9kZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3doZWVsJzpcbiAgICAgICAgICAgICAgICAgICAgLy8gU2V0IGdyaWQgcG9zaXRpb25cbiAgICAgICAgICAgICAgICAgICAgciA9IGNsYW1wKE1hdGguY2VpbChoc2IucyAqIDAuNzUpLCAwLCBncmlkSGVpZ2h0IC8gMik7XG4gICAgICAgICAgICAgICAgICAgIHBoaSA9IGhzYi5oICogTWF0aC5QSSAvIDE4MDtcbiAgICAgICAgICAgICAgICAgICAgeCA9IGNsYW1wKDc1IC0gTWF0aC5jb3MocGhpKSAqIHIsIDAsIGdyaWRXaWR0aCk7XG4gICAgICAgICAgICAgICAgICAgIHkgPSBjbGFtcCg3NSAtIE1hdGguc2luKHBoaSkgKiByLCAwLCBncmlkSGVpZ2h0KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ncmlkLmNzcyh7IGJhY2tncm91bmRDb2xvcjogJ3RyYW5zcGFyZW50JyB9KS5maW5kKCcuY3AtcGlja2VyJykuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IHhcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gU2V0IHNsaWRlciBwb3NpdGlvblxuICAgICAgICAgICAgICAgICAgICB5ID0gMTUwIC0gKGhzYi5iIC8gKDEwMCAvIGdyaWRIZWlnaHQpKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGhleCA9PT0gJycpIHkgPSAwO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNsaWRlci5maW5kKCcuY3AtcGlja2VyJykuY3NzKHsgdG9wOiB5IH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBwYW5lbCBjb2xvclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNsaWRlci5jc3Moe1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBoc2IyaGV4KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoOiBoc2IuaCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzOiBoc2IucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiOiAxMDBcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ3NhdHVyYXRpb24nOlxuICAgICAgICAgICAgICAgICAgICAvLyBTZXQgZ3JpZCBwb3NpdGlvblxuICAgICAgICAgICAgICAgICAgICB4ID0gY2xhbXAoKDUgKiBoc2IuaCkgLyAxMiwgMCwgMTUwKTtcbiAgICAgICAgICAgICAgICAgICAgeSA9IGNsYW1wKGdyaWRIZWlnaHQgLSBNYXRoLmNlaWwoaHNiLmIgLyAoMTAwIC8gZ3JpZEhlaWdodCkpLCAwLCBncmlkSGVpZ2h0KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ncmlkLmZpbmQoJy5jcC1waWNrZXInKS5jc3Moe1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiB5LFxuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogeFxuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBTZXQgc2xpZGVyIHBvc2l0aW9uXG4gICAgICAgICAgICAgICAgICAgIHkgPSBjbGFtcChzbGlkZXJIZWlnaHQgLSAoaHNiLnMgKiAoc2xpZGVySGVpZ2h0IC8gMTAwKSksIDAsIHNsaWRlckhlaWdodCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2xpZGVyLmZpbmQoJy5jcC1waWNrZXInKS5jc3MoeyB0b3A6IHkgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gVXBkYXRlIFVJXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2xpZGVyLmNzcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGhzYjJoZXgoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGg6IGhzYi5oLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHM6IDEwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiOiBoc2IuYlxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JpZC5maW5kKCcuY3AtZ3JpZC1pbm5lcicpLmNzcyh7IG9wYWNpdHk6IGhzYi5zIC8gMTAwIH0pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2JyaWdodG5lc3MnOlxuICAgICAgICAgICAgICAgICAgICAvLyBTZXQgZ3JpZCBwb3NpdGlvblxuICAgICAgICAgICAgICAgICAgICB4ID0gY2xhbXAoKDUgKiBoc2IuaCkgLyAxMiwgMCwgMTUwKTtcbiAgICAgICAgICAgICAgICAgICAgeSA9IGNsYW1wKGdyaWRIZWlnaHQgLSBNYXRoLmNlaWwoaHNiLnMgLyAoMTAwIC8gZ3JpZEhlaWdodCkpLCAwLCBncmlkSGVpZ2h0KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ncmlkLmZpbmQoJy5jcC1waWNrZXInKS5jc3Moe1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiB5LFxuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogeFxuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBTZXQgc2xpZGVyIHBvc2l0aW9uXG4gICAgICAgICAgICAgICAgICAgIHkgPSBjbGFtcChzbGlkZXJIZWlnaHQgLSAoaHNiLmIgKiAoc2xpZGVySGVpZ2h0IC8gMTAwKSksIDAsIHNsaWRlckhlaWdodCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2xpZGVyLmZpbmQoJy5jcC1waWNrZXInKS5jc3MoeyB0b3A6IHkgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gVXBkYXRlIFVJXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2xpZGVyLmNzcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGhzYjJoZXgoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGg6IGhzYi5oLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHM6IGhzYi5zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGI6IDEwMFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JpZC5maW5kKCcuY3AtZ3JpZC1pbm5lcicpLmNzcyh7IG9wYWNpdHk6IDEgLSAoaHNiLmIgLyAxMDApIH0pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdodWUnOlxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIC8vIFNldCBncmlkIHBvc2l0aW9uXG4gICAgICAgICAgICAgICAgICAgIHggPSBjbGFtcChNYXRoLmNlaWwoaHNiLnMgLyAoMTAwIC8gZ3JpZFdpZHRoKSksIDAsIGdyaWRXaWR0aCk7XG4gICAgICAgICAgICAgICAgICAgIHkgPSBjbGFtcChncmlkSGVpZ2h0IC0gTWF0aC5jZWlsKGhzYi5iIC8gKDEwMCAvIGdyaWRIZWlnaHQpKSwgMCwgZ3JpZEhlaWdodCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JpZC5maW5kKCcuY3AtcGlja2VyJykuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IHhcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gU2V0IHNsaWRlciBwb3NpdGlvblxuICAgICAgICAgICAgICAgICAgICB5ID0gY2xhbXAoc2xpZGVySGVpZ2h0IC0gKGhzYi5oIC8gKDM2MCAvIHNsaWRlckhlaWdodCkpLCAwLCBzbGlkZXJIZWlnaHQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNsaWRlci5maW5kKCcuY3AtcGlja2VyJykuY3NzKHsgdG9wOiB5IH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBwYW5lbCBjb2xvclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyaWQuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogaHNiMmhleCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaDogaHNiLmgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgczogMTAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGI6IDEwMFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFkb250RmlyZUV2ZW50KSB7IGVsZW1lbnQudmFsKHRoaXMuZ2V0VmFsdWUoaGV4KSk7IH1cblxuICAgICAgICAodGhpcy5lbGVtZW50IHx8IGVsZW1lbnQpLnRyaWdnZXIoJ2NoYW5nZS5fZ3Jhdl9jb2xvcnBpY2tlcicsIFtlbGVtZW50LCBoZXgsIG9wYWNpdHldKTtcblxuICAgIH1cblxuICAgIHVwZGF0ZUZyb21QaWNrZXIoaW5wdXQsIHRhcmdldCkge1xuICAgICAgICB2YXIgZ2V0Q29vcmRzID0gZnVuY3Rpb24ocGlja2VyLCBjb250YWluZXIpIHtcblxuICAgICAgICAgICAgdmFyIGxlZnQsIHRvcDtcbiAgICAgICAgICAgIGlmICghcGlja2VyLmxlbmd0aCB8fCAhY29udGFpbmVyKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIGxlZnQgPSBwaWNrZXJbMF0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdDtcbiAgICAgICAgICAgIHRvcCA9IHBpY2tlclswXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3A7XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgeDogbGVmdCAtIGNvbnRhaW5lclswXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0ICsgKHBpY2tlclswXS5vZmZzZXRXaWR0aCAvIDIpLFxuICAgICAgICAgICAgICAgIHk6IHRvcCAtIGNvbnRhaW5lclswXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgKyAocGlja2VyWzBdLm9mZnNldEhlaWdodCAvIDIpXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIH07XG5cbiAgICAgICAgbGV0IGhleDtcbiAgICAgICAgbGV0IGh1ZTtcbiAgICAgICAgbGV0IHNhdHVyYXRpb247XG4gICAgICAgIGxldCBicmlnaHRuZXNzO1xuICAgICAgICBsZXQgeDtcbiAgICAgICAgbGV0IHk7XG4gICAgICAgIGxldCByO1xuICAgICAgICBsZXQgcGhpO1xuXG4gICAgICAgIC8vIFBhbmVsIG9iamVjdHNcbiAgICAgICAgbGV0IGdyaWQgPSB0aGlzLndyYXBwZXIuZmluZCgnLmNwLWdyaWQnKTtcbiAgICAgICAgbGV0IHNsaWRlciA9IHRoaXMud3JhcHBlci5maW5kKCcuY3Atc2xpZGVyJyk7XG4gICAgICAgIGxldCBvcGFjaXR5U2xpZGVyID0gdGhpcy53cmFwcGVyLmZpbmQoJy5jcC1vcGFjaXR5LXNsaWRlcicpO1xuXG4gICAgICAgIC8vIFBpY2tlciBvYmplY3RzXG4gICAgICAgIGxldCBncmlkUGlja2VyID0gZ3JpZC5maW5kKCcuY3AtcGlja2VyJyk7XG4gICAgICAgIGxldCBzbGlkZXJQaWNrZXIgPSBzbGlkZXIuZmluZCgnLmNwLXBpY2tlcicpO1xuICAgICAgICBsZXQgb3BhY2l0eVBpY2tlciA9IG9wYWNpdHlTbGlkZXIuZmluZCgnLmNwLXBpY2tlcicpO1xuXG4gICAgICAgIC8vIFBpY2tlciBwb3NpdGlvbnNcbiAgICAgICAgbGV0IGdyaWRQb3MgPSBnZXRDb29yZHMoZ3JpZFBpY2tlciwgZ3JpZCk7XG4gICAgICAgIGxldCBzbGlkZXJQb3MgPSBnZXRDb29yZHMoc2xpZGVyUGlja2VyLCBzbGlkZXIpO1xuICAgICAgICBsZXQgb3BhY2l0eVBvcyA9IGdldENvb3JkcyhvcGFjaXR5UGlja2VyLCBvcGFjaXR5U2xpZGVyKTtcblxuICAgICAgICAvLyBTaXplc1xuICAgICAgICBsZXQgZ3JpZFdpZHRoID0gZ3JpZFswXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICAgICAgbGV0IGdyaWRIZWlnaHQgPSBncmlkWzBdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcbiAgICAgICAgbGV0IHNsaWRlckhlaWdodCA9IHNsaWRlclswXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XG4gICAgICAgIGxldCBvcGFjaXR5U2xpZGVySGVpZ2h0ID0gb3BhY2l0eVNsaWRlclswXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XG5cbiAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5lbGVtZW50LnZhbCgpO1xuICAgICAgICB2YWx1ZSA9IHJnYnN0cjJoZXgodmFsdWUpIHx8IHZhbHVlO1xuICAgICAgICBpZiAoIShoZXggPSBwYXJzZUhleCh2YWx1ZSkpKSB7IGhleCA9ICcjZmZmZmZmJzsgfVxuXG4gICAgICAgIC8vIEhhbmRsZSBjb2xvcnNcbiAgICAgICAgaWYgKHRhcmdldC5oYXNDbGFzcygnY3AtZ3JpZCcpIHx8IHRhcmdldC5oYXNDbGFzcygnY3Atc2xpZGVyJykpIHtcblxuICAgICAgICAgICAgLy8gRGV0ZXJtaW5lIEhTQiB2YWx1ZXNcbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5tb2RlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnd2hlZWwnOlxuICAgICAgICAgICAgICAgICAgICAvLyBDYWxjdWxhdGUgaHVlLCBzYXR1cmF0aW9uLCBhbmQgYnJpZ2h0bmVzc1xuICAgICAgICAgICAgICAgICAgICB4ID0gKGdyaWRXaWR0aCAvIDIpIC0gZ3JpZFBvcy54O1xuICAgICAgICAgICAgICAgICAgICB5ID0gKGdyaWRIZWlnaHQgLyAyKSAtIGdyaWRQb3MueTtcbiAgICAgICAgICAgICAgICAgICAgciA9IE1hdGguc3FydCh4ICogeCArIHkgKiB5KTtcbiAgICAgICAgICAgICAgICAgICAgcGhpID0gTWF0aC5hdGFuMih5LCB4KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBoaSA8IDApIHBoaSArPSBNYXRoLlBJICogMjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHIgPiA3NSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgciA9IDc1O1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZFBvcy54ID0gNjkgLSAoNzUgKiBNYXRoLmNvcyhwaGkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyaWRQb3MueSA9IDY5IC0gKDc1ICogTWF0aC5zaW4ocGhpKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc2F0dXJhdGlvbiA9IGNsYW1wKHIgLyAwLjc1LCAwLCAxMDApO1xuICAgICAgICAgICAgICAgICAgICBodWUgPSBjbGFtcChwaGkgKiAxODAgLyBNYXRoLlBJLCAwLCAzNjApO1xuICAgICAgICAgICAgICAgICAgICBicmlnaHRuZXNzID0gY2xhbXAoMTAwIC0gTWF0aC5mbG9vcihzbGlkZXJQb3MueSAqICgxMDAgLyBzbGlkZXJIZWlnaHQpKSwgMCwgMTAwKTtcbiAgICAgICAgICAgICAgICAgICAgaGV4ID0gaHNiMmhleCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBoOiBodWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBzOiBzYXR1cmF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgYjogYnJpZ2h0bmVzc1xuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgVUlcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVyLmNzcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGhzYjJoZXgoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGg6IGh1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzOiBzYXR1cmF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGI6IDEwMFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnc2F0dXJhdGlvbic6XG4gICAgICAgICAgICAgICAgICAgIC8vIENhbGN1bGF0ZSBodWUsIHNhdHVyYXRpb24sIGFuZCBicmlnaHRuZXNzXG4gICAgICAgICAgICAgICAgICAgIGh1ZSA9IGNsYW1wKHBhcnNlSW50KGdyaWRQb3MueCAqICgzNjAgLyBncmlkV2lkdGgpLCAxMCksIDAsIDM2MCk7XG4gICAgICAgICAgICAgICAgICAgIHNhdHVyYXRpb24gPSBjbGFtcCgxMDAgLSBNYXRoLmZsb29yKHNsaWRlclBvcy55ICogKDEwMCAvIHNsaWRlckhlaWdodCkpLCAwLCAxMDApO1xuICAgICAgICAgICAgICAgICAgICBicmlnaHRuZXNzID0gY2xhbXAoMTAwIC0gTWF0aC5mbG9vcihncmlkUG9zLnkgKiAoMTAwIC8gZ3JpZEhlaWdodCkpLCAwLCAxMDApO1xuICAgICAgICAgICAgICAgICAgICBoZXggPSBoc2IyaGV4KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGg6IGh1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHM6IHNhdHVyYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBiOiBicmlnaHRuZXNzXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBVSVxuICAgICAgICAgICAgICAgICAgICBzbGlkZXIuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogaHNiMmhleCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaDogaHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHM6IDEwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiOiBicmlnaHRuZXNzXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC5maW5kKCcuY3AtZ3JpZC1pbm5lcicpLmNzcyh7IG9wYWNpdHk6IHNhdHVyYXRpb24gLyAxMDAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnYnJpZ2h0bmVzcyc6XG4gICAgICAgICAgICAgICAgICAgIC8vIENhbGN1bGF0ZSBodWUsIHNhdHVyYXRpb24sIGFuZCBicmlnaHRuZXNzXG4gICAgICAgICAgICAgICAgICAgIGh1ZSA9IGNsYW1wKHBhcnNlSW50KGdyaWRQb3MueCAqICgzNjAgLyBncmlkV2lkdGgpLCAxMCksIDAsIDM2MCk7XG4gICAgICAgICAgICAgICAgICAgIHNhdHVyYXRpb24gPSBjbGFtcCgxMDAgLSBNYXRoLmZsb29yKGdyaWRQb3MueSAqICgxMDAgLyBncmlkSGVpZ2h0KSksIDAsIDEwMCk7XG4gICAgICAgICAgICAgICAgICAgIGJyaWdodG5lc3MgPSBjbGFtcCgxMDAgLSBNYXRoLmZsb29yKHNsaWRlclBvcy55ICogKDEwMCAvIHNsaWRlckhlaWdodCkpLCAwLCAxMDApO1xuICAgICAgICAgICAgICAgICAgICBoZXggPSBoc2IyaGV4KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGg6IGh1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHM6IHNhdHVyYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBiOiBicmlnaHRuZXNzXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBVSVxuICAgICAgICAgICAgICAgICAgICBzbGlkZXIuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogaHNiMmhleCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaDogaHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHM6IHNhdHVyYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYjogMTAwXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgZ3JpZC5maW5kKCcuY3AtZ3JpZC1pbm5lcicpLmNzcyh7IG9wYWNpdHk6IDEgLSAoYnJpZ2h0bmVzcyAvIDEwMCkgfSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIGh1ZSwgc2F0dXJhdGlvbiwgYW5kIGJyaWdodG5lc3NcbiAgICAgICAgICAgICAgICAgICAgaHVlID0gY2xhbXAoMzYwIC0gcGFyc2VJbnQoc2xpZGVyUG9zLnkgKiAoMzYwIC8gc2xpZGVySGVpZ2h0KSwgMTApLCAwLCAzNjApO1xuICAgICAgICAgICAgICAgICAgICBzYXR1cmF0aW9uID0gY2xhbXAoTWF0aC5mbG9vcihncmlkUG9zLnggKiAoMTAwIC8gZ3JpZFdpZHRoKSksIDAsIDEwMCk7XG4gICAgICAgICAgICAgICAgICAgIGJyaWdodG5lc3MgPSBjbGFtcCgxMDAgLSBNYXRoLmZsb29yKGdyaWRQb3MueSAqICgxMDAgLyBncmlkSGVpZ2h0KSksIDAsIDEwMCk7XG4gICAgICAgICAgICAgICAgICAgIGhleCA9IGhzYjJoZXgoe1xuICAgICAgICAgICAgICAgICAgICAgICAgaDogaHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgczogc2F0dXJhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIGI6IGJyaWdodG5lc3NcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gVXBkYXRlIFVJXG4gICAgICAgICAgICAgICAgICAgIGdyaWQuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogaHNiMmhleCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaDogaHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHM6IDEwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiOiAxMDBcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gSGFuZGxlIG9wYWNpdHlcbiAgICAgICAgaWYgKHRhcmdldC5oYXNDbGFzcygnY3Atb3BhY2l0eS1zbGlkZXInKSkge1xuICAgICAgICAgICAgdGhpcy5vcGFjaXR5ID0gcGFyc2VGbG9hdCgxIC0gKG9wYWNpdHlQb3MueSAvIG9wYWNpdHlTbGlkZXJIZWlnaHQpKS50b0ZpeGVkKDIpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQWRqdXN0IGNhc2VcbiAgICAgICAgaW5wdXQudmFsKHRoaXMuZ2V0VmFsdWUoaGV4KSk7XG5cbiAgICAgICAgLy8gSGFuZGxlIGNoYW5nZSBldmVudFxuICAgICAgICB0aGlzLmVsZW1lbnQudHJpZ2dlcignY2hhbmdlLl9ncmF2X2NvbG9ycGlja2VyJywgW3RoaXMuZWxlbWVudCwgaGV4LCB0aGlzLm9wYWNpdHldKTtcblxuICAgIH1cblxuICAgIGdldFZhbHVlKGhleCkge1xuICAgICAgICBpZiAodGhpcy5vcGFjaXR5ID09PSAxKSB7IHJldHVybiBoZXg7IH1cbiAgICAgICAgbGV0IHJnYiA9IGhleDJyZ2IoaGV4KTtcblxuICAgICAgICByZXR1cm4gJ3JnYmEoJyArIHJnYi5yICsgJywgJyArIHJnYi5nICsgJywgJyArIHJnYi5iICsgJywgJyArIHRoaXMub3BhY2l0eSArICcpJztcbiAgICB9XG5cbiAgICBib3VuZChuYW1lKSB7XG4gICAgICAgIGxldCBib3VuZCA9IHRoaXMuX2JvdW5kIHx8ICh0aGlzLl9ib3VuZCA9IHt9KTtcbiAgICAgICAgcmV0dXJuIGJvdW5kW25hbWVdIHx8IChib3VuZFtuYW1lXSA9IGJpbmQodGhpc1tuYW1lXSwgdGhpcykpO1xuICAgIH1cbn1cblxuZXhwb3J0IGxldCBJbnN0YW5jZSA9IG5ldyBDb2xvcnBpY2tlckZpZWxkKCdbZGF0YS1ncmF2LWNvbG9ycGlja2VyXScpO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/forms/fields/colorpicker.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/forms/fields/cron.js":
|
|
/*!**********************************!*\
|
|
!*** ./app/forms/fields/cron.js ***!
|
|
\**********************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ CronField),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_cron_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/cron-ui */ \"./app/utils/cron-ui.js\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_2__);\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); return Constructor; }\n\n\n\n\n\nvar CronField = /*#__PURE__*/function () {\n function CronField() {\n var _this = this;\n\n _classCallCheck(this, CronField);\n\n this.items = jquery__WEBPACK_IMPORTED_MODULE_0___default()();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-grav-field=\"cron\"]').each(function (index, cron) {\n return _this.addCron(cron);\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('mutation._grav', this._onAddedNodes.bind(this));\n }\n\n _createClass(CronField, [{\n key: \"addCron\",\n value: function addCron(cron) {\n cron = jquery__WEBPACK_IMPORTED_MODULE_0___default()(cron);\n this.items = this.items.add(cron);\n cron.find('.cron-selector').each(function (index, container) {\n container = jquery__WEBPACK_IMPORTED_MODULE_0___default()(container);\n var input = container.closest('[data-grav-field]').find('input');\n container.jqCron({\n numeric_zero_pad: true,\n enabled_minute: true,\n multiple_dom: true,\n multiple_month: true,\n multiple_mins: true,\n multiple_dow: true,\n multiple_time_hours: true,\n multiple_time_minutes: true,\n default_period: 'hour',\n default_value: input.val() || '* * * * *',\n no_reset_button: false,\n bind_to: input,\n bind_method: {\n set: function set($element, value) {\n $element.val(value);\n }\n },\n texts: {\n en: {\n empty: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"CRON.EVERY\"],\n empty_minutes: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"CRON.EVERY\"],\n empty_time_hours: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"CRON.EVERY_HOUR\"],\n empty_time_minutes: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"CRON.EVERY_MINUTE\"],\n empty_day_of_week: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"CRON.EVERY_DAY_OF_WEEK\"],\n empty_day_of_month: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"CRON.EVERY_DAY_OF_MONTH\"],\n empty_month: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"CRON.EVERY_MONTH\"],\n name_minute: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"NICETIME.MINUTE\"],\n name_hour: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"NICETIME.HOUR\"],\n name_day: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"NICETIME.DAY\"],\n name_week: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"NICETIME.WEEK\"],\n name_month: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"NICETIME.MONTH\"],\n name_year: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"NICETIME.YEAR\"],\n text_period: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"CRON.TEXT_PERIOD\"],\n text_mins: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"CRON.TEXT_MINS\"],\n text_time: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"CRON.TEXT_TIME\"],\n text_dow: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"CRON.TEXT_DOW\"],\n text_month: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"CRON.TEXT_MONTH\"],\n text_dom: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"CRON.TEXT_DOM\"],\n error1: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"CRON.ERROR1\"],\n error2: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"CRON.ERROR2\"],\n error3: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"CRON.ERROR3\"],\n error4: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE[\"CRON.ERROR4\"],\n weekdays: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE.DAYS_OF_THE_WEEK,\n months: grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.GRAV_CORE.MONTHS_OF_THE_YEAR\n }\n }\n });\n });\n }\n }, {\n key: \"_onAddedNodes\",\n value: function _onAddedNodes(event, target\n /* , record, instance */\n ) {\n var _this2 = this;\n\n var crons = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target).find('[data-grav-field=\"cron\"]');\n\n if (!crons.length) {\n return;\n }\n\n crons.each(function (index, list) {\n list = jquery__WEBPACK_IMPORTED_MODULE_0___default()(list);\n\n if (!~_this2.items.index(list)) {\n _this2.addCron(list);\n }\n });\n }\n }]);\n\n return CronField;\n}();\n\n\nvar Instance = new CronField();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL2ZpZWxkcy9jcm9uLmpzP2M0NzgiXSwibmFtZXMiOlsiQ3JvbkZpZWxkIiwiaXRlbXMiLCIkIiwiZWFjaCIsImluZGV4IiwiY3JvbiIsImFkZENyb24iLCJvbiIsIl9vbkFkZGVkTm9kZXMiLCJiaW5kIiwiYWRkIiwiZmluZCIsImNvbnRhaW5lciIsImlucHV0IiwiY2xvc2VzdCIsImpxQ3JvbiIsIm51bWVyaWNfemVyb19wYWQiLCJlbmFibGVkX21pbnV0ZSIsIm11bHRpcGxlX2RvbSIsIm11bHRpcGxlX21vbnRoIiwibXVsdGlwbGVfbWlucyIsIm11bHRpcGxlX2RvdyIsIm11bHRpcGxlX3RpbWVfaG91cnMiLCJtdWx0aXBsZV90aW1lX21pbnV0ZXMiLCJkZWZhdWx0X3BlcmlvZCIsImRlZmF1bHRfdmFsdWUiLCJ2YWwiLCJub19yZXNldF9idXR0b24iLCJiaW5kX3RvIiwiYmluZF9tZXRob2QiLCJzZXQiLCIkZWxlbWVudCIsInZhbHVlIiwidGV4dHMiLCJlbiIsImVtcHR5IiwidHJhbnNsYXRpb25zIiwiZW1wdHlfbWludXRlcyIsImVtcHR5X3RpbWVfaG91cnMiLCJlbXB0eV90aW1lX21pbnV0ZXMiLCJlbXB0eV9kYXlfb2Zfd2VlayIsImVtcHR5X2RheV9vZl9tb250aCIsImVtcHR5X21vbnRoIiwibmFtZV9taW51dGUiLCJuYW1lX2hvdXIiLCJuYW1lX2RheSIsIm5hbWVfd2VlayIsIm5hbWVfbW9udGgiLCJuYW1lX3llYXIiLCJ0ZXh0X3BlcmlvZCIsInRleHRfbWlucyIsInRleHRfdGltZSIsInRleHRfZG93IiwidGV4dF9tb250aCIsInRleHRfZG9tIiwiZXJyb3IxIiwiZXJyb3IyIiwiZXJyb3IzIiwiZXJyb3I0Iiwid2Vla2RheXMiLCJtb250aHMiLCJldmVudCIsInRhcmdldCIsImNyb25zIiwibGVuZ3RoIiwibGlzdCIsIkluc3RhbmNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7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QixLQUFkLEVBQXFCQztBQUFNO0FBQTNCLE1BQXFEO0FBQUE7O0FBQ2pELFVBQUlDLEtBQUssR0FBRzdELDZDQUFDLENBQUM0RCxNQUFELENBQUQsQ0FBVW5ELElBQVYsQ0FBZSwwQkFBZixDQUFaOztBQUNBLFVBQUksQ0FBQ29ELEtBQUssQ0FBQ0MsTUFBWCxFQUFtQjtBQUFFO0FBQVM7O0FBRTlCRCxXQUFLLENBQUM1RCxJQUFOLENBQVcsVUFBQ0MsS0FBRCxFQUFRNkQsSUFBUixFQUFpQjtBQUN4QkEsWUFBSSxHQUFHL0QsNkNBQUMsQ0FBQytELElBQUQsQ0FBUjs7QUFDQSxZQUFJLENBQUMsQ0FBQyxNQUFJLENBQUNoRSxLQUFMLENBQVdHLEtBQVgsQ0FBaUI2RCxJQUFqQixDQUFOLEVBQThCO0FBQzFCLGdCQUFJLENBQUMzRCxPQUFMLENBQWEyRCxJQUFiO0FBQ0g7QUFDSixPQUxEO0FBTUg7Ozs7Ozs7QUFHRSxJQUFJQyxRQUFRLEdBQUcsSUFBSWxFLFNBQUosRUFBZiIsImZpbGUiOiIuL2FwcC9mb3Jtcy9maWVsZHMvY3Jvbi5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgJy4uLy4uL3V0aWxzL2Nyb24tdWknO1xuaW1wb3J0IHsgdHJhbnNsYXRpb25zIH0gZnJvbSAnZ3Jhdi1jb25maWcnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDcm9uRmllbGQge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLml0ZW1zID0gJCgpO1xuXG4gICAgICAgICQoJ1tkYXRhLWdyYXYtZmllbGQ9XCJjcm9uXCJdJykuZWFjaCgoaW5kZXgsIGNyb24pID0+IHRoaXMuYWRkQ3Jvbihjcm9uKSk7XG4gICAgICAgICQoJ2JvZHknKS5vbignbXV0YXRpb24uX2dyYXYnLCB0aGlzLl9vbkFkZGVkTm9kZXMuYmluZCh0aGlzKSk7XG4gICAgfVxuXG4gICAgYWRkQ3Jvbihjcm9uKSB7XG4gICAgICAgIGNyb24gPSAkKGNyb24pO1xuICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5pdGVtcy5hZGQoY3Jvbik7XG5cbiAgICAgICAgY3Jvbi5maW5kKCcuY3Jvbi1zZWxlY3RvcicpLmVhY2goKGluZGV4LCBjb250YWluZXIpID0+IHtcbiAgICAgICAgICAgIGNvbnRhaW5lciA9ICQoY29udGFpbmVyKTtcbiAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gY29udGFpbmVyLmNsb3Nlc3QoJ1tkYXRhLWdyYXYtZmllbGRdJykuZmluZCgnaW5wdXQnKTtcblxuICAgICAgICAgICAgY29udGFpbmVyLmpxQ3Jvbih7XG4gICAgICAgICAgICAgICAgbnVtZXJpY196ZXJvX3BhZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBlbmFibGVkX21pbnV0ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBtdWx0aXBsZV9kb206IHRydWUsXG4gICAgICAgICAgICAgICAgbXVsdGlwbGVfbW9udGg6IHRydWUsXG4gICAgICAgICAgICAgICAgbXVsdGlwbGVfbWluczogdHJ1ZSxcbiAgICAgICAgICAgICAgICBtdWx0aXBsZV9kb3c6IHRydWUsXG4gICAgICAgICAgICAgICAgbXVsdGlwbGVfdGltZV9ob3VyczogdHJ1ZSxcbiAgICAgICAgICAgICAgICBtdWx0aXBsZV90aW1lX21pbnV0ZXM6IHRydWUsXG4gICAgICAgICAgICAgICAgZGVmYXVsdF9wZXJpb2Q6ICdob3VyJyxcbiAgICAgICAgICAgICAgICBkZWZhdWx0X3ZhbHVlOiBpbnB1dC52YWwoKSB8fCAnKiAqICogKiAqJyxcbiAgICAgICAgICAgICAgICBub19yZXNldF9idXR0b246IGZhbHNlLFxuICAgICAgICAgICAgICAgIGJpbmRfdG86IGlucHV0LFxuICAgICAgICAgICAgICAgIGJpbmRfbWV0aG9kOiB7XG4gICAgICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24oJGVsZW1lbnQsIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZWxlbWVudC52YWwodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB0ZXh0czoge1xuICAgICAgICAgICAgICAgICAgICBlbjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgZW1wdHk6IHRyYW5zbGF0aW9ucy5HUkFWX0NPUkVbJ0NST04uRVZFUlknXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtcHR5X21pbnV0ZXM6IHRyYW5zbGF0aW9ucy5HUkFWX0NPUkVbJ0NST04uRVZFUlknXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtcHR5X3RpbWVfaG91cnM6IHRyYW5zbGF0aW9ucy5HUkFWX0NPUkVbJ0NST04uRVZFUllfSE9VUiddLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW1wdHlfdGltZV9taW51dGVzOiB0cmFuc2xhdGlvbnMuR1JBVl9DT1JFWydDUk9OLkVWRVJZX01JTlVURSddLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW1wdHlfZGF5X29mX3dlZWs6IHRyYW5zbGF0aW9ucy5HUkFWX0NPUkVbJ0NST04uRVZFUllfREFZX09GX1dFRUsnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtcHR5X2RheV9vZl9tb250aDogdHJhbnNsYXRpb25zLkdSQVZfQ09SRVsnQ1JPTi5FVkVSWV9EQVlfT0ZfTU9OVEgnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVtcHR5X21vbnRoOiB0cmFuc2xhdGlvbnMuR1JBVl9DT1JFWydDUk9OLkVWRVJZX01PTlRIJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lX21pbnV0ZTogdHJhbnNsYXRpb25zLkdSQVZfQ09SRVsnTklDRVRJTUUuTUlOVVRFJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lX2hvdXI6IHRyYW5zbGF0aW9ucy5HUkFWX0NPUkVbJ05JQ0VUSU1FLkhPVVInXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVfZGF5OiB0cmFuc2xhdGlvbnMuR1JBVl9DT1JFWydOSUNFVElNRS5EQVknXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVfd2VlazogdHJhbnNsYXRpb25zLkdSQVZfQ09SRVsnTklDRVRJTUUuV0VFSyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZV9tb250aDogdHJhbnNsYXRpb25zLkdSQVZfQ09SRVsnTklDRVRJTUUuTU9OVEgnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVfeWVhcjogdHJhbnNsYXRpb25zLkdSQVZfQ09SRVsnTklDRVRJTUUuWUVBUiddLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dF9wZXJpb2Q6IHRyYW5zbGF0aW9ucy5HUkFWX0NPUkVbJ0NST04uVEVYVF9QRVJJT0QnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHRfbWluczogdHJhbnNsYXRpb25zLkdSQVZfQ09SRVsnQ1JPTi5URVhUX01JTlMnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHRfdGltZTogdHJhbnNsYXRpb25zLkdSQVZfQ09SRVsnQ1JPTi5URVhUX1RJTUUnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHRfZG93OiB0cmFuc2xhdGlvbnMuR1JBVl9DT1JFWydDUk9OLlRFWFRfRE9XJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0X21vbnRoOiB0cmFuc2xhdGlvbnMuR1JBVl9DT1JFWydDUk9OLlRFWFRfTU9OVEgnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHRfZG9tOiB0cmFuc2xhdGlvbnMuR1JBVl9DT1JFWydDUk9OLlRFWFRfRE9NJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjE6IHRyYW5zbGF0aW9ucy5HUkFWX0NPUkVbJ0NST04uRVJST1IxJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjI6IHRyYW5zbGF0aW9ucy5HUkFWX0NPUkVbJ0NST04uRVJST1IyJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjM6IHRyYW5zbGF0aW9ucy5HUkFWX0NPUkVbJ0NST04uRVJST1IzJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjQ6IHRyYW5zbGF0aW9ucy5HUkFWX0NPUkVbJ0NST04uRVJST1I0J10sXG4gICAgICAgICAgICAgICAgICAgICAgICB3ZWVrZGF5czogdHJhbnNsYXRpb25zLkdSQVZfQ09SRVsnREFZU19PRl9USEVfV0VFSyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgbW9udGhzOiB0cmFuc2xhdGlvbnMuR1JBVl9DT1JFWydNT05USFNfT0ZfVEhFX1lFQVInXVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIF9vbkFkZGVkTm9kZXMoZXZlbnQsIHRhcmdldC8qICwgcmVjb3JkLCBpbnN0YW5jZSAqLykge1xuICAgICAgICBsZXQgY3JvbnMgPSAkKHRhcmdldCkuZmluZCgnW2RhdGEtZ3Jhdi1maWVsZD1cImNyb25cIl0nKTtcbiAgICAgICAgaWYgKCFjcm9ucy5sZW5ndGgpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgY3JvbnMuZWFjaCgoaW5kZXgsIGxpc3QpID0+IHtcbiAgICAgICAgICAgIGxpc3QgPSAkKGxpc3QpO1xuICAgICAgICAgICAgaWYgKCF+dGhpcy5pdGVtcy5pbmRleChsaXN0KSkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkQ3JvbihsaXN0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5leHBvcnQgbGV0IEluc3RhbmNlID0gbmV3IENyb25GaWVsZCgpO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/forms/fields/cron.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/forms/fields/datetime.js":
|
|
/*!**************************************!*\
|
|
!*** ./app/forms/fields/datetime.js ***!
|
|
\**************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ DateTimeField),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_bootstrap_datetimepicker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/bootstrap-datetimepicker */ \"./app/utils/bootstrap-datetimepicker.js\");\n/* harmony import */ var _utils_bootstrap_datetimepicker__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_utils_bootstrap_datetimepicker__WEBPACK_IMPORTED_MODULE_2__);\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); return Constructor; }\n\n\n\n\n\nvar DateTimeField = /*#__PURE__*/function () {\n function DateTimeField(options) {\n var _this = this;\n\n _classCallCheck(this, DateTimeField);\n\n this.items = jquery__WEBPACK_IMPORTED_MODULE_0___default()();\n this.options = Object.assign({}, this.defaults, options);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-grav-datetime]').each(function (index, field) {\n return _this.addItem(field);\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('mutation._grav', this._onAddedNodes.bind(this));\n }\n\n _createClass(DateTimeField, [{\n key: \"defaults\",\n get: function get() {\n return {\n showTodayButton: true,\n showClear: true,\n locale: grav_config__WEBPACK_IMPORTED_MODULE_1__.config.language || 'en',\n icons: {\n time: 'fa fa-clock-o',\n date: 'fa fa-calendar-o',\n up: 'fa fa-chevron-up',\n down: 'fa fa-chevron-down',\n previous: 'fa fa-chevron-left',\n next: 'fa fa-chevron-right',\n today: 'fa fa-bullseye',\n clear: 'fa fa-trash-o',\n close: 'fa fa-remove'\n }\n };\n }\n }, {\n key: \"addItem\",\n value: function addItem(list) {\n list = jquery__WEBPACK_IMPORTED_MODULE_0___default()(list);\n this.items = this.items.add(list);\n\n if (list.data('DateTimePicker')) {\n return;\n }\n\n var options = Object.assign({}, this.options, list.data('grav-datetime') || {});\n list.datetimepicker(options).on('dp.show dp.update', this._disableDecades);\n list.siblings('.field-icons').on('click', function () {\n return list.mousedown().focus();\n });\n }\n }, {\n key: \"_onAddedNodes\",\n value: function _onAddedNodes(event, target\n /* , record, instance */\n ) {\n var _this2 = this;\n\n var fields = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target).find('[data-grav-datetime]');\n\n if (!fields.length) {\n return;\n }\n\n fields.each(function (index, field) {\n field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(field);\n\n if (!~_this2.items.index(field)) {\n _this2.addItem(field);\n }\n });\n }\n }, {\n key: \"_disableDecades\",\n value: function _disableDecades() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.datepicker-years .picker-switch').removeAttr('title').on('click', function (e) {\n return e.stopPropagation();\n });\n }\n }]);\n\n return DateTimeField;\n}();\n\n\nvar Instance = new DateTimeField();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL2ZpZWxkcy9kYXRldGltZS5qcz9kMWMyIl0sIm5hbWVzIjpbIkRhdGVUaW1lRmllbGQiLCJvcHRpb25zIiwiaXRlbXMiLCIkIiwiT2JqZWN0IiwiYXNzaWduIiwiZGVmYXVsdHMiLCJlYWNoIiwiaW5kZXgiLCJmaWVsZCIsImFkZEl0ZW0iLCJvbiIsIl9vbkFkZGVkTm9kZXMiLCJiaW5kIiwic2hvd1RvZGF5QnV0dG9uIiwic2hvd0NsZWFyIiwibG9jYWxlIiwiY29uZmlnIiwiaWNvbnMiLCJ0aW1lIiwiZGF0ZSIsInVwIiwiZG93biIsInByZXZpb3VzIiwibmV4dCIsInRvZGF5IiwiY2xlYXIiLCJjbG9zZSIsImxpc3QiLCJhZGQiLCJkYXRhIiwiZGF0ZXRpbWVwaWNrZXIiLCJfZGlzYWJsZURlY2FkZXMiLCJzaWJsaW5ncyIsIm1vdXNlZG93biIsImZvY3VzIiwiZXZlbnQiLCJ0YXJnZXQiLCJmaWVsZHMiLCJmaW5kIiwibGVuZ3RoIiwicmVtb3ZlQXR0ciIsImUiLCJzdG9wUHJvcGFnYXRpb24iLCJJbnN0YW5jZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7O0lBRXFCQSxhO0FBcUJqQix5QkFBWUMsT0FBWixFQUFxQjtBQUFBOztBQUFBOztBQUNqQixTQUFLQyxLQUFMLEdBQWFDLDZDQUFDLEVBQWQ7QUFDQSxTQUFLRixPQUFMLEdBQWVHLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjLEVBQWQsRUFBa0IsS0FBS0MsUUFBdkIsRUFBaUNMLE9BQWpDLENBQWY7QUFFQUUsaURBQUMsQ0FBQyxzQkFBRCxDQUFELENBQTBCSSxJQUExQixDQUErQixVQUFDQyxLQUFELEVBQVFDLEtBQVI7QUFBQSxhQUFrQixLQUFJLENBQUNDLE9BQUwsQ0FBYUQsS0FBYixDQUFsQjtBQUFBLEtBQS9CO0FBQ0FOLGlEQUFDLENBQUMsTUFBRCxDQUFELENBQVVRLEVBQVYsQ0FBYSxnQkFBYixFQUErQixLQUFLQyxhQUFMLENBQW1CQyxJQUFuQixDQUF3QixJQUF4QixDQUEvQjtBQUVIOzs7O1NBMUJELGVBQWU7QUFDWCxhQUFPO0FBQ0hDLHVCQUFlLEVBQUUsSUFEZDtBQUVIQyxpQkFBUyxFQUFFLElBRlI7QUFHSEMsY0FBTSxFQUFFQyx3REFBQSxJQUFtQixJQUh4QjtBQUlIQyxhQUFLLEVBQUU7QUFDSEMsY0FBSSxFQUFFLGVBREg7QUFFSEMsY0FBSSxFQUFFLGtCQUZIO0FBR0hDLFlBQUUsRUFBRSxrQkFIRDtBQUlIQyxjQUFJLEVBQUUsb0JBSkg7QUFLSEMsa0JBQVEsRUFBRSxvQkFMUDtBQU1IQyxjQUFJLEVBQUUscUJBTkg7QUFPSEMsZUFBSyxFQUFFLGdCQVBKO0FBUUhDLGVBQUssRUFBRSxlQVJKO0FBU0hDLGVBQUssRUFBRTtBQVRKO0FBSkosT0FBUDtBQWdCSDs7O1dBV0QsaUJBQVFDLElBQVIsRUFBYztBQUNWQSxVQUFJLEdBQUd6Qiw2Q0FBQyxDQUFDeUIsSUFBRCxDQUFSO0FBQ0EsV0FBSzFCLEtBQUwsR0FBYSxLQUFLQSxLQUFMLENBQVcyQixHQUFYLENBQWVELElBQWYsQ0FBYjs7QUFFQSxVQUFJQSxJQUFJLENBQUNFLElBQUwsQ0FBVSxnQkFBVixDQUFKLEVBQWlDO0FBQUU7QUFBUzs7QUFFNUMsVUFBSTdCLE9BQU8sR0FBR0csTUFBTSxDQUFDQyxNQUFQLENBQWMsRUFBZCxFQUFrQixLQUFLSixPQUF2QixFQUFnQzJCLElBQUksQ0FBQ0UsSUFBTCxDQUFVLGVBQVYsS0FBOEIsRUFBOUQsQ0FBZDtBQUNBRixVQUFJLENBQUNHLGNBQUwsQ0FBb0I5QixPQUFwQixFQUE2QlUsRUFBN0IsQ0FBZ0MsbUJBQWhDLEVBQXFELEtBQUtxQixlQUExRDtBQUNBSixVQUFJLENBQUNLLFFBQUwsQ0FBYyxjQUFkLEVBQThCdEIsRUFBOUIsQ0FBaUMsT0FBakMsRUFBMEM7QUFBQSxlQUFNaUIsSUFBSSxDQUFDTSxTQUFMLEdBQWlCQyxLQUFqQixFQUFOO0FBQUEsT0FBMUM7QUFDSDs7O1dBRUQsdUJBQWNDLEtBQWQsRUFBcUJDO0FBQU07QUFBM0IsTUFBcUQ7QUFBQTs7QUFDakQsVUFBSUMsTUFBTSxHQUFHbkMsNkNBQUMsQ0FBQ2tDLE1BQUQsQ0FBRCxDQUFVRSxJQUFWLENBQWUsc0JBQWYsQ0FBYjs7QUFDQSxVQUFJLENBQUNELE1BQU0sQ0FBQ0UsTUFBWixFQUFvQjtBQUFFO0FBQVM7O0FBRS9CRixZQUFNLENBQUMvQixJQUFQLENBQVksVUFBQ0MsS0FBRCxFQUFRQyxLQUFSLEVBQWtCO0FBQzFCQSxhQUFLLEdBQUdOLDZDQUFDLENBQUNNLEtBQUQsQ0FBVDs7QUFDQSxZQUFJLENBQUMsQ0FBQyxNQUFJLENBQUNQLEtBQUwsQ0FBV00sS0FBWCxDQUFpQkMsS0FBakIsQ0FBTixFQUErQjtBQUMzQixnQkFBSSxDQUFDQyxPQUFMLENBQWFELEtBQWI7QUFDSDtBQUNKLE9BTEQ7QUFNSDs7O1dBRUQsMkJBQWtCO0FBQ2ROLG1EQUFDLENBQUMsa0NBQUQsQ0FBRCxDQUFzQ3NDLFVBQXRDLENBQWlELE9BQWpELEVBQTBEOUIsRUFBMUQsQ0FBNkQsT0FBN0QsRUFBc0UsVUFBQytCLENBQUQ7QUFBQSxlQUFPQSxDQUFDLENBQUNDLGVBQUYsRUFBUDtBQUFBLE9BQXRFO0FBQ0g7Ozs7Ozs7QUFHRSxJQUFJQyxRQUFRLEdBQUcsSUFBSTVDLGFBQUosRUFBZiIsImZpbGUiOiIuL2FwcC9mb3Jtcy9maWVsZHMvZGF0ZXRpbWUuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAnZ3Jhdi1jb25maWcnO1xuaW1wb3J0ICcuLi8uLi91dGlscy9ib290c3RyYXAtZGF0ZXRpbWVwaWNrZXInO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEYXRlVGltZUZpZWxkIHtcblxuICAgIGdldCBkZWZhdWx0cygpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNob3dUb2RheUJ1dHRvbjogdHJ1ZSxcbiAgICAgICAgICAgIHNob3dDbGVhcjogdHJ1ZSxcbiAgICAgICAgICAgIGxvY2FsZTogY29uZmlnLmxhbmd1YWdlIHx8ICdlbicsXG4gICAgICAgICAgICBpY29uczoge1xuICAgICAgICAgICAgICAgIHRpbWU6ICdmYSBmYS1jbG9jay1vJyxcbiAgICAgICAgICAgICAgICBkYXRlOiAnZmEgZmEtY2FsZW5kYXItbycsXG4gICAgICAgICAgICAgICAgdXA6ICdmYSBmYS1jaGV2cm9uLXVwJyxcbiAgICAgICAgICAgICAgICBkb3duOiAnZmEgZmEtY2hldnJvbi1kb3duJyxcbiAgICAgICAgICAgICAgICBwcmV2aW91czogJ2ZhIGZhLWNoZXZyb24tbGVmdCcsXG4gICAgICAgICAgICAgICAgbmV4dDogJ2ZhIGZhLWNoZXZyb24tcmlnaHQnLFxuICAgICAgICAgICAgICAgIHRvZGF5OiAnZmEgZmEtYnVsbHNleWUnLFxuICAgICAgICAgICAgICAgIGNsZWFyOiAnZmEgZmEtdHJhc2gtbycsXG4gICAgICAgICAgICAgICAgY2xvc2U6ICdmYSBmYS1yZW1vdmUnXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICB0aGlzLml0ZW1zID0gJCgpO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmRlZmF1bHRzLCBvcHRpb25zKTtcblxuICAgICAgICAkKCdbZGF0YS1ncmF2LWRhdGV0aW1lXScpLmVhY2goKGluZGV4LCBmaWVsZCkgPT4gdGhpcy5hZGRJdGVtKGZpZWxkKSk7XG4gICAgICAgICQoJ2JvZHknKS5vbignbXV0YXRpb24uX2dyYXYnLCB0aGlzLl9vbkFkZGVkTm9kZXMuYmluZCh0aGlzKSk7XG5cbiAgICB9XG5cbiAgICBhZGRJdGVtKGxpc3QpIHtcbiAgICAgICAgbGlzdCA9ICQobGlzdCk7XG4gICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLml0ZW1zLmFkZChsaXN0KTtcblxuICAgICAgICBpZiAobGlzdC5kYXRhKCdEYXRlVGltZVBpY2tlcicpKSB7IHJldHVybjsgfVxuXG4gICAgICAgIGxldCBvcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5vcHRpb25zLCBsaXN0LmRhdGEoJ2dyYXYtZGF0ZXRpbWUnKSB8fCB7fSk7XG4gICAgICAgIGxpc3QuZGF0ZXRpbWVwaWNrZXIob3B0aW9ucykub24oJ2RwLnNob3cgZHAudXBkYXRlJywgdGhpcy5fZGlzYWJsZURlY2FkZXMpO1xuICAgICAgICBsaXN0LnNpYmxpbmdzKCcuZmllbGQtaWNvbnMnKS5vbignY2xpY2snLCAoKSA9PiBsaXN0Lm1vdXNlZG93bigpLmZvY3VzKCkpO1xuICAgIH1cblxuICAgIF9vbkFkZGVkTm9kZXMoZXZlbnQsIHRhcmdldC8qICwgcmVjb3JkLCBpbnN0YW5jZSAqLykge1xuICAgICAgICBsZXQgZmllbGRzID0gJCh0YXJnZXQpLmZpbmQoJ1tkYXRhLWdyYXYtZGF0ZXRpbWVdJyk7XG4gICAgICAgIGlmICghZmllbGRzLmxlbmd0aCkgeyByZXR1cm47IH1cblxuICAgICAgICBmaWVsZHMuZWFjaCgoaW5kZXgsIGZpZWxkKSA9PiB7XG4gICAgICAgICAgICBmaWVsZCA9ICQoZmllbGQpO1xuICAgICAgICAgICAgaWYgKCF+dGhpcy5pdGVtcy5pbmRleChmaWVsZCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZEl0ZW0oZmllbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBfZGlzYWJsZURlY2FkZXMoKSB7XG4gICAgICAgICQoJy5kYXRlcGlja2VyLXllYXJzIC5waWNrZXItc3dpdGNoJykucmVtb3ZlQXR0cigndGl0bGUnKS5vbignY2xpY2snLCAoZSkgPT4gZS5zdG9wUHJvcGFnYXRpb24oKSk7XG4gICAgfVxufVxuXG5leHBvcnQgbGV0IEluc3RhbmNlID0gbmV3IERhdGVUaW1lRmllbGQoKTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/forms/fields/datetime.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/forms/fields/editor.js":
|
|
/*!************************************!*\
|
|
!*** ./app/forms/fields/editor.js ***!
|
|
\************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ EditorField),\n/* harmony export */ \"Toolbar\": () => (/* binding */ Toolbar),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _editor_buttons__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./editor/buttons */ \"./app/forms/fields/editor/buttons.js\");\n/* harmony import */ var codemirror__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! codemirror */ \"./node_modules/codemirror/lib/codemirror.js\");\n/* harmony import */ var codemirror__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(codemirror__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var watchjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! watchjs */ \"./node_modules/watchjs/src/watch.js\");\n/* harmony import */ var watchjs__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(watchjs__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var js_yaml__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! js-yaml */ \"./node_modules/js-yaml/dist/js-yaml.mjs\");\n/* harmony import */ var codemirror_mode_css_css__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! codemirror/mode/css/css */ \"./node_modules/codemirror/mode/css/css.js\");\n/* harmony import */ var codemirror_mode_css_css__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_css_css__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var codemirror_mode_gfm_gfm__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! codemirror/mode/gfm/gfm */ \"./node_modules/codemirror/mode/gfm/gfm.js\");\n/* harmony import */ var codemirror_mode_gfm_gfm__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_gfm_gfm__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var codemirror_mode_htmlmixed_htmlmixed__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! codemirror/mode/htmlmixed/htmlmixed */ \"./node_modules/codemirror/mode/htmlmixed/htmlmixed.js\");\n/* harmony import */ var codemirror_mode_htmlmixed_htmlmixed__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_htmlmixed_htmlmixed__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var codemirror_mode_javascript_javascript__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! codemirror/mode/javascript/javascript */ \"./node_modules/codemirror/mode/javascript/javascript.js\");\n/* harmony import */ var codemirror_mode_javascript_javascript__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_javascript_javascript__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var codemirror_mode_markdown_markdown__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! codemirror/mode/markdown/markdown */ \"./node_modules/codemirror/mode/markdown/markdown.js\");\n/* harmony import */ var codemirror_mode_markdown_markdown__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_markdown_markdown__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var codemirror_mode_php_php__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! codemirror/mode/php/php */ \"./node_modules/codemirror/mode/php/php.js\");\n/* harmony import */ var codemirror_mode_php_php__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_php_php__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var codemirror_mode_sass_sass__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! codemirror/mode/sass/sass */ \"./node_modules/codemirror/mode/sass/sass.js\");\n/* harmony import */ var codemirror_mode_sass_sass__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_sass_sass__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var codemirror_mode_twig_twig__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! codemirror/mode/twig/twig */ \"./node_modules/codemirror/mode/twig/twig.js\");\n/* harmony import */ var codemirror_mode_twig_twig__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_twig_twig__WEBPACK_IMPORTED_MODULE_12__);\n/* harmony import */ var codemirror_mode_xml_xml__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! codemirror/mode/xml/xml */ \"./node_modules/codemirror/mode/xml/xml.js\");\n/* harmony import */ var codemirror_mode_xml_xml__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_xml_xml__WEBPACK_IMPORTED_MODULE_13__);\n/* harmony import */ var codemirror_mode_yaml_yaml__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! codemirror/mode/yaml/yaml */ \"./node_modules/codemirror/mode/yaml/yaml.js\");\n/* harmony import */ var codemirror_mode_yaml_yaml__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(codemirror_mode_yaml_yaml__WEBPACK_IMPORTED_MODULE_14__);\n/* harmony import */ var codemirror_addon_edit_continuelist__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! codemirror/addon/edit/continuelist */ \"./node_modules/codemirror/addon/edit/continuelist.js\");\n/* harmony import */ var codemirror_addon_edit_continuelist__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_edit_continuelist__WEBPACK_IMPORTED_MODULE_15__);\n/* harmony import */ var codemirror_addon_mode_overlay__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! codemirror/addon/mode/overlay */ \"./node_modules/codemirror/addon/mode/overlay.js\");\n/* harmony import */ var codemirror_addon_mode_overlay__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_mode_overlay__WEBPACK_IMPORTED_MODULE_16__);\n/* harmony import */ var codemirror_addon_selection_active_line__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! codemirror/addon/selection/active-line */ \"./node_modules/codemirror/addon/selection/active-line.js\");\n/* harmony import */ var codemirror_addon_selection_active_line__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_selection_active_line__WEBPACK_IMPORTED_MODULE_17__);\n/* harmony import */ var codemirror_addon_lint_lint__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! codemirror/addon/lint/lint */ \"./node_modules/codemirror/addon/lint/lint.js\");\n/* harmony import */ var codemirror_addon_lint_lint__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_lint_lint__WEBPACK_IMPORTED_MODULE_18__);\n/* harmony import */ var codemirror_addon_lint_lint_css__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! codemirror/addon/lint/lint.css */ \"./node_modules/codemirror/addon/lint/lint.css\");\n/* harmony import */ var codemirror_addon_lint_css_lint__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! codemirror/addon/lint/css-lint */ \"./node_modules/codemirror/addon/lint/css-lint.js\");\n/* harmony import */ var codemirror_addon_lint_css_lint__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_lint_css_lint__WEBPACK_IMPORTED_MODULE_20__);\n/* harmony import */ var codemirror_addon_lint_javascript_lint__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! codemirror/addon/lint/javascript-lint */ \"./node_modules/codemirror/addon/lint/javascript-lint.js\");\n/* harmony import */ var codemirror_addon_lint_javascript_lint__WEBPACK_IMPORTED_MODULE_21___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_lint_javascript_lint__WEBPACK_IMPORTED_MODULE_21__);\n/* harmony import */ var codemirror_addon_lint_json_lint__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! codemirror/addon/lint/json-lint */ \"./node_modules/codemirror/addon/lint/json-lint.js\");\n/* harmony import */ var codemirror_addon_lint_json_lint__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_lint_json_lint__WEBPACK_IMPORTED_MODULE_22__);\n/* harmony import */ var codemirror_addon_lint_yaml_lint__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! codemirror/addon/lint/yaml-lint */ \"./node_modules/codemirror/addon/lint/yaml-lint.js\");\n/* harmony import */ var codemirror_addon_lint_yaml_lint__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(codemirror_addon_lint_yaml_lint__WEBPACK_IMPORTED_MODULE_23__);\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); return Constructor; }\n\n\n\n\n\n\n__webpack_require__.g.jsyaml = js_yaml__WEBPACK_IMPORTED_MODULE_4__.default; // Modes\n\n\n\n\n\n\n\n\n\n\n // Add-ons\n\n\n\n\n\n\n\n\n\n\nvar IS_MOUSEDOWN = false;\nvar ThemesMap = ['paper'];\nvar Defaults = {\n codemirror: {\n mode: 'htmlmixed',\n theme: 'paper',\n lineWrapping: true,\n dragDrop: true,\n autoCloseTags: true,\n matchTags: true,\n autoCloseBrackets: true,\n matchBrackets: true,\n indentUnit: 4,\n indentWithTabs: false,\n tabSize: 4,\n hintOptions: {\n completionSingle: false\n },\n extraKeys: {\n 'Enter': 'newlineAndIndentContinueMarkdownList'\n }\n }\n};\n\nvar EditorField = /*#__PURE__*/function () {\n function EditorField(options) {\n var _this = this;\n\n _classCallCheck(this, EditorField);\n\n var body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body');\n this.editors = jquery__WEBPACK_IMPORTED_MODULE_0___default()();\n this.options = Object.assign({}, Defaults, options);\n this.buttons = _editor_buttons__WEBPACK_IMPORTED_MODULE_1__.default;\n this.buttonStrategies = _editor_buttons__WEBPACK_IMPORTED_MODULE_1__.strategies;\n (0,watchjs__WEBPACK_IMPORTED_MODULE_3__.watch)(_editor_buttons__WEBPACK_IMPORTED_MODULE_1__.default, function ()\n /* key, modifier, prev, next */\n {\n _this.editors.each(function (index, editor) {\n return jquery__WEBPACK_IMPORTED_MODULE_0___default()(editor).data('toolbar').renderButtons();\n });\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-grav-editor]').each(function (index, editor) {\n return _this.addEditor(editor);\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(function () {\n body.trigger('grav-editor-ready');\n });\n body.on('mutation._grav', this._onAddedNodes.bind(this));\n body.on('mouseup._grav', function () {\n if (!IS_MOUSEDOWN) {\n return true;\n }\n\n body.unbind('mousemove._grav');\n IS_MOUSEDOWN = false;\n });\n body.on('mousedown._grav', '.grav-editor-resizer', function (event) {\n event && event.preventDefault();\n IS_MOUSEDOWN = true;\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var container = target.siblings('.grav-editor-content');\n var editor = container.find('.CodeMirror');\n var codemirror = container.find('textarea').data('codemirror');\n body.on('mousemove._grav', function (event) {\n editor.css('height', Math.max(100, event.pageY - container.offset().top));\n codemirror.refresh();\n });\n });\n }\n\n _createClass(EditorField, [{\n key: \"addButton\",\n value: function addButton(button, options) {\n if (options && (options.before || options.after)) {\n var index = this.buttons.navigation.findIndex(function (obj) {\n var key = Object.keys(obj).shift();\n return obj[key].identifier === (options.before || options.after);\n });\n\n if (!~index) {\n options = 'end';\n } else {\n this.buttons.navigation.splice(options.before ? index : index + 1, 0, button);\n }\n }\n\n if (options === 'start') {\n this.buttons.navigation.splice(0, 0, button);\n }\n\n if (!options || options === 'end') {\n this.buttons.navigation.push(button);\n }\n }\n }, {\n key: \"addEditor\",\n value: function addEditor(textarea) {\n textarea = jquery__WEBPACK_IMPORTED_MODULE_0___default()(textarea);\n var options = Object.assign({}, this.options.codemirror, textarea.data('grav-editor').codemirror);\n var theme = options.theme || 'paper';\n this.editors = this.editors.add(textarea);\n\n if (theme && !~ThemesMap.indexOf(theme)) {\n ThemesMap.push(theme); // let themeCSS = `https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.12.0/theme/${theme}.min.css`;\n // $('head').append($('<link rel=\"stylesheet\" type=\"text/css\" />').attr('href', themeCSS));\n }\n\n if (options.mode === 'yaml') {\n Object.assign(options.extraKeys, {\n Tab: function Tab(cm) {\n cm.replaceSelection(' ', 'end');\n }\n });\n }\n\n var editor = codemirror__WEBPACK_IMPORTED_MODULE_2___default().fromTextArea(textarea.get(0), options);\n textarea.data('codemirror', editor);\n textarea.data('toolbar', new Toolbar(textarea));\n textarea.addClass('code-mirrored');\n\n if (options.toolbar === false) {\n textarea.data('toolbar').ui.navigation.addClass('grav-editor-hide-toolbar');\n }\n\n editor.on('change', function () {\n return editor.save();\n });\n }\n }, {\n key: \"_onAddedNodes\",\n value: function _onAddedNodes(event, target\n /* , record, instance */\n ) {\n var _this2 = this;\n\n var editors = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target).find('[data-grav-editor]');\n\n if (!editors.length) {\n return;\n }\n\n editors.each(function (index, editor) {\n editor = jquery__WEBPACK_IMPORTED_MODULE_0___default()(editor);\n\n if (!~_this2.editors.index(editor)) {\n _this2.addEditor(editor);\n }\n });\n }\n }]);\n\n return EditorField;\n}();\n\n\nvar Toolbar = /*#__PURE__*/function () {\n function Toolbar(editor) {\n _classCallCheck(this, Toolbar);\n\n this.editor = jquery__WEBPACK_IMPORTED_MODULE_0___default()(editor);\n this.codemirror = this.editor.data('codemirror');\n this.buttons = _editor_buttons__WEBPACK_IMPORTED_MODULE_1__.default.navigation;\n this.ui = {\n navigation: jquery__WEBPACK_IMPORTED_MODULE_0___default()(Toolbar.templates().navigation)\n };\n this.editor.parent('.grav-editor-content').before(this.ui.navigation).after(this.ui.states);\n this.renderButtons();\n }\n\n _createClass(Toolbar, [{\n key: \"renderButtons\",\n value: function renderButtons() {\n var _this3 = this;\n\n var map = {\n 'actions': 'navigation',\n 'modes': 'states'\n };\n ['actions', 'modes'].forEach(function (type) {\n _this3.ui.navigation.find(\".grav-editor-\".concat(type)).empty().append('<ul />');\n\n _editor_buttons__WEBPACK_IMPORTED_MODULE_1__.default[map[type]].forEach(function (button) {\n return _this3.renderButton(button, type);\n });\n });\n }\n }, {\n key: \"renderButton\",\n value: function renderButton(button, type) {\n var _this4 = this;\n\n var location = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n Object.keys(button).forEach(function (key) {\n var obj = button[key];\n\n if (!obj.modes) {\n obj.modes = [];\n }\n\n if (!~_this4.codemirror.options.ignore.indexOf(key) && (!obj.modes.length || obj.modes.indexOf(_this4.codemirror.options.mode) > -1)) {\n var hint = obj.title ? \"data-hint=\\\"\".concat(obj.title, \"\\\"\") : '';\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"<li class=\\\"grav-editor-button-\".concat(key, \"\\\"><a class=\\\"hint--top\\\" \").concat(hint, \">\").concat(obj.label, \"</a></li>\"));\n\n (location || _this4.ui.navigation.find(\".grav-editor-\".concat(type, \" ul:not(.dropdown-menu)\"))).append(element);\n\n if (obj.shortcut) {\n _this4.addShortcut(obj.identifier, obj.shortcut, element);\n }\n\n obj.action && obj.action.call(obj.action, {\n codemirror: _this4.codemirror,\n button: element,\n textarea: _this4.editor,\n ui: _this4.ui\n });\n\n if (obj.children) {\n var childrenContainer = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<ul class=\"dropdown-menu\" />');\n element.addClass('button-group').find('a').wrap('<div class=\"dropdown-toggle\" data-toggle=\"dropdown\"></div>');\n element.find('a').append(' <i class=\"fa fa-caret-down\"></i>');\n element.append(childrenContainer);\n obj.children.forEach(function (child) {\n return _this4.renderButton(child, type, childrenContainer);\n });\n }\n }\n });\n }\n }, {\n key: \"addShortcut\",\n value: function addShortcut(identifier, shortcut, element) {\n var _this5 = this;\n\n var map = {};\n\n if (!Array.isArray(shortcut)) {\n shortcut = [shortcut];\n }\n\n shortcut.forEach(function (key) {\n map[key] = function () {\n element.trigger(\"click.editor.\".concat(identifier), [_this5.codemirror]);\n };\n });\n this.codemirror.addKeyMap(map);\n }\n }], [{\n key: \"templates\",\n value: function templates() {\n return {\n navigation: \"\\n <div class=\\\"grav-editor-toolbar\\\">\\n <div class=\\\"grav-editor-actions\\\"></div>\\n <div class=\\\"grav-editor-modes\\\"></div>\\n </div>\\n \"\n };\n }\n }]);\n\n return Toolbar;\n}();\nvar Instance = new EditorField();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL2ZpZWxkcy9lZGl0b3IuanM/MzJkMyJdLCJuYW1lcyI6WyJnbG9iYWwiLCJqc3lhbWwiLCJJU19NT1VTRURPV04iLCJUaGVtZXNNYXAiLCJEZWZhdWx0cyIsImNvZGVtaXJyb3IiLCJtb2RlIiwidGhlbWUiLCJsaW5lV3JhcHBpbmciLCJkcmFnRHJvcCIsImF1dG9DbG9zZVRhZ3MiLCJtYXRjaFRhZ3MiLCJhdXRvQ2xvc2VCcmFja2V0cyIsIm1hdGNoQnJhY2tldHMiLCJpbmRlbnRVbml0IiwiaW5kZW50V2l0aFRhYnMiLCJ0YWJTaXplIiwiaGludE9wdGlvbnMiLCJjb21wbGV0aW9uU2luZ2xlIiwiZXh0cmFLZXlzIiwiRWRpdG9yRmllbGQiLCJvcHRpb25zIiwiYm9keSIsIiQiLCJlZGl0b3JzIiwiT2JqZWN0IiwiYXNzaWduIiwiYnV0dG9ucyIsIkJ1dHRvbnMiLCJidXR0b25TdHJhdGVnaWVzIiwid2F0Y2giLCJlYWNoIiwiaW5kZXgiLCJlZGl0b3IiLCJkYXRhIiwicmVuZGVyQnV0dG9ucyIsImFkZEVkaXRvciIsInRyaWdnZXIiLCJvbiIsIl9vbkFkZGVkTm9kZXMiLCJiaW5kIiwidW5iaW5kIiwiZXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsInRhcmdldCIsImN1cnJlbnRUYXJnZXQiLCJjb250YWluZXIiLCJzaWJsaW5ncyIsImZpbmQiLCJjc3MiLCJNYXRoIiwibWF4IiwicGFnZVkiLCJvZmZzZXQiLCJ0b3AiLCJyZWZyZXNoIiwiYnV0dG9uIiwiYmVmb3JlIiwiYWZ0ZXIiLCJuYXZpZ2F0aW9uIiwiZmluZEluZGV4Iiwib2JqIiwia2V5Iiwia2V5cyIsInNoaWZ0IiwiaWRlbnRpZmllciIsInNwbGljZSIsInB1c2giLCJ0ZXh0YXJlYSIsImFkZCIsImluZGV4T2YiLCJUYWIiLCJjbSIsInJlcGxhY2VTZWxlY3Rpb24iLCJnZXQiLCJUb29sYmFyIiwiYWRkQ2xhc3MiLCJ0b29sYmFyIiwidWkiLCJzYXZlIiwibGVuZ3RoIiwidGVtcGxhdGVzIiwicGFyZW50Iiwic3RhdGVzIiwibWFwIiwiZm9yRWFjaCIsInR5cGUiLCJlbXB0eSIsImFwcGVuZCIsInJlbmRlckJ1dHRvbiIsImxvY2F0aW9uIiwibW9kZXMiLCJpZ25vcmUiLCJoaW50IiwidGl0bGUiLCJlbGVtZW50IiwibGFiZWwiLCJzaG9ydGN1dCIsImFkZFNob3J0Y3V0IiwiYWN0aW9uIiwiY2FsbCIsImNoaWxkcmVuIiwiY2hpbGRyZW5Db250YWluZXIiLCJ3cmFwIiwiY2hpbGQiLCJBcnJheSIsImlzQXJyYXkiLCJhZGRLZXlNYXAiLCJJbnN0YW5jZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBQSxxQkFBTSxDQUFDQyxNQUFQLEdBQWdCQSw0Q0FBaEIsQyxDQUVBOztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtDQUdBOztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLElBQUlDLFlBQVksR0FBRyxLQUFuQjtBQUNBLElBQU1DLFNBQVMsR0FBRyxDQUFDLE9BQUQsQ0FBbEI7QUFDQSxJQUFNQyxRQUFRLEdBQUc7QUFDYkMsWUFBVSxFQUFFO0FBQ1JDLFFBQUksRUFBRSxXQURFO0FBRVJDLFNBQUssRUFBRSxPQUZDO0FBR1JDLGdCQUFZLEVBQUUsSUFITjtBQUlSQyxZQUFRLEVBQUUsSUFKRjtBQUtSQyxpQkFBYSxFQUFFLElBTFA7QUFNUkMsYUFBUyxFQUFFLElBTkg7QUFPUkMscUJBQWlCLEVBQUUsSUFQWDtBQVFSQyxpQkFBYSxFQUFFLElBUlA7QUFTUkMsY0FBVSxFQUFFLENBVEo7QUFVUkMsa0JBQWMsRUFBRSxLQVZSO0FBV1JDLFdBQU8sRUFBRSxDQVhEO0FBWVJDLGVBQVcsRUFBRTtBQUFFQyxzQkFBZ0IsRUFBRTtBQUFw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VyxNQUFJLENBQUNmLFlBQUwsQ0FBa0JlLEtBQWxCLEVBQXlCbEIsSUFBekIsRUFBK0JnQixpQkFBL0IsQ0FBWDtBQUFBLGFBQXJCO0FBQ0g7QUFDSjtBQUNKLE9BM0JEO0FBNEJIO0FBakVMO0FBQUE7QUFBQSxXQW1FSSxxQkFBWXJDLFVBQVosRUFBd0JnQyxRQUF4QixFQUFrQ0YsT0FBbEMsRUFBMkM7QUFBQTs7QUFDdkMsVUFBSVgsR0FBRyxHQUFHLEVBQVY7O0FBQ0EsVUFBSSxDQUFDcUIsS0FBSyxDQUFDQyxPQUFOLENBQWNULFFBQWQsQ0FBTCxFQUE4QjtBQUMxQkEsZ0JBQVEsR0FBRyxDQUFDQSxRQUFELENBQVg7QUFDSDs7QUFFREEsY0FBUSxDQUFDWixPQUFULENBQWlCLFVBQUN2QixHQUFELEVBQVM7QUFDdEJzQixXQUFHLENBQUN0QixHQUFELENBQUgsR0FBVyxZQUFNO0FBQ2JpQyxpQkFBTyxDQUFDMUQsT0FBUix3QkFBZ0M0QixVQUFoQyxHQUE4QyxDQUFDLE1BQUksQ0FBQzVELFVBQU4sQ0FBOUM7QUFDSCxTQUZEO0FBR0gsT0FKRDtBQU1BLFdBQUtBLFVBQUwsQ0FBZ0JzRyxTQUFoQixDQUEwQnZCLEdBQTFCO0FBQ0g7QUFoRkw7QUFBQTtBQUFBLFdBQ0kscUJBQW1CO0FBQ2YsYUFBTztBQUNIekIsa0JBQVU7QUFEUCxPQUFQO0FBUUg7QUFWTDs7QUFBQTtBQUFBO0FBbUZPLElBQUlpRCxRQUFRLEdBQUcsSUFBSXhGLFdBQUosRUFBZiIsImZpbGUiOiIuL2FwcC9mb3Jtcy9maWVsZHMvZWRpdG9yLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCBCdXR0b25zLCB7IHN0cmF0ZWdpZXMgYXMgYnV0dG9uU3RyYXRlZ2llcyB9IGZyb20gJy4vZWRpdG9yL2J1dHRvbnMnO1xuaW1wb3J0IGNvZGVtaXJyb3IgZnJvbSAnY29kZW1pcnJvcic7XG5pbXBvcnQgeyB3YXRjaCB9IGZyb20gJ3dhdGNoanMnO1xuaW1wb3J0IGpzeWFtbCBmcm9tICdqcy15YW1sJztcblxuZ2xvYmFsLmpzeWFtbCA9IGpzeWFtbDtcblxuLy8gTW9kZXNcbmltcG9ydCAnY29kZW1pcnJvci9tb2RlL2Nzcy9jc3MnO1xuaW1wb3J0ICdjb2RlbWlycm9yL21vZGUvZ2ZtL2dmbSc7XG5pbXBvcnQgJ2NvZGVtaXJyb3IvbW9kZS9odG1sbWl4ZWQvaHRtbG1peGVkJztcbmltcG9ydCAnY29kZW1pcnJvci9tb2RlL2phdmFzY3JpcHQvamF2YXNjcmlwdCc7XG5pbXBvcnQgJ2NvZGVtaXJyb3IvbW9kZS9tYXJrZG93bi9tYXJrZG93bic7XG5pbXBvcnQgJ2NvZGVtaXJyb3IvbW9kZS9waHAvcGhwJztcbmltcG9ydCAnY29kZW1pcnJvci9tb2RlL3Nhc3Mvc2Fzcyc7XG5pbXBvcnQgJ2NvZGVtaXJyb3IvbW9kZS90d2lnL3R3aWcnO1xuaW1wb3J0ICdjb2RlbWlycm9yL21vZGUveG1sL3htbCc7XG5pbXBvcnQgJ2NvZGVtaXJyb3IvbW9kZS95YW1sL3lhbWwnO1xuXG4vLyBBZGQtb25zXG5pbXBvcnQgJ2NvZGVtaXJyb3IvYWRkb24vZWRpdC9jb250aW51ZWxpc3QnO1xuaW1wb3J0ICdjb2RlbWlycm9yL2FkZG9uL21vZGUvb3ZlcmxheSc7XG5pbXBvcnQgJ2NvZGVtaXJyb3IvYWRkb24vc2VsZWN0aW9uL2FjdGl2ZS1saW5lJztcbmltcG9ydCAnY29kZW1pcnJvci9hZGRvbi9saW50L2xpbnQnO1xuaW1wb3J0ICdjb2RlbWlycm9yL2FkZG9uL2xpbnQvbGludC5jc3MnO1xuaW1wb3J0ICdjb2RlbWlycm9yL2FkZG9uL2xpbnQvY3NzLWxpbnQnO1xuaW1wb3J0ICdjb2RlbWlycm9yL2FkZG9uL2xpbnQvamF2YXNjcmlwdC1saW50JztcbmltcG9ydCAnY29kZW1pcnJvci9hZGRvbi9saW50L2pzb24tbGludCc7XG5pbXBvcnQgJ2NvZGVtaXJyb3IvYWRkb24vbGludC95YW1sLWxpbnQnO1xuXG5sZXQgSVNfTU9VU0VET1dOID0gZmFsc2U7XG5jb25zdCBUaGVtZXNNYXAgPSBbJ3BhcGVyJ107XG5jb25zdCBEZWZhdWx0cyA9IHtcbiAgICBjb2RlbWlycm9yOiB7XG4gICAgICAgIG1vZGU6ICdodG1sbWl4ZWQnLFxuICAgICAgICB0aGVtZTogJ3BhcGVyJyxcbiAgICAgICAgbGluZVdyYXBwaW5nOiB0cnVlLFxuICAgICAgICBkcmFnRHJvcDogdHJ1ZSxcbiAgICAgICAgYXV0b0Nsb3NlVGFnczogdHJ1ZSxcbiAgICAgICAgbWF0Y2hUYWdzOiB0cnVlLFxuICAgICAgICBhdXRvQ2xvc2VCcmFja2V0czogdHJ1ZSxcbiAgICAgICAgbWF0Y2hCcmFja2V0czogdHJ1ZSxcbiAgICAgICAgaW5kZW50VW5pdDogNCxcbiAgICAgICAgaW5kZW50V2l0aFRhYnM6IGZhbHNlLFxuICAgICAgICB0YWJTaXplOiA0LFxuICAgICAgICBoaW50T3B0aW9uczogeyBjb21wbGV0aW9uU2luZ2xlOiBmYWxzZSB9LFxuICAgICAgICBleHRyYUtleXM6IHsgJ0VudGVyJzogJ25ld2xpbmVBbmRJbmRlbnRDb250aW51ZU1hcmtkb3duTGlzdCcgfVxuICAgIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVkaXRvckZpZWxkIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIGxldCBib2R5ID0gJCgnYm9keScpO1xuICAgICAgICB0aGlzLmVkaXRvcnMgPSAkKCk7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIERlZmF1bHRzLCBvcHRpb25zKTtcbiAgICAgICAgdGhpcy5idXR0b25zID0gQnV0dG9ucztcbiAgICAgICAgdGhpcy5idXR0b25TdHJhdGVnaWVzID0gYnV0dG9uU3RyYXRlZ2llcztcblxuICAgICAgICB3YXRjaChCdXR0b25zLCAoLyoga2V5LCBtb2RpZmllciwgcHJldiwgbmV4dCAqLykgPT4ge1xuICAgICAgICAgICAgdGhpcy5lZGl0b3JzLmVhY2goKGluZGV4LCBlZGl0b3IpID0+ICQoZWRpdG9yKS5kYXRhKCd0b29sYmFyJykucmVuZGVyQnV0dG9ucygpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgJCgnW2RhdGEtZ3Jhdi1lZGl0b3JdJykuZWFjaCgoaW5kZXgsIGVkaXRvcikgPT4gdGhpcy5hZGRFZGl0b3IoZWRpdG9yKSk7XG5cbiAgICAgICAgJCgoKSA9PiB7IGJvZHkudHJpZ2dlcignZ3Jhdi1lZGl0b3ItcmVhZHknKTsgfSk7XG4gICAgICAgIGJvZHkub24oJ211dGF0aW9uLl9ncmF2JywgdGhpcy5fb25BZGRlZE5vZGVzLmJpbmQodGhpcykpO1xuXG4gICAgICAgIGJvZHkub24oJ21vdXNldXAuX2dyYXYnLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIUlTX01PVVNFRE9XTikgeyByZXR1cm4gdHJ1ZTsgfVxuICAgICAgICAgICAgYm9keS51bmJpbmQoJ21vdXNlbW92ZS5fZ3JhdicpO1xuICAgICAgICAgICAgSVNfTU9VU0VET1dOID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgICAgICBib2R5Lm9uKCdtb3VzZWRvd24uX2dyYXYnLCAnLmdyYXYtZWRpdG9yLXJlc2l6ZXInLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGV2ZW50ICYmIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBJU19NT1VTRURPV04gPSB0cnVlO1xuXG4gICAgICAgICAgICBsZXQgdGFyZ2V0ID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgICAgICAgICAgIGxldCBjb250YWluZXIgPSB0YXJnZXQuc2libGluZ3MoJy5ncmF2LWVkaXRvci1jb250ZW50Jyk7XG4gICAgICAgICAgICBsZXQgZWRpdG9yID0gY29udGFpbmVyLmZpbmQoJy5Db2RlTWlycm9yJyk7XG4gICAgICAgICAgICBsZXQgY29kZW1pcnJvciA9IGNvbnRhaW5lci5maW5kKCd0ZXh0YXJlYScpLmRhdGEoJ2NvZGVtaXJyb3InKTtcblxuICAgICAgICAgICAgYm9keS5vbignbW91c2Vtb3ZlLl9ncmF2JywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgZWRpdG9yLmNzcygnaGVpZ2h0JywgTWF0aC5tYXgoMTAwLCBldmVudC5wYWdlWSAtIGNvbnRhaW5lci5vZmZzZXQoKS50b3ApKTtcbiAgICAgICAgICAgICAgICBjb2RlbWlycm9yLnJlZnJlc2goKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhZGRCdXR0b24oYnV0dG9uLCBvcHRpb25zKSB7XG4gICAgICAgIGlmIChvcHRpb25zICYmIChvcHRpb25zLmJlZm9yZSB8fCBvcHRpb25zLmFmdGVyKSkge1xuICAgICAgICAgICAgbGV0IGluZGV4ID0gdGhpcy5idXR0b25zLm5hdmlnYXRpb24uZmluZEluZGV4KChvYmopID0+IHtcbiAgICAgICAgICAgICAgICBsZXQga2V5ID0gT2JqZWN0LmtleXMob2JqKS5zaGlmdCgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBvYmpba2V5XS5pZGVudGlmaWVyID09PSAob3B0aW9ucy5iZWZvcmUgfHwgb3B0aW9ucy5hZnRlcik7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKCF+aW5kZXgpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zID0gJ2VuZCc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuYnV0dG9ucy5uYXZpZ2F0aW9uLnNwbGljZShvcHRpb25zLmJlZm9yZSA/IGluZGV4IDogaW5kZXggKyAxLCAwLCBidXR0b24pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucyA9PT0gJ3N0YXJ0JykgeyB0aGlzLmJ1dHRvbnMubmF2aWdhdGlvbi5zcGxpY2UoMCwgMCwgYnV0dG9uKTsgfVxuICAgICAgICBpZiAoIW9wdGlvbnMgfHwgb3B0aW9ucyA9PT0gJ2VuZCcpIHsgdGhpcy5idXR0b25zLm5hdmlnYXRpb24ucHVzaChidXR0b24pOyB9XG4gICAgfVxuXG4gICAgYWRkRWRpdG9yKHRleHRhcmVhKSB7XG4gICAgICAgIHRleHRhcmVhID0gJCh0ZXh0YXJlYSk7XG4gICAgICAgIGxldCBvcHRpb25zID0gT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgdGhpcy5vcHRpb25zLmNvZGVtaXJyb3IsXG4gICAgICAgICAgICB0ZXh0YXJlYS5kYXRhKCdncmF2LWVkaXRvcicpLmNvZGVtaXJyb3JcbiAgICAgICAgKTtcbiAgICAgICAgbGV0IHRoZW1lID0gb3B0aW9ucy50aGVtZSB8fCAncGFwZXInO1xuXG4gICAgICAgIHRoaXMuZWRpdG9ycyA9IHRoaXMuZWRpdG9ycy5hZGQodGV4dGFyZWEpO1xuICAgICAgICBpZiAodGhlbWUgJiYgIX5UaGVtZXNNYXAuaW5kZXhPZih0aGVtZSkpIHtcbiAgICAgICAgICAgIFRoZW1lc01hcC5wdXNoKHRoZW1lKTtcbiAgICAgICAgICAgIC8vIGxldCB0aGVtZUNTUyA9IGBodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9jb2RlbWlycm9yLzUuMTIuMC90aGVtZS8ke3RoZW1lfS5taW4uY3NzYDtcbiAgICAgICAgICAgIC8vICQoJ2hlYWQnKS5hcHBlbmQoJCgnPGxpbmsgcmVsPVwic3R5bGVzaGVldFwiIHR5cGU9XCJ0ZXh0L2Nzc1wiIC8+JykuYXR0cignaHJlZicsIHRoZW1lQ1NTKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucy5tb2RlID09PSAneWFtbCcpIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ob3B0aW9ucy5leHRyYUtleXMsIHsgVGFiOiBmdW5jdGlvbihjbSkgeyBjbS5yZXBsYWNlU2VsZWN0aW9uKCcgICAgJywgJ2VuZCcpOyB9fSk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgZWRpdG9yID0gY29kZW1pcnJvci5mcm9tVGV4dEFyZWEodGV4dGFyZWEuZ2V0KDApLCBvcHRpb25zKTtcbiAgICAgICAgdGV4dGFyZWEuZGF0YSgnY29kZW1pcnJvcicsIGVkaXRvcik7XG4gICAgICAgIHRleHRhcmVhLmRhdGEoJ3Rvb2xiYXInLCBuZXcgVG9vbGJhcih0ZXh0YXJlYSkpO1xuICAgICAgICB0ZXh0YXJlYS5hZGRDbGFzcygnY29kZS1taXJyb3JlZCcpO1xuXG4gICAgICAgIGlmIChvcHRpb25zLnRvb2xiYXIgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICB0ZXh0YXJlYS5kYXRhKCd0b29sYmFyJykudWkubmF2aWdhdGlvbi5hZGRDbGFzcygnZ3Jhdi1lZGl0b3ItaGlkZS10b29sYmFyJyk7XG4gICAgICAgIH1cblxuICAgICAgICBlZGl0b3Iub24oJ2NoYW5nZScsICgpID0+IGVkaXRvci5zYXZlKCkpO1xuICAgIH1cblxuICAgIF9vbkFkZGVkTm9kZXMoZXZlbnQsIHRhcmdldC8qICwgcmVjb3JkLCBpbnN0YW5jZSAqLykge1xuICAgICAgICBsZXQgZWRpdG9ycyA9ICQodGFyZ2V0KS5maW5kKCdbZGF0YS1ncmF2LWVkaXRvcl0nKTtcbiAgICAgICAgaWYgKCFlZGl0b3JzLmxlbmd0aCkgeyByZXR1cm47IH1cblxuICAgICAgICBlZGl0b3JzLmVhY2goKGluZGV4LCBlZGl0b3IpID0+IHtcbiAgICAgICAgICAgIGVkaXRvciA9ICQoZWRpdG9yKTtcbiAgICAgICAgICAgIGlmICghfnRoaXMuZWRpdG9ycy5pbmRleChlZGl0b3IpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRFZGl0b3IoZWRpdG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVG9vbGJhciB7XG4gICAgc3RhdGljIHRlbXBsYXRlcygpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5hdmlnYXRpb246IGBcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3Jhdi1lZGl0b3ItdG9vbGJhclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3Jhdi1lZGl0b3ItYWN0aW9uc1wiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3Jhdi1lZGl0b3ItbW9kZXNcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIGBcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihlZGl0b3IpIHtcbiAgICAgICAgdGhpcy5lZGl0b3IgPSAkKGVkaXRvcik7XG4gICAgICAgIHRoaXMuY29kZW1pcnJvciA9IHRoaXMuZWRpdG9yLmRhdGEoJ2NvZGVtaXJyb3InKTtcbiAgICAgICAgdGhpcy5idXR0b25zID0gQnV0dG9ucy5uYXZpZ2F0aW9uO1xuICAgICAgICB0aGlzLnVpID0ge1xuICAgICAgICAgICAgbmF2aWdhdGlvbjogJChUb29sYmFyLnRlbXBsYXRlcygpLm5hdmlnYXRpb24pXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5lZGl0b3IucGFyZW50KCcuZ3Jhdi1lZGl0b3ItY29udGVudCcpXG4gICAgICAgICAgICAuYmVmb3JlKHRoaXMudWkubmF2aWdhdGlvbilcbiAgICAgICAgICAgIC5hZnRlcih0aGlzLnVpLnN0YXRlcyk7XG5cbiAgICAgICAgdGhpcy5yZW5kZXJCdXR0b25zKCk7XG4gICAgfVxuXG4gICAgcmVuZGVyQnV0dG9ucygpIHtcbiAgICAgICAgbGV0IG1hcCA9IHsgJ2FjdGlvbnMnOiAnbmF2aWdhdGlvbicsICdtb2Rlcyc6ICdzdGF0ZXMnfTtcblxuICAgICAgICBbJ2FjdGlvbnMnLCAnbW9kZXMnXS5mb3JFYWNoKCh0eXBlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnVpLm5hdmlnYXRpb24uZmluZChgLmdyYXYtZWRpdG9yLSR7dHlwZX1gKS5lbXB0eSgpLmFwcGVuZCgnPHVsIC8+Jyk7XG4gICAgICAgICAgICBCdXR0b25zW21hcFt0eXBlXV0uZm9yRWFjaCgoYnV0dG9uKSA9PiB0aGlzLnJlbmRlckJ1dHRvbihidXR0b24sIHR5cGUpKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVuZGVyQnV0dG9uKGJ1dHRvbiwgdHlwZSwgbG9jYXRpb24gPSBudWxsKSB7XG4gICAgICAgIE9iamVjdC5rZXlzKGJ1dHRvbikuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICBsZXQgb2JqID0gYnV0dG9uW2tleV07XG4gICAgICAgICAgICBpZiAoIW9iai5tb2RlcykgeyBvYmoubW9kZXMgPSBbXTsgfVxuICAgICAgICAgICAgaWYgKCF+dGhpcy5jb2RlbWlycm9yLm9wdGlvbnMuaWdub3JlLmluZGV4T2Yoa2V5KSAmJiAoIW9iai5tb2Rlcy5sZW5ndGggfHwgb2JqLm1vZGVzLmluZGV4T2YodGhpcy5jb2RlbWlycm9yLm9wdGlvbnMubW9kZSkgPiAtMSkpIHtcbiAgICAgICAgICAgICAgICBsZXQgaGludCA9IG9iai50aXRsZSA/IGBkYXRhLWhpbnQ9XCIke29iai50aXRsZX1cImAgOiAnJztcbiAgICAgICAgICAgICAgICBsZXQgZWxlbWVudCA9ICQoYDxsaSBjbGFzcz1cImdyYXYtZWRpdG9yLWJ1dHRvbi0ke2tleX1cIj48YSBjbGFzcz1cImhpbnQtLXRvcFwiICR7aGludH0+JHtvYmoubGFiZWx9PC9hPjwvbGk+YCk7XG4gICAgICAgICAgICAgICAgKGxvY2F0aW9uIHx8IHRoaXMudWkubmF2aWdhdGlvbi5maW5kKGAuZ3Jhdi1lZGl0b3ItJHt0eXBlfSB1bDpub3QoLmRyb3Bkb3duLW1lbnUpYCkpLmFwcGVuZChlbGVtZW50KTtcblxuICAgICAgICAgICAgICAgIGlmIChvYmouc2hvcnRjdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRTaG9ydGN1dChvYmouaWRlbnRpZmllciwgb2JqLnNob3J0Y3V0LCBlbGVtZW50KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBvYmouYWN0aW9uICYmIG9iai5hY3Rpb24uY2FsbChvYmouYWN0aW9uLCB7XG4gICAgICAgICAgICAgICAgICAgIGNvZGVtaXJyb3I6IHRoaXMuY29kZW1pcnJvcixcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uOiBlbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICB0ZXh0YXJlYTogdGhpcy5lZGl0b3IsXG4gICAgICAgICAgICAgICAgICAgIHVpOiB0aGlzLnVpXG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBpZiAob2JqLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBjaGlsZHJlbkNvbnRhaW5lciA9ICQoJzx1bCBjbGFzcz1cImRyb3Bkb3duLW1lbnVcIiAvPicpO1xuICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmFkZENsYXNzKCdidXR0b24tZ3JvdXAnKS5maW5kKCdhJykud3JhcCgnPGRpdiBjbGFzcz1cImRyb3Bkb3duLXRvZ2dsZVwiIGRhdGEtdG9nZ2xlPVwiZHJvcGRvd25cIj48L2Rpdj4nKTtcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKCdhJykuYXBwZW5kKCcgPGkgY2xhc3M9XCJmYSBmYS1jYXJldC1kb3duXCI+PC9pPicpO1xuICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmFwcGVuZChjaGlsZHJlbkNvbnRhaW5lcik7XG4gICAgICAgICAgICAgICAgICAgIG9iai5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZCkgPT4gdGhpcy5yZW5kZXJCdXR0b24oY2hpbGQsIHR5cGUsIGNoaWxkcmVuQ29udGFpbmVyKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhZGRTaG9ydGN1dChpZGVudGlmaWVyLCBzaG9ydGN1dCwgZWxlbWVudCkge1xuICAgICAgICBsZXQgbWFwID0ge307XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShzaG9ydGN1dCkpIHtcbiAgICAgICAgICAgIHNob3J0Y3V0ID0gW3Nob3J0Y3V0XTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNob3J0Y3V0LmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgbWFwW2tleV0gPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgZWxlbWVudC50cmlnZ2VyKGBjbGljay5lZGl0b3IuJHtpZGVudGlmaWVyfWAsIFt0aGlzLmNvZGVtaXJyb3JdKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY29kZW1pcnJvci5hZGRLZXlNYXAobWFwKTtcbiAgICB9XG59XG5cbmV4cG9ydCBsZXQgSW5zdGFuY2UgPSBuZXcgRWRpdG9yRmllbGQoKTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/forms/fields/editor.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/forms/fields/editor/buttons.js":
|
|
/*!********************************************!*\
|
|
!*** ./app/forms/fields/editor/buttons.js ***!
|
|
\********************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"strategies\": () => (/* binding */ strategies),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../utils/request */ \"./app/utils/request.js\");\n\n\n\n\nvar replacer = function replacer(_ref) {\n var name = _ref.name,\n replace = _ref.replace,\n codemirror = _ref.codemirror,\n button = _ref.button,\n _ref$mode = _ref.mode,\n mode = _ref$mode === void 0 ? 'replaceSelections' : _ref$mode,\n runner = _ref.runner;\n button.on(\"click.editor.\".concat(name), function () {\n strategies[mode]({\n token: '$1',\n template: replace,\n codemirror: codemirror,\n runner: runner\n });\n });\n};\n\nvar strategies = {\n replaceSelections: function replaceSelections(_ref2) {\n var template = _ref2.template,\n token = _ref2.token,\n codemirror = _ref2.codemirror,\n runner = _ref2.runner;\n var replacements = [];\n var ranges = [];\n var selections = codemirror.getSelections();\n var list = codemirror.listSelections();\n var accumulator = {};\n selections.forEach(function (selection, index) {\n var markup = template.replace(token, selection);\n var cursor = markup.indexOf('$cur');\n var _list$index$anchor = list[index].anchor,\n line = _list$index$anchor.line,\n ch = _list$index$anchor.ch;\n markup = markup.replace('$cur', '');\n markup = runner ? runner(selection, markup, list) : markup;\n replacements.push(markup);\n\n if (!accumulator[line]) {\n accumulator[line] = 0;\n }\n\n ch += accumulator[line] + (cursor === -1 ? markup.length : cursor);\n var range = {\n ch: ch,\n line: line\n };\n ranges.push({\n anchor: range,\n head: range\n });\n accumulator[line] += markup.length - selection.length;\n });\n codemirror.replaceSelections(replacements);\n codemirror.setSelections(ranges);\n codemirror.focus();\n },\n replaceLine: function replaceLine(_ref3) {\n var template = _ref3.template,\n token = _ref3.token,\n codemirror = _ref3.codemirror,\n runner = _ref3.runner;\n var list = codemirror.listSelections();\n var range;\n list.forEach(function (selection) {\n var lines = {\n min: Math.min(selection.anchor.line, selection.head.line),\n max: Math.max(selection.anchor.line, selection.head.line)\n };\n codemirror.eachLine(lines.min, lines.max + 1, function (handler) {\n var markup = template.replace(token, handler.text);\n var line = codemirror.getLineNumber(handler);\n markup = runner ? runner(handler, markup) : markup;\n codemirror.replaceRange(markup, {\n line: line,\n ch: 0\n }, {\n line: line,\n ch: markup.length\n });\n range = {\n line: line,\n ch: markup.length\n };\n });\n });\n codemirror.setSelection(range, range, 'end');\n codemirror.focus();\n },\n replaceRange: function replaceRange() {}\n};\n\nvar flipDisabled = function flipDisabled(codemirror, button, type) {\n var hasHistory = codemirror.historySize()[type];\n var element = button.find('a');\n button[hasHistory ? 'removeClass' : 'addClass']('button-disabled');\n\n if (!hasHistory) {\n element.attr('title-disabled', element.attr('title'));\n element.attr('data-hint-disabled', element.attr('data-hint'));\n element.removeAttr('title').removeAttr('data-hint');\n } else {\n element.attr('title', element.attr('title-disabled'));\n element.attr('data-hint', element.attr('data-hint-disabled'));\n element.removeAttr('title-disabled').removeAttr('data-hint-disabled');\n }\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n navigation: [{\n undo: {\n identifier: 'undo',\n title: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.UNDO,\n label: '<i class=\"fa fa-fw fa-undo\"></i>',\n modes: [],\n action: function action(_ref4) {\n var codemirror = _ref4.codemirror,\n button = _ref4.button,\n textarea = _ref4.textarea;\n button.addClass('button-disabled');\n codemirror.on('change', function () {\n return flipDisabled(codemirror, button, 'undo');\n });\n button.on('click.editor.undo', function () {\n codemirror.undo();\n });\n }\n }\n }, {\n redo: {\n identifier: 'redo',\n title: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.REDO,\n label: '<i class=\"fa fa-fw fa-repeat\"></i>',\n modes: [],\n action: function action(_ref5) {\n var codemirror = _ref5.codemirror,\n button = _ref5.button,\n textarea = _ref5.textarea;\n button.addClass('button-disabled');\n codemirror.on('change', function () {\n return flipDisabled(codemirror, button, 'redo');\n });\n button.on('click.editor.redo', function () {\n codemirror.redo();\n });\n }\n }\n }, {\n headers: {\n identifier: 'headers',\n title: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.HEADERS,\n label: '<i class=\"fa fa-fw fa-header\"></i>',\n modes: ['gfm', 'markdown'],\n children: [{\n h1: {\n identifier: 'h1',\n label: '<i class=\"fa fa-fw fa-header\"></i>1',\n modes: ['gfm', 'markdown'],\n action: function action(_ref6) {\n var codemirror = _ref6.codemirror,\n button = _ref6.button,\n textarea = _ref6.textarea;\n replacer({\n name: 'h1',\n replace: '# $1',\n codemirror: codemirror,\n button: button,\n mode: 'replaceLine'\n });\n }\n }\n }, {\n h2: {\n identifier: 'h2',\n label: '<i class=\"fa fa-fw fa-header\"></i>2',\n modes: ['gfm', 'markdown'],\n action: function action(_ref7) {\n var codemirror = _ref7.codemirror,\n button = _ref7.button,\n textarea = _ref7.textarea;\n replacer({\n name: 'h2',\n replace: '## $1',\n codemirror: codemirror,\n button: button,\n mode: 'replaceLine'\n });\n }\n }\n }, {\n h3: {\n identifier: 'h3',\n label: '<i class=\"fa fa-fw fa-header\"></i>3',\n modes: ['gfm', 'markdown'],\n action: function action(_ref8) {\n var codemirror = _ref8.codemirror,\n button = _ref8.button,\n textarea = _ref8.textarea;\n replacer({\n name: 'h3',\n replace: '### $1',\n codemirror: codemirror,\n button: button,\n mode: 'replaceLine'\n });\n }\n }\n }, {\n h4: {\n identifier: 'h4',\n label: '<i class=\"fa fa-fw fa-header\"></i>4',\n modes: ['gfm', 'markdown'],\n action: function action(_ref9) {\n var codemirror = _ref9.codemirror,\n button = _ref9.button,\n textarea = _ref9.textarea;\n replacer({\n name: 'h4',\n replace: '#### $1',\n codemirror: codemirror,\n button: button,\n mode: 'replaceLine'\n });\n }\n }\n }, {\n h5: {\n identifier: 'h5',\n label: '<i class=\"fa fa-fw fa-header\"></i>5',\n modes: ['gfm', 'markdown'],\n action: function action(_ref10) {\n var codemirror = _ref10.codemirror,\n button = _ref10.button,\n textarea = _ref10.textarea;\n replacer({\n name: 'h5',\n replace: '##### $1',\n codemirror: codemirror,\n button: button,\n mode: 'replaceLine'\n });\n }\n }\n }, {\n h6: {\n identifier: 'h6',\n label: '<i class=\"fa fa-fw fa-header\"></i>6',\n modes: ['gfm', 'markdown'],\n action: function action(_ref11) {\n var codemirror = _ref11.codemirror,\n button = _ref11.button,\n textarea = _ref11.textarea;\n replacer({\n name: 'h6',\n replace: '###### $1',\n codemirror: codemirror,\n button: button,\n mode: 'replaceLine'\n });\n }\n }\n }]\n }\n }, {\n bold: {\n identifier: 'bold',\n title: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.BOLD,\n label: '<i class=\"fa fa-fw fa-bold\"></i>',\n modes: ['gfm', 'markdown'],\n shortcut: ['Ctrl-B', 'Cmd-B'],\n action: function action(_ref12) {\n var codemirror = _ref12.codemirror,\n button = _ref12.button,\n textarea = _ref12.textarea;\n replacer({\n name: 'bold',\n replace: '**$1$cur**',\n codemirror: codemirror,\n button: button\n });\n }\n }\n }, {\n italic: {\n identifier: 'italic',\n title: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.ITALIC,\n label: '<i class=\"fa fa-fw fa-italic\"></i>',\n modes: ['gfm', 'markdown'],\n shortcut: ['Ctrl-I', 'Cmd-I'],\n action: function action(_ref13) {\n var codemirror = _ref13.codemirror,\n button = _ref13.button,\n textarea = _ref13.textarea;\n replacer({\n name: 'italic',\n replace: '_$1$cur_',\n codemirror: codemirror,\n button: button\n });\n }\n }\n }, {\n strike: {\n identifier: 'strike',\n title: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.STRIKETHROUGH,\n label: '<i class=\"fa fa-fw fa-strikethrough\"></i>',\n modes: ['gfm', 'markdown'],\n action: function action(_ref14) {\n var codemirror = _ref14.codemirror,\n button = _ref14.button,\n textarea = _ref14.textarea;\n replacer({\n name: 'strike',\n replace: '~~$1$cur~~',\n codemirror: codemirror,\n button: button\n });\n }\n }\n }, {\n delimiter: {\n identifier: 'delimiter',\n title: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.SUMMARY_DELIMITER,\n label: '<i class=\"fa fa-fw fa-minus\"></i>',\n modes: ['gfm', 'markdown'],\n action: function action(_ref15) {\n var codemirror = _ref15.codemirror,\n button = _ref15.button,\n textarea = _ref15.textarea;\n replacer({\n name: 'delimiter',\n replace: \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.site.delimiter, \"$1\"),\n codemirror: codemirror,\n button: button,\n mode: 'replaceLine'\n });\n }\n }\n }, {\n link: {\n identifier: 'link',\n title: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.LINK,\n label: '<i class=\"fa fa-fw fa-link\"></i>',\n modes: ['gfm', 'markdown'],\n shortcut: ['Ctrl-K', 'Cmd-K'],\n action: function action(_ref16) {\n var codemirror = _ref16.codemirror,\n button = _ref16.button,\n textarea = _ref16.textarea;\n replacer({\n name: 'link',\n replace: '[$1]($cur)',\n codemirror: codemirror,\n button: button\n });\n }\n }\n }, {\n image: {\n identifier: 'image',\n title: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.IMAGE,\n label: '<i class=\"fa fa-fw fa-picture-o\"></i>',\n modes: ['gfm', 'markdown'],\n action: function action(_ref17) {\n var codemirror = _ref17.codemirror,\n button = _ref17.button,\n textarea = _ref17.textarea;\n replacer({\n name: 'image',\n replace: '![$1](http://$cur)',\n codemirror: codemirror,\n button: button\n });\n }\n }\n }, {\n blockquote: {\n identifier: 'blockquote',\n title: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.BLOCKQUOTE,\n label: '<i class=\"fa fa-fw fa-quote-right\"></i>',\n modes: ['gfm', 'markdown'],\n action: function action(_ref18) {\n var codemirror = _ref18.codemirror,\n button = _ref18.button,\n textarea = _ref18.textarea;\n replacer({\n name: 'blockquote',\n replace: '> $1',\n codemirror: codemirror,\n button: button,\n mode: 'replaceLine'\n });\n }\n }\n }, {\n listUl: {\n identifier: 'listUl',\n title: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.UNORDERED_LIST,\n label: '<i class=\"fa fa-fw fa-list-ul\"></i>',\n modes: ['gfm', 'markdown'],\n action: function action(_ref19) {\n var codemirror = _ref19.codemirror,\n button = _ref19.button,\n textarea = _ref19.textarea;\n replacer({\n name: 'listUl',\n replace: '* $1',\n codemirror: codemirror,\n button: button,\n mode: 'replaceLine'\n });\n }\n }\n }, {\n listOl: {\n identifier: 'listOl',\n title: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.ORDERED_LIST,\n label: '<i class=\"fa fa-fw fa-list-ol\"></i>',\n modes: ['gfm', 'markdown'],\n action: function action(_ref20) {\n var codemirror = _ref20.codemirror,\n button = _ref20.button,\n textarea = _ref20.textarea;\n replacer({\n name: 'listOl',\n replace: '. $1',\n codemirror: codemirror,\n button: button,\n mode: 'replaceLine',\n runner: function runner(line, markup) {\n var lineNo = codemirror.getLineNumber(line);\n var previousLine = codemirror.getLine(lineNo - 1) || '';\n var match = previousLine.match(/^(\\d+)\\./);\n var prefix = 1 + (match ? Number(match[1]) : 0);\n return \"\".concat(prefix).concat(markup);\n }\n });\n }\n }\n }],\n states: [{\n code: {\n identifier: 'editor',\n title: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.EDITOR,\n label: '<i class=\"fa fa-fw fa-code\"></i>',\n action: function action(_ref21) {\n var codemirror = _ref21.codemirror,\n button = _ref21.button,\n textarea = _ref21.textarea,\n ui = _ref21.ui;\n\n if (textarea.data('grav-editor-mode') === 'editor') {\n button.addClass('editor-active');\n }\n\n button.on('click.states.editor', function () {\n button.siblings().removeClass('editor-active');\n button.addClass('editor-active');\n textarea.data('grav-editor-mode', 'editor');\n var previewContainer = textarea.data('grav-editor-preview-container');\n var content = textarea.parent('.grav-editor-content');\n content.addClass('is-active');\n ui.navigation.find('.grav-editor-actions').css('visibility', 'visible');\n\n if (previewContainer) {\n previewContainer.removeClass('is-active');\n }\n });\n }\n }\n }, {\n preview: {\n identifier: 'preview',\n title: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.PREVIEW,\n label: '<i class=\"fa fa-fw fa-eye\"></i>',\n modes: ['gfm', 'markdown'],\n action: function action(_ref22) {\n var codemirror = _ref22.codemirror,\n button = _ref22.button,\n textarea = _ref22.textarea,\n ui = _ref22.ui;\n\n if (textarea.data('grav-editor-mode') === 'preview') {\n button.addClass('editor-active');\n }\n\n button.on('click.states.preview', function () {\n var previewContainer = textarea.data('grav-editor-preview-container');\n var content = textarea.parent('.grav-editor-content');\n button.siblings().removeClass('editor-active');\n button.addClass('editor-active');\n textarea.data('grav-editor-mode', 'preview');\n\n if (!previewContainer) {\n previewContainer = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"grav-editor-preview\" />');\n content.after(previewContainer);\n textarea.data('grav-editor-preview-container', previewContainer);\n }\n\n previewContainer.css({\n height: content.height()\n });\n previewContainer.addClass('is-active');\n content.removeClass('is-active');\n ui.navigation.find('.grav-editor-actions').css('visibility', 'hidden');\n var url = \"\".concat(textarea.data('grav-urlpreview'), \"/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep, \"processmarkdown\");\n var params = textarea.closest('form').serializeArray();\n var body = {};\n params.map(function (obj) {\n body[obj.name] = obj.value;\n });\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__.default)(url, {\n method: 'post',\n body: body\n }, function (response) {\n return previewContainer.html(response.preview);\n });\n });\n }\n }\n }, {\n fullscreen: {\n identifier: 'fullscreen',\n title: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.FULLSCREEN,\n label: '<i class=\"fa fa-fw fa-expand\"></i>',\n action: function action(_ref23) {\n var codemirror = _ref23.codemirror,\n button = _ref23.button,\n textarea = _ref23.textarea;\n button.on('click.editor.fullscreen', function () {\n var container = textarea.closest('.grav-editor');\n var wrapper = codemirror.getWrapperElement();\n var contentWrapper = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.content-wrapper');\n\n if (!container.hasClass('grav-editor-fullscreen')) {\n textarea.data('fullScreenRestore', {\n scrollTop: __webpack_require__.g.pageYOffset,\n scrollLeft: __webpack_require__.g.pageXOffset,\n width: wrapper.style.width,\n height: wrapper.style.height\n });\n wrapper.style.width = '';\n wrapper.style.height = textarea.parent('.grav-editor-content').height() + 'px';\n __webpack_require__.g.document.documentElement.style.overflow = 'hidden';\n var hints = container.find('.grav-editor-toolbar .hint--top');\n\n if (hints) {\n hints.removeClass('hint--top').addClass('hint--bottom');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(hints[hints.length - 1]).addClass('hint--bottom-left');\n }\n\n if (contentWrapper) {\n contentWrapper.css('overflow', 'visible');\n }\n } else {\n __webpack_require__.g.document.documentElement.style.overflow = '';\n var state = textarea.data('fullScreenRestore');\n wrapper.style.width = state.width;\n wrapper.style.height = state.height;\n __webpack_require__.g.scrollTo(state.scrollLeft, state.scrollTop);\n\n var _hints = container.find('.grav-editor-toolbar .hint--bottom');\n\n if (_hints) {\n _hints.removeClass('hint--bottom').addClass('hint--top');\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(_hints[_hints.length - 1]).removeClass('hint--bottom-left');\n }\n\n if (contentWrapper) {\n contentWrapper.css('overflow', 'auto');\n }\n }\n\n container.toggleClass('grav-editor-fullscreen');\n setTimeout(function () {\n codemirror.refresh(); // this.preview.parent().css('height', this.code.height());\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(__webpack_require__.g).trigger('resize');\n }, 5);\n });\n }\n }\n }]\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL2ZpZWxkcy9lZGl0b3IvYnV0dG9ucy5qcz84OGQyIl0sIm5hbWVzIjpbInJlcGxhY2VyIiwibmFtZSIsInJlcGxhY2UiLCJjb2RlbWlycm9yIiwiYnV0dG9uIiwibW9kZSIsInJ1bm5lciIsIm9uIiwic3RyYXRlZ2llcyIsInRva2VuIiwidGVtcGxhdGUiLCJyZXBsYWNlU2VsZWN0aW9ucyIsInJlcGxhY2VtZW50cyIsInJhbmdlcyIsInNlbGVjdGlvbnMiLCJnZXRTZWxlY3Rpb25zIiwibGlzdCIsImxpc3RTZWxlY3Rpb25zIiwiYWNjdW11bGF0b3IiLCJmb3JFYWNoIiwic2VsZWN0aW9uIiwiaW5kZXgiLCJtYXJrdXAiLCJjdXJzb3IiLCJpbmRleE9mIiwiYW5jaG9yIiwibGluZSIsImNoIiwicHVzaCIsImxlbmd0aCIsInJhbmdlIiwiaGVhZCIsInNldFNlbGVjdGlvbnMiLCJmb2N1cyIsInJlcGxhY2VMaW5lIiwibGluZXMiLCJtaW4iLCJNYXRoIiwibWF4IiwiZWFjaExpbmUiLCJoYW5kbGVyIiwidGV4dCIsImdldExpbmVOdW1iZXIiLCJyZXBsYWNlUmFuZ2UiLCJzZXRTZWxlY3Rpb24iLCJmbGlwRGlzYWJsZWQiLCJ0eXBlIiwiaGFzSGlzdG9yeSIsImhpc3RvcnlTaXplIiwiZWxlbWVudCIsImZpbmQiLCJhdHRyIiwicmVtb3ZlQXR0ciIsIm5hdmlnYXRpb24iLCJ1bmRvIiwiaWRlbnRpZmllciIsInRpdGxlIiwidHJhbnNsYXRpb25zIiwibGFiZWwiLCJtb2RlcyIsImFjdGlvbiIsInRleHRhcmVhIiwiYWRkQ2xhc3MiLCJyZWRvIiwiaGVhZGVycyIsImNoaWxkcmVuIiwiaDEiLCJoMiIsImgzIiwiaDQiLCJoNSIsImg2IiwiYm9sZCIsInNob3J0Y3V0IiwiaXRhbGljIiwic3RyaWtlIiwiZGVsaW1pdGVyIiwiY29uZmlnIiwibGluayIsImltYWdlIiwiYmxvY2txdW90ZSIsImxpc3RVbCIsImxpc3RPbCIsImxpbmVObyIsInByZXZpb3VzTGluZSIsImdldExpbmUiLCJtYXRjaCIsInByZWZpeCIsIk51bWJlciIsInN0YXRlcyIsImNvZGUiLCJ1aSIsImRhdGEiLCJzaWJsaW5ncyIsInJlbW92ZUNsYXNzIiwicHJldmlld0NvbnRhaW5lciIsImNvbnRlbnQiLCJwYXJlbnQiLCJjc3MiLCJwcmV2aWV3IiwiJCIsImFmdGVyIiwiaGVpZ2h0IiwidXJsIiwicGFyYW1zIiwiY2xvc2VzdCIsInNlcmlhbGl6ZUFycmF5IiwiYm9keSIsIm1hcCIsIm9iaiIsInZhbHVlIiwicmVxdWVzdCIsIm1ldGhvZCIsInJlc3BvbnNlIiwiaHRtbCIsImZ1bGxzY3JlZW4iLCJjb250YWluZXIiLCJ3cmFwcGVyIiwiZ2V0V3JhcHBlckVsZW1lbnQiLCJjb250ZW50V3JhcHBlciIsImhhc0NsYXNzIiwic2Nyb2xsVG9wIiwiZ2xvYmFsIiwicGFnZVlPZmZzZXQiLCJzY3JvbGxMZWZ0IiwicGFnZVhPZmZzZXQiLCJ3aWR0aCIsInN0eWxlIiwiZG9jdW1lbnQiLCJkb2N1bWVudEVsZW1lbnQiLCJvdmVyZmxvdyIsImhpbnRzIiwic3RhdGUiLCJzY3JvbGxUbyIsInRvZ2dsZUNsYXNzIiwic2V0VGltZW91dCIsInJlZnJlc2giLCJ0cmlnZ2VyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBOztBQUVBLElBQUlBLFFBQVEsR0FBRyxTQUFYQSxRQUFXLE9BQStFO0FBQUEsTUFBNUVDLElBQTRFLFFBQTVFQSxJQUE0RTtBQUFBLE1BQXRFQyxPQUFzRSxRQUF0RUEsT0FBc0U7QUFBQSxNQUE3REMsVUFBNkQsUUFBN0RBLFVBQTZEO0FBQUEsTUFBakRDLE1BQWlELFFBQWpEQSxNQUFpRDtBQUFBLHVCQUF6Q0MsSUFBeUM7QUFBQSxNQUF6Q0EsSUFBeUMsMEJBQWxDLG1CQUFrQztBQUFBLE1BQWJDLE1BQWEsUUFBYkEsTUFBYTtBQUMxRkYsUUFBTSxDQUFDRyxFQUFQLHdCQUEwQk4sSUFBMUIsR0FBa0MsWUFB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a0IsbUJBQVMsQ0FBQ2tCLFdBQVYsQ0FBc0Isd0JBQXRCO0FBRUFDLG9CQUFVLENBQUMsWUFBTTtBQUNicEksc0JBQVUsQ0FBQ3FJLE9BQVgsR0FEYSxDQUViOztBQUNBcEMseURBQUMsQ0FBQ3NCLHFCQUFELENBQUQsQ0FBVWUsT0FBVixDQUFrQixRQUFsQjtBQUNILFdBSlMsRUFJUCxDQUpPLENBQVY7QUFLSCxTQWhERDtBQWlESDtBQXRETztBQURiLEdBaEVLO0FBbk5HLENBQWYiLCJmaWxlIjoiLi9hcHAvZm9ybXMvZmllbGRzL2VkaXRvci9idXR0b25zLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCB7IGNvbmZpZywgdHJhbnNsYXRpb25zIH0gZnJvbSAnZ3Jhdi1jb25maWcnO1xuaW1wb3J0IHJlcXVlc3QgZnJvbSAnLi4vLi4vLi4vdXRpbHMvcmVxdWVzdCc7XG5cbmxldCByZXBsYWNlciA9ICh7IG5hbWUsIHJlcGxhY2UsIGNvZGVtaXJyb3IsIGJ1dHRvbiwgbW9kZSA9ICdyZXBsYWNlU2VsZWN0aW9ucycsIHJ1bm5lciB9KSA9PiB7XG4gICAgYnV0dG9uLm9uKGBjbGljay5lZGl0b3IuJHtuYW1lfWAsICgpID0+IHtcbiAgICAgICAgc3RyYXRlZ2llc1ttb2RlXSh7IHRva2VuOiAnJDEnLCB0ZW1wbGF0ZTogcmVwbGFjZSwgY29kZW1pcnJvciwgcnVubmVyIH0pO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGxldCBzdHJhdGVnaWVzID0ge1xuICAgIHJlcGxhY2VTZWxlY3Rpb25zKHsgdGVtcGxhdGUsIHRva2VuLCBjb2RlbWlycm9yLCBydW5uZXIgfSkge1xuICAgICAgICBsZXQgcmVwbGFjZW1lbnRzID0gW107XG4gICAgICAgIGxldCByYW5nZXMgPSBbXTtcbiAgICAgICAgbGV0IHNlbGVjdGlvbnMgPSBjb2RlbWlycm9yLmdldFNlbGVjdGlvbnMoKTtcbiAgICAgICAgbGV0IGxpc3QgPSBjb2RlbWlycm9yLmxpc3RTZWxlY3Rpb25zKCk7XG4gICAgICAgIGxldCBhY2N1bXVsYXRvciA9IHt9O1xuXG4gICAgICAgIHNlbGVjdGlvbnMuZm9yRWFjaCgoc2VsZWN0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgbGV0IG1hcmt1cCA9IHRlbXBsYXRlLnJlcGxhY2UodG9rZW4sIHNlbGVjdGlvbik7XG5cbiAgICAgICAgICAgIGxldCBjdXJzb3IgPSBtYXJrdXAuaW5kZXhPZignJGN1cicpO1xuICAgICAgICAgICAgbGV0IHsgbGluZSwgY2ggfSA9IGxpc3RbaW5kZXhdLmFuY2hvcjtcblxuICAgICAgICAgICAgbWFya3VwID0gbWFya3VwLnJlcGxhY2UoJyRjdXInLCAnJyk7XG4gICAgICAgICAgICBtYXJrdXAgPSBydW5uZXIgPyBydW5uZXIoc2VsZWN0aW9uLCBtYXJrdXAsIGxpc3QpIDogbWFya3VwO1xuICAgICAgICAgICAgcmVwbGFjZW1lbnRzLnB1c2gobWFya3VwKTtcblxuICAgICAgICAgICAgaWYgKCFhY2N1bXVsYXRvcltsaW5lXSkgeyBhY2N1bXVsYXRvcltsaW5lXSA9IDA7IH1cblxuICAgICAgICAgICAgY2ggKz0gYWNjdW11bGF0b3JbbGluZV0gKyAoY3Vyc29yID09PSAtMSA/IG1hcmt1cC5sZW5ndGggOiBjdXJzb3IpO1xuICAgICAgICAgICAgbGV0IHJhbmdlID0geyBjaCwgbGluZSB9O1xuXG4gICAgICAgICAgICByYW5nZXMucHVzaCh7IGFuY2hvcjogcmFuZ2UsIGhlYWQ6IHJhbmdlIH0pO1xuICAgICAgICAgICAgYWNjdW11bGF0b3JbbGluZV0gKz0gbWFya3VwLmxlbmd0aCAtIHNlbGVjdGlvbi5sZW5ndGg7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvZGVtaXJyb3IucmVwbGFjZVNlbGVjdGlvbnMocmVwbGFjZW1lbnRzKTtcbiAgICAgICAgY29kZW1pcnJvci5zZXRTZWxlY3Rpb25zKHJhbmdlcyk7XG4gICAgICAgIGNvZGVtaXJyb3IuZm9jdXMoKTtcbiAgICB9LFxuICAgIHJlcGxhY2VMaW5lKHsgdGVtcGxhdGUsIHRva2VuLCBjb2RlbWlycm9yLCBydW5uZXIgfSkge1xuICAgICAgICBsZXQgbGlzdCA9IGNvZGVtaXJyb3IubGlzdFNlbGVjdGlvbnMoKTtcbiAgICAgICAgbGV0IHJhbmdlO1xuXG4gICAgICAgIGxpc3QuZm9yRWFjaCgoc2VsZWN0aW9uKSA9PiB7XG4gICAgICAgICAgICBsZXQgbGluZXMgPSB7XG4gICAgICAgICAgICAgICAgbWluOiBNYXRoLm1pbihzZWxlY3Rpb24uYW5jaG9yLmxpbmUsIHNlbGVjdGlvbi5oZWFkLmxpbmUpLFxuICAgICAgICAgICAgICAgIG1heDogTWF0aC5tYXgoc2VsZWN0aW9uLmFuY2hvci5saW5lLCBzZWxlY3Rpb24uaGVhZC5saW5lKVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29kZW1pcnJvci5lYWNoTGluZShsaW5lcy5taW4sIGxpbmVzLm1heCArIDEsIChoYW5kbGVyKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IG1hcmt1cCA9IHRlbXBsYXRlLnJlcGxhY2UodG9rZW4sIGhhbmRsZXIudGV4dCk7XG4gICAgICAgICAgICAgICAgbGV0IGxpbmUgPSBjb2RlbWlycm9yLmdldExpbmVOdW1iZXIoaGFuZGxlcik7XG4gICAgICAgICAgICAgICAgbWFya3VwID0gcnVubmVyID8gcnVubmVyKGhhbmRsZXIsIG1hcmt1cCkgOiBtYXJrdXA7XG4gICAgICAgICAgICAgICAgY29kZW1pcnJvci5yZXBsYWNlUmFuZ2UobWFya3VwLCB7IGxpbmUsIGNoOiAwIH0sIHsgbGluZSwgY2g6IG1hcmt1cC5sZW5ndGggfSk7XG4gICAgICAgICAgICAgICAgcmFuZ2UgPSB7IGxpbmUsIGNoOiBtYXJrdXAubGVuZ3RoIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29kZW1pcnJvci5zZXRTZWxlY3Rpb24ocmFuZ2UsIHJhbmdlLCAnZW5kJyk7XG4gICAgICAgIGNvZGVtaXJyb3IuZm9jdXMoKTtcbiAgICB9LFxuICAgIHJlcGxhY2VSYW5nZSgpIHt9XG59O1xuXG5jb25zdCBmbGlwRGlzYWJsZWQgPSAoY29kZW1pcnJvciwgYnV0dG9uLCB0eXBlKSA9PiB7XG4gICAgbGV0IGhhc0hpc3RvcnkgPSBjb2RlbWlycm9yLmhpc3RvcnlTaXplKClbdHlwZV07XG4gICAgbGV0IGVsZW1lbnQgPSBidXR0b24uZmluZCgnYScpO1xuICAgIGJ1dHRvbltoYXNIaXN0b3J5ID8gJ3JlbW92ZUNsYXNzJyA6ICdhZGRDbGFzcyddKCdidXR0b24tZGlzYWJsZWQnKTtcblxuICAgIGlmICghaGFzSGlzdG9yeSkge1xuICAgICAgICBlbGVtZW50LmF0dHIoJ3RpdGxlLWRpc2FibGVkJywgZWxlbWVudC5hdHRyKCd0aXRsZScpKTtcbiAgICAgICAgZWxlbWVudC5hdHRyKCdkYXRhLWhpbnQtZGlzYWJsZWQnLCBlbGVtZW50LmF0dHIoJ2RhdGEtaGludCcpKTtcbiAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyKCd0aXRsZScpLnJlbW92ZUF0dHIoJ2RhdGEtaGludCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGVsZW1lbnQuYXR0cigndGl0bGUnLCBlbGVtZW50LmF0dHIoJ3RpdGxlLWRpc2FibGVkJykpO1xuICAgICAgICBlbGVtZW50LmF0dHIoJ2RhdGEtaGludCcsIGVsZW1lbnQuYXR0cignZGF0YS1oaW50LWRpc2FibGVkJykpO1xuICAgICAgICBlbGVtZW50LnJlbW92ZUF0dHIoJ3RpdGxlLWRpc2FibGVkJykucmVtb3ZlQXR0cignZGF0YS1oaW50LWRpc2FibGVkJyk7XG4gICAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQge1xuICAgIG5hdmlnYXRpb246IFtcbiAgICAgICAge1xuICAgICAgICAgICAgdW5kbzoge1xuICAgICAgICAgICAgICAgIGlkZW50aWZpZXI6ICd1bmRvJyxcbiAgICAgICAgICAgICAgICB0aXRsZTogdHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5VTkRPLFxuICAgICAgICAgICAgICAgIGxhYmVsOiAnPGkgY2xhc3M9XCJmYSBmYS1mdyBmYS11bmRvXCI+PC9pPicsXG4gICAgICAgICAgICAgICAgbW9kZXM6IFtdLFxuICAgICAgICAgICAgICAgIGFjdGlvbih7IGNvZGVtaXJyb3IsIGJ1dHRvbiwgdGV4dGFyZWF9KSB7XG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbi5hZGRDbGFzcygnYnV0dG9uLWRpc2FibGVkJyk7XG4gICAgICAgICAgICAgICAgICAgIGNvZGVtaXJyb3Iub24oJ2NoYW5nZScsICgpID0+IGZsaXBEaXNhYmxlZChjb2RlbWlycm9yLCBidXR0b24sICd1bmRvJykpO1xuICAgICAgICAgICAgICAgICAgICBidXR0b24ub24oJ2NsaWNrLmVkaXRvci51bmRvJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29kZW1pcnJvci51bmRvKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcmVkbzoge1xuICAgICAgICAgICAgICAgIGlkZW50aWZpZXI6ICdyZWRvJyxcbiAgICAgICAgICAgICAgICB0aXRsZTogdHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5SRURPLFxuICAgICAgICAgICAgICAgIGxhYmVsOiAnPGkgY2xhc3M9XCJmYSBmYS1mdyBmYS1yZXBlYXRcIj48L2k+JyxcbiAgICAgICAgICAgICAgICBtb2RlczogW10sXG4gICAgICAgICAgICAgICAgYWN0aW9uKHsgY29kZW1pcnJvciwgYnV0dG9uLCB0ZXh0YXJlYX0pIHtcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uLmFkZENsYXNzKCdidXR0b24tZGlzYWJsZWQnKTtcbiAgICAgICAgICAgICAgICAgICAgY29kZW1pcnJvci5vbignY2hhbmdlJywgKCkgPT4gZmxpcERpc2FibGVkKGNvZGVtaXJyb3IsIGJ1dHRvbiwgJ3JlZG8nKSk7XG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbi5vbignY2xpY2suZWRpdG9yLnJlZG8nLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2RlbWlycm9yLnJlZG8oKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgaWRlbnRpZmllcjogJ2hlYWRlcnMnLFxuICAgICAgICAgICAgICAgIHRpdGxlOiB0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLkhFQURFUlMsXG4gICAgICAgICAgICAgICAgbGFiZWw6ICc8aSBjbGFzcz1cImZhIGZhLWZ3IGZhLWhlYWRlclwiPjwvaT4nLFxuICAgICAgICAgICAgICAgIG1vZGVzOiBbJ2dmbScsICdtYXJrZG93biddLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGgxOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRlbnRpZmllcjogJ2gxJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJzxpIGNsYXNzPVwiZmEgZmEtZncgZmEtaGVhZGVyXCI+PC9pPjEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGVzOiBbJ2dmbScsICdtYXJrZG93biddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbih7IGNvZGVtaXJyb3IsIGJ1dHRvbiwgdGV4dGFyZWEgfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlcih7IG5hbWU6ICdoMScsIHJlcGxhY2U6ICcjICQxJywgY29kZW1pcnJvciwgYnV0dG9uLCBtb2RlOiAncmVwbGFjZUxpbmUnIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaDI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWVyOiAnaDInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnPGkgY2xhc3M9XCJmYSBmYS1mdyBmYS1oZWFkZXJcIj48L2k+MicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZXM6IFsnZ2ZtJywgJ21hcmtkb3duJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uKHsgY29kZW1pcnJvciwgYnV0dG9uLCB0ZXh0YXJlYSB9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VyKHsgbmFtZTogJ2gyJywgcmVwbGFjZTogJyMjICQxJywgY29kZW1pcnJvciwgYnV0dG9uLCBtb2RlOiAncmVwbGFjZUxpbmUnIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaDM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWVyOiAnaDMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnPGkgY2xhc3M9XCJmYSBmYS1mdyBmYS1oZWFkZXJcIj48L2k+MycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZXM6IFsnZ2ZtJywgJ21hcmtkb3duJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uKHsgY29kZW1pcnJvciwgYnV0dG9uLCB0ZXh0YXJlYSB9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VyKHsgbmFtZTogJ2gzJywgcmVwbGFjZTogJyMjIyAkMScsIGNvZGVtaXJyb3IsIGJ1dHRvbiwgbW9kZTogJ3JlcGxhY2VMaW5lJyB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGg0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRlbnRpZmllcjogJ2g0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJzxpIGNsYXNzPVwiZmEgZmEtZncgZmEtaGVhZGVyXCI+PC9pPjQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGVzOiBbJ2dmbScsICdtYXJrZG93biddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbih7IGNvZGVtaXJyb3IsIGJ1dHRvbiwgdGV4dGFyZWEgfSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlcih7IG5hbWU6ICdoNCcsIHJlcGxhY2U6ICcjIyMjICQxJywgY29kZW1pcnJvciwgYnV0dG9uLCBtb2RlOiAncmVwbGFjZUxpbmUnIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaDU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWVyOiAnaDUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnPGkgY2xhc3M9XCJmYSBmYS1mdyBmYS1oZWFkZXJcIj48L2k+NScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZXM6IFsnZ2ZtJywgJ21hcmtkb3duJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uKHsgY29kZW1pcnJvciwgYnV0dG9uLCB0ZXh0YXJlYSB9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VyKHsgbmFtZTogJ2g1JywgcmVwbGFjZTogJyMjIyMjICQxJywgY29kZW1pcnJvciwgYnV0dG9uLCBtb2RlOiAncmVwbGFjZUxpbmUnIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaDY6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWVyOiAnaDYnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnPGkgY2xhc3M9XCJmYSBmYS1mdyBmYS1oZWFkZXJcIj48L2k+NicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZXM6IFsnZ2ZtJywgJ21hcmtkb3duJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uKHsgY29kZW1pcnJvciwgYnV0dG9uLCB0ZXh0YXJlYSB9KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2VyKHsgbmFtZTogJ2g2JywgcmVwbGFjZTogJyMjIyMjIyAkMScsIGNvZGVtaXJyb3IsIGJ1dHRvbiwgbW9kZTogJ3JlcGxhY2VMaW5lJyB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGJvbGQ6IHtcbiAgICAgICAgICAgICAgICBpZGVudGlmaWVyOiAnYm9sZCcsXG4gICAgICAgICAgICAgICAgdGl0bGU6IHRyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uQk9MRCxcbiAgICAgICAgICAgICAgICBsYWJlbDogJzxpIGNsYXNzPVwiZmEgZmEtZncgZmEtYm9sZFwiPjwvaT4nLFxuICAgICAgICAgICAgICAgIG1vZGVzOiBbJ2dmbScsICdtYXJrZG93biddLFxuICAgICAgICAgICAgICAgIHNob3J0Y3V0OiBbJ0N0cmwtQicsICdDbWQtQiddLFxuICAgICAgICAgICAgICAgIGFjdGlvbih7IGNvZGVtaXJyb3IsIGJ1dHRvbiwgdGV4dGFyZWEgfSkge1xuICAgICAgICAgICAgICAgICAgICByZXBsYWNlcih7IG5hbWU6ICdib2xkJywgcmVwbGFjZTogJyoqJDEkY3VyKionLCBjb2RlbWlycm9yLCBidXR0b24gfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9LCB7XG4gICAgICAgICAgICBpdGFsaWM6IHtcbiAgICAgICAgICAgICAgICBpZGVudGlmaWVyOiAnaXRhbGljJyxcbiAgICAgICAgICAgICAgICB0aXRsZTogdHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5JVEFMSUMsXG4gICAgICAgICAgICAgICAgbGFiZWw6ICc8aSBjbGFzcz1cImZhIGZhLWZ3IGZhLWl0YWxpY1wiPjwvaT4nLFxuICAgICAgICAgICAgICAgIG1vZGVzOiBbJ2dmbScsICdtYXJrZG93biddLFxuICAgICAgICAgICAgICAgIHNob3J0Y3V0OiBbJ0N0cmwtSScsICdDbWQtSSddLFxuICAgICAgICAgICAgICAgIGFjdGlvbih7IGNvZGVtaXJyb3IsIGJ1dHRvbiwgdGV4dGFyZWEgfSkge1xuICAgICAgICAgICAgICAgICAgICByZXBsYWNlcih7IG5hbWU6ICdpdGFsaWMnLCByZXBsYWNlOiAnXyQxJGN1cl8nLCBjb2RlbWlycm9yLCBidXR0b24gfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9LCB7XG4gICAgICAgICAgICBzdHJpa2U6IHtcbiAgICAgICAgICAgICAgICBpZGVudGlmaWVyOiAnc3RyaWtlJyxcbiAgICAgICAgICAgICAgICB0aXRsZTogdHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5TVFJJS0VUSFJPVUdILFxuICAgICAgICAgICAgICAgIGxhYmVsOiAnPGkgY2xhc3M9XCJmYSBmYS1mdyBmYS1zdHJpa2V0aHJvdWdoXCI+PC9pPicsXG4gICAgICAgICAgICAgICAgbW9kZXM6IFsnZ2ZtJywgJ21hcmtkb3duJ10sXG4gICAgICAgICAgICAgICAgYWN0aW9uKHsgY29kZW1pcnJvciwgYnV0dG9uLCB0ZXh0YXJlYSB9KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcGxhY2VyKHsgbmFtZTogJ3N0cmlrZScsIHJlcGxhY2U6ICd+fiQxJGN1cn5+JywgY29kZW1pcnJvciwgYnV0dG9uIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwge1xuICAgICAgICAgICAgZGVsaW1pdGVyOiB7XG4gICAgICAgICAgICAgICAgaWRlbnRpZmllcjogJ2RlbGltaXRlcicsXG4gICAgICAgICAgICAgICAgdGl0bGU6IHRyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uU1VNTUFSWV9ERUxJTUlURVIsXG4gICAgICAgICAgICAgICAgbGFiZWw6ICc8aSBjbGFzcz1cImZhIGZhLWZ3IGZhLW1pbnVzXCI+PC9pPicsXG4gICAgICAgICAgICAgICAgbW9kZXM6IFsnZ2ZtJywgJ21hcmtkb3duJ10sXG4gICAgICAgICAgICAgICAgYWN0aW9uKHsgY29kZW1pcnJvciwgYnV0dG9uLCB0ZXh0YXJlYSB9KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcGxhY2VyKHsgbmFtZTogJ2RlbGltaXRlcicsIHJlcGxhY2U6IGAke2NvbmZpZy5zaXRlLmRlbGltaXRlcn0kMWAsIGNvZGVtaXJyb3IsIGJ1dHRvbiwgbW9kZTogJ3JlcGxhY2VMaW5lJyB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgIGxpbms6IHtcbiAgICAgICAgICAgICAgICBpZGVudGlmaWVyOiAnbGluaycsXG4gICAgICAgICAgICAgICAgdGl0bGU6IHRyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uTElOSyxcbiAgICAgICAgICAgICAgICBsYWJlbDogJzxpIGNsYXNzPVwiZmEgZmEtZncgZmEtbGlua1wiPjwvaT4nLFxuICAgICAgICAgICAgICAgIG1vZGVzOiBbJ2dmbScsICdtYXJrZG93biddLFxuICAgICAgICAgICAgICAgIHNob3J0Y3V0OiBbJ0N0cmwtSycsICdDbWQtSyddLFxuICAgICAgICAgICAgICAgIGFjdGlvbih7IGNvZGVtaXJyb3IsIGJ1dHRvbiwgdGV4dGFyZWEgfSkge1xuICAgICAgICAgICAgICAgICAgICByZXBsYWNlcih7IG5hbWU6ICdsaW5rJywgcmVwbGFjZTogJ1skMV0oJGN1ciknLCBjb2RlbWlycm9yLCBidXR0b24gfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9LCB7XG4gICAgICAgICAgICBpbWFnZToge1xuICAgICAgICAgICAgICAgIGlkZW50aWZpZXI6ICdpbWFnZScsXG4gICAgICAgICAgICAgICAgdGl0bGU6IHRyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uSU1BR0UsXG4gICAgICAgICAgICAgICAgbGFiZWw6ICc8aSBjbGFzcz1cImZhIGZhLWZ3IGZhLXBpY3R1cmUtb1wiPjwvaT4nLFxuICAgICAgICAgICAgICAgIG1vZGVzOiBbJ2dmbScsICdtYXJrZG93biddLFxuICAgICAgICAgICAgICAgIGFjdGlvbih7IGNvZGVtaXJyb3IsIGJ1dHRvbiwgdGV4dGFyZWEgfSkge1xuICAgICAgICAgICAgICAgICAgICByZXBsYWNlcih7IG5hbWU6ICdpbWFnZScsIHJlcGxhY2U6ICchWyQxXShodHRwOi8vJGN1ciknLCBjb2RlbWlycm9yLCBidXR0b24gfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9LCB7XG4gICAgICAgICAgICBibG9ja3F1b3RlOiB7XG4gICAgICAgICAgICAgICAgaWRlbnRpZmllcjogJ2Jsb2NrcXVvdGUnLFxuICAgICAgICAgICAgICAgIHRpdGxlOiB0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLkJMT0NLUVVPVEUsXG4gICAgICAgICAgICAgICAgbGFiZWw6ICc8aSBjbGFzcz1cImZhIGZhLWZ3IGZhLXF1b3RlLXJpZ2h0XCI+PC9pPicsXG4gICAgICAgICAgICAgICAgbW9kZXM6IFsnZ2ZtJywgJ21hcmtkb3duJ10sXG4gICAgICAgICAgICAgICAgYWN0aW9uKHsgY29kZW1pcnJvciwgYnV0dG9uLCB0ZXh0YXJlYSB9KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcGxhY2VyKHsgbmFtZTogJ2Jsb2NrcXVvdGUnLCByZXBsYWNlOiAnPiAkMScsIGNvZGVtaXJyb3IsIGJ1dHRvbiwgbW9kZTogJ3JlcGxhY2VMaW5lJyB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgIGxpc3RVbDoge1xuICAgICAgICAgICAgICAgIGlkZW50aWZpZXI6ICdsaXN0VWwnLFxuICAgICAgICAgICAgICAgIHRpdGxlOiB0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLlVOT1JERVJFRF9MSVNULFxuICAgICAgICAgICAgICAgIGxhYmVsOiAnPGkgY2xhc3M9XCJmYSBmYS1mdyBmYS1saXN0LXVsXCI+PC9pPicsXG4gICAgICAgICAgICAgICAgbW9kZXM6IFsnZ2ZtJywgJ21hcmtkb3duJ10sXG4gICAgICAgICAgICAgICAgYWN0aW9uKHsgY29kZW1pcnJvciwgYnV0dG9uLCB0ZXh0YXJlYSB9KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcGxhY2VyKHsgbmFtZTogJ2xpc3RVbCcsIHJlcGxhY2U6ICcqICQxJywgY29kZW1pcnJvciwgYnV0dG9uLCBtb2RlOiAncmVwbGFjZUxpbmUnIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwge1xuICAgICAgICAgICAgbGlzdE9sOiB7XG4gICAgICAgICAgICAgICAgaWRlbnRpZmllcjogJ2xpc3RPbCcsXG4gICAgICAgICAgICAgICAgdGl0bGU6IHRyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uT1JERVJFRF9MSVNULFxuICAgICAgICAgICAgICAgIGxhYmVsOiAnPGkgY2xhc3M9XCJmYSBmYS1mdyBmYS1saXN0LW9sXCI+PC9pPicsXG4gICAgICAgICAgICAgICAgbW9kZXM6IFsnZ2ZtJywgJ21hcmtkb3duJ10sXG4gICAgICAgICAgICAgICAgYWN0aW9uKHsgY29kZW1pcnJvciwgYnV0dG9uLCB0ZXh0YXJlYSB9KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcGxhY2VyKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdsaXN0T2wnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGFjZTogJy4gJDEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29kZW1pcnJvcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGU6ICdyZXBsYWNlTGluZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBydW5uZXI6IGZ1bmN0aW9uKGxpbmUsIG1hcmt1cCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsaW5lTm8gPSBjb2RlbWlycm9yLmdldExpbmVOdW1iZXIobGluZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHByZXZpb3VzTGluZSA9IGNvZGVtaXJyb3IuZ2V0TGluZShsaW5lTm8gLSAxKSB8fCAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWF0Y2ggPSBwcmV2aW91c0xpbmUubWF0Y2goL14oXFxkKylcXC4vKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHJlZml4ID0gMSArIChtYXRjaCA/IE51bWJlcihtYXRjaFsxXSkgOiAwKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtwcmVmaXh9JHttYXJrdXB9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgXSxcbiAgICBzdGF0ZXM6IFt7XG4gICAgICAgIGNvZGU6IHtcbiAgICAgICAgICAgIGlkZW50aWZpZXI6ICdlZGl0b3InLFxuICAgICAgICAgICAgdGl0bGU6IHRyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uRURJVE9SLFxuICAgICAgICAgICAgbGFiZWw6ICc8aSBjbGFzcz1cImZhIGZhLWZ3IGZhLWNvZGVcIj48L2k+JyxcbiAgICAgICAgICAgIGFjdGlvbih7IGNvZGVtaXJyb3IsIGJ1dHRvbiwgdGV4dGFyZWEsIHVpIH0pIHtcbiAgICAgICAgICAgICAgICBpZiAodGV4dGFyZWEuZGF0YSgnZ3Jhdi1lZGl0b3ItbW9kZScpID09PSAnZWRpdG9yJykge1xuICAgICAgICAgICAgICAgICAgICBidXR0b24uYWRkQ2xhc3MoJ2VkaXRvci1hY3RpdmUnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBidXR0b24ub24oJ2NsaWNrLnN0YXRlcy5lZGl0b3InLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbi5zaWJsaW5ncygpLnJlbW92ZUNsYXNzKCdlZGl0b3ItYWN0aXZlJyk7XG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbi5hZGRDbGFzcygnZWRpdG9yLWFjdGl2ZScpO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0YXJlYS5kYXRhKCdncmF2LWVkaXRvci1tb2RlJywgJ2VkaXRvcicpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgcHJldmlld0NvbnRhaW5lciA9IHRleHRhcmVhLmRhdGEoJ2dyYXYtZWRpdG9yLXByZXZpZXctY29udGFpbmVyJyk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBjb250ZW50ID0gdGV4dGFyZWEucGFyZW50KCcuZ3Jhdi1lZGl0b3ItY29udGVudCcpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYWRkQ2xhc3MoJ2lzLWFjdGl2ZScpO1xuICAgICAgICAgICAgICAgICAgICB1aS5uYXZpZ2F0aW9uLmZpbmQoJy5ncmF2LWVkaXRvci1hY3Rpb25zJykuY3NzKCd2aXNpYmlsaXR5JywgJ3Zpc2libGUnKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZpZXdDb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpZXdDb250YWluZXIucmVtb3ZlQ2xhc3MoJ2lzLWFjdGl2ZScpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCB7XG4gICAgICAgIHByZXZpZXc6IHtcbiAgICAgICAgICAgIGlkZW50aWZpZXI6ICdwcmV2aWV3JyxcbiAgICAgICAgICAgIHRpdGxlOiB0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLlBSRVZJRVcsXG4gICAgICAgICAgICBsYWJlbDogJzxpIGNsYXNzPVwiZmEgZmEtZncgZmEtZXllXCI+PC9pPicsXG4gICAgICAgICAgICBtb2RlczogWydnZm0nLCAnbWFya2Rvd24nXSxcbiAgICAgICAgICAgIGFjdGlvbih7IGNvZGVtaXJyb3IsIGJ1dHRvbiwgdGV4dGFyZWEsIHVpIH0pIHtcbiAgICAgICAgICAgICAgICBpZiAodGV4dGFyZWEuZGF0YSgnZ3Jhdi1lZGl0b3ItbW9kZScpID09PSAncHJldmlldycpIHtcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uLmFkZENsYXNzKCdlZGl0b3ItYWN0aXZlJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJ1dHRvbi5vbignY2xpY2suc3RhdGVzLnByZXZpZXcnLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBwcmV2aWV3Q29udGFpbmVyID0gdGV4dGFyZWEuZGF0YSgnZ3Jhdi1lZGl0b3ItcHJldmlldy1jb250YWluZXInKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNvbnRlbnQgPSB0ZXh0YXJlYS5wYXJlbnQoJy5ncmF2LWVkaXRvci1jb250ZW50Jyk7XG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbi5zaWJsaW5ncygpLnJlbW92ZUNsYXNzKCdlZGl0b3ItYWN0aXZlJyk7XG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbi5hZGRDbGFzcygnZWRpdG9yLWFjdGl2ZScpO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0YXJlYS5kYXRhKCdncmF2LWVkaXRvci1tb2RlJywgJ3ByZXZpZXcnKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoIXByZXZpZXdDb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpZXdDb250YWluZXIgPSAkKCc8ZGl2IGNsYXNzPVwiZ3Jhdi1lZGl0b3ItcHJldmlld1wiIC8+Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFmdGVyKHByZXZpZXdDb250YWluZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dGFyZWEuZGF0YSgnZ3Jhdi1lZGl0b3ItcHJldmlldy1jb250YWluZXInLCBwcmV2aWV3Q29udGFpbmVyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHByZXZpZXdDb250YWluZXIuY3NzKHsgaGVpZ2h0OiBjb250ZW50LmhlaWdodCgpIH0pO1xuICAgICAgICAgICAgICAgICAgICBwcmV2aWV3Q29udGFpbmVyLmFkZENsYXNzKCdpcy1hY3RpdmUnKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudC5yZW1vdmVDbGFzcygnaXMtYWN0aXZlJyk7XG4gICAgICAgICAgICAgICAgICAgIHVpLm5hdmlnYXRpb24uZmluZCgnLmdyYXYtZWRpdG9yLWFjdGlvbnMnKS5jc3MoJ3Zpc2liaWxpdHknLCAnaGlkZGVuJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgbGV0IHVybCA9IGAke3RleHRhcmVhLmRhdGEoJ2dyYXYtdXJscHJldmlldycpfS90YXNrJHtjb25maWcucGFyYW1fc2VwfXByb2Nlc3NtYXJrZG93bmA7XG4gICAgICAgICAgICAgICAgICAgIGxldCBwYXJhbXMgPSB0ZXh0YXJlYS5jbG9zZXN0KCdmb3JtJykuc2VyaWFsaXplQXJyYXkoKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGJvZHkgPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zLm1hcCgob2JqKSA9PiB7IGJvZHlbb2JqLm5hbWVdID0gb2JqLnZhbHVlOyB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmVxdWVzdCh1cmwsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9keVxuICAgICAgICAgICAgICAgICAgICB9LCAocmVzcG9uc2UpID0+IHByZXZpZXdDb250YWluZXIuaHRtbChyZXNwb25zZS5wcmV2aWV3KSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCB7XG4gICAgICAgIGZ1bGxzY3JlZW46IHtcbiAgICAgICAgICAgIGlkZW50aWZpZXI6ICdmdWxsc2NyZWVuJyxcbiAgICAgICAgICAgIHRpdGxlOiB0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLkZVTExTQ1JFRU4sXG4gICAgICAgICAgICBsYWJlbDogJzxpIGNsYXNzPVwiZmEgZmEtZncgZmEtZXhwYW5kXCI+PC9pPicsXG4gICAgICAgICAgICBhY3Rpb24oeyBjb2RlbWlycm9yLCBidXR0b24sIHRleHRhcmVhIH0pIHtcbiAgICAgICAgICAgICAgICBidXR0b24ub24oJ2NsaWNrLmVkaXRvci5mdWxsc2NyZWVuJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgY29udGFpbmVyID0gdGV4dGFyZWEuY2xvc2VzdCgnLmdyYXYtZWRpdG9yJyk7XG4gICAgICAgICAgICAgICAgICAgIGxldCB3cmFwcGVyID0gY29kZW1pcnJvci5nZXRXcmFwcGVyRWxlbWVudCgpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgY29udGVudFdyYXBwZXIgPSAkKCcuY29udGVudC13cmFwcGVyJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjb250YWluZXIuaGFzQ2xhc3MoJ2dyYXYtZWRpdG9yLWZ1bGxzY3JlZW4nKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dGFyZWEuZGF0YSgnZnVsbFNjcmVlblJlc3RvcmUnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG9wOiBnbG9iYWwucGFnZVlPZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsTGVmdDogZ2xvYmFsLnBhZ2VYT2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiB3cmFwcGVyLnN0eWxlLndpZHRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogd3JhcHBlci5zdHlsZS5oZWlnaHRcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB3cmFwcGVyLnN0eWxlLndpZHRoID0gJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICB3cmFwcGVyLnN0eWxlLmhlaWdodCA9IHRleHRhcmVhLnBhcmVudCgnLmdyYXYtZWRpdG9yLWNvbnRlbnQnKS5oZWlnaHQoKSArICdweCc7XG4gICAgICAgICAgICAgICAgICAgICAgICBnbG9iYWwuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBoaW50cyA9IGNvbnRhaW5lci5maW5kKCcuZ3Jhdi1lZGl0b3ItdG9vbGJhciAuaGludC0tdG9wJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoaW50cykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRzLnJlbW92ZUNsYXNzKCdoaW50LS10b3AnKS5hZGRDbGFzcygnaGludC0tYm90dG9tJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChoaW50c1toaW50cy5sZW5ndGggLSAxXSkuYWRkQ2xhc3MoJ2hpbnQtLWJvdHRvbS1sZWZ0Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29udGVudFdyYXBwZXIpIHsgY29udGVudFdyYXBwZXIuY3NzKCdvdmVyZmxvdycsICd2aXNpYmxlJyk7IH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbC5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUub3ZlcmZsb3cgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzdGF0ZSA9IHRleHRhcmVhLmRhdGEoJ2Z1bGxTY3JlZW5SZXN0b3JlJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHdyYXBwZXIuc3R5bGUud2lkdGggPSBzdGF0ZS53aWR0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdyYXBwZXIuc3R5bGUuaGVpZ2h0ID0gc3RhdGUuaGVpZ2h0O1xuICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsLnNjcm9sbFRvKHN0YXRlLnNjcm9sbExlZnQsIHN0YXRlLnNjcm9sbFRvcCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBoaW50cyA9IGNvbnRhaW5lci5maW5kKCcuZ3Jhdi1lZGl0b3ItdG9vbGJhciAuaGludC0tYm90dG9tJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoaW50cykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnRzLnJlbW92ZUNsYXNzKCdoaW50LS1ib3R0b20nKS5hZGRDbGFzcygnaGludC0tdG9wJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChoaW50c1toaW50cy5sZW5ndGggLSAxXSkucmVtb3ZlQ2xhc3MoJ2hpbnQtLWJvdHRvbS1sZWZ0Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29udGVudFdyYXBwZXIpIHsgY29udGVudFdyYXBwZXIuY3NzKCdvdmVyZmxvdycsICdhdXRvJyk7IH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci50b2dnbGVDbGFzcygnZ3Jhdi1lZGl0b3ItZnVsbHNjcmVlbicpO1xuXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29kZW1pcnJvci5yZWZyZXNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLnByZXZpZXcucGFyZW50KCkuY3NzKCdoZWlnaHQnLCB0aGlzLmNvZGUuaGVpZ2h0KCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJChnbG9iYWwpLnRyaWdnZXIoJ3Jlc2l6ZScpO1xuICAgICAgICAgICAgICAgICAgICB9LCA1KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1dXG59O1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/forms/fields/editor/buttons.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/forms/fields/filepicker.js":
|
|
/*!****************************************!*\
|
|
!*** ./app/forms/fields/filepicker.js ***!
|
|
\****************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ FilePickerField),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/request */ \"./app/utils/request.js\");\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); return Constructor; }\n\n\n\n // const insertTextAt = (string, index, text) => [string.slice(0, index), text, string.slice(index)].join('');\n\nvar FilePickerField = /*#__PURE__*/function () {\n function FilePickerField(options) {\n var _this = this;\n\n _classCallCheck(this, FilePickerField);\n\n this.items = jquery__WEBPACK_IMPORTED_MODULE_0___default()();\n this.options = Object.assign({}, this.defaults, options);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-grav-filepicker]').each(function (index, element) {\n return _this.addItem(element);\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('mutation._grav', this._onAddedNodes.bind(this));\n }\n\n _createClass(FilePickerField, [{\n key: \"_onAddedNodes\",\n value: function _onAddedNodes(event, target\n /* , record, instance */\n ) {\n var _this2 = this;\n\n var fields = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target).find('[data-grav-filepicker]');\n\n if (!fields.length) {\n return;\n }\n\n fields.each(function (index, field) {\n field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(field);\n\n if (!~_this2.items.index(field)) {\n _this2.addItem(field);\n }\n });\n }\n }, {\n key: \"addItem\",\n value: function addItem(element) {\n element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n this.items = this.items.add(element);\n var tag = element.prop('tagName').toLowerCase();\n var isInput = tag === 'input' || tag === 'select';\n var field = isInput ? element : element.find('input, select');\n var folder = '';\n var thumbs = {};\n var onDemand = field.closest('[data-ondemand]').length > 0;\n\n if (!field.length || field.get(0).selectize) {\n return;\n }\n\n var getData = function getData(field, callback) {\n var mode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'all';\n var url = grav_config__WEBPACK_IMPORTED_MODULE_1__.config.current_url + \".json/task\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep, \"getFilesInFolder\");\n var parent = field.closest('[data-grav-filepicker]');\n var name = parent.data('name');\n var value = parent.data('value');\n var params = JSON.stringify(grav_config__WEBPACK_IMPORTED_MODULE_1__.uri_params || '{}');\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__.default)(url, {\n method: 'post',\n body: {\n name: name,\n params: params\n }\n }, function (response) {\n if (typeof response.files === 'undefined') {\n return;\n }\n\n var data = [];\n thumbs = response.thumbs || {};\n\n for (var i = 0; i < response.files.length; i++) {\n if (mode === 'selected' && response.files[i] !== value) {\n continue;\n }\n\n data.push({\n 'name': response.files[i],\n 'status': 'available',\n thumb: thumbs[response.files[i]] || ''\n });\n }\n\n for (var _i = 0; _i < response.pending.length; _i++) {\n if (mode === 'selected' && response.pending[_i] !== value) {\n continue;\n }\n\n data.push({\n 'name': response.pending[_i],\n 'status': 'pending',\n thumb: thumbs[response.pending[_i]] || ''\n });\n }\n\n folder = response.folder;\n callback(data, value);\n });\n };\n\n var imagesPreview = field.closest('[data-preview-images]').length > 0;\n var selectedIsRendered = false;\n\n var renderOption = function renderOption(item, escape) {\n var image = '';\n\n if (imagesPreview && folder && (!item.status || item.status === 'available') && item.name.match(/\\.(jpg|jpeg|png|gif)$/i)) {\n // const fallback2x = insertTextAt(`${config.base_url_relative}/../${folder}/${item.name}`, -4, '@2x');\n // const fallback3x = insertTextAt(`${config.base_url_relative}/../${folder}/${item.name}`, -4, '@3x');\n var source = thumbs[item.name] || \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/../\").concat(folder, \"/\").concat(item.name); // onerror=\"if(this.src==='${fallback2x}'){this.src='${fallback3x}';}else{this.src='${fallback2x}'}\"\n\n image = \"<img class=\\\"filepicker-field-image\\\" src=\\\"\".concat(source, \"\\\" />\");\n }\n\n return \"<div>\\n <span class=\\\"title\\\">\\n \".concat(image, \" <span class=\\\"name filepicker-field-name\\\">\").concat(escape(item.name), \"</span>\\n </span>\\n </div>\");\n };\n\n field.selectize({\n plugins: ['required-fix'],\n valueField: 'name',\n labelField: 'name',\n searchField: 'name',\n optgroups: [{\n $order: 1,\n value: 'pending',\n label: 'Pending'\n }, {\n $order: 2,\n value: 'available',\n label: 'Available'\n }],\n optgroupField: 'status',\n // lockOptgroupOrder: true,\n create: false,\n preload: false,\n // 'focus',\n render: {\n option: function option(item, escape) {\n return renderOption(item, escape);\n },\n item: function item(_item, escape) {\n return renderOption(_item, escape);\n }\n },\n onInitialize: function onInitialize() {\n if (!onDemand) {\n this.load(function (callback) {\n return getData(field, function (data) {\n return callback(data);\n }, 'selected');\n });\n }\n },\n onLoad: function onLoad()\n /* data */\n {\n if (!selectedIsRendered) {\n var name = this.getValue();\n this.updateOption(name, {\n name: name\n });\n selectedIsRendered = true;\n }\n },\n onFocus: function onFocus() {\n this.load(function (callback) {\n return getData(field, function (data) {\n return callback(data);\n });\n });\n }\n });\n }\n }]);\n\n return FilePickerField;\n}();\n\n\nvar Instance = new FilePickerField();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL2ZpZWxkcy9maWxlcGlja2VyLmpzPzcxM2QiXSwibmFtZXMiOlsiRmlsZVBpY2tlckZpZWxkIiwib3B0aW9ucyIsIml0ZW1zIiwiJCIsIk9iamVjdCIsImFzc2lnbiIsImRlZmF1bHRzIiwiZWFjaCIsImluZGV4IiwiZWxlbWVudCIsImFkZEl0ZW0iLCJvbiIsIl9vbkFkZGVkTm9kZXMiLCJiaW5kIiwiZXZlbnQiLCJ0YXJnZXQiLCJmaWVsZHMiLCJmaW5kIiwibGVuZ3RoIiwiZmllbGQiLCJhZGQiLCJ0YWciLCJwcm9wIiwidG9Mb3dlckNhc2UiLCJpc0lucHV0IiwiZm9sZGVyIiwidGh1bWJzIiwib25EZW1hbmQiLCJjbG9zZXN0IiwiZ2V0Iiwic2VsZWN0aXplIiwiZ2V0RGF0YSIsImNhbGxiYWNrIiwibW9kZSIsInVybCIsImNvbmZpZyIsInBhcmVudCIsIm5hbWUiLCJkYXRhIiwidmFsdWUiLCJwYXJhbXMiLCJKU09OIiwic3RyaW5naWZ5IiwidXJpX3BhcmFtcyIsInJlcXVlc3QiLCJtZXRob2QiLCJib2R5IiwicmVzcG9uc2UiLCJmaWxlcyIsImkiLCJwdXNoIiwidGh1bWIiLCJwZW5kaW5nIiwiaW1hZ2VzUHJldmlldyIsInNlbGVjdGVkSXNSZW5kZXJlZCIsInJlbmRlck9wdGlvbiIsIml0ZW0iLCJlc2NhcGUiLCJpbWFnZSIsInN0YXR1cyIsIm1hdGNoIiwic291cmNlIiwicGx1Z2lucyIsInZhbHVlRmllbGQiLCJsYWJlbEZpZWxkIiwic2VhcmNoRmllbGQiLCJvcHRncm91cHMiLCIkb3JkZXIiLCJsYWJlbCIsIm9wdGdyb3VwRmllbGQiLCJjcmVhdGUiLCJwcmVsb2FkIiwicmVuZGVyIiwib3B0aW9uIiwib25Jbml0aWFsaXplIiwibG9hZCIsIm9uTG9hZCIsImdldFZhbHVlIiwidXBkYXRlT3B0aW9uIiwib25Gb2N1cyIsIkluc3RhbmNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7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Q0osU0FwQ1c7QUFzQ1p5QixlQUFPLEVBQUUsbUJBQVc7QUFDaEIsZUFBS0osSUFBTCxDQUFVLFVBQUMzQyxRQUFEO0FBQUEsbUJBQWNELE9BQU8sQ0FBQ1osS0FBRCxFQUFRLFVBQUNtQixJQUFEO0FBQUEscUJBQVVOLFFBQVEsQ0FBQ00sSUFBRCxDQUFsQjtBQUFBLGFBQVIsQ0FBckI7QUFBQSxXQUFWO0FBQ0g7QUF4Q1csT0FBaEI7QUEwQ0g7Ozs7Ozs7QUFHRSxJQUFJMEMsUUFBUSxHQUFHLElBQUloRixlQUFKLEVBQWYiLCJmaWxlIjoiLi9hcHAvZm9ybXMvZmllbGRzL2ZpbGVwaWNrZXIuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IHsgY29uZmlnLCB1cmlfcGFyYW1zIH0gZnJvbSAnZ3Jhdi1jb25maWcnO1xuaW1wb3J0IHJlcXVlc3QgZnJvbSAnLi4vLi4vdXRpbHMvcmVxdWVzdCc7XG5cbi8vIGNvbnN0IGluc2VydFRleHRBdCA9IChzdHJpbmcsIGluZGV4LCB0ZXh0KSA9PiBbc3RyaW5nLnNsaWNlKDAsIGluZGV4KSwgdGV4dCwgc3RyaW5nLnNsaWNlKGluZGV4KV0uam9pbignJyk7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZpbGVQaWNrZXJGaWVsZCB7XG5cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHRoaXMuaXRlbXMgPSAkKCk7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZGVmYXVsdHMsIG9wdGlvbnMpO1xuXG4gICAgICAgICQoJ1tkYXRhLWdyYXYtZmlsZXBpY2tlcl0nKS5lYWNoKChpbmRleCwgZWxlbWVudCkgPT4gdGhpcy5hZGRJdGVtKGVsZW1lbnQpKTtcbiAgICAgICAgJCgnYm9keScpLm9uKCdtdXRhdGlvbi5fZ3JhdicsIHRoaXMuX29uQWRkZWROb2Rlcy5iaW5kKHRoaXMpKTtcbiAgICB9XG5cbiAgICBfb25BZGRlZE5vZGVzKGV2ZW50LCB0YXJnZXQvKiAsIHJlY29yZCwgaW5zdGFuY2UgKi8pIHtcbiAgICAgICAgbGV0IGZpZWxkcyA9ICQodGFyZ2V0KS5maW5kKCdbZGF0YS1ncmF2LWZpbGVwaWNrZXJdJyk7XG4gICAgICAgIGlmICghZmllbGRzLmxlbmd0aCkgeyByZXR1cm47IH1cblxuICAgICAgICBmaWVsZHMuZWFjaCgoaW5kZXgsIGZpZWxkKSA9PiB7XG4gICAgICAgICAgICBmaWVsZCA9ICQoZmllbGQpO1xuICAgICAgICAgICAgaWYgKCF+dGhpcy5pdGVtcy5pbmRleChmaWVsZCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZEl0ZW0oZmllbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhZGRJdGVtKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudCA9ICQoZWxlbWVudCk7XG4gICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLml0ZW1zLmFkZChlbGVtZW50KTtcblxuICAgICAgICBsZXQgdGFnID0gZWxlbWVudC5wcm9wKCd0YWdOYW1lJykudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgbGV0IGlzSW5wdXQgPSB0YWcgPT09ICdpbnB1dCcgfHwgdGFnID09PSAnc2VsZWN0JztcblxuICAgICAgICBsZXQgZmllbGQgPSAoaXNJbnB1dCA/IGVsZW1lbnQgOiBlbGVtZW50LmZpbmQoJ2lucHV0LCBzZWxlY3QnKSk7XG5cbiAgICAgICAgbGV0IGZvbGRlciA9ICcnO1xuICAgICAgICBsZXQgdGh1bWJzID0ge307XG5cbiAgICAgICAgbGV0IG9uRGVtYW5kID0gZmllbGQuY2xvc2VzdCgnW2RhdGEtb25kZW1hbmRdJykubGVuZ3RoID4gMDtcblxuICAgICAgICBpZiAoIWZpZWxkLmxlbmd0aCB8fCBmaWVsZC5nZXQoMCkuc2VsZWN0aXplKSB7IHJldHVybjsgfVxuXG4gICAgICAgIGxldCBnZXREYXRhID0gZnVuY3Rpb24gZ2V0RGF0YShmaWVsZCwgY2FsbGJhY2ssIG1vZGUgPSAnYWxsJykge1xuICAgICAgICAgICAgbGV0IHVybCA9IGNvbmZpZy5jdXJyZW50X3VybCArIGAuanNvbi90YXNrJHtjb25maWcucGFyYW1fc2VwfWdldEZpbGVzSW5Gb2xkZXJgO1xuICAgICAgICAgICAgbGV0IHBhcmVudCA9IGZpZWxkLmNsb3Nlc3QoJ1tkYXRhLWdyYXYtZmlsZXBpY2tlcl0nKTtcbiAgICAgICAgICAgIGxldCBuYW1lID0gcGFyZW50LmRhdGEoJ25hbWUnKTtcbiAgICAgICAgICAgIGxldCB2YWx1ZSA9IHBhcmVudC5kYXRhKCd2YWx1ZScpO1xuICAgICAgICAgICAgbGV0IHBhcmFtcyA9IEpTT04uc3RyaW5naWZ5KHVyaV9wYXJhbXMgfHwgJ3t9Jyk7XG5cbiAgICAgICAgICAgIHJlcXVlc3QodXJsLCB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICAgICAgICAgICAgYm9keTogeyBuYW1lLCBwYXJhbXMgfVxuICAgICAgICAgICAgfSwgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiByZXNwb25zZS5maWxlcyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGxldCBkYXRhID0gW107XG4gICAgICAgICAgICAgICAgdGh1bWJzID0gcmVzcG9uc2UudGh1bWJzIHx8IHt9O1xuXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNwb25zZS5maWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBpZiAobW9kZSA9PT0gJ3NlbGVjdGVkJyAmJiByZXNwb25zZS5maWxlc1tpXSAhPT0gdmFsdWUpIHsgY29udGludWU7IH1cbiAgICAgICAgICAgICAgICAgICAgZGF0YS5wdXNoKHsgJ25hbWUnOiByZXNwb25zZS5maWxlc1tpXSwgJ3N0YXR1cyc6ICdhdmFpbGFibGUnLCB0aHVtYjogdGh1bWJzW3Jlc3BvbnNlLmZpbGVzW2ldXSB8fCAnJyB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlc3BvbnNlLnBlbmRpbmcubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGUgPT09ICdzZWxlY3RlZCcgJiYgcmVzcG9uc2UucGVuZGluZ1tpXSAhPT0gdmFsdWUpIHsgY29udGludWU7IH1cbiAgICAgICAgICAgICAgICAgICAgZGF0YS5wdXNoKHsgJ25hbWUnOiByZXNwb25zZS5wZW5kaW5nW2ldLCAnc3RhdHVzJzogJ3BlbmRpbmcnLCB0aHVtYjogdGh1bWJzW3Jlc3BvbnNlLnBlbmRpbmdbaV1dIHx8ICcnIH0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGZvbGRlciA9IHJlc3BvbnNlLmZvbGRlcjtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayhkYXRhLCB2YWx1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICBsZXQgaW1hZ2VzUHJldmlldyA9IGZpZWxkLmNsb3Nlc3QoJ1tkYXRhLXByZXZpZXctaW1hZ2VzXScpLmxlbmd0aCA+IDA7XG4gICAgICAgIGxldCBzZWxlY3RlZElzUmVuZGVyZWQgPSBmYWxzZTtcblxuICAgICAgICBsZXQgcmVuZGVyT3B0aW9uID0gZnVuY3Rpb24gcmVuZGVyT3B0aW9uKGl0ZW0sIGVzY2FwZSkge1xuICAgICAgICAgICAgbGV0IGltYWdlID0gJyc7XG4gICAgICAgICAgICBpZiAoaW1hZ2VzUHJldmlldyAmJiBmb2xkZXIgJiYgKCFpdGVtLnN0YXR1cyB8fCBpdGVtLnN0YXR1cyA9PT0gJ2F2YWlsYWJsZScpICYmIGl0ZW0ubmFtZS5tYXRjaCgvXFwuKGpwZ3xqcGVnfHBuZ3xnaWYpJC9pKSkge1xuICAgICAgICAgICAgICAgIC8vIGNvbnN0IGZhbGxiYWNrMnggPSBpbnNlcnRUZXh0QXQoYCR7Y29uZmlnLmJhc2VfdXJsX3JlbGF0aXZlfS8uLi8ke2ZvbGRlcn0vJHtpdGVtLm5hbWV9YCwgLTQsICdAMngnKTtcbiAgICAgICAgICAgICAgICAvLyBjb25zdCBmYWxsYmFjazN4ID0gaW5zZXJ0VGV4dEF0KGAke2NvbmZpZy5iYXNlX3VybF9yZWxhdGl2ZX0vLi4vJHtmb2xkZXJ9LyR7aXRlbS5uYW1lfWAsIC00LCAnQDN4Jyk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc291cmNlID0gdGh1bWJzW2l0ZW0ubmFtZV0gfHwgYCR7Y29uZmlnLmJhc2VfdXJsX3JlbGF0aXZlfS8uLi8ke2ZvbGRlcn0vJHtpdGVtLm5hbWV9YDtcblxuICAgICAgICAgICAgICAgIC8vIG9uZXJyb3I9XCJpZih0aGlzLnNyYz09PScke2ZhbGxiYWNrMnh9Jyl7dGhpcy5zcmM9JyR7ZmFsbGJhY2szeH0nO31lbHNle3RoaXMuc3JjPScke2ZhbGxiYWNrMnh9J31cIlxuICAgICAgICAgICAgICAgIGltYWdlID0gYDxpbWcgY2xhc3M9XCJmaWxlcGlja2VyLWZpZWxkLWltYWdlXCIgc3JjPVwiJHtzb3VyY2V9XCIgLz5gO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtpbWFnZX0gPHNwYW4gY2xhc3M9XCJuYW1lIGZpbGVwaWNrZXItZmllbGQtbmFtZVwiPiR7ZXNjYXBlKGl0ZW0ubmFtZSl9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5gO1xuICAgICAgICB9O1xuXG4gICAgICAgIGZpZWxkLnNlbGVjdGl6ZSh7XG4gICAgICAgICAgICBwbHVnaW5zOiBbJ3JlcXVpcmVkLWZpeCddLFxuICAgICAgICAgICAgdmFsdWVGaWVsZDogJ25hbWUnLFxuICAgICAgICAgICAgbGFiZWxGaWVsZDogJ25hbWUnLFxuICAgICAgICAgICAgc2VhcmNoRmllbGQ6ICduYW1lJyxcbiAgICAgICAgICAgIG9wdGdyb3VwczogW1xuICAgICAgICAgICAgICAgIHskb3JkZXI6IDEsIHZhbHVlOiAncGVuZGluZycsIGxhYmVsOiAnUGVuZGluZyd9LFxuICAgICAgICAgICAgICAgIHskb3JkZXI6IDIsIHZhbHVlOiAnYXZhaWxhYmxlJywgbGFiZWw6ICdBdmFpbGFibGUnfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIG9wdGdyb3VwRmllbGQ6ICdzdGF0dXMnLFxuICAgICAgICAgICAgLy8gbG9ja09wdGdyb3VwT3JkZXI6IHRydWUsXG4gICAgICAgICAgICBjcmVhdGU6IGZhbHNlLFxuICAgICAgICAgICAgcHJlbG9hZDogZmFsc2UsIC8vICdmb2N1cycsXG4gICAgICAgICAgICByZW5kZXI6IHtcbiAgICAgICAgICAgICAgICBvcHRpb246IGZ1bmN0aW9uKGl0ZW0sIGVzY2FwZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVuZGVyT3B0aW9uKGl0ZW0sIGVzY2FwZSk7XG4gICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgIGl0ZW06IGZ1bmN0aW9uKGl0ZW0sIGVzY2FwZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVuZGVyT3B0aW9uKGl0ZW0sIGVzY2FwZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgb25Jbml0aWFsaXplOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICBpZiAoIW9uRGVtYW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZCgoY2FsbGJhY2spID0+IGdldERhdGEoZmllbGQsIChkYXRhKSA9PiBjYWxsYmFjayhkYXRhKSwgJ3NlbGVjdGVkJykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIG9uTG9hZDogZnVuY3Rpb24oLyogZGF0YSAqLykge1xuICAgICAgICAgICAgICAgIGlmICghc2VsZWN0ZWRJc1JlbmRlcmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBuYW1lID0gdGhpcy5nZXRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZU9wdGlvbihuYW1lLCB7IG5hbWUgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJc1JlbmRlcmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBvbkZvY3VzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQoKGNhbGxiYWNrKSA9PiBnZXREYXRhKGZpZWxkLCAoZGF0YSkgPT4gY2FsbGJhY2soZGF0YSkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5leHBvcnQgbGV0IEluc3RhbmNlID0gbmV3IEZpbGVQaWNrZXJGaWVsZCgpO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/forms/fields/filepicker.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/forms/fields/files.js":
|
|
/*!***********************************!*\
|
|
!*** ./app/forms/fields/files.js ***!
|
|
\***********************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ FilesField),\n/* harmony export */ \"UriToMarkdown\": () => (/* binding */ UriToMarkdown),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var dropzone__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! dropzone */ \"./node_modules/dropzone/dist/dropzone.js\");\n/* harmony import */ var dropzone__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(dropzone__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/request */ \"./app/utils/request.js\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_3__);\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); return Constructor; }\n\n\n // import EXIF from 'exif-js';\n\n\n // translations\n\nvar Dictionary = {\n dictCancelUpload: grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.DROPZONE_CANCEL_UPLOAD,\n dictCancelUploadConfirmation: grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.DROPZONE_CANCEL_UPLOAD_CONFIRMATION,\n dictDefaultMessage: grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.DROPZONE_DEFAULT_MESSAGE,\n dictFallbackMessage: grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.DROPZONE_FALLBACK_MESSAGE,\n dictFallbackText: grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.DROPZONE_FALLBACK_TEXT,\n dictFileTooBig: grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.DROPZONE_FILE_TOO_BIG,\n dictInvalidFileType: grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.DROPZONE_INVALID_FILE_TYPE,\n dictMaxFilesExceeded: grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.DROPZONE_MAX_FILES_EXCEEDED,\n dictRemoveFile: grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.DROPZONE_REMOVE_FILE,\n dictResponseError: grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.DROPZONE_RESPONSE_ERROR\n};\n(dropzone__WEBPACK_IMPORTED_MODULE_1___default().autoDiscover) = false;\n(dropzone__WEBPACK_IMPORTED_MODULE_1___default().options.gravPageDropzone) = {};\n\n(dropzone__WEBPACK_IMPORTED_MODULE_1___default().confirm) = function (question, accepted, rejected) {\n var doc = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n var modalSelector = '[data-remodal-id=\"delete-media\"]';\n\n var removeEvents = function removeEvents() {\n doc.off('confirmation', modalSelector, accept);\n doc.off('cancellation', modalSelector, reject);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(modalSelector).find('.remodal-confirm').removeClass('pointer-events-disabled');\n };\n\n var accept = function accept() {\n accepted && accepted();\n removeEvents();\n };\n\n var reject = function reject() {\n rejected && rejected();\n removeEvents();\n };\n\n (jquery__WEBPACK_IMPORTED_MODULE_0___default().remodal.lookup)[jquery__WEBPACK_IMPORTED_MODULE_0___default()(modalSelector).data('remodal')].open();\n doc.on('confirmation', modalSelector, accept);\n doc.on('cancellation', modalSelector, reject);\n};\n\nvar DropzoneMediaConfig = {\n timeout: 0,\n thumbnailWidth: 200,\n thumbnailHeight: 150,\n addRemoveLinks: false,\n dictDefaultMessage: grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.DROP_FILES_HERE_TO_UPLOAD.replace(/</g, '<').replace(/>/g, '>'),\n dictRemoveFileConfirmation: '[placeholder]',\n previewTemplate: \"\\n <div class=\\\"dz-preview dz-file-preview dz-no-editor\\\">\\n <div class=\\\"dz-details\\\">\\n <div class=\\\"dz-filename\\\"><span data-dz-name></span></div>\\n <div class=\\\"dz-size\\\" data-dz-size></div>\\n <img data-dz-thumbnail />\\n </div>\\n <div class=\\\"dz-progress\\\"><span class=\\\"dz-upload\\\" data-dz-uploadprogress></span></div>\\n <div class=\\\"dz-success-mark\\\"><span>\\u2714</span></div>\\n <div class=\\\"dz-error-mark\\\"><span>\\u2718</span></div>\\n <div class=\\\"dz-error-message\\\"><span data-dz-errormessage></span></div>\\n <a class=\\\"dz-unset\\\" title=\\\"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.UNSET, \"\\\" href=\\\"#\\\" data-dz-unset>\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.UNSET, \"</a>\\n <a class=\\\"dz-remove\\\" title=\\\"\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.DELETE, \"\\\" href=\\\"javascript:undefined;\\\" data-dz-remove>\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.DELETE, \"</a>\\n <a class=\\\"dz-metadata\\\" title=\\\"\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.METADATA, \"\\\" href=\\\"#\\\" target=\\\"_blank\\\" data-dz-metadata>\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.METADATA, \"</a>\\n <a class=\\\"dz-view\\\" title=\\\"\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.VIEW, \"\\\" href=\\\"#\\\" target=\\\"_blank\\\" data-dz-view>\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.VIEW, \"</a>\\n </div>\").trim()\n}; // global.EXIF = EXIF;\n\nvar ACCEPT_FUNC = function ACCEPT_FUNC(file, done, settings) {\n var resolution = settings.resolution;\n if (!resolution) return done();\n var reader = new FileReader();\n var error = '';\n var hasMin = resolution.min && (resolution.min.width || resolution.min.height);\n var hasMax = resolution.max && (resolution.max.width || resolution.max.height);\n\n if (hasMin || !(settings.resizeWidth || settings.resizeHeight) && hasMax) {\n reader.onload = function (event) {\n var image = new Image();\n image.src = event.target.result;\n\n image.onerror = function () {\n done(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.FILE_ERROR_UPLOAD);\n };\n\n image.onload = function () {\n var _this = this;\n\n if (resolution.min) {\n Object.keys(resolution.min).forEach(function (attr) {\n if (resolution.min[attr] && _this[attr] < resolution.min[attr]) {\n error += grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_FORM.RESOLUTION_MIN.replace(/{{attr}}/g, attr).replace(/{{min}}/g, resolution.min[attr]);\n }\n });\n }\n\n if (!(settings.resizeWidth || settings.resizeHeight)) {\n if (resolution.max) {\n Object.keys(resolution.max).forEach(function (attr) {\n if (resolution.max[attr] && _this[attr] > resolution.max[attr]) {\n error += grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_FORM.RESOLUTION_MAX.replace(/{{attr}}/g, attr).replace(/{{max}}/g, resolution.max[attr]);\n }\n });\n }\n }\n\n URL.revokeObjectURL(image.src); // release memory\n\n return error ? done(error) : done();\n };\n };\n\n reader.readAsDataURL(file);\n } else {\n return error ? done(error) : done();\n }\n};\n\nvar FilesField = /*#__PURE__*/function () {\n function FilesField() {\n var _this2 = this;\n\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$container = _ref.container,\n container = _ref$container === void 0 ? '.dropzone.files-upload' : _ref$container,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options;\n\n _classCallCheck(this, FilesField);\n\n this.container = jquery__WEBPACK_IMPORTED_MODULE_0___default()(container);\n\n if (!this.container.length) {\n return;\n }\n\n this.urls = {};\n this.customPost = this.container.data('filePostAdd') || {};\n this.options = Object.assign({}, Dictionary, DropzoneMediaConfig, {\n klass: this,\n url: this.container.data('file-url-add') || grav_config__WEBPACK_IMPORTED_MODULE_3__.config.current_url,\n acceptedFiles: this.container.data('media-types'),\n init: this.initDropzone\n }, this.container.data('dropzone-options'), options);\n this.options = Object.assign({}, this.options, {\n accept: function accept(file, done) {\n ACCEPT_FUNC(file, done, this.options);\n }\n });\n this.dropzone = new (dropzone__WEBPACK_IMPORTED_MODULE_1___default())(container, this.options);\n this.dropzone.on('complete', this.onDropzoneComplete.bind(this));\n this.dropzone.on('success', this.onDropzoneSuccess.bind(this));\n this.dropzone.on('removedfile', this.onDropzoneRemovedFile.bind(this));\n this.dropzone.on('sending', this.onDropzoneSending.bind(this));\n this.dropzone.on('error', this.onDropzoneError.bind(this));\n this.container.on('mouseenter', '[data-dz-view]', function (e) {\n var value = JSON.parse(_this2.container.find('[name][type=\"hidden\"]').val() || '{}');\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.currentTarget);\n var file = target.parent('.dz-preview').find('.dz-filename');\n var filename = encodeURI(file.text());\n var URL = Object.keys(value).filter(function (key) {\n return value[key].name === filename;\n }).shift();\n target.attr('href', \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.config.base_url_simple, \"/\").concat(URL));\n });\n }\n\n _createClass(FilesField, [{\n key: \"initDropzone\",\n value: function initDropzone() {\n var _this3 = this;\n\n var files = this.options.klass.container.find('[data-file]');\n var dropzone = this;\n\n if (!files.length) {\n return;\n }\n\n files.each(function (index, file) {\n file = jquery__WEBPACK_IMPORTED_MODULE_0___default()(file);\n var data = file.data('file');\n var mock = {\n name: data.name,\n size: data.size,\n type: data.type,\n status: (dropzone__WEBPACK_IMPORTED_MODULE_1___default().ADDED),\n accepted: true,\n url: _this3.options.url,\n removeUrl: data.remove\n };\n dropzone.files.push(mock);\n dropzone.options.addedfile.call(dropzone, mock);\n\n if (mock.type.match(/^image\\//)) {\n dropzone.options.thumbnail.call(dropzone, mock, data.path);\n dropzone.createThumbnailFromUrl(mock, data.path);\n }\n\n file.remove();\n });\n }\n }, {\n key: \"getURI\",\n value: function getURI() {\n return this.container.data('mediaUri') || '';\n }\n }, {\n key: \"onDropzoneSending\",\n value: function onDropzoneSending(file, xhr, formData) {\n var _this4 = this;\n\n if (Object.keys(this.customPost).length) {\n Object.keys(this.customPost).forEach(function (key) {\n formData.append(key, _this4.customPost[key]);\n });\n } else {\n formData.append('name', this.options.dotNotation);\n formData.append('task', 'filesupload');\n formData.append('uri', this.getURI());\n }\n\n formData.append('admin-nonce', grav_config__WEBPACK_IMPORTED_MODULE_3__.config.admin_nonce);\n }\n }, {\n key: \"onDropzoneSuccess\",\n value: function onDropzoneSuccess(file, response, xhr) {\n response = typeof response === 'string' ? JSON.parse(response) : response;\n\n if (this.options.reloadPage) {\n __webpack_require__.g.location.reload();\n } // store params for removing file from session before it gets saved\n\n\n if (response.session) {\n file.sessionParams = response.session;\n file.removeUrl = this.options.url; // Touch field value to force a mutation detection\n\n var input = this.container.find('[name][type=\"hidden\"]');\n var value = input.val();\n input.val(value + ' ');\n }\n\n return this.handleError({\n file: file,\n data: response,\n mode: 'removeFile',\n msg: \"<p>\".concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.FILE_ERROR_UPLOAD, \" <strong>\").concat(file.name, \"</strong></p>\\n <pre>\").concat(response.message, \"</pre>\")\n });\n }\n }, {\n key: \"onDropzoneComplete\",\n value: function onDropzoneComplete(file) {\n if (!file.accepted && !file.rejected) {\n var data = {\n status: 'error',\n message: \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.FILE_UNSUPPORTED, \": \").concat(file.name.match(/\\..+/).join(''))\n };\n return this.handleError({\n file: file,\n data: data,\n mode: 'removeFile',\n msg: \"<p>\".concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.FILE_ERROR_ADD, \" <strong>\").concat(file.name, \"</strong></p>\\n <pre>\").concat(data.message, \"</pre>\")\n });\n }\n\n if (this.options.reloadPage) {\n __webpack_require__.g.location.reload();\n }\n }\n }, {\n key: \"b64_to_utf8\",\n value: function b64_to_utf8(str) {\n str = str.replace(/\\s/g, '');\n return decodeURIComponent(escape(window.atob(str)));\n }\n }, {\n key: \"onDropzoneRemovedFile\",\n value: function onDropzoneRemovedFile(file) {\n var _this5 = this;\n\n if (!file.accepted || file.rejected) {\n return;\n }\n\n var url = file.removeUrl || this.urls[\"delete\"] || this.options.url;\n var path = (url || '').match(/path:(.*)\\//);\n var body = {\n filename: file.name,\n uri: this.getURI()\n };\n\n if (file.sessionParams) {\n body.task = 'filessessionremove';\n body.session = file.sessionParams;\n }\n\n var customPost = this.container.data('filePostRemove') || {};\n\n if (Object.keys(customPost).length) {\n body = {};\n Object.keys(customPost).forEach(function (key) {\n body[key] = customPost[key];\n });\n }\n\n body['filename'] = file.name;\n body['admin-nonce'] = grav_config__WEBPACK_IMPORTED_MODULE_3__.config.admin_nonce;\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__.default)(url, {\n method: 'post',\n body: body\n }, function () {\n if (!path) {\n return;\n }\n\n path = _this5.b64_to_utf8(path[1]);\n\n var input = _this5.container.find('[name][type=\"hidden\"]');\n\n var data = JSON.parse(input.val() || '{}');\n delete data[path];\n input.val(JSON.stringify(data));\n });\n }\n }, {\n key: \"onDropzoneError\",\n value: function onDropzoneError(file, response, xhr) {\n var message = xhr ? response.error.message : response;\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(file.previewElement).find('[data-dz-errormessage]').html(message);\n return this.handleError({\n file: file,\n data: {\n status: 'error'\n },\n msg: \"<pre>\".concat(message, \"</pre>\")\n });\n }\n }, {\n key: \"handleError\",\n value: function handleError(options) {\n var file = options.file,\n data = options.data,\n mode = options.mode,\n msg = options.msg;\n\n if (data.status !== 'error' && data.status !== 'unauthorized') {\n return;\n }\n\n switch (mode) {\n case 'addBack':\n if (file instanceof File) {\n this.dropzone.addFile.call(this.dropzone, file);\n } else {\n this.dropzone.files.push(file);\n this.dropzone.options.addedfile.call(this.dropzone, file);\n this.dropzone.options.thumbnail.call(this.dropzone, file, file.extras.url);\n }\n\n break;\n\n case 'removeFile':\n default:\n if (~this.dropzone.files.indexOf(file)) {\n file.rejected = true;\n this.dropzone.removeFile.call(this.dropzone, file, {\n silent: true\n });\n }\n\n break;\n }\n\n var modal = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-remodal-id=\"generic\"]');\n modal.find('.error-content').html(msg);\n (jquery__WEBPACK_IMPORTED_MODULE_0___default().remodal.lookup)[modal.data('remodal')].open();\n }\n }]);\n\n return FilesField;\n}();\n\n\nfunction UriToMarkdown(uri) {\n uri = uri.replace(/@3x|@2x|@1x/, '');\n uri = uri.replace(/\\(/g, '%28');\n uri = uri.replace(/\\)/g, '%29');\n var title = uri.split('.').slice(0, -1).join('.');\n return uri.match(/\\.(jpe?g|png|gif|svg|mp4|webm|ogv|mov)$/i) ? \"![\".concat(title, \"](\").concat(uri, \" \\\"\").concat(title, \"\\\")\") : \"[\".concat(decodeURI(uri), \"](\").concat(uri, \")\");\n}\nvar instances = [];\nvar cache = jquery__WEBPACK_IMPORTED_MODULE_0___default()();\n\nvar onAddedNodes = function onAddedNodes(event, target\n/* , record, instance */\n) {\n var files = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target).find('.dropzone.files-upload');\n\n if (!files.length) {\n return;\n }\n\n files.each(function (index, file) {\n file = jquery__WEBPACK_IMPORTED_MODULE_0___default()(file);\n\n if (!~cache.index(file)) {\n addNode(file);\n }\n });\n};\n\nvar addNode = function addNode(container) {\n container = jquery__WEBPACK_IMPORTED_MODULE_0___default()(container);\n var input = container.find('input[type=\"file\"]');\n var settings = container.data('grav-file-settings') || {};\n\n if (settings.accept && ~settings.accept.indexOf('*')) {\n settings.accept = [''];\n }\n\n var options = {\n url: container.data('file-url-add') || (container.closest('form').attr('action') || grav_config__WEBPACK_IMPORTED_MODULE_3__.config.current_url) + '.json',\n paramName: settings.paramName || 'file',\n dotNotation: settings.name || 'file',\n acceptedFiles: settings.accept ? settings.accept.join(',') : input.attr('accept') || container.data('media-types'),\n maxFilesize: typeof settings.filesize !== 'undefined' ? settings.filesize : 256,\n maxFiles: settings.limit || null,\n resizeWidth: settings.resizeWidth || null,\n resizeHeight: settings.resizeHeight || null,\n resizeQuality: settings.resizeQuality || null,\n resolution: settings.resolution || null,\n accept: function accept(file, done) {\n ACCEPT_FUNC(file, done, settings);\n }\n };\n cache = cache.add(container);\n container = container[0];\n instances.push(new FilesField({\n container: container,\n options: options\n }));\n};\n\nvar Instance = function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.dropzone.files-upload').each(function (i, container) {\n return addNode(container);\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('mutation._grav', onAddedNodes);\n return instances;\n}();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL2ZpZWxkcy9maWxlcy5qcz82MTc5Il0sIm5hbWVzIjpbIkRpY3Rpb25hcnkiLCJkaWN0Q2FuY2VsVXBsb2FkIiwidHJhbnNsYXRpb25zIiwiZGljdENhbmNlbFVwbG9hZENvbmZpcm1hdGlvbiIsImRpY3REZWZhdWx0TWVzc2FnZSIsImRpY3RGYWxsYmFja01lc3NhZ2UiLCJkaWN0RmFsbGJhY2tUZXh0IiwiZGljdEZpbGVUb29CaWciLCJkaWN0SW52YWxpZEZpbGVUeXBlIiwiZGljdE1heEZpbGVzRXhjZWVkZWQiLCJkaWN0UmVtb3ZlRmlsZSIsImRpY3RSZXNwb25zZUVycm9yIiwiRFJPUFpPTkVfUkVTUE9OU0VfRVJST1IiLCJEcm9wem9uZSIsInF1ZXN0aW9uIiwiYWNjZXB0ZWQiLCJyZWplY3RlZCIsImRvYyIsIiQiLCJkb2N1bWVudCIsIm1vZGFsU2VsZWN0b3IiLCJyZW1vdmVFdmVudHMiLCJvZmYiLCJhY2NlcHQiLCJyZWplY3QiLCJmaW5kIiwicmVtb3ZlQ2xhc3MiLCJkYXRhIiwib3BlbiIsIm9uIiwiRHJvcHpvbmVNZWRpYUNvbmZpZyIsInRpbWVvdXQiLCJ0aHVtYm5haWxXaWR0aCIsInRodW1ibmFpbEhlaWdodCIsImFkZFJlbW92ZUxpbmtzIiwicmVwbGFjZSIsImRpY3RSZW1vdmVGaWxlQ29uZmlybWF0aW9uIiwicHJldmlld1RlbXBsYXRlIiwidHJpbSIsIkFDQ0VQVF9GVU5DIiwiZmlsZSIsImRvbmUiLCJzZXR0aW5ncyIsInJlc29sdXRpb24iLCJyZWFkZXIiLCJGaWxlUmVhZGVyIiwiZXJyb3IiLCJoYXNNaW4iLCJtaW4iLCJ3aWR0aCIsImhlaWdodCIsImhhc01heCIsIm1heCIsInJlc2l6ZVdpZHRoIiwicmVzaXplSGVpZ2h0Iiwib25sb2FkIiwiZXZlbnQiLCJpbWFnZSIsIkltYWdlIiwic3JjIiwidGFyZ2V0IiwicmVzdWx0Iiwib25lcnJvciIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwiYXR0ciIsIlVSTCIsInJldm9rZU9iamVjdFVSTCIsInJlYWRBc0RhdGFVUkwiLCJGaWxlc0ZpZWxkIiwiY29udGFpbmVyIiwib3B0aW9ucyIsImxlbmd0aCIsInVybHMiLCJjdXN0b21Qb3N0IiwiYXNzaWduIiwia2xhc3MiLCJ1cmwiLCJjb25maWciLCJhY2NlcHRlZEZpbGVzIiwiaW5pdCIsImluaXREcm9wem9uZSIsImRyb3B6b25lIiwib25Ecm9wem9uZUNvbXBsZXRlIiwiYmluZCIsIm9uRHJvcHpvbmVTdWNjZXNzIiwib25Ecm9wem9uZVJlbW92ZWRGaWxlIiwib25Ecm9wem9uZVNlbmRpbmciLCJvbkRyb3B6b25lRXJyb3IiLCJlIiwidmFsdWUiLCJKU09OIiwicGFyc2UiLCJ2YWwiLCJjdXJyZW50VGFyZ2V0IiwicGFyZW50IiwiZmlsZW5hbWUiLCJlbmNvZGVVUkkiLCJ0ZXh0IiwiZmlsdGVyIiwia2V5IiwibmFtZSIsInNoaWZ0IiwiZmlsZXMiLCJlYWNoIiwiaW5kZXgiLCJtb2NrIiwic2l6ZSIsInR5cGUiLCJzdGF0dXMiLCJyZW1vdmVVcmwiLCJyZW1vdmUiLCJwdXNoIiwiYWRkZWRmaWxlIiwiY2FsbCIsIm1hdGNoIiwidGh1bWJuYWlsIiwicGF0aCIsImNyZWF0ZVRodW1ibmFpbEZyb21VcmwiLCJ4aHIiLCJmb3JtRGF0YSIsImFwcGVuZCIsImRvdE5vdGF0aW9uIiwiZ2V0VVJJIiwicmVzcG9uc2UiLCJyZWxvYWRQYWdlIiwiZ2xvYmFsIiwibG9jYXRpb24iLCJyZWxvYWQiLCJzZXNzaW9uIiwic2Vzc2lvblBhcmFtcyIsImlucHV0IiwiaGFuZGxlRXJyb3IiLCJtb2RlIiwibXNnIiwibWVzc2FnZSIsImpvaW4iLCJzdHIiLCJkZWNvZGVVUklDb21wb25lbnQiLCJlc2NhcGUiLCJ3aW5kb3ciLCJhdG9iIiwiYm9keSIsInVyaSIsInRhc2siLCJyZXF1ZXN0IiwibWV0aG9kIiwiYjY0X3RvX3V0ZjgiLCJzdHJpbmdpZnkiLCJwcmV2aWV3RWxlbWVudCIsImh0bWwiLCJGaWxlIiwiYWRkRmlsZSIsImV4dHJhcyIsImluZGV4T2YiLCJyZW1vdmVGaWxlIiwic2lsZW50IiwibW9kYWwiLCJVcmlUb01hcmtkb3duIiwidGl0bGUiLCJzcGxpdCIsInNsaWNlIiwiZGVjb2RlVVJJIiwiaW5zdGFuY2VzIiwiY2FjaGUiLCJvbkFkZGVkTm9kZXMiLCJhZGROb2RlIiwiY2xvc2VzdCIsInBhcmFtTmFtZSIsIm1heEZpbGVzaXplIiwiZmlsZXNpemUiLCJtYXhGaWxlcyIsImxpbWl0IiwicmVzaXplUXVhbGl0eSIsImFkZCIsIkluc3RhbmNlIiwiaSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0NBRUE7O0FBQ0E7Q0FHQTs7QUFDQSxJQUFNQSxVQUFVLEdBQUc7QUFDZkMsa0JBQWdCLEVBQUVDLHlGQURIO0FBRWZDLDhCQUE0QixFQUFFRCxzR0FGZjtBQUdmRSxvQkFBa0IsRUFBRUYsMkZBSEw7QUFJZkcscUJBQW1CLEVBQUVILDRGQUpOO0FBS2ZJLGtCQUFnQixFQUFFSix5RkFMSDtBQU1mSyxnQkFBYyxFQUFFTCx3RkFORDtBQU9mTSxxQkFBbUIsRUFBRU4sNkZBUE47QUFRZk8sc0JBQW9CLEVBQUVQLDhGQVJQO0FBU2ZRLGdCQUFjLEVBQUVSLHVGQVREO0FBVWZTLG1CQUFpQixFQUFFVCwwRkFBaURVO0FBVnJELENBQW5CO0FBYUFDLDhEQUFBLEdBQXdCLEtBQXhCO0FBQ0FBLDBFQUFBLEdBQW9DLEVBQXBDOztBQUNBQSx5REFBQSxHQUFtQixVQUFDQyxRQUFELEVBQVdDLFFBQVgsRUFBcUJDLFFBQXJCLEVBQWtDO0FBQ2pELE1BQUlDLEdBQUcsR0FBR0MsNkNBQUMsQ0FBQ0MsUUFBRCxDQUFYO0FBQ0EsTUFBSUMsYUFBYSxHQUFHLGtDQUFwQjs7QUFFQSxNQUFJQyxZQUFZLEdBQUcsU0FBZkEsWUFBZSxHQUFNO0FBQ3JCSixPQUFHLENBQUNLLEdBQUosQ0FBUSxjQUFSLEVBQXdCRixhQUF4QixFQUF1Q0csTUFBdkM7QUFDQU4sT0FBRyxDQUFDSyxH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SCxDQUxxQixFQUFmIiwiZmlsZSI6Ii4vYXBwL2Zvcm1zL2ZpZWxkcy9maWxlcy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgRHJvcHpvbmUgZnJvbSAnZHJvcHpvbmUnO1xuLy8gaW1wb3J0IEVYSUYgZnJvbSAnZXhpZi1qcyc7XG5pbXBvcnQgcmVxdWVzdCBmcm9tICcuLi8uLi91dGlscy9yZXF1ZXN0JztcbmltcG9ydCB7IGNvbmZpZywgdHJhbnNsYXRpb25zIH0gZnJvbSAnZ3Jhdi1jb25maWcnO1xuXG4vLyB0cmFuc2xhdGlvbnNcbmNvbnN0IERpY3Rpb25hcnkgPSB7XG4gICAgZGljdENhbmNlbFVwbG9hZDogdHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5EUk9QWk9ORV9DQU5DRUxfVVBMT0FELFxuICAgIGRpY3RDYW5jZWxVcGxvYWRDb25maXJtYXRpb246IHRyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uRFJPUFpPTkVfQ0FOQ0VMX1VQTE9BRF9DT05GSVJNQVRJT04sXG4gICAgZGljdERlZmF1bHRNZXNzYWdlOiB0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLkRST1BaT05FX0RFRkFVTFRfTUVTU0FHRSxcbiAgICBkaWN0RmFsbGJhY2tNZXNzYWdlOiB0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLkRST1BaT05FX0ZBTExCQUNLX01FU1NBR0UsXG4gICAgZGljdEZhbGxiYWNrVGV4dDogdHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5EUk9QWk9ORV9GQUxMQkFDS19URVhULFxuICAgIGRpY3RGaWxlVG9vQmlnOiB0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLkRST1BaT05FX0ZJTEVfVE9PX0JJRyxcbiAgICBkaWN0SW52YWxpZEZpbGVUeXBlOiB0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLkRST1BaT05FX0lOVkFMSURfRklMRV9UWVBFLFxuICAgIGRpY3RNYXhGaWxlc0V4Y2VlZGVkOiB0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLkRST1BaT05FX01BWF9GSUxFU19FWENFRURFRCxcbiAgICBkaWN0UmVtb3ZlRmlsZTogdHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5EUk9QWk9ORV9SRU1PVkVfRklMRSxcbiAgICBkaWN0UmVzcG9uc2VFcnJvcjogdHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5EUk9QWk9ORV9SRVNQT05TRV9FUlJPUlxufTtcblxuRHJvcHpvbmUuYXV0b0Rpc2NvdmVyID0gZmFsc2U7XG5Ecm9wem9uZS5vcHRpb25zLmdyYXZQYWdlRHJvcHpvbmUgPSB7fTtcbkRyb3B6b25lLmNvbmZpcm0gPSAocXVlc3Rpb24sIGFjY2VwdGVkLCByZWplY3RlZCkgPT4ge1xuICAgIGxldCBkb2MgPSAkKGRvY3VtZW50KTtcbiAgICBsZXQgbW9kYWxTZWxlY3RvciA9ICdbZGF0YS1yZW1vZGFsLWlkPVwiZGVsZXRlLW1lZGlhXCJdJztcblxuICAgIGxldCByZW1vdmVFdmVudHMgPSAoKSA9PiB7XG4gICAgICAgIGRvYy5vZmYoJ2NvbmZpcm1hdGlvbicsIG1vZGFsU2VsZWN0b3IsIGFjY2VwdCk7XG4gICAgICAgIGRvYy5vZmYoJ2NhbmNlbGxhdGlvbicsIG1vZGFsU2VsZWN0b3IsIHJlamVjdCk7XG5cbiAgICAgICAgJChtb2RhbFNlbGVjdG9yKS5maW5kKCcucmVtb2RhbC1jb25maXJtJykucmVtb3ZlQ2xhc3MoJ3BvaW50ZXItZXZlbnRzLWRpc2FibGVkJyk7XG4gICAgfTtcblxuICAgIGxldCBhY2NlcHQgPSAoKSA9PiB7XG4gICAgICAgIGFjY2VwdGVkICYmIGFjY2VwdGVkKCk7XG4gICAgICAgIHJlbW92ZUV2ZW50cygpO1xuICAgIH07XG5cbiAgICBsZXQgcmVqZWN0ID0gKCkgPT4ge1xuICAgICAgICByZWplY3RlZCAmJiByZWplY3RlZCgpO1xuICAgICAgICByZW1vdmVFdmVudHMoKTtcbiAgICB9O1xuXG4gICAgJC5yZW1vZGFsLmxvb2t1cFskKG1vZGFsU2VsZWN0b3IpLmRhdGEoJ3JlbW9kYWwnKV0ub3BlbigpO1xuICAgIGRvYy5vbignY29uZmlybWF0aW9uJywgbW9kYWxTZWxlY3RvciwgYWNjZXB0KTtcbiAgICBkb2Mub24oJ2NhbmNlbGxhdGlvbicsIG1vZGFsU2VsZWN0b3IsIHJlamVjdCk7XG59O1xuXG5jb25zdCBEcm9wem9uZU1lZGlhQ29uZmlnID0ge1xuICAgIHRpbWVvdXQ6IDAsXG4gICAgdGh1bWJuYWlsV2lkdGg6IDIwMCxcbiAgICB0aHVtYm5haWxIZWlnaHQ6IDE1MCxcbiAgICBhZGRSZW1vdmVMaW5rczogZmFsc2UsXG4gICAgZGljdERlZmF1bHRNZXNzYWdlOiB0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLkRST1BfRklMRVNfSEVSRV9UT19VUExPQUQucmVwbGFjZSgvJmx0Oy9nLCAnPCcpLnJlcGxhY2UoLyZndDsvZywgJz4nKSxcbiAgICBkaWN0UmVtb3ZlRmlsZUNvbmZpcm1hdGlvbjogJ1twbGFjZWhvbGRlcl0nLFxuICAgIHByZXZpZXdUZW1wbGF0ZTogYFxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHotcHJldmlldyBkei1maWxlLXByZXZpZXcgZHotbm8tZWRpdG9yXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImR6LWRldGFpbHNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkei1maWxlbmFtZVwiPjxzcGFuIGRhdGEtZHotbmFtZT48L3NwYW4+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHotc2l6ZVwiIGRhdGEtZHotc2l6ZT48L2Rpdj5cbiAgICAgICAgICAgIDxpbWcgZGF0YS1kei10aHVtYm5haWwgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHotcHJvZ3Jlc3NcIj48c3BhbiBjbGFzcz1cImR6LXVwbG9hZFwiIGRhdGEtZHotdXBsb2FkcHJvZ3Jlc3M+PC9zcGFuPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkei1zdWNjZXNzLW1hcmtcIj48c3Bhbj7inJQ8L3NwYW4+PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImR6LWVycm9yLW1hcmtcIj48c3Bhbj7inJg8L3NwYW4+PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImR6LWVycm9yLW1lc3NhZ2VcIj48c3BhbiBkYXRhLWR6LWVycm9ybWVzc2FnZT48L3NwYW4+PC9kaXY+XG4gICAgICAgICAgPGEgY2xhc3M9XCJkei11bnNldFwiIHRpdGxlPVwiJHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLlVOU0VUfVwiIGhyZWY9XCIjXCIgZGF0YS1kei11bnNldD4ke3RyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uVU5TRVR9PC9hPlxuICAgICAgICAgIDxhIGNsYXNzPVwiZHotcmVtb3ZlXCIgdGl0bGU9XCIke3RyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uREVMRVRFfVwiIGhyZWY9XCJqYXZhc2NyaXB0OnVuZGVmaW5lZDtcIiBkYXRhLWR6LXJlbW92ZT4ke3RyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uREVMRVRFfTwvYT5cbiAgICAgICAgICA8YSBjbGFzcz1cImR6LW1ldGFkYXRhXCIgdGl0bGU9XCIke3RyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uTUVUQURBVEF9XCIgaHJlZj1cIiNcIiB0YXJnZXQ9XCJfYmxhbmtcIiBkYXRhLWR6LW1ldGFkYXRhPiR7dHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5NRVRBREFUQX08L2E+XG4gICAgICAgICAgPGEgY2xhc3M9XCJkei12aWV3XCIgdGl0bGU9XCIke3RyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uVklFV31cIiBocmVmPVwiI1wiIHRhcmdldD1cIl9ibGFua1wiIGRhdGEtZHotdmlldz4ke3RyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uVklFV308L2E+XG4gICAgICAgIDwvZGl2PmAudHJpbSgpXG59O1xuXG4vLyBnbG9iYWwuRVhJRiA9IEVYSUY7XG5cbmNvbnN0IEFDQ0VQVF9GVU5DID0gZnVuY3Rpb24oZmlsZSwgZG9uZSwgc2V0dGluZ3MpIHtcbiAgICBjb25zdCByZXNvbHV0aW9uID0gc2V0dGluZ3MucmVzb2x1dGlvbjtcbiAgICBpZiAoIXJlc29sdXRpb24pIHJldHVybiBkb25lKCk7XG5cbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgIGxldCBlcnJvciA9ICcnO1xuICAgIGNvbnN0IGhhc01pbiA9IChyZXNvbHV0aW9uLm1pbiAmJiAocmVzb2x1dGlvbi5taW4ud2lkdGggfHwgcmVzb2x1dGlvbi5taW4uaGVpZ2h0KSk7XG4gICAgY29uc3QgaGFzTWF4ID0gKHJlc29sdXRpb24ubWF4ICYmIChyZXNvbHV0aW9uLm1heC53aWR0aCB8fCByZXNvbHV0aW9uLm1heC5oZWlnaHQpKTtcbiAgICBpZiAoaGFzTWluIHx8ICghKHNldHRpbmdzLnJlc2l6ZVdpZHRoIHx8IHNldHRpbmdzLnJlc2l6ZUhlaWdodCkgJiYgaGFzTWF4KSkge1xuICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGltYWdlID0gbmV3IEltYWdlKCk7XG4gICAgICAgICAgICBpbWFnZS5zcmMgPSBldmVudC50YXJnZXQucmVzdWx0O1xuICAgICAgICAgICAgaW1hZ2Uub25lcnJvciA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIGRvbmUodHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5GSUxFX0VSUk9SX1VQTE9BRCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaW1hZ2Uub25sb2FkID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc29sdXRpb24ubWluKSB7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKHJlc29sdXRpb24ubWluKS5mb3JFYWNoKChhdHRyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzb2x1dGlvbi5taW5bYXR0cl0gJiYgdGhpc1thdHRyXSA8IHJlc29sdXRpb24ubWluW2F0dHJdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgKz0gdHJhbnNsYXRpb25zLlBMVUdJTl9GT1JNLlJFU09MVVRJT05fTUlOLnJlcGxhY2UoL3t7YXR0cn19L2csIGF0dHIpLnJlcGxhY2UoL3t7bWlufX0vZywgcmVzb2x1dGlvbi5taW5bYXR0cl0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIShzZXR0aW5ncy5yZXNpemVXaWR0aCB8fCBzZXR0aW5ncy5yZXNpemVIZWlnaHQpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNvbHV0aW9uLm1heCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXMocmVzb2x1dGlvbi5tYXgpLmZvckVhY2goKGF0dHIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzb2x1dGlvbi5tYXhbYXR0cl0gJiYgdGhpc1thdHRyXSA+IHJlc29sdXRpb24ubWF4W2F0dHJdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yICs9IHRyYW5zbGF0aW9ucy5QTFVHSU5fRk9STS5SRVNPTFVUSU9OX01BWC5yZXBsYWNlKC97e2F0dHJ9fS9nLCBhdHRyKS5yZXBsYWNlKC97e21heH19L2csIHJlc29sdXRpb24ubWF4W2F0dHJdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwoaW1hZ2Uuc3JjKTsgLy8gcmVsZWFzZSBtZW1vcnlcbiAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3IgPyBkb25lKGVycm9yKSA6IGRvbmUoKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH07XG5cbiAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGVycm9yID8gZG9uZShlcnJvcikgOiBkb25lKCk7XG4gICAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRmlsZXNGaWVsZCB7XG4gICAgY29uc3RydWN0b3IoeyBjb250YWluZXIgPSAnLmRyb3B6b25lLmZpbGVzLXVwbG9hZCcsIG9wdGlvbnMgPSB7fSB9ID0ge30pIHtcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSAkKGNvbnRhaW5lcik7XG4gICAgICAgIGlmICghdGhpcy5jb250YWluZXIubGVuZ3RoKSB7IHJldHVybjsgfVxuXG4gICAgICAgIHRoaXMudXJscyA9IHt9O1xuICAgICAgICB0aGlzLmN1c3RvbVBvc3QgPSB0aGlzLmNvbnRhaW5lci5kYXRhKCdmaWxlUG9zdEFkZCcpIHx8IHt9O1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCBEaWN0aW9uYXJ5LCBEcm9wem9uZU1lZGlhQ29uZmlnLCB7XG4gICAgICAgICAgICBrbGFzczogdGhpcyxcbiAgICAgICAgICAgIHVybDogdGhpcy5jb250YWluZXIuZGF0YSgnZmlsZS11cmwtYWRkJykgfHwgY29uZmlnLmN1cnJlbnRfdXJsLFxuICAgICAgICAgICAgYWNjZXB0ZWRGaWxlczogdGhpcy5jb250YWluZXIuZGF0YSgnbWVkaWEtdHlwZXMnKSxcbiAgICAgICAgICAgIGluaXQ6IHRoaXMuaW5pdERyb3B6b25lXG4gICAgICAgIH0sIHRoaXMuY29udGFpbmVyLmRhdGEoJ2Ryb3B6b25lLW9wdGlvbnMnKSwgb3B0aW9ucyk7XG5cbiAgICAgICAgdGhpcy5vcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5vcHRpb25zLCB7XG4gICAgICAgICAgICBhY2NlcHQ6IGZ1bmN0aW9uKGZpbGUsIGRvbmUpIHsgQUNDRVBUX0ZVTkMoZmlsZSwgZG9uZSwgdGhpcy5vcHRpb25zKTsgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmRyb3B6b25lID0gbmV3IERyb3B6b25lKGNvbnRhaW5lciwgdGhpcy5vcHRpb25zKTtcbiAgICAgICAgdGhpcy5kcm9wem9uZS5vbignY29tcGxldGUnLCB0aGlzLm9uRHJvcHpvbmVDb21wbGV0ZS5iaW5kKHRoaXMpKTtcbiAgICAgICAgdGhpcy5kcm9wem9uZS5vbignc3VjY2VzcycsIHRoaXMub25Ecm9wem9uZVN1Y2Nlc3MuYmluZCh0aGlzKSk7XG4gICAgICAgIHRoaXMuZHJvcHpvbmUub24oJ3JlbW92ZWRmaWxlJywgdGhpcy5vbkRyb3B6b25lUmVtb3ZlZEZpbGUuYmluZCh0aGlzKSk7XG4gICAgICAgIHRoaXMuZHJvcHpvbmUub24oJ3NlbmRpbmcnLCB0aGlzLm9uRHJvcHpvbmVTZW5kaW5nLmJpbmQodGhpcykpO1xuICAgICAgICB0aGlzLmRyb3B6b25lLm9uKCdlcnJvcicsIHRoaXMub25Ecm9wem9uZUVycm9yLmJpbmQodGhpcykpO1xuXG4gICAgICAgIHRoaXMuY29udGFpbmVyLm9uKCdtb3VzZWVudGVyJywgJ1tkYXRhLWR6LXZpZXddJywgKGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gSlNPTi5wYXJzZSh0aGlzLmNvbnRhaW5lci5maW5kKCdbbmFtZV1bdHlwZT1cImhpZGRlblwiXScpLnZhbCgpIHx8ICd7fScpO1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gJChlLmN1cnJlbnRUYXJnZXQpO1xuICAgICAgICAgICAgY29uc3QgZmlsZSA9IHRhcmdldC5wYXJlbnQoJy5kei1wcmV2aWV3JykuZmluZCgnLmR6LWZpbGVuYW1lJyk7XG4gICAgICAgICAgICBjb25zdCBmaWxlbmFtZSA9IGVuY29kZVVSSShmaWxlLnRleHQoKSk7XG5cbiAgICAgICAgICAgIGNvbnN0IFVSTCA9IE9iamVjdC5rZXlzKHZhbHVlKS5maWx0ZXIoKGtleSkgPT4gdmFsdWVba2V5XS5uYW1lID09PSBmaWxlbmFtZSkuc2hpZnQoKTtcbiAgICAgICAgICAgIHRhcmdldC5hdHRyKCdocmVmJywgYCR7Y29uZmlnLmJhc2VfdXJsX3NpbXBsZX0vJHtVUkx9YCk7XG4gICAgICAgIH0pO1xuXG4gICAgfVxuXG4gICAgaW5pdERyb3B6b25lKCkge1xuICAgICAgICBsZXQgZmlsZXMgPSB0aGlzLm9wdGlvbnMua2xhc3MuY29udGFpbmVyLmZpbmQoJ1tkYXRhLWZpbGVdJyk7XG4gICAgICAgIGxldCBkcm9wem9uZSA9IHRoaXM7XG4gICAgICAgIGlmICghZmlsZXMubGVuZ3RoKSB7IHJldHVybjsgfVxuXG4gICAgICAgIGZpbGVzLmVhY2goKGluZGV4LCBmaWxlKSA9PiB7XG4gICAgICAgICAgICBmaWxlID0gJChmaWxlKTtcbiAgICAgICAgICAgIGxldCBkYXRhID0gZmlsZS5kYXRhKCdmaWxlJyk7XG4gICAgICAgICAgICBsZXQgbW9jayA9IHtcbiAgICAgICAgICAgICAgICBuYW1lOiBkYXRhLm5hbWUsXG4gICAgICAgICAgICAgICAgc2l6ZTogZGF0YS5zaXplLFxuICAgICAgICAgICAgICAgIHR5cGU6IGRhdGEudHlwZSxcbiAgICAgICAgICAgICAgICBzdGF0dXM6IERyb3B6b25lLkFEREVELFxuICAgICAgICAgICAgICAgIGFjY2VwdGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHVybDogdGhpcy5vcHRpb25zLnVybCxcbiAgICAgICAgICAgICAgICByZW1vdmVVcmw6IGRhdGEucmVtb3ZlXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBkcm9wem9uZS5maWxlcy5wdXNoKG1vY2spO1xuICAgICAgICAgICAgZHJvcHpvbmUub3B0aW9ucy5hZGRlZGZpbGUuY2FsbChkcm9wem9uZSwgbW9jayk7XG4gICAgICAgICAgICBpZiAobW9jay50eXBlLm1hdGNoKC9eaW1hZ2VcXC8vKSkge1xuICAgICAgICAgICAgICAgIGRyb3B6b25lLm9wdGlvbnMudGh1bWJuYWlsLmNhbGwoZHJvcHpvbmUsIG1vY2ssIGRhdGEucGF0aCk7XG4gICAgICAgICAgICAgICAgZHJvcHpvbmUuY3JlYXRlVGh1bWJuYWlsRnJvbVVybChtb2NrLCBkYXRhLnBhdGgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmaWxlLnJlbW92ZSgpO1xuICAgICAgICB9KTtcblxuICAgIH1cblxuICAgIGdldFVSSSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGFpbmVyLmRhdGEoJ21lZGlhVXJpJykgfHwgJyc7XG4gICAgfVxuXG4gICAgb25Ecm9wem9uZVNlbmRpbmcoZmlsZSwgeGhyLCBmb3JtRGF0YSkge1xuICAgICAgICBpZiAoT2JqZWN0LmtleXModGhpcy5jdXN0b21Qb3N0KS5sZW5ndGgpIHtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKHRoaXMuY3VzdG9tUG9zdCkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKGtleSwgdGhpcy5jdXN0b21Qb3N0W2tleV0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ25hbWUnLCB0aGlzLm9wdGlvbnMuZG90Tm90YXRpb24pO1xuICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKCd0YXNrJywgJ2ZpbGVzdXBsb2FkJyk7XG4gICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ3VyaScsIHRoaXMuZ2V0VVJJKCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdhZG1pbi1ub25jZScsIGNvbmZpZy5hZG1pbl9ub25jZSk7XG4gICAgfVxuXG4gICAgb25Ecm9wem9uZVN1Y2Nlc3MoZmlsZSwgcmVzcG9uc2UsIHhocikge1xuICAgICAgICByZXNwb25zZSA9IHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycgPyBKU09OLnBhcnNlKHJlc3BvbnNlKSA6IHJlc3BvbnNlO1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnJlbG9hZFBhZ2UpIHtcbiAgICAgICAgICAgIGdsb2JhbC5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHN0b3JlIHBhcmFtcyBmb3IgcmVtb3ZpbmcgZmlsZSBmcm9tIHNlc3Npb24gYmVmb3JlIGl0IGdldHMgc2F2ZWRcbiAgICAgICAgaWYgKHJlc3BvbnNlLnNlc3Npb24pIHtcbiAgICAgICAgICAgIGZpbGUuc2Vzc2lvblBhcmFtcyA9IHJlc3BvbnNlLnNlc3Npb247XG4gICAgICAgICAgICBmaWxlLnJlbW92ZVVybCA9IHRoaXMub3B0aW9ucy51cmw7XG5cbiAgICAgICAgICAgIC8vIFRvdWNoIGZpZWxkIHZhbHVlIHRvIGZvcmNlIGEgbXV0YXRpb24gZGV0ZWN0aW9uXG4gICAgICAgICAgICBjb25zdCBpbnB1dCA9IHRoaXMuY29udGFpbmVyLmZpbmQoJ1tuYW1lXVt0eXBlPVwiaGlkZGVuXCJdJyk7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGlucHV0LnZhbCgpO1xuICAgICAgICAgICAgaW5wdXQudmFsKHZhbHVlICsgJyAnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmhhbmRsZUVycm9yKHtcbiAgICAgICAgICAgIGZpbGUsXG4gICAgICAgICAgICBkYXRhOiByZXNwb25zZSxcbiAgICAgICAgICAgIG1vZGU6ICdyZW1vdmVGaWxlJyxcbiAgICAgICAgICAgIG1zZzogYDxwPiR7dHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5GSUxFX0VSUk9SX1VQTE9BRH0gPHN0cm9uZz4ke2ZpbGUubmFtZX08L3N0cm9uZz48L3A+XG4gICAgICAgICAgICA8cHJlPiR7cmVzcG9uc2UubWVzc2FnZX08L3ByZT5gXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uRHJvcHpvbmVDb21wbGV0ZShmaWxlKSB7XG4gICAgICAgIGlmICghZmlsZS5hY2NlcHRlZCAmJiAhZmlsZS5yZWplY3RlZCkge1xuICAgICAgICAgICAgbGV0IGRhdGEgPSB7XG4gICAgICAgICAgICAgICAgc3RhdHVzOiAnZXJyb3InLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGAke3RyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uRklMRV9VTlNVUFBPUlRFRH06ICR7ZmlsZS5uYW1lLm1hdGNoKC9cXC4uKy8pLmpvaW4oJycpfWBcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZUVycm9yKHtcbiAgICAgICAgICAgICAgICBmaWxlLFxuICAgICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgICAgbW9kZTogJ3JlbW92ZUZpbGUnLFxuICAgICAgICAgICAgICAgIG1zZzogYDxwPiR7dHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5GSUxFX0VSUk9SX0FERH0gPHN0cm9uZz4ke2ZpbGUubmFtZX08L3N0cm9uZz48L3A+XG4gICAgICAgICAgICAgICAgPHByZT4ke2RhdGEubWVzc2FnZX08L3ByZT5gXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucmVsb2FkUGFnZSkge1xuICAgICAgICAgICAgZ2xvYmFsLmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYjY0X3RvX3V0Zjgoc3RyKSB7XG4gICAgICAgIHN0ciA9IHN0ci5yZXBsYWNlKC9cXHMvZywgJycpO1xuICAgICAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGVzY2FwZSh3aW5kb3cuYXRvYihzdHIpKSk7XG4gICAgfVxuXG4gICAgb25Ecm9wem9uZVJlbW92ZWRGaWxlKGZpbGUsIC4uLmV4dHJhKSB7XG4gICAgICAgIGlmICghZmlsZS5hY2NlcHRlZCB8fCBmaWxlLnJlamVjdGVkKSB7IHJldHVybjsgfVxuICAgICAgICBsZXQgdXJsID0gZmlsZS5yZW1vdmVVcmwgfHwgdGhpcy51cmxzLmRlbGV0ZSB8fCB0aGlzLm9wdGlvbnMudXJsO1xuICAgICAgICBsZXQgcGF0aCA9ICh1cmwgfHwgJycpLm1hdGNoKC9wYXRoOiguKilcXC8vKTtcbiAgICAgICAgbGV0IGJvZHkgPSB7IGZpbGVuYW1lOiBmaWxlLm5hbWUsIHVyaTogdGhpcy5nZXRVUkkoKSB9O1xuXG4gICAgICAgIGlmIChmaWxlLnNlc3Npb25QYXJhbXMpIHtcbiAgICAgICAgICAgIGJvZHkudGFzayA9ICdmaWxlc3Nlc3Npb25yZW1vdmUnO1xuICAgICAgICAgICAgYm9keS5zZXNzaW9uID0gZmlsZS5zZXNzaW9uUGFyYW1zO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY3VzdG9tUG9zdCA9IHRoaXMuY29udGFpbmVyLmRhdGEoJ2ZpbGVQb3N0UmVtb3ZlJykgfHwge307XG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhjdXN0b21Qb3N0KS5sZW5ndGgpIHtcbiAgICAgICAgICAgIGJvZHkgPSB7fTtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKGN1c3RvbVBvc3QpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIGJvZHlba2V5XSA9IGN1c3RvbVBvc3Rba2V5XTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgYm9keVsnZmlsZW5hbWUnXSA9IGZpbGUubmFtZTtcbiAgICAgICAgYm9keVsnYWRtaW4tbm9uY2UnXSA9IGNvbmZpZy5hZG1pbl9ub25jZTtcblxuICAgICAgICByZXF1ZXN0KHVybCwgeyBtZXRob2Q6ICdwb3N0JywgYm9keSB9LCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXBhdGgpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgICAgIHBhdGggPSB0aGlzLmI2NF90b191dGY4KHBhdGhbMV0pO1xuICAgICAgICAgICAgbGV0IGlucHV0ID0gdGhpcy5jb250YWluZXIuZmluZCgnW25hbWVdW3R5cGU9XCJoaWRkZW5cIl0nKTtcbiAgICAgICAgICAgIGxldCBkYXRhID0gSlNPTi5wYXJzZShpbnB1dC52YWwoKSB8fCAne30nKTtcbiAgICAgICAgICAgIGRlbGV0ZSBkYXRhW3BhdGhdO1xuICAgICAgICAgICAgaW5wdXQudmFsKEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25Ecm9wem9uZUVycm9yKGZpbGUsIHJlc3BvbnNlLCB4aHIpIHtcbiAgICAgICAgbGV0IG1lc3NhZ2UgPSB4aHIgPyByZXNwb25zZS5lcnJvci5tZXNzYWdlIDogcmVzcG9uc2U7XG4gICAgICAgICQoZmlsZS5wcmV2aWV3RWxlbWVudCkuZmluZCgnW2RhdGEtZHotZXJyb3JtZXNzYWdlXScpLmh0bWwobWVzc2FnZSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlRXJyb3Ioe1xuICAgICAgICAgICAgZmlsZSxcbiAgICAgICAgICAgIGRhdGE6IHsgc3RhdHVzOiAnZXJyb3InIH0sXG4gICAgICAgICAgICBtc2c6IGA8cHJlPiR7bWVzc2FnZX08L3ByZT5gXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGhhbmRsZUVycm9yKG9wdGlvbnMpIHtcbiAgICAgICAgbGV0IHsgZmlsZSwgZGF0YSwgbW9kZSwgbXNnIH0gPSBvcHRpb25zO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09ICdlcnJvcicgJiYgZGF0YS5zdGF0dXMgIT09ICd1bmF1dGhvcml6ZWQnKSB7IHJldHVybjsgfVxuXG4gICAgICAgIHN3aXRjaCAobW9kZSkge1xuICAgICAgICAgICAgY2FzZSAnYWRkQmFjayc6XG4gICAgICAgICAgICAgICAgaWYgKGZpbGUgaW5zdGFuY2VvZiBGaWxlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHJvcHpvbmUuYWRkRmlsZS5jYWxsKHRoaXMuZHJvcHpvbmUsIGZpbGUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHJvcHpvbmUuZmlsZXMucHVzaChmaWxlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcm9wem9uZS5vcHRpb25zLmFkZGVkZmlsZS5jYWxsKHRoaXMuZHJvcHpvbmUsIGZpbGUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRyb3B6b25lLm9wdGlvbnMudGh1bWJuYWlsLmNhbGwodGhpcy5kcm9wem9uZSwgZmlsZSwgZmlsZS5leHRyYXMudXJsKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3JlbW92ZUZpbGUnOlxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBpZiAofnRoaXMuZHJvcHpvbmUuZmlsZXMuaW5kZXhPZihmaWxlKSkge1xuICAgICAgICAgICAgICAgICAgICBmaWxlLnJlamVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcm9wem9uZS5yZW1vdmVGaWxlLmNhbGwodGhpcy5kcm9wem9uZSwgZmlsZSwgeyBzaWxlbnQ6IHRydWUgfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbW9kYWwgPSAkKCdbZGF0YS1yZW1vZGFsLWlkPVwiZ2VuZXJpY1wiXScpO1xuICAgICAgICBtb2RhbC5maW5kKCcuZXJyb3ItY29udGVudCcpLmh0bWwobXNnKTtcbiAgICAgICAgJC5yZW1vZGFsLmxvb2t1cFttb2RhbC5kYXRhKCdyZW1vZGFsJyldLm9wZW4oKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBVcmlUb01hcmtkb3duKHVyaSkge1xuICAgIHVyaSA9IHVyaS5yZXBsYWNlKC9AM3h8QDJ4fEAxeC8sICcnKTtcbiAgICB1cmkgPSB1cmkucmVwbGFjZSgvXFwoL2csICclMjgnKTtcbiAgICB1cmkgPSB1cmkucmVwbGFjZSgvXFwpL2csICclMjknKTtcblxuICAgIGNvbnN0IHRpdGxlID0gdXJpLnNwbGl0KCcuJykuc2xpY2UoMCwgLTEpLmpvaW4oJy4nKTtcblxuICAgIHJldHVybiB1cmkubWF0Y2goL1xcLihqcGU/Z3xwbmd8Z2lmfHN2Z3xtcDR8d2VibXxvZ3Z8bW92KSQvaSkgPyBgIVske3RpdGxlfV0oJHt1cml9IFwiJHt0aXRsZX1cIilgIDogYFske2RlY29kZVVSSSh1cmkpfV0oJHt1cml9KWA7XG59XG5cbmxldCBpbnN0YW5jZXMgPSBbXTtcbmxldCBjYWNoZSA9ICQoKTtcbmNvbnN0IG9uQWRkZWROb2RlcyA9IChldmVudCwgdGFyZ2V0LyogLCByZWNvcmQsIGluc3RhbmNlICovKSA9PiB7XG4gICAgbGV0IGZpbGVzID0gJCh0YXJnZXQpLmZpbmQoJy5kcm9wem9uZS5maWxlcy11cGxvYWQnKTtcbiAgICBpZiAoIWZpbGVzLmxlbmd0aCkgeyByZXR1cm47IH1cblxuICAgIGZpbGVzLmVhY2goKGluZGV4LCBmaWxlKSA9PiB7XG4gICAgICAgIGZpbGUgPSAkKGZpbGUpO1xuICAgICAgICBpZiAoIX5jYWNoZS5pbmRleChmaWxlKSkge1xuICAgICAgICAgICAgYWRkTm9kZShmaWxlKTtcbiAgICAgICAgfVxuICAgIH0pO1xufTtcblxuY29uc3QgYWRkTm9kZSA9IChjb250YWluZXIpID0+IHtcbiAgICBjb250YWluZXIgPSAkKGNvbnRhaW5lcik7XG4gICAgbGV0IGlucHV0ID0gY29udGFpbmVyLmZpbmQoJ2lucHV0W3R5cGU9XCJmaWxlXCJdJyk7XG4gICAgbGV0IHNldHRpbmdzID0gY29udGFpbmVyLmRhdGEoJ2dyYXYtZmlsZS1zZXR0aW5ncycpIHx8IHt9O1xuXG4gICAgaWYgKHNldHRpbmdzLmFjY2VwdCAmJiB+c2V0dGluZ3MuYWNjZXB0LmluZGV4T2YoJyonKSkge1xuICAgICAgICBzZXR0aW5ncy5hY2NlcHQgPSBbJyddO1xuICAgIH1cblxuICAgIGxldCBvcHRpb25zID0ge1xuICAgICAgICB1cmw6IGNvbnRhaW5lci5kYXRhKCdmaWxlLXVybC1hZGQnKSB8fCAoY29udGFpbmVyLmNsb3Nlc3QoJ2Zvcm0nKS5hdHRyKCdhY3Rpb24nKSB8fCBjb25maWcuY3VycmVudF91cmwpICsgJy5qc29uJyxcbiAgICAgICAgcGFyYW1OYW1lOiBzZXR0aW5ncy5wYXJhbU5hbWUgfHwgJ2ZpbGUnLFxuICAgICAgICBkb3ROb3RhdGlvbjogc2V0dGluZ3MubmFtZSB8fCAnZmlsZScsXG4gICAgICAgIGFjY2VwdGVkRmlsZXM6IHNldHRpbmdzLmFjY2VwdCA/IHNldHRpbmdzLmFjY2VwdC5qb2luKCcsJykgOiBpbnB1dC5hdHRyKCdhY2NlcHQnKSB8fCBjb250YWluZXIuZGF0YSgnbWVkaWEtdHlwZXMnKSxcbiAgICAgICAgbWF4RmlsZXNpemU6IHR5cGVvZiBzZXR0aW5ncy5maWxlc2l6ZSAhPT0gJ3VuZGVmaW5lZCcgPyBzZXR0aW5ncy5maWxlc2l6ZSA6IDI1NixcbiAgICAgICAgbWF4RmlsZXM6IHNldHRpbmdzLmxpbWl0IHx8IG51bGwsXG4gICAgICAgIHJlc2l6ZVdpZHRoOiBzZXR0aW5ncy5yZXNpemVXaWR0aCB8fCBudWxsLFxuICAgICAgICByZXNpemVIZWlnaHQ6IHNldHRpbmdzLnJlc2l6ZUhlaWdodCB8fCBudWxsLFxuICAgICAgICByZXNpemVRdWFsaXR5OiBzZXR0aW5ncy5yZXNpemVRdWFsaXR5IHx8IG51bGwsXG4gICAgICAgIHJlc29sdXRpb246IHNldHRpbmdzLnJlc29sdXRpb24gfHwgbnVsbCxcbiAgICAgICAgYWNjZXB0OiBmdW5jdGlvbihmaWxlLCBkb25lKSB7IEFDQ0VQVF9GVU5DKGZpbGUsIGRvbmUsIHNldHRpbmdzKTsgfVxuICAgIH07XG5cbiAgICBjYWNoZSA9IGNhY2hlLmFkZChjb250YWluZXIpO1xuICAgIGNvbnRhaW5lciA9IGNvbnRhaW5lclswXTtcbiAgICBpbnN0YW5jZXMucHVzaChuZXcgRmlsZXNGaWVsZCh7IGNvbnRhaW5lciwgb3B0aW9ucyB9KSk7XG59O1xuXG5leHBvcnQgbGV0IEluc3RhbmNlID0gKCgpID0+IHtcbiAgICAkKCcuZHJvcHpvbmUuZmlsZXMtdXBsb2FkJykuZWFjaCgoaSwgY29udGFpbmVyKSA9PiBhZGROb2RlKGNvbnRhaW5lcikpO1xuICAgICQoJ2JvZHknKS5vbignbXV0YXRpb24uX2dyYXYnLCBvbkFkZGVkTm9kZXMpO1xuXG4gICAgcmV0dXJuIGluc3RhbmNlcztcbn0pKCk7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/forms/fields/files.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/forms/fields/folder.js":
|
|
/*!************************************!*\
|
|
!*** ./app/forms/fields/folder.js ***!
|
|
\************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\n\nvar Regenerate = function Regenerate() {\n var field = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '[name=\"data[folder]\"]';\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(field);\n var title = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[name=\"data[header][title]\"]');\n var slug = jquery__WEBPACK_IMPORTED_MODULE_0___default().slugify(title.val(), {\n custom: {\n \"'\": ''\n }\n });\n element.addClass('highlight').val(slug);\n setTimeout(function () {\n return element.removeClass('highlight');\n }, 500);\n};\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-regenerate]', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target.data('regenerate'));\n Regenerate(field);\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Regenerate);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL2ZpZWxkcy9mb2xkZXIuanM/OTdmZSJdLCJuYW1lcyI6WyJSZWdlbmVyYXRlIiwiZmllbGQiLCJlbGVtZW50IiwiJCIsInRpdGxlIiwic2x1ZyIsInZhbCIsImN1c3RvbSIsImFkZENsYXNzIiwic2V0VGltZW91dCIsInJlbW92ZUNsYXNzIiwiZG9jdW1lbnQiLCJvbiIsImV2ZW50IiwidGFyZ2V0IiwiY3VycmVudFRhcmdldCIsImRhdGEiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOztBQUVBLElBQU1BLFVBQVUsR0FBRyxTQUFiQSxVQUFhLEdBQXFDO0FBQUEsTUFBcENDLEtBQW9DLHVFQUE1Qix1QkFBNEI7QUFDcEQsTUFBTUMsT0FBTyxHQUFHQyw2Q0FBQyxDQUFDRixLQUFELENBQWpCO0FBQ0EsTUFBTUcsS0FBSyxHQUFHRCw2Q0FBQyxDQUFDLDhCQUFELENBQWY7QUFDQSxNQUFNRSxJQUFJLEdBQUdGLHFEQUFBLENBQVVDLEtBQUssQ0FBQ0UsR0FBTixFQUFWLEVBQXVCO0FBQUNDLFVBQU0sRUFBRTtBQUFDLFdBQUs7QUFBTjtBQUFULEdBQXZCLENBQWI7QUFFQUwsU0FBTyxDQUFDTSxRQUFSLENBQWlCLFdBQWpCLEVBQThCRixHQUE5QixDQUFrQ0QsSUFBbEM7QUFFQUksWUFBVSxDQUFDO0FBQUEsV0FBTVAsT0FBTyxDQUFDUSxXQUFSLENBQW9CLFdBQXBCLENBQU47QUFBQSxHQUFELEVBQXlDLEdBQXpDLENBQVY7QUFDSCxDQVJEOztBQVVBUCw2Q0FBQyxDQUFDUSxRQUFELENBQUQsQ0FBWUMsRUFBWixDQUFlLE9BQWYsRUFBd0IsbUJBQXhCLEVBQTZDLFVBQUNDLEtBQUQsRUFBVztBQUNwRCxNQUFNQyxNQUFNLEdBQUdYLDZDQUFDLENBQUNVLEtBQUssQ0FBQ0UsYUFBUCxDQUFoQjtBQUNBLE1BQU1kLEtBQUssR0FBR0UsNkNBQUMsQ0FBQ1csTUFBTSxDQUFDRSxJQUFQLENBQVksWUFBWixDQUFELENBQWY7QUFFQWhCLFlBQVUsQ0FBQ0MsS0FBRCxDQUFWO0FBQ0gsQ0FMRDtBQU9BLGlFQUFlRCxVQUFmIiwiZmlsZSI6Ii4vYXBwL2Zvcm1zL2ZpZWxkcy9mb2xkZXIuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuXG5jb25zdCBSZWdlbmVyYXRlID0gKGZpZWxkID0gJ1tuYW1lPVwiZGF0YVtmb2xkZXJdXCJdJykgPT4ge1xuICAgIGNvbnN0IGVsZW1lbnQgPSAkKGZpZWxkKTtcbiAgICBjb25zdCB0aXRsZSA9ICQoJ1tuYW1lPVwiZGF0YVtoZWFkZXJdW3RpdGxlXVwiXScpO1xuICAgIGNvbnN0IHNsdWcgPSAkLnNsdWdpZnkodGl0bGUudmFsKCksIHtjdXN0b206IHtcIidcIjogJyd9fSk7XG5cbiAgICBlbGVtZW50LmFkZENsYXNzKCdoaWdobGlnaHQnKS52YWwoc2x1Zyk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IGVsZW1lbnQucmVtb3ZlQ2xhc3MoJ2hpZ2hsaWdodCcpLCA1MDApO1xufTtcblxuJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ1tkYXRhLXJlZ2VuZXJhdGVdJywgKGV2ZW50KSA9PiB7XG4gICAgY29uc3QgdGFyZ2V0ID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgICBjb25zdCBmaWVsZCA9ICQodGFyZ2V0LmRhdGEoJ3JlZ2VuZXJhdGUnKSk7XG5cbiAgICBSZWdlbmVyYXRlKGZpZWxkKTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBSZWdlbmVyYXRlO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/forms/fields/folder.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/forms/fields/iconpicker.js":
|
|
/*!****************************************!*\
|
|
!*** ./app/forms/fields/iconpicker.js ***!
|
|
\****************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ IconpickerField),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\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); return Constructor; }\n\n\n/* Icon Picker by QueryLoop\n * Author: @eliorivero\n * URL: http://queryloop.com/\n * License: GPLv2\n */\n\nvar defaults = {\n 'mode': 'dialog',\n // show overlay 'dialog' panel or slide down 'inline' panel\n 'closeOnPick': true,\n // whether to close panel after picking or 'no'\n 'save': 'class',\n // save icon 'class' or 'code'\n 'size': '',\n 'classes': {\n 'launcher': '',\n // extra classes for launcher buttons\n 'clear': 'remove-times',\n // extra classes for button that removes preview and clears field\n 'highlight': '',\n // extra classes when highlighting an icon\n 'close': '' // extra classes for close button\n\n },\n 'iconSets': {\n // example data structure. Used to specify which launchers will be created\n 'genericon': 'Genericon',\n // create a launcher to pick genericon icons\n 'fa': 'FontAwesome' // create a launcher to pick fontawesome icons\n\n }\n};\n\nvar QL_Icon_Picker = /*#__PURE__*/function () {\n function QL_Icon_Picker(element, options) {\n _classCallCheck(this, QL_Icon_Picker);\n\n this.iconSet = '';\n this.iconSetName = '';\n this.$field = '';\n this.element = element;\n this.settings = jquery__WEBPACK_IMPORTED_MODULE_0___default().extend({}, defaults, options);\n this._defaults = defaults;\n this.init();\n }\n\n _createClass(QL_Icon_Picker, [{\n key: \"init\",\n value: function init() {\n var $brick = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.element);\n var pickerId = $brick.data('pickerid');\n var $preview = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div class=\"icon-preview icon-preview-' + pickerId + '\" />');\n this.$field = $brick.find('input'); // Add preview area\n\n this.makePreview($brick, pickerId, $preview); // Make button to clear field and remove preview\n\n this.makeClear(pickerId, $preview); // Make buttons that open the panel of icons\n\n this.makeLaunchers($brick, pickerId); // Prepare display styles, inline and dialog\n\n this.makeDisplay($brick);\n }\n }, {\n key: \"makePreview\",\n value: function makePreview($brick, pickerId, $preview) {\n var $icon = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<i />');\n var iconValue = this.$field.val();\n $preview.prependTo($brick);\n $icon.prependTo($preview);\n\n if (iconValue !== '') {\n $preview.addClass('icon-preview-on');\n $icon.addClass(iconValue);\n }\n }\n }, {\n key: \"makeClear\",\n value: function makeClear(pickerId, $preview) {\n var base = this;\n var $clear = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<a class=\"remove-icon ' + base.settings.classes.clear + '\" />'); // Hide button to remove icon and preview and append it to preview area\n\n $clear.hide().prependTo($preview); // If there's a icon saved in the field, show remove icon button\n\n if (base.$field.val() !== '') {\n $clear.show();\n }\n\n $preview.on('click', '.remove-icon', function (e) {\n e.preventDefault();\n base.$field.val('');\n $preview.removeClass('icon-preview-on').find('i').removeClass();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).hide();\n });\n }\n }, {\n key: \"makeDisplay\",\n value: function makeDisplay($brick) {\n var base = this;\n var close = base.settings.classes.close;\n var $body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body');\n var $close = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<a href=\"#\" class=\"icon-picker-close\"/>');\n\n if (base.settings.mode === 'inline') {\n $brick.find('.icon-set').append($close).removeClass('dialog').addClass('ip-inline ' + base.settings.size).parent().addClass('icon-set-wrap');\n } else if (base.settings.mode === 'dialog') {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.icon-set').addClass('dialog ' + base.settings.size);\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()('.icon-picker-overlay').length <= 0) {\n $body.append('<div class=\"icon-picker-overlay\"/>').append($close);\n }\n }\n\n $body.on('click', '.icon-picker-close, .icon-picker-overlay', function (e) {\n e.preventDefault();\n base.closePicker($brick, jquery__WEBPACK_IMPORTED_MODULE_0___default()(base.iconSet), base.settings.mode);\n }).on('mouseenter mouseleave', '.icon-picker-close', function (e) {\n if (e.type === 'mouseenter') {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).addClass(close);\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).removeClass(close);\n }\n });\n }\n }, {\n key: \"makeLaunchers\",\n value: function makeLaunchers($brick) {\n var base = this;\n var dataIconSets = $brick.data('iconsets');\n var iconSet;\n\n if (typeof dataIconSets === 'undefined') {\n dataIconSets = base.settings.iconSets;\n }\n\n for (iconSet in dataIconSets) {\n if (dataIconSets.hasOwnProperty(iconSet)) {\n $brick.append('<a class=\"launch-icons button ' + base.settings.classes.launcher + '\" data-icons=\"' + iconSet + '\">' + dataIconSets[iconSet] + '</a>');\n }\n }\n\n $brick.find('.launch-icons').on('click', function (e) {\n e.preventDefault();\n var $self = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n var theseIcons = $self.data('icons');\n base.iconSetName = theseIcons;\n base.iconSet = '.' + theseIcons + '-set'; // Initialize picker\n\n base.iconPick($brick); // Show icon picker\n\n base.showPicker($brick, jquery__WEBPACK_IMPORTED_MODULE_0___default()(base.iconSet), base.settings.mode);\n });\n }\n }, {\n key: \"iconPick\",\n value: function iconPick($brick) {\n var base = this;\n var highlight = 'icon-highlight ' + base.settings.classes.highlight;\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(base.iconSet).on('click', 'li', function (e) {\n e.preventDefault();\n var $icon = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n var icon = $icon.data(base.settings.save); // Mark as selected\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.icon-selected').removeClass('icon-selected');\n $icon.addClass('icon-selected');\n\n if (base.$field.data('format') === 'short') {\n icon = icon.slice(6);\n } // Save icon value to field\n\n\n base.$field.val(icon); // Close icon picker\n\n if (base.settings.closeOnPick) {\n base.closePicker($brick, $icon.closest(base.iconSet), base.settings.mode);\n } // Set preview\n\n\n base.setPreview($icon.data('class')); // Broadcast event passing the selected icon.\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').trigger('iconselected.queryloop', icon);\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(base.iconSet).on('mouseenter mouseleave', 'li', function (e) {\n if (e.type === 'mouseenter') {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).addClass(highlight);\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).removeClass(highlight);\n }\n });\n }\n }, {\n key: \"showPicker\",\n value: function showPicker($brick, $icons, mode) {\n if (mode === 'inline') {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.icon-set').removeClass('ip-inline-open');\n $brick.find($icons).toggleClass('ip-inline-open');\n } else if (mode === 'dialog') {\n $brick.find('.icon-picker-close').addClass('make-visible');\n $brick.find('.icon-picker-overlay').addClass('make-visible');\n $icons.addClass('dialog-open');\n }\n\n $icons.find('.icon-selected').removeClass('icon-selected');\n var selectedIcon = this.$field.val().replace(' ', '.');\n\n if (selectedIcon !== '') {\n if (this.settings.save === 'class') {\n $icons.find('.' + selectedIcon).addClass('icon-selected');\n } else {\n $icons.find('[data-code=\"' + selectedIcon + '\"]').addClass('icon-selected');\n }\n } // Broadcast event when the picker is shown passing the picker mode.\n\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').trigger('iconpickershow.queryloop', mode);\n }\n }, {\n key: \"closePicker\",\n value: function closePicker($brick, $icons, mode) {\n // Remove event so they don't fire from a different picker\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.iconSet).off('click', 'li');\n\n if (mode === 'inline') {\n $brick.find($icons).removeClass('ip-inline-open');\n } else if (mode === 'dialog') {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.icon-picker-close, .icon-picker-overlay').removeClass('make-visible');\n } // Broadcast event when the picker is closed passing the picker mode.\n\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').trigger('iconpickerclose.queryloop', mode);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.icon-set').removeClass('dialog-open');\n }\n }, {\n key: \"setPreview\",\n value: function setPreview(preview) {\n var $preview = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.element).find('.icon-preview');\n $preview.addClass('icon-preview-on').find('i').removeClass().addClass(this.iconSetName).addClass(preview);\n $preview.find('a').show();\n }\n }]);\n\n return QL_Icon_Picker;\n}();\n/* Grav */\n// extend $ with 3rd party QL Icon Picker\n\n\n(jquery__WEBPACK_IMPORTED_MODULE_0___default().fn.qlIconPicker) = function (options) {\n this.each(function () {\n if (!jquery__WEBPACK_IMPORTED_MODULE_0___default().data(this, 'plugin_qlIconPicker')) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default().data(this, 'plugin_qlIconPicker', new QL_Icon_Picker(this, options));\n }\n });\n return this;\n};\n\nvar IconpickerField = /*#__PURE__*/function () {\n function IconpickerField(options) {\n var _this = this;\n\n _classCallCheck(this, IconpickerField);\n\n this.items = jquery__WEBPACK_IMPORTED_MODULE_0___default()();\n this.options = Object.assign({}, this.defaults, options);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-grav-iconpicker]').each(function (index, element) {\n return _this.addItem(element);\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('mutation._grav', this._onAddedNodes.bind(this));\n }\n\n _createClass(IconpickerField, [{\n key: \"_onAddedNodes\",\n value: function _onAddedNodes(event, target\n /* , record, instance */\n ) {\n var _this2 = this;\n\n var fields = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target).find('[data-grav-iconpicker]');\n\n if (!fields.length) {\n return;\n }\n\n fields.each(function (index, field) {\n field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(field);\n\n if (!~_this2.items.index(field)) {\n _this2.addItem(field);\n }\n });\n }\n }, {\n key: \"addItem\",\n value: function addItem(element) {\n element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n this.items = this.items.add(element);\n element.find('.icon-picker').qlIconPicker({\n 'save': 'class'\n }); // hack to remove extra icon sets that are just copies\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.icon-set:not(:first)').remove();\n }\n }]);\n\n return IconpickerField;\n}();\n\n\nvar Instance = new IconpickerField(); // Fix to close the dialog when clicking outside\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target);\n var match = '.icon-set.dialog-open, .launch-icons[data-icons]';\n\n if (!target.is(match) && !target.closest(match).length) {\n var dialogs = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.icon-set.dialog-open'); // skip if there's no dialog open\n\n if (dialogs.length) {\n dialogs.each(function (index, dialog) {\n var picker = jquery__WEBPACK_IMPORTED_MODULE_0___default()(dialog).siblings('.icon-picker');\n var data = picker.data('plugin_qlIconPicker');\n data.closePicker(picker, jquery__WEBPACK_IMPORTED_MODULE_0___default()(data.iconSet), data.settings.mode);\n });\n }\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL2ZpZWxkcy9pY29ucGlja2VyLmpzPzVkNDEiXSwibmFtZXMiOlsiZGVmYXVsdHMiLCJRTF9JY29uX1BpY2tlciIsImVsZW1lbnQiLCJvcHRpb25zIiwiaWNvblNldCIsImljb25TZXROYW1lIiwiJGZpZWxkIiwic2V0dGluZ3MiLCIkIiwiX2RlZmF1bHRzIiwiaW5pdCIsIiRicmljayIsInBpY2tlcklkIiwiZGF0YSIsIiRwcmV2aWV3IiwiZmluZCIsIm1ha2VQcmV2aWV3IiwibWFrZUNsZWFyIiwibWFrZUxhdW5jaGVycyIsIm1ha2VEaXNwbGF5IiwiJGljb24iLCJpY29uVmFsdWUiLCJ2YWwiLCJwcmVwZW5kVG8iLCJhZGRDbGFzcyIsImJhc2UiLCIkY2xlYXIiLCJjbGFzc2VzIiwiY2xlYXIiLCJoaWRlIiwic2hvdyIsIm9uIiwiZSIsInByZXZlbnREZWZhdWx0IiwicmVtb3ZlQ2xhc3MiLCJjbG9zZSIsIiRib2R5IiwiJGNsb3NlIiwibW9kZSIsImFwcGVuZCIsInNpemUiLCJwYXJlbnQiLCJsZW5ndGgiLCJjbG9zZVBpY2tlciIsInR5cGUiLCJkYXRhSWNvblNldHMiLCJpY29uU2V0cyIsImhhc093blByb3BlcnR5IiwibGF1bmNoZXIiLCIkc2VsZiIsInRoZXNlSWNvbnMiLCJpY29uUGljayIsInNob3dQaWNrZXIiLCJoaWdobGlnaHQiLCJpY29uIiwic2F2ZSIsInNsaWNlIiwiY2xvc2VPblBpY2siLCJjbG9zZXN0Iiwic2V0UHJldmlldyIsInRyaWdnZXIiLCIkaWNvbnMiLCJ0b2dnbGVDbGFzcyIsInNlbGVjdGVkSWNvbiIsInJlcGxhY2UiLCJvZmYiLCJwcmV2aWV3IiwiZWFjaCIsIkljb25waWNrZXJGaWVsZCIsIml0ZW1zIiwiT2JqZWN0IiwiYXNzaWduIiwiaW5kZXgiLCJhZGRJdGVtIiwiX29uQWRkZWROb2RlcyIsImJpbmQiLCJldmVudCIsInRhcmdldCIsImZpZWxkcyIsImZpZWxkIiwiYWRkIiwicWxJY29uUGlja2VyIiwicmVtb3ZlIiwiSW5zdGFuY2UiLCJkb2N1bWVudCIsIm1hdGNoIiwiaXMiLCJkaWFsb2dzIiwiZGlhbG9nIiwicGlja2VyIiwic2libGluZ3MiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBSUEsUUFBUSxHQUFHO0FBQ1gsVUFBUSxRQURHO0FBQ087QUFDbEIsaUJBQWUsSUFGSjtBQUVVO0FBQ3JCLFVBQVEsT0FIRztBQUdNO0FBQ2pCLFVBQVEsRUFKRztBQUtYLGFBQVc7QUFDUCxnQkFBWSxFQURMO0FBQ1M7QUFDaEIsYUFBUyxjQUZGO0FBRWtCO0FBQ3pCLGlCQUFhLEVBSE47QUFHVTtBQUNqQixhQUFTLEVBSkYsQ0FJSzs7QUFKTCxHQUxBO0FBV1gsY0FBWTtBQUFFO0FBQ1YsaUJBQWEsV0FETDtBQUNrQjtBQUMxQixVQUFNLGFBRkUsQ0FFWTs7QUFGWjtBQVhELENBQWY7O0lBaUJNQyxjO0FBRUYsMEJBQVlDLE9BQVosRUFBcUJDLE9BQXJCLEVBQThCO0FBQUE7O0FBQzFCLFNBQUtDLE9BQUwsR0FBZSxFQUFmO0FBQ0EsU0FBS0MsV0FBTCxHQUFtQixFQUFuQjtBQUNBLFNBQUtDLE1BQUwsR0FBYyxFQUFkO0FBQ0EsU0FBS0osT0FBTCxHQUFlQSxPQUFmO0FBQ0EsU0FBS0ssUUFBTCxHQUFnQkMsb0RBQUEsQ0FBUyxFQUFULEVBQWFSLFFBQWIsRUFBdUJHLE9BQXZCLENBQWhCO0FBQ0EsU0FBS00sU0FBTCxHQUFpQlQsUUFBakI7QUFDQSxTQUFLVSxJQUFMO0FBQ0g7Ozs7V0FFRCxnQkFBTztBQUNILFVBQUlDLE1BQU0sR0FBR0gsNkNBQUMsQ0FBQyxLQUFLTixPQUFOLENBQWQ7QUFDQSxVQUFJVSxRQUFRLEdBQUdELE1BQU0sQ0FBQ0UsSUFBUCxDQUFZLFVBQVosQ0FBZjtBQUNBLFVBQUlDLFFBQVEsR0FBR04sNkNBQUMsQ0FBQywyQ0FBMkNJLFFBQTNDLEdBQXNELE1BQXZELENBQWhC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NkMsYUFBTyxDQUFDcEIsSUFBUixDQUFhLFVBQUNLLEtBQUQsRUFBUWdCLE1BQVIsRUFBbUI7QUFDNUIsWUFBTUMsTUFBTSxHQUFHakYsNkNBQUMsQ0FBQ2dGLE1BQUQsQ0FBRCxDQUFVRSxRQUFWLENBQW1CLGNBQW5CLENBQWY7QUFDQSxZQUFNN0UsSUFBSSxHQUFHNEUsTUFBTSxDQUFDNUUsSUFBUCxDQUFZLHFCQUFaLENBQWI7QUFDQUEsWUFBSSxDQUFDOEIsV0FBTCxDQUFpQjhDLE1BQWpCLEVBQXlCakYsNkNBQUMsQ0FBQ0ssSUFBSSxDQUFDVCxPQUFOLENBQTFCLEVBQTBDUyxJQUFJLENBQUNOLFFBQUwsQ0FBYytCLElBQXhEO0FBQ0gsT0FKRDtBQUtIO0FBQ0o7QUFDSixDQWZEIiwiZmlsZSI6Ii4vYXBwL2Zvcm1zL2ZpZWxkcy9pY29ucGlja2VyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcblxuLyogSWNvbiBQaWNrZXIgYnkgUXVlcnlMb29wXG4gKiBBdXRob3I6IEBlbGlvcml2ZXJvXG4gKiBVUkw6IGh0dHA6Ly9xdWVyeWxvb3AuY29tL1xuICogTGljZW5zZTogR1BMdjJcbiAqL1xuXG52YXIgZGVmYXVsdHMgPSB7XG4gICAgJ21vZGUnOiAnZGlhbG9nJywgLy8gc2hvdyBvdmVybGF5ICdkaWFsb2cnIHBhbmVsIG9yIHNsaWRlIGRvd24gJ2lubGluZScgcGFuZWxcbiAgICAnY2xvc2VPblBpY2snOiB0cnVlLCAvLyB3aGV0aGVyIHRvIGNsb3NlIHBhbmVsIGFmdGVyIHBpY2tpbmcgb3IgJ25vJ1xuICAgICdzYXZlJzogJ2NsYXNzJywgLy8gc2F2ZSBpY29uICdjbGFzcycgb3IgJ2NvZGUnXG4gICAgJ3NpemUnOiAnJyxcbiAgICAnY2xhc3Nlcyc6IHtcbiAgICAgICAgJ2xhdW5jaGVyJzogJycsIC8vIGV4dHJhIGNsYXNzZXMgZm9yIGxhdW5jaGVyIGJ1dHRvbnNcbiAgICAgICAgJ2NsZWFyJzogJ3JlbW92ZS10aW1lcycsIC8vIGV4dHJhIGNsYXNzZXMgZm9yIGJ1dHRvbiB0aGF0IHJlbW92ZXMgcHJldmlldyBhbmQgY2xlYXJzIGZpZWxkXG4gICAgICAgICdoaWdobGlnaHQnOiAnJywgLy8gZXh0cmEgY2xhc3NlcyB3aGVuIGhpZ2hsaWdodGluZyBhbiBpY29uXG4gICAgICAgICdjbG9zZSc6ICcnIC8vIGV4dHJhIGNsYXNzZXMgZm9yIGNsb3NlIGJ1dHRvblxuICAgIH0sXG4gICAgJ2ljb25TZXRzJzogeyAvLyBleGFtcGxlIGRhdGEgc3RydWN0dXJlLiBVc2VkIHRvIHNwZWNpZnkgd2hpY2ggbGF1bmNoZXJzIHdpbGwgYmUgY3JlYXRlZFxuICAgICAgICAnZ2VuZXJpY29uJzogJ0dlbmVyaWNvbicsIC8vIGNyZWF0ZSBhIGxhdW5jaGVyIHRvIHBpY2sgZ2VuZXJpY29uIGljb25zXG4gICAgICAgICdmYSc6ICdGb250QXdlc29tZScgLy8gY3JlYXRlIGEgbGF1bmNoZXIgdG8gcGljayBmb250YXdlc29tZSBpY29uc1xuICAgIH1cbn07XG5cbmNsYXNzIFFMX0ljb25fUGlja2VyIHtcblxuICAgIGNvbnN0cnVjdG9yKGVsZW1lbnQsIG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5pY29uU2V0ID0gJyc7XG4gICAgICAgIHRoaXMuaWNvblNldE5hbWUgPSAnJztcbiAgICAgICAgdGhpcy4kZmllbGQgPSAnJztcbiAgICAgICAgdGhpcy5lbGVtZW50ID0gZWxlbWVudDtcbiAgICAgICAgdGhpcy5zZXR0aW5ncyA9ICQuZXh0ZW5kKHt9LCBkZWZhdWx0cywgb3B0aW9ucyk7XG4gICAgICAgIHRoaXMuX2RlZmF1bHRzID0gZGVmYXVsdHM7XG4gICAgICAgIHRoaXMuaW5pdCgpO1xuICAgIH1cblxuICAgIGluaXQoKSB7XG4gICAgICAgIHZhciAkYnJpY2sgPSAkKHRoaXMuZWxlbWVudCk7XG4gICAgICAgIHZhciBwaWNrZXJJZCA9ICRicmljay5kYXRhKCdwaWNrZXJpZCcpO1xuICAgICAgICB2YXIgJHByZXZpZXcgPSAkKCc8ZGl2IGNsYXNzPVwiaWNvbi1wcmV2aWV3IGljb24tcHJldmlldy0nICsgcGlja2VySWQgKyAnXCIgLz4nKTtcblxuICAgICAgICB0aGlzLiRmaWVsZCA9ICRicmljay5maW5kKCdpbnB1dCcpO1xuXG4gICAgICAgIC8vIEFkZCBwcmV2aWV3IGFyZWFcbiAgICAgICAgdGhpcy5tYWtlUHJldmlldygkYnJpY2ssIHBpY2tlcklkLCAkcHJldmlldyk7XG5cbiAgICAgICAgLy8gTWFrZSBidXR0b24gdG8gY2xlYXIgZmllbGQgYW5kIHJlbW92ZSBwcmV2aWV3XG4gICAgICAgIHRoaXMubWFrZUNsZWFyKHBpY2tlcklkLCAkcHJldmlldyk7XG5cbiAgICAgICAgLy8gTWFrZSBidXR0b25zIHRoYXQgb3BlbiB0aGUgcGFuZWwgb2YgaWNvbnNcbiAgICAgICAgdGhpcy5tYWtlTGF1bmNoZXJzKCRicmljaywgcGlja2VySWQpO1xuXG4gICAgICAgIC8vIFByZXBhcmUgZGlzcGxheSBzdHlsZXMsIGlubGluZSBhbmQgZGlhbG9nXG4gICAgICAgIHRoaXMubWFrZURpc3BsYXkoJGJyaWNrKTtcbiAgICB9XG5cbiAgICBtYWtlUHJldmlldygkYnJpY2ssIHBpY2tlcklkLCAkcHJldmlldykge1xuICAgICAgICB2YXIgJGljb24gPSAkKCc8aSAvPicpO1xuICAgICAgICB2YXIgaWNvblZhbHVlID0gdGhpcy4kZmllbGQudmFsKCk7XG5cbiAgICAgICAgJHByZXZpZXcucHJlcGVuZFRvKCRicmljayk7XG4gICAgICAgICRpY29uLnByZXBlbmRUbygkcHJldmlldyk7XG4gICAgICAgIGlmIChpY29uVmFsdWUgIT09ICcnKSB7XG4gICAgICAgICAgICAkcHJldmlldy5hZGRDbGFzcygnaWNvbi1wcmV2aWV3LW9uJyk7XG4gICAgICAgICAgICAkaWNvbi5hZGRDbGFzcyhpY29uVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbWFrZUNsZWFyKHBpY2tlcklkLCAkcHJldmlldykge1xuICAgICAgICB2YXIgYmFzZSA9IHRoaXM7XG4gICAgICAgIHZhciAkY2xlYXIgPSAkKCc8YSBjbGFzcz1cInJlbW92ZS1pY29uICcgKyBiYXNlLnNldHRpbmdzLmNsYXNzZXMuY2xlYXIgKyAnXCIgLz4nKTtcblxuICAgICAgICAvLyBIaWRlIGJ1dHRvbiB0byByZW1vdmUgaWNvbiBhbmQgcHJldmlldyBhbmQgYXBwZW5kIGl0IHRvIHByZXZpZXcgYXJlYVxuICAgICAgICAkY2xlYXIuaGlkZSgpLnByZXBlbmRUbygkcHJldmlldyk7XG4gICAgICAgIC8vIElmIHRoZXJlJ3MgYSBpY29uIHNhdmVkIGluIHRoZSBmaWVsZCwgc2hvdyByZW1vdmUgaWNvbiBidXR0b25cbiAgICAgICAgaWYgKGJhc2UuJGZpZWxkLnZhbCgpICE9PSAnJykge1xuICAgICAgICAgICAgJGNsZWFyLnNob3coKTtcbiAgICAgICAgfVxuXG4gICAgICAgICRwcmV2aWV3Lm9uKCdjbGljaycsICcucmVtb3ZlLWljb24nLCBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBiYXNlLiRmaWVsZC52YWwoJycpO1xuICAgICAgICAgICAgJHByZXZpZXcucmVtb3ZlQ2xhc3MoJ2ljb24tcHJldmlldy1vbicpLmZpbmQoJ2knKS5yZW1vdmVDbGFzcygpO1xuICAgICAgICAgICAgJCh0aGlzKS5oaWRlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG1ha2VEaXNwbGF5KCRicmljaykge1xuICAgICAgICB2YXIgYmFzZSA9IHRoaXM7XG4gICAgICAgIHZhciBjbG9zZSA9IGJhc2Uuc2V0dGluZ3MuY2xhc3Nlcy5jbG9zZTtcbiAgICAgICAgdmFyICRib2R5ID0gJCgnYm9keScpO1xuXG4gICAgICAgIHZhciAkY2xvc2UgPSAkKCc8YSBocmVmPVwiI1wiIGNsYXNzPVwiaWNvbi1waWNrZXItY2xvc2VcIi8+Jyk7XG5cbiAgICAgICAgaWYgKGJhc2Uuc2V0dGluZ3MubW9kZSA9PT0gJ2lubGluZScpIHtcbiAgICAgICAgICAgICRicmljay5maW5kKCcuaWNvbi1zZXQnKS5hcHBlbmQoJGNsb3NlKS5yZW1vdmVDbGFzcygnZGlhbG9nJykuYWRkQ2xhc3MoJ2lwLWlubGluZSAnICsgYmFzZS5zZXR0aW5ncy5zaXplKS5wYXJlbnQoKS5hZGRDbGFzcygnaWNvbi1zZXQtd3JhcCcpO1xuICAgICAgICB9IGVsc2UgaWYgKGJhc2Uuc2V0dGluZ3MubW9kZSA9PT0gJ2RpYWxvZycpIHtcbiAgICAgICAgICAgICQoJy5pY29uLXNldCcpLmFkZENsYXNzKCdkaWFsb2cgJyArIGJhc2Uuc2V0dGluZ3Muc2l6ZSk7XG4gICAgICAgICAgICBpZiAoJCgnLmljb24tcGlja2VyLW92ZXJsYXknKS5sZW5ndGggPD0gMCkge1xuICAgICAgICAgICAgICAgICRib2R5LmFwcGVuZCgnPGRpdiBjbGFzcz1cImljb24tcGlja2VyLW92ZXJsYXlcIi8+JykuYXBwZW5kKCRjbG9zZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJGJvZHlcbiAgICAgICAgICAgIC5vbignY2xpY2snLCAnLmljb24tcGlja2VyLWNsb3NlLCAuaWNvbi1waWNrZXItb3ZlcmxheScsIGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgYmFzZS5jbG9zZVBpY2tlcigkYnJpY2ssICQoYmFzZS5pY29uU2V0KSwgYmFzZS5zZXR0aW5ncy5tb2RlKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAub24oJ21vdXNlZW50ZXIgbW91c2VsZWF2ZScsICcuaWNvbi1waWNrZXItY2xvc2UnLCBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICAgICAgaWYgKGUudHlwZSA9PT0gJ21vdXNlZW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICQodGhpcykuYWRkQ2xhc3MoY2xvc2UpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoY2xvc2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG1ha2VMYXVuY2hlcnMoJGJyaWNrKSB7XG4gICAgICAgIHZhciBiYXNlID0gdGhpcztcbiAgICAgICAgdmFyIGRhdGFJY29uU2V0cyA9ICRicmljay5kYXRhKCdpY29uc2V0cycpO1xuICAgICAgICB2YXIgaWNvblNldDtcblxuICAgICAgICBpZiAodHlwZW9mIGRhdGFJY29uU2V0cyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGRhdGFJY29uU2V0cyA9IGJhc2Uuc2V0dGluZ3MuaWNvblNldHM7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChpY29uU2V0IGluIGRhdGFJY29uU2V0cykge1xuICAgICAgICAgICAgaWYgKGRhdGFJY29uU2V0cy5oYXNPd25Qcm9wZXJ0eShpY29uU2V0KSkge1xuICAgICAgICAgICAgICAgICRicmljay5hcHBlbmQoJzxhIGNsYXNzPVwibGF1bmNoLWljb25zIGJ1dHRvbiAnICsgYmFzZS5zZXR0aW5ncy5jbGFzc2VzLmxhdW5jaGVyICsgJ1wiIGRhdGEtaWNvbnM9XCInICsgaWNvblNldCArICdcIj4nICsgZGF0YUljb25TZXRzW2ljb25TZXRdICsgJzwvYT4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICRicmljay5maW5kKCcubGF1bmNoLWljb25zJykub24oJ2NsaWNrJywgZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdmFyICRzZWxmID0gJCh0aGlzKTtcbiAgICAgICAgICAgIHZhciB0aGVzZUljb25zID0gJHNlbGYuZGF0YSgnaWNvbnMnKTtcblxuICAgICAgICAgICAgYmFzZS5pY29uU2V0TmFtZSA9IHRoZXNlSWNvbnM7XG4gICAgICAgICAgICBiYXNlLmljb25TZXQgPSAnLicgKyB0aGVzZUljb25zICsgJy1zZXQnO1xuXG4gICAgICAgICAgICAvLyBJbml0aWFsaXplIHBpY2tlclxuICAgICAgICAgICAgYmFzZS5pY29uUGljaygkYnJpY2spO1xuXG4gICAgICAgICAgICAvLyBTaG93IGljb24gcGlja2VyXG4gICAgICAgICAgICBiYXNlLnNob3dQaWNrZXIoJGJyaWNrLCAkKGJhc2UuaWNvblNldCksIGJhc2Uuc2V0dGluZ3MubW9kZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGljb25QaWNrKCRicmljaykge1xuICAgICAgICB2YXIgYmFzZSA9IHRoaXM7XG4gICAgICAgIHZhciBoaWdobGlnaHQgPSAnaWNvbi1oaWdobGlnaHQgJyArIGJhc2Uuc2V0dGluZ3MuY2xhc3Nlcy5oaWdobGlnaHQ7XG5cbiAgICAgICAgJChiYXNlLmljb25TZXQpLm9uKCdjbGljaycsICdsaScsIGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHZhciAkaWNvbiA9ICQodGhpcyk7XG4gICAgICAgICAgICB2YXIgaWNvbiA9ICRpY29uLmRhdGEoYmFzZS5zZXR0aW5ncy5zYXZlKTtcblxuICAgICAgICAgICAgLy8gTWFyayBhcyBzZWxlY3RlZFxuICAgICAgICAgICAgJCgnLmljb24tc2VsZWN0ZWQnKS5yZW1vdmVDbGFzcygnaWNvbi1zZWxlY3RlZCcpO1xuICAgICAgICAgICAgJGljb24uYWRkQ2xhc3MoJ2ljb24tc2VsZWN0ZWQnKTtcbiAgICAgICAgICAgIGlmIChiYXNlLiRmaWVsZC5kYXRhKCdmb3JtYXQnKSA9PT0gJ3Nob3J0Jykge1xuICAgICAgICAgICAgICAgIGljb24gPSBpY29uLnNsaWNlKDYpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBTYXZlIGljb24gdmFsdWUgdG8gZmllbGRcbiAgICAgICAgICAgIGJhc2UuJGZpZWxkLnZhbChpY29uKTtcblxuICAgICAgICAgICAgLy8gQ2xvc2UgaWNvbiBwaWNrZXJcbiAgICAgICAgICAgIGlmIChiYXNlLnNldHRpbmdzLmNsb3NlT25QaWNrKSB7XG4gICAgICAgICAgICAgICAgYmFzZS5jbG9zZVBpY2tlcigkYnJpY2ssICRpY29uLmNsb3Nlc3QoYmFzZS5pY29uU2V0KSwgYmFzZS5zZXR0aW5ncy5tb2RlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gU2V0IHByZXZpZXdcbiAgICAgICAgICAgIGJhc2Uuc2V0UHJldmlldygkaWNvbi5kYXRhKCdjbGFzcycpKTtcblxuICAgICAgICAgICAgLy8gQnJvYWRjYXN0IGV2ZW50IHBhc3NpbmcgdGhlIHNlbGVjdGVkIGljb24uXG4gICAgICAgICAgICAkKCdib2R5JykudHJpZ2dlcignaWNvbnNlbGVjdGVkLnF1ZXJ5bG9vcCcsIGljb24pO1xuICAgICAgICB9KTtcbiAgICAgICAgJChiYXNlLmljb25TZXQpLm9uKCdtb3VzZWVudGVyIG1vdXNlbGVhdmUnLCAnbGknLCBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICBpZiAoZS50eXBlID09PSAnbW91c2VlbnRlcicpIHtcbiAgICAgICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKGhpZ2hsaWdodCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3MoaGlnaGxpZ2h0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2hvd1BpY2tlcigkYnJpY2ssICRpY29ucywgbW9kZSkge1xuICAgICAgICBpZiAobW9kZSA9PT0gJ2lubGluZScpIHtcbiAgICAgICAgICAgICQoJy5pY29uLXNldCcpLnJlbW92ZUNsYXNzKCdpcC1pbmxpbmUtb3BlbicpO1xuICAgICAgICAgICAgJGJyaWNrLmZpbmQoJGljb25zKS50b2dnbGVDbGFzcygnaXAtaW5saW5lLW9wZW4nKTtcbiAgICAgICAgfSBlbHNlIGlmIChtb2RlID09PSAnZGlhbG9nJykge1xuICAgICAgICAgICAgJGJyaWNrLmZpbmQoJy5pY29uLXBpY2tlci1jbG9zZScpLmFkZENsYXNzKCdtYWtlLXZpc2libGUnKTtcbiAgICAgICAgICAgICRicmljay5maW5kKCcuaWNvbi1waWNrZXItb3ZlcmxheScpLmFkZENsYXNzKCdtYWtlLXZpc2libGUnKTtcbiAgICAgICAgICAgICRpY29ucy5hZGRDbGFzcygnZGlhbG9nLW9wZW4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgICRpY29ucy5maW5kKCcuaWNvbi1zZWxlY3RlZCcpLnJlbW92ZUNsYXNzKCdpY29uLXNlbGVjdGVkJyk7XG4gICAgICAgIHZhciBzZWxlY3RlZEljb24gPSB0aGlzLiRmaWVsZC52YWwoKS5yZXBsYWNlKCcgJywgJy4nKTtcbiAgICAgICAgaWYgKHNlbGVjdGVkSWNvbiAhPT0gJycpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNldHRpbmdzLnNhdmUgPT09ICdjbGFzcycpIHtcbiAgICAgICAgICAgICAgICAkaWNvbnMuZmluZCgnLicgKyBzZWxlY3RlZEljb24pLmFkZENsYXNzKCdpY29uLXNlbGVjdGVkJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICRpY29ucy5maW5kKCdbZGF0YS1jb2RlPVwiJyArIHNlbGVjdGVkSWNvbiArICdcIl0nKS5hZGRDbGFzcygnaWNvbi1zZWxlY3RlZCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIEJyb2FkY2FzdCBldmVudCB3aGVuIHRoZSBwaWNrZXIgaXMgc2hvd24gcGFzc2luZyB0aGUgcGlja2VyIG1vZGUuXG4gICAgICAgICQoJ2JvZHknKS50cmlnZ2VyKCdpY29ucGlja2Vyc2hvdy5xdWVyeWxvb3AnLCBtb2RlKTtcbiAgICB9XG5cbiAgICBjbG9zZVBpY2tlcigkYnJpY2ssICRpY29ucywgbW9kZSkge1xuICAgICAgICAvLyBSZW1vdmUgZXZlbnQgc28gdGhleSBkb24ndCBmaXJlIGZyb20gYSBkaWZmZXJlbnQgcGlja2VyXG4gICAgICAgICQodGhpcy5pY29uU2V0KS5vZmYoJ2NsaWNrJywgJ2xpJyk7XG5cbiAgICAgICAgaWYgKG1vZGUgPT09ICdpbmxpbmUnKSB7XG4gICAgICAgICAgICAkYnJpY2suZmluZCgkaWNvbnMpLnJlbW92ZUNsYXNzKCdpcC1pbmxpbmUtb3BlbicpO1xuICAgICAgICB9IGVsc2UgaWYgKG1vZGUgPT09ICdkaWFsb2cnKSB7XG4gICAgICAgICAgICAkKCcuaWNvbi1waWNrZXItY2xvc2UsIC5pY29uLXBpY2tlci1vdmVybGF5JykucmVtb3ZlQ2xhc3MoJ21ha2UtdmlzaWJsZScpO1xuICAgICAgICB9XG4gICAgICAgIC8vIEJyb2FkY2FzdCBldmVudCB3aGVuIHRoZSBwaWNrZXIgaXMgY2xvc2VkIHBhc3NpbmcgdGhlIHBpY2tlciBtb2RlLlxuICAgICAgICAkKCdib2R5JykudHJpZ2dlcignaWNvbnBpY2tlcmNsb3NlLnF1ZXJ5bG9vcCcsIG1vZGUpO1xuICAgICAgICAkKCcuaWNvbi1zZXQnKS5yZW1vdmVDbGFzcygnZGlhbG9nLW9wZW4nKTtcbiAgICB9XG5cbiAgICBzZXRQcmV2aWV3KHByZXZpZXcpIHtcbiAgICAgICAgdmFyICRwcmV2aWV3ID0gJCh0aGlzLmVsZW1lbnQpLmZpbmQoJy5pY29uLXByZXZpZXcnKTtcblxuICAgICAgICAkcHJldmlldy5hZGRDbGFzcygnaWNvbi1wcmV2aWV3LW9uJykuZmluZCgnaScpLnJlbW92ZUNsYXNzKClcbiAgICAgICAgICAgIC5hZGRDbGFzcyh0aGlzLmljb25TZXROYW1lKVxuICAgICAgICAgICAgLmFkZENsYXNzKHByZXZpZXcpO1xuICAgICAgICAkcHJldmlldy5maW5kKCdhJykuc2hvdygpO1xuICAgIH1cbn1cblxuLyogR3JhdiAqL1xuLy8gZXh0ZW5kICQgd2l0aCAzcmQgcGFydHkgUUwgSWNvbiBQaWNrZXJcbiQuZm4ucWxJY29uUGlja2VyID0gZnVuY3Rpb24ob3B0aW9ucykge1xuICAgIHRoaXMuZWFjaChmdW5jdGlvbigpIHtcbiAgICAgICAgaWYgKCEkLmRhdGEodGhpcywgJ3BsdWdpbl9xbEljb25QaWNrZXInKSkge1xuICAgICAgICAgICAgJC5kYXRhKHRoaXMsICdwbHVnaW5fcWxJY29uUGlja2VyJywgbmV3IFFMX0ljb25fUGlja2VyKHRoaXMsIG9wdGlvbnMpKTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXM7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJY29ucGlja2VyRmllbGQge1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICB0aGlzLml0ZW1zID0gJCgpO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmRlZmF1bHRzLCBvcHRpb25zKTtcblxuICAgICAgICAkKCdbZGF0YS1ncmF2LWljb25waWNrZXJdJykuZWFjaCgoaW5kZXgsIGVsZW1lbnQpID0+IHRoaXMuYWRkSXRlbShlbGVtZW50KSk7XG4gICAgICAgICQoJ2JvZHknKS5vbignbXV0YXRpb24uX2dyYXYnLCB0aGlzLl9vbkFkZGVkTm9kZXMuYmluZCh0aGlzKSk7XG4gICAgfVxuXG4gICAgX29uQWRkZWROb2RlcyhldmVudCwgdGFyZ2V0LyogLCByZWNvcmQsIGluc3RhbmNlICovKSB7XG4gICAgICAgIGxldCBmaWVsZHMgPSAkKHRhcmdldCkuZmluZCgnW2RhdGEtZ3Jhdi1pY29ucGlja2VyXScpO1xuICAgICAgICBpZiAoIWZpZWxkcy5sZW5ndGgpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgZmllbGRzLmVhY2goKGluZGV4LCBmaWVsZCkgPT4ge1xuICAgICAgICAgICAgZmllbGQgPSAkKGZpZWxkKTtcbiAgICAgICAgICAgIGlmICghfnRoaXMuaXRlbXMuaW5kZXgoZmllbGQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRJdGVtKGZpZWxkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgYWRkSXRlbShlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpO1xuICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5pdGVtcy5hZGQoZWxlbWVudCk7XG4gICAgICAgIGVsZW1lbnQuZmluZCgnLmljb24tcGlja2VyJykucWxJY29uUGlja2VyKHtcbiAgICAgICAgICAgICdzYXZlJzogJ2NsYXNzJ1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBoYWNrIHRvIHJlbW92ZSBleHRyYSBpY29uIHNldHMgdGhhdCBhcmUganVzdCBjb3BpZXNcbiAgICAgICAgJCgnLmljb24tc2V0Om5vdCg6Zmlyc3QpJykucmVtb3ZlKCk7XG4gICAgfVxufVxuXG5leHBvcnQgbGV0IEluc3RhbmNlID0gbmV3IEljb25waWNrZXJGaWVsZCgpO1xuXG4vLyBGaXggdG8gY2xvc2UgdGhlIGRpYWxvZyB3aGVuIGNsaWNraW5nIG91dHNpZGVcbiQoZG9jdW1lbnQpLm9uKCdjbGljaycsIChldmVudCkgPT4ge1xuICAgIGNvbnN0IHRhcmdldCA9ICQoZXZlbnQudGFyZ2V0KTtcbiAgICBjb25zdCBtYXRjaCA9ICcuaWNvbi1zZXQuZGlhbG9nLW9wZW4sIC5sYXVuY2gtaWNvbnNbZGF0YS1pY29uc10nO1xuICAgIGlmICghdGFyZ2V0LmlzKG1hdGNoKSAmJiAhdGFyZ2V0LmNsb3Nlc3QobWF0Y2gpLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBkaWFsb2dzID0gJCgnLmljb24tc2V0LmRpYWxvZy1vcGVuJyk7XG5cbiAgICAgICAgLy8gc2tpcCBpZiB0aGVyZSdzIG5vIGRpYWxvZyBvcGVuXG4gICAgICAgIGlmIChkaWFsb2dzLmxlbmd0aCkge1xuICAgICAgICAgICAgZGlhbG9ncy5lYWNoKChpbmRleCwgZGlhbG9nKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGlja2VyID0gJChkaWFsb2cpLnNpYmxpbmdzKCcuaWNvbi1waWNrZXInKTtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gcGlja2VyLmRhdGEoJ3BsdWdpbl9xbEljb25QaWNrZXInKTtcbiAgICAgICAgICAgICAgICBkYXRhLmNsb3NlUGlja2VyKHBpY2tlciwgJChkYXRhLmljb25TZXQpLCBkYXRhLnNldHRpbmdzLm1vZGUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG59KTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/forms/fields/iconpicker.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/forms/fields/indeterminate.js":
|
|
/*!*******************************************!*\
|
|
!*** ./app/forms/fields/indeterminate.js ***!
|
|
\*******************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\ndocument.addEventListener('click', function (event) {\n if (document.querySelector('#pages-filters')) {\n return true;\n }\n\n var wrapper = event.target.closest('.checkboxes.indeterminate');\n\n if (wrapper) {\n event.preventDefault();\n var checkbox = wrapper.querySelector('input[type=\"checkbox\"]:not([disabled])');\n var checkStatus = wrapper.dataset._checkStatus;\n wrapper.classList.remove('status-checked', 'status-unchecked', 'status-indeterminate');\n\n switch (checkStatus) {\n // checked, going indeterminate\n case '1':\n wrapper.dataset._checkStatus = '2';\n checkbox.indeterminate = true;\n checkbox.checked = false;\n checkbox.value = 0;\n wrapper.classList.add('status-indeterminate');\n break;\n // indeterminate, going unchecked\n\n case '2':\n wrapper.dataset._checkStatus = '0';\n checkbox.indeterminate = false;\n checkbox.checked = false;\n checkbox.value = '';\n wrapper.classList.add('status-unchecked');\n break;\n // unchecked, going checked\n\n case '0':\n default:\n wrapper.dataset._checkStatus = '1';\n checkbox.indeterminate = false;\n checkbox.checked = true;\n checkbox.value = 1;\n wrapper.classList.add('status-checked');\n break;\n } // const input = new CustomEvent('input', { detail: { target: checkbox }});\n // document.dispatchEvent(input);\n\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(checkbox).trigger('input');\n }\n});\n(document.querySelectorAll('input[type=\"checkbox\"][indeterminate=\"true\"]') || []).forEach(function (input) {\n input.indeterminate = true;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL2ZpZWxkcy9pbmRldGVybWluYXRlLmpzP2Q2MzgiXSwibmFtZXMiOlsiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwiZXZlbnQiLCJxdWVyeVNlbGVjdG9yIiwid3JhcHBlciIsInRhcmdldCIsImNsb3Nlc3QiLCJwcmV2ZW50RGVmYXVsdCIsImNoZWNrYm94IiwiY2hlY2tTdGF0dXMiLCJkYXRhc2V0IiwiX2NoZWNrU3RhdHVzIiwiY2xhc3NMaXN0IiwicmVtb3ZlIiwiaW5kZXRlcm1pbmF0ZSIsImNoZWNrZWQiLCJ2YWx1ZSIsImFkZCIsIiQiLCJ0cmlnZ2VyIiwicXVlcnlTZWxlY3RvckFsbCIsImZvckVhY2giLCJpbnB1dCJdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7QUFFQUEsUUFBUSxDQUFDQyxnQkFBVCxDQUEwQixPQUExQixFQUFtQyxVQUFDQyxLQUFELEVBQVc7QUFDMUMsTUFBSUYsUUFBUSxDQUFDRyxhQUFULENBQXVCLGdCQUF2QixDQUFKLEVBQThDO0FBQzFDLFdBQU8sSUFBUDtBQUNIOztBQUVELE1BQU1DLE9BQU8sR0FBR0YsS0FBSyxDQUFDRyxNQUFOLENBQWFDLE9BQWIsQ0FBcUIsMkJBQXJCLENBQWhCOztBQUVBLE1BQUlGLE9BQUosRUFBYTtBQUNURixTQUFLLENBQUNLLGNBQU47QUFDQSxRQUFNQyxRQUFRLEdBQUdKLE9BQU8sQ0FBQ0QsYUFBUixDQUFzQix3Q0FBdEIsQ0FBakI7QUFDQSxRQUFNTSxXQUFXLEdBQUdMLE9BQU8sQ0FBQ00sT0FBUixDQUFnQkMsWUFBcEM7QUFDQVAsV0FBTyxDQUFDUSxTQUFSLENBQWtCQyxNQUFsQixDQUF5QixnQkFBekIsRUFBMkMsa0JBQTNDLEVBQStELHNCQUEvRDs7QUFFQSxZQUFRSixXQUFSO0FBQ0k7QUFDQSxXQUFLLEdBQUw7QUFDSUwsZUFBTyxDQUFDTSxPQUFSLENBQWdCQyxZQUFoQixHQUErQixHQUEvQjtBQUNBSCxnQkFBUSxDQUFDTSxhQUFULEdBQXlCLElBQXpCO0FBQ0FOLGdCQUFRLENBQUNPLE9BQVQsR0FBbUIsS0FBbkI7QUFDQVAsZ0JBQVEsQ0FBQ1EsS0FBVCxHQUFpQixDQUFqQjtBQUNBWixlQUFPLENBQUNRLFNBQVIsQ0FBa0JLLEdBQWxCLENBQXNCLHNCQUF0QjtBQUNBO0FBRUo7O0FBQ0EsV0FBSyxHQUFMO0FBQ0liLGVBQU8sQ0FBQ00sT0FBUixDQUFnQkMsWUFBaEIsR0FBK0IsR0FBL0I7QUFDQUgsZ0JBQVEsQ0FBQ00sYUFBVCxHQUF5QixLQUF6QjtBQUNBTixnQkFBUSxDQUFDTyxPQUFULEdBQW1CLEtBQW5CO0FBQ0FQLGdCQUFRLENBQUNRLEtBQVQsR0FBaUIsRUFBakI7QUFDQVosZUFBTyxDQUFDUSxTQUFSLENBQWtCSyxHQUFsQixDQUFzQixrQkFBdEI7QUFDQTtBQUVKOztBQUNBLFdBQUssR0FBTDtBQUNBO0FBQ0liLGVBQU8sQ0FBQ00sT0FBUixDQUFnQkMsWUFBaEIsR0FBK0IsR0FBL0I7QUFDQUgsZ0JBQVEsQ0FBQ00sYUFBVCxHQUF5QixLQUF6QjtBQUNBTixnQkFBUSxDQUFDTyxPQUFULEdBQW1CLElBQW5CO0FBQ0FQLGdCQUFRLENBQUNRLEtBQVQsR0FBaUIsQ0FBakI7QUFDQVosZUFBTyxDQUFDUSxTQUFSLENBQWtCSyxHQUFsQixDQUFzQixnQkFBdEI7QUFDQTtBQTNCUixLQU5TLENBb0NUO0FBQ0E7OztBQUNBQyxpREFBQyxDQUFDVixRQUFELENBQUQsQ0FBWVcsT0FBWixDQUFvQixPQUFwQjtBQUNIO0FBQ0osQ0EvQ0Q7QUFpREEsQ0FBQ25CLFFBQVEsQ0FBQ29CLGdCQUFULENBQTBCLDhDQUExQixLQUE2RSxFQUE5RSxFQUFrRkMsT0FBbEYsQ0FBMEYsVUFBQ0MsS0FBRCxFQUFXO0FBQUVBLE9BQUssQ0FBQ1IsYUFBTixHQUFzQixJQUF0QjtBQUE2QixDQUFwSSIsImZpbGUiOiIuL2FwcC9mb3Jtcy9maWVsZHMvaW5kZXRlcm1pbmF0ZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5cbmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGV2ZW50KSA9PiB7XG4gICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNwYWdlcy1maWx0ZXJzJykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgY29uc3Qgd3JhcHBlciA9IGV2ZW50LnRhcmdldC5jbG9zZXN0KCcuY2hlY2tib3hlcy5pbmRldGVybWluYXRlJyk7XG5cbiAgICBpZiAod3JhcHBlcikge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBjb25zdCBjaGVja2JveCA9IHdyYXBwZXIucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdOm5vdChbZGlzYWJsZWRdKScpO1xuICAgICAgICBjb25zdCBjaGVja1N0YXR1cyA9IHdyYXBwZXIuZGF0YXNldC5fY2hlY2tTdGF0dXM7XG4gICAgICAgIHdyYXBwZXIuY2xhc3NMaXN0LnJlbW92ZSgnc3RhdHVzLWNoZWNrZWQnLCAnc3RhdHVzLXVuY2hlY2tlZCcsICdzdGF0dXMtaW5kZXRlcm1pbmF0ZScpO1xuXG4gICAgICAgIHN3aXRjaCAoY2hlY2tTdGF0dXMpIHtcbiAgICAgICAgICAgIC8vIGNoZWNrZWQsIGdvaW5nIGluZGV0ZXJtaW5hdGVcbiAgICAgICAgICAgIGNhc2UgJzEnOlxuICAgICAgICAgICAgICAgIHdyYXBwZXIuZGF0YXNldC5fY2hlY2tTdGF0dXMgPSAnMic7XG4gICAgICAgICAgICAgICAgY2hlY2tib3guaW5kZXRlcm1pbmF0ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGNoZWNrYm94LnZhbHVlID0gMDtcbiAgICAgICAgICAgICAgICB3cmFwcGVyLmNsYXNzTGlzdC5hZGQoJ3N0YXR1cy1pbmRldGVybWluYXRlJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIC8vIGluZGV0ZXJtaW5hdGUsIGdvaW5nIHVuY2hlY2tlZFxuICAgICAgICAgICAgY2FzZSAnMic6XG4gICAgICAgICAgICAgICAgd3JhcHBlci5kYXRhc2V0Ll9jaGVja1N0YXR1cyA9ICcwJztcbiAgICAgICAgICAgICAgICBjaGVja2JveC5pbmRldGVybWluYXRlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgY2hlY2tib3guY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGNoZWNrYm94LnZhbHVlID0gJyc7XG4gICAgICAgICAgICAgICAgd3JhcHBlci5jbGFzc0xpc3QuYWRkKCdzdGF0dXMtdW5jaGVja2VkJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIC8vIHVuY2hlY2tlZCwgZ29pbmcgY2hlY2tlZFxuICAgICAgICAgICAgY2FzZSAnMCc6XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHdyYXBwZXIuZGF0YXNldC5fY2hlY2tTdGF0dXMgPSAnMSc7XG4gICAgICAgICAgICAgICAgY2hlY2tib3guaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGNoZWNrYm94LmNoZWNrZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNoZWNrYm94LnZhbHVlID0gMTtcbiAgICAgICAgICAgICAgICB3cmFwcGVyLmNsYXNzTGlzdC5hZGQoJ3N0YXR1cy1jaGVja2VkJyk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjb25zdCBpbnB1dCA9IG5ldyBDdXN0b21FdmVudCgnaW5wdXQnLCB7IGRldGFpbDogeyB0YXJnZXQ6IGNoZWNrYm94IH19KTtcbiAgICAgICAgLy8gZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChpbnB1dCk7XG4gICAgICAgICQoY2hlY2tib3gpLnRyaWdnZXIoJ2lucHV0Jyk7XG4gICAgfVxufSk7XG5cbihkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl1baW5kZXRlcm1pbmF0ZT1cInRydWVcIl0nKSB8fCBbXSkuZm9yRWFjaCgoaW5wdXQpID0+IHsgaW5wdXQuaW5kZXRlcm1pbmF0ZSA9IHRydWU7IH0pO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/forms/fields/indeterminate.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/forms/fields/index.js":
|
|
/*!***********************************!*\
|
|
!*** ./app/forms/fields/index.js ***!
|
|
\***********************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _filepicker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./filepicker */ \"./app/forms/fields/filepicker.js\");\n/* harmony import */ var _selectize__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./selectize */ \"./app/forms/fields/selectize.js\");\n/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./array */ \"./app/forms/fields/array.js\");\n/* harmony import */ var _collections__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./collections */ \"./app/forms/fields/collections.js\");\n/* harmony import */ var _datetime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./datetime */ \"./app/forms/fields/datetime.js\");\n/* harmony import */ var _editor__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./editor */ \"./app/forms/fields/editor.js\");\n/* harmony import */ var _colorpicker__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./colorpicker */ \"./app/forms/fields/colorpicker.js\");\n/* harmony import */ var _files__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./files */ \"./app/forms/fields/files.js\");\n/* harmony import */ var _folder__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./folder */ \"./app/forms/fields/folder.js\");\n/* harmony import */ var _selectunique__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./selectunique */ \"./app/forms/fields/selectunique.js\");\n/* harmony import */ var _iconpicker__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./iconpicker */ \"./app/forms/fields/iconpicker.js\");\n/* harmony import */ var _cron__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./cron */ \"./app/forms/fields/cron.js\");\n/* harmony import */ var _parents__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./parents */ \"./app/forms/fields/parents.js\");\n/* harmony import */ var _acl_picker__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./acl-picker */ \"./app/forms/fields/acl-picker.js\");\n/* harmony import */ var _permissions__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./permissions */ \"./app/forms/fields/permissions.js\");\n/* harmony import */ var _indeterminate__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./indeterminate */ \"./app/forms/fields/indeterminate.js\");\n/* harmony import */ var _mediapicker__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./mediapicker */ \"./app/forms/fields/mediapicker.js\");\n/* harmony import */ var _multilevel__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./multilevel */ \"./app/forms/fields/multilevel.js\");\n/* harmony import */ var _text__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./text */ \"./app/forms/fields/text.js\");\n/* harmony import */ var _range__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./range */ \"./app/forms/fields/range.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n FilepickerField: {\n FilepickerField: _filepicker__WEBPACK_IMPORTED_MODULE_0__.default,\n Instance: _filepicker__WEBPACK_IMPORTED_MODULE_0__.Instance\n },\n SelectizeField: {\n SelectizeField: _selectize__WEBPACK_IMPORTED_MODULE_1__.default,\n Instance: _selectize__WEBPACK_IMPORTED_MODULE_1__.Instance\n },\n ArrayField: {\n ArrayField: _array__WEBPACK_IMPORTED_MODULE_2__.default,\n Instance: _array__WEBPACK_IMPORTED_MODULE_2__.Instance\n },\n CollectionsField: {\n CollectionsField: _collections__WEBPACK_IMPORTED_MODULE_3__.default,\n Instance: _collections__WEBPACK_IMPORTED_MODULE_3__.Instance\n },\n DateTimeField: {\n DateTimeField: _datetime__WEBPACK_IMPORTED_MODULE_4__.default,\n Instance: _datetime__WEBPACK_IMPORTED_MODULE_4__.Instance\n },\n EditorField: {\n EditorField: _editor__WEBPACK_IMPORTED_MODULE_5__.default,\n Instance: _editor__WEBPACK_IMPORTED_MODULE_5__.Instance\n },\n ColorpickerField: {\n ColorpickerField: _colorpicker__WEBPACK_IMPORTED_MODULE_6__.default,\n Instance: _colorpicker__WEBPACK_IMPORTED_MODULE_6__.Instance\n },\n FilesField: {\n FilesField: _files__WEBPACK_IMPORTED_MODULE_7__.default,\n Instance: _files__WEBPACK_IMPORTED_MODULE_7__.Instance\n },\n FolderField: {\n Regenerate: _folder__WEBPACK_IMPORTED_MODULE_8__.default\n },\n SelectUniqueField: {\n SelectUniqueField: _selectunique__WEBPACK_IMPORTED_MODULE_9__.default,\n Instance: _selectunique__WEBPACK_IMPORTED_MODULE_9__.Instance\n },\n IconpickerField: {\n IconpickerField: _iconpicker__WEBPACK_IMPORTED_MODULE_10__.default,\n Instance: _iconpicker__WEBPACK_IMPORTED_MODULE_10__.Instance\n },\n CronField: {\n CronField: _cron__WEBPACK_IMPORTED_MODULE_11__.default,\n Instance: _cron__WEBPACK_IMPORTED_MODULE_11__.Instance\n },\n ParentsField: {\n ParentsField: _parents__WEBPACK_IMPORTED_MODULE_12__.default,\n Instance: _parents__WEBPACK_IMPORTED_MODULE_12__.Instances\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL2ZpZWxkcy9pbmRleC5qcz8xOGI1Il0sIm5hbWVzIjpbIkZpbGVwaWNrZXJGaWVsZCIsIkluc3RhbmNlIiwiRmlsZXBpY2tlckZpZWxkSW5zdGFuY2UiLCJTZWxlY3RpemVGaWVsZCIsIlNlbGVjdGl6ZUZpZWxkSW5zdGFuY2UiLCJBcnJheUZpZWxkIiwiQXJyYXlGaWVsZEluc3RhbmNlIiwiQ29sbGVjdGlvbnNGaWVsZCIsIkNvbGxlY3Rpb25zRmllbGRJbnN0YW5jZSIsIkRhdGVUaW1lRmllbGQiLCJEYXRlVGltZUZpZWxkSW5zdGFuY2UiLCJFZGl0b3JGaWVsZCIsIkVkaXRvckZpZWxkSW5zdGFuY2UiLCJDb2xvcnBpY2tlckZpZWxkIiwiQ29sb3JwaWNrZXJGaWVsZEluc3RhbmNlIiwiRmlsZXNGaWVsZCIsIkZpbGVzRmllbGRJbnN0YW5jZSIsIkZvbGRlckZpZWxkIiwiUmVnZW5lcmF0ZSIsIkZvbGRlckZpZWxkSW5zdGFuY2UiLCJTZWxlY3RVbmlxdWVGaWVsZCIsIlNlbGVjdFVuaXF1ZUluc3RhbmNlIiwiSWNvbnBpY2tlckZpZWxkIiwiSWNvbnBpY2tlckluc3RhbmNlIiwiQ3JvbkZpZWxkIiwiQ3JvbkZpZWxkSW5zdGFuY2UiLCJQYXJlbnRzRmllbGQiLCJQYXJlbnRzRmllbGRJbnN0YW5jZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLGlFQUFlO0FBQ1hBLGlCQUFlLEVBQUU7QUFDYkEsbUJBQWUsRUFBZkEsZ0RBRGE7QUFFYkMsWUFBUSxFQUFFQyxpREFBdUJBO0FBRnBCLEdBRE47QUFLWEMsZ0JBQWMsRUFBRTtBQUNaQSxrQkFBYyxFQUFkQSwrQ0FEWTtBQUVaRixZQUFRLEVBQUVHLGdEQUFzQkE7QUFGcEIsR0FMTDtBQVNYQyxZQUFVLEVBQUU7QUFDUkEsY0FBVSxFQUFWQSwyQ0FEUTtBQUVSSixZQUFRLEVBQUVLLDRDQUFrQkE7QUFGcEIsR0FURDtBQWFYQyxrQkFBZ0IsRUFBRTtBQUNkQSxvQkFBZ0IsRUFBaEJBLGlEQURjO0FBRWROLFlBQVEsRUFBRU8sa0RBQXdCQTtBQUZwQixHQWJQO0FBaUJYQyxlQUFhLEVBQUU7QUFDWEEsaUJBQWEsRUFBYkEsOENBRFc7QUFFWFIsWUFBUSxFQUFFUywrQ0FBcUJBO0FBRnBCLEdBakJKO0FBcUJYQyxhQUFXLEVBQUU7QUFDVEEsZUFBVyxFQUFYQSw0Q0FEUztBQUVUVixZQUFRLEVBQUVXLDZDQUFtQkE7QUFGcEIsR0FyQkY7QUF5QlhDLGtCQUFnQixFQUFFO0FBQ2RBLG9CQUFnQixFQUFoQkEsaURBRGM7QUFFZFosWUFBUSxFQUFFYSxrREFBd0JBO0FBRnBCLEdBekJQO0FBNkJYQyxZQUFVLEVBQUU7QUFDUkEsY0FBVSxFQUFWQSwyQ0FEUTtBQUVSZCxZQUFRLEVBQUVlLDRDQUFrQkE7QUFGcEIsR0E3QkQ7QUFpQ1hDLGFBQVcsRUFBRTtBQUNUQyxjQUFVLEVBQUVDLDRDQUFtQkE7QUFEdEIsR0FqQ0Y7QUFvQ1hDLG1CQUFpQixFQUFFO0FBQ2ZBLHFCQUFpQixFQUFqQkEsa0RBRGU7QUFFZm5CLFlBQVEsRUFBRW9CLG1EQUFvQkE7QUFGZixHQXBDUjtBQXdDWEMsaUJBQWUsRUFBRTtBQUNiQSxtQkFBZSxFQUFmQSxpREFEYTtBQUVickIsWUFBUSxFQUFFc0Isa0RBQWtCQTtBQUZmLEdBeENOO0FBNENYQyxXQUFTLEVBQUU7QUFDUEEsYUFBUyxFQUFUQSwyQ0FETztBQUVQdkIsWUFBUSxFQUFFd0IsNENBQWlCQTtBQUZwQixHQTVDQTtBQWdEWEMsY0FBWSxFQUFFO0FBQ1ZBLGdCQUFZLEVBQVpBLDhDQURVO0FBRVZ6QixZQUFRLEVBQUUwQixnREFBb0JBO0FBRnBCO0FBaERILENBQWYiLCJmaWxlIjoiLi9hcHAvZm9ybXMvZmllbGRzL2luZGV4LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEZpbGVwaWNrZXJGaWVsZCwgeyBJbnN0YW5jZSBhcyBGaWxlcGlja2VyRmllbGRJbnN0YW5jZSB9IGZyb20gJy4vZmlsZXBpY2tlcic7XG5pbXBvcnQgU2VsZWN0aXplRmllbGQsIHsgSW5zdGFuY2UgYXMgU2VsZWN0aXplRmllbGRJbnN0YW5jZSB9IGZyb20gJy4vc2VsZWN0aXplJztcbmltcG9ydCBBcnJheUZpZWxkLCB7IEluc3RhbmNlIGFzIEFycmF5RmllbGRJbnN0YW5jZSB9IGZyb20gJy4vYXJyYXknO1xuaW1wb3J0IENvbGxlY3Rpb25zRmllbGQsIHsgSW5zdGFuY2UgYXMgQ29sbGVjdGlvbnNGaWVsZEluc3RhbmNlIH0gZnJvbSAnLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgRGF0ZVRpbWVGaWVsZCwgeyBJbnN0YW5jZSBhcyBEYXRlVGltZUZpZWxkSW5zdGFuY2UgfSBmcm9tICcuL2RhdGV0aW1lJztcbmltcG9ydCBFZGl0b3JGaWVsZCwgeyBJbnN0YW5jZSBhcyBFZGl0b3JGaWVsZEluc3RhbmNlIH0gZnJvbSAnLi9lZGl0b3InO1xuaW1wb3J0IENvbG9ycGlja2VyRmllbGQsIHsgSW5zdGFuY2UgYXMgQ29sb3JwaWNrZXJGaWVsZEluc3RhbmNlIH0gZnJvbSAnLi9jb2xvcnBpY2tlcic7XG5pbXBvcnQgRmlsZXNGaWVsZCwgeyBJbnN0YW5jZSBhcyBGaWxlc0ZpZWxkSW5zdGFuY2UgfSBmcm9tICcuL2ZpbGVzJztcbmltcG9ydCBGb2xkZXJGaWVsZEluc3RhbmNlIGZyb20gJy4vZm9sZGVyJztcbmltcG9ydCBTZWxlY3RVbmlxdWVGaWVsZCwgeyBJbnN0YW5jZSBhcyBTZWxlY3RVbmlxdWVJbnN0YW5jZSB9IGZyb20gJy4vc2VsZWN0dW5pcXVlJztcbmltcG9ydCBJY29ucGlja2VyRmllbGQsIHsgSW5zdGFuY2UgYXMgSWNvbnBpY2tlckluc3RhbmNlIH0gZnJvbSAnLi9pY29ucGlja2VyJztcbmltcG9ydCBDcm9uRmllbGQsIHsgSW5zdGFuY2UgYXMgQ3JvbkZpZWxkSW5zdGFuY2UgfSBmcm9tICcuL2Nyb24nO1xuaW1wb3J0IFBhcmVudHNGaWVsZCwgeyBJbnN0YW5jZXMgYXMgUGFyZW50c0ZpZWxkSW5zdGFuY2UgfSBmcm9tICcuL3BhcmVudHMnO1xuXG5pbXBvcnQgJy4vYWNsLXBpY2tlcic7XG5pbXBvcnQgJy4vcGVybWlzc2lvbnMnO1xuaW1wb3J0ICcuL2luZGV0ZXJtaW5hdGUnO1xuaW1wb3J0ICcuL21lZGlhcGlja2VyJztcbmltcG9ydCAnLi9tdWx0aWxldmVsJztcbmltcG9ydCAnLi90ZXh0JztcbmltcG9ydCAnLi9yYW5nZSc7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgICBGaWxlcGlja2VyRmllbGQ6IHtcbiAgICAgICAgRmlsZXBpY2tlckZpZWxkLFxuICAgICAgICBJbnN0YW5jZTogRmlsZXBpY2tlckZpZWxkSW5zdGFuY2VcbiAgICB9LFxuICAgIFNlbGVjdGl6ZUZpZWxkOiB7XG4gICAgICAgIFNlbGVjdGl6ZUZpZWxkLFxuICAgICAgICBJbnN0YW5jZTogU2VsZWN0aXplRmllbGRJbnN0YW5jZVxuICAgIH0sXG4gICAgQXJyYXlGaWVsZDoge1xuICAgICAgICBBcnJheUZpZWxkLFxuICAgICAgICBJbnN0YW5jZTogQXJyYXlGaWVsZEluc3RhbmNlXG4gICAgfSxcbiAgICBDb2xsZWN0aW9uc0ZpZWxkOiB7XG4gICAgICAgIENvbGxlY3Rpb25zRmllbGQsXG4gICAgICAgIEluc3RhbmNlOiBDb2xsZWN0aW9uc0ZpZWxkSW5zdGFuY2VcbiAgICB9LFxuICAgIERhdGVUaW1lRmllbGQ6IHtcbiAgICAgICAgRGF0ZVRpbWVGaWVsZCxcbiAgICAgICAgSW5zdGFuY2U6IERhdGVUaW1lRmllbGRJbnN0YW5jZVxuICAgIH0sXG4gICAgRWRpdG9yRmllbGQ6IHtcbiAgICAgICAgRWRpdG9yRmllbGQsXG4gICAgICAgIEluc3RhbmNlOiBFZGl0b3JGaWVsZEluc3RhbmNlXG4gICAgfSxcbiAgICBDb2xvcnBpY2tlckZpZWxkOiB7XG4gICAgICAgIENvbG9ycGlja2VyRmllbGQsXG4gICAgICAgIEluc3RhbmNlOiBDb2xvcnBpY2tlckZpZWxkSW5zdGFuY2VcbiAgICB9LFxuICAgIEZpbGVzRmllbGQ6IHtcbiAgICAgICAgRmlsZXNGaWVsZCxcbiAgICAgICAgSW5zdGFuY2U6IEZpbGVzRmllbGRJbnN0YW5jZVxuICAgIH0sXG4gICAgRm9sZGVyRmllbGQ6IHtcbiAgICAgICAgUmVnZW5lcmF0ZTogRm9sZGVyRmllbGRJbnN0YW5jZVxuICAgIH0sXG4gICAgU2VsZWN0VW5pcXVlRmllbGQ6IHtcbiAgICAgICAgU2VsZWN0VW5pcXVlRmllbGQsXG4gICAgICAgIEluc3RhbmNlOiBTZWxlY3RVbmlxdWVJbnN0YW5jZVxuICAgIH0sXG4gICAgSWNvbnBpY2tlckZpZWxkOiB7XG4gICAgICAgIEljb25waWNrZXJGaWVsZCxcbiAgICAgICAgSW5zdGFuY2U6IEljb25waWNrZXJJbnN0YW5jZVxuICAgIH0sXG4gICAgQ3JvbkZpZWxkOiB7XG4gICAgICAgIENyb25GaWVsZCxcbiAgICAgICAgSW5zdGFuY2U6IENyb25GaWVsZEluc3RhbmNlXG4gICAgfSxcbiAgICBQYXJlbnRzRmllbGQ6IHtcbiAgICAgICAgUGFyZW50c0ZpZWxkLFxuICAgICAgICBJbnN0YW5jZTogUGFyZW50c0ZpZWxkSW5zdGFuY2VcbiAgICB9XG59O1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/forms/fields/index.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/forms/fields/mediapicker.js":
|
|
/*!*****************************************!*\
|
|
!*** ./app/forms/fields/mediapicker.js ***!
|
|
\*****************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _pages_tree__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../pages/tree */ \"./app/pages/tree.js\");\n\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(function () {\n var modal = '';\n var body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body'); // Thumb Resizer\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('input change', '.media-container .media-range', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var container = target.closest('.remodal');\n var cards = container.find('.media-container div.card-item');\n var width = target.val() + 'px';\n cards.each(function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).css('width', width);\n });\n });\n body.on('click', '[data-mediapicker-modal-trigger]', function (event) {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var modal_identifier = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('grav-mediapicker-unique-identifier');\n var modal_element = body.find(\"[data-remodal-unique-identifier=\\\"\".concat(modal_identifier, \"\\\"]\"));\n modal = (jquery__WEBPACK_IMPORTED_MODULE_0___default().remodal.lookup)[modal_element.data('remodal')];\n\n if (!modal) {\n modal_element.remodal();\n modal = (jquery__WEBPACK_IMPORTED_MODULE_0___default().remodal.lookup)[modal_element.data('remodal')];\n }\n\n modal.open();\n modal.dataField = element.find('input'); // load all media\n\n modal_element.find('.js__files').trigger('fillView');\n setTimeout(function () {\n return _pages_tree__WEBPACK_IMPORTED_MODULE_1__.Instance.reload();\n }, 100);\n });\n /* handle media modal click actions */\n\n body.on('click', '[data-remodal-mediapicker] .media-container.in-modal .admin-media-details a', function (event) {\n event.preventDefault();\n event.stopPropagation();\n var val = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).parents('.js__media-element').data('file-url');\n var string = val.replace(/ /g, '%20');\n modal.dataField.val(string);\n modal.close();\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL2ZpZWxkcy9tZWRpYXBpY2tlci5qcz9kOTFkIl0sIm5hbWVzIjpbIiQiLCJtb2RhbCIsImJvZHkiLCJkb2N1bWVudCIsIm9uIiwiZXZlbnQiLCJ0YXJnZXQiLCJjdXJyZW50VGFyZ2V0IiwiY29udGFpbmVyIiwiY2xvc2VzdCIsImNhcmRzIiwiZmluZCIsIndpZHRoIiwidmFsIiwiZWFjaCIsImNzcyIsImVsZW1lbnQiLCJtb2RhbF9pZGVudGlmaWVyIiwiZGF0YSIsIm1vZGFsX2VsZW1lbnQiLCJyZW1vZGFsIiwib3BlbiIsImRhdGFGaWVsZCIsInRyaWdnZXIiLCJzZXRUaW1lb3V0IiwicGFnZXNUcmVlIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJwYXJlbnRzIiwic3RyaW5nIiwicmVwbGFjZSIsImNsb3NlIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUVBQSw2Q0FBQyxDQUFDLFlBQVc7QUFDVCxNQUFJQyxLQUFLLEdBQUcsRUFBWjtBQUNBLE1BQUlDLElBQUksR0FBR0YsNkNBQUMsQ0FBQyxNQUFELENBQVosQ0FGUyxDQUlUOztBQUNBQSwrQ0FBQyxDQUFDRyxRQUFELENBQUQsQ0FBWUMsRUFBWixDQUFlLGNBQWYsRUFBK0IsK0JBQS9CLEVBQWdFLFVBQVNDLEtBQVQsRUFBZ0I7QUFDNUUsUUFBTUMsTUFBTSxHQUFHTiw2Q0FBQyxDQUFDSyxLQUFLLENBQUNFLGFBQVAsQ0FBaEI7QUFDQSxRQUFNQyxTQUFTLEdBQUdGLE1BQU0sQ0FBQ0csT0FBUCxDQUFlLFVBQWYsQ0FBbEI7QUFDQSxRQUFJQyxLQUFLLEdBQUdGLFNBQVMsQ0FBQ0csSUFBVixDQUFlLGdDQUFmLENBQVo7QUFDQSxRQUFJQyxLQUFLLEdBQUdOLE1BQU0sQ0FBQ08sR0FBUCxLQUFlLElBQTNCO0FBQ0FILFNBQUssQ0FBQ0ksSUFBTixDQUFXLFlBQVc7QUFDbEJkLG1EQUFDLENBQUMsSUFBRCxDQUFELENBQVFlLEdBQVIsQ0FBWSxPQUFaLEVBQXFCSCxLQUFyQjtBQUNILEtBRkQ7QUFHSCxHQVJEO0FBVUFWLE1BQUksQ0FBQ0UsRUFBTCxDQUFRLE9BQVIsRUFBaUIsa0NBQWpCLEVBQXFELFVBQVNDLEtBQVQsRUFBZ0I7QUFDakUsUUFBTVcsT0FBTyxHQUFHaEIsNkNBQUMsQ0FBQ0ssS0FBSyxDQUFDRSxhQUFQLENBQWpCO0FBQ0EsUUFBSVUsZ0JBQWdCLEdBQUdqQiw2Q0FBQyxDQUFDLElBQUQsQ0FBRCxDQUFRa0IsSUFBUixDQUFhLG9DQUFiLENBQXZCO0FBQ0EsUUFBSUMsYUFBYSxHQUFHakIsSUFBSSxDQUFDUyxJQUFMLDZDQUE4Q00sZ0JBQTlDLFNBQXBCO0FBQ0FoQixTQUFLLEdBQUdELDhEQUFBLENBQWlCbUIsYUFBYSxDQUFDRCxJQUFkLENBQW1CLFNBQW5CLENBQWpCLENBQVI7O0FBRUEsUUFBSSxDQUFDakIsS0FBTCxFQUFZO0FBQ1JrQixtQkFBYSxDQUFDQyxPQUFkO0FBQ0FuQixXQUFLLEdBQUdELDhEQUFBLENBQWlCbUIsYUFBYSxDQUFDRCxJQUFkLENBQW1CLFNBQW5CLENBQWpCLENBQVI7QUFDSDs7QUFFRGpCLFNBQUssQ0FBQ29CLElBQU47QUFDQXBCLFNBQUssQ0FBQ3FCLFNBQU4sR0FBa0JOLE9BQU8sQ0FBQ0wsSUFBUixDQUFhLE9BQWIsQ0FBbEIsQ0FaaUUsQ0FjakU7O0FBQ0FRLGlCQUFhLENBQUNSLElBQWQsQ0FBbUIsWUFBbkIsRUFBaUNZLE9BQWpDLENBQXlDLFVBQXpDO0FBRUFDLGNBQVUsQ0FBQztBQUFBLGFBQU1DLHdEQUFBLEVBQU47QUFBQSxLQUFELEVBQTJCLEdBQTNCLENBQVY7QUFDSCxHQWxCRDtBQW9CQTs7QUFDQXZCLE1BQUksQ0FBQ0UsRUFBTCxDQUFRLE9BQVIsRUFBaUIsNkVBQWpCLEVBQWdHLFVBQUNDLEtBQUQsRUFBVztBQUN2R0EsU0FBSyxDQUFDcUIsY0FBTjtBQUNBckIsU0FBSyxDQUFDc0IsZUFBTjtBQUVBLFFBQUlkLEdBQUcsR0FBR2IsNkNBQUMsQ0FBQ0ssS0FBSyxDQUFDQyxNQUFQLENBQUQsQ0FBZ0JzQixPQUFoQixDQUF3QixvQkFBeEIsRUFBOENWLElBQTlDLENBQW1ELFVBQW5ELENBQVY7QUFDQSxRQUFJVyxNQUFNLEdBQUdoQixHQUFHLENBQUNpQixPQUFKLENBQVksSUFBWixFQUFrQixLQUFsQixDQUFiO0FBRUE3QixTQUFLLENBQUNxQixTQUFOLENBQWdCVCxHQUFoQixDQUFvQmdCLE1BQXBCO0FBRUE1QixTQUFLLENBQUM4QixLQUFOO0FBQ0gsR0FWRDtBQVdILENBL0NBLENBQUQiLCJmaWxlIjoiLi9hcHAvZm9ybXMvZmllbGRzL21lZGlhcGlja2VyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCB7IEluc3RhbmNlIGFzIHBhZ2VzVHJlZSB9IGZyb20gJy4uLy4uL3BhZ2VzL3RyZWUnO1xuXG4kKGZ1bmN0aW9uKCkge1xuICAgIGxldCBtb2RhbCA9ICcnO1xuICAgIGxldCBib2R5ID0gJCgnYm9keScpO1xuXG4gICAgLy8gVGh1bWIgUmVzaXplclxuICAgICQoZG9jdW1lbnQpLm9uKCdpbnB1dCBjaGFuZ2UnLCAnLm1lZGlhLWNvbnRhaW5lciAubWVkaWEtcmFuZ2UnLCBmdW5jdGlvbihldmVudCkge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0YXJnZXQuY2xvc2VzdCgnLnJlbW9kYWwnKTtcbiAgICAgICAgbGV0IGNhcmRzID0gY29udGFpbmVyLmZpbmQoJy5tZWRpYS1jb250YWluZXIgZGl2LmNhcmQtaXRlbScpO1xuICAgICAgICBsZXQgd2lkdGggPSB0YXJnZXQudmFsKCkgKyAncHgnO1xuICAgICAgICBjYXJkcy5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgJCh0aGlzKS5jc3MoJ3dpZHRoJywgd2lkdGgpO1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIGJvZHkub24oJ2NsaWNrJywgJ1tkYXRhLW1lZGlhcGlja2VyLW1vZGFsLXRyaWdnZXJdJywgZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgICAgIGxldCBtb2RhbF9pZGVudGlmaWVyID0gJCh0aGlzKS5kYXRhKCdncmF2LW1lZGlhcGlja2VyLXVuaXF1ZS1pZGVudGlmaWVyJyk7XG4gICAgICAgIGxldCBtb2RhbF9lbGVtZW50ID0gYm9keS5maW5kKGBbZGF0YS1yZW1vZGFsLXVuaXF1ZS1pZGVudGlmaWVyPVwiJHttb2RhbF9pZGVudGlmaWVyfVwiXWApO1xuICAgICAgICBtb2RhbCA9ICQucmVtb2RhbC5sb29rdXBbbW9kYWxfZWxlbWVudC5kYXRhKCdyZW1vZGFsJyldO1xuXG4gICAgICAgIGlmICghbW9kYWwpIHtcbiAgICAgICAgICAgIG1vZGFsX2VsZW1lbnQucmVtb2RhbCgpO1xuICAgICAgICAgICAgbW9kYWwgPSAkLnJlbW9kYWwubG9va3VwW21vZGFsX2VsZW1lbnQuZGF0YSgncmVtb2RhbCcpXTtcbiAgICAgICAgfVxuXG4gICAgICAgIG1vZGFsLm9wZW4oKTtcbiAgICAgICAgbW9kYWwuZGF0YUZpZWxkID0gZWxlbWVudC5maW5kKCdpbnB1dCcpO1xuXG4gICAgICAgIC8vIGxvYWQgYWxsIG1lZGlhXG4gICAgICAgIG1vZGFsX2VsZW1lbnQuZmluZCgnLmpzX19maWxlcycpLnRyaWdnZXIoJ2ZpbGxWaWV3Jyk7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiBwYWdlc1RyZWUucmVsb2FkKCksIDEwMCk7XG4gICAgfSk7XG5cbiAgICAvKiBoYW5kbGUgbWVkaWEgbW9kYWwgY2xpY2sgYWN0aW9ucyAqL1xuICAgIGJvZHkub24oJ2NsaWNrJywgJ1tkYXRhLXJlbW9kYWwtbWVkaWFwaWNrZXJdIC5tZWRpYS1jb250YWluZXIuaW4tbW9kYWwgLmFkbWluLW1lZGlhLWRldGFpbHMgYScsIChldmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICBsZXQgdmFsID0gJChldmVudC50YXJnZXQpLnBhcmVudHMoJy5qc19fbWVkaWEtZWxlbWVudCcpLmRhdGEoJ2ZpbGUtdXJsJyk7XG4gICAgICAgIGxldCBzdHJpbmcgPSB2YWwucmVwbGFjZSgvIC9nLCAnJTIwJyk7XG5cbiAgICAgICAgbW9kYWwuZGF0YUZpZWxkLnZhbChzdHJpbmcpO1xuXG4gICAgICAgIG1vZGFsLmNsb3NlKCk7XG4gICAgfSk7XG59KTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/forms/fields/mediapicker.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/forms/fields/multilevel.js":
|
|
/*!****************************************!*\
|
|
!*** ./app/forms/fields/multilevel.js ***!
|
|
\****************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(function () {\n var getField = function getField(level, name) {\n var levelMargin = level * 50;\n var top = level === 0 ? 'top' : '';\n var the_name = 'name=\"' + name + '\"';\n\n if (level === 0) {\n // top\n the_name = 'data-attr-name=\"' + name + '\"';\n }\n\n var marginDir = window.getComputedStyle(document.body).direction === 'ltr' ? 'margin-left' : 'margin-right';\n var field = \"\\n <div class=\\\"element-wrapper\\\">\\n <div class=\\\"form-row array-field-value_only js__multilevel-field \".concat(top, \"\\\"\\n data-grav-array-type=\\\"row\\\">\\n <input\\n type=\\\"text\\\"\\n \").concat(the_name, \"\\n placeholder=\\\"Enter value\\\"\\n style=\\\"\").concat(marginDir, \": \").concat(levelMargin, \"px\\\"\\n value=\\\"\\\" />\\n\\n <span class=\\\"fa fa-minus js__remove-item\\\"></span>\\n <span class=\\\"fa fa-plus js__add-sibling hidden\\\" data-level=\\\"\").concat(level, \"\\\" ></span>\\n <span class=\\\"fa fa-plus-circle js__add-children hidden\\\" data-level=\\\"\").concat(level, \"\\\"></span>\\n </div>\\n </div>\\n \");\n return field;\n };\n\n var hasChildInputs = function hasChildInputs($element) {\n if ($element.attr('name')) {\n return false;\n }\n\n return true;\n };\n\n var getTopItems = function getTopItems(element) {\n return jquery__WEBPACK_IMPORTED_MODULE_0___default()(element + ' .js__multilevel-field.top');\n };\n\n var refreshControls = function refreshControls(unique_identifier) {\n var element = '[data-grav-multilevel-field]';\n\n if (unique_identifier) {\n element = '[data-grav-multilevel-field][data-id=\"' + unique_identifier + '\"]';\n }\n\n var hideButtons = function hideButtons() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(element + ' .js__add-sibling').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(element + ' .js__add-children').addClass('hidden');\n };\n\n var restoreAddSiblingButtons = function restoreAddSiblingButtons() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(element + ' .children-wrapper').each(function () {\n var elements = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).children();\n elements.last().each(function () {\n var field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n\n if (!jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).hasClass('js__multilevel-field')) {\n field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).find('.js__multilevel-field').first();\n }\n\n field.find('.js__add-sibling').removeClass('hidden');\n });\n }); // add sibling to the last top element\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(element + ' .js__multilevel-field.top').last().find('.js__add-sibling').removeClass('hidden');\n };\n\n var restoreAddChildrenButtons = function restoreAddChildrenButtons() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(element + ' .js__multilevel-field').each(function () {\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).siblings('.children-wrapper').length === 0 || jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).siblings('.children-wrapper').find('.js__multilevel-field').length === 0) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).find('.js__add-children').removeClass('hidden');\n }\n });\n };\n\n var preventRemovingLastTopItem = function preventRemovingLastTopItem() {\n var top_items = getTopItems(element);\n\n if (top_items.length === 1) {\n top_items.first().find('.js__remove-item').addClass('hidden');\n }\n };\n\n hideButtons();\n restoreAddSiblingButtons();\n restoreAddChildrenButtons();\n preventRemovingLastTopItem();\n };\n\n var changeAllOccurrencesInTree = function changeAllOccurrencesInTree($el, current_name, new_name) {\n $el.parents('[data-grav-multilevel-field]').find('input').each(function () {\n var $input = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n\n if ($input.attr('name')) {\n $input.attr('name', $input.attr('name').replace(current_name, new_name));\n }\n\n if ($input.attr('data-attr-name')) {\n $input.attr('data-attr-name', $input.attr('data-attr-name').replace(current_name, new_name));\n }\n });\n };\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).ready(function () {\n refreshControls();\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('mouseleave', '[data-grav-multilevel-field]', function (event) {\n var top_items = getTopItems('[data-id=\"' + jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('id') + '\"]');\n var has_top_items_without_children = false;\n var element_content = '';\n top_items.each(function () {\n var item = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(item).siblings('.children-wrapper').find('input').length === 0) {\n has_top_items_without_children = true;\n element_content = item.find('input').val();\n }\n });\n\n if (has_top_items_without_children) {\n if (element_content) {\n alert('Warning: if you save now, the element ' + element_content + ', without children, will be removed, because it\\'s invalid YAML');\n } else {\n alert('Warning: if you save now, the top elements without children will be removed, because it\\'s invalid YAML');\n }\n }\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-grav-multilevel-field] .js__add-children', function (event) {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n var unique_container_id = element.closest('.js__multilevel-field').data('id');\n var level = element.data('level') + 1;\n\n var getParentOfElement = function getParentOfElement(element) {\n var parent = element.closest('.js__multilevel-field').parent().first();\n\n if (parent.find('.children-wrapper').length === 0) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(parent).append('<div class=\"children-wrapper\"></div>');\n }\n\n parent = parent.find('.children-wrapper').first();\n return parent;\n };\n\n var getNameFromParentInput = function getNameFromParentInput(parentInput, attr) {\n if (parentInput.hasClass('children-wrapper')) {\n parentInput = parentInput.siblings('.js__multilevel-field').first().find('input');\n }\n\n return parentInput.attr(attr) + '[' + parentInput.val() + ']';\n };\n\n var getInputFromChildrenWrapper = function getInputFromChildrenWrapper(parentChildrenWrapper) {\n return parentChildrenWrapper.siblings('.js__multilevel-field').first().find('input');\n };\n\n var parentChildrenWrapper = getParentOfElement(element);\n var parentInput = getInputFromChildrenWrapper(parentChildrenWrapper);\n var attr = 'name';\n\n if (parentInput.closest('.js__multilevel-field').hasClass('top')) {\n attr = 'data-attr-name';\n }\n\n parentInput.attr(attr, parentInput.attr(attr).replace('[]', ''));\n var name = getNameFromParentInput(parentInput, attr);\n var field = getField(level, name);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(parentChildrenWrapper).append(field);\n refreshControls(unique_container_id);\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-grav-multilevel-field] .js__add-sibling', function (event) {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n var unique_container_id = element.closest('.js__multilevel-field').data('id');\n var level = element.data('level');\n element.closest('.children-wrapper').find('.js__add-sibling').addClass('hidden');\n var sibling = null;\n var is_top = false;\n\n if (element.closest('.js__multilevel-field').hasClass('top')) {\n is_top = true;\n }\n\n if (is_top) {\n sibling = element.closest('.js__multilevel-field').first().find('input').last();\n } else {\n sibling = element.siblings('input').first();\n\n if (!sibling) {\n sibling = element.closest('.children-wrapper').first().find('input').last();\n }\n }\n\n var getParentOfElement = function getParentOfElement(element) {\n var parent = element.closest('.js__multilevel-field').parent().first();\n\n if (!parent.hasClass('element-wrapper')) {\n if (parent.find('.element-wrapper').length === 0) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(parent).append('<div class=\"element-wrapper\"></div>');\n }\n\n parent = parent.find('.element-wrapper').first();\n }\n\n return parent;\n };\n\n var getNameFromSibling = function getNameFromSibling(parent, sibling) {\n var is_top = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var name = sibling.attr('name');\n\n if (hasChildInputs(sibling)) {\n var val = sibling.data('attr-name') + '[]';\n sibling.removeAttr('name');\n return val;\n }\n\n var last_index = name.lastIndexOf('[');\n var almost_there = name.substr(last_index + 1);\n var last_tag = almost_there.substr(0, almost_there.length - 1);\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default().isNumeric(last_tag)) {\n name = name.replace('[' + last_tag + ']', '[' + (parseInt(last_tag, 10) + 1) + ']');\n } else {\n if (is_top) {\n name = name.replace('[' + last_tag + ']', '');\n } else {\n name = name + '[1]'; // change sibling name attr if necessary\n\n if (sibling.attr('name').slice('-2') !== '[0]') {\n changeAllOccurrencesInTree(sibling, sibling.attr('name'), sibling.attr('name') + '[0]');\n }\n }\n }\n\n return name;\n };\n\n var parent = getParentOfElement(element);\n var name = getNameFromSibling(parent, sibling, is_top);\n var field = getField(level, name);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(field).insertAfter(parent);\n refreshControls(unique_container_id);\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-grav-multilevel-field] .js__remove-item', function (event) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).parents('.element-wrapper').first().remove();\n var unique_container_id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).closest('.js__multilevel-field').data('id');\n refreshControls(unique_container_id);\n }); // Store old value before editing a field\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('focusin', '[data-grav-multilevel-field] input', function (event) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('current-value', jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).val());\n }); // Handle field edited event\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('change', '[data-grav-multilevel-field] input', function (event) {\n var $el = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n var old_value = $el.data('current-value');\n var new_value = $el.val();\n var full_name = $el.attr('name') || $el.attr('data-attr-name'); // first-level items have `data-attr-name` instead of `name`\n\n var old_name_attr = full_name + '[' + old_value + ']';\n var new_name_attr = full_name + '[' + new_value + ']';\n changeAllOccurrencesInTree($el, old_name_attr, new_name_attr);\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL2ZpZWxkcy9tdWx0aWxldmVsLmpzPzJiMjAiXSwibmFtZXMiOlsiJCIsImdldEZpZWxkIiwibGV2ZWwiLCJuYW1lIiwibGV2ZWxNYXJnaW4iLCJ0b3AiLCJ0aGVfbmFtZSIsIm1hcmdpbkRpciIsIndpbmRvdyIsImdldENvbXB1dGVkU3R5bGUiLCJkb2N1bWVudCIsImJvZHkiLCJkaXJlY3Rpb24iLCJmaWVsZCIsImhhc0NoaWxkSW5wdXRzIiwiJGVsZW1lbnQiLCJhdHRyIiwiZ2V0VG9wSXRlbXMiLCJlbGVtZW50IiwicmVmcmVzaENvbnRyb2xzIiwidW5pcXVlX2lkZW50aWZpZXIiLCJoaWRlQnV0dG9ucyIsImFkZENsYXNzIiwicmVzdG9yZUFkZFNpYmxpbmdCdXR0b25zIiwiZWFjaCIsImVsZW1lbnRzIiwiY2hpbGRyZW4iLCJsYXN0IiwiaGFzQ2xhc3MiLCJmaW5kIiwiZmlyc3QiLCJyZW1vdmVDbGFzcyIsInJlc3RvcmVBZGRDaGlsZHJlbkJ1dHRvbnMiLCJzaWJsaW5ncyIsImxlbmd0aCIsInByZXZlbnRSZW1vdmluZ0xhc3RUb3BJdGVtIiwidG9wX2l0ZW1zIiwiY2hhbmdlQWxsT2NjdXJyZW5jZXNJblRyZWUiLCIkZWwiLCJjdXJyZW50X25hbWUiLCJuZXdfbmFtZSIsInBhcmVudHMiLCIkaW5wdXQiLCJyZXBsYWNlIiwicmVhZHkiLCJvbiIsImV2ZW50IiwiZGF0YSIsImhhc190b3BfaXRlbXNfd2l0aG91dF9jaGlsZHJlbiIsImVsZW1lbnRfY29udGVudCIsIml0ZW0iLCJ2YWwiLCJhbGVydCIsInVuaXF1ZV9jb250YWluZXJfaWQiLCJjbG9zZXN0IiwiZ2V0UGFyZW50T2ZFbGVtZW50IiwicGFyZW50IiwiYXBwZW5kIiwiZ2V0TmFtZUZyb21QYXJlbnRJbnB1dCIsInBhcmVudElucHV0IiwiZ2V0SW5wdXRGcm9tQ2hpbGRyZW5XcmFwcGVyIiwicGFyZW50Q2hpbGRyZW5XcmFwcGVyIiwic2libGluZyIsImlzX3RvcCIsImdldE5hbWVGcm9tU2libGluZyIsInJlbW92ZUF0dHIiLCJsYXN0X2luZGV4IiwibGFzdEluZGV4T2YiLCJhbG1vc3RfdGhlcmUiLCJzdWJzdHIiLCJsYXN0X3RhZyIsInBhcnNlSW50Iiwic2xpY2UiLCJpbnNlcnRBZnRlciIsInJlbW92ZSIsIm9sZF92YWx1ZSIsIm5ld192YWx1ZSIsImZ1bGxfbmFtZSIsIm9sZF9uYW1lX2F0dHIiLCJuZXdfbmFtZV9hdHRyIl0sIm1hcHBpbmdzIjoiOzs7QUFBQTtBQUVBQSw2Q0FBQyxDQUFDLFlBQVc7QUFFVCxNQUFNQyxRQUFRLEdBQUcsU0FBU0EsUUFBVCxDQUFrQkMsS0FBbEIsRUFBeUJDLElBQXpCLEVBQStCO0FBQzVDLFFBQUlDLFdBQVcsR0FBR0YsS0FBSyxHQUFHLEVBQTFCO0FBQ0EsUUFBSUcsR0FBRyxHQUFJSCxLQUFLLEtBQUssQ0FBVixHQUFjLEtBQWQsR0FBc0IsRUFBakM7QUFFQSxRQUFJSSxRQUFRLEdBQUcsV0FBV0gsSUFBWCxHQUFrQixHQUFqQzs7QUFDQSxRQUFJRCxLQUFLLEtBQUssQ0FBZCxFQUFpQjtBQUNiO0FBQ0FJLGNBQVEsR0FBRyxxQkFBcUJILElBQXJCLEdBQTRCLEdBQXZDO0FBQ0g7O0FBRUQsUUFBTUksU0FBUyxHQUFHQyxNQUFNLENBQUNDLGdCQUFQLENBQXdCQyxRQUFRLENBQUNDLElBQWpDLEVBQXVDQyxTQUF2QyxLQUFxRCxLQUFyRCxHQUE2RCxhQUE3RCxHQUE2RSxjQUEvRjtBQUVBLFFBQUlDLEtBQUssOElBRWtFUixHQUZsRSwrSkFNU0MsUUFOVCxvR0FRZ0JDLFNBUmhCLGVBUThCSCxXQVI5Qix3TkFZaUVGLEtBWmpFLHFIQWF5RUEsS0FiekUscUVBQVQ7QUFrQkEsV0FBT1csS0FBUDtBQUNILEdBL0JEOztBQWlDQSxNQUFNQyxjQUFjLEdBQUcsU0FBU0EsY0FBVCxDQUF3QkMsUUFBeEIsRUFBa0M7QUFDckQsUUFBSUEsUUFBUSxDQUFDQyxJQUFULENBQWMsTUFBZCxDQUFKLEVBQTJCO0FBQ3ZCLGFBQU8sS0FBUDtBQUNIOztBQUVELFdBQU8sSUFBUDtBQUNILEdBTkQ7O0FBUUEsTUFBTUMsV0FBVyxHQUFHLFNBQVNBLFdBQVQsQ0FBcUJDLE9BQXJCLEVBQThCO0FBQzlDLFdBQU9sQiw2Q0FBQyxDQUFDa0IsT0FBTyxHQUFHLDRCQUFYLENBQVI7QUFDSCxHQUZEOztBQUlBLE1BQU1DLGVBQWUsR0FBRyxTQUFTQSxlQUFULENBQXlCQyxpQkFBekIsRUFBNEM7QUFDaEUsUUFBSUYsT0FBTyxHQUFHLDhCQUFkOztBQUNBLFFBQUlFLGlCQUFKLEVBQXVCO0FBQ25CRixhQUFPLEdBQUcsMkNBQTJDRSxpQkFBM0MsR0FBK0QsSUFBekU7QUFDSDs7QUFFRCxRQUFNQyxXQUFXLEdBQUcsU0FBU0EsV0FBVCxHQUF1QjtBQUN2Q3JCLG1EQUFDLENBQUNrQixPQUFPLEdBQUcsbUJBQVgsQ0FBRCxDQUFpQ0ksUUFBakMsQ0FBMEMsUUFBMUM7QUFDQXRCLG1EQUFDLENBQUNrQixPQUFPLEdBQUcsb0JBQVgsQ0FBRCxDQUFrQ0ksUUFBbEMsQ0FBMkMsUUFBM0M7QUFDSCxLQUhEOztBQUtBLFFBQU1DLHdCQUF3QixHQUFHLFNBQVNBLHdCQUFULEdBQW9DO0FBQ2pFdkIsbURBQUMsQ0FBQ2tCLE9BQU8sR0FBRyxvQkFBWCxDQUFELENBQWtDTSxJQUFsQyxDQUF1QyxZQUFXO0FBQzlDLFlBQUlDLFFBQVEsR0FBR3pCLDZDQUFDLENBQUMsSUFBRCxDQUFELENBQVEwQixRQUFSLEVBQWY7QUFDQUQsZ0JBQVEsQ0FBQ0UsSUFBVCxHQUFnQkgsSUFBaEIsQ0FBcUIsWUFBVztBQUM1QixjQUFJWCxLQUFLLEdBQUdiLDZDQUFDLENBQUMsSUFBRCxDQUFiOztBQUNBLGNBQUksQ0FBQ0EsNkNBQUMsQ0FBQyxJQUFELENBQUQsQ0FBUTRCLFFBQVIsQ0FBaUIsc0JBQWpCLENBQUwsRUFBK0M7QUFDM0NmLGlCQUFLLEdBQUdiLDZDQUFDLENBQUMsSUFBRCxDQUFELENBQVE2QixJQUFSLENBQWEsdUJBQWIsRUFBc0NDLEtBQXRDLEVBQVI7QUFDSDs7QUFDRGpCLGVBQUssQ0FBQ2dCLElBQU4sQ0FBVyxrQkFBWCxFQUErQkUsV0FBL0IsQ0FBMkMsUUFBM0M7QUFDSCxTQU5EO0FBT0gsT0FURCxFQURpRSxDQVlqRTs7QUFDQS9CLG1EQUFDLENBQUNrQixPQUFPLEdBQUcsNEJBQVgsQ0FBRCxDQUEwQ1MsSUFBMUMsR0FBaURFLElBQWpELENBQXNELGtCQUF0RCxFQUEwRUUsV0FBMUUsQ0FBc0YsUUFBdEY7QUFDSCxLQWREOztBQWdCQSxRQUFNQyx5QkFBeUIsR0FBRyxTQUFTQSx5QkFBVCxHQUFxQztBQUNuRWhDLG1EQUFDLENBQUNrQixPQUFPLEdBQUcsd0JBQVgsQ0FBRCxDQUFzQ00sSUFBdEMsQ0FBMkMsWUFBVztBQUNsRCxZQUFJeEIsNkNBQUMsQ0FBQyxJQUFELENBQUQsQ0FBUWlDLFFBQVIsQ0FBaUIsbUJBQWpCLEVBQXNDQyxNQUF0QyxLQUFpRCxDQUFqRCxJQUFzRGxDLDZDQUFDLENBQUMsSUFBRCxDQUFELENBQVFpQyxRQUFSLENBQWlCLG1CQUFqQixFQUFzQ0osSUFBdEMsQ0FBMkMsdUJBQTNDLEVBQW9FSyxNQUFwRSxLQUErRSxDQUF6SSxFQUE0STtBQUN4SWxDLHVEQUFDLENBQUMsSUFBRCxDQUFELENBQVE2QixJQUFSLENBQWEsbUJBQWIsRUFBa0NFLFdBQWxDLENBQThDLFFBQTlDO0FBQ0g7QUFDSixPQUpEO0FBS0gsS0FORDs7QUFRQSxRQUFNSSwwQkFBMEIsR0FBRyxTQUFTQSwwQkFBVCxHQUFzQztBQUNyRSxVQUFJQyxTQUFTLEdBQUduQixXQUFXLENBQUNDLE9BQUQsQ0FBM0I7O0FBQ0EsVUFBSWtCLFNBQVMsQ0FBQ0YsTUFBVixLQUFxQixDQUF6QixFQUE0QjtBQUN4QkUsaUJBQVMsQ0FBQ04sS0FBVixHQUFrQkQsSUFBbEIsQ0FBdUIsa0JBQXZCLEVBQTJDUCxRQUEzQyxDQUFvRCxRQUFwRDtBQUNIO0FBQ0osS0FMRDs7QUFPQUQsZUFBVztBQUNYRSw0QkFBd0I7QUFDeEJTLDZCQUF5QjtBQUN6QkcsOEJBQTBCO0FBQzdCLEdBOUNEOztBQWdEQSxNQUFNRSwwQkFBMEIsR0FBRyxTQUE3QkEsMEJBQTZCLENBQVNDLEdBQVQsRUFBY0MsWUFBZCxFQUE0QkMsUUFBNUIsRUFBc0M7QUFDckVGLE9BQUcsQ0FBQ0csT0FBSixDQUFZLDhCQUFaLEVBQTRDWixJQUE1QyxDQUFpRCxPQUFqRCxFQUEwREwsSUFBMUQsQ0FBK0QsWUFBVztBQUN0RSxVQUFJa0IsTUFBTSxHQUFHMUMsNkNBQUMsQ0FBQyxJQUFELENBQWQ7O0FBQ0EsVUFBSTBDLE1BQU0sQ0FBQzFCLElBQVAsQ0FBWSxNQUFaLENBQUosRUFBeUI7QUFDckIwQixjQUFNLENBQUMxQixJQUFQLENBQVksTUFBWixFQUFvQjBCLE1BQU0sQ0FBQzFCLElBQVAsQ0FBWSxNQUFaLEVBQW9CMkIsT0FBcEIsQ0FBNEJKLFlBQTVCLEVBQTBDQyxRQUExQyxDQUFwQjtBQUNIOztBQUNELFVBQUlFLE1BQU0sQ0FBQzFCLElBQVAsQ0FBWSxnQkFBWixDQUFKLEVBQW1DO0FBQy9CMEIsY0FBTSxDQUFDMUIsSUFBUCxDQUFZLGdCQUFaLEVBQThCMEIsTUFBTSxDQUFDMUIsSUFBUCxDQUFZLGdCQUFaLEVBQThCMkIsT0FBOUIsQ0FBc0NKLFlBQXRDLEVBQW9EQyxRQUFwRCxDQUE5QjtBQUNIO0FBQ0osS0FSRDtBQVNILEdBVkQ7O0FBWUF4QywrQ0FBQyxDQUFDVSxRQUFELENBQUQsQ0FBWWtDLEtBQVosQ0FBa0IsWUFBVztBQUN6QnpCLG1CQUFlO0FBQ2xCLEdBRkQ7QUFJQW5CLCtDQUFDLENBQUNVLFFBQUQsQ0FBRCxDQUFZbUMsRUFBWixDQUFlLFlBQWYsRUFBNkIsOEJBQTdCLEVBQTZELFVBQVNDLEtBQVQsRUFBZ0I7QUFDekUsUUFBSVYsU0FBUyxHQUFHbkIsV0FBVyxDQUFDLGVBQWVqQiw2Q0FBQyxDQUFDLElBQUQsQ0FBRCxDQUFRK0MsSUFBUixDQUFhLElBQWIsQ0FBZixHQUFvQyxJQUFyQyxDQUEzQjtBQUNBLFFBQUlDLDhCQUE4QixHQUFHLEtBQXJDO0FBQ0EsUUFBSUMsZUFBZSxHQUFHLEVBQXRCO0FBQ0FiLGFBQVMsQ0FBQ1osSUFBVixDQUFlLFlBQVc7QUFDdEIsVUFBSTBCLElBQUksR0FBR2xELDZDQUFDLENBQUMsSUFBRCxDQUFaOztBQUNBLFVBQUlBLDZDQUFDLENBQUNrRCxJQUFELENBQUQsQ0FBUWpCLFFBQVIsQ0FBaUIsbUJBQWpCLEVBQXNDSixJQUF0QyxDQUEyQyxPQUEzQyxFQUFvREssTUFBcEQsS0FBK0QsQ0FBbkUsRUFBc0U7QUFDbEVjLHNDQUE4QixHQUFHLElBQWpDO0FBQ0FDLHVCQUFlLEdBQUdDLElBQUksQ0FBQ3JCLElBQUwsQ0FBVSxPQUFWLEVBQW1Cc0IsR0FBbkIsRUFBbEI7QUFDSDtBQUVKLEtBUEQ7O0FBU0EsUUFBSUgsOEJBQUosRUFBb0M7QUFDaEMsVUFBSUMsZUFBSixFQUFxQjtBQUNqQkcsYUFBSyxDQUFDLDJDQUEyQ0gsZUFBM0MsR0FBNkQsaUVBQTlELENBQUw7QUFDSCxPQUZELE1BRU87QUFDSEcsYUFBSyxDQUFDLHlHQUFELENBQUw7QUFDSDtBQUVKO0FBQ0osR0FyQkQ7QUF1QkFwRCwrQ0FBQyxDQUFDVSxRQUFELENBQUQsQ0FBWW1DLEVBQVosQ0FBZSxPQUFmLEVBQXdCLGdEQUF4QixFQUEwRSxVQUFTQyxLQUFULEVBQWdCO0FBQ3RGLFFBQUk1QixPQUFPLEdBQUdsQiw2Q0FBQyxDQUFDLElBQUQsQ0FBZjtBQUNBLFFBQUlxRCxtQkFBbUIsR0FBR25DLE9BQU8sQ0FBQ29DLE9BQVIsQ0FBZ0IsdUJBQWhCLEVBQXlDUCxJQUF6QyxDQUE4QyxJQUE5QyxDQUExQjtBQUNBLFFBQUk3QyxLQUFLLEdBQUdnQixPQUFPLENBQUM2QixJQUFSLENBQWEsT0FBYixJQUF3QixDQUFwQzs7QUFFQSxRQUFNUSxrQkFBa0IsR0FBRyxTQUFTQSxrQkFBVCxDQUE0QnJDLE9BQTVCLEVBQXFDO0FBQzVELFVBQUlzQyxNQUFNLEdBQUd0QyxPQUFPLENBQUNvQyxPQUFSLENBQWdCLHVCQUFoQixFQUF5Q0UsTUFBekMsR0FBa0QxQixLQUFsRCxFQUFiOztBQUNBLFVBQUkwQixNQUFNLENBQUMzQixJQUFQLENBQVksbUJBQVosRUFBaUNLLE1BQWpDLEtBQTRDLENBQWhELEVBQW1EO0FBQy9DbEMscURBQUMsQ0FBQ3dELE1BQUQsQ0FBRCxDQUFVQyxNQUFWLENBQWlCLHNDQUFqQjtBQUNIOztBQUNERCxZQUFNLEdBQUdBLE1BQU0sQ0FBQzNCLElBQVAsQ0FBWSxtQkFBWixFQUFpQ0MsS0FBakMsRUFBVDtBQUVBLGFBQU8wQixNQUFQO0FBQ0gsS0FSRDs7QUFVQSxRQUFNRSxzQkFBc0IsR0FBRyxTQUFTQSxzQkFBVCxDQUFnQ0MsV0FBaEMsRUFBNkMzQyxJQUE3QyxFQUFtRDtBQUM5RSxVQUFJMkMsV0FBVyxDQUFDL0IsUUFBWixDQUFxQixrQkFBckIsQ0FBSixFQUE4QztBQUMxQytCLG1CQUFXLEdBQUdBLFdBQVcsQ0FBQzFCLFFBQVosQ0FBcUIsdUJBQXJCLEVBQThDSCxLQUE5QyxHQUFzREQsSUFBdEQsQ0FBMkQsT0FBM0QsQ0FBZDtBQUNIOztBQUVELGFBQU84QixXQUFXLENBQUMzQyxJQUFaLENBQWlCQSxJQUFqQixJQUF5QixHQUF6QixHQUErQjJDLFdBQVcsQ0FBQ1IsR0FBWixFQUEvQixHQUFtRCxHQUExRDtBQUNILEtBTkQ7O0FBUUEsUUFBTVMsMkJBQTJCLEdBQUcsU0FBU0EsMkJBQVQsQ0FBcUNDLHFCQUFyQyxFQUE0RDtBQUM1RixhQUFPQSxxQkFBcUIsQ0FBQzVCLFFBQXRCLENBQStCLHVCQUEvQixFQUF3REgsS0FBeEQsR0FBZ0VELElBQWhFLENBQXFFLE9BQXJFLENBQVA7QUFDSCxLQUZEOztBQUlBLFFBQUlnQyxxQkFBcUIsR0FBR04sa0JBQWtCLENBQUNyQyxPQUFELENBQTlDO0FBQ0EsUUFBSXlDLFdBQVcsR0FBR0MsMkJBQTJCLENBQUNDLHFCQUFELENBQTdDO0FBRUEsUUFBSTdDLElBQUksR0FBRyxNQUFYOztBQUNBLFFBQUkyQyxXQUFXLENBQUNMLE9BQVosQ0FBb0IsdUJBQXBCLEVBQTZDMUIsUUFBN0MsQ0FBc0QsS0FBdEQsQ0FBSixFQUFrRTtBQUM5RFosVUFBSSxHQUFHLGdCQUFQO0FBQ0g7O0FBRUQyQyxlQUFXLENBQUMzQyxJQUFaLENBQWlCQSxJQUFqQixFQUF1QjJDLFdBQVcsQ0FBQzNDLElBQVosQ0FBaUJBLElBQWpCLEVBQXVCMkIsT0FBdkIsQ0FBK0IsSUFBL0IsRUFBcUMsRUFBckMsQ0FBdkI7QUFFQSxRQUFJeEMsSUFBSSxHQUFHdUQsc0JBQXNCLENBQUNDLFdBQUQsRUFBYzNDLElBQWQsQ0FBakM7QUFDQSxRQUFJSCxLQUFLLEdBQUdaLFFBQVEsQ0FBQ0MsS0FBRCxFQUFRQyxJQUFSLENBQXBCO0FBRUFILGlEQUFDLENBQUM2RCxxQkFBRCxDQUFELENBQXlCSixNQUF6QixDQUFnQzVDLEtBQWhDO0FBQ0FNLG1CQUFlLENBQUNrQyxtQkFBRCxDQUFmO0FBQ0gsR0ExQ0Q7QUE0Q0FyRCwrQ0FBQyxDQUFDVSxRQUFELENBQUQsQ0FBWW1DLEVBQVosQ0FBZSxPQUFmLEVBQXdCLCtDQUF4QixFQUF5RSxVQUFTQyxLQUFULEVBQWdCO0FBQ3JGLFFBQUk1QixPQUFPLEdBQUdsQiw2Q0FBQyxDQUFDLElBQUQsQ0FBZjtBQUNBLFFBQUlxRCxtQkFBbUIsR0FBR25DLE9BQU8sQ0FBQ29DLE9BQVIsQ0FBZ0IsdUJBQWhCLEVBQXlDUCxJQUF6QyxDQUE4QyxJQUE5QyxDQUExQjtBQUNBLFFBQUk3QyxLQUFLLEdBQUdnQixPQUFPLENBQUM2QixJQUFSLENBQWEsT0FBYixDQUFaO0FBQ0E3QixXQUFPLENBQUNvQyxPQUFSLENBQWdCLG1CQUFoQixFQUFxQ3pCLElBQXJDLENBQTBDLGtCQUExQyxFQUE4RFAsUUFBOUQsQ0FBdUUsUUFBdkU7QUFFQSxRQUFJd0MsT0FBTyxHQUFHLElBQWQ7QUFDQSxRQUFJQyxNQUFNLEdBQUcsS0FBYjs7QUFFQSxRQUFJN0MsT0FBTyxDQUFDb0MsT0FBUixDQUFnQix1QkFBaEIsRUFBeUMxQixRQUF6QyxDQUFrRCxLQUFsRCxDQUFKLEVBQThEO0FBQzFEbUMsWUFBTSxHQUFHLElBQVQ7QUFDSDs7QUFFRCxRQUFJQSxNQUFKLEVBQVk7QUFDUkQsYUFBTyxHQUFHNUMsT0FBTyxDQUFDb0MsT0FBUixDQUFnQix1QkFBaEIsRUFBeUN4QixLQUF6QyxHQUFpREQsSUFBakQsQ0FBc0QsT0FBdEQsRUFBK0RGLElBQS9ELEVBQVY7QUFDSCxLQUZELE1BRU87QUFDSG1DLGFBQU8sR0FBRzVDLE9BQU8sQ0FBQ2UsUUFBUixDQUFpQixPQUFqQixFQUEwQkgsS0FBMUIsRUFBVjs7QUFDQSxVQUFJLENBQUNnQyxPQUFMLEVBQWM7QUFDVkEsZUFBTyxHQUFHNUMsT0FBTyxDQUFDb0MsT0FBUixDQUFnQixtQkFBaEIsRUFBcUN4QixLQUFyQyxHQUE2Q0QsSUFBN0MsQ0FBa0QsT0FBbEQsRUFBMkRGLElBQTNELEVBQVY7QUFDSDtBQUNKOztBQUVELFFBQU00QixrQkFBa0IsR0FBRyxTQUFTQSxrQkFBVCxDQUE0QnJDLE9BQTVCLEVBQXFDO0FBQzVELFVBQUlzQyxNQUFNLEdBQUd0QyxPQUFPLENBQUNvQyxPQUFSLENBQWdCLHVCQUFoQixFQUF5Q0UsTUFBekMsR0FBa0QxQixLQUFsRCxFQUFiOztBQUNBLFVBQUksQ0FBQzBCLE1BQU0sQ0FBQzVCLFFBQVAsQ0FBZ0IsaUJBQWhCLENBQUwsRUFBeUM7QUFDckMsWUFBSTRCLE1BQU0sQ0FBQzNCLElBQVAsQ0FBWSxrQkFBWixFQUFnQ0ssTUFBaEMsS0FBMkMsQ0FBL0MsRUFBa0Q7QUFDOUNsQyx1REFBQyxDQUFDd0QsTUFBRCxDQUFELENBQVVDLE1BQVYsQ0FBaUIscUNBQWpCO0FBQ0g7O0FBRURELGNBQU0sR0FBR0EsTUFBTSxDQUFDM0IsSUFBUCxDQUFZLGtCQUFaLEVBQWdDQyxLQUFoQyxFQUFUO0FBQ0g7O0FBRUQsYUFBTzBCLE1BQVA7QUFDSCxLQVhEOztBQWFBLFFBQU1RLGtCQUFrQixHQUFHLFNBQVNBLGtCQUFULENBQTRCUixNQUE1QixFQUFvQ00sT0FBcEMsRUFBNkQ7QUFBQSxVQUFoQkMsTUFBZ0IsdUVBQVAsS0FBTztBQUNwRixVQUFJNUQsSUFBSSxHQUFHMkQsT0FBTyxDQUFDOUMsSUFBUixDQUFhLE1BQWIsQ0FBWDs7QUFFQSxVQUFJRixjQUFjLENBQUNnRCxPQUFELENBQWxCLEVBQTZCO0FBQ3pCLFlBQUlYLEdBQUcsR0FBR1csT0FBTyxDQUFDZixJQUFSLENBQWEsV0FBYixJQUE0QixJQUF0QztBQUNBZSxlQUFPLENBQUNHLFVBQVIsQ0FBbUIsTUFBbkI7QUFDQSxlQUFPZCxHQUFQO0FBQ0g7O0FBRUQsVUFBSWUsVUFBVSxHQUFHL0QsSUFBSSxDQUFDZ0UsV0FBTCxDQUFpQixHQUFqQixDQUFqQjtBQUNBLFVBQUlDLFlBQVksR0FBR2pFLElBQUksQ0FBQ2tFLE1BQUwsQ0FBWUgsVUFBVSxHQUFHLENBQXpCLENBQW5CO0FBQ0EsVUFBSUksUUFBUSxHQUFHRixZQUFZLENBQUNDLE1BQWIsQ0FBb0IsQ0FBcEIsRUFBdUJELFlBQVksQ0FBQ2xDLE1BQWIsR0FBc0IsQ0FBN0MsQ0FBZjs7QUFFQSxVQUFJbEMsdURBQUEsQ0FBWXNFLFFBQVosQ0FBSixFQUEyQjtBQUN2Qm5FLFlBQUksR0FBR0EsSUFBSSxDQUFDd0MsT0FBTCxDQUFhLE1BQU0yQixRQUFOLEdBQWlCLEdBQTlCLEVBQW1DLE9BQU9DLFFBQVEsQ0FBQ0QsUUFBRCxFQUFXLEVBQVgsQ0FBUixHQUF5QixDQUFoQyxJQUFxQyxHQUF4RSxDQUFQO0FBQ0gsT0FGRCxNQUVPO0FBQ0gsWUFBSVAsTUFBSixFQUFZO0FBQ1I1RCxjQUFJLEdBQUdBLElBQUksQ0FBQ3dDLE9BQUwsQ0FBYSxNQUFNMkIsUUFBTixHQUFpQixHQUE5QixFQUFtQyxFQUFuQyxDQUFQO0FBQ0gsU0FGRCxNQUVPO0FBQ0huRSxjQUFJLEdBQUdBLElBQUksR0FBRyxLQUFkLENBREcsQ0FHSDs7QUFDQSxjQUFJMkQsT0FBTyxDQUFDOUMsSUFBUixDQUFhLE1BQWIsRUFBcUJ3RCxLQUFyQixDQUEyQixJQUEzQixNQUFxQyxLQUF6QyxFQUFnRDtBQUM1Q25DLHNDQUEwQixDQUFDeUIsT0FBRCxFQUFVQSxPQUFPLENBQUM5QyxJQUFSLENBQWEsTUFBYixDQUFWLEVBQWdDOEMsT0FBTyxDQUFDOUMsSUFBUixDQUFhLE1BQWIsSUFBdUIsS0FBdkQsQ0FBMUI7QUFDSDtBQUNKO0FBQ0o7O0FBRUQsYUFBT2IsSUFBUDtBQUNILEtBN0JEOztBQStCQSxRQUFJcUQsTUFBTSxHQUFHRCxrQkFBa0IsQ0FBQ3JDLE9BQUQsQ0FBL0I7QUFDQSxRQUFJZixJQUFJLEdBQUc2RCxrQkFBa0IsQ0FBQ1IsTUFBRCxFQUFTTSxPQUFULEVBQWtCQyxNQUFsQixDQUE3QjtBQUVBLFFBQUlsRCxLQUFLLEdBQUdaLFFBQVEsQ0FBQ0MsS0FBRCxFQUFRQyxJQUFSLENBQXBCO0FBQ0FILGlEQUFDLENBQUNhLEtBQUQsQ0FBRCxDQUFTNEQsV0FBVCxDQUFxQmpCLE1BQXJCO0FBRUFyQyxtQkFBZSxDQUFDa0MsbUJBQUQsQ0FBZjtBQUNILEdBekVEO0FBMkVBckQsK0NBQUMsQ0FBQ1UsUUFBRCxDQUFELENBQVltQyxFQUFaLENBQWUsT0FBZixFQUF3QiwrQ0FBeEIsRUFBeUUsVUFBU0MsS0FBVCxFQUFnQjtBQUNyRjlDLGlEQUFDLENBQUMsSUFBRCxDQUFELENBQVF5QyxPQUFSLENBQWdCLGtCQUFoQixFQUFvQ1gsS0FBcEMsR0FBNEM0QyxNQUE1QztBQUNBLFFBQUlyQixtQkFBbUIsR0FBR3JELDZDQUFDLENBQUMsSUFBRCxDQUFELENBQVFzRCxPQUFSLENBQWdCLHVCQUFoQixFQUF5Q1AsSUFBekMsQ0FBOEMsSUFBOUMsQ0FBMUI7QUFDQTVCLG1CQUFlLENBQUNrQyxtQkFBRCxDQUFmO0FBQ0gsR0FKRCxFQTdQUyxDQW1RVDs7QUFDQXJELCtDQUFDLENBQUNVLFFBQUQsQ0FBRCxDQUFZbUMsRUFBWixDQUFlLFNBQWYsRUFBMEIsb0NBQTFCLEVBQWdFLFVBQVNDLEtBQVQsRUFBZ0I7QUFDNUU5QyxpREFBQyxDQUFDLElBQUQsQ0FBRCxDQUFRK0MsSUFBUixDQUFhLGVBQWIsRUFBOEIvQyw2Q0FBQyxDQUFDLElBQUQsQ0FBRCxDQUFRbUQsR0FBUixFQUE5QjtBQUNILEdBRkQsRUFwUVMsQ0F3UVQ7O0FBQ0FuRCwrQ0FBQyxDQUFDVSxRQUFELENBQUQsQ0FBWW1DLEVBQVosQ0FBZSxRQUFmLEVBQXlCLG9DQUF6QixFQUErRCxVQUFTQyxLQUFULEVBQWdCO0FBQzNFLFFBQUlSLEdBQUcsR0FBR3RDLDZDQUFDLENBQUMsSUFBRCxDQUFYO0FBQ0EsUUFBSTJFLFNBQVMsR0FBR3JDLEdBQUcsQ0FBQ1MsSUFBSixDQUFTLGVBQVQsQ0FBaEI7QUFDQSxRQUFJNkIsU0FBUyxHQUFHdEMsR0FBRyxDQUFDYSxHQUFKLEVBQWhCO0FBRUEsUUFBSTBCLFNBQVMsR0FBR3ZDLEdBQUcsQ0FBQ3RCLElBQUosQ0FBUyxNQUFULEtBQW9Cc0IsR0FBRyxDQUFDdEIsSUFBSixDQUFTLGdCQUFULENBQXBDLENBTDJFLENBS1g7O0FBRWhFLFFBQUk4RCxhQUFhLEdBQUdELFNBQVMsR0FBRyxHQUFaLEdBQWtCRixTQUFsQixHQUE4QixHQUFsRDtBQUNBLFFBQUlJLGFBQWEsR0FBR0YsU0FBUyxHQUFHLEdBQVosR0FBa0JELFNBQWxCLEdBQThCLEdBQWxEO0FBRUF2Qyw4QkFBMEIsQ0FBQ0MsR0FBRCxFQUFNd0MsYUFBTixFQUFxQkMsYUFBckIsQ0FBMUI7QUFDSCxHQVhEO0FBYUgsQ0F0UkEsQ0FBRCIsImZpbGUiOiIuL2FwcC9mb3Jtcy9maWVsZHMvbXVsdGlsZXZlbC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5cbiQoZnVuY3Rpb24oKSB7XG5cbiAgICBjb25zdCBnZXRGaWVsZCA9IGZ1bmN0aW9uIGdldEZpZWxkKGxldmVsLCBuYW1lKSB7XG4gICAgICAgIGxldCBsZXZlbE1hcmdpbiA9IGxldmVsICogNTA7XG4gICAgICAgIGxldCB0b3AgPSAobGV2ZWwgPT09IDAgPyAndG9wJyA6ICcnKTtcblxuICAgICAgICBsZXQgdGhlX25hbWUgPSAnbmFtZT1cIicgKyBuYW1lICsgJ1wiJztcbiAgICAgICAgaWYgKGxldmVsID09PSAwKSB7XG4gICAgICAgICAgICAvLyB0b3BcbiAgICAgICAgICAgIHRoZV9uYW1lID0gJ2RhdGEtYXR0ci1uYW1lPVwiJyArIG5hbWUgKyAnXCInO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbWFyZ2luRGlyID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuZGlyZWN0aW9uID09PSAnbHRyJyA/ICdtYXJnaW4tbGVmdCcgOiAnbWFyZ2luLXJpZ2h0JztcblxuICAgICAgICBsZXQgZmllbGQgPSBgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWxlbWVudC13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tcm93IGFycmF5LWZpZWxkLXZhbHVlX29ubHkganNfX211bHRpbGV2ZWwtZmllbGQgJHt0b3B9XCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS1ncmF2LWFycmF5LXR5cGU9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAke3RoZV9uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciB2YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIiR7bWFyZ2luRGlyfTogJHtsZXZlbE1hcmdpbn1weFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIlwiIC8+XG5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmYSBmYS1taW51cyBqc19fcmVtb3ZlLWl0ZW1cIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmEgZmEtcGx1cyBqc19fYWRkLXNpYmxpbmcgaGlkZGVuXCIgZGF0YS1sZXZlbD1cIiR7bGV2ZWx9XCIgPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmYSBmYS1wbHVzLWNpcmNsZSBqc19fYWRkLWNoaWxkcmVuIGhpZGRlblwiIGRhdGEtbGV2ZWw9XCIke2xldmVsfVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICBgO1xuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFzQ2hpbGRJbnB1dHMgPSBmdW5jdGlvbiBoYXNDaGlsZElucHV0cygkZWxlbWVudCkge1xuICAgICAgICBpZiAoJGVsZW1lbnQuYXR0cignbmFtZScpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xuXG4gICAgY29uc3QgZ2V0VG9wSXRlbXMgPSBmdW5jdGlvbiBnZXRUb3BJdGVtcyhlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiAkKGVsZW1lbnQgKyAnIC5qc19fbXVsdGlsZXZlbC1maWVsZC50b3AnKTtcbiAgICB9O1xuXG4gICAgY29uc3QgcmVmcmVzaENvbnRyb2xzID0gZnVuY3Rpb24gcmVmcmVzaENvbnRyb2xzKHVuaXF1ZV9pZGVudGlmaWVyKSB7XG4gICAgICAgIGxldCBlbGVtZW50ID0gJ1tkYXRhLWdyYXYtbXVsdGlsZXZlbC1maWVsZF0nO1xuICAgICAgICBpZiAodW5pcXVlX2lkZW50aWZpZXIpIHtcbiAgICAgICAgICAgIGVsZW1lbnQgPSAnW2RhdGEtZ3Jhdi1tdWx0aWxldmVsLWZpZWxkXVtkYXRhLWlkPVwiJyArIHVuaXF1ZV9pZGVudGlmaWVyICsgJ1wiXSc7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBoaWRlQnV0dG9ucyA9IGZ1bmN0aW9uIGhpZGVCdXR0b25zKCkge1xuICAgICAgICAgICAgJChlbGVtZW50ICsgJyAuanNfX2FkZC1zaWJsaW5nJykuYWRkQ2xhc3MoJ2hpZGRlbicpO1xuICAgICAgICAgICAgJChlbGVtZW50ICsgJyAuanNfX2FkZC1jaGlsZHJlbicpLmFkZENsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCByZXN0b3JlQWRkU2libGluZ0J1dHRvbnMgPSBmdW5jdGlvbiByZXN0b3JlQWRkU2libGluZ0J1dHRvbnMoKSB7XG4gICAgICAgICAgICAkKGVsZW1lbnQgKyAnIC5jaGlsZHJlbi13cmFwcGVyJykuZWFjaChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICBsZXQgZWxlbWVudHMgPSAkKHRoaXMpLmNoaWxkcmVuKCk7XG4gICAgICAgICAgICAgICAgZWxlbWVudHMubGFzdCgpLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBmaWVsZCA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghJCh0aGlzKS5oYXNDbGFzcygnanNfX211bHRpbGV2ZWwtZmllbGQnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQgPSAkKHRoaXMpLmZpbmQoJy5qc19fbXVsdGlsZXZlbC1maWVsZCcpLmZpcnN0KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZmllbGQuZmluZCgnLmpzX19hZGQtc2libGluZycpLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAvLyBhZGQgc2libGluZyB0byB0aGUgbGFzdCB0b3AgZWxlbWVudFxuICAgICAgICAgICAgJChlbGVtZW50ICsgJyAuanNfX211bHRpbGV2ZWwtZmllbGQudG9wJykubGFzdCgpLmZpbmQoJy5qc19fYWRkLXNpYmxpbmcnKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgcmVzdG9yZUFkZENoaWxkcmVuQnV0dG9ucyA9IGZ1bmN0aW9uIHJlc3RvcmVBZGRDaGlsZHJlbkJ1dHRvbnMoKSB7XG4gICAgICAgICAgICAkKGVsZW1lbnQgKyAnIC5qc19fbXVsdGlsZXZlbC1maWVsZCcpLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgaWYgKCQodGhpcykuc2libGluZ3MoJy5jaGlsZHJlbi13cmFwcGVyJykubGVuZ3RoID09PSAwIHx8ICQodGhpcykuc2libGluZ3MoJy5jaGlsZHJlbi13cmFwcGVyJykuZmluZCgnLmpzX19tdWx0aWxldmVsLWZpZWxkJykubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICQodGhpcykuZmluZCgnLmpzX19hZGQtY2hpbGRyZW4nKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgcHJldmVudFJlbW92aW5nTGFzdFRvcEl0ZW0gPSBmdW5jdGlvbiBwcmV2ZW50UmVtb3ZpbmdMYXN0VG9wSXRlbSgpIHtcbiAgICAgICAgICAgIGxldCB0b3BfaXRlbXMgPSBnZXRUb3BJdGVtcyhlbGVtZW50KTtcbiAgICAgICAgICAgIGlmICh0b3BfaXRlbXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgdG9wX2l0ZW1zLmZpcnN0KCkuZmluZCgnLmpzX19yZW1vdmUtaXRlbScpLmFkZENsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBoaWRlQnV0dG9ucygpO1xuICAgICAgICByZXN0b3JlQWRkU2libGluZ0J1dHRvbnMoKTtcbiAgICAgICAgcmVzdG9yZUFkZENoaWxkcmVuQnV0dG9ucygpO1xuICAgICAgICBwcmV2ZW50UmVtb3ZpbmdMYXN0VG9wSXRlbSgpO1xuICAgIH07XG5cbiAgICBjb25zdCBjaGFuZ2VBbGxPY2N1cnJlbmNlc0luVHJlZSA9IGZ1bmN0aW9uKCRlbCwgY3VycmVudF9uYW1lLCBuZXdfbmFtZSkge1xuICAgICAgICAkZWwucGFyZW50cygnW2RhdGEtZ3Jhdi1tdWx0aWxldmVsLWZpZWxkXScpLmZpbmQoJ2lucHV0JykuZWFjaChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGxldCAkaW5wdXQgPSAkKHRoaXMpO1xuICAgICAgICAgICAgaWYgKCRpbnB1dC5hdHRyKCduYW1lJykpIHtcbiAgICAgICAgICAgICAgICAkaW5wdXQuYXR0cignbmFtZScsICRpbnB1dC5hdHRyKCduYW1lJykucmVwbGFjZShjdXJyZW50X25hbWUsIG5ld19uYW1lKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoJGlucHV0LmF0dHIoJ2RhdGEtYXR0ci1uYW1lJykpIHtcbiAgICAgICAgICAgICAgICAkaW5wdXQuYXR0cignZGF0YS1hdHRyLW5hbWUnLCAkaW5wdXQuYXR0cignZGF0YS1hdHRyLW5hbWUnKS5yZXBsYWNlKGN1cnJlbnRfbmFtZSwgbmV3X25hbWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkge1xuICAgICAgICByZWZyZXNoQ29udHJvbHMoKTtcbiAgICB9KTtcblxuICAgICQoZG9jdW1lbnQpLm9uKCdtb3VzZWxlYXZlJywgJ1tkYXRhLWdyYXYtbXVsdGlsZXZlbC1maWVsZF0nLCBmdW5jdGlvbihldmVudCkge1xuICAgICAgICBsZXQgdG9wX2l0ZW1zID0gZ2V0VG9wSXRlbXMoJ1tkYXRhLWlkPVwiJyArICQodGhpcykuZGF0YSgnaWQnKSArICdcIl0nKTtcbiAgICAgICAgbGV0IGhhc190b3BfaXRlbXNfd2l0aG91dF9jaGlsZHJlbiA9IGZhbHNlO1xuICAgICAgICBsZXQgZWxlbWVudF9jb250ZW50ID0gJyc7XG4gICAgICAgIHRvcF9pdGVtcy5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgbGV0IGl0ZW0gPSAkKHRoaXMpO1xuICAgICAgICAgICAgaWYgKCQoaXRlbSkuc2libGluZ3MoJy5jaGlsZHJlbi13cmFwcGVyJykuZmluZCgnaW5wdXQnKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICBoYXNfdG9wX2l0ZW1zX3dpdGhvdXRfY2hpbGRyZW4gPSB0cnVlO1xuICAgICAgICAgICAgICAgIGVsZW1lbnRfY29udGVudCA9IGl0ZW0uZmluZCgnaW5wdXQnKS52YWwoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoaGFzX3RvcF9pdGVtc193aXRob3V0X2NoaWxkcmVuKSB7XG4gICAgICAgICAgICBpZiAoZWxlbWVudF9jb250ZW50KSB7XG4gICAgICAgICAgICAgICAgYWxlcnQoJ1dhcm5pbmc6IGlmIHlvdSBzYXZlIG5vdywgdGhlIGVsZW1lbnQgJyArIGVsZW1lbnRfY29udGVudCArICcsIHdpdGhvdXQgY2hpbGRyZW4sIHdpbGwgYmUgcmVtb3ZlZCwgYmVjYXVzZSBpdFxcJ3MgaW52YWxpZCBZQU1MJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGFsZXJ0KCdXYXJuaW5nOiBpZiB5b3Ugc2F2ZSBub3csIHRoZSB0b3AgZWxlbWVudHMgd2l0aG91dCBjaGlsZHJlbiB3aWxsIGJlIHJlbW92ZWQsIGJlY2F1c2UgaXRcXCdzIGludmFsaWQgWUFNTCcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgICQoZG9jdW1lbnQpLm9uKCdjbGljaycsICdbZGF0YS1ncmF2LW11bHRpbGV2ZWwtZmllbGRdIC5qc19fYWRkLWNoaWxkcmVuJywgZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAgICAgbGV0IGVsZW1lbnQgPSAkKHRoaXMpO1xuICAgICAgICBsZXQgdW5pcXVlX2NvbnRhaW5lcl9pZCA9IGVsZW1lbnQuY2xvc2VzdCgnLmpzX19tdWx0aWxldmVsLWZpZWxkJykuZGF0YSgnaWQnKTtcbiAgICAgICAgbGV0IGxldmVsID0gZWxlbWVudC5kYXRhKCdsZXZlbCcpICsgMTtcblxuICAgICAgICBjb25zdCBnZXRQYXJlbnRPZkVsZW1lbnQgPSBmdW5jdGlvbiBnZXRQYXJlbnRPZkVsZW1lbnQoZWxlbWVudCkge1xuICAgICAgICAgICAgbGV0IHBhcmVudCA9IGVsZW1lbnQuY2xvc2VzdCgnLmpzX19tdWx0aWxldmVsLWZpZWxkJykucGFyZW50KCkuZmlyc3QoKTtcbiAgICAgICAgICAgIGlmIChwYXJlbnQuZmluZCgnLmNoaWxkcmVuLXdyYXBwZXInKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAkKHBhcmVudCkuYXBwZW5kKCc8ZGl2IGNsYXNzPVwiY2hpbGRyZW4td3JhcHBlclwiPjwvZGl2PicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGFyZW50ID0gcGFyZW50LmZpbmQoJy5jaGlsZHJlbi13cmFwcGVyJykuZmlyc3QoKTtcblxuICAgICAgICAgICAgcmV0dXJuIHBhcmVudDtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBnZXROYW1lRnJvbVBhcmVudElucHV0ID0gZnVuY3Rpb24gZ2V0TmFtZUZyb21QYXJlbnRJbnB1dChwYXJlbnRJbnB1dCwgYXR0cikge1xuICAgICAgICAgICAgaWYgKHBhcmVudElucHV0Lmhhc0NsYXNzKCdjaGlsZHJlbi13cmFwcGVyJykpIHtcbiAgICAgICAgICAgICAgICBwYXJlbnRJbnB1dCA9IHBhcmVudElucHV0LnNpYmxpbmdzKCcuanNfX211bHRpbGV2ZWwtZmllbGQnKS5maXJzdCgpLmZpbmQoJ2lucHV0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBwYXJlbnRJbnB1dC5hdHRyKGF0dHIpICsgJ1snICsgcGFyZW50SW5wdXQudmFsKCkgKyAnXSc7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgZ2V0SW5wdXRGcm9tQ2hpbGRyZW5XcmFwcGVyID0gZnVuY3Rpb24gZ2V0SW5wdXRGcm9tQ2hpbGRyZW5XcmFwcGVyKHBhcmVudENoaWxkcmVuV3JhcHBlcikge1xuICAgICAgICAgICAgcmV0dXJuIHBhcmVudENoaWxkcmVuV3JhcHBlci5zaWJsaW5ncygnLmpzX19tdWx0aWxldmVsLWZpZWxkJykuZmlyc3QoKS5maW5kKCdpbnB1dCcpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGxldCBwYXJlbnRDaGlsZHJlbldyYXBwZXIgPSBnZXRQYXJlbnRPZkVsZW1lbnQoZWxlbWVudCk7XG4gICAgICAgIGxldCBwYXJlbnRJbnB1dCA9IGdldElucHV0RnJvbUNoaWxkcmVuV3JhcHBlcihwYXJlbnRDaGlsZHJlbldyYXBwZXIpO1xuXG4gICAgICAgIGxldCBhdHRyID0gJ25hbWUnO1xuICAgICAgICBpZiAocGFyZW50SW5wdXQuY2xvc2VzdCgnLmpzX19tdWx0aWxldmVsLWZpZWxkJykuaGFzQ2xhc3MoJ3RvcCcpKSB7XG4gICAgICAgICAgICBhdHRyID0gJ2RhdGEtYXR0ci1uYW1lJztcbiAgICAgICAgfVxuXG4gICAgICAgIHBhcmVudElucHV0LmF0dHIoYXR0ciwgcGFyZW50SW5wdXQuYXR0cihhdHRyKS5yZXBsYWNlKCdbXScsICcnKSk7XG5cbiAgICAgICAgbGV0IG5hbWUgPSBnZXROYW1lRnJvbVBhcmVudElucHV0KHBhcmVudElucHV0LCBhdHRyKTtcbiAgICAgICAgbGV0IGZpZWxkID0gZ2V0RmllbGQobGV2ZWwsIG5hbWUpO1xuXG4gICAgICAgICQocGFyZW50Q2hpbGRyZW5XcmFwcGVyKS5hcHBlbmQoZmllbGQpO1xuICAgICAgICByZWZyZXNoQ29udHJvbHModW5pcXVlX2NvbnRhaW5lcl9pZCk7XG4gICAgfSk7XG5cbiAgICAkKGRvY3VtZW50KS5vbignY2xpY2snLCAnW2RhdGEtZ3Jhdi1tdWx0aWxldmVsLWZpZWxkXSAuanNfX2FkZC1zaWJsaW5nJywgZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAgICAgbGV0IGVsZW1lbnQgPSAkKHRoaXMpO1xuICAgICAgICBsZXQgdW5pcXVlX2NvbnRhaW5lcl9pZCA9IGVsZW1lbnQuY2xvc2VzdCgnLmpzX19tdWx0aWxldmVsLWZpZWxkJykuZGF0YSgnaWQnKTtcbiAgICAgICAgbGV0IGxldmVsID0gZWxlbWVudC5kYXRhKCdsZXZlbCcpO1xuICAgICAgICBlbGVtZW50LmNsb3Nlc3QoJy5jaGlsZHJlbi13cmFwcGVyJykuZmluZCgnLmpzX19hZGQtc2libGluZycpLmFkZENsYXNzKCdoaWRkZW4nKTtcblxuICAgICAgICBsZXQgc2libGluZyA9IG51bGw7XG4gICAgICAgIGxldCBpc190b3AgPSBmYWxzZTtcblxuICAgICAgICBpZiAoZWxlbWVudC5jbG9zZXN0KCcuanNfX211bHRpbGV2ZWwtZmllbGQnKS5oYXNDbGFzcygndG9wJykpIHtcbiAgICAgICAgICAgIGlzX3RvcCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNfdG9wKSB7XG4gICAgICAgICAgICBzaWJsaW5nID0gZWxlbWVudC5jbG9zZXN0KCcuanNfX211bHRpbGV2ZWwtZmllbGQnKS5maXJzdCgpLmZpbmQoJ2lucHV0JykubGFzdCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2libGluZyA9IGVsZW1lbnQuc2libGluZ3MoJ2lucHV0JykuZmlyc3QoKTtcbiAgICAgICAgICAgIGlmICghc2libGluZykge1xuICAgICAgICAgICAgICAgIHNpYmxpbmcgPSBlbGVtZW50LmNsb3Nlc3QoJy5jaGlsZHJlbi13cmFwcGVyJykuZmlyc3QoKS5maW5kKCdpbnB1dCcpLmxhc3QoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGdldFBhcmVudE9mRWxlbWVudCA9IGZ1bmN0aW9uIGdldFBhcmVudE9mRWxlbWVudChlbGVtZW50KSB7XG4gICAgICAgICAgICBsZXQgcGFyZW50ID0gZWxlbWVudC5jbG9zZXN0KCcuanNfX211bHRpbGV2ZWwtZmllbGQnKS5wYXJlbnQoKS5maXJzdCgpO1xuICAgICAgICAgICAgaWYgKCFwYXJlbnQuaGFzQ2xhc3MoJ2VsZW1lbnQtd3JhcHBlcicpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHBhcmVudC5maW5kKCcuZWxlbWVudC13cmFwcGVyJykubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICQocGFyZW50KS5hcHBlbmQoJzxkaXYgY2xhc3M9XCJlbGVtZW50LXdyYXBwZXJcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBwYXJlbnQgPSBwYXJlbnQuZmluZCgnLmVsZW1lbnQtd3JhcHBlcicpLmZpcnN0KCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBwYXJlbnQ7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgZ2V0TmFtZUZyb21TaWJsaW5nID0gZnVuY3Rpb24gZ2V0TmFtZUZyb21TaWJsaW5nKHBhcmVudCwgc2libGluZywgaXNfdG9wID0gZmFsc2UpIHtcbiAgICAgICAgICAgIGxldCBuYW1lID0gc2libGluZy5hdHRyKCduYW1lJyk7XG5cbiAgICAgICAgICAgIGlmIChoYXNDaGlsZElucHV0cyhzaWJsaW5nKSkge1xuICAgICAgICAgICAgICAgIGxldCB2YWwgPSBzaWJsaW5nLmRhdGEoJ2F0dHItbmFtZScpICsgJ1tdJztcbiAgICAgICAgICAgICAgICBzaWJsaW5nLnJlbW92ZUF0dHIoJ25hbWUnKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsZXQgbGFzdF9pbmRleCA9IG5hbWUubGFzdEluZGV4T2YoJ1snKTtcbiAgICAgICAgICAgIGxldCBhbG1vc3RfdGhlcmUgPSBuYW1lLnN1YnN0cihsYXN0X2luZGV4ICsgMSk7XG4gICAgICAgICAgICBsZXQgbGFzdF90YWcgPSBhbG1vc3RfdGhlcmUuc3Vic3RyKDAsIGFsbW9zdF90aGVyZS5sZW5ndGggLSAxKTtcblxuICAgICAgICAgICAgaWYgKCQuaXNOdW1lcmljKGxhc3RfdGFnKSkge1xuICAgICAgICAgICAgICAgIG5hbWUgPSBuYW1lLnJlcGxhY2UoJ1snICsgbGFzdF90YWcgKyAnXScsICdbJyArIChwYXJzZUludChsYXN0X3RhZywgMTApICsgMSkgKyAnXScpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNfdG9wKSB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWUgPSBuYW1lLnJlcGxhY2UoJ1snICsgbGFzdF90YWcgKyAnXScsICcnKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBuYW1lID0gbmFtZSArICdbMV0nO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIGNoYW5nZSBzaWJsaW5nIG5hbWUgYXR0ciBpZiBuZWNlc3NhcnlcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNpYmxpbmcuYXR0cignbmFtZScpLnNsaWNlKCctMicpICE9PSAnWzBdJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlQWxsT2NjdXJyZW5jZXNJblRyZWUoc2libGluZywgc2libGluZy5hdHRyKCduYW1lJyksIHNpYmxpbmcuYXR0cignbmFtZScpICsgJ1swXScpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gbmFtZTtcbiAgICAgICAgfTtcblxuICAgICAgICBsZXQgcGFyZW50ID0gZ2V0UGFyZW50T2ZFbGVtZW50KGVsZW1lbnQpO1xuICAgICAgICBsZXQgbmFtZSA9IGdldE5hbWVGcm9tU2libGluZyhwYXJlbnQsIHNpYmxpbmcsIGlzX3RvcCk7XG5cbiAgICAgICAgbGV0IGZpZWxkID0gZ2V0RmllbGQobGV2ZWwsIG5hbWUpO1xuICAgICAgICAkKGZpZWxkKS5pbnNlcnRBZnRlcihwYXJlbnQpO1xuXG4gICAgICAgIHJlZnJlc2hDb250cm9scyh1bmlxdWVfY29udGFpbmVyX2lkKTtcbiAgICB9KTtcblxuICAgICQoZG9jdW1lbnQpLm9uKCdjbGljaycsICdbZGF0YS1ncmF2LW11bHRpbGV2ZWwtZmllbGRdIC5qc19fcmVtb3ZlLWl0ZW0nLCBmdW5jdGlvbihldmVudCkge1xuICAgICAgICAkKHRoaXMpLnBhcmVudHMoJy5lbGVtZW50LXdyYXBwZXInKS5maXJzdCgpLnJlbW92ZSgpO1xuICAgICAgICBsZXQgdW5pcXVlX2NvbnRhaW5lcl9pZCA9ICQodGhpcykuY2xvc2VzdCgnLmpzX19tdWx0aWxldmVsLWZpZWxkJykuZGF0YSgnaWQnKTtcbiAgICAgICAgcmVmcmVzaENvbnRyb2xzKHVuaXF1ZV9jb250YWluZXJfaWQpO1xuICAgIH0pO1xuXG4gICAgLy8gU3RvcmUgb2xkIHZhbHVlIGJlZm9yZSBlZGl0aW5nIGEgZmllbGRcbiAgICAkKGRvY3VtZW50KS5vbignZm9jdXNpbicsICdbZGF0YS1ncmF2LW11bHRpbGV2ZWwtZmllbGRdIGlucHV0JywgZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAgICAgJCh0aGlzKS5kYXRhKCdjdXJyZW50LXZhbHVlJywgJCh0aGlzKS52YWwoKSk7XG4gICAgfSk7XG5cbiAgICAvLyBIYW5kbGUgZmllbGQgZWRpdGVkIGV2ZW50XG4gICAgJChkb2N1bWVudCkub24oJ2NoYW5nZScsICdbZGF0YS1ncmF2LW11bHRpbGV2ZWwtZmllbGRdIGlucHV0JywgZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAgICAgbGV0ICRlbCA9ICQodGhpcyk7XG4gICAgICAgIGxldCBvbGRfdmFsdWUgPSAkZWwuZGF0YSgnY3VycmVudC12YWx1ZScpO1xuICAgICAgICBsZXQgbmV3X3ZhbHVlID0gJGVsLnZhbCgpO1xuXG4gICAgICAgIGxldCBmdWxsX25hbWUgPSAkZWwuYXR0cignbmFtZScpIHx8ICRlbC5hdHRyKCdkYXRhLWF0dHItbmFtZScpOyAvLyBmaXJzdC1sZXZlbCBpdGVtcyBoYXZlIGBkYXRhLWF0dHItbmFtZWAgaW5zdGVhZCBvZiBgbmFtZWBcblxuICAgICAgICBsZXQgb2xkX25hbWVfYXR0ciA9IGZ1bGxfbmFtZSArICdbJyArIG9sZF92YWx1ZSArICddJztcbiAgICAgICAgbGV0IG5ld19uYW1lX2F0dHIgPSBmdWxsX25hbWUgKyAnWycgKyBuZXdfdmFsdWUgKyAnXSc7XG5cbiAgICAgICAgY2hhbmdlQWxsT2NjdXJyZW5jZXNJblRyZWUoJGVsLCBvbGRfbmFtZV9hdHRyLCBuZXdfbmFtZV9hdHRyKTtcbiAgICB9KTtcblxufSk7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/forms/fields/multilevel.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/forms/fields/parents.js":
|
|
/*!*************************************!*\
|
|
!*** ./app/forms/fields/parents.js ***!
|
|
\*************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Instances\": () => (/* binding */ Instances),\n/* harmony export */ \"default\": () => (/* binding */ Parents),\n/* harmony export */ \"b64_encode_unicode\": () => (/* binding */ b64_encode_unicode),\n/* harmony export */ \"b64_decode_unicode\": () => (/* binding */ b64_decode_unicode)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_finderjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/finderjs */ \"./app/utils/finderjs.js\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_2__);\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); return Constructor; }\n\n\n\n\nvar XHRUUID = 0;\nvar Instances = {};\n\nvar Parents = /*#__PURE__*/function () {\n function Parents(container, field, data) {\n var _this = this;\n\n _classCallCheck(this, Parents);\n\n this.container = jquery__WEBPACK_IMPORTED_MODULE_0___default()(container);\n this.fieldName = field.attr('name');\n this.field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[name=\\\"\".concat(this.fieldName, \"\\\"]\"));\n this.data = data;\n this.parentLabel = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-parents-field-label=\\\"\".concat(this.fieldName, \"\\\"]\"));\n this.parentName = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-parents-field-name=\\\"\".concat(this.fieldName, \"\\\"]\"));\n var dataLoad = this.dataLoad;\n this.finder = new _utils_finderjs__WEBPACK_IMPORTED_MODULE_1__.default(this.container, function (parent, callback) {\n return dataLoad.call(_this, parent, callback);\n }, {\n labelKey: 'name',\n defaultPath: this.field.val(),\n createItemContent: function createItemContent(item) {\n return Parents.createItemContent(this.config, item);\n }\n });\n /*\n this.finder.$emitter.on('leaf-selected', (item) => {\n console.log('selected', item);\n this.finder.emit('create-column', () => this.createSimpleColumn(item));\n });\n this.finder.$emitter.on('item-selected', (selected) => {\n console.log('selected', selected);\n // for future use only - create column-card creation for file with details like in macOS finder\n // this.finder.$emitter('create-column', () => this.createSimpleColumn(selected));\n }); */\n\n this.finder.$emitter.on('column-created', function () {\n _this.container[0].scrollLeft = _this.container[0].scrollWidth - _this.container[0].clientWidth;\n });\n }\n\n _createClass(Parents, [{\n key: \"createSimpleColumn\",\n value: function createSimpleColumn(item) {}\n }, {\n key: \"dataLoad\",\n value: function dataLoad(parent, callback) {\n var _this2 = this;\n\n if (!parent) {\n return callback(this.data);\n }\n\n if (parent.type !== 'dir' || !parent['has-children']) {\n return false;\n }\n\n var UUID = ++XHRUUID;\n this.startLoader();\n jquery__WEBPACK_IMPORTED_MODULE_0___default().ajax({\n url: \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.config.current_url),\n method: 'post',\n data: Object.assign({}, getExtraFormData(this.container), {\n route: b64_encode_unicode(parent.value),\n field: this.field.data('fieldName'),\n action: 'getLevelListing',\n 'admin-nonce': grav_config__WEBPACK_IMPORTED_MODULE_2__.config.admin_nonce\n }),\n success: function success(response) {\n _this2.stopLoader();\n\n if (response.status === 'error') {\n _this2.finder.$emitter.emit('create-column', Parents.createErrorColumn(response.message)[0]);\n\n return false;\n } // stale request\n\n\n if (UUID !== XHRUUID) {\n return false;\n }\n\n return callback(response.data);\n }\n });\n }\n }, {\n key: \"startLoader\",\n value: function startLoader() {\n this.loadingIndicator = Parents.createLoadingColumn();\n this.finder.$emitter.emit('create-column', this.loadingIndicator[0]);\n return this.loadingIndicator;\n }\n }, {\n key: \"stopLoader\",\n value: function stopLoader() {\n return this.loadingIndicator && this.loadingIndicator.remove();\n }\n }], [{\n key: \"createItemContent\",\n value: function createItemContent(config, item) {\n var frag = document.createDocumentFragment();\n var label = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"<span title=\\\"\".concat(item[config.labelKey], \"\\\" />\"));\n var infoContainer = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<span class=\"info-container\" />');\n var iconPrepend = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<i />');\n var iconAppend = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<i />');\n var badge = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<span class=\"badge\" />');\n var prependClasses = ['fa'];\n var appendClasses = ['fa']; // prepend icon\n\n if (item.children || item.type === 'dir') {\n prependClasses.push('fa-folder');\n } else if (item.type === 'root') {\n prependClasses.push('fa-sitemap');\n } else if (item.type === 'file') {\n prependClasses.push('fa-file-o');\n }\n\n iconPrepend.addClass(prependClasses.join(' ')); // text label\n\n label.text(item[config.labelKey]).prepend(iconPrepend);\n label.appendTo(frag); // append icon\n\n if (item.children || item['has-children']) {\n appendClasses.push('fa-caret-right');\n badge.text(item.size || item.count || 0);\n badge.appendTo(infoContainer);\n }\n\n iconAppend.addClass(appendClasses.join(' '));\n iconAppend.appendTo(infoContainer);\n infoContainer.appendTo(frag);\n return frag;\n }\n }, {\n key: \"createLoadingColumn\",\n value: function createLoadingColumn() {\n return jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"\\n <div class=\\\"fjs-col leaf-col\\\" style=\\\"overflow: hidden;\\\">\\n <div class=\\\"leaf-row\\\">\\n <div class=\\\"grav-loading\\\"><div class=\\\"grav-loader\\\">Loading...</div></div>\\n </div>\\n </div>\\n \");\n }\n }, {\n key: \"createErrorColumn\",\n value: function createErrorColumn(error) {\n return jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"\\n <div class=\\\"fjs-col leaf-col\\\" style=\\\"overflow: hidden;\\\">\\n <div class=\\\"leaf-row error\\\">\\n <i class=\\\"fa fa-fw fa-warning\\\"></i>\\n <span>\".concat(error, \"</span>\\n </div>\\n </div>\\n \"));\n }\n }]);\n\n return Parents;\n}();\n\n\nvar b64_encode_unicode = function b64_encode_unicode(str) {\n return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function toSolidBytes(match, p1) {\n return String.fromCharCode('0x' + p1);\n }));\n};\nvar b64_decode_unicode = function b64_decode_unicode(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 getExtraFormData = function getExtraFormData(container) {\n var form = container.closest('form');\n\n if (container.closest('[data-remodal-id]').length) {\n form = jquery__WEBPACK_IMPORTED_MODULE_0___default()('form#blueprints');\n }\n\n var data = {};\n var unique_id = form.find('[name=\"__unique_form_id__\"]');\n data['__form-name__'] = form.find('[name=\"__form-name__\"]').val();\n data['form-nonce'] = form.find('[name=\"form-nonce\"]').val();\n\n if (unique_id.length) {\n data['__unique_form_id__'] = unique_id.val();\n }\n\n return data;\n};\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-parents]', function (event) {\n event.preventDefault();\n event.stopPropagation();\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var field = target.closest('.parents-wrapper').find('input[name]');\n var fieldName = field.attr('name');\n\n if (!field.length) {\n fieldName = target.data('parents');\n field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[name=\\\"\".concat(target.data('parents'), \"\\\"]\")).first();\n }\n\n var modal = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-remodal-id=\\\"\".concat(target.data('remodalTarget') || 'parents', \"\\\"]\"));\n var loader = modal.find('.grav-loading');\n var content = modal.find('.parents-content');\n loader.css('display', 'block');\n content.html('');\n jquery__WEBPACK_IMPORTED_MODULE_0___default().ajax({\n url: \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.config.current_url),\n method: 'post',\n data: Object.assign({}, getExtraFormData(target), {\n route: b64_encode_unicode(field.val()),\n field: field.data('fieldName'),\n action: 'getLevelListing',\n 'admin-nonce': grav_config__WEBPACK_IMPORTED_MODULE_2__.config.admin_nonce,\n initial: true\n }),\n success: function success(response) {\n loader.css('display', 'none');\n\n if (response.status === 'error') {\n content.html(response.message);\n return true;\n }\n\n if (!Instances[\"\".concat(fieldName, \"-\").concat(modal.data('remodalId'))]) {\n Instances[\"\".concat(fieldName, \"-\").concat(modal.data('remodalId'))] = new Parents(content, field, response.data);\n } else {\n Instances[\"\".concat(fieldName, \"-\").concat(modal.data('remodalId'))].finder.reload(response.data);\n }\n\n modal.data('parents', Instances[\"\".concat(fieldName, \"-\").concat(modal.data('remodalId'))]);\n modal.data('parents-selectedField', field);\n }\n });\n}); // apply finder selection to field\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-remodal-id].parents-container [data-parents-select]', function (event) {\n var modal = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget).closest('[data-remodal-id]');\n var parents = modal.data('parents');\n var selectedField = modal.data('parentsSelectedField');\n var finder = parents.finder;\n var field = parents.field;\n var parentLabel = parents.parentLabel;\n var parentName = parents.parentName;\n var selection = finder.findLastActive().item[0];\n var value = selection._item[finder.config.valueKey];\n var name = selection._item[finder.config.labelKey];\n console.log('click [data-parents-select]', selectedField);\n\n if (selectedField.closest('.remodal').length) {\n var index = field.index(selectedField) - 1;\n selectedField.val(value);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(parentLabel[index]).text(value);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(parentName[index]).text(name);\n } else {\n field.val(value);\n parentLabel.text(value);\n parentName.text(name);\n finder.config.defaultPath = value;\n }\n\n var remodal = (jquery__WEBPACK_IMPORTED_MODULE_0___default().remodal.lookup)[jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-remodal-id=\\\"\".concat(modal.data('remodalId'), \"\\\"]\")).data('remodal')];\n remodal.close();\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL2ZpZWxkcy9wYXJlbnRzLmpzPzQ5YzgiXSwibmFtZXMiOlsiWEhSVVVJRCIsIkluc3RhbmNlcyIsIlBhcmVudHMiLCJjb250YWluZXIiLCJmaWVsZCIsImRhdGEiLCIkIiwiZmllbGROYW1lIiwiYXR0ciIsInBhcmVudExhYmVsIiwicGFyZW50TmFtZSIsImRhdGFMb2FkIiwiZmluZGVyIiwiRmluZGVyIiwicGFyZW50IiwiY2FsbGJhY2siLCJjYWxsIiwibGFiZWxLZXkiLCJkZWZhdWx0UGF0aCIsInZhbCIsImNyZWF0ZUl0ZW1Db250ZW50IiwiaXRlbSIsImNvbmZpZyIsIiRlbWl0dGVyIiwib24iLCJzY3JvbGxMZWZ0Iiwic2Nyb2xsV2lkdGgiLCJjbGllbnRXaWR0aCIsInR5cGUiLCJVVUlEIiwic3RhcnRMb2FkZXIiLCJ1cmwiLCJncmF2Q29uZmlnIiwibWV0aG9kIiwiT2JqZWN0IiwiYXNzaWduIiwiZ2V0RXh0cmFGb3JtRGF0YSIsInJvdXRlIiwiYjY0X2VuY29kZV91bmljb2RlIiwidmFsdWUiLCJhY3Rpb24iLCJhZG1pbl9ub25jZSIsInN1Y2Nlc3MiLCJyZXNwb25zZSIsInN0b3BMb2FkZXIiLCJzdGF0dXMiLCJlbWl0IiwiY3JlYXRlRXJyb3JDb2x1bW4iLCJtZXNzYWdlIiwibG9hZGluZ0luZGljYXRvciIsImNyZWF0ZUxvYWRpbmdDb2x1bW4iLCJyZW1vdmUiLCJmcmFnIiwiZG9jdW1lbnQiLCJjcmVhdGVEb2N1bWVudEZyYWdtZW50IiwibGFiZWwiLCJpbmZvQ29udGFpbmVyIiwiaWNvblByZXBlbmQiLCJpY29uQXBwZW5kIiwiYmFkZ2UiLCJwcmVwZW5kQ2xhc3NlcyIsImFwcGVuZENsYXNzZXMiLCJjaGlsZHJlbiIsInB1c2giLCJhZGRDbGFzcyIsImpvaW4iLCJ0ZXh0IiwicHJlcGVuZCIsImFwcGVuZFRvIiwic2l6ZSIsImNvdW50IiwiZXJyb3IiLCJzdHIiLCJidG9hIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwicmVwbGFjZSIsInRvU29saWRCeXRlcyIsIm1hdGNoIiwicDEiLCJTdHJpbmciLCJmcm9tQ2hhckNvZGUiLCJiNjRfZGVjb2RlX3VuaWNvZGUiLCJkZWNvZGVVUklDb21wb25lbnQiLCJhdG9iIiwic3BsaXQiLCJtYXAiLCJjIiwiY2hhckNvZGVBdCIsInRvU3RyaW5nIiwic2xpY2UiLCJmb3JtIiwiY2xvc2VzdCIsImxlbmd0aCIsInVuaXF1ZV9pZCIsImZpbmQiLCJldmVudCIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwidGFyZ2V0IiwiY3VycmVudFRhcmdldCIsImZpcnN0IiwibW9kYWwiLCJsb2FkZXIiLCJjb250ZW50IiwiY3NzIiwiaHRtbCIsImluaXRpYWwiLCJyZWxvYWQiLCJwYXJlbnRzIiwic2VsZWN0ZWRGaWVsZCIsInNlbGVjdGlvbiIsImZpbmRMYXN0QWN0aXZlIiwiX2l0ZW0iLCJ2YWx1ZUtleSIsIm5hbWUiLCJjb25zb2xlIiwibG9nIiwiaW5kZXgiLCJyZW1vZGFsIiwiY2xvc2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUVBLElBQUlBLE9BQU8sR0FBRyxDQUFkO0FBQ08sSUFBTUMsU0FBUyxHQUFHLEVBQWxCOztJQUVjQyxPO0FBQ2pCLG1CQUFZQyxTQUFaLEVBQXVCQyxLQUF2QixFQUE4QkMsSUFBOUIsRUFBb0M7QUFBQTs7QUFBQTs7QUFDaEMsU0FBS0YsU0FBTCxHQUFpQkcsNkNBQUMsQ0FBQ0gsU0FBRCxDQUFsQjtBQUNBLFNBQUtJLFNBQUwsR0FBaUJILEtBQUssQ0FBQ0ksSUFBTixDQUFXLE1BQVgsQ0FBakI7QUFDQSxTQUFLSixLQUFMLEdBQWFFLDZDQUFDLG1CQUFXLEtBQUtDLFNBQWhCLFNBQWQ7QUFDQSxTQUFLRixJQUFMLEdBQVlBLElBQVo7QUFDQSxTQUFLSSxXQUFMLEdBQW1CSCw2Q0FBQyx1Q0FBK0IsS0FBS0MsU0FBcEMsU0FBcEI7QUFDQSxTQUFLRyxVQUFMLEdB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QUFZLDZCQUFaLEVBQTJDUCxhQUEzQzs7QUFDQSxNQUFJQSxhQUFhLENBQUNsQixPQUFkLENBQXNCLFVBQXRCLEVBQWtDQyxNQUF0QyxFQUE4QztBQUMxQyxRQUFNeUIsS0FBSyxHQUFHakgsS0FBSyxDQUFDaUgsS0FBTixDQUFZUixhQUFaLElBQTZCLENBQTNDO0FBQ0FBLGlCQUFhLENBQUMxRixHQUFkLENBQWtCb0IsS0FBbEI7QUFDQWpDLGlEQUFDLENBQUNHLFdBQVcsQ0FBQzRHLEtBQUQsQ0FBWixDQUFELENBQXNCbkQsSUFBdEIsQ0FBMkIzQixLQUEzQjtBQUNBakMsaURBQUMsQ0FBQ0ksVUFBVSxDQUFDMkcsS0FBRCxDQUFYLENBQUQsQ0FBcUJuRCxJQUFyQixDQUEwQmdELElBQTFCO0FBQ0gsR0FMRCxNQUtPO0FBQ0g5RyxTQUFLLENBQUNlLEdBQU4sQ0FBVW9CLEtBQVY7QUFDQTlCLGVBQVcsQ0FBQ3lELElBQVosQ0FBaUIzQixLQUFqQjtBQUNBN0IsY0FBVSxDQUFDd0QsSUFBWCxDQUFnQmdELElBQWhCO0FBQ0F0RyxVQUFNLENBQUNVLE1BQVAsQ0FBY0osV0FBZCxHQUE0QnFCLEtBQTVCO0FBRUg7O0FBQ0QsTUFBTStFLE9BQU8sR0FBR2hILDhEQUFBLENBQWlCQSw2Q0FBQyw4QkFBc0IrRixLQUFLLENBQUNoRyxJQUFOLENBQVcsV0FBWCxDQUF0QixTQUFELENBQW9EQSxJQUFwRCxDQUF5RCxTQUF6RCxDQUFqQixDQUFoQjtBQUNBaUgsU0FBTyxDQUFDQyxLQUFSO0FBQ0gsQ0EzQkQiLCJmaWxlIjoiLi9hcHAvZm9ybXMvZmllbGRzL3BhcmVudHMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IEZpbmRlciBmcm9tICcuLi8uLi91dGlscy9maW5kZXJqcyc7XG5pbXBvcnQgeyBjb25maWcgYXMgZ3JhdkNvbmZpZyB9IGZyb20gJ2dyYXYtY29uZmlnJztcblxubGV0IFhIUlVVSUQgPSAwO1xuZXhwb3J0IGNvbnN0IEluc3RhbmNlcyA9IHt9O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQYXJlbnRzIHtcbiAgICBjb25zdHJ1Y3Rvcihjb250YWluZXIsIGZpZWxkLCBkYXRhKSB7XG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gJChjb250YWluZXIpO1xuICAgICAgICB0aGlzLmZpZWxkTmFtZSA9IGZpZWxkLmF0dHIoJ25hbWUnKTtcbiAgICAgICAgdGhpcy5maWVsZCA9ICQoYFtuYW1lPVwiJHt0aGlzLmZpZWxkTmFtZX1cIl1gKTtcbiAgICAgICAgdGhpcy5kYXRhID0gZGF0YTtcbiAgICAgICAgdGhpcy5wYXJlbnRMYWJlbCA9ICQoYFtkYXRhLXBhcmVudHMtZmllbGQtbGFiZWw9XCIke3RoaXMuZmllbGROYW1lfVwiXWApO1xuICAgICAgICB0aGlzLnBhcmVudE5hbWUgPSAkKGBbZGF0YS1wYXJlbnRzLWZpZWxkLW5hbWU9XCIke3RoaXMuZmllbGROYW1lfVwiXWApO1xuXG4gICAgICAgIGNvbnN0IGRhdGFMb2FkID0gdGhpcy5kYXRhTG9hZDtcblxuICAgICAgICB0aGlzLmZpbmRlciA9IG5ldyBGaW5kZXIoXG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lcixcbiAgICAgICAgICAgIChwYXJlbnQsIGNhbGxiYWNrKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGFMb2FkLmNhbGwodGhpcywgcGFyZW50LCBjYWxsYmFjayk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhYmVsS2V5OiAnbmFtZScsXG4gICAgICAgICAgICAgICAgZGVmYXVsdFBhdGg6IHRoaXMuZmllbGQudmFsKCksXG4gICAgICAgICAgICAgICAgY3JlYXRlSXRlbUNvbnRlbnQ6IGZ1bmN0aW9uKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBhcmVudHMuY3JlYXRlSXRlbUNvbnRlbnQodGhpcy5jb25maWcsIGl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICAvKlxuICAgICAgICB0aGlzLmZpbmRlci4kZW1pdHRlci5vbignbGVhZi1zZWxlY3RlZCcsIChpdGVtKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnc2VsZWN0ZWQnLCBpdGVtKTtcbiAgICAgICAgICAgIHRoaXMuZmluZGVyLmVtaXQoJ2NyZWF0ZS1jb2x1bW4nLCAoKSA9PiB0aGlzLmNyZWF0ZVNpbXBsZUNvbHVtbihpdGVtKSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZmluZGVyLiRlbWl0dGVyLm9uKCdpdGVtLXNlbGVjdGVkJywgKHNlbGVjdGVkKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnc2VsZWN0ZWQnLCBzZWxlY3RlZCk7XG4gICAgICAgICAgICAvLyBmb3IgZnV0dXJlIHVzZSBvbmx5IC0gY3JlYXRlIGNvbHVtbi1jYXJkIGNyZWF0aW9uIGZvciBmaWxlIHdpdGggZGV0YWlscyBsaWtlIGluIG1hY09TIGZpbmRlclxuICAgICAgICAgICAgLy8gdGhpcy5maW5kZXIuJGVtaXR0ZXIoJ2NyZWF0ZS1jb2x1bW4nLCAoKSA9PiB0aGlzLmNyZWF0ZVNpbXBsZUNvbHVtbihzZWxlY3RlZCkpO1xuICAgICAgICB9KTsgKi9cblxuICAgICAgICB0aGlzLmZpbmRlci4kZW1pdHRlci5vbignY29sdW1uLWNyZWF0ZWQnLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lclswXS5zY3JvbGxMZWZ0ID0gdGhpcy5jb250YWluZXJbMF0uc2Nyb2xsV2lkdGggLSB0aGlzLmNvbnRhaW5lclswXS5jbGllbnRXaWR0aDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc3RhdGljIGNyZWF0ZUl0ZW1Db250ZW50KGNvbmZpZywgaXRlbSkge1xuICAgICAgICBjb25zdCBmcmFnID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xuXG4gICAgICAgIGNvbnN0IGxhYmVsID0gJChgPHNwYW4gdGl0bGU9XCIke2l0ZW1bY29uZmlnLmxhYmVsS2V5XX1cIiAvPmApO1xuICAgICAgICBjb25zdCBpbmZvQ29udGFpbmVyID0gJCgnPHNwYW4gY2xhc3M9XCJpbmZvLWNvbnRhaW5lclwiIC8+Jyk7XG4gICAgICAgIGNvbnN0IGljb25QcmVwZW5kID0gJCgnPGkgLz4nKTtcbiAgICAgICAgY29uc3QgaWNvbkFwcGVuZCA9ICQoJzxpIC8+Jyk7XG4gICAgICAgIGNvbnN0IGJhZGdlID0gJCgnPHNwYW4gY2xhc3M9XCJiYWRnZVwiIC8+Jyk7XG4gICAgICAgIGNvbnN0IHByZXBlbmRDbGFzc2VzID0gWydmYSddO1xuICAgICAgICBjb25zdCBhcHBlbmRDbGFzc2VzID0gWydmYSddO1xuXG4gICAgICAgIC8vIHByZXBlbmQgaWNvblxuICAgICAgICBpZiAoaXRlbS5jaGlsZHJlbiB8fCBpdGVtLnR5cGUgPT09ICdkaXInKSB7XG4gICAgICAgICAgICBwcmVwZW5kQ2xhc3Nlcy5wdXNoKCdmYS1mb2xkZXInKTtcbiAgICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT09ICdyb290Jykge1xuICAgICAgICAgICAgcHJlcGVuZENsYXNzZXMucHVzaCgnZmEtc2l0ZW1hcCcpO1xuICAgICAgICB9IGVsc2UgaWYgKGl0ZW0udHlwZSA9PT0gJ2ZpbGUnKSB7XG4gICAgICAgICAgICBwcmVwZW5kQ2xhc3Nlcy5wdXNoKCdmYS1maWxlLW8nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGljb25QcmVwZW5kLmFkZENsYXNzKHByZXBlbmRDbGFzc2VzLmpvaW4oJyAnKSk7XG5cbiAgICAgICAgLy8gdGV4dCBsYWJlbFxuICAgICAgICBsYWJlbC50ZXh0KGl0ZW1bY29uZmlnLmxhYmVsS2V5XSkucHJlcGVuZChpY29uUHJlcGVuZCk7XG4gICAgICAgIGxhYmVsLmFwcGVuZFRvKGZyYWcpO1xuXG4gICAgICAgIC8vIGFwcGVuZCBpY29uXG4gICAgICAgIGlmIChpdGVtLmNoaWxkcmVuIHx8IGl0ZW1bJ2hhcy1jaGlsZHJlbiddKSB7XG4gICAgICAgICAgICBhcHBlbmRDbGFzc2VzLnB1c2goJ2ZhLWNhcmV0LXJpZ2h0Jyk7XG4gICAgICAgICAgICBiYWRnZS50ZXh0KGl0ZW0uc2l6ZSB8fCBpdGVtLmNvdW50IHx8IDApO1xuICAgICAgICAgICAgYmFkZ2UuYXBwZW5kVG8oaW5mb0NvbnRhaW5lcik7XG4gICAgICAgIH1cblxuICAgICAgICBpY29uQXBwZW5kLmFkZENsYXNzKGFwcGVuZENsYXNzZXMuam9pbignICcpKTtcbiAgICAgICAgaWNvbkFwcGVuZC5hcHBlbmRUbyhpbmZvQ29udGFpbmVyKTtcbiAgICAgICAgaW5mb0NvbnRhaW5lci5hcHBlbmRUbyhmcmFnKTtcblxuICAgICAgICByZXR1cm4gZnJhZztcbiAgICB9XG5cbiAgICBzdGF0aWMgY3JlYXRlTG9hZGluZ0NvbHVtbigpIHtcbiAgICAgICAgcmV0dXJuICQoYFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZqcy1jb2wgbGVhZi1jb2xcIiBzdHlsZT1cIm92ZXJmbG93OiBoaWRkZW47XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlYWYtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmF2LWxvYWRpbmdcIj48ZGl2IGNsYXNzPVwiZ3Jhdi1sb2FkZXJcIj5Mb2FkaW5nLi4uPC9kaXY+PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgYCk7XG4gICAgfVxuXG4gICAgc3RhdGljIGNyZWF0ZUVycm9yQ29sdW1uKGVycm9yKSB7XG4gICAgICAgIHJldHVybiAkKGBcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmanMtY29sIGxlYWYtY29sXCIgc3R5bGU9XCJvdmVyZmxvdzogaGlkZGVuO1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWFmLXJvdyBlcnJvclwiPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWZ3IGZhLXdhcm5pbmdcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPiR7ZXJyb3J9PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIGApO1xuICAgIH1cblxuICAgIGNyZWF0ZVNpbXBsZUNvbHVtbihpdGVtKSB7fVxuXG4gICAgZGF0YUxvYWQocGFyZW50LCBjYWxsYmFjaykge1xuICAgICAgICBpZiAoIXBhcmVudCkge1xuICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKHRoaXMuZGF0YSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocGFyZW50LnR5cGUgIT09ICdkaXInIHx8ICFwYXJlbnRbJ2hhcy1jaGlsZHJlbiddKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBVVUlEID0gKytYSFJVVUlEO1xuICAgICAgICB0aGlzLnN0YXJ0TG9hZGVyKCk7XG5cbiAgICAgICAgJC5hamF4KHtcbiAgICAgICAgICAgIHVybDogYCR7Z3JhdkNvbmZpZy5jdXJyZW50X3VybH1gLFxuICAgICAgICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICAgICAgICBkYXRhOiBPYmplY3QuYXNzaWduKHt9LCBnZXRFeHRyYUZvcm1EYXRhKHRoaXMuY29udGFpbmVyKSwge1xuICAgICAgICAgICAgICAgIHJvdXRlOiBiNjRfZW5jb2RlX3VuaWNvZGUocGFyZW50LnZhbHVlKSxcbiAgICAgICAgICAgICAgICBmaWVsZDogdGhpcy5maWVsZC5kYXRhKCdmaWVsZE5hbWUnKSxcbiAgICAgICAgICAgICAgICBhY3Rpb246ICdnZXRMZXZlbExpc3RpbmcnLFxuICAgICAgICAgICAgICAgICdhZG1pbi1ub25jZSc6IGdyYXZDb25maWcuYWRtaW5fbm9uY2VcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgc3VjY2VzczogKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wTG9hZGVyKCk7XG5cbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAnZXJyb3InKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmluZGVyLiRlbWl0dGVyLmVtaXQoJ2NyZWF0ZS1jb2x1bW4nLCBQYXJlbnRzLmNyZWF0ZUVycm9yQ29sdW1uKHJlc3BvbnNlLm1lc3NhZ2UpWzBdKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBzdGFsZSByZXF1ZXN0XG4gICAgICAgICAgICAgICAgaWYgKFVVSUQgIT09IFhIUlVVSUQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhyZXNwb25zZS5kYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc3RhcnRMb2FkZXIoKSB7XG4gICAgICAgIHRoaXMubG9hZGluZ0luZGljYXRvciA9IFBhcmVudHMuY3JlYXRlTG9hZGluZ0NvbHVtbigpO1xuICAgICAgICB0aGlzLmZpbmRlci4kZW1pdHRlci5lbWl0KCdjcmVhdGUtY29sdW1uJywgdGhpcy5sb2FkaW5nSW5kaWNhdG9yWzBdKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5sb2FkaW5nSW5kaWNhdG9yO1xuICAgIH1cblxuICAgIHN0b3BMb2FkZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRpbmdJbmRpY2F0b3IgJiYgdGhpcy5sb2FkaW5nSW5kaWNhdG9yLnJlbW92ZSgpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNvbnN0IGI2NF9lbmNvZGVfdW5pY29kZSA9IChzdHIpID0+IHtcbiAgICByZXR1cm4gYnRvYShlbmNvZGVVUklDb21wb25lbnQoc3RyKS5yZXBsYWNlKC8lKFswLTlBLUZdezJ9KS9nLFxuICAgICAgICBmdW5jdGlvbiB0b1NvbGlkQnl0ZXMobWF0Y2gsIHAxKSB7XG4gICAgICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSgnMHgnICsgcDEpO1xuICAgICAgICB9KSk7XG59O1xuXG5leHBvcnQgY29uc3QgYjY0X2RlY29kZV91bmljb2RlID0gKHN0cikgPT4ge1xuICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQoYXRvYihzdHIpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24oYykge1xuICAgICAgICByZXR1cm4gJyUnICsgKCcwMCcgKyBjLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpKS5zbGljZSgtMik7XG4gICAgfSkuam9pbignJykpO1xufTtcblxuY29uc3QgZ2V0RXh0cmFGb3JtRGF0YSA9IChjb250YWluZXIpID0+IHtcbiAgICBsZXQgZm9ybSA9IGNvbnRhaW5lci5jbG9zZXN0KCdmb3JtJyk7XG4gICAgaWYgKGNvbnRhaW5lci5jbG9zZXN0KCdbZGF0YS1yZW1vZGFsLWlkXScpLmxlbmd0aCkge1xuICAgICAgICBmb3JtID0gJCgnZm9ybSNibHVlcHJpbnRzJyk7XG4gICAgfVxuICAgIGNvbnN0IGRhdGEgPSB7fTtcbiAgICBjb25zdCB1bmlxdWVfaWQgPSBmb3JtLmZpbmQoJ1tuYW1lPVwiX191bmlxdWVfZm9ybV9pZF9fXCJdJyk7XG5cbiAgICBkYXRhWydfX2Zvcm0tbmFtZV9fJ10gPSBmb3JtLmZpbmQoJ1tuYW1lPVwiX19mb3JtLW5hbWVfX1wiXScpLnZhbCgpO1xuICAgIGRhdGFbJ2Zvcm0tbm9uY2UnXSA9IGZvcm0uZmluZCgnW25hbWU9XCJmb3JtLW5vbmNlXCJdJykudmFsKCk7XG5cbiAgICBpZiAodW5pcXVlX2lkLmxlbmd0aCkge1xuICAgICAgICBkYXRhWydfX3VuaXF1ZV9mb3JtX2lkX18nXSA9IHVuaXF1ZV9pZC52YWwoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGF0YTtcbn07XG5cbiQoZG9jdW1lbnQpLm9uKCdjbGljaycsICdbZGF0YS1wYXJlbnRzXScsIChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBjb25zdCB0YXJnZXQgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuICAgIGxldCBmaWVsZCA9IHRhcmdldC5jbG9zZXN0KCcucGFyZW50cy13cmFwcGVyJykuZmluZCgnaW5wdXRbbmFtZV0nKTtcbiAgICBsZXQgZmllbGROYW1lID0gZmllbGQuYXR0cignbmFtZScpO1xuXG4gICAgaWYgKCFmaWVsZC5sZW5ndGgpIHtcbiAgICAgICAgZmllbGROYW1lID0gdGFyZ2V0LmRhdGEoJ3BhcmVudHMnKTtcbiAgICAgICAgZmllbGQgPSAkKGBbbmFtZT1cIiR7dGFyZ2V0LmRhdGEoJ3BhcmVudHMnKX1cIl1gKS5maXJzdCgpO1xuICAgIH1cblxuICAgIGNvbnN0IG1vZGFsID0gJChgW2RhdGEtcmVtb2RhbC1pZD1cIiR7dGFyZ2V0LmRhdGEoJ3JlbW9kYWxUYXJnZXQnKSB8fCAncGFyZW50cyd9XCJdYCk7XG4gICAgY29uc3QgbG9hZGVyID0gbW9kYWwuZmluZCgnLmdyYXYtbG9hZGluZycpO1xuICAgIGNvbnN0IGNvbnRlbnQgPSBtb2RhbC5maW5kKCcucGFyZW50cy1jb250ZW50Jyk7XG5cbiAgICBsb2FkZXIuY3NzKCdkaXNwbGF5JywgJ2Jsb2NrJyk7XG4gICAgY29udGVudC5odG1sKCcnKTtcbiAgICAkLmFqYXgoe1xuICAgICAgICB1cmw6IGAke2dyYXZDb25maWcuY3VycmVudF91cmx9YCxcbiAgICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICAgIGRhdGE6IE9iamVjdC5hc3NpZ24oe30sIGdldEV4dHJhRm9ybURhdGEodGFyZ2V0KSwge1xuICAgICAgICAgICAgcm91dGU6IGI2NF9lbmNvZGVfdW5pY29kZShmaWVsZC52YWwoKSksXG4gICAgICAgICAgICBmaWVsZDogZmllbGQuZGF0YSgnZmllbGROYW1lJyksXG4gICAgICAgICAgICBhY3Rpb246ICdnZXRMZXZlbExpc3RpbmcnLFxuICAgICAgICAgICAgJ2FkbWluLW5vbmNlJzogZ3JhdkNvbmZpZy5hZG1pbl9ub25jZSxcbiAgICAgICAgICAgIGluaXRpYWw6IHRydWVcbiAgICAgICAgfSksXG4gICAgICAgIHN1Y2Nlc3MocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIGxvYWRlci5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpO1xuXG4gICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAnZXJyb3InKSB7XG4gICAgICAgICAgICAgICAgY29udGVudC5odG1sKHJlc3BvbnNlLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIUluc3RhbmNlc1tgJHtmaWVsZE5hbWV9LSR7bW9kYWwuZGF0YSgncmVtb2RhbElkJyl9YF0pIHtcbiAgICAgICAgICAgICAgICBJbnN0YW5jZXNbYCR7ZmllbGROYW1lfS0ke21vZGFsLmRhdGEoJ3JlbW9kYWxJZCcpfWBdID0gbmV3IFBhcmVudHMoY29udGVudCwgZmllbGQsIHJlc3BvbnNlLmRhdGEpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBJbnN0YW5jZXNbYCR7ZmllbGROYW1lfS0ke21vZGFsLmRhdGEoJ3JlbW9kYWxJZCcpfWBdLmZpbmRlci5yZWxvYWQocmVzcG9uc2UuZGF0YSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG1vZGFsLmRhdGEoJ3BhcmVudHMnLCBJbnN0YW5jZXNbYCR7ZmllbGROYW1lfS0ke21vZGFsLmRhdGEoJ3JlbW9kYWxJZCcpfWBdKTtcbiAgICAgICAgICAgIG1vZGFsLmRhdGEoJ3BhcmVudHMtc2VsZWN0ZWRGaWVsZCcsIGZpZWxkKTtcbiAgICAgICAgfVxuICAgIH0pO1xufSk7XG5cbi8vIGFwcGx5IGZpbmRlciBzZWxlY3Rpb24gdG8gZmllbGRcbiQoZG9jdW1lbnQpLm9uKCdjbGljaycsICdbZGF0YS1yZW1vZGFsLWlkXS5wYXJlbnRzLWNvbnRhaW5lciBbZGF0YS1wYXJlbnRzLXNlbGVjdF0nLCAoZXZlbnQpID0+IHtcbiAgICBjb25zdCBtb2RhbCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCkuY2xvc2VzdCgnW2RhdGEtcmVtb2RhbC1pZF0nKTtcbiAgICBjb25zdCBwYXJlbnRzID0gbW9kYWwuZGF0YSgncGFyZW50cycpO1xuICAgIGNvbnN0IHNlbGVjdGVkRmllbGQgPSBtb2RhbC5kYXRhKCdwYXJlbnRzU2VsZWN0ZWRGaWVsZCcpO1xuICAgIGNvbnN0IGZpbmRlciA9IHBhcmVudHMuZmluZGVyO1xuICAgIGNvbnN0IGZpZWxkID0gcGFyZW50cy5maWVsZDtcbiAgICBjb25zdCBwYXJlbnRMYWJlbCA9IHBhcmVudHMucGFyZW50TGFiZWw7XG4gICAgY29uc3QgcGFyZW50TmFtZSA9IHBhcmVudHMucGFyZW50TmFtZTtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSBmaW5kZXIuZmluZExhc3RBY3RpdmUoKS5pdGVtWzBdO1xuICAgIGNvbnN0IHZhbHVlID0gc2VsZWN0aW9uLl9pdGVtW2ZpbmRlci5jb25maWcudmFsdWVLZXldO1xuICAgIGNvbnN0IG5hbWUgPSBzZWxlY3Rpb24uX2l0ZW1bZmluZGVyLmNvbmZpZy5sYWJlbEtleV07XG5cbiAgICBjb25zb2xlLmxvZygnY2xpY2sgW2RhdGEtcGFyZW50cy1zZWxlY3RdJywgc2VsZWN0ZWRGaWVsZCk7XG4gICAgaWYgKHNlbGVjdGVkRmllbGQuY2xvc2VzdCgnLnJlbW9kYWwnKS5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSBmaWVsZC5pbmRleChzZWxlY3RlZEZpZWxkKSAtIDE7XG4gICAgICAgIHNlbGVjdGVkRmllbGQudmFsKHZhbHVlKTtcbiAgICAgICAgJChwYXJlbnRMYWJlbFtpbmRleF0pLnRleHQodmFsdWUpO1xuICAgICAgICAkKHBhcmVudE5hbWVbaW5kZXhdKS50ZXh0KG5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGZpZWxkLnZhbCh2YWx1ZSk7XG4gICAgICAgIHBhcmVudExhYmVsLnRleHQodmFsdWUpO1xuICAgICAgICBwYXJlbnROYW1lLnRleHQobmFtZSk7XG4gICAgICAgIGZpbmRlci5jb25maWcuZGVmYXVsdFBhdGggPSB2YWx1ZTtcblxuICAgIH1cbiAgICBjb25zdCByZW1vZGFsID0gJC5yZW1vZGFsLmxvb2t1cFskKGBbZGF0YS1yZW1vZGFsLWlkPVwiJHttb2RhbC5kYXRhKCdyZW1vZGFsSWQnKX1cIl1gKS5kYXRhKCdyZW1vZGFsJyldO1xuICAgIHJlbW9kYWwuY2xvc2UoKTtcbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/forms/fields/parents.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/forms/fields/permissions.js":
|
|
/*!*****************************************!*\
|
|
!*** ./app/forms/fields/permissions.js ***!
|
|
\*****************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\nvar body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body');\nvar radioSelector = '.permission-container.parent-section input[type=\"radio\"]';\n\nvar handleParent = function handleParent(event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var value = target.val();\n var container = target.closest('.parent-section');\n var fieldset = container.next('fieldset');\n var radios = fieldset.find(\"input[type=\\\"radio\\\"][value=\\\"\".concat(value, \"\\\"]\"));\n\n if (container.data('isLocked') !== false) {\n container.data('isUpdating', true);\n radios.each(function (index, radio) {\n var ID = radio.id;\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(radio).siblings(\"[for=\\\"\".concat(ID, \"\\\"]\")).trigger('click');\n });\n container.data('isUpdating', false);\n }\n};\n\nvar boundHandleParent = handleParent.bind(handleParent);\nbody.on('click', '.permission-container.parent-section label', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var container = target.closest('.parent-section');\n container.data('isLocked', true);\n});\nbody.on('input', radioSelector, boundHandleParent);\nbody.on('input', '.permissions-container input[type=\"radio\"][data-parent-id]', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var parent = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[for=\\\"\".concat(target.data('parentId'), \"\\\"]\"));\n var container = target.closest('fieldset').prev('.permission-container.parent-section');\n\n if (container.data('isUpdating') === true) {\n return true;\n }\n\n body.off('input', radioSelector, boundHandleParent);\n container.data('isLocked', false);\n parent.trigger('click');\n body.on('input', radioSelector, boundHandleParent);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL2ZpZWxkcy9wZXJtaXNzaW9ucy5qcz9jODVmIl0sIm5hbWVzIjpbImJvZHkiLCIkIiwicmFkaW9TZWxlY3RvciIsImhhbmRsZVBhcmVudCIsImV2ZW50IiwidGFyZ2V0IiwiY3VycmVudFRhcmdldCIsInZhbHVlIiwidmFsIiwiY29udGFpbmVyIiwiY2xvc2VzdCIsImZpZWxkc2V0IiwibmV4dCIsInJhZGlvcyIsImZpbmQiLCJkYXRhIiwiZWFjaCIsImluZGV4IiwicmFkaW8iLCJJRCIsImlkIiwic2libGluZ3MiLCJ0cmlnZ2VyIiwiYm91bmRIYW5kbGVQYXJlbnQiLCJiaW5kIiwib24iLCJwYXJlbnQiLCJwcmV2Iiwib2ZmIl0sIm1hcHBpbmdzIjoiOzs7QUFBQTtBQUVBLElBQU1BLElBQUksR0FBR0MsNkNBQUMsQ0FBQyxNQUFELENBQWQ7QUFDQSxJQUFNQyxhQUFhLEdBQUcsMERBQXRCOztBQUVBLElBQU1DLFlBQVksR0FBRyxTQUFmQSxZQUFlLENBQUNDLEtBQUQsRUFBVztBQUM1QixNQUFNQyxNQUFNLEdBQUdKLDZDQUFDLENBQUNHLEtBQUssQ0FBQ0UsYUFBUCxDQUFoQjtBQUNBLE1BQU1DLEtBQUssR0FBR0YsTUFBTSxDQUFDRyxHQUFQLEVBQWQ7QUFDQSxNQUFNQyxTQUFTLEdBQUdKLE1BQU0sQ0FBQ0ssT0FBUCxDQUFlLGlCQUFmLENBQWxCO0FBQ0EsTUFBTUMsUUFBUSxHQUFHRixTQUFTLENBQUNHLElBQVYsQ0FBZSxVQUFmLENBQWpCO0FBQ0EsTUFBTUMsTUFBTSxHQUFHRixRQUFRLENBQUNHLElBQVQseUNBQTRDUCxLQUE1QyxTQUFmOztBQUVBLE1BQUlFLFNBQVMsQ0FBQ00sSUFBVixDQUFlLFVBQWYsTUFBK0IsS0FBbkMsRUFBMEM7QUFDdENOLGFBQVMsQ0FBQ00sSUFBVixDQUFlLFlBQWYsRUFBNkIsSUFBN0I7QUFDQUYsVUFBTSxDQUFDRyxJQUFQLENBQVksVUFBQ0MsS0FBRCxFQUFRQyxLQUFSLEVBQWtCO0FBQzFCLFVBQU1DLEVBQUUsR0FBR0QsS0FBSyxDQUFDRSxFQUFqQjtBQUNBbkIsbURBQUMsQ0FBQ2lCLEtBQUQsQ0FBRCxDQUFTRyxRQUFULGtCQUEyQkYsRUFBM0IsVUFBbUNHLE9BQW5DLENBQTJDLE9BQTNDO0FBQ0gsS0FIRDtBQUlBYixhQUFTLENBQUNNLElBQVYsQ0FBZSxZQUFmLEVBQTZCLEtBQTdCO0FBQ0g7QUFDSixDQWZEOztBQWlCQSxJQUFNUSxpQkFBaUIsR0FBR3BCLFlBQVksQ0FBQ3FCLElBQWIsQ0FBa0JyQixZQUFsQixDQUExQjtBQUVBSCxJQUFJLENBQUN5QixFQUFMLENBQVEsT0FBUixFQUFpQiw0Q0FBakIsRUFBK0QsVUFBQ3JCLEtBQUQsRUFBVztBQUN0RSxNQUFNQyxNQUFNLEdBQUdKLDZDQUFDLENBQUNHLEtBQUssQ0FBQ0UsYUFBUCxDQUFoQjtBQUNBLE1BQU1HLFNBQVMsR0FBR0osTUFBTSxDQUFDSyxPQUFQLENBQWUsaUJBQWYsQ0FBbEI7QUFDQUQsV0FBUyxDQUFDTSxJQUFWLENBQWUsVUFBZixFQUEyQixJQUEzQjtBQUNILENBSkQ7QUFNQWYsSUFBSSxDQUFDeUIsRUFBTCxDQUFRLE9BQVIsRUFBaUJ2QixhQUFqQixFQUFnQ3FCLGlCQUFoQztBQUVBdkIsSUFBSSxDQUFDeUIsRUFBTCxDQUFRLE9BQVIsRUFBaUIsNERBQWpCLEVBQStFLFVBQUNyQixLQUFELEVBQVc7QUFDdEYsTUFBTUMsTUFBTSxHQUFHSiw2Q0FBQyxDQUFDRyxLQUFLLENBQUNFLGFBQVAsQ0FBaEI7QUFDQSxNQUFNb0IsTUFBTSxHQUFHekIsNkNBQUMsa0JBQVVJLE1BQU0sQ0FBQ1UsSUFBUCxDQUFZLFVBQVosQ0FBVixTQUFoQjtBQUNBLE1BQU1OLFNBQVMsR0FBR0osTUFBTSxDQUFDSyxPQUFQLENBQWUsVUFBZixFQUEyQmlCLElBQTNCLENBQWdDLHNDQUFoQyxDQUFsQjs7QUFFQSxNQUFJbEIsU0FBUyxDQUFDTSxJQUFWLENBQWUsWUFBZixNQUFpQyxJQUFyQyxFQUEyQztBQUN2QyxXQUFPLElBQVA7QUFDSDs7QUFFRGYsTUFBSSxDQUFDNEIsR0FBTCxDQUFTLE9BQVQsRUFBa0IxQixhQUFsQixFQUFpQ3FCLGlCQUFqQztBQUNBZCxXQUFTLENBQUNNLElBQVYsQ0FBZSxVQUFmLEVBQTJCLEtBQTNCO0FBQ0FXLFFBQU0sQ0FBQ0osT0FBUCxDQUFlLE9BQWY7QUFDQXRCLE1BQUksQ0FBQ3lCLEVBQUwsQ0FBUSxPQUFSLEVBQWlCdkIsYUFBakIsRUFBZ0NxQixpQkFBaEM7QUFDSCxDQWJEIiwiZmlsZSI6Ii4vYXBwL2Zvcm1zL2ZpZWxkcy9wZXJtaXNzaW9ucy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5cbmNvbnN0IGJvZHkgPSAkKCdib2R5Jyk7XG5jb25zdCByYWRpb1NlbGVjdG9yID0gJy5wZXJtaXNzaW9uLWNvbnRhaW5lci5wYXJlbnQtc2VjdGlvbiBpbnB1dFt0eXBlPVwicmFkaW9cIl0nO1xuXG5jb25zdCBoYW5kbGVQYXJlbnQgPSAoZXZlbnQpID0+IHtcbiAgICBjb25zdCB0YXJnZXQgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuICAgIGNvbnN0IHZhbHVlID0gdGFyZ2V0LnZhbCgpO1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IHRhcmdldC5jbG9zZXN0KCcucGFyZW50LXNlY3Rpb24nKTtcbiAgICBjb25zdCBmaWVsZHNldCA9IGNvbnRhaW5lci5uZXh0KCdmaWVsZHNldCcpO1xuICAgIGNvbnN0IHJhZGlvcyA9IGZpZWxkc2V0LmZpbmQoYGlucHV0W3R5cGU9XCJyYWRpb1wiXVt2YWx1ZT1cIiR7dmFsdWV9XCJdYCk7XG5cbiAgICBpZiAoY29udGFpbmVyLmRhdGEoJ2lzTG9ja2VkJykgIT09IGZhbHNlKSB7XG4gICAgICAgIGNvbnRhaW5lci5kYXRhKCdpc1VwZGF0aW5nJywgdHJ1ZSk7XG4gICAgICAgIHJhZGlvcy5lYWNoKChpbmRleCwgcmFkaW8pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IElEID0gcmFkaW8uaWQ7XG4gICAgICAgICAgICAkKHJhZGlvKS5zaWJsaW5ncyhgW2Zvcj1cIiR7SUR9XCJdYCkudHJpZ2dlcignY2xpY2snKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnRhaW5lci5kYXRhKCdpc1VwZGF0aW5nJywgZmFsc2UpO1xuICAgIH1cbn07XG5cbmNvbnN0IGJvdW5kSGFuZGxlUGFyZW50ID0gaGFuZGxlUGFyZW50LmJpbmQoaGFuZGxlUGFyZW50KTtcblxuYm9keS5vbignY2xpY2snLCAnLnBlcm1pc3Npb24tY29udGFpbmVyLnBhcmVudC1zZWN0aW9uIGxhYmVsJywgKGV2ZW50KSA9PiB7XG4gICAgY29uc3QgdGFyZ2V0ID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgICBjb25zdCBjb250YWluZXIgPSB0YXJnZXQuY2xvc2VzdCgnLnBhcmVudC1zZWN0aW9uJyk7XG4gICAgY29udGFpbmVyLmRhdGEoJ2lzTG9ja2VkJywgdHJ1ZSk7XG59KTtcblxuYm9keS5vbignaW5wdXQnLCByYWRpb1NlbGVjdG9yLCBib3VuZEhhbmRsZVBhcmVudCk7XG5cbmJvZHkub24oJ2lucHV0JywgJy5wZXJtaXNzaW9ucy1jb250YWluZXIgaW5wdXRbdHlwZT1cInJhZGlvXCJdW2RhdGEtcGFyZW50LWlkXScsIChldmVudCkgPT4ge1xuICAgIGNvbnN0IHRhcmdldCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgY29uc3QgcGFyZW50ID0gJChgW2Zvcj1cIiR7dGFyZ2V0LmRhdGEoJ3BhcmVudElkJyl9XCJdYCk7XG4gICAgY29uc3QgY29udGFpbmVyID0gdGFyZ2V0LmNsb3Nlc3QoJ2ZpZWxkc2V0JykucHJldignLnBlcm1pc3Npb24tY29udGFpbmVyLnBhcmVudC1zZWN0aW9uJyk7XG5cbiAgICBpZiAoY29udGFpbmVyLmRhdGEoJ2lzVXBkYXRpbmcnKSA9PT0gdHJ1ZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBib2R5Lm9mZignaW5wdXQnLCByYWRpb1NlbGVjdG9yLCBib3VuZEhhbmRsZVBhcmVudCk7XG4gICAgY29udGFpbmVyLmRhdGEoJ2lzTG9ja2VkJywgZmFsc2UpO1xuICAgIHBhcmVudC50cmlnZ2VyKCdjbGljaycpO1xuICAgIGJvZHkub24oJ2lucHV0JywgcmFkaW9TZWxlY3RvciwgYm91bmRIYW5kbGVQYXJlbnQpO1xufSk7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/forms/fields/permissions.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/forms/fields/range.js":
|
|
/*!***********************************!*\
|
|
!*** ./app/forms/fields/range.js ***!
|
|
\***********************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('input', '[type=\"range\"].rangefield, [type=\"number\"].rangefield', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var type = target.attr('type').toLowerCase();\n var sibling = type === 'range' ? 'number' : 'range';\n var feedback = target.siblings(\"[type=\\\"\".concat(sibling, \"\\\"].rangefield\"));\n feedback.val(target.val());\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL2ZpZWxkcy9yYW5nZS5qcz9mOWQ3Il0sIm5hbWVzIjpbIiQiLCJkb2N1bWVudCIsIm9uIiwiZXZlbnQiLCJ0YXJnZXQiLCJjdXJyZW50VGFyZ2V0IiwidHlwZSIsImF0dHIiLCJ0b0xvd2VyQ2FzZSIsInNpYmxpbmciLCJmZWVkYmFjayIsInNpYmxpbmdzIiwidmFsIl0sIm1hcHBpbmdzIjoiOzs7QUFBQTtBQUVBQSw2Q0FBQyxDQUFDQyxRQUFELENBQUQsQ0FBWUMsRUFBWixDQUFlLE9BQWYsRUFBd0IsdURBQXhCLEVBQWlGLFVBQUNDLEtBQUQsRUFBVztBQUN4RixNQUFNQyxNQUFNLEdBQUdKLDZDQUFDLENBQUNHLEtBQUssQ0FBQ0UsYUFBUCxDQUFoQjtBQUNBLE1BQU1DLElBQUksR0FBR0YsTUFBTSxDQUFDRyxJQUFQLENBQVksTUFBWixFQUFvQkMsV0FBcEIsRUFBYjtBQUNBLE1BQU1DLE9BQU8sR0FBR0gsSUFBSSxLQUFLLE9BQVQsR0FBbUIsUUFBbkIsR0FBOEIsT0FBOUM7QUFDQSxNQUFNSSxRQUFRLEdBQUdOLE1BQU0sQ0FBQ08sUUFBUCxtQkFBMEJGLE9BQTFCLG9CQUFqQjtBQUVBQyxVQUFRLENBQUNFLEdBQVQsQ0FBYVIsTUFBTSxDQUFDUSxHQUFQLEVBQWI7QUFDSCxDQVBEIiwiZmlsZSI6Ii4vYXBwL2Zvcm1zL2ZpZWxkcy9yYW5nZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5cbiQoZG9jdW1lbnQpLm9uKCdpbnB1dCcsICdbdHlwZT1cInJhbmdlXCJdLnJhbmdlZmllbGQsIFt0eXBlPVwibnVtYmVyXCJdLnJhbmdlZmllbGQnLCAoZXZlbnQpID0+IHtcbiAgICBjb25zdCB0YXJnZXQgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuICAgIGNvbnN0IHR5cGUgPSB0YXJnZXQuYXR0cigndHlwZScpLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3Qgc2libGluZyA9IHR5cGUgPT09ICdyYW5nZScgPyAnbnVtYmVyJyA6ICdyYW5nZSc7XG4gICAgY29uc3QgZmVlZGJhY2sgPSB0YXJnZXQuc2libGluZ3MoYFt0eXBlPVwiJHtzaWJsaW5nfVwiXS5yYW5nZWZpZWxkYCk7XG5cbiAgICBmZWVkYmFjay52YWwodGFyZ2V0LnZhbCgpKTtcbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/forms/fields/range.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/forms/fields/selectize.js":
|
|
/*!***************************************!*\
|
|
!*** ./app/forms/fields/selectize.js ***!
|
|
\***************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ SelectizeField),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var selectize__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! selectize */ \"./node_modules/selectize/dist/js/selectize.js\");\n/* harmony import */ var selectize__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(selectize__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_selectize_required_fix__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/selectize-required-fix */ \"./app/utils/selectize-required-fix.js\");\n/* harmony import */ var _utils_selectize_option_click__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils/selectize-option-click */ \"./app/utils/selectize-option-click.js\");\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); return Constructor; }\n\n\n\n\n\nvar PagesRoute = {\n option: function option(item, escape) {\n var label = escape(item.text).split(' ');\n var arrows = label.shift();\n var slug = label.shift();\n return \"<div class=\\\"selectize-route-option\\\">\\n <span class=\\\"text-grey\\\">\".concat(arrows, \"</span>\\n <span>\\n <span class=\\\"text-update\\\">\").concat(slug.replace('(', '/').replace(')', ''), \"</span>\\n <span>\").concat(label.join(' '), \"</span>\\n </span>\\n </div>\");\n }\n};\n\nvar SelectizeField = /*#__PURE__*/function () {\n function SelectizeField() {\n var _this = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, SelectizeField);\n\n this.options = Object.assign({}, options);\n this.elements = [];\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-grav-selectize]').each(function (index, element) {\n return _this.add(element);\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('mutation._grav', this._onAddedNodes.bind(this));\n }\n\n _createClass(SelectizeField, [{\n key: \"add\",\n value: function add(element) {\n element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n\n if (element.closest('template').length) {\n return false;\n }\n\n var tag = element.prop('tagName').toLowerCase();\n var isInput = tag === 'input' || tag === 'select';\n var data = (isInput ? element.closest('[data-grav-selectize]') : element).data('grav-selectize') || {};\n var field = isInput ? element : element.find('input, select');\n\n if (field.attr('name') === 'data[route]') {\n data = jquery__WEBPACK_IMPORTED_MODULE_0___default().extend({}, data, {\n render: PagesRoute\n });\n }\n\n if (!field.length || field.get(0).selectize) {\n return;\n }\n\n var plugins = jquery__WEBPACK_IMPORTED_MODULE_0___default().merge(data.plugins ? data.plugins : [], ['required-fix']);\n field.selectize(jquery__WEBPACK_IMPORTED_MODULE_0___default().extend({}, data, {\n plugins: plugins\n }));\n this.elements.push(field.data('selectize'));\n }\n }, {\n key: \"_onAddedNodes\",\n value: function _onAddedNodes(event, target\n /* , record, instance */\n ) {\n var _this2 = this;\n\n var fields = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target).find('select.fancy, input.fancy, [data-grav-selectize]').filter(function (index, element) {\n return !jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).closest('template').length;\n });\n\n if (!fields.length) {\n return;\n }\n\n fields.each(function (index, field) {\n return _this2.add(field);\n });\n }\n }]);\n\n return SelectizeField;\n}();\n\n\nvar Instance = new SelectizeField();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL2ZpZWxkcy9zZWxlY3RpemUuanM/NzM1MyJdLCJuYW1lcyI6WyJQYWdlc1JvdXRlIiwib3B0aW9uIiwiaXRlbSIsImVzY2FwZSIsImxhYmVsIiwidGV4dCIsInNwbGl0IiwiYXJyb3dzIiwic2hpZnQiLCJzbHVnIiwicmVwbGFjZSIsImpvaW4iLCJTZWxlY3RpemVGaWVsZCIsIm9wdGlvbnMiLCJPYmplY3QiLCJhc3NpZ24iLCJlbGVtZW50cyIsIiQiLCJlYWNoIiwiaW5kZXgiLCJlbGVtZW50IiwiYWRkIiwib24iLCJfb25BZGRlZE5vZGVzIiwiYmluZCIsImNsb3Nlc3QiLCJsZW5ndGgiLCJ0YWciLCJwcm9wIiwidG9Mb3dlckNhc2UiLCJpc0lucHV0IiwiZGF0YSIsImZpZWxkIiwiZmluZCIsImF0dHIiLCJyZW5kZXIiLCJnZXQiLCJzZWxlY3RpemUiLCJwbHVnaW5zIiwicHVzaCIsImV2ZW50IiwidGFyZ2V0IiwiZmllbGRzIiwiZmlsdGVyIiwiSW5zdGFuY2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFFQSxJQUFNQSxVQUFVLEdBQUc7QUFDZkMsUUFBTSxFQUFFLGdCQUFTQyxJQUFULEVBQWVDLE1BQWYsRUFBdUI7QUFDM0IsUUFBTUMsS0FBSyxHQUFHRCxNQUFNLENBQUNELElBQUksQ0FBQ0csSUFBTixDQUFOLENBQWtCQyxLQUFsQixDQUF3QixHQUF4QixDQUFkO0FBQ0EsUUFBTUMsTUFBTSxHQUFHSCxLQUFLLENBQUNJLEtBQU4sRUFBZjtBQUNBLFFBQU1DLElBQUksR0FBR0wsS0FBSyxDQUFDSSxLQUFOLEVBQWI7QUFFQSxtR0FDOEJELE1BRDlCLHNGQUdvQ0UsSUFBSSxDQUFDQyxPQUFMLENBQWEsR0FBYixFQUFrQixHQUFsQixFQUF1QkEsT0FBdkIsQ0FBK0IsR0FBL0IsRUFBb0MsRUFBcEMsQ0FIcEMsNENBSWdCTixLQUFLLENBQUNPLElB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QUFMLENBQVNXLEtBQVQsQ0FBbEI7QUFBQSxPQUFaO0FBQ0g7Ozs7Ozs7QUFHRSxJQUFJWSxRQUFRLEdBQUcsSUFBSWhDLGNBQUosRUFBZiIsImZpbGUiOiIuL2FwcC9mb3Jtcy9maWVsZHMvc2VsZWN0aXplLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCAnc2VsZWN0aXplJztcbmltcG9ydCAnLi4vLi4vdXRpbHMvc2VsZWN0aXplLXJlcXVpcmVkLWZpeCc7XG5pbXBvcnQgJy4uLy4uL3V0aWxzL3NlbGVjdGl6ZS1vcHRpb24tY2xpY2snO1xuXG5jb25zdCBQYWdlc1JvdXRlID0ge1xuICAgIG9wdGlvbjogZnVuY3Rpb24oaXRlbSwgZXNjYXBlKSB7XG4gICAgICAgIGNvbnN0IGxhYmVsID0gZXNjYXBlKGl0ZW0udGV4dCkuc3BsaXQoJyAnKTtcbiAgICAgICAgY29uc3QgYXJyb3dzID0gbGFiZWwuc2hpZnQoKTtcbiAgICAgICAgY29uc3Qgc2x1ZyA9IGxhYmVsLnNoaWZ0KCk7XG5cbiAgICAgICAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwic2VsZWN0aXplLXJvdXRlLW9wdGlvblwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWdyZXlcIj4ke2Fycm93c308L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdXBkYXRlXCI+JHtzbHVnLnJlcGxhY2UoJygnLCAnLycpLnJlcGxhY2UoJyknLCAnJyl9PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuPiR7bGFiZWwuam9pbignICcpfTwvc3Bhbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+YDtcbiAgICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTZWxlY3RpemVGaWVsZCB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMpO1xuICAgICAgICB0aGlzLmVsZW1lbnRzID0gW107XG5cbiAgICAgICAgJCgnW2RhdGEtZ3Jhdi1zZWxlY3RpemVdJykuZWFjaCgoaW5kZXgsIGVsZW1lbnQpID0+IHRoaXMuYWRkKGVsZW1lbnQpKTtcbiAgICAgICAgJCgnYm9keScpLm9uKCdtdXRhdGlvbi5fZ3JhdicsIHRoaXMuX29uQWRkZWROb2Rlcy5iaW5kKHRoaXMpKTtcbiAgICB9XG5cbiAgICBhZGQoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50ID0gJChlbGVtZW50KTtcblxuICAgICAgICBpZiAoZWxlbWVudC5jbG9zZXN0KCd0ZW1wbGF0ZScpLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHRhZyA9IGVsZW1lbnQucHJvcCgndGFnTmFtZScpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGxldCBpc0lucHV0ID0gdGFnID09PSAnaW5wdXQnIHx8IHRhZyA9PT0gJ3NlbGVjdCc7XG5cbiAgICAgICAgbGV0IGRhdGEgPSAoaXNJbnB1dCA/IGVsZW1lbnQuY2xvc2VzdCgnW2RhdGEtZ3Jhdi1zZWxlY3RpemVdJykgOiBlbGVtZW50KS5kYXRhKCdncmF2LXNlbGVjdGl6ZScpIHx8IHt9O1xuICAgICAgICBsZXQgZmllbGQgPSAoaXNJbnB1dCA/IGVsZW1lbnQgOiBlbGVtZW50LmZpbmQoJ2lucHV0LCBzZWxlY3QnKSk7XG5cbiAgICAgICAgaWYgKGZpZWxkLmF0dHIoJ25hbWUnKSA9PT0gJ2RhdGFbcm91dGVdJykge1xuICAgICAgICAgICAgZGF0YSA9ICQuZXh0ZW5kKHt9LCBkYXRhLCB7IHJlbmRlcjogUGFnZXNSb3V0ZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZmllbGQubGVuZ3RoIHx8IGZpZWxkLmdldCgwKS5zZWxlY3RpemUpIHsgcmV0dXJuOyB9XG4gICAgICAgIGNvbnN0IHBsdWdpbnMgPSAkLm1lcmdlKGRhdGEucGx1Z2lucyA/IGRhdGEucGx1Z2lucyA6IFtdLCBbJ3JlcXVpcmVkLWZpeCddKTtcbiAgICAgICAgZmllbGQuc2VsZWN0aXplKCQuZXh0ZW5kKHt9LCBkYXRhLCB7IHBsdWdpbnMgfSkpO1xuXG4gICAgICAgIHRoaXMuZWxlbWVudHMucHVzaChmaWVsZC5kYXRhKCdzZWxlY3RpemUnKSk7XG4gICAgfVxuXG4gICAgX29uQWRkZWROb2RlcyhldmVudCwgdGFyZ2V0LyogLCByZWNvcmQsIGluc3RhbmNlICovKSB7XG4gICAgICAgIGxldCBmaWVsZHMgPSAkKHRhcmdldCkuZmluZCgnc2VsZWN0LmZhbmN5LCBpbnB1dC5mYW5jeSwgW2RhdGEtZ3Jhdi1zZWxlY3RpemVdJykuZmlsdGVyKChpbmRleCwgZWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuICEkKGVsZW1lbnQpLmNsb3Nlc3QoJ3RlbXBsYXRlJykubGVuZ3RoO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIWZpZWxkcy5sZW5ndGgpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgZmllbGRzLmVhY2goKGluZGV4LCBmaWVsZCkgPT4gdGhpcy5hZGQoZmllbGQpKTtcbiAgICB9XG59XG5cbmV4cG9ydCBsZXQgSW5zdGFuY2UgPSBuZXcgU2VsZWN0aXplRmllbGQoKTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/forms/fields/selectize.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/forms/fields/selectunique.js":
|
|
/*!******************************************!*\
|
|
!*** ./app/forms/fields/selectunique.js ***!
|
|
\******************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ SelectUniqueField),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var mout_object_forIn__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mout/object/forIn */ \"./node_modules/mout/object/forIn.js\");\n/* harmony import */ var mout_object_forIn__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(mout_object_forIn__WEBPACK_IMPORTED_MODULE_1__);\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); return Constructor; }\n\n\n // import { config } from 'grav-config';\n\nvar Data = {};\n\nvar SelectUniqueField = /*#__PURE__*/function () {\n function SelectUniqueField(options) {\n var _this = this;\n\n _classCallCheck(this, SelectUniqueField);\n\n var body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body');\n this.items = jquery__WEBPACK_IMPORTED_MODULE_0___default()();\n this.options = Object.assign({}, this.defaults, options);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-select-observe]').each(function (index, element) {\n return _this.addSelect(element);\n }).last().trigger('change', {\n load: true\n });\n body.on('mutation._grav', this._onAddedNodes.bind(this));\n body.on('mutation_removed._grav', this._onRemovedNodes.bind(this));\n }\n\n _createClass(SelectUniqueField, [{\n key: \"_onAddedNodes\",\n value: function _onAddedNodes(event, target, record, instance) {\n var _this2 = this;\n\n var fields = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target).find('[data-select-observe]');\n\n if (!fields.length) {\n return;\n }\n\n fields.each(function (index, field) {\n field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(field);\n\n if (!~_this2.items.index(field)) {\n _this2.addSelect(field);\n }\n });\n }\n }, {\n key: \"_onRemovedNodes\",\n value: function _onRemovedNodes(event, data\n /* , instance */\n ) {\n var _this3 = this;\n\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(data.target);\n var holder = target.data('collectionHolder');\n\n if (!holder) {\n return false;\n }\n\n var node = jquery__WEBPACK_IMPORTED_MODULE_0___default()(data.mutation.removedNodes);\n var value = node.find('[data-select-observe]').val();\n\n if (value) {\n Data[holder].state[value] = value;\n }\n\n target.find('[data-select-observe]').each(function (index, field) {\n field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(field);\n\n if (field.val() !== value) {\n _this3.updateOptions(field);\n }\n });\n }\n }, {\n key: \"addSelect\",\n value: function addSelect(element) {\n var _this4 = this;\n\n this.items = this.items.add(element);\n element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n var value = element.attr('value');\n var holder = element.closest('[data-collection-holder]').data('collectionHolder');\n var options = element.closest('[data-select-unique]').data('selectUnique');\n\n if (!Data[holder]) {\n var data = {};\n\n if (Array.isArray(options)) {\n options.slice(0).map(function (item) {\n data[item] = item;\n });\n } else {\n data = Object.assign({}, options);\n }\n\n Data[holder] = {\n original: null,\n state: null\n };\n Data[holder].original = Object.assign({}, data);\n Data[holder].state = Object.assign({}, data);\n }\n\n this.updateOptions(element);\n element.data('originalValue', value);\n element.on('change', function (event, extras) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n\n if (target.data('dummyChange')) {\n target.data('dummyChange', false);\n return false;\n }\n\n _this4.refreshOptions(target, extras && extras.load ? null : element.data('originalValue'));\n\n element.data('originalValue', target.val());\n });\n }\n }, {\n key: \"updateOptions\",\n value: function updateOptions(element) {\n element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n var value = element.attr('value');\n var holder = element.closest('[data-collection-holder]').data('collectionHolder');\n mout_object_forIn__WEBPACK_IMPORTED_MODULE_1___default()(Data[holder].state, function (v, k) {\n var selected = k === value ? 'selected=\"selected\"' : '';\n\n if (element.get(0).selectize) {\n var selectize = element.data('selectize');\n selectize.removeOption(k);\n selectize.addOption({\n value: k,\n text: v\n });\n } else {\n element.append(\"<option value=\\\"\".concat(k, \"\\\" \").concat(selected, \">\").concat(v, \"</option>\"));\n }\n\n if (selected) {\n if (element.get(0).selectize) {\n var _selectize = element.data('selectize');\n\n _selectize.setValue(k);\n }\n\n delete Data[holder].state[value];\n }\n });\n }\n }, {\n key: \"refreshOptions\",\n value: function refreshOptions(element, originalValue) {\n var value = element.val();\n var holder = element.closest('[data-collection-holder]').data('collectionHolder');\n delete Data[holder].state[value];\n\n if (originalValue && Data[holder].original[originalValue]) {\n Data[holder].state[originalValue] = Data[holder].original[originalValue];\n }\n\n this.items.each(function (index, select) {\n select = jquery__WEBPACK_IMPORTED_MODULE_0___default()(select);\n\n if (select[0] === element[0]) {\n return;\n }\n\n var selectedValue = select.val();\n select.data('dummyChange', true);\n\n if (select.get(0).selectize) {\n var selectize = select.data('selectize');\n\n if (selectize) {\n selectize.clearOptions();\n\n if (selectedValue) {\n selectize.addOption({\n value: selectedValue,\n text: Data[holder].original[selectedValue] || selectedValue\n });\n }\n\n mout_object_forIn__WEBPACK_IMPORTED_MODULE_1___default()(Data[holder].state, function (v, k) {\n selectize.addOption({\n value: k,\n text: v\n });\n });\n selectize.setValue(selectedValue, true);\n }\n } else {\n select.empty();\n mout_object_forIn__WEBPACK_IMPORTED_MODULE_1___default()(Data[holder].state, function (v, k) {\n var selected = k === selectedValue ? 'selected=\"selected\"' : '';\n select.append(\"<option value=\\\"\".concat(k, \"\\\" \").concat(selected, \">\").concat(v, \"</option>\"));\n });\n }\n\n select.data('dummyChange', false);\n });\n }\n }]);\n\n return SelectUniqueField;\n}();\n\n\nvar Instance = new SelectUniqueField();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL2ZpZWxkcy9zZWxlY3R1bmlxdWUuanM/MjA0OSJdLCJuYW1lcyI6WyJEYXRhIiwiU2VsZWN0VW5pcXVlRmllbGQiLCJvcHRpb25zIiwiYm9keSIsIiQiLCJpdGVtcyIsIk9iamVjdCIsImFzc2lnbiIsImRlZmF1bHRzIiwiZWFjaCIsImluZGV4IiwiZWxlbWVudCIsImFkZFNlbGVjdCIsImxhc3QiLCJ0cmlnZ2VyIiwibG9hZCIsIm9uIiwiX29uQWRkZWROb2RlcyIsImJpbmQiLCJfb25SZW1vdmVkTm9kZXMiLCJldmVudCIsInRhcmdldCIsInJlY29yZCIsImluc3RhbmNlIiwiZmllbGRzIiwiZmluZCIsImxlbmd0aCIsImZpZWxkIiwiZGF0YSIsImhvbGRlciIsIm5vZGUiLCJtdXRhdGlvbiIsInJlbW92ZWROb2RlcyIsInZhbHVlIiwidmFsIiwic3RhdGUiLCJ1cGRhdGVPcHRpb25zIiwiYWRkIiwiYXR0ciIsImNsb3Nlc3QiLCJBcnJheSIsImlzQXJyYXkiLCJzbGljZSIsIm1hcCIsIml0ZW0iLCJvcmlnaW5hbCIsImV4dHJhcyIsImN1cnJlbnRUYXJnZXQiLCJyZWZyZXNoT3B0aW9ucyIsImZvckluIiwidiIsImsiLCJzZWxlY3RlZCIsImdldCIsInNlbGVjdGl6ZSIsInJlbW92ZU9wdGlvbiIsImFkZE9wdGlvbiIsInRleHQiLCJhcHBlbmQiLCJzZXRWYWx1ZSIsIm9yaWdpbmFsVmFsdWUiLCJzZWxlY3QiLCJzZWxlY3RlZFZhbHVlIiwiY2xlYXJPcHRpb25zIiwiZW1wdHkiLCJJbnN0YW5jZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Q0FFQTs7QUFFQSxJQUFNQSxJQUFJLEdBQUcsRUFBYjs7SUFDcUJDLGlCO0FBRWpCLDZCQUFZQyxPQUFaLEVBQXFCO0FBQUE7O0FBQUE7O0FBQ2pCLFFBQU1DLElBQUksR0FBR0MsNkNBQUMsQ0FBQyxNQUFELENBQWQ7QUFDQSxTQUFLQyxLQUFM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RUFBVTtBQUNoQyxnQkFBTUMsUUFBUSxHQUFHRCxDQUFDLEtBQUtXLGFBQU4sR0FBc0IscUJBQXRCLEdBQThDLEVBQS9EO0FBQ0FELGtCQUFNLENBQUNILE1BQVAsMkJBQWdDUCxDQUFoQyxnQkFBc0NDLFFBQXRDLGNBQWtERixDQUFsRDtBQUNILFdBSEksQ0FBTDtBQUlIOztBQUVEVyxjQUFNLENBQUNqQyxJQUFQLENBQVksYUFBWixFQUEyQixLQUEzQjtBQUNILE9BbkNEO0FBb0NIOzs7Ozs7O0FBR0UsSUFBSXFDLFFBQVEsR0FBRyxJQUFJaEUsaUJBQUosRUFBZiIsImZpbGUiOiIuL2FwcC9mb3Jtcy9maWVsZHMvc2VsZWN0dW5pcXVlLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCBmb3JJbiBmcm9tICdtb3V0L29iamVjdC9mb3JJbic7XG4vLyBpbXBvcnQgeyBjb25maWcgfSBmcm9tICdncmF2LWNvbmZpZyc7XG5cbmNvbnN0IERhdGEgPSB7fTtcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNlbGVjdFVuaXF1ZUZpZWxkIHtcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgYm9keSA9ICQoJ2JvZHknKTtcbiAgICAgICAgdGhpcy5pdGVtcyA9ICQoKTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5kZWZhdWx0cywgb3B0aW9ucyk7XG5cbiAgICAgICAgJCgnW2RhdGEtc2VsZWN0LW9ic2VydmVdJykuZWFjaCgoaW5kZXgsIGVsZW1lbnQpID0+IHRoaXMuYWRkU2VsZWN0KGVsZW1lbnQpKS5sYXN0KCkudHJpZ2dlcignY2hhbmdlJywgeyBsb2FkOiB0cnVlIH0pO1xuICAgICAgICBib2R5Lm9uKCdtdXRhdGlvbi5fZ3JhdicsIHRoaXMuX29uQWRkZWROb2Rlcy5iaW5kKHRoaXMpKTtcbiAgICAgICAgYm9keS5vbignbXV0YXRpb25fcmVtb3ZlZC5fZ3JhdicsIHRoaXMuX29uUmVtb3ZlZE5vZGVzLmJpbmQodGhpcykpO1xuICAgIH1cblxuICAgIF9vbkFkZGVkTm9kZXMoZXZlbnQsIHRhcmdldCwgcmVjb3JkLCBpbnN0YW5jZSkge1xuICAgICAgICBsZXQgZmllbGRzID0gJCh0YXJnZXQpLmZpbmQoJ1tkYXRhLXNlbGVjdC1vYnNlcnZlXScpO1xuICAgICAgICBpZiAoIWZpZWxkcy5sZW5ndGgpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgZmllbGRzLmVhY2goKGluZGV4LCBmaWVsZCkgPT4ge1xuICAgICAgICAgICAgZmllbGQgPSAkKGZpZWxkKTtcbiAgICAgICAgICAgIGlmICghfnRoaXMuaXRlbXMuaW5kZXgoZmllbGQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRTZWxlY3QoZmllbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBfb25SZW1vdmVkTm9kZXMoZXZlbnQsIGRhdGEvKiAsIGluc3RhbmNlICovKSB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9ICQoZGF0YS50YXJnZXQpO1xuICAgICAgICBjb25zdCBob2xkZXIgPSB0YXJnZXQuZGF0YSgnY29sbGVjdGlvbkhvbGRlcicpO1xuICAgICAgICBpZiAoIWhvbGRlcikgeyByZXR1cm4gZmFsc2U7IH1cblxuICAgICAgICBjb25zdCBub2RlID0gJChkYXRhLm11dGF0aW9uLnJlbW92ZWROb2Rlcyk7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gbm9kZS5maW5kKCdbZGF0YS1zZWxlY3Qtb2JzZXJ2ZV0nKS52YWwoKTtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICBEYXRhW2hvbGRlcl0uc3RhdGVbdmFsdWVdID0gdmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICB0YXJnZXQuZmluZCgnW2RhdGEtc2VsZWN0LW9ic2VydmVdJykuZWFjaCgoaW5kZXgsIGZpZWxkKSA9PiB7XG4gICAgICAgICAgICBmaWVsZCA9ICQoZmllbGQpO1xuXG4gICAgICAgICAgICBpZiAoZmllbGQudmFsKCkgIT09IHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVPcHRpb25zKGZpZWxkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgYWRkU2VsZWN0KGVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuaXRlbXMuYWRkKGVsZW1lbnQpO1xuICAgICAgICBlbGVtZW50ID0gJChlbGVtZW50KTtcblxuICAgICAgICBjb25zdCB2YWx1ZSA9IGVsZW1lbnQuYXR0cigndmFsdWUnKTtcbiAgICAgICAgY29uc3QgaG9sZGVyID0gZWxlbWVudC5jbG9zZXN0KCdbZGF0YS1jb2xsZWN0aW9uLWhvbGRlcl0nKS5kYXRhKCdjb2xsZWN0aW9uSG9sZGVyJyk7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSBlbGVtZW50LmNsb3Nlc3QoJ1tkYXRhLXNlbGVjdC11bmlxdWVdJykuZGF0YSgnc2VsZWN0VW5pcXVlJyk7XG5cbiAgICAgICAgaWYgKCFEYXRhW2hvbGRlcl0pIHtcbiAgICAgICAgICAgIGxldCBkYXRhID0ge307XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvcHRpb25zKSkge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMuc2xpY2UoMCkubWFwKChpdGVtKSA9PiB7IGRhdGFbaXRlbV0gPSBpdGVtOyB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZGF0YSA9IE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBEYXRhW2hvbGRlcl0gPSB7IG9yaWdpbmFsOiBudWxsLCBzdGF0ZTogbnVsbCB9O1xuICAgICAgICAgICAgRGF0YVtob2xkZXJdLm9yaWdpbmFsID0gT2JqZWN0LmFzc2lnbih7fSwgZGF0YSk7XG4gICAgICAgICAgICBEYXRhW2hvbGRlcl0uc3RhdGUgPSBPYmplY3QuYXNzaWduKHt9LCBkYXRhKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlT3B0aW9ucyhlbGVtZW50KTtcblxuICAgICAgICBlbGVtZW50LmRhdGEoJ29yaWdpbmFsVmFsdWUnLCB2YWx1ZSk7XG4gICAgICAgIGVsZW1lbnQub24oJ2NoYW5nZScsIChldmVudCwgZXh0cmFzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuICAgICAgICAgICAgaWYgKHRhcmdldC5kYXRhKCdkdW1teUNoYW5nZScpKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0LmRhdGEoJ2R1bW15Q2hhbmdlJywgZmFsc2UpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5yZWZyZXNoT3B0aW9ucyh0YXJnZXQsIGV4dHJhcyAmJiBleHRyYXMubG9hZCA/IG51bGwgOiBlbGVtZW50LmRhdGEoJ29yaWdpbmFsVmFsdWUnKSk7XG4gICAgICAgICAgICBlbGVtZW50LmRhdGEoJ29yaWdpbmFsVmFsdWUnLCB0YXJnZXQudmFsKCkpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB1cGRhdGVPcHRpb25zKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudCA9ICQoZWxlbWVudCk7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZWxlbWVudC5hdHRyKCd2YWx1ZScpO1xuICAgICAgICBjb25zdCBob2xkZXIgPSBlbGVtZW50LmNsb3Nlc3QoJ1tkYXRhLWNvbGxlY3Rpb24taG9sZGVyXScpLmRhdGEoJ2NvbGxlY3Rpb25Ib2xkZXInKTtcblxuICAgICAgICBmb3JJbihEYXRhW2hvbGRlcl0uc3RhdGUsICh2LCBrKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IGsgPT09IHZhbHVlID8gJ3NlbGVjdGVkPVwic2VsZWN0ZWRcIicgOiAnJztcblxuICAgICAgICAgICAgaWYgKGVsZW1lbnQuZ2V0KDApLnNlbGVjdGl6ZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGl6ZSA9IGVsZW1lbnQuZGF0YSgnc2VsZWN0aXplJyk7XG4gICAgICAgICAgICAgICAgc2VsZWN0aXplLnJlbW92ZU9wdGlvbihrKTtcbiAgICAgICAgICAgICAgICBzZWxlY3RpemUuYWRkT3B0aW9uKHsgdmFsdWU6IGssIHRleHQ6IHYgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGVsZW1lbnQuYXBwZW5kKGA8b3B0aW9uIHZhbHVlPVwiJHtrfVwiICR7c2VsZWN0ZWR9PiR7dn08L29wdGlvbj5gKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuZ2V0KDApLnNlbGVjdGl6ZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RpemUgPSBlbGVtZW50LmRhdGEoJ3NlbGVjdGl6ZScpO1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RpemUuc2V0VmFsdWUoayk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlbGV0ZSBEYXRhW2hvbGRlcl0uc3RhdGVbdmFsdWVdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZWZyZXNoT3B0aW9ucyhlbGVtZW50LCBvcmlnaW5hbFZhbHVlKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgaG9sZGVyID0gZWxlbWVudC5jbG9zZXN0KCdbZGF0YS1jb2xsZWN0aW9uLWhvbGRlcl0nKS5kYXRhKCdjb2xsZWN0aW9uSG9sZGVyJyk7XG4gICAgICAgIGRlbGV0ZSBEYXRhW2hvbGRlcl0uc3RhdGVbdmFsdWVdO1xuXG4gICAgICAgIGlmIChvcmlnaW5hbFZhbHVlICYmIERhdGFbaG9sZGVyXS5vcmlnaW5hbFtvcmlnaW5hbFZhbHVlXSkge1xuICAgICAgICAgICAgRGF0YVtob2xkZXJdLnN0YXRlW29yaWdpbmFsVmFsdWVdID0gRGF0YVtob2xkZXJdLm9yaWdpbmFsW29yaWdpbmFsVmFsdWVdO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pdGVtcy5lYWNoKChpbmRleCwgc2VsZWN0KSA9PiB7XG4gICAgICAgICAgICBzZWxlY3QgPSAkKHNlbGVjdCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0WzBdID09PSBlbGVtZW50WzBdKSB7IHJldHVybjsgfVxuXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZFZhbHVlID0gc2VsZWN0LnZhbCgpO1xuICAgICAgICAgICAgc2VsZWN0LmRhdGEoJ2R1bW15Q2hhbmdlJywgdHJ1ZSk7XG5cbiAgICAgICAgICAgIGlmIChzZWxlY3QuZ2V0KDApLnNlbGVjdGl6ZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGl6ZSA9IHNlbGVjdC5kYXRhKCdzZWxlY3RpemUnKTtcblxuICAgICAgICAgICAgICAgIGlmIChzZWxlY3RpemUpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0aXplLmNsZWFyT3B0aW9ucygpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChzZWxlY3RlZFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RpemUuYWRkT3B0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogc2VsZWN0ZWRWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiBEYXRhW2hvbGRlcl0ub3JpZ2luYWxbc2VsZWN0ZWRWYWx1ZV0gfHwgc2VsZWN0ZWRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBmb3JJbihEYXRhW2hvbGRlcl0uc3RhdGUsICh2LCBrKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RpemUuYWRkT3B0aW9uKHsgdmFsdWU6IGssIHRleHQ6IHYgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGl6ZS5zZXRWYWx1ZShzZWxlY3RlZFZhbHVlLCB0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNlbGVjdC5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIGZvckluKERhdGFbaG9sZGVyXS5zdGF0ZSwgKHYsIGspID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBrID09PSBzZWxlY3RlZFZhbHVlID8gJ3NlbGVjdGVkPVwic2VsZWN0ZWRcIicgOiAnJztcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LmFwcGVuZChgPG9wdGlvbiB2YWx1ZT1cIiR7a31cIiAke3NlbGVjdGVkfT4ke3Z9PC9vcHRpb24+YCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNlbGVjdC5kYXRhKCdkdW1teUNoYW5nZScsIGZhbHNlKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5leHBvcnQgbGV0IEluc3RhbmNlID0gbmV3IFNlbGVjdFVuaXF1ZUZpZWxkKCk7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/forms/fields/selectunique.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/forms/fields/text.js":
|
|
/*!**********************************!*\
|
|
!*** ./app/forms/fields/text.js ***!
|
|
\**********************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).ready(function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.copy-to-clipboard').click(function (event) {\n var $tempElement = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<input>');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').append($tempElement);\n $tempElement.val(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).prev('input').val()).select();\n document.execCommand('Copy');\n $tempElement.remove();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).attr('data-hint', 'Copied to clipboard!').addClass('hint--left');\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL2ZpZWxkcy90ZXh0LmpzPzhlMTciXSwibmFtZXMiOlsiJCIsImRvY3VtZW50IiwicmVhZHkiLCJjbGljayIsImV2ZW50IiwiJHRlbXBFbGVtZW50IiwiYXBwZW5kIiwidmFsIiwicHJldiIsInNlbGVjdCIsImV4ZWNDb21tYW5kIiwicmVtb3ZlIiwiYXR0ciIsImFkZENsYXNzIl0sIm1hcHBpbmdzIjoiOzs7QUFBQTtBQUVBQSw2Q0FBQyxDQUFDQyxRQUFELENBQUQsQ0FBWUMsS0FBWixDQUFrQixZQUFXO0FBQ3pCRiwrQ0FBQyxDQUFDLG9CQUFELENBQUQsQ0FBd0JHLEtBQXhCLENBQThCLFVBQVNDLEtBQVQsRUFBZ0I7QUFDMUMsUUFBSUMsWUFBWSxHQUFHTCw2Q0FBQyxDQUFDLFNBQUQsQ0FBcEI7QUFDQUEsaURBQUMsQ0FBQyxNQUFELENBQUQsQ0FBVU0sTUFBVixDQUFpQkQsWUFBakI7QUFDQUEsZ0JBQVksQ0FBQ0UsR0FBYixDQUFpQlAsNkNBQUMsQ0FBQyxJQUFELENBQUQsQ0FBUVEsSUFBUixDQUFhLE9BQWIsRUFBc0JELEdBQXRCLEVBQWpCLEVBQThDRSxNQUE5QztBQUNBUixZQUFRLENBQUNTLFdBQVQsQ0FBcUIsTUFBckI7QUFDQUwsZ0JBQVksQ0FBQ00sTUFBYjtBQUVBWCxpREFBQyxDQUFDLElBQUQsQ0FBRCxDQUFRWSxJQUFSLENBQWEsV0FBYixFQUEwQixzQkFBMUIsRUFBa0RDLFFBQWxELENBQTJELFlBQTNEO0FBQ0gsR0FSRDtBQVNILENBVkQiLCJmaWxlIjoiLi9hcHAvZm9ybXMvZmllbGRzL3RleHQuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuXG4kKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHtcbiAgICAkKCcuY29weS10by1jbGlwYm9hcmQnKS5jbGljayhmdW5jdGlvbihldmVudCkge1xuICAgICAgICB2YXIgJHRlbXBFbGVtZW50ID0gJCgnPGlucHV0PicpO1xuICAgICAgICAkKCdib2R5JykuYXBwZW5kKCR0ZW1wRWxlbWVudCk7XG4gICAgICAgICR0ZW1wRWxlbWVudC52YWwoJCh0aGlzKS5wcmV2KCdpbnB1dCcpLnZhbCgpKS5zZWxlY3QoKTtcbiAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0NvcHknKTtcbiAgICAgICAgJHRlbXBFbGVtZW50LnJlbW92ZSgpO1xuXG4gICAgICAgICQodGhpcykuYXR0cignZGF0YS1oaW50JywgJ0NvcGllZCB0byBjbGlwYm9hcmQhJykuYWRkQ2xhc3MoJ2hpbnQtLWxlZnQnKTtcbiAgICB9KTtcbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/forms/fields/text.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/forms/form.js":
|
|
/*!***************************!*\
|
|
!*** ./app/forms/form.js ***!
|
|
\***************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Form),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\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); return Constructor; }\n\n\n/* Dependencies for checking if changes happened since load on a form\nimport toastr from '../utils/toastr';\nimport { translations } from 'grav-config';\nimport { Instance as FormState } from './state';\n*/\n\nvar Form = /*#__PURE__*/function () {\n function Form(form) {\n var _this = this;\n\n _classCallCheck(this, Form);\n\n this.form = jquery__WEBPACK_IMPORTED_MODULE_0___default()(form);\n\n if (!this.form.length || this.form.prop('tagName').toLowerCase() !== 'form') {\n return;\n }\n /* Option for not saving while nothing in a form has changed\n this.form.on('submit', (event) => {\n if (FormState.equals()) {\n event.preventDefault();\n toastr.info(translations.PLUGIN_ADMIN.NOTHING_TO_SAVE);\n }\n }); */\n\n\n this._attachShortcuts();\n\n this._attachToggleables();\n\n this._attachDisabledFields();\n\n this._submitUncheckedFields();\n\n this.observer = new MutationObserver(this.addedNodes);\n this.form.each(function (index, form) {\n return _this.observer.observe(form, {\n subtree: true,\n childList: true\n });\n });\n }\n\n _createClass(Form, [{\n key: \"_attachShortcuts\",\n value: function _attachShortcuts() {\n // CTRL + S / CMD + S - shortcut for [Save] when available\n var saveTask = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#titlebar [name=\"task\"][value=\"save\"][form=\"blueprints\"]');\n\n if (saveTask.length) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(__webpack_require__.g).on('keydown', function (event) {\n var key = String.fromCharCode(event.which).toLowerCase();\n\n if (!event.shiftKey && (event.ctrlKey && !event.altKey || event.metaKey) && key === 's') {\n event.preventDefault();\n saveTask.click();\n }\n });\n }\n }\n }, {\n key: \"_attachToggleables\",\n value: function _attachToggleables() {\n var query = '[data-grav-field=\"toggleable\"] input[type=\"checkbox\"]';\n this.form.on('change', query, function (event) {\n var toggle = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target);\n var enabled = toggle.is(':checked');\n var parent = toggle.closest('.form-field');\n var label = parent.find('label.toggleable');\n var fields = parent.find('.form-data');\n var inputs = fields.find('input, select, textarea, button');\n label.add(fields).css('opacity', enabled ? '' : 0.7);\n inputs.map(function (index, input) {\n var isSelectize = input.selectize;\n input = jquery__WEBPACK_IMPORTED_MODULE_0___default()(input);\n\n if (isSelectize) {\n isSelectize[enabled ? 'enable' : 'disable']();\n } else {\n input.prop('disabled', !enabled);\n }\n });\n });\n this.form.find(query).trigger('change');\n }\n }, {\n key: \"_attachDisabledFields\",\n value: function _attachDisabledFields() {\n var prefix = '.form-field-toggleable .form-data';\n var query = [];\n ['input', 'select', 'label[for]', 'textarea', '.selectize-control'].forEach(function (item) {\n query.push(\"\".concat(prefix, \" \").concat(item));\n });\n this.form.on('mousedown', query.join(', '), function (event) {\n var input = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target);\n var isFor = input.prop('for');\n var isSelectize = (input.hasClass('selectize-control') || input.parents('.selectize-control')).length;\n\n if (isFor) {\n input = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[id=\\\"\".concat(isFor, \"\\\"]\"));\n }\n\n if (isSelectize) {\n input = input.closest('.selectize-control').siblings('select[name]');\n }\n\n if (!input.prop('disabled')) {\n return true;\n }\n\n var toggle = input.closest('.form-field').find('[data-grav-field=\"toggleable\"] input[type=\"checkbox\"]');\n toggle.trigger('click');\n });\n }\n }, {\n key: \"_submitUncheckedFields\",\n value: function _submitUncheckedFields() {\n var submitted = false;\n this.form.each(function (index, form) {\n form = jquery__WEBPACK_IMPORTED_MODULE_0___default()(form);\n form.on('submit', function () {\n // workaround for MS Edge, submitting multiple forms at the same time\n if (submitted) {\n return false;\n }\n\n var formId = form.attr('id');\n var unchecked = form.find('input[type=\"checkbox\"]:not(:checked):not(:disabled)');\n var submit = form.find('[type=\"submit\"]').add(\"[form=\\\"\".concat(formId, \"\\\"][type=\\\"submit\\\"]\"));\n\n if (!unchecked.length) {\n return true;\n }\n\n submit.addClass('pointer-events-disabled');\n unchecked.each(function (index, element) {\n element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n var name = element.prop('name');\n var fake = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"<input type=\\\"hidden\\\" name=\\\"\".concat(name, \"\\\" value=\\\"0\\\" />\"));\n form.append(fake);\n });\n submitted = true;\n return true;\n });\n });\n }\n }, {\n key: \"addedNodes\",\n value: function addedNodes(mutations) {\n var _this2 = this;\n\n mutations.forEach(function (mutation) {\n if (mutation.type !== 'childList') {\n return;\n }\n\n if (mutation.addedNodes) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').trigger('mutation._grav', mutation.target, mutation, _this2);\n }\n\n if (mutation.removedNodes) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').trigger('mutation_removed._grav', {\n target: mutation.target,\n mutation: mutation\n }, _this2);\n }\n });\n }\n }]);\n\n return Form;\n}();\n\n\nvar Instance = new Form('form#blueprints');//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL2Zvcm0uanM/OTQ2MyJdLCJuYW1lcyI6WyJGb3JtIiwiZm9ybSIsIiQiLCJsZW5ndGgiLCJwcm9wIiwidG9Mb3dlckNhc2UiLCJfYXR0YWNoU2hvcnRjdXRzIiwiX2F0dGFjaFRvZ2dsZWFibGVzIiwiX2F0dGFjaERpc2FibGVkRmllbGRzIiwiX3N1Ym1pdFVuY2hlY2tlZEZpZWxkcyIsIm9ic2VydmVyIiwiTXV0YXRpb25PYnNlcnZlciIsImFkZGVkTm9kZXMiLCJlYWNoIiwiaW5kZXgiLCJvYnNlcnZlIiwic3VidHJlZSIsImNoaWxkTGlzdCIsInNhdmVUYXNrIiwiZ2xvYmFsIiwib24iLCJldmVudCIsImtleSIsIlN0cmluZyIsImZyb21DaGFyQ29kZSIsIndoaWNoIiwic2hpZnRLZXkiLCJjdHJsS2V5IiwiYWx0S2V5IiwibWV0YUtleSIsInByZXZlbnREZWZhdWx0IiwiY2xpY2siLCJxdWVyeSIsInRvZ2dsZSIsInRhcmdldCIsImVuYWJsZWQiLCJpcyIsInBhcmVudCIsImNsb3Nlc3QiLCJsYWJlbCIsImZpbmQiLCJmaWVsZHMiLCJpbnB1dHMiLCJhZGQiLCJjc3MiLCJtYXAiLCJpbnB1dCIsImlzU2VsZWN0aXplIiwic2VsZWN0aXplIiwidHJpZ2dlciIsInByZWZpeCIsImZvckVhY2giLCJpdGVtIiwicHVzaCIsImpvaW4iLCJpc0ZvciIsImhhc0NsYXNzIiwicGFyZW50cyIsInNpYmxpbmdzIiwic3VibWl0dGVkIiwiZm9ybUlkIiwiYXR0ciIsInVuY2hlY2tlZCIsInN1Ym1pdCIsImFkZENsYXNzIiwiZWxlbWVudCIsIm5hbWUiLCJmYWtlIiwiYXBwZW5kIiwibXV0YXRpb25zIiwibXV0YXRpb24iLCJ0eXBlIiwicmVtb3ZlZE5vZGVzIiwiSW5zdGFuY2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0lBRXFCQSxJO0FBQ2pCLGdCQUFZ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QkFBSSxDQUFDbUUsTUFBTCxDQUFZRCxJQUFaO0FBQ0gsV0FMRDtBQU1BUixtQkFBUyxHQUFHLElBQVo7QUFDQSxpQkFBTyxJQUFQO0FBQ0gsU0FuQkQ7QUFvQkgsT0F0QkQ7QUF1Qkg7OztXQUVELG9CQUFXVSxTQUFYLEVBQXNCO0FBQUE7O0FBQ2xCQSxlQUFTLENBQUNsQixPQUFWLENBQWtCLFVBQUNtQixRQUFELEVBQWM7QUFDNUIsWUFBSUEsUUFBUSxDQUFDQyxJQUFULEtBQWtCLFdBQXRCLEVBQW1DO0FBQUU7QUFBUzs7QUFFOUMsWUFBSUQsUUFBUSxDQUFDMUQsVUFBYixFQUF5QjtBQUNyQlYsdURBQUMsQ0FBQyxNQUFELENBQUQsQ0FBVStDLE9BQVYsQ0FBa0IsZ0JBQWxCLEVBQW9DcUIsUUFBUSxDQUFDcEMsTUFBN0MsRUFBcURvQyxRQUFyRCxFQUErRCxNQUEvRDtBQUNIOztBQUVELFlBQUlBLFFBQVEsQ0FBQ0UsWUFBYixFQUEyQjtBQUN2QnRFLHVEQUFDLENBQUMsTUFBRCxDQUFELENBQVUrQyxPQUFWLENBQWtCLHdCQUFsQixFQUE0QztBQUFFZixrQkFBTSxFQUFFb0MsUUFBUSxDQUFDcEMsTUFBbkI7QUFBMkJvQyxvQkFBUSxFQUFSQTtBQUEzQixXQUE1QyxFQUFtRixNQUFuRjtBQUNIO0FBQ0osT0FWRDtBQVdIOzs7Ozs7O0FBR0UsSUFBSUcsUUFBUSxHQUFHLElBQUl6RSxJQUFKLENBQVMsaUJBQVQsQ0FBZiIsImZpbGUiOiIuL2FwcC9mb3Jtcy9mb3JtLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcblxuLyogRGVwZW5kZW5jaWVzIGZvciBjaGVja2luZyBpZiBjaGFuZ2VzIGhhcHBlbmVkIHNpbmNlIGxvYWQgb24gYSBmb3JtXG5pbXBvcnQgdG9hc3RyIGZyb20gJy4uL3V0aWxzL3RvYXN0cic7XG5pbXBvcnQgeyB0cmFuc2xhdGlvbnMgfSBmcm9tICdncmF2LWNvbmZpZyc7XG5pbXBvcnQgeyBJbnN0YW5jZSBhcyBGb3JtU3RhdGUgfSBmcm9tICcuL3N0YXRlJztcbiovXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZvcm0ge1xuICAgIGNvbnN0cnVjdG9yKGZvcm0pIHtcbiAgICAgICAgdGhpcy5mb3JtID0gJChmb3JtKTtcbiAgICAgICAgaWYgKCF0aGlzLmZvcm0ubGVuZ3RoIHx8IHRoaXMuZm9ybS5wcm9wKCd0YWdOYW1lJykudG9Mb3dlckNhc2UoKSAhPT0gJ2Zvcm0nKSB7IHJldHVybjsgfVxuXG4gICAgICAgIC8qIE9wdGlvbiBmb3Igbm90IHNhdmluZyB3aGlsZSBub3RoaW5nIGluIGEgZm9ybSBoYXMgY2hhbmdlZFxuXG4gICAgICAgIHRoaXMuZm9ybS5vbignc3VibWl0JywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoRm9ybVN0YXRlLmVxdWFscygpKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0b2FzdHIuaW5mbyh0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLk5PVEhJTkdfVE9fU0FWRSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pOyAqL1xuXG4gICAgICAgIHRoaXMuX2F0dGFjaFNob3J0Y3V0cygpO1xuICAgICAgICB0aGlzLl9hdHRhY2hUb2dnbGVhYmxlcygpO1xuICAgICAgICB0aGlzLl9hdHRhY2hEaXNhYmxlZEZpZWxkcygpO1xuICAgICAgICB0aGlzLl9zdWJtaXRVbmNoZWNrZWRGaWVsZHMoKTtcblxuICAgICAgICB0aGlzLm9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIodGhpcy5hZGRlZE5vZGVzKTtcbiAgICAgICAgdGhpcy5mb3JtLmVhY2goKGluZGV4LCBmb3JtKSA9PiB0aGlzLm9ic2VydmVyLm9ic2VydmUoZm9ybSwgeyBzdWJ0cmVlOiB0cnVlLCBjaGlsZExpc3Q6IHRydWUgfSkpO1xuICAgIH1cblxuICAgIF9hdHRhY2hTaG9ydGN1dHMoKSB7XG4gICAgICAgIC8vIENUUkwgKyBTIC8gQ01EICsgUyAtIHNob3J0Y3V0IGZvciBbU2F2ZV0gd2hlbiBhdmFpbGFibGVcbiAgICAgICAgbGV0IHNhdmVUYXNrID0gJCgnI3RpdGxlYmFyIFtuYW1lPVwidGFza1wiXVt2YWx1ZT1cInNhdmVcIl1bZm9ybT1cImJsdWVwcmludHNcIl0nKTtcblxuICAgICAgICBpZiAoc2F2ZVRhc2subGVuZ3RoKSB7XG4gICAgICAgICAgICAkKGdsb2JhbCkub24oJ2tleWRvd24nLCBmdW5jdGlvbihldmVudCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IFN0cmluZy5mcm9tQ2hhckNvZGUoZXZlbnQud2hpY2gpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgaWYgKCFldmVudC5zaGlmdEtleSAmJiAoKGV2ZW50LmN0cmxLZXkgJiYgIWV2ZW50LmFsdEtleSkgfHwgZXZlbnQubWV0YUtleSkgJiYga2V5ID09PSAncycpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgc2F2ZVRhc2suY2xpY2soKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIF9hdHRhY2hUb2dnbGVhYmxlcygpIHtcbiAgICAgICAgbGV0IHF1ZXJ5ID0gJ1tkYXRhLWdyYXYtZmllbGQ9XCJ0b2dnbGVhYmxlXCJdIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSc7XG5cbiAgICAgICAgdGhpcy5mb3JtLm9uKCdjaGFuZ2UnLCBxdWVyeSwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBsZXQgdG9nZ2xlID0gJChldmVudC50YXJnZXQpO1xuICAgICAgICAgICAgbGV0IGVuYWJsZWQgPSB0b2dnbGUuaXMoJzpjaGVja2VkJyk7XG4gICAgICAgICAgICBsZXQgcGFyZW50ID0gdG9nZ2xlLmNsb3Nlc3QoJy5mb3JtLWZpZWxkJyk7XG4gICAgICAgICAgICBsZXQgbGFiZWwgPSBwYXJlbnQuZmluZCgnbGFiZWwudG9nZ2xlYWJsZScpO1xuICAgICAgICAgICAgbGV0IGZpZWxkcyA9IHBhcmVudC5maW5kKCcuZm9ybS1kYXRhJyk7XG4gICAgICAgICAgICBsZXQgaW5wdXRzID0gZmllbGRzLmZpbmQoJ2lucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBidXR0b24nKTtcblxuICAgICAgICAgICAgbGFiZWwuYWRkKGZpZWxkcykuY3NzKCdvcGFjaXR5JywgZW5hYmxlZCA/ICcnIDogMC43KTtcbiAgICAgICAgICAgIGlucHV0cy5tYXAoKGluZGV4LCBpbnB1dCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBpc1NlbGVjdGl6ZSA9IGlucHV0LnNlbGVjdGl6ZTtcbiAgICAgICAgICAgICAgICBpbnB1dCA9ICQoaW5wdXQpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGlzU2VsZWN0aXplKSB7XG4gICAgICAgICAgICAgICAgICAgIGlzU2VsZWN0aXplW2VuYWJsZWQgPyAnZW5hYmxlJyA6ICdkaXNhYmxlJ10oKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpbnB1dC5wcm9wKCdkaXNhYmxlZCcsICFlbmFibGVkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5mb3JtLmZpbmQocXVlcnkpLnRyaWdnZXIoJ2NoYW5nZScpO1xuICAgIH1cblxuICAgIF9hdHRhY2hEaXNhYmxlZEZpZWxkcygpIHtcbiAgICAgICAgbGV0IHByZWZpeCA9ICcuZm9ybS1maWVsZC10b2dnbGVhYmxlIC5mb3JtLWRhdGEnO1xuICAgICAgICBsZXQgcXVlcnkgPSBbXTtcblxuICAgICAgICBbJ2lucHV0JywgJ3NlbGVjdCcsICdsYWJlbFtmb3JdJywgJ3RleHRhcmVhJywgJy5zZWxlY3RpemUtY29udHJvbCddLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIHF1ZXJ5LnB1c2goYCR7cHJlZml4fSAke2l0ZW19YCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZm9ybS5vbignbW91c2Vkb3duJywgcXVlcnkuam9pbignLCAnKSwgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBsZXQgaW5wdXQgPSAkKGV2ZW50LnRhcmdldCk7XG4gICAgICAgICAgICBsZXQgaXNGb3IgPSBpbnB1dC5wcm9wKCdmb3InKTtcbiAgICAgICAgICAgIGxldCBpc1NlbGVjdGl6ZSA9IChpbnB1dC5oYXNDbGFzcygnc2VsZWN0aXplLWNvbnRyb2wnKSB8fCBpbnB1dC5wYXJlbnRzKCcuc2VsZWN0aXplLWNvbnRyb2wnKSkubGVuZ3RoO1xuXG4gICAgICAgICAgICBpZiAoaXNGb3IpIHsgaW5wdXQgPSAkKGBbaWQ9XCIke2lzRm9yfVwiXWApOyB9XG4gICAgICAgICAgICBpZiAoaXNTZWxlY3RpemUpIHsgaW5wdXQgPSBpbnB1dC5jbG9zZXN0KCcuc2VsZWN0aXplLWNvbnRyb2wnKS5zaWJsaW5ncygnc2VsZWN0W25hbWVdJyk7IH1cblxuICAgICAgICAgICAgaWYgKCFpbnB1dC5wcm9wKCdkaXNhYmxlZCcpKSB7IHJldHVybiB0cnVlOyB9XG5cbiAgICAgICAgICAgIGxldCB0b2dnbGUgPSBpbnB1dC5jbG9zZXN0KCcuZm9ybS1maWVsZCcpLmZpbmQoJ1tkYXRhLWdyYXYtZmllbGQ9XCJ0b2dnbGVhYmxlXCJdIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXScpO1xuICAgICAgICAgICAgdG9nZ2xlLnRyaWdnZXIoJ2NsaWNrJyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIF9zdWJtaXRVbmNoZWNrZWRGaWVsZHMoKSB7XG4gICAgICAgIGxldCBzdWJtaXR0ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5mb3JtLmVhY2goKGluZGV4LCBmb3JtKSA9PiB7XG4gICAgICAgICAgICBmb3JtID0gJChmb3JtKTtcbiAgICAgICAgICAgIGZvcm0ub24oJ3N1Ym1pdCcsICgpID0+IHtcbiAgICAgICAgICAgICAgICAvLyB3b3JrYXJvdW5kIGZvciBNUyBFZGdlLCBzdWJtaXR0aW5nIG11bHRpcGxlIGZvcm1zIGF0IHRoZSBzYW1lIHRpbWVcbiAgICAgICAgICAgICAgICBpZiAoc3VibWl0dGVkKSB7IHJldHVybiBmYWxzZTsgfVxuXG4gICAgICAgICAgICAgICAgbGV0IGZvcm1JZCA9IGZvcm0uYXR0cignaWQnKTtcbiAgICAgICAgICAgICAgICBsZXQgdW5jaGVja2VkID0gZm9ybS5maW5kKCdpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06bm90KDpjaGVja2VkKTpub3QoOmRpc2FibGVkKScpO1xuICAgICAgICAgICAgICAgIGxldCBzdWJtaXQgPSBmb3JtLmZpbmQoJ1t0eXBlPVwic3VibWl0XCJdJykuYWRkKGBbZm9ybT1cIiR7Zm9ybUlkfVwiXVt0eXBlPVwic3VibWl0XCJdYCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIXVuY2hlY2tlZC5sZW5ndGgpIHsgcmV0dXJuIHRydWU7IH1cblxuICAgICAgICAgICAgICAgIHN1Ym1pdC5hZGRDbGFzcygncG9pbnRlci1ldmVudHMtZGlzYWJsZWQnKTtcbiAgICAgICAgICAgICAgICB1bmNoZWNrZWQuZWFjaCgoaW5kZXgsIGVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9ICQoZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBuYW1lID0gZWxlbWVudC5wcm9wKCduYW1lJyk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBmYWtlID0gJChgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwiJHtuYW1lfVwiIHZhbHVlPVwiMFwiIC8+YCk7XG4gICAgICAgICAgICAgICAgICAgIGZvcm0uYXBwZW5kKGZha2UpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHN1Ym1pdHRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgYWRkZWROb2RlcyhtdXRhdGlvbnMpIHtcbiAgICAgICAgbXV0YXRpb25zLmZvckVhY2goKG11dGF0aW9uKSA9PiB7XG4gICAgICAgICAgICBpZiAobXV0YXRpb24udHlwZSAhPT0gJ2NoaWxkTGlzdCcpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgICAgIGlmIChtdXRhdGlvbi5hZGRlZE5vZGVzKSB7XG4gICAgICAgICAgICAgICAgJCgnYm9keScpLnRyaWdnZXIoJ211dGF0aW9uLl9ncmF2JywgbXV0YXRpb24udGFyZ2V0LCBtdXRhdGlvbiwgdGhpcyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChtdXRhdGlvbi5yZW1vdmVkTm9kZXMpIHtcbiAgICAgICAgICAgICAgICAkKCdib2R5JykudHJpZ2dlcignbXV0YXRpb25fcmVtb3ZlZC5fZ3JhdicsIHsgdGFyZ2V0OiBtdXRhdGlvbi50YXJnZXQsIG11dGF0aW9uIH0sIHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmV4cG9ydCBsZXQgSW5zdGFuY2UgPSBuZXcgRm9ybSgnZm9ybSNibHVlcHJpbnRzJyk7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/forms/form.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/forms/index.js":
|
|
/*!****************************!*\
|
|
!*** ./app/forms/index.js ***!
|
|
\****************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _state__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./state */ \"./app/forms/state.js\");\n/* harmony import */ var _form__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./form */ \"./app/forms/form.js\");\n/* harmony import */ var _fields__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./fields */ \"./app/forms/fields/index.js\");\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n Form: {\n Form: _form__WEBPACK_IMPORTED_MODULE_1__.default,\n Instance: _form__WEBPACK_IMPORTED_MODULE_1__.Instance\n },\n Fields: _fields__WEBPACK_IMPORTED_MODULE_2__.default,\n FormState: {\n FormState: _state__WEBPACK_IMPORTED_MODULE_0__.default,\n Instance: _state__WEBPACK_IMPORTED_MODULE_0__.Instance\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL2luZGV4LmpzPzkyNzMiXSwibmFtZXMiOlsiRm9ybSIsIkluc3RhbmNlIiwiRm9ybUluc3RhbmNlIiwiRmllbGRzIiwiRm9ybVN0YXRlIiwiRm9ybVN0YXRlSW5zdGFuY2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBO0FBRUE7QUFFQSxpRUFBZTtBQUNYQSxNQUFJLEVBQUU7QUFDRkEsUUFBSSxFQUFKQSwwQ0FERTtBQUVGQyxZQUFRLEVBQUVDLDJDQUFZQTtBQUZwQixHQURLO0FBS1hDLFFBQU0sRUFBTkEsNENBTFc7QUFNWEMsV0FBUyxFQUFFO0FBQ1BBLGFBQVMsRUFBVEEsMkNBRE87QUFFUEgsWUFBUSxFQUFFSSw0Q0FBaUJBO0FBRnBCO0FBTkEsQ0FBZiIsImZpbGUiOiIuL2FwcC9mb3Jtcy9pbmRleC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBGb3JtU3RhdGUsIHsgSW5zdGFuY2UgYXMgRm9ybVN0YXRlSW5zdGFuY2UgfSBmcm9tICcuL3N0YXRlJztcbmltcG9ydCBGb3JtLCB7IEluc3RhbmNlIGFzIEZvcm1JbnN0YW5jZSB9IGZyb20gJy4vZm9ybSc7XG5cbmltcG9ydCBGaWVsZHMgZnJvbSAnLi9maWVsZHMnO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gICAgRm9ybToge1xuICAgICAgICBGb3JtLFxuICAgICAgICBJbnN0YW5jZTogRm9ybUluc3RhbmNlXG4gICAgfSxcbiAgICBGaWVsZHMsXG4gICAgRm9ybVN0YXRlOiB7XG4gICAgICAgIEZvcm1TdGF0ZSxcbiAgICAgICAgSW5zdGFuY2U6IEZvcm1TdGF0ZUluc3RhbmNlXG4gICAgfVxufTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/forms/index.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/forms/state.js":
|
|
/*!****************************!*\
|
|
!*** ./app/forms/state.js ***!
|
|
\****************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ FormState),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance),\n/* harmony export */ \"DOMBehaviors\": () => (/* binding */ DOMBehaviors)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var immutable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! immutable */ \"./node_modules/immutable/dist/immutable.js\");\n/* harmony import */ var immutable__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(immutable__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var immutablediff__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! immutablediff */ \"./node_modules/immutablediff/src/diff.js\");\n/* harmony import */ var immutablediff__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(immutablediff__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _utils_jquery_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/jquery-utils */ \"./app/utils/jquery-utils.js\");\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); return Constructor; }\n\n\n\n\n\nvar FormLoadState = {};\nvar DOMBehaviors = {\n attach: function attach() {\n this.preventUnload();\n this.preventClickAway();\n },\n preventUnload: function preventUnload() {\n var selector = '[name=\"task\"][value^=\"save\"], [data-delete-action], [data-flex-safe-action]';\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()._data(window, 'events') && (jquery__WEBPACK_IMPORTED_MODULE_0___default()._data(window, 'events').beforeunload || []).filter(function (event) {\n return event.namespace === '_grav';\n }).length) {\n return;\n } // Allow some elements to leave the page without native confirmation\n\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(selector).on('click._grav', function (event) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(__webpack_require__.g).off('beforeunload');\n }); // Catch browser uri change / refresh attempt and stop it if the form state is dirty\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(__webpack_require__.g).on('beforeunload._grav', function () {\n if (Instance.equals() === false) {\n return 'You have made changes on this page that you have not yet confirmed. If you navigate away from this page you will lose your unsaved changes.';\n }\n });\n },\n preventClickAway: function preventClickAway() {\n var selector = 'a[href]:not([href^=\"#\"]):not([target=\"_blank\"]):not([href^=\"javascript:\"])';\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()._data(jquery__WEBPACK_IMPORTED_MODULE_0___default()(selector).get(0), 'events') && (jquery__WEBPACK_IMPORTED_MODULE_0___default()._data(jquery__WEBPACK_IMPORTED_MODULE_0___default()(selector).get(0), 'events').click || []).filter(function (event) {\n return event.namespace === '_grav';\n })) {\n return;\n } // Prevent clicking away if the form state is dirty\n // instead, display a confirmation before continuing\n\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(selector).on('click._grav', function (event) {\n var isClean = Instance.equals();\n\n if (isClean === null || isClean) {\n return true;\n }\n\n event.preventDefault();\n var destination = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).attr('href');\n var modal = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-remodal-id=\"changes\"]');\n var lookup = (jquery__WEBPACK_IMPORTED_MODULE_0___default().remodal.lookup)[modal.data('remodal')];\n var buttons = jquery__WEBPACK_IMPORTED_MODULE_0___default()('a.button', modal);\n\n var handler = function handler(event) {\n event.preventDefault();\n var action = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('leave-action');\n buttons.off('click', handler);\n lookup.close();\n\n if (action === 'continue') {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(__webpack_require__.g).off('beforeunload');\n __webpack_require__.g.location.href = destination;\n }\n };\n\n buttons.on('click', handler);\n lookup.open();\n });\n }\n};\n\nvar FormState = /*#__PURE__*/function () {\n function FormState() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n ignore: [],\n form_id: 'blueprints'\n };\n\n _classCallCheck(this, FormState);\n\n this.options = options;\n this.refresh();\n\n if (!this.form || !this.fields.length) {\n return;\n }\n\n FormLoadState = this.collect();\n this.loadState = FormLoadState;\n DOMBehaviors.attach();\n }\n\n _createClass(FormState, [{\n key: \"refresh\",\n value: function refresh() {\n this.form = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"form#\".concat(this.options.form_id)).filter(':noparents(.remodal)');\n this.fields = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"form#\".concat(this.options.form_id, \" *, [form=\\\"\").concat(this.options.form_id, \"\\\"]\")).filter(':input:not(.no-form)').filter(':noparents(.remodal)');\n return this;\n }\n }, {\n key: \"collect\",\n value: function collect() {\n var _this = this;\n\n if (!this.form || !this.fields.length) {\n return;\n }\n\n var values = {};\n this.refresh().fields.each(function (index, field) {\n field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(field);\n var name = field.prop('name');\n var type = field.prop('type');\n var tag = field.prop('tagName').toLowerCase();\n var value;\n\n if (name.startsWith('toggleable_') || name === 'data[lang]' || name === 'data[redirect]') {\n return;\n }\n\n switch (type) {\n case 'checkbox':\n value = field.is(':checked');\n break;\n\n case 'radio':\n if (!field.is(':checked')) {\n return;\n }\n\n value = field.val();\n break;\n\n default:\n value = field.val();\n }\n\n if (tag === 'select' && value === null) {\n value = '';\n }\n\n if (Array.isArray(value)) {\n value = value.join('|');\n }\n\n if (name && !~_this.options.ignore.indexOf(name)) {\n values[name] = value;\n }\n });\n return immutable__WEBPACK_IMPORTED_MODULE_1___default().OrderedMap(values);\n }\n }, {\n key: \"diff\",\n value: function diff() {\n return immutablediff__WEBPACK_IMPORTED_MODULE_2___default()(FormLoadState, this.collect());\n } // When the form doesn't exist or there are no fields, `equals` returns `null`\n // for this reason, _NEVER_ check with !Instance.equals(), use Instance.equals() === false\n\n }, {\n key: \"equals\",\n value: function equals() {\n if (!this.form || !this.fields.length) {\n return null;\n }\n\n return immutable__WEBPACK_IMPORTED_MODULE_1___default().is(FormLoadState, this.collect());\n }\n }]);\n\n return FormState;\n}();\n\n\n;\nvar Instance = new FormState();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL2Zvcm1zL3N0YXRlLmpzPzY3ZTMiXSwibmFtZXMiOlsiRm9ybUxvYWRTdGF0ZSIsIkRPTUJlaGF2aW9ycyIsImF0dGFjaCIsInByZXZlbnRVbmxvYWQiLCJwcmV2ZW50Q2xpY2tBd2F5Iiwic2VsZWN0b3IiLCIkIiwid2luZG93IiwiYmVmb3JldW5sb2FkIiwiZmlsdGVyIiwiZXZlbnQiLCJuYW1lc3BhY2UiLCJsZW5ndGgiLCJvbiIsImdsb2JhbCIsIm9mZiIsIkluc3RhbmNlIiwiZXF1YWxzIiwiZ2V0IiwiY2xpY2siLCJpc0NsZWFuIiwicHJldmVudERlZmF1bHQiLCJkZXN0aW5hdGlvbiIsImF0dHIiLCJtb2RhbCIsImxvb2t1cCIsImRhdGEiLCJidXR0b25zIiwiaGFuZGxlciIsImFjdGlvbiIsImNsb3NlIiwibG9jYXRpb24iLCJocmVmIiwib3BlbiIsIkZvcm1TdGF0ZSIsIm9wdGlvbnMiLCJpZ25vcmUiLCJmb3JtX2lkIiwicmVmcmVzaCIsImZvcm0iLCJmaWVsZHMiLCJjb2xsZWN0IiwibG9hZFN0YXRlIiwidmFsdWVzIiwiZWFjaCIsImluZGV4IiwiZmllbGQiLCJuYW1lIiwicHJvcCIsInR5cGUiLCJ0YWciLCJ0b0xvd2VyQ2FzZSIsInZhbHVlIiwic3RhcnRzV2l0aCIsImlzIiwidmFsIiwiQXJyYXkiLCJpc0FycmF5Iiwiam9pbiIsImluZGV4T2YiLCJJbW11dGFibGUiLCJpbW11dGFibGVkaWZmIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFFQSxJQUFJQSxhQUFhLEdBQUcsRUFBcEI7QUFFQSxJQUFNQyxZQUFZLEdBQUc7QUFDakJDLFFBRGlCLG9CQUNSO0FBQ0wsU0FBS0MsYUFBTDtBQUNBLFNBQUtDLGdCQUFMO0FBQ0gsR0FKZ0I7QUFNakJELGVBTmlCLDJCQU1EO0FBQ1osUUFBSUUsUUFBUSxHQUFHLDZFQUFmOztBQUNBLFFBQUlDLG1EQUFB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Q0FBQzdELGFBQUQsRUFBZ0IsS0FBS3lDLE9BQUwsRUFBaEIsQ0FBcEI7QUFDSCxLLENBRUQ7QUFDQTs7OztXQUNBLGtCQUFTO0FBQ0wsVUFBSSxDQUFDLEtBQUtGLElBQU4sSUFBYyxDQUFDLEtBQUtDLE1BQUwsQ0FBWTVCLE1BQS9CLEVBQXVDO0FBQUUsZUFBTyxJQUFQO0FBQWM7O0FBQ3ZELGFBQU9nRCxtREFBQSxDQUFhNUQsYUFBYixFQUE0QixLQUFLeUMsT0FBTCxFQUE1QixDQUFQO0FBQ0g7Ozs7Ozs7QUFDSjtBQUVNLElBQUl6QixRQUFRLEdBQUcsSUFBSWtCLFNBQUosRUFBZiIsImZpbGUiOiIuL2FwcC9mb3Jtcy9zdGF0ZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgSW1tdXRhYmxlIGZyb20gJ2ltbXV0YWJsZSc7XG5pbXBvcnQgaW1tdXRhYmxlZGlmZiBmcm9tICdpbW11dGFibGVkaWZmJztcbmltcG9ydCAnLi4vdXRpbHMvanF1ZXJ5LXV0aWxzJztcblxubGV0IEZvcm1Mb2FkU3RhdGUgPSB7fTtcblxuY29uc3QgRE9NQmVoYXZpb3JzID0ge1xuICAgIGF0dGFjaCgpIHtcbiAgICAgICAgdGhpcy5wcmV2ZW50VW5sb2FkKCk7XG4gICAgICAgIHRoaXMucHJldmVudENsaWNrQXdheSgpO1xuICAgIH0sXG5cbiAgICBwcmV2ZW50VW5sb2FkKCkge1xuICAgICAgICBsZXQgc2VsZWN0b3IgPSAnW25hbWU9XCJ0YXNrXCJdW3ZhbHVlXj1cInNhdmVcIl0sIFtkYXRhLWRlbGV0ZS1hY3Rpb25dLCBbZGF0YS1mbGV4LXNhZmUtYWN0aW9uXSc7XG4gICAgICAgIGlmICgkLl9kYXRhKHdpbmRvdywgJ2V2ZW50cycpICYmICgkLl9kYXRhKHdpbmRvdywgJ2V2ZW50cycpLmJlZm9yZXVubG9hZCB8fCBbXSkuZmlsdGVyKChldmVudCkgPT4gZXZlbnQubmFtZXNwYWNlID09PSAnX2dyYXYnKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFsbG93IHNvbWUgZWxlbWVudHMgdG8gbGVhdmUgdGhlIHBhZ2Ugd2l0aG91dCBuYXRpdmUgY29uZmlybWF0aW9uXG4gICAgICAgICQoc2VsZWN0b3IpLm9uKCdjbGljay5fZ3JhdicsIGZ1bmN0aW9uKGV2ZW50KSB7XG4gICAgICAgICAgICAkKGdsb2JhbCkub2ZmKCdiZWZvcmV1bmxvYWQnKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gQ2F0Y2ggYnJvd3NlciB1cmkgY2hhbmdlIC8gcmVmcmVzaCBhdHRlbXB0IGFuZCBzdG9wIGl0IGlmIHRoZSBmb3JtIHN0YXRlIGlzIGRpcnR5XG4gICAgICAgICQoZ2xvYmFsKS5vbignYmVmb3JldW5sb2FkLl9ncmF2JywgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKEluc3RhbmNlLmVxdWFscygpID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnWW91IGhhdmUgbWFkZSBjaGFuZ2VzIG9uIHRoaXMgcGFnZSB0aGF0IHlvdSBoYXZlIG5vdCB5ZXQgY29uZmlybWVkLiBJZiB5b3UgbmF2aWdhdGUgYXdheSBmcm9tIHRoaXMgcGFnZSB5b3Ugd2lsbCBsb3NlIHlvdXIgdW5zYXZlZCBjaGFuZ2VzLic7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0sXG5cbiAgICBwcmV2ZW50Q2xpY2tBd2F5KCkge1xuICAgICAgICBsZXQgc2VsZWN0b3IgPSAnYVtocmVmXTpub3QoW2hyZWZePVwiI1wiXSk6bm90KFt0YXJnZXQ9XCJfYmxhbmtcIl0pOm5vdChbaHJlZl49XCJqYXZhc2NyaXB0OlwiXSknO1xuXG4gICAgICAgIGlmICgkLl9kYXRhKCQoc2VsZWN0b3IpLmdldCgwKSwgJ2V2ZW50cycpICYmICgkLl9kYXRhKCQoc2VsZWN0b3IpLmdldCgwKSwgJ2V2ZW50cycpLmNsaWNrIHx8IFtdKS5maWx0ZXIoKGV2ZW50KSA9PiBldmVudC5uYW1lc3BhY2UgPT09ICdfZ3JhdicpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBQcmV2ZW50IGNsaWNraW5nIGF3YXkgaWYgdGhlIGZvcm0gc3RhdGUgaXMgZGlydHlcbiAgICAgICAgLy8gaW5zdGVhZCwgZGlzcGxheSBhIGNvbmZpcm1hdGlvbiBiZWZvcmUgY29udGludWluZ1xuICAgICAgICAkKHNlbGVjdG9yKS5vbignY2xpY2suX2dyYXYnLCBmdW5jdGlvbihldmVudCkge1xuICAgICAgICAgICAgbGV0IGlzQ2xlYW4gPSBJbnN0YW5jZS5lcXVhbHMoKTtcbiAgICAgICAgICAgIGlmIChpc0NsZWFuID09PSBudWxsIHx8IGlzQ2xlYW4pIHsgcmV0dXJuIHRydWU7IH1cblxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgICAgbGV0IGRlc3RpbmF0aW9uID0gJCh0aGlzKS5hdHRyKCdocmVmJyk7XG4gICAgICAgICAgICBsZXQgbW9kYWwgPSAkKCdbZGF0YS1yZW1vZGFsLWlkPVwiY2hhbmdlc1wiXScpO1xuICAgICAgICAgICAgbGV0IGxvb2t1cCA9ICQucmVtb2RhbC5sb29rdXBbbW9kYWwuZGF0YSgncmVtb2RhbCcpXTtcbiAgICAgICAgICAgIGxldCBidXR0b25zID0gJCgnYS5idXR0b24nLCBtb2RhbCk7XG5cbiAgICAgICAgICAgIGxldCBoYW5kbGVyID0gZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGxldCBhY3Rpb24gPSAkKHRoaXMpLmRhdGEoJ2xlYXZlLWFjdGlvbicpO1xuXG4gICAgICAgICAgICAgICAgYnV0dG9ucy5vZmYoJ2NsaWNrJywgaGFuZGxlcik7XG4gICAgICAgICAgICAgICAgbG9va3VwLmNsb3NlKCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoYWN0aW9uID09PSAnY29udGludWUnKSB7XG4gICAgICAgICAgICAgICAgICAgICQoZ2xvYmFsKS5vZmYoJ2JlZm9yZXVubG9hZCcpO1xuICAgICAgICAgICAgICAgICAgICBnbG9iYWwubG9jYXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGJ1dHRvbnMub24oJ2NsaWNrJywgaGFuZGxlcik7XG4gICAgICAgICAgICBsb29rdXAub3BlbigpO1xuICAgICAgICB9KTtcbiAgICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGb3JtU3RhdGUge1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMgPSB7XG4gICAgICAgIGlnbm9yZTogW10sXG4gICAgICAgIGZvcm1faWQ6ICdibHVlcHJpbnRzJ1xuICAgIH0pIHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmZvcm0gfHwgIXRoaXMuZmllbGRzLmxlbmd0aCkgeyByZXR1cm47IH1cbiAgICAgICAgRm9ybUxvYWRTdGF0ZSA9IHRoaXMuY29sbGVjdCgpO1xuICAgICAgICB0aGlzLmxvYWRTdGF0ZSA9IEZvcm1Mb2FkU3RhdGU7XG4gICAgICAgIERPTUJlaGF2aW9ycy5hdHRhY2goKTtcbiAgICB9XG5cbiAgICByZWZyZXNoKCkge1xuICAgICAgICB0aGlzLmZvcm0gPSAkKGBmb3JtIyR7dGhpcy5vcHRpb25zLmZvcm1faWR9YCkuZmlsdGVyKCc6bm9wYXJlbnRzKC5yZW1vZGFsKScpO1xuICAgICAgICB0aGlzLmZpZWxkcyA9ICQoYGZvcm0jJHt0aGlzLm9wdGlvbnMuZm9ybV9pZH0gKiwgW2Zvcm09XCIke3RoaXMub3B0aW9ucy5mb3JtX2lkfVwiXWApLmZpbHRlcignOmlucHV0Om5vdCgubm8tZm9ybSknKS5maWx0ZXIoJzpub3BhcmVudHMoLnJlbW9kYWwpJyk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgY29sbGVjdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmZvcm0gfHwgIXRoaXMuZmllbGRzLmxlbmd0aCkgeyByZXR1cm47IH1cblxuICAgICAgICBsZXQgdmFsdWVzID0ge307XG4gICAgICAgIHRoaXMucmVmcmVzaCgpLmZpZWxkcy5lYWNoKChpbmRleCwgZmllbGQpID0+IHtcbiAgICAgICAgICAgIGZpZWxkID0gJChmaWVsZCk7XG4gICAgICAgICAgICBsZXQgbmFtZSA9IGZpZWxkLnByb3AoJ25hbWUnKTtcbiAgICAgICAgICAgIGxldCB0eXBlID0gZmllbGQucHJvcCgndHlwZScpO1xuICAgICAgICAgICAgbGV0IHRhZyA9IGZpZWxkLnByb3AoJ3RhZ05hbWUnKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgbGV0IHZhbHVlO1xuXG4gICAgICAgICAgICBpZiAobmFtZS5zdGFydHNXaXRoKCd0b2dnbGVhYmxlXycpIHx8IG5hbWUgPT09ICdkYXRhW2xhbmddJyB8fCBuYW1lID09PSAnZGF0YVtyZWRpcmVjdF0nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdjaGVja2JveCc6XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZmllbGQuaXMoJzpjaGVja2VkJyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3JhZGlvJzpcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFmaWVsZC5pcygnOmNoZWNrZWQnKSkgeyByZXR1cm47IH1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBmaWVsZC52YWwoKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBmaWVsZC52YWwoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRhZyA9PT0gJ3NlbGVjdCcgJiYgdmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9ICcnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmpvaW4oJ3wnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG5hbWUgJiYgIX50aGlzLm9wdGlvbnMuaWdub3JlLmluZGV4T2YobmFtZSkpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZXNbbmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIEltbXV0YWJsZS5PcmRlcmVkTWFwKHZhbHVlcyk7XG4gICAgfVxuXG4gICAgZGlmZigpIHtcbiAgICAgICAgcmV0dXJuIGltbXV0YWJsZWRpZmYoRm9ybUxvYWRTdGF0ZSwgdGhpcy5jb2xsZWN0KCkpO1xuICAgIH1cblxuICAgIC8vIFdoZW4gdGhlIGZvcm0gZG9lc24ndCBleGlzdCBvciB0aGVyZSBhcmUgbm8gZmllbGRzLCBgZXF1YWxzYCByZXR1cm5zIGBudWxsYFxuICAgIC8vIGZvciB0aGlzIHJlYXNvbiwgX05FVkVSXyBjaGVjayB3aXRoICFJbnN0YW5jZS5lcXVhbHMoKSwgdXNlIEluc3RhbmNlLmVxdWFscygpID09PSBmYWxzZVxuICAgIGVxdWFscygpIHtcbiAgICAgICAgaWYgKCF0aGlzLmZvcm0gfHwgIXRoaXMuZmllbGRzLmxlbmd0aCkgeyByZXR1cm4gbnVsbDsgfVxuICAgICAgICByZXR1cm4gSW1tdXRhYmxlLmlzKEZvcm1Mb2FkU3RhdGUsIHRoaXMuY29sbGVjdCgpKTtcbiAgICB9XG59O1xuXG5leHBvcnQgbGV0IEluc3RhbmNlID0gbmV3IEZvcm1TdGF0ZSgpO1xuXG5leHBvcnQgeyBET01CZWhhdmlvcnMgfTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/forms/state.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/main.js":
|
|
/*!*********************!*\
|
|
!*** ./app/main.js ***!
|
|
\*********************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _babel_polyfill__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/polyfill */ \"./node_modules/@babel/polyfill/lib/index.js\");\n/* harmony import */ var _babel_polyfill__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_polyfill__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_remodal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/remodal */ \"./app/utils/remodal.js\");\n/* harmony import */ var simplebar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! simplebar */ \"./node_modules/simplebar/dist/simplebar.esm.js\");\n/* harmony import */ var _utils_gpm__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils/gpm */ \"./app/utils/gpm.js\");\n/* harmony import */ var _utils_keepalive__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/keepalive */ \"./app/utils/keepalive.js\");\n/* harmony import */ var _updates__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./updates */ \"./app/updates/index.js\");\n/* harmony import */ var _dashboard__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./dashboard */ \"./app/dashboard/index.js\");\n/* harmony import */ var _pages__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./pages */ \"./app/pages/index.js\");\n/* harmony import */ var _forms__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./forms */ \"./app/forms/index.js\");\n/* harmony import */ var _utils_cookies__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./utils/cookies */ \"./app/utils/cookies.js\");\n/* harmony import */ var _plugins__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./plugins */ \"./app/plugins/index.js\");\n/* harmony import */ var _themes__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./themes */ \"./app/themes/index.js\");\n/* harmony import */ var _media__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./media */ \"./app/media/index.js\");\n/* harmony import */ var _utils_toastr__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./utils/toastr */ \"./app/utils/toastr.js\");\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./utils/request */ \"./app/utils/request.js\");\n/* harmony import */ var _utils_2fa__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./utils/2fa */ \"./app/utils/2fa.js\");\n/* harmony import */ var _tools__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./tools */ \"./app/tools/index.js\");\n/* harmony import */ var _whitelabel__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./whitelabel */ \"./app/whitelabel/index.js\");\n/* harmony import */ var _utils_bootstrap_transition__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./utils/bootstrap-transition */ \"./app/utils/bootstrap-transition.js\");\n/* harmony import */ var _utils_bootstrap_collapse__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./utils/bootstrap-collapse */ \"./app/utils/bootstrap-collapse.js\");\n/* harmony import */ var _utils_bootstrap_dropdown__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./utils/bootstrap-dropdown */ \"./app/utils/bootstrap-dropdown.js\");\n/* harmony import */ var _utils_tabs_memory__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./utils/tabs-memory */ \"./app/utils/tabs-memory.js\");\n/* harmony import */ var _utils_changelog__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./utils/changelog */ \"./app/utils/changelog.js\");\n/* harmony import */ var _utils_sidebar__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./utils/sidebar */ \"./app/utils/sidebar.js\");\n// polyfills\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n // bootstrap jQuery extensions\n\n\n\n // tabs memory\n\n // changelog\n\n // Main Sidebar\n\n // starts the keep alive, auto runs every X seconds\n\n_utils_keepalive__WEBPACK_IMPORTED_MODULE_5__.default.start(); // global event to catch sidebar_state changes\n\njquery__WEBPACK_IMPORTED_MODULE_1___default()(__webpack_require__.g).on('sidebar_state._grav', function () {\n Object.keys(_dashboard__WEBPACK_IMPORTED_MODULE_7__.default.Chart.Instances).forEach(function (chart) {\n setTimeout(function () {\n return _dashboard__WEBPACK_IMPORTED_MODULE_7__.default.Chart.Instances[chart].chart.update();\n }, 10);\n });\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n GPM: {\n GPM: _utils_gpm__WEBPACK_IMPORTED_MODULE_4__.default,\n Instance: _utils_gpm__WEBPACK_IMPORTED_MODULE_4__.Instance\n },\n KeepAlive: _utils_keepalive__WEBPACK_IMPORTED_MODULE_5__.default,\n Dashboard: _dashboard__WEBPACK_IMPORTED_MODULE_7__.default,\n Pages: _pages__WEBPACK_IMPORTED_MODULE_8__.default,\n Forms: _forms__WEBPACK_IMPORTED_MODULE_9__.default,\n Updates: {\n Updates: _updates__WEBPACK_IMPORTED_MODULE_6__.default,\n Notifications: _updates__WEBPACK_IMPORTED_MODULE_6__.Notifications,\n Feed: _updates__WEBPACK_IMPORTED_MODULE_6__.Feed,\n Instance: _updates__WEBPACK_IMPORTED_MODULE_6__.Instance\n },\n Sidebar: {\n Sidebar: _utils_sidebar__WEBPACK_IMPORTED_MODULE_24__.default,\n Instance: _utils_sidebar__WEBPACK_IMPORTED_MODULE_24__.Instance\n },\n MediaFilter: {\n MediaFilter: _media__WEBPACK_IMPORTED_MODULE_13__.default,\n Instance: _media__WEBPACK_IMPORTED_MODULE_13__.Instance\n },\n Scrollbar: {\n Scrollbar: {\n deprecated: true\n },\n Instance: {\n deprecated: true\n }\n },\n Utils: {\n request: _utils_request__WEBPACK_IMPORTED_MODULE_15__.default,\n toastr: _utils_toastr__WEBPACK_IMPORTED_MODULE_14__.default,\n Cookies: _utils_cookies__WEBPACK_IMPORTED_MODULE_10__.default\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL21haW4uanM/ZjE2MSJdLCJuYW1lcyI6WyJLZWVwQWxpdmUiLCIkIiwiZ2xvYmFsIiwib24iLCJPYmplY3QiLCJrZXlzIiwiRGFzaGJvYXJkIiwiZm9yRWFjaCIsImNoYXJ0Iiwic2V0VGltZW91dCIsInVwZGF0ZSIsIkdQTSIsIkluc3RhbmNlIiwiZ3BtIiwiUGFnZXMiLCJGb3JtcyIsIlVwZGF0ZXMiLCJOb3RpZmljYXRpb25zIiwiRmVlZCIsInVwZGF0ZXMiLCJTaWRlYmFyIiwic2lkZWJhciIsIk1lZGlhRmlsdGVyIiwiTWVkaWFGaWx0ZXJJbnN0YW5jZSIsIlNjcm9sbGJhciIsImRlcHJlY2F0ZWQiLCJVdGlscyIsInJlcXVlc3QiLCJ0b2FzdHIiLCJDb29raWVzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Q0FHQTs7QUFDQTtBQUNBO0NBR0E7O0NBR0E7O0NBR0E7O0NBR0E7O0FBQ0FBLDJEQUFBLEcsQ0FFQTs7QUFDQUMsNkNBQUMsQ0FBQ0MscUJBQUQsQ0FBRCxDQUFVQyxFQUFWLENBQWEscUJBQWIsRUFBb0MsWUFBTTtBQUN0Q0MsUUFBTSxDQUFDQyxJQUFQLENBQVlDLCtEQUFaLEVBQXVDQyxPQUF2QyxDQUErQyxVQUFDQyxLQUFELEVBQVc7QUFDdERDLGNBQVUsQ0FBQztBQUFBLGFBQU1ILCtEQUFBLENBQTBCRSxLQUExQixFQUFpQ0EsS0FBakMsQ0FBdUNFLE1BQXZDLEVBQU47QUFBQSxLQUFELEVBQXdELEVBQXhELENBQVY7QUFDSCxHQUZEO0FBR0gsQ0FKRDtBQU1BLGlFQUFlO0FBQ1hDLEtBQUcsRUFBRTtBQUNEQSxPQUFHLEVBQUhBLCtDQURDO0FBRURDLFlBQVEsRUFBRUMsZ0RBQUdBO0FBRlosR0FETTtBQUtYYixXQUFTLEVBQVRBLHFEQUxXO0FBTVhNLFdBQVMsRUFBVEEsK0NBTlc7QUFPWFEsT0FBSyxFQUFMQSwyQ0FQVztBQVFYQyxPQUFLLEVBQUxBLDJDQVJXO0FBU1hDLFNBQU8sRUFBRTtBQUNMQSxXQUFPLEVBQVBBLDZDQURLO0FBRUxDLGlCQUFhLEVBQWJBLG1EQUZLO0FBR0xDLFFBQUksRUFBSkEsMENBSEs7QUFJTE4sWUFBUSxFQUFFTyw4Q0FBT0E7QUFKWixHQVRFO0FBZVhDLFNBQU8sRUFBRTtBQUNMQSxXQUFPLEVBQVBBLG9EQURLO0FBRUxSLFlBQVEsRUFBRVMscURBQU9BO0FBRlosR0FmRTtBQW1CWEMsYUFBVyxFQUFFO0FBQ1RBLGVBQVcsRUFBWEEsNENBRFM7QUFFVFYsWUFBUSxFQUFFVyw2Q0FBbUJBO0FBRnBCLEdBbkJGO0FBdUJYQyxXQUFTLEVBQUU7QUFBRUEsYUFBUyxFQUFFO0FBQUVDLGdCQUFVLEVBQUU7QUFBZCxLQUFiO0FBQW1DYixZQUFRLEVBQUU7QUFBRWEsZ0JBQVUsRUFBRTtBQUFkO0FBQTdDLEdBdkJBO0FBd0JYQyxPQUFLLEVBQUU7QUFBRUMsV0FBTyxFQUFQQSxvREFBRjtBQUFXQyxVQUFNLEVBQU5BLG1EQUFYO0FBQW1CQyxXQUFPLEVBQVBBLG9EQUFPQTtBQUExQjtBQXhCSSxDQUFmIiwiZmlsZSI6Ii4vYXBwL21haW4uanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBwb2x5ZmlsbHNcbmltcG9ydCAnQGJhYmVsL3BvbHlmaWxsJztcblxuaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCAnLi91dGlscy9yZW1vZGFsJztcbmltcG9ydCAnc2ltcGxlYmFyJztcbmltcG9ydCBHUE0sIHsgSW5zdGFuY2UgYXMgZ3BtIH0gZnJvbSAnLi91dGlscy9ncG0nO1xuaW1wb3J0IEtlZXBBbGl2ZSBmcm9tICcuL3V0aWxzL2tlZXBhbGl2ZSc7XG5pbXBvcnQgVXBkYXRlcywgeyBJbnN0YW5jZSBhcyB1cGRhdGVzLCBOb3RpZmljYXRpb25zLCBGZWVkIH0gZnJvbSAnLi91cGRhdGVzJztcbmltcG9ydCBEYXNoYm9hcmQgZnJvbSAnLi9kYXNoYm9hcmQnO1xuaW1wb3J0IFBhZ2VzIGZyb20gJy4vcGFnZXMnO1xuaW1wb3J0IEZvcm1zIGZyb20gJy4vZm9ybXMnO1xuaW1wb3J0IENvb2tpZXMgZnJvbSAnLi91dGlscy9jb29raWVzJztcbmltcG9ydCAnLi9wbHVnaW5zJztcbmltcG9ydCAnLi90aGVtZXMnO1xuaW1wb3J0IE1lZGlhRmlsdGVyLCB7IEluc3RhbmNlIGFzIE1lZGlhRmlsdGVySW5zdGFuY2V9IGZyb20gJy4vbWVkaWEnO1xuaW1wb3J0IHRvYXN0ciBmcm9tICcuL3V0aWxzL3RvYXN0cic7XG5pbXBvcnQgcmVxdWVzdCBmcm9tICcuL3V0aWxzL3JlcXVlc3QnO1xuaW1wb3J0ICcuL3V0aWxzLzJmYSc7XG5pbXBvcnQgJy4vdG9vbHMnO1xuaW1wb3J0ICcuL3doaXRlbGFiZWwnO1xuXG4vLyBib290c3RyYXAgalF1ZXJ5IGV4dGVuc2lvbnNcbmltcG9ydCAnLi91dGlscy9ib290c3RyYXAtdHJhbnNpdGlvbic7XG5pbXBvcnQgJy4vdXRpbHMvYm9vdHN0cmFwLWNvbGxhcHNlJztcbmltcG9ydCAnLi91dGlscy9ib290c3RyYXAtZHJvcGRvd24nO1xuXG4vLyB0YWJzIG1lbW9yeVxuaW1wb3J0ICcuL3V0aWxzL3RhYnMtbWVtb3J5JztcblxuLy8gY2hhbmdlbG9nXG5pbXBvcnQgJy4vdXRpbHMvY2hhbmdlbG9nJztcblxuLy8gTWFpbiBTaWRlYmFyXG5pbXBvcnQgU2lkZWJhciwgeyBJbnN0YW5jZSBhcyBzaWRlYmFyIH0gZnJvbSAnLi91dGlscy9zaWRlYmFyJztcblxuLy8gc3RhcnRzIHRoZSBrZWVwIGFsaXZlLCBhdXRvIHJ1bnMgZXZlcnkgWCBzZWNvbmRzXG5LZWVwQWxpdmUuc3RhcnQoKTtcblxuLy8gZ2xvYmFsIGV2ZW50IHRvIGNhdGNoIHNpZGViYXJfc3RhdGUgY2hhbmdlc1xuJChnbG9iYWwpLm9uKCdzaWRlYmFyX3N0YXRlLl9ncmF2JywgKCkgPT4ge1xuICAgIE9iamVjdC5rZXlzKERhc2hib2FyZC5DaGFydC5JbnN0YW5jZXMpLmZvckVhY2goKGNoYXJ0KSA9PiB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gRGFzaGJvYXJkLkNoYXJ0Lkluc3RhbmNlc1tjaGFydF0uY2hhcnQudXBkYXRlKCksIDEwKTtcbiAgICB9KTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gICAgR1BNOiB7XG4gICAgICAgIEdQTSxcbiAgICAgICAgSW5zdGFuY2U6IGdwbVxuICAgIH0sXG4gICAgS2VlcEFsaXZlLFxuICAgIERhc2hib2FyZCxcbiAgICBQYWdlcyxcbiAgICBGb3JtcyxcbiAgICBVcGRhdGVzOiB7XG4gICAgICAgIFVwZGF0ZXMsXG4gICAgICAgIE5vdGlmaWNhdGlvbnMsXG4gICAgICAgIEZlZWQsXG4gICAgICAgIEluc3RhbmNlOiB1cGRhdGVzXG4gICAgfSxcbiAgICBTaWRlYmFyOiB7XG4gICAgICAgIFNpZGViYXIsXG4gICAgICAgIEluc3RhbmNlOiBzaWRlYmFyXG4gICAgfSxcbiAgICBNZWRpYUZpbHRlcjoge1xuICAgICAgICBNZWRpYUZpbHRlcixcbiAgICAgICAgSW5zdGFuY2U6IE1lZGlhRmlsdGVySW5zdGFuY2VcbiAgICB9LFxuICAgIFNjcm9sbGJhcjogeyBTY3JvbGxiYXI6IHsgZGVwcmVjYXRlZDogdHJ1ZSB9LCBJbnN0YW5jZTogeyBkZXByZWNhdGVkOiB0cnVlIH0gfSxcbiAgICBVdGlsczogeyByZXF1ZXN0LCB0b2FzdHIsIENvb2tpZXMgfVxufTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/main.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/media/index.js":
|
|
/*!****************************!*\
|
|
!*** ./app/media/index.js ***!
|
|
\****************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Filter),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/request */ \"./app/utils/request.js\");\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); return Constructor; }\n\n\n\n\n\nvar Filter = /*#__PURE__*/function () {\n function Filter() {\n _classCallCheck(this, Filter);\n\n this.URI = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/media-manager/\");\n }\n\n _createClass(Filter, [{\n key: \"filter\",\n value: function filter(name, value) {\n var filtered = [];\n var keys = Object.keys(grav_config__WEBPACK_IMPORTED_MODULE_1__.uri_params);\n\n if (!~keys.indexOf(name)) {\n keys.push(name);\n }\n\n keys.forEach(function (key) {\n var filter = Filter.cleanValue(key === name ? value : grav_config__WEBPACK_IMPORTED_MODULE_1__.uri_params[key]);\n\n if (filter !== '*') {\n filtered.push(\"\".concat(key).concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep).concat(filter));\n }\n });\n __webpack_require__.g.location = this.URI + filtered.join('/');\n }\n }], [{\n key: \"cleanValue\",\n value: function cleanValue(value) {\n return encodeURIComponent(value.replace('/', '\\\\'));\n }\n }]);\n\n return Filter;\n}();\n\n\nvar Instance = new Filter();\nvar isLoading = false;\nvar filters = {};\nvar global_index = 1;\nvar files_ended = false;\nvar MEDIA_PAGINATION_INTERVAL = 20;\n/* handle changing file type / date filter */\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('change', '.thumbs-list-container select.filter', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var filterName = target.data('name');\n var filterValue = target.val();\n\n if (filterValue) {\n filters[filterName] = filterValue;\n } else {\n delete filters[filterName];\n }\n\n filterFiles();\n});\n/* initialize media uploader */\n\nif (jquery__WEBPACK_IMPORTED_MODULE_0___default()('.thumbs-list-container .dropzone')[0]) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.thumbs-list-container .dropzone')[0].dropzone.on('queuecomplete', function () {\n var body = {};\n\n if (filters.page) {\n body.page = filters.page;\n }\n\n if (filters.date) {\n body.date = filters.date;\n }\n\n if (filters.type) {\n body.type = filters.type;\n }\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.dropzone')[0].dropzone.files.forEach(function (file) {\n file.previewElement.remove();\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.dropzone').first().removeClass('dz-started');\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__.default)(\"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/media-manager.json/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep, \"clearMediaCache\"), {\n method: 'post',\n body: body\n }, function () {\n filterFiles();\n });\n });\n}\n/* handle loading media */\n\n\nvar loadMedia = function loadMedia(filters, callback) {\n var url = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/media.json/tmpl\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep, \"media-list-content/index\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep).concat(global_index);\n\n if (filters.page) {\n url += \"/page\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep).concat(filters.page.split('/').join('%5C'));\n }\n\n if (filters.type && filters.type !== '*') {\n url += \"/type\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep).concat(filters.type);\n }\n\n if (filters.date && filters.date !== '*') {\n url += \"/date\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep).concat(filters.date);\n }\n\n if (!isLoading) {\n isLoading = true;\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.spinning-wheel').show();\n jquery__WEBPACK_IMPORTED_MODULE_0___default().get(url, function (content) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__files').append(content);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.spinning-wheel').hide();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.media-container .media-range').trigger('change');\n isLoading = false;\n global_index++;\n callback(content);\n });\n }\n};\n\nvar cleanFilesList = function cleanFilesList() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__files .card-item').remove();\n};\n\nvar resetActiveStateInSidebar = function resetActiveStateInSidebar() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.pages-list-container .row').removeClass('active'); // clear active state in sidebar\n};\n\nvar showEmptyState = function showEmptyState() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.thumbs-list-container').append('<p class=\"card-item empty-space\">No media found</p>');\n};\n\nvar filterFiles = function filterFiles() {\n cleanFilesList();\n global_index = 0;\n files_ended = false;\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.empty-space').remove();\n loadMedia(filters, function (content) {\n if (!content.trim().length) {\n showEmptyState();\n } else {\n if (!filters.page && (!filters.date || filters.date === '*') && (!filters.type || filters.type === '*')) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__files').trigger('fillView');\n }\n }\n });\n};\n/* handle changing page */\n\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('click', '.pages-list-container .js__page-link', function (event) {\n var page = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).data('page');\n filters['page'] = page;\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.media-list-title .page-indicator').html(page); // set indication\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__reset-pages-filter').removeClass('hidden'); // activate reset pages icon\n\n resetActiveStateInSidebar();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).parents('.row').addClass('active'); // set active state in sidebar\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__file-uploader').removeClass('hidden'); // customize processing URL, as the page changes dynamically\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()('.dropzone')[0]) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.dropzone')[0].dropzone.on('processing', function (file) {\n this.options.url = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/media-manager\").concat(page, \".json/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep, \"addmedia\");\n });\n }\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__button-clear-media-cache').addClass('hidden');\n filterFiles();\n disableInfiniteScrolling(); // only infinite scroll on main list, not inside single pages\n});\n/* handle clearing page filter */\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('click', '.js__reset-pages-filter', function (event) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.media-list-title .page-indicator').html('All Pages'); // set indication\n\n cleanFilesList();\n resetActiveStateInSidebar();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__reset-pages-filter').addClass('hidden'); // remove reset pages icon\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__file-uploader').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__button-clear-media-cache').removeClass('hidden');\n delete filters['page'];\n filterFiles();\n});\n/* handle infinite loading */\n\nvar enableInfiniteScrolling = function enableInfiniteScrolling() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.spinning-wheel').hide();\n var view = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.mediapicker-scroll').last();\n\n if (!view.length) {\n return;\n }\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(view).on('scroll', function () {\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).scrollTop() + jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).innerHeight() + 100 >= jquery__WEBPACK_IMPORTED_MODULE_0___default()(this)[0].scrollHeight) {\n fillView();\n }\n });\n};\n\nvar loadNextBatch = function loadNextBatch(callback) {\n if (files_ended) {\n return;\n }\n\n loadMedia({}, function (content) {\n if (!jquery__WEBPACK_IMPORTED_MODULE_0___default()(content).length || content.split('card-item').length - 1 < MEDIA_PAGINATION_INTERVAL) {\n files_ended = true;\n } else {\n if (callback) {\n callback();\n }\n }\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.media-container .media-range').trigger('input');\n });\n};\n\nvar fillView = function fillView() {\n if (!jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__files').find('.card-item').last().offset()) {\n setTimeout(function () {\n // retry later\n fillView();\n }, 300);\n return;\n }\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__files').find('.card-item').last().offset().top - 1 <= jquery__WEBPACK_IMPORTED_MODULE_0___default()('.media-container').height()) {\n loadNextBatch(function () {\n fillView();\n });\n }\n};\n/* disable infinite loading */\n\n\nvar disableInfiniteScrolling = function disableInfiniteScrolling() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.spinning-wheel').hide();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.content-wrapper').unbind('scroll');\n};\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__files').on('fillView', function (event) {\n // the first batch got the max number of media files, try loading more\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js__files')[0].innerHTML.split('card-item').length - 1 === MEDIA_PAGINATION_INTERVAL) {\n fillView();\n enableInfiniteScrolling();\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL21lZGlhL2luZGV4LmpzPzE1NDAiXSwibmFtZXMiOlsiRmlsdGVyIiwiVVJJIiwiY29uZmlnIiwibmFtZSIsInZhbHVlIiwiZmlsdGVyZWQiLCJrZXlzIiwiT2JqZWN0IiwidXJpX3BhcmFtcyIsImluZGV4T2YiLCJwdXNoIiwiZm9yRWFjaCIsImtleSIsImZpbHRlciIsImNsZWFuVmFsdWUiLCJnbG9iYWwiLCJsb2NhdGlvbiIsImpvaW4iLCJlbmNvZGVVUklDb21wb25lbnQiLCJyZXBsYWNlIiwiSW5zdGFuY2UiLCJpc0xvYWRpbmciLCJmaWx0ZXJzIiwiZ2xvYmFsX2luZGV4IiwiZmlsZXNfZW5kZWQiLCJNRURJQV9QQUdJTkFUSU9OX0lOVEVSVkFMIiwiJCIsIm9uIiwiZXZlbnQiLCJ0YXJnZXQiLCJjdXJyZW50VGFyZ2V0IiwiZmlsdGVyTmFtZSIsImRhdGEiLCJmaWx0ZXJWYWx1ZSIsInZhbCIsImZpbHRlckZpbGVzIiwiZHJvcHpvbmUiLCJib2R5IiwicGFnZSIsImRhdGUiLCJ0eXBlIiwiZmlsZXMiLCJmaWxlIiwicHJldmlld0VsZW1lbnQiLCJyZW1vdmUiLCJmaXJzdCIsInJlbW92ZUNsYXNzIiwicmVxdWVzdCIsIm1ldGhvZCIsImxvYWRNZWRpYSIsImNhbGxiYWNrIiwidXJsIiwic3BsaXQiLCJzaG93IiwiY29udGVudCIsImFwcGVuZCIsImhpZGUiLCJ0cmlnZ2VyIiwiY2xlYW5GaWxlc0xpc3QiLCJyZXNldEFjdGl2ZVN0YXRlSW5TaWRlYmFyIiwic2hvd0VtcHR5U3RhdGUiLCJ0cmltIiwibGVuZ3RoIiwiaHRtbCIsInBhcmVudHMiLCJhZGRDbGFzcyIsIm9wdGlvbnMiLCJkaXNhYmxlSW5maW5pdGVTY3JvbGxpbmciLCJlbmFibGVJbmZpbml0ZVNjcm9sbGluZyIsInZpZXciLCJsYXN0Iiwic2Nyb2xsVG9wIiwiaW5uZXJIZWlnaHQiLCJzY3JvbGxIZWlnaHQiLCJmaWxsVmlldyIsImxvYWROZXh0QmF0Y2giLCJmaW5kIiwib2Zmc2V0Iiwic2V0VGltZW91dCIsInRvcCIsImhlaWdodCIsInVuYmluZCIsImlubmVySFRNTCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTs7SUFFcUJBLE07QUFDakIsb0JBQWM7QUFBQTs7QUFDVixTQUFLQyxHQUFMLGFBQWNDLGlFQUFkO0FBQ0g7Ozs7V0FFRCxnQkFBT0MsSUFBUCxFQUFhQyxLQUFiLEVBQW9CO0FBQ2hCLFVBQUlDLFFBQVEsR0FBRyxFQUFmO0FBQ0EsVUFBSUMsSUFBSSxHQUFHQyxNQUFNLENBQUNELElBQVAsQ0FBWUUsbURBQVosQ0FBWDs7QUFDQSxVQUFJLENBQUMsQ0FBQ0YsSUFBSSxDQUFDRyxPQUFMLENBQWFOLElBQWIsQ0FBTixFQUEwQjtBQUFFRyxZQUFJLENBQUNJLElBQUwsQ0FBVVAsSUFBVjtBQUFrQjs7QUFFOUNHLFVBQUksQ0FBQ0ssT0FBTCxDQUFhLFVBQUNDLEdBQUQsRUFBUztBQUNsQixZQUFJQyxNQUFNLEdBQUdiLE1BQU0sQ0FBQ2MsVUFBUCxDQUFrQkYsR0FBRyxLQUFLVCxJQUFSLEdBQWVDLEtBQWYsR0FBdUJJLG1EQUFVLENBQUNJLEdBQUQsQ0FBbkQsQ0FBYjs7QUFDQSxZQUFJQyxNQUFNLEtBQUssR0FBZixFQUFvQjtBQUNoQlIsa0JBQVEsQ0FBQ0ssSUFBVCxXQUFpQkUsR0FBakIsU0FBdUJWLHlEQUF2QixTQUEwQ1csTUFBMUM7QUFDSDtBQUNKLE9BTEQ7QUFPQUUsMkJBQU0sQ0FBQ0MsUUFBUCxHQUFrQixLQUFLZixHQUFMLEdBQVdJLFFBQVEsQ0FBQ1ksSUFBVCxDQUFjLEdBQWQsQ0FBN0I7QUFDSDs7O1dBRUQsb0JBQWtCYixLQUFsQixFQUF5QjtBQUNyQixhQUFPYyxrQkFBa0IsQ0FBQ2QsS0FBSyxDQUFDZSxPQUFOLENBQWMsR0FBZCxFQUFtQixJQUFuQixDQUFELENBQXpCO0FBQ0g7Ozs7Ozs7QUFHRSxJQUFJQyxRQUFRLEdBQUcsSUFBSXBCLE1BQUosRUFBZjtBQUNQLElB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QUMsWUFBRCxDQUFELENBQWdCa0QsSUFBaEIsQ0FBcUIsWUFBckIsRUFBbUNOLElBQW5DLEdBQTBDTyxNQUExQyxFQUFMLEVBQXlEO0FBQ3JEQyxjQUFVLENBQUMsWUFBVztBQUNsQjtBQUNBSixjQUFRO0FBQ1gsS0FIUyxFQUdQLEdBSE8sQ0FBVjtBQUtBO0FBQ0g7O0FBRUQsTUFBSWhELDZDQUFDLENBQUMsWUFBRCxDQUFELENBQWdCa0QsSUFBaEIsQ0FBcUIsWUFBckIsRUFBbUNOLElBQW5DLEdBQTBDTyxNQUExQyxHQUFtREUsR0FBbkQsR0FBeUQsQ0FBekQsSUFBOERyRCw2Q0FBQyxDQUFDLGtCQUFELENBQUQsQ0FBc0JzRCxNQUF0QixFQUFsRSxFQUFrRztBQUM5RkwsaUJBQWEsQ0FBQyxZQUFXO0FBQ3JCRCxjQUFRO0FBQ1gsS0FGWSxDQUFiO0FBR0g7QUFDSixDQWZEO0FBaUJBOzs7QUFDQSxJQUFJUCx3QkFBd0IsR0FBRyxTQUFTQSx3QkFBVCxHQUFvQztBQUMvRHpDLCtDQUFDLENBQUMsaUJBQUQsQ0FBRCxDQUFxQjhCLElBQXJCO0FBQ0E5QiwrQ0FBQyxDQUFDLGtCQUFELENBQUQsQ0FBc0J1RCxNQUF0QixDQUE2QixRQUE3QjtBQUNILENBSEQ7O0FBS0F2RCw2Q0FBQyxDQUFDLFlBQUQsQ0FBRCxDQUFnQkMsRUFBaEIsQ0FBbUIsVUFBbkIsRUFBK0IsVUFBU0MsS0FBVCxFQUFnQjtBQUMzQztBQUNBLE1BQUtGLDZDQUFDLENBQUMsWUFBRCxDQUFELENBQWdCLENBQWhCLEVBQW1Cd0QsU0FBbkIsQ0FBNkI5QixLQUE3QixDQUFtQyxXQUFuQyxFQUFnRFUsTUFBaEQsR0FBeUQsQ0FBMUQsS0FBaUVyQyx5QkFBckUsRUFBZ0c7QUFDNUZpRCxZQUFRO0FBQ1JOLDJCQUF1QjtBQUMxQjtBQUNKLENBTkQiLCJmaWxlIjoiLi9hcHAvbWVkaWEvaW5kZXguanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IHsgY29uZmlnLCB1cmlfcGFyYW1zIH0gZnJvbSAnZ3Jhdi1jb25maWcnO1xuaW1wb3J0IHJlcXVlc3QgZnJvbSAnLi4vdXRpbHMvcmVxdWVzdCc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZpbHRlciB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuVVJJID0gYCR7Y29uZmlnLmJhc2VfdXJsX3JlbGF0aXZlfS9tZWRpYS1tYW5hZ2VyL2A7XG4gICAgfVxuXG4gICAgZmlsdGVyKG5hbWUsIHZhbHVlKSB7XG4gICAgICAgIGxldCBmaWx0ZXJlZCA9IFtdO1xuICAgICAgICBsZXQga2V5cyA9IE9iamVjdC5rZXlzKHVyaV9wYXJhbXMpO1xuICAgICAgICBpZiAoIX5rZXlzLmluZGV4T2YobmFtZSkpIHsga2V5cy5wdXNoKG5hbWUpOyB9XG5cbiAgICAgICAga2V5cy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgIGxldCBmaWx0ZXIgPSBGaWx0ZXIuY2xlYW5WYWx1ZShrZXkgPT09IG5hbWUgPyB2YWx1ZSA6IHVyaV9wYXJhbXNba2V5XSk7XG4gICAgICAgICAgICBpZiAoZmlsdGVyICE9PSAnKicpIHtcbiAgICAgICAgICAgICAgICBmaWx0ZXJlZC5wdXNoKGAke2tleX0ke2NvbmZpZy5wYXJhbV9zZXB9JHtmaWx0ZXJ9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGdsb2JhbC5sb2NhdGlvbiA9IHRoaXMuVVJJICsgZmlsdGVyZWQuam9pbignLycpO1xuICAgIH1cblxuICAgIHN0YXRpYyBjbGVhblZhbHVlKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBlbmNvZGVVUklDb21wb25lbnQodmFsdWUucmVwbGFjZSgnLycsICdcXFxcJykpO1xuICAgIH1cbn1cblxuZXhwb3J0IGxldCBJbnN0YW5jZSA9IG5ldyBGaWx0ZXIoKTtcbnZhciBpc0xvYWRpbmcgPSBmYWxzZTtcblxudmFyIGZpbHRlcnMgPSB7fTtcbnZhciBnbG9iYWxfaW5kZXggPSAxO1xudmFyIGZpbGVzX2VuZGVkID0gZmFsc2U7XG5jb25zdCBNRURJQV9QQUdJTkFUSU9OX0lOVEVSVkFMID0gMjA7XG5cbi8qIGhhbmRsZSBjaGFuZ2luZyBmaWxlIHR5cGUgLyBkYXRlIGZpbHRlciAqL1xuJCgnYm9keScpLm9uKCdjaGFuZ2UnLCAnLnRodW1icy1saXN0LWNvbnRhaW5lciBzZWxlY3QuZmlsdGVyJywgKGV2ZW50KSA9PiB7XG4gICAgbGV0IHRhcmdldCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgbGV0IGZpbHRlck5hbWUgPSB0YXJnZXQuZGF0YSgnbmFtZScpO1xuICAgIGxldCBmaWx0ZXJWYWx1ZSA9IHRhcmdldC52YWwoKTtcblxuICAgIGlmIChmaWx0ZXJWYWx1ZSkge1xuICAgICAgICBmaWx0ZXJzW2ZpbHRlck5hbWVdID0gZmlsdGVyVmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZGVsZXRlIGZpbHRlcnNbZmlsdGVyTmFtZV07XG4gICAgfVxuXG4gICAgZmlsdGVyRmlsZXMoKTtcbn0pO1xuXG4vKiBpbml0aWFsaXplIG1lZGlhIHVwbG9hZGVyICovXG5pZiAoJCgnLnRodW1icy1saXN0LWNvbnRhaW5lciAuZHJvcHpvbmUnKVswXSkge1xuICAgICQoJy50aHVtYnMtbGlzdC1jb250YWluZXIgLmRyb3B6b25lJylbMF0uZHJvcHpvbmUub24oJ3F1ZXVlY29tcGxldGUnLCBmdW5jdGlvbigpIHtcbiAgICAgICAgbGV0IGJvZHkgPSB7fTtcbiAgICAgICAgaWYgKGZpbHRlcnMucGFnZSkgeyBib2R5LnBhZ2UgPSBmaWx0ZXJzLnBhZ2U7IH1cbiAgICAgICAgaWYgKGZpbHRlcnMuZGF0ZSkgeyBib2R5LmRhdGUgPSBmaWx0ZXJzLmRhdGU7IH1cbiAgICAgICAgaWYgKGZpbHRlcnMudHlwZSkgeyBib2R5LnR5cGUgPSBmaWx0ZXJzLnR5cGU7IH1cblxuICAgICAgICAkKCcuZHJvcHpvbmUnKVswXS5kcm9wem9uZS5maWxlcy5mb3JFYWNoKGZ1bmN0aW9uKGZpbGUpIHsgZmlsZS5wcmV2aWV3RWxlbWVudC5yZW1vdmUoKTsgfSk7XG4gICAgICAgICQoJy5kcm9wem9uZScpLmZpcnN0KCkucmVtb3ZlQ2xhc3MoJ2R6LXN0YXJ0ZWQnKTtcblxuICAgICAgICByZXF1ZXN0KGAke2NvbmZpZy5iYXNlX3VybF9yZWxhdGl2ZX0vbWVkaWEtbWFuYWdlci5qc29uL3Rhc2ske2NvbmZpZy5wYXJhbV9zZXB9Y2xlYXJNZWRpYUNhY2hlYCwgeyBtZXRob2Q6ICdwb3N0JywgYm9keSB9LCAoKSA9PiB7XG4gICAgICAgICAgICBmaWx0ZXJGaWxlcygpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn1cblxuLyogaGFuZGxlIGxvYWRpbmcgbWVkaWEgKi9cbnZhciBsb2FkTWVkaWEgPSBmdW5jdGlvbiBsb2FkTWVkaWEoZmlsdGVycywgY2FsbGJhY2spIHtcbiAgICB2YXIgdXJsID0gYCR7Y29uZmlnLmJhc2VfdXJsX3JlbGF0aXZlfS9tZWRpYS5qc29uL3RtcGwke2NvbmZpZy5wYXJhbV9zZXB9bWVkaWEtbGlzdC1jb250ZW50L2luZGV4JHtjb25maWcucGFyYW1fc2VwfSR7Z2xvYmFsX2luZGV4fWA7XG5cbiAgICBpZiAoZmlsdGVycy5wYWdlKSB7XG4gICAgICAgIHVybCArPSBgL3BhZ2Uke2NvbmZpZy5wYXJhbV9zZXB9JHsoZmlsdGVycy5wYWdlKS5zcGxpdCgnLycpLmpvaW4oJyU1QycpfWA7XG4gICAgfVxuICAgIGlmIChmaWx0ZXJzLnR5cGUgJiYgZmlsdGVycy50eXBlICE9PSAnKicpIHtcbiAgICAgICAgdXJsICs9IGAvdHlwZSR7Y29uZmlnLnBhcmFtX3NlcH0ke2ZpbHRlcnMudHlwZX1gO1xuICAgIH1cbiAgICBpZiAoZmlsdGVycy5kYXRlICYmIGZpbHRlcnMuZGF0ZSAhPT0gJyonKSB7XG4gICAgICAgIHVybCArPSBgL2RhdGUke2NvbmZpZy5wYXJhbV9zZXB9JHtmaWx0ZXJzLmRhdGV9YDtcbiAgICB9XG5cbiAgICBpZiAoIWlzTG9hZGluZykge1xuICAgICAgICBpc0xvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgICQoJy5zcGlubmluZy13aGVlbCcpLnNob3coKTtcbiAgICAgICAgJC5nZXQodXJsLCBmdW5jdGlvbihjb250ZW50KSB7XG4gICAgICAgICAgICAkKCcuanNfX2ZpbGVzJykuYXBwZW5kKGNvbnRlbnQpO1xuICAgICAgICAgICAgJCgnLnNwaW5uaW5nLXdoZWVsJykuaGlkZSgpO1xuICAgICAgICAgICAgJCgnLm1lZGlhLWNvbnRhaW5lciAubWVkaWEtcmFuZ2UnKS50cmlnZ2VyKCdjaGFuZ2UnKTtcbiAgICAgICAgICAgIGlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgZ2xvYmFsX2luZGV4Kys7XG5cbiAgICAgICAgICAgIGNhbGxiYWNrKGNvbnRlbnQpO1xuICAgICAgICB9KTtcbiAgICB9XG59O1xuXG52YXIgY2xlYW5GaWxlc0xpc3QgPSBmdW5jdGlvbiBjbGVhbkZpbGVzTGlzdCgpIHtcbiAgICAkKCcuanNfX2ZpbGVzIC5jYXJkLWl0ZW0nKS5yZW1vdmUoKTtcbn07XG5cbnZhciByZXNldEFjdGl2ZVN0YXRlSW5TaWRlYmFyID0gZnVuY3Rpb24gcmVzZXRBY3RpdmVTdGF0ZUluU2lkZWJhcigpIHtcbiAgICAkKCcucGFnZXMtbGlzdC1jb250YWluZXIgLnJvdycpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTsgLy8gY2xlYXIgYWN0aXZlIHN0YXRlIGluIHNpZGViYXJcbn07XG5cbnZhciBzaG93RW1wdHlTdGF0ZSA9IGZ1bmN0aW9uIHNob3dFbXB0eVN0YXRlKCkge1xuICAgICQoJy50aHVtYnMtbGlzdC1jb250YWluZXInKS5hcHBlbmQoJzxwIGNsYXNzPVwiY2FyZC1pdGVtIGVtcHR5LXNwYWNlXCI+Tm8gbWVkaWEgZm91bmQ8L3A+Jyk7XG59O1xuXG52YXIgZmlsdGVyRmlsZXMgPSBmdW5jdGlvbiBmaWx0ZXJGaWxlcygpIHtcbiAgICBjbGVhbkZpbGVzTGlzdCgpO1xuICAgIGdsb2JhbF9pbmRleCA9IDA7XG4gICAgZmlsZXNfZW5kZWQgPSBmYWxzZTtcbiAgICAkKCcuZW1wdHktc3BhY2UnKS5yZW1vdmUoKTtcbiAgICBsb2FkTWVkaWEoZmlsdGVycywgZnVuY3Rpb24oY29udGVudCkge1xuICAgICAgICBpZiAoIWNvbnRlbnQudHJpbSgpLmxlbmd0aCkge1xuICAgICAgICAgICAgc2hvd0VtcHR5U3RhdGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghZmlsdGVycy5wYWdlICYmICghZmlsdGVycy5kYXRlIHx8IGZpbHRlcnMuZGF0ZSA9PT0gJyonKSAmJiAoIWZpbHRlcnMudHlwZSB8fCBmaWx0ZXJzLnR5cGUgPT09ICcqJykpIHtcbiAgICAgICAgICAgICAgICAkKCcuanNfX2ZpbGVzJykudHJpZ2dlcignZmlsbFZpZXcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xufTtcblxuLyogaGFuZGxlIGNoYW5naW5nIHBhZ2UgKi9cbiQoJ2JvZHknKS5vbignY2xpY2snLCAnLnBhZ2VzLWxpc3QtY29udGFpbmVyIC5qc19fcGFnZS1saW5rJywgKGV2ZW50KSA9PiB7XG4gICAgdmFyIHBhZ2UgPSAkKGV2ZW50LnRhcmdldCkuZGF0YSgncGFnZScpO1xuICAgIGZpbHRlcnNbJ3BhZ2UnXSA9IHBhZ2U7XG5cbiAgICAkKCcubWVkaWEtbGlzdC10aXRsZSAucGFnZS1pbmRpY2F0b3InKS5odG1sKHBhZ2UpOyAvLyBzZXQgaW5kaWNhdGlvblxuICAgICQoJy5qc19fcmVzZXQtcGFnZXMtZmlsdGVyJykucmVtb3ZlQ2xhc3MoJ2hpZGRlbicpOyAvLyBhY3RpdmF0ZSByZXNldCBwYWdlcyBpY29uXG4gICAgcmVzZXRBY3RpdmVTdGF0ZUluU2lkZWJhcigpO1xuICAgICQoZXZlbnQudGFyZ2V0KS5wYXJlbnRzKCcucm93JykuYWRkQ2xhc3MoJ2FjdGl2ZScpOyAvLyBzZXQgYWN0aXZlIHN0YXRlIGluIHNpZGViYXJcbiAgICAkKCcuanNfX2ZpbGUtdXBsb2FkZXInKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG5cbiAgICAvLyBjdXN0b21pemUgcHJvY2Vzc2luZyBVUkwsIGFzIHRoZSBwYWdlIGNoYW5nZXMgZHluYW1pY2FsbHlcbiAgICBpZiAoJCgnLmRyb3B6b25lJylbMF0pIHtcbiAgICAgICAgJCgnLmRyb3B6b25lJylbMF0uZHJvcHpvbmUub24oJ3Byb2Nlc3NpbmcnLCBmdW5jdGlvbihmaWxlKSB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMudXJsID0gYCR7Y29uZmlnLmJhc2VfdXJsX3JlbGF0aXZlfS9tZWRpYS1tYW5hZ2VyJHtwYWdlfS5qc29uL3Rhc2ske2NvbmZpZy5wYXJhbV9zZXB9YWRkbWVkaWFgO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAkKCcuanNfX2J1dHRvbi1jbGVhci1tZWRpYS1jYWNoZScpLmFkZENsYXNzKCdoaWRkZW4nKTtcbiAgICBmaWx0ZXJGaWxlcygpO1xuXG4gICAgZGlzYWJsZUluZmluaXRlU2Nyb2xsaW5nKCk7IC8vIG9ubHkgaW5maW5pdGUgc2Nyb2xsIG9uIG1haW4gbGlzdCwgbm90IGluc2lkZSBzaW5nbGUgcGFnZXNcbn0pO1xuXG4vKiBoYW5kbGUgY2xlYXJpbmcgcGFnZSBmaWx0ZXIgKi9cbiQoJ2JvZHknKS5vbignY2xpY2snLCAnLmpzX19yZXNldC1wYWdlcy1maWx0ZXInLCAoZXZlbnQpID0+IHtcbiAgICAkKCcubWVkaWEtbGlzdC10aXRsZSAucGFnZS1pbmRpY2F0b3InKS5odG1sKCdBbGwgUGFnZXMnKTsgLy8gc2V0IGluZGljYXRpb25cbiAgICBjbGVhbkZpbGVzTGlzdCgpO1xuICAgIHJlc2V0QWN0aXZlU3RhdGVJblNpZGViYXIoKTtcbiAgICAkKCcuanNfX3Jlc2V0LXBhZ2VzLWZpbHRlcicpLmFkZENsYXNzKCdoaWRkZW4nKTsgLy8gcmVtb3ZlIHJlc2V0IHBhZ2VzIGljb25cbiAgICAkKCcuanNfX2ZpbGUtdXBsb2FkZXInKS5hZGRDbGFzcygnaGlkZGVuJyk7XG4gICAgJCgnLmpzX19idXR0b24tY2xlYXItbWVkaWEtY2FjaGUnKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG4gICAgZGVsZXRlIGZpbHRlcnNbJ3BhZ2UnXTtcblxuICAgIGZpbHRlckZpbGVzKCk7XG59KTtcblxuLyogaGFuZGxlIGluZmluaXRlIGxvYWRpbmcgKi9cbnZhciBlbmFibGVJbmZpbml0ZVNjcm9sbGluZyA9IGZ1bmN0aW9uIGVuYWJsZUluZmluaXRlU2Nyb2xsaW5nKCkge1xuICAgICQoJy5zcGlubmluZy13aGVlbCcpLmhpZGUoKTtcbiAgICB2YXIgdmlldyA9ICQoJy5tZWRpYXBpY2tlci1zY3JvbGwnKS5sYXN0KCk7XG5cbiAgICBpZiAoIXZpZXcubGVuZ3RoKSB7IHJldHVybjsgfVxuXG4gICAgJCh2aWV3KS5vbignc2Nyb2xsJywgZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmICgoJCh0aGlzKS5zY3JvbGxUb3AoKSArICQodGhpcykuaW5uZXJIZWlnaHQoKSArIDEwMCkgPj0gJCh0aGlzKVswXS5zY3JvbGxIZWlnaHQpIHtcbiAgICAgICAgICAgIGZpbGxWaWV3KCk7XG4gICAgICAgIH1cbiAgICB9KTtcbn07XG5cbnZhciBsb2FkTmV4dEJhdGNoID0gZnVuY3Rpb24gbG9hZE5leHRCYXRjaChjYWxsYmFjaykge1xuICAgIGlmIChmaWxlc19lbmRlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbG9hZE1lZGlhKHt9LCBmdW5jdGlvbihjb250ZW50KSB7XG4gICAgICAgIGlmICghJChjb250ZW50KS5sZW5ndGggfHwgKChjb250ZW50LnNwbGl0KCdjYXJkLWl0ZW0nKS5sZW5ndGggLSAxKSA8IE1FRElBX1BBR0lOQVRJT05fSU5URVJWQUwpKSB7XG4gICAgICAgICAgICBmaWxlc19lbmRlZCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJCgnLm1lZGlhLWNvbnRhaW5lciAubWVkaWEtcmFuZ2UnKS50cmlnZ2VyKCdpbnB1dCcpO1xuICAgIH0pO1xufTtcblxudmFyIGZpbGxWaWV3ID0gZnVuY3Rpb24gZmlsbFZpZXcoKSB7XG4gICAgaWYgKCEkKCcuanNfX2ZpbGVzJykuZmluZCgnLmNhcmQtaXRlbScpLmxhc3QoKS5vZmZzZXQoKSkge1xuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgLy8gcmV0cnkgbGF0ZXJcbiAgICAgICAgICAgIGZpbGxWaWV3KCk7XG4gICAgICAgIH0sIDMwMCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICgkKCcuanNfX2ZpbGVzJykuZmluZCgnLmNhcmQtaXRlbScpLmxhc3QoKS5vZmZzZXQoKS50b3AgLSAxIDw9ICQoJy5tZWRpYS1jb250YWluZXInKS5oZWlnaHQoKSkge1xuICAgICAgICBsb2FkTmV4dEJhdGNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgZmlsbFZpZXcoKTtcbiAgICAgICAgfSk7XG4gICAgfVxufTtcblxuLyogZGlzYWJsZSBpbmZpbml0ZSBsb2FkaW5nICovXG52YXIgZGlzYWJsZUluZmluaXRlU2Nyb2xsaW5nID0gZnVuY3Rpb24gZGlzYWJsZUluZmluaXRlU2Nyb2xsaW5nKCkge1xuICAgICQoJy5zcGlubmluZy13aGVlbCcpLmhpZGUoKTtcbiAgICAkKCcuY29udGVudC13cmFwcGVyJykudW5iaW5kKCdzY3JvbGwnKTtcbn07XG5cbiQoJy5qc19fZmlsZXMnKS5vbignZmlsbFZpZXcnLCBmdW5jdGlvbihldmVudCkge1xuICAgIC8vIHRoZSBmaXJzdCBiYXRjaCBnb3QgdGhlIG1heCBudW1iZXIgb2YgbWVkaWEgZmlsZXMsIHRyeSBsb2FkaW5nIG1vcmVcbiAgICBpZiAoKCQoJy5qc19fZmlsZXMnKVswXS5pbm5lckhUTUwuc3BsaXQoJ2NhcmQtaXRlbScpLmxlbmd0aCAtIDEpID09PSBNRURJQV9QQUdJTkFUSU9OX0lOVEVSVkFMKSB7XG4gICAgICAgIGZpbGxWaWV3KCk7XG4gICAgICAgIGVuYWJsZUluZmluaXRlU2Nyb2xsaW5nKCk7XG4gICAgfVxufSk7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/media/index.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/pages/filter.js":
|
|
/*!*****************************!*\
|
|
!*** ./app/pages/filter.js ***!
|
|
\*****************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ PagesFilter),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/request */ \"./app/utils/request.js\");\n/* harmony import */ var debounce__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! debounce */ \"./node_modules/debounce/index.js\");\n/* harmony import */ var debounce__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(debounce__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _tree__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./tree */ \"./app/pages/tree.js\");\n/* harmony import */ var selectize__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! selectize */ \"./node_modules/selectize/dist/js/selectize.js\");\n/* harmony import */ var selectize__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(selectize__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _utils_selectize_required_fix_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/selectize-required-fix.js */ \"./app/utils/selectize-required-fix.js\");\n/* harmony import */ var _utils_storage__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/storage */ \"./app/utils/storage.js\");\n/* harmony import */ var _utils_storage__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_utils_storage__WEBPACK_IMPORTED_MODULE_7__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\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); return Constructor; }\n\n\n\n\n\n\n\n\n\n/* @formatter:off */\n\n/* eslint-disable */\n\nvar options = [{\n flag: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.MODULE,\n key: 'Module',\n cat: 'mode'\n}, {\n flag: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.VISIBLE,\n key: 'Visible',\n cat: 'mode'\n}, {\n flag: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.ROUTABLE,\n key: 'Routable',\n cat: 'mode'\n}, {\n flag: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.PUBLISHED,\n key: 'Published',\n cat: 'mode'\n}, {\n flag: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.NON_MODULE,\n key: 'NonModule',\n cat: 'mode'\n}, {\n flag: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.NON_VISIBLE,\n key: 'NonVisible',\n cat: 'mode'\n}, {\n flag: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.NON_ROUTABLE,\n key: 'NonRoutable',\n cat: 'mode'\n}, {\n flag: grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.NON_PUBLISHED,\n key: 'NonPublished',\n cat: 'mode'\n}];\n/* @formatter:on */\n\n/* eslint-enable */\n\nvar PagesFilter = /*#__PURE__*/function () {\n function PagesFilter(filters, search) {\n var _this = this;\n\n _classCallCheck(this, PagesFilter);\n\n this.filters = jquery__WEBPACK_IMPORTED_MODULE_0___default()(filters);\n this.search = jquery__WEBPACK_IMPORTED_MODULE_0___default()(search);\n this.options = options;\n this.tree = _tree__WEBPACK_IMPORTED_MODULE_4__.Instance;\n var storage = JSON.parse(localStorage.getItem('grav:admin:pages:filter') || '{}');\n\n if (!this.filters.length || !this.search.length) {\n return;\n }\n\n this.labels = this.filters.data('filter-labels');\n this.search.on('input', debounce__WEBPACK_IMPORTED_MODULE_3___default()(function () {\n return _this.filter();\n }, 250));\n this.filters.on('change', function () {\n return _this.filter();\n }); // restore state\n\n if (storage.flags || storage.query) {\n this.setValues(storage);\n this.filter();\n }\n\n this._initSelectize();\n }\n\n _createClass(PagesFilter, [{\n key: \"filter\",\n value: function filter(value) {\n var _this2 = this;\n\n var data = {\n flags: '',\n query: ''\n };\n\n if (_typeof(value) === 'object') {\n Object.assign(data, value);\n }\n\n if (typeof value === 'string') {\n data.query = value;\n }\n\n if (typeof value === 'undefined') {\n data.flags = this.filters.val();\n data.query = this.search.val();\n }\n\n if (!Object.keys(data).filter(function (key) {\n return data[key] !== '';\n }).length) {\n this.resetValues();\n return;\n }\n\n data.flags = data.flags.replace(/(\\s{1,})?,(\\s{1,})?/g, ',');\n this.setValues({\n flags: data.flags,\n query: data.query\n }, 'silent');\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__.default)(\"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/pages-filter.json/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep, \"filterPages\"), {\n method: 'post',\n body: data\n }, function (response) {\n _this2.refreshDOM(response);\n });\n }\n }, {\n key: \"refreshDOM\",\n value: function refreshDOM(response) {\n var _this3 = this;\n\n var items = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-nav-id]');\n\n if (!response) {\n items.removeClass('search-match').show();\n this.tree.restore();\n return;\n }\n\n items.removeClass('search-match').hide();\n response.results.forEach(function (page) {\n var match = items.filter(\"[data-nav-id=\\\"\".concat(page, \"\\\"]\")).addClass('search-match').show();\n match.parents('[data-nav-id]').addClass('search-match').show();\n\n _this3.tree.expand(page, 'no-store');\n });\n }\n }, {\n key: \"setValues\",\n value: function setValues(_ref, silent) {\n var _ref$flags = _ref.flags,\n flags = _ref$flags === void 0 ? '' : _ref$flags,\n _ref$query = _ref.query,\n query = _ref$query === void 0 ? '' : _ref$query;\n var flagsArray = flags.replace(/(\\s{1,})?,(\\s{1,})?/g, ',').split(',');\n\n if (this.filters.val() !== flags) {\n var selectize = this.filters.data('selectize');\n this.filters[selectize ? 'setValue' : 'val'](flagsArray, silent);\n }\n\n if (this.search.val() !== query) {\n this.search.val(query);\n }\n\n localStorage.setItem('grav:admin:pages:filter', JSON.stringify({\n flags: flags,\n query: query\n }));\n }\n }, {\n key: \"resetValues\",\n value: function resetValues() {\n this.setValues('', 'silent');\n this.refreshDOM();\n }\n }, {\n key: \"_initSelectize\",\n value: function _initSelectize() {\n var _this4 = this;\n\n var extras = {\n type: this.filters.data('filter-types') || {},\n access: this.filters.data('filter-access-levels') || {}\n };\n Object.keys(extras).forEach(function (cat) {\n Object.keys(extras[cat]).forEach(function (key) {\n _this4.options.push({\n cat: cat,\n key: key,\n flag: extras[cat][key]\n });\n });\n });\n this.filters.selectize({\n maxItems: null,\n valueField: 'key',\n labelField: 'flag',\n searchField: ['flag', 'key'],\n options: this.options,\n optgroups: this.labels,\n optgroupField: 'cat',\n optgroupLabelField: 'name',\n optgroupValueField: 'id',\n optgroupOrder: this.labels.map(function (item) {\n return item.id;\n }),\n plugins: ['optgroup_columns', 'required-fix']\n });\n }\n }]);\n\n return PagesFilter;\n}();\n\n\nvar Instance = new PagesFilter('input[name=\"page-filter\"]', 'input[name=\"page-search\"]');\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3BhZ2VzL2ZpbHRlci5qcz80NzRmIl0sIm5hbWVzIjpbIm9wdGlvbnMiLCJmbGFnIiwidHJhbnNsYXRpb25zIiwia2V5IiwiY2F0IiwiUGFnZXNGaWx0ZXIiLCJmaWx0ZXJzIiwic2VhcmNoIiwiJCIsInRyZWUiLCJwYWdlc1RyZWUiLCJzdG9yYWdlIiwiSlNPTiIsInBhcnNlIiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsImxlbmd0aCIsImxhYmVscyIsImRhdGEiLCJvbiIsImRlYm91bmNlIiwiZmlsdGVyIiwiZmxhZ3MiLCJxdWVyeSIsInNldFZhbHVlcyIsIl9pbml0U2VsZWN0aXplIiwidmFsdWUiLCJPYmplY3QiLCJhc3NpZ24iLCJ2YWwiLCJrZXlzIiwicmVzZXRWYWx1ZXMiLCJyZXBsYWNlIiwicmVxdWVzdCIsImNvbmZpZyIsIm1ldGhvZCIsImJvZHkiLCJyZXNwb25zZSIsInJlZnJlc2hET00iLCJpdGVtcyIsInJlbW92ZUNsYXNzIiwic2hvdyIsInJlc3RvcmUiLCJoaWRlIiwicmVzdWx0cyIsImZvckVhY2giLCJwYWdlIiwibWF0Y2giLCJhZGRDbGFzcyIsInBhcmVudHMiLCJleHBhbmQiLCJzaWxlbnQiLCJmbGFnc0FycmF5Iiwic3BsaXQiLCJzZWxlY3RpemUiLCJzZXRJdGVtIiwic3RyaW5naWZ5IiwiZXh0cmFzIiwidHlwZSIsImFjY2VzcyIsInB1c2giLCJtYXhJdGVtcyIsInZhbHVlRmllbGQiLCJsYWJlbEZpZWxkIiwic2VhcmNoRmllbGQiLCJvcHRncm91cHMiLCJvcHRncm91cEZpZWxkIiwib3B0Z3JvdXBMYWJlbEZpZWxkIiwib3B0Z3JvdXBWYWx1ZUZpZWxkIiwib3B0Z3JvdXBPcmRlciIsIm1hcCIsIml0ZW0iLCJpZCIsInBsdWdpbnMiLCJJbnN0YW5jZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFD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cUJBQWEsRUFBRSxLQUFLcEQsTUFBTCxDQUFZcUQsR0FBWixDQUFnQixVQUFDQyxJQUFEO0FBQUEsaUJBQVVBLElBQUksQ0FBQ0MsRUFBZjtBQUFBLFNBQWhCLENBVkk7QUFXbkJDLGVBQU8sRUFBRSxDQUFDLGtCQUFELEVBQXFCLGNBQXJCO0FBWFUsT0FBdkI7QUFhSDs7Ozs7OztBQUdMLElBQUlDLFFBQVEsR0FBRyxJQUFJckUsV0FBSixDQUFnQiwyQkFBaEIsRUFBNkMsMkJBQTdDLENBQWYiLCJmaWxlIjoiLi9hcHAvcGFnZXMvZmlsdGVyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCB7IGNvbmZpZywgdHJhbnNsYXRpb25zIH0gZnJvbSAnZ3Jhdi1jb25maWcnO1xuaW1wb3J0IHJlcXVlc3QgZnJvbSAnLi4vdXRpbHMvcmVxdWVzdCc7XG5pbXBvcnQgZGVib3VuY2UgZnJvbSAnZGVib3VuY2UnO1xuaW1wb3J0IHsgSW5zdGFuY2UgYXMgcGFnZXNUcmVlIH0gZnJvbSAnLi90cmVlJztcbmltcG9ydCAnc2VsZWN0aXplJztcbmltcG9ydCAnLi4vdXRpbHMvc2VsZWN0aXplLXJlcXVpcmVkLWZpeC5qcyc7XG5pbXBvcnQgJy4uL3V0aWxzL3N0b3JhZ2UnO1xuXG4vKiBAZm9ybWF0dGVyOm9mZiAqL1xuLyogZXNsaW50LWRpc2FibGUgKi9cbmNvbnN0IG9wdGlvbnMgPSBbXG4gICAgeyBmbGFnOiB0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLk1PRFVMRSwgICAgICAgIGtleTogJ01vZHVsZScsICAgICAgY2F0OiAnbW9kZScgfSxcbiAgICB7IGZsYWc6IHRyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uVklTSUJMRSwgICAgICAga2V5OiAnVmlzaWJsZScsICAgICAgY2F0OiAnbW9kZScgfSxcbiAgICB7IGZsYWc6IHRyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uUk9VVEFCTEUsICAgICAga2V5OiAnUm91dGFibGUnLCAgICAgY2F0OiAnbW9kZScgfSxcbiAgICB7IGZsYWc6IHRyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uUFVCTElTSEVELCAgICAga2V5OiAnUHVibGlzaGVkJywgICAgY2F0OiAnbW9kZScgfSxcbiAgICB7IGZsYWc6IHRyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uTk9OX01PRFVMRSwgICAga2V5OiAnTm9uTW9kdWxlJywgICBjYXQ6ICdtb2RlJyB9LFxuICAgIHsgZmxhZzogdHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5OT05fVklTSUJMRSwgICBrZXk6ICdOb25WaXNpYmxlJywgICBjYXQ6ICdtb2RlJyB9LFxuICAgIHsgZmxhZzogdHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5OT05fUk9VVEFCTEUsICBrZXk6ICdOb25Sb3V0YWJsZScsICBjYXQ6ICdtb2RlJyB9LFxuICAgIHsgZmxhZzogdHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5OT05fUFVCTElTSEVELCBrZXk6ICdOb25QdWJsaXNoZWQnLCBjYXQ6ICdtb2RlJyB9XG5dO1xuLyogQGZvcm1hdHRlcjpvbiAqL1xuLyogZXNsaW50LWVuYWJsZSAqL1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQYWdlc0ZpbHRlciB7XG4gICAgY29uc3RydWN0b3IoZmlsdGVycywgc2VhcmNoKSB7XG4gICAgICAgIHRoaXMuZmlsdGVycyA9ICQoZmlsdGVycyk7XG4gICAgICAgIHRoaXMuc2VhcmNoID0gJChzZWFyY2gpO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgICAgICB0aGlzLnRyZWUgPSBwYWdlc1RyZWU7XG4gICAgICAgIGxldCBzdG9yYWdlID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnZ3JhdjphZG1pbjpwYWdlczpmaWx0ZXInKSB8fCAne30nKTtcblxuICAgICAgICBpZiAoIXRoaXMuZmlsdGVycy5sZW5ndGggfHwgIXRoaXMuc2VhcmNoLmxlbmd0aCkgeyByZXR1cm47IH1cblxuICAgICAgICB0aGlzLmxhYmVscyA9IHRoaXMuZmlsdGVycy5kYXRhKCdmaWx0ZXItbGFiZWxzJyk7XG5cbiAgICAgICAgdGhpcy5zZWFyY2gub24oJ2lucHV0JywgZGVib3VuY2UoKCkgPT4gdGhpcy5maWx0ZXIoKSwgMjUwKSk7XG4gICAgICAgIHRoaXMuZmlsdGVycy5vbignY2hhbmdlJywgKCkgPT4gdGhpcy5maWx0ZXIoKSk7XG5cbiAgICAgICAgLy8gcmVzdG9yZSBzdGF0ZVxuICAgICAgICBpZiAoc3RvcmFnZS5mbGFncyB8fCBzdG9yYWdlLnF1ZXJ5KSB7XG4gICAgICAgICAgICB0aGlzLnNldFZhbHVlcyhzdG9yYWdlKTtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9pbml0U2VsZWN0aXplKCk7XG4gICAgfVxuXG4gICAgZmlsdGVyKHZhbHVlKSB7XG4gICAgICAgIGxldCBkYXRhID0geyBmbGFnczogJycsIHF1ZXJ5OiAnJyB9O1xuXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKGRhdGEsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgZGF0YS5xdWVyeSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBkYXRhLmZsYWdzID0gdGhpcy5maWx0ZXJzLnZhbCgpO1xuICAgICAgICAgICAgZGF0YS5xdWVyeSA9IHRoaXMuc2VhcmNoLnZhbCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFPYmplY3Qua2V5cyhkYXRhKS5maWx0ZXIoKGtleSkgPT4gZGF0YVtrZXldICE9PSAnJykubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0VmFsdWVzKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBkYXRhLmZsYWdzID0gZGF0YS5mbGFncy5yZXBsYWNlKC8oXFxzezEsfSk/LChcXHN7MSx9KT8vZywgJywnKTtcbiAgICAgICAgdGhpcy5zZXRWYWx1ZXMoeyBmbGFnczogZGF0YS5mbGFncywgcXVlcnk6IGRhdGEucXVlcnkgfSwgJ3NpbGVudCcpO1xuXG4gICAgICAgIHJlcXVlc3QoYCR7Y29uZmlnLmJhc2VfdXJsX3JlbGF0aXZlfS9wYWdlcy1maWx0ZXIuanNvbi90YXNrJHtjb25maWcucGFyYW1fc2VwfWZpbHRlclBhZ2VzYCwge1xuICAgICAgICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICAgICAgICBib2R5OiBkYXRhXG4gICAgICAgIH0sIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZWZyZXNoRE9NKHJlc3BvbnNlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVmcmVzaERPTShyZXNwb25zZSkge1xuICAgICAgICBsZXQgaXRlbXMgPSAkKCdbZGF0YS1uYXYtaWRdJyk7XG5cbiAgICAgICAgaWYgKCFyZXNwb25zZSkge1xuICAgICAgICAgICAgaXRlbXMucmVtb3ZlQ2xhc3MoJ3NlYXJjaC1tYXRjaCcpLnNob3coKTtcbiAgICAgICAgICAgIHRoaXMudHJlZS5yZXN0b3JlKCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGl0ZW1zLnJlbW92ZUNsYXNzKCdzZWFyY2gtbWF0Y2gnKS5oaWRlKCk7XG5cbiAgICAgICAgcmVzcG9uc2UucmVzdWx0cy5mb3JFYWNoKChwYWdlKSA9PiB7XG4gICAgICAgICAgICBsZXQgbWF0Y2ggPSBpdGVtcy5maWx0ZXIoYFtkYXRhLW5hdi1pZD1cIiR7cGFnZX1cIl1gKS5hZGRDbGFzcygnc2VhcmNoLW1hdGNoJykuc2hvdygpO1xuICAgICAgICAgICAgbWF0Y2gucGFyZW50cygnW2RhdGEtbmF2LWlkXScpLmFkZENsYXNzKCdzZWFyY2gtbWF0Y2gnKS5zaG93KCk7XG5cbiAgICAgICAgICAgIHRoaXMudHJlZS5leHBhbmQocGFnZSwgJ25vLXN0b3JlJyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHNldFZhbHVlcyh7IGZsYWdzID0gJycsIHF1ZXJ5ID0gJyd9LCBzaWxlbnQpIHtcbiAgICAgICAgbGV0IGZsYWdzQXJyYXkgPSBmbGFncy5yZXBsYWNlKC8oXFxzezEsfSk/LChcXHN7MSx9KT8vZywgJywnKS5zcGxpdCgnLCcpO1xuICAgICAgICBpZiAodGhpcy5maWx0ZXJzLnZhbCgpICE9PSBmbGFncykge1xuICAgICAgICAgICAgbGV0IHNlbGVjdGl6ZSA9IHRoaXMuZmlsdGVycy5kYXRhKCdzZWxlY3RpemUnKTtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyc1tzZWxlY3RpemUgPyAnc2V0VmFsdWUnIDogJ3ZhbCddKGZsYWdzQXJyYXksIHNpbGVudCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoLnZhbCgpICE9PSBxdWVyeSkgeyB0aGlzLnNlYXJjaC52YWwocXVlcnkpOyB9XG5cbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2dyYXY6YWRtaW46cGFnZXM6ZmlsdGVyJywgSlNPTi5zdHJpbmdpZnkoeyBmbGFncywgcXVlcnkgfSkpO1xuICAgIH1cblxuICAgIHJlc2V0VmFsdWVzKCkge1xuICAgICAgICB0aGlzLnNldFZhbHVlcygnJywgJ3NpbGVudCcpO1xuICAgICAgICB0aGlzLnJlZnJlc2hET00oKTtcbiAgICB9XG5cbiAgICBfaW5pdFNlbGVjdGl6ZSgpIHtcbiAgICAgICAgbGV0IGV4dHJhcyA9IHtcbiAgICAgICAgICAgIHR5cGU6IHRoaXMuZmlsdGVycy5kYXRhKCdmaWx0ZXItdHlwZXMnKSB8fCB7fSxcbiAgICAgICAgICAgIGFjY2VzczogdGhpcy5maWx0ZXJzLmRhdGEoJ2ZpbHRlci1hY2Nlc3MtbGV2ZWxzJykgfHwge31cbiAgICAgICAgfTtcblxuICAgICAgICBPYmplY3Qua2V5cyhleHRyYXMpLmZvckVhY2goKGNhdCkgPT4ge1xuICAgICAgICAgICAgT2JqZWN0LmtleXMoZXh0cmFzW2NhdF0pLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgY2F0LFxuICAgICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICAgIGZsYWc6IGV4dHJhc1tjYXRdW2tleV1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmZpbHRlcnMuc2VsZWN0aXplKHtcbiAgICAgICAgICAgIG1heEl0ZW1zOiBudWxsLFxuICAgICAgICAgICAgdmFsdWVGaWVsZDogJ2tleScsXG4gICAgICAgICAgICBsYWJlbEZpZWxkOiAnZmxhZycsXG4gICAgICAgICAgICBzZWFyY2hGaWVsZDogWydmbGFnJywgJ2tleSddLFxuICAgICAgICAgICAgb3B0aW9uczogdGhpcy5vcHRpb25zLFxuICAgICAgICAgICAgb3B0Z3JvdXBzOiB0aGlzLmxhYmVscyxcbiAgICAgICAgICAgIG9wdGdyb3VwRmllbGQ6ICdjYXQnLFxuICAgICAgICAgICAgb3B0Z3JvdXBMYWJlbEZpZWxkOiAnbmFtZScsXG4gICAgICAgICAgICBvcHRncm91cFZhbHVlRmllbGQ6ICdpZCcsXG4gICAgICAgICAgICBvcHRncm91cE9yZGVyOiB0aGlzLmxhYmVscy5tYXAoKGl0ZW0pID0+IGl0ZW0uaWQpLFxuICAgICAgICAgICAgcGx1Z2luczogWydvcHRncm91cF9jb2x1bW5zJywgJ3JlcXVpcmVkLWZpeCddXG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxubGV0IEluc3RhbmNlID0gbmV3IFBhZ2VzRmlsdGVyKCdpbnB1dFtuYW1lPVwicGFnZS1maWx0ZXJcIl0nLCAnaW5wdXRbbmFtZT1cInBhZ2Utc2VhcmNoXCJdJyk7XG5leHBvcnQgeyBJbnN0YW5jZSB9O1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/pages/filter.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/pages/index.js":
|
|
/*!****************************!*\
|
|
!*** ./app/pages/index.js ***!
|
|
\****************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var sortablejs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! sortablejs */ \"./node_modules/sortablejs/modular/sortable.esm.js\");\n/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./filter */ \"./app/pages/filter.js\");\n/* harmony import */ var _page__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./page */ \"./app/pages/page/index.js\");\n\n\n\n\n\nvar pad = function pad(n, s) {\n return \"000\".concat(n).substr(-s);\n}; // Pages Ordering\n\n\nvar Ordering = null;\nvar orderingElement = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#ordering');\n\nif (orderingElement.length) {\n Ordering = new sortablejs__WEBPACK_IMPORTED_MODULE_1__.default(orderingElement.get(0), {\n filter: '.ignore',\n onUpdate: function onUpdate() {\n /* Old single page index behavior\n let item = $(event.item);\n let index = orderingElement.children().index(item) + 1;\n $('[data-order]').val(index);\n */\n var indexes = [];\n var children = orderingElement.children();\n var padZero = (children.length + '').split('').length;\n children.each(function (index, item) {\n item = jquery__WEBPACK_IMPORTED_MODULE_0___default()(item);\n indexes.push(item.data('id'));\n item.find('.page-order').text(\"\".concat(pad(index + 1, padZero), \".\"));\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-order]').val(indexes.join(','));\n }\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('input', '[name=\"data[folder]\"]', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var activeOrder = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-id][data-active-id]');\n activeOrder.data('id', target.val());\n Ordering.options.onUpdate();\n });\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n Ordering: Ordering,\n Page: _page__WEBPACK_IMPORTED_MODULE_3__.default,\n PageFilters: {\n PageFilters: _filter__WEBPACK_IMPORTED_MODULE_2__.default,\n Instance: _filter__WEBPACK_IMPORTED_MODULE_2__.Instance\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3BhZ2VzL2luZGV4LmpzPzdhMzUiXSwibmFtZXMiOlsicGFkIiwibiIsInMiLCJzdWJzdHIiLCJPcmRlcmluZyIsIm9yZGVyaW5nRWxlbWVudCIsIiQiLCJsZW5ndGgiLCJTb3J0YWJsZSIsImdldCIsImZpbHRlciIsIm9uVXBkYXRlIiwiaW5kZXhlcyIsImNoaWxkcmVuIiwicGFkWmVybyIsInNwbGl0IiwiZWFjaCIsImluZGV4IiwiaXRlbSIsInB1c2giLCJkYXRhIiwiZmluZCIsInRleHQiLCJ2YWwiLCJqb2luIiwiZG9jdW1lbnQiLCJvbiIsImV2ZW50IiwidGFyZ2V0IiwiY3VycmVudFRhcmdldCIsImFjdGl2ZU9yZGVyIiwib3B0aW9ucyIsIlBhZ2UiLCJQYWdlRmlsdGVycyIsIkluc3RhbmNlIiwiUGFnZUZpbHRlcnNJbnN0YW5jZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsSUFBTUEsR0FBRyxHQUFHLFNBQU5BLEdBQU0sQ0FBQ0MsQ0FBRCxFQUFJQyxDQUFKO0FBQUEsU0FBVSxhQUFPRCxDQUFQLEVBQVlFLE1BQVosQ0FBbUIsQ0FBQ0QsQ0FBcEIsQ0FBVjtBQUFBLENBQVosQyxDQUVBOzs7QUFDQSxJQUFJRSxRQUFRLEdBQUcsSUFBZjtBQUNBLElBQUlDLGVBQWUsR0FBR0MsNkNBQUMsQ0FBQyxXQUFELENBQXZCOztBQUNBLElBQUlELGVBQWUsQ0FBQ0UsTUFBcEIsRUFBNEI7QUFDeEJILFVBQVEsR0FBRyxJQUFJSSwrQ0FBSixDQUFhSCxlQUFlLENBQUNJLEdBQWhCLENBQW9CLENBQXBCLENBQWIsRUFBcUM7QUFDNUNDLFVBQU0sRUFBRSxTQURvQztBQUU1Q0MsWUFBUSxFQUFFLG9CQUFXO0FBQ2pCO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFHWSxVQUFJQyxPQUFPLEdBQUcsRUFBZDtBQUNBLFVBQU1DLFFBQVEsR0FBR1IsZUFBZSxDQUFDUSxRQUFoQixFQUFqQjtBQUNBLFVBQU1DLE9BQU8sR0FBRyxDQUFDRCxRQUFRLENBQUNOLE1BQVQsR0FBa0IsRUFBbkIsRUFBdUJRLEtBQXZCLENBQTZCLEVBQTdCLEVBQWlDUixNQUFqRDtBQUNBTSxjQUFRLENBQUNHLElBQVQsQ0FBYyxVQUFDQyxLQUFELEVBQVFDLElBQVIsRUFBaUI7QUFDM0JBLFlBQUksR0FBR1osNkNBQUMsQ0FBQ1ksSUFBRCxDQUFSO0FBQ0FOLGVBQU8sQ0FBQ08sSUFBUixDQUFhRCxJQUFJLENBQUNFLElBQUwsQ0FBVSxJQUFWLENBQWI7QUFDQUYsWUFBSSxDQUFDRyxJQUFMLENBQVUsYUFBVixFQUF5QkMsSUFBekIsV0FBaUN0QixHQUFHLENBQUNpQixLQUFLLEdBQUcsQ0FBVCxFQUFZSCxPQUFaLENBQXBDO0FBQ0gsT0FKRDtBQU1BUixtREFBQyxDQUFDLGNBQUQsQ0FBRCxDQUFrQmlCLEdBQWxCLENBQXNCWCxPQUFPLENBQUNZLElBQVIsQ0FBYSxHQUFiLENBQXRCO0FBQ0g7QUFwQjJDLEdBQXJDLENBQVg7QUF1QkFsQiwrQ0FBQyxDQUFDbUIsUUFBRCxDQUFELENBQVlDLEVBQVosQ0FBZSxPQUFmLEVBQXdCLHVCQUF4QixFQUFpRCxVQUFDQyxLQUFELEVBQVc7QUFDeEQsUUFBTUMsTUFBTSxHQUFHdEIsNkNBQUMsQ0FBQ3FCLEtBQUssQ0FBQ0UsYUFBUCxDQUFoQjtBQUNBLFFBQU1DLFdBQVcsR0FBR3hCLDZDQUFDLENBQUMsMkJBQUQsQ0FBckI7QUFFQXdCLGVBQVcsQ0FBQ1YsSUFBWixDQUFpQixJQUFqQixFQUF1QlEsTUFBTSxDQUFDTCxHQUFQLEVBQXZCO0FBRUFuQixZQUFRLENBQUMyQixPQUFULENBQWlCcEIsUUFBakI7QUFDSCxHQVBEO0FBU0g7O0FBRUQsaUVBQWU7QUFDWFAsVUFBUSxFQUFSQSxRQURXO0FBRVg0QixNQUFJLEVBQUpBLDBDQUZXO0FBR1hDLGFBQVcsRUFBRTtBQUNUQSxlQUFXLEVBQVhBLDRDQURTO0FBRVRDLFlBQVEsRUFBRUMsNkNBQW1CQTtBQUZwQjtBQUhGLENBQWYiLCJmaWxlIjoiLi9hcHAvcGFnZXMvaW5kZXguanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IFNvcnRhYmxlIGZyb20gJ3NvcnRhYmxlanMnO1xuaW1wb3J0IFBhZ2VGaWx0ZXJzLCB7IEluc3RhbmNlIGFzIFBhZ2VGaWx0ZXJzSW5zdGFuY2UgfSBmcm9tICcuL2ZpbHRlcic7XG5pbXBvcnQgUGFnZSBmcm9tICcuL3BhZ2UnO1xuXG5jb25zdCBwYWQgPSAobiwgcykgPT4gKGAwMDAke259YCkuc3Vic3RyKC1zKTtcblxuLy8gUGFnZXMgT3JkZXJpbmdcbmxldCBPcmRlcmluZyA9IG51bGw7XG5sZXQgb3JkZXJpbmdFbGVtZW50ID0gJCgnI29yZGVyaW5nJyk7XG5pZiAob3JkZXJpbmdFbGVtZW50Lmxlbmd0aCkge1xuICAgIE9yZGVyaW5nID0gbmV3IFNvcnRhYmxlKG9yZGVyaW5nRWxlbWVudC5nZXQoMCksIHtcbiAgICAgICAgZmlsdGVyOiAnLmlnbm9yZScsXG4gICAgICAgIG9uVXBkYXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIC8qIE9sZCBzaW5nbGUgcGFnZSBpbmRleCBiZWhhdmlvclxuXG4gICAgICAgICAgICBsZXQgaXRlbSA9ICQoZXZlbnQuaXRlbSk7XG4gICAgICAgICAgICBsZXQgaW5kZXggPSBvcmRlcmluZ0VsZW1lbnQuY2hpbGRyZW4oKS5pbmRleChpdGVtKSArIDE7XG4gICAgICAgICAgICAkKCdbZGF0YS1vcmRlcl0nKS52YWwoaW5kZXgpO1xuICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgbGV0IGluZGV4ZXMgPSBbXTtcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuID0gb3JkZXJpbmdFbGVtZW50LmNoaWxkcmVuKCk7XG4gICAgICAgICAgICBjb25zdCBwYWRaZXJvID0gKGNoaWxkcmVuLmxlbmd0aCArICcnKS5zcGxpdCgnJykubGVuZ3RoO1xuICAgICAgICAgICAgY2hpbGRyZW4uZWFjaCgoaW5kZXgsIGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICBpdGVtID0gJChpdGVtKTtcbiAgICAgICAgICAgICAgICBpbmRleGVzLnB1c2goaXRlbS5kYXRhKCdpZCcpKTtcbiAgICAgICAgICAgICAgICBpdGVtLmZpbmQoJy5wYWdlLW9yZGVyJykudGV4dChgJHtwYWQoaW5kZXggKyAxLCBwYWRaZXJvKX0uYCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgJCgnW2RhdGEtb3JkZXJdJykudmFsKGluZGV4ZXMuam9pbignLCcpKTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgJChkb2N1bWVudCkub24oJ2lucHV0JywgJ1tuYW1lPVwiZGF0YVtmb2xkZXJdXCJdJywgKGV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgICAgIGNvbnN0IGFjdGl2ZU9yZGVyID0gJCgnW2RhdGEtaWRdW2RhdGEtYWN0aXZlLWlkXScpO1xuXG4gICAgICAgIGFjdGl2ZU9yZGVyLmRhdGEoJ2lkJywgdGFyZ2V0LnZhbCgpKTtcblxuICAgICAgICBPcmRlcmluZy5vcHRpb25zLm9uVXBkYXRlKCk7XG4gICAgfSk7XG5cbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICAgIE9yZGVyaW5nLFxuICAgIFBhZ2UsXG4gICAgUGFnZUZpbHRlcnM6IHtcbiAgICAgICAgUGFnZUZpbHRlcnMsXG4gICAgICAgIEluc3RhbmNlOiBQYWdlRmlsdGVyc0luc3RhbmNlXG4gICAgfVxufTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/pages/index.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/pages/page/add.js":
|
|
/*!*******************************!*\
|
|
!*** ./app/pages/page/add.js ***!
|
|
\*******************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_jquery_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/jquery-utils */ \"./app/utils/jquery-utils.js\");\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/request */ \"./app/utils/request.js\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_3__);\n\n\n\n\nvar custom = false;\nvar folder = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-remodal-id=\"modal\"] input[name=\"data[folder]\"], [data-remodal-id=\"module\"] input[name=\"data[folder]\"], [data-remodal-id=\"modal-page-copy\"] input[name=\"data[folder]\"]');\nvar title = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-remodal-id=\"modal\"] input[name=\"data[title]\"], [data-remodal-id=\"module\"] input[name=\"data[title]\"], [data-remodal-id=\"modal-page-copy\"] input[name=\"data[title]\"]');\n\nvar getFields = function getFields(type, target) {\n target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target);\n var query = \"[data-remodal-id=\\\"\".concat(target.closest('[data-remodal-id]').data('remodal-id'), \"\\\"]\");\n return {\n title: type === 'title' ? jquery__WEBPACK_IMPORTED_MODULE_0___default()(target) : jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"\".concat(query, \" input[name=\\\"data[title]\\\"]\")),\n folder: type === 'folder' ? jquery__WEBPACK_IMPORTED_MODULE_0___default()(target) : jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"\".concat(query, \" input[name=\\\"data[folder]\\\"]\"))\n };\n};\n\ntitle.on('input focus blur', function (event) {\n if (custom) {\n return true;\n }\n\n var elements = getFields('title', event.currentTarget);\n var slug = jquery__WEBPACK_IMPORTED_MODULE_0___default().slugify(elements.title.val(), {\n custom: {\n \"'\": ''\n }\n });\n elements.folder.val(slug);\n});\nfolder.on('input', function (event) {\n var elements = getFields('folder', event.currentTarget);\n var input = elements.folder.get(0);\n var value = elements.folder.val();\n var selection = {\n start: input.selectionStart,\n end: input.selectionEnd\n };\n value = value.toLowerCase().replace(/\\s/g, '-').replace(/[^a-z0-9_\\-]/g, '');\n elements.folder.val(value);\n custom = !!value; // restore cursor position\n\n input.setSelectionRange(selection.start, selection.end);\n});\nfolder.on('focus blur', function (event) {\n return getFields('title', event.currentTarget).title.trigger('input');\n});\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('change', '[name=\"data[route]\"]', function (event) {\n var rawroute = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget).val();\n var pageTemplate = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[name=\"data[name]\"]');\n var URI = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.config.base_url_relative, \"/ajax.json/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.config.param_sep, \"getChildTypes\");\n\n if (pageTemplate.length === 0) {\n return;\n }\n\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__.default)(URI, {\n method: 'post',\n body: {\n rawroute: rawroute\n }\n }, function (response) {\n var type = response.child_type;\n\n if (type !== '' && type !== 'default') {\n pageTemplate.val(type);\n pageTemplate.data('selectize').setValue(type);\n }\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3BhZ2VzL3BhZ2UvYWRkLmpzP2IyMjgiXSwibmFtZXMiOlsiY3VzdG9tIiwiZm9sZGVyIiwiJCIsInRpdGxlIiwiZ2V0RmllbGRzIiwidHlwZSIsInRhcmdldCIsInF1ZXJ5IiwiY2xvc2VzdCIsImRhdGEiLCJvbiIsImV2ZW50IiwiZWxlbWVudHMiLCJjdXJyZW50VGFyZ2V0Iiwic2x1ZyIsInZhbCIsImlucHV0IiwiZ2V0IiwidmFsdWUiLCJzZWxlY3Rpb24iLCJzdGFydCIsInNlbGVjdGlvblN0YXJ0IiwiZW5kIiwic2VsZWN0aW9uRW5kIiwidG9Mb3dlckNhc2UiLCJyZXBsYWNlIiwic2V0U2VsZWN0aW9uUmFuZ2UiLCJ0cmlnZ2VyIiwiZG9jdW1lbnQiLCJyYXdyb3V0ZSIsInBhZ2VUZW1wbGF0ZSIsIlVSSSIsImNvbmZpZyIsImxlbmd0aCIsInJlcXVlc3QiLCJtZXRob2QiLCJib2R5IiwicmVzcG9uc2UiLCJjaGlsZF90eXBlIiwic2V0VmFsdWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLElBQUlBLE1BQU0sR0FBRyxLQUFiO0FBQ0EsSUFBSUMsTUFBTSxHQUFHQyw2Q0FBQyxDQUFDLDZLQUFELENBQWQ7QUFDQSxJQUFJQyxLQUFLLEdBQUdELDZDQUFDLENBQUMsMEtBQUQsQ0FBYjs7QUFDQSxJQUFJRSxTQUFTLEdBQUcsU0FBWkEsU0FBWSxDQUFDQyxJQUFELEVBQU9DLE1BQVAsRUFBa0I7QUFDOUJBLFFBQU0sR0FBR0osNkNBQUMsQ0FBQ0ksTUFBRCxDQUFWO0FBQ0EsTUFBSUMsS0FBSyxnQ0FBd0JELE1BQU0sQ0FBQ0UsT0FBUCxDQUFlLG1CQUFmLEVBQW9DQyxJQUFwQyxDQUF5QyxZQUF6QyxDQUF4QixRQUFUO0FBRUEsU0FBTztBQUNITixTQUFLLEVBQUVFLElBQUksS0FBSyxPQUFULEdBQW1CSCw2Q0FBQyxDQUFDSSxNQUFELENBQXBCLEdBQStCSiw2Q0FBQyxX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WSxDQUFDZixHQUFiLENBQWlCVixJQUFqQjtBQUNBeUIsa0JBQVksQ0FBQ3JCLElBQWIsQ0FBa0IsV0FBbEIsRUFBK0I4QixRQUEvQixDQUF3Q2xDLElBQXhDO0FBQ0g7QUFDSixHQVRNLENBQVA7QUFVSCxDQW5CRCIsImZpbGUiOiIuL2FwcC9wYWdlcy9wYWdlL2FkZC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgJy4uLy4uL3V0aWxzL2pxdWVyeS11dGlscyc7XG5pbXBvcnQgcmVxdWVzdCBmcm9tICcuLi8uLi91dGlscy9yZXF1ZXN0JztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ2dyYXYtY29uZmlnJztcblxubGV0IGN1c3RvbSA9IGZhbHNlO1xubGV0IGZvbGRlciA9ICQoJ1tkYXRhLXJlbW9kYWwtaWQ9XCJtb2RhbFwiXSBpbnB1dFtuYW1lPVwiZGF0YVtmb2xkZXJdXCJdLCBbZGF0YS1yZW1vZGFsLWlkPVwibW9kdWxlXCJdIGlucHV0W25hbWU9XCJkYXRhW2ZvbGRlcl1cIl0sIFtkYXRhLXJlbW9kYWwtaWQ9XCJtb2RhbC1wYWdlLWNvcHlcIl0gaW5wdXRbbmFtZT1cImRhdGFbZm9sZGVyXVwiXScpO1xubGV0IHRpdGxlID0gJCgnW2RhdGEtcmVtb2RhbC1pZD1cIm1vZGFsXCJdIGlucHV0W25hbWU9XCJkYXRhW3RpdGxlXVwiXSwgW2RhdGEtcmVtb2RhbC1pZD1cIm1vZHVsZVwiXSBpbnB1dFtuYW1lPVwiZGF0YVt0aXRsZV1cIl0sIFtkYXRhLXJlbW9kYWwtaWQ9XCJtb2RhbC1wYWdlLWNvcHlcIl0gaW5wdXRbbmFtZT1cImRhdGFbdGl0bGVdXCJdJyk7XG5sZXQgZ2V0RmllbGRzID0gKHR5cGUsIHRhcmdldCkgPT4ge1xuICAgIHRhcmdldCA9ICQodGFyZ2V0KTtcbiAgICBsZXQgcXVlcnkgPSBgW2RhdGEtcmVtb2RhbC1pZD1cIiR7dGFyZ2V0LmNsb3Nlc3QoJ1tkYXRhLXJlbW9kYWwtaWRdJykuZGF0YSgncmVtb2RhbC1pZCcpfVwiXWA7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICB0aXRsZTogdHlwZSA9PT0gJ3RpdGxlJyA/ICQodGFyZ2V0KSA6ICQoYCR7cXVlcnl9IGlucHV0W25hbWU9XCJkYXRhW3RpdGxlXVwiXWApLFxuICAgICAgICBmb2xkZXI6IHR5cGUgPT09ICdmb2xkZXInID8gJCh0YXJnZXQpIDogJChgJHtxdWVyeX0gaW5wdXRbbmFtZT1cImRhdGFbZm9sZGVyXVwiXWApXG4gICAgfTtcbn07XG5cbnRpdGxlLm9uKCdpbnB1dCBmb2N1cyBibHVyJywgKGV2ZW50KSA9PiB7XG4gICAgaWYgKGN1c3RvbSkgeyByZXR1cm4gdHJ1ZTsgfVxuICAgIGxldCBlbGVtZW50cyA9IGdldEZpZWxkcygndGl0bGUnLCBldmVudC5jdXJyZW50VGFyZ2V0KTtcblxuICAgIGxldCBzbHVnID0gJC5zbHVnaWZ5KGVsZW1lbnRzLnRpdGxlLnZhbCgpLCB7Y3VzdG9tOiB7XCInXCI6ICcnfX0pO1xuICAgIGVsZW1lbnRzLmZvbGRlci52YWwoc2x1Zyk7XG59KTtcblxuZm9sZGVyLm9uKCdpbnB1dCcsIChldmVudCkgPT4ge1xuICAgIGxldCBlbGVtZW50cyA9IGdldEZpZWxkcygnZm9sZGVyJywgZXZlbnQuY3VycmVudFRhcmdldCk7XG5cbiAgICBsZXQgaW5wdXQgPSBlbGVtZW50cy5mb2xkZXIuZ2V0KDApO1xuICAgIGxldCB2YWx1ZSA9IGVsZW1lbnRzLmZvbGRlci52YWwoKTtcbiAgICBsZXQgc2VsZWN0aW9uID0ge1xuICAgICAgICBzdGFydDogaW5wdXQuc2VsZWN0aW9uU3RhcnQsXG4gICAgICAgIGVuZDogaW5wdXQuc2VsZWN0aW9uRW5kXG4gICAgfTtcblxuICAgIHZhbHVlID0gdmFsdWUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9cXHMvZywgJy0nKS5yZXBsYWNlKC9bXmEtejAtOV9cXC1dL2csICcnKTtcbiAgICBlbGVtZW50cy5mb2xkZXIudmFsKHZhbHVlKTtcbiAgICBjdXN0b20gPSAhIXZhbHVlO1xuXG4gICAgLy8gcmVzdG9yZSBjdXJzb3IgcG9zaXRpb25cbiAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShzZWxlY3Rpb24uc3RhcnQsIHNlbGVjdGlvbi5lbmQpO1xuXG59KTtcblxuZm9sZGVyLm9uKCdmb2N1cyBibHVyJywgKGV2ZW50KSA9PiBnZXRGaWVsZHMoJ3RpdGxlJywgZXZlbnQuY3VycmVudFRhcmdldCkudGl0bGUudHJpZ2dlcignaW5wdXQnKSk7XG5cbiQoZG9jdW1lbnQpLm9uKCdjaGFuZ2UnLCAnW25hbWU9XCJkYXRhW3JvdXRlXVwiXScsIChldmVudCkgPT4ge1xuICAgIGNvbnN0IHJhd3JvdXRlID0gJChldmVudC5jdXJyZW50VGFyZ2V0KS52YWwoKTtcbiAgICBjb25zdCBwYWdlVGVtcGxhdGUgPSAkKCdbbmFtZT1cImRhdGFbbmFtZV1cIl0nKTtcbiAgICBjb25zdCBVUkkgPSBgJHtjb25maWcuYmFzZV91cmxfcmVsYXRpdmV9L2FqYXguanNvbi90YXNrJHtjb25maWcucGFyYW1fc2VwfWdldENoaWxkVHlwZXNgO1xuXG4gICAgaWYgKHBhZ2VUZW1wbGF0ZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJlcXVlc3QoVVJJLCB7XG4gICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICBib2R5OiB7IHJhd3JvdXRlIH1cbiAgICB9LCAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgY29uc3QgdHlwZSA9IHJlc3BvbnNlLmNoaWxkX3R5cGU7XG4gICAgICAgIGlmICh0eXBlICE9PSAnJyAmJiB0eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgICAgIHBhZ2VUZW1wbGF0ZS52YWwodHlwZSk7XG4gICAgICAgICAgICBwYWdlVGVtcGxhdGUuZGF0YSgnc2VsZWN0aXplJykuc2V0VmFsdWUodHlwZSk7XG4gICAgICAgIH1cbiAgICB9KTtcbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/pages/page/add.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/pages/page/delete.js":
|
|
/*!**********************************!*\
|
|
!*** ./app/pages/page/delete.js ***!
|
|
\**********************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-remodal-target=\"delete\"]', function () {\n var confirm = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-remodal-id=\"delete\"] [data-delete-action]');\n var link = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('delete-url');\n confirm.data('delete-action', link);\n});\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-delete-action]', function () {\n var remodal = (jquery__WEBPACK_IMPORTED_MODULE_0___default().remodal.lookup)[jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-remodal-id=\"delete\"]').data('remodal')];\n __webpack_require__.g.location.href = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('delete-action');\n remodal.close();\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3BhZ2VzL3BhZ2UvZGVsZXRlLmpzPzEwMTciXSwibmFtZXMiOlsiJCIsImRvY3VtZW50Iiwib24iLCJjb25maXJtIiwibGluayIsImRhdGEiLCJyZW1vZGFsIiwiZ2xvYmFsIiwibG9jYXRpb24iLCJocmVmIiwiY2xvc2UiXSwibWFwcGluZ3MiOiI7OztBQUFBO0FBRUFBLDZDQUFDLENBQUNDLFFBQUQsQ0FBRCxDQUFZQyxFQUFaLENBQWUsT0FBZixFQUF3QixnQ0FBeEIsRUFBMEQsWUFBVztBQUNqRSxNQUFJQyxPQUFPLEdBQUdILDZDQUFDLENBQUMsaURBQUQsQ0FBZjtBQUNBLE1BQUlJLElBQUksR0FBR0osNkNBQUMsQ0FBQyxJQUFELENBQUQsQ0FBUUssSUFBUixDQUFhLFlBQWIsQ0FBWDtBQUVBRixTQUFPLENBQUNFLElBQVIsQ0FBYSxlQUFiLEVBQThCRCxJQUE5QjtBQUNILENBTEQ7QUFPQUosNkNBQUMsQ0FBQ0MsUUFBRCxDQUFELENBQVlDLEVBQVosQ0FBZSxPQUFmLEVBQXdCLHNCQUF4QixFQUFnRCxZQUFXO0FBQ3ZELE1BQUlJLE9BQU8sR0FBR04sOERBQUEsQ0FBaUJBLDZDQUFDLENBQUMsNEJBQUQsQ0FBRCxDQUFnQ0ssSUFBaEMsQ0FBcUMsU0FBckMsQ0FBakIsQ0FBZDtBQUVBRSx1QkFBTSxDQUFDQyxRQUFQLENBQWdCQyxJQUFoQixHQUF1QlQsNkNBQUMsQ0FBQyxJQUFELENBQUQsQ0FBUUssSUFBUixDQUFhLGVBQWIsQ0FBdkI7QUFDQUMsU0FBTyxDQUFDSSxLQUFSO0FBQ0gsQ0FMRCIsImZpbGUiOiIuL2FwcC9wYWdlcy9wYWdlL2RlbGV0ZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5cbiQoZG9jdW1lbnQpLm9uKCdjbGljaycsICdbZGF0YS1yZW1vZGFsLXRhcmdldD1cImRlbGV0ZVwiXScsIGZ1bmN0aW9uKCkge1xuICAgIGxldCBjb25maXJtID0gJCgnW2RhdGEtcmVtb2RhbC1pZD1cImRlbGV0ZVwiXSBbZGF0YS1kZWxldGUtYWN0aW9uXScpO1xuICAgIGxldCBsaW5rID0gJCh0aGlzKS5kYXRhKCdkZWxldGUtdXJsJyk7XG5cbiAgICBjb25maXJtLmRhdGEoJ2RlbGV0ZS1hY3Rpb24nLCBsaW5rKTtcbn0pO1xuXG4kKGRvY3VtZW50KS5vbignY2xpY2snLCAnW2RhdGEtZGVsZXRlLWFjdGlvbl0nLCBmdW5jdGlvbigpIHtcbiAgICBsZXQgcmVtb2RhbCA9ICQucmVtb2RhbC5sb29rdXBbJCgnW2RhdGEtcmVtb2RhbC1pZD1cImRlbGV0ZVwiXScpLmRhdGEoJ3JlbW9kYWwnKV07XG5cbiAgICBnbG9iYWwubG9jYXRpb24uaHJlZiA9ICQodGhpcykuZGF0YSgnZGVsZXRlLWFjdGlvbicpO1xuICAgIHJlbW9kYWwuY2xvc2UoKTtcbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/pages/page/delete.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/pages/page/disable-buttons.js":
|
|
/*!*******************************************!*\
|
|
!*** ./app/pages/page/disable-buttons.js ***!
|
|
\*******************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()('.disable-after-click').on('click', function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).addClass('pointer-events-disabled');\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3BhZ2VzL3BhZ2UvZGlzYWJsZS1idXR0b25zLmpzPzZiODEiXSwibmFtZXMiOlsiJCIsIm9uIiwiYWRkQ2xhc3MiXSwibWFwcGluZ3MiOiI7OztBQUFBO0FBRUFBLDZDQUFDLENBQUMsc0JBQUQsQ0FBRCxDQUEwQkMsRUFBMUIsQ0FBNkIsT0FBN0IsRUFBc0MsWUFBVztBQUM3Q0QsK0NBQUMsQ0FBQyxJQUFELENBQUQsQ0FBUUUsUUFBUixDQUFpQix5QkFBakI7QUFDSCxDQUZEIiwiZmlsZSI6Ii4vYXBwL3BhZ2VzL3BhZ2UvZGlzYWJsZS1idXR0b25zLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcblxuJCgnLmRpc2FibGUtYWZ0ZXItY2xpY2snKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHtcbiAgICAkKHRoaXMpLmFkZENsYXNzKCdwb2ludGVyLWV2ZW50cy1kaXNhYmxlZCcpO1xufSk7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/pages/page/disable-buttons.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/pages/page/index.js":
|
|
/*!*********************************!*\
|
|
!*** ./app/pages/page/index.js ***!
|
|
\*********************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _add__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./add */ \"./app/pages/page/add.js\");\n/* harmony import */ var _move__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./move */ \"./app/pages/page/move.js\");\n/* harmony import */ var _delete__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./delete */ \"./app/pages/page/delete.js\");\n/* harmony import */ var _unset__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./unset */ \"./app/pages/page/unset.js\");\n/* harmony import */ var _disable_buttons__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./disable-buttons */ \"./app/pages/page/disable-buttons.js\");\n/* harmony import */ var _media__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./media */ \"./app/pages/page/media.js\");\n/* harmony import */ var _multilang__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./multilang */ \"./app/pages/page/multilang.js\");\n\n\n\n\n\n\n\n\nvar switcher = jquery__WEBPACK_IMPORTED_MODULE_0___default()('input[type=\"radio\"][name=\"mode-switch\"]');\n\nif (switcher) {\n var link = switcher.closest(':checked').data('leave-url');\n var fakeLink = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"<a href=\\\"\".concat(link, \"\\\" />\"));\n switcher.parent().append(fakeLink);\n switcher.siblings('label').on('mousedown touchdown', function (event) {\n event.preventDefault(); // let remodal = $.remodal.lookup[$('[data-remodal-id=\"changes\"]').data('remodal')];\n\n var confirm = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-remodal-id=\"changes\"] [data-leave-action=\"continue\"]');\n confirm.one('click', function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(__webpack_require__.g).on('beforeunload._grav');\n fakeLink.off('click._grav');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).trigger('click');\n });\n fakeLink.trigger('click._grav');\n });\n switcher.on('change', function (event) {\n var radio = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target);\n link = radio.data('leave-url');\n setTimeout(function () {\n return fakeLink.attr('href', link).get(0).click();\n }, 5);\n });\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n Media: {\n PageMedia: _media__WEBPACK_IMPORTED_MODULE_6__.default,\n PageMediaInstances: _media__WEBPACK_IMPORTED_MODULE_6__.Instance\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3BhZ2VzL3BhZ2UvaW5kZXguanM/YzAxYyJdLCJuYW1lcyI6WyJzd2l0Y2hlciIsIiQiLCJsaW5rIiwiY2xvc2VzdCIsImRhdGEiLCJmYWtlTGluayIsInBhcmVudCIsImFwcGVuZCIsInNpYmxpbmdzIiwib24iLCJldmVudCIsInByZXZlbnREZWZhdWx0IiwiY29uZmlybSIsIm9uZSIsImdsb2JhbCIsIm9mZiIsInRhcmdldCIsInRyaWdnZXIiLCJyYWRpbyIsInNldFRpbWVvdXQiLCJhdHRyIiwiZ2V0IiwiY2xpY2siLCJNZWRpYSIsIlBhZ2VNZWRpYSIsIlBhZ2VNZWRpYUluc3RhbmNlcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQSxJQUFNQSxRQUFRLEdBQUdDLDZDQUFDLENBQUMseUNBQUQsQ0FBbEI7O0FBRUEsSUFBSUQsUUFBSixFQUFjO0FBQ1YsTUFBSUUsSUFBSSxHQUFHRixRQUFRLENBQUNHLE9BQVQsQ0FBaUIsVUFBakIsRUFBNkJDLElBQTdCLENBQWtDLFdBQWxDLENBQVg7QUFDQSxNQUFJQyxRQUFRLEdBQUdKLDZDQUFDLHFCQUFhQyxJQUFiLFdBQWhCO0FBRUFGLFVBQVEsQ0FBQ00sTUFBVCxHQUFrQkMsTUFBbEIsQ0FBeUJGLFFBQXpCO0FBRUFMLFVBQVEsQ0FBQ1EsUUFBVCxDQUFrQixPQUFsQixFQUEyQkMsRUFBM0IsQ0FBOEIscUJBQTlCLEVBQXFELFVBQUNDLEtBQUQsRUFBVztBQUM1REEsU0FBSyxDQUFDQyxjQUFOLEdBRDRELENBRzVEOztBQUNBLFFBQUlDLE9BQU8sR0FBR1gsNkNBQUMsQ0FBQyw0REFBRCxDQUFmO0FBRUFXLFdBQU8sQ0FBQ0MsR0FBUixDQUFZLE9BQVosRUFBcUIsWUFBTTtBQUN2QlosbURBQUMsQ0FBQ2EscUJBQUQsQ0FBRCxDQUFVTCxFQUFWLENBQWEsb0JBQWI7QUFDQUosY0FBUSxDQUFDVSxHQUFULENBQWEsYUFBYjtBQUVBZCxtREFBQyxDQUFDUyxLQUFLLENBQUNNLE1BQVAsQ0FBRCxDQUFnQkMsT0FBaEIsQ0FBd0IsT0FBeEI7QUFDSCxLQUxEO0FBT0FaLFlBQVEsQ0FBQ1ksT0FBVCxDQUFpQixhQUFqQjtBQUNILEdBZEQ7QUFnQkFqQixVQUFRLENBQUNTLEVBQVQsQ0FBWSxRQUFaLEVBQXNCLFVBQUNDLEtBQUQsRUFBVztBQUM3QixRQUFJUSxLQUFLLEdBQUdqQiw2Q0FBQyxDQUFDUyxLQUFLLENBQUNNLE1BQVAsQ0FBYjtBQUNBZCxRQUFJLEdBQUdnQixLQUFLLENBQUNkLElBQU4sQ0FBVyxXQUFYLENBQVA7QUFFQWUsY0FBVSxDQUFDO0FBQUEsYUFBTWQsUUFBUSxDQUFDZSxJQUFULENBQWMsTUFBZCxFQUFzQmxCLElBQXRCLEVBQTRCbUIsR0FBNUIsQ0FBZ0MsQ0FBaEMsRUFBbUNDLEtBQW5DLEVBQU47QUFBQSxLQUFELEVBQW1ELENBQW5ELENBQVY7QUFDSCxHQUxEO0FBTUg7O0FBRUQsaUVBQWU7QUFDWEMsT0FBSyxFQUFFO0FBQ0hDLGFBQVMsRUFBVEEsMkNBREc7QUFFSEMsc0JBQWtCLEVBQWxCQSw0Q0FBa0JBO0FBRmY7QUFESSxDQUFmIiwiZmlsZSI6Ii4vYXBwL3BhZ2VzL3BhZ2UvaW5kZXguanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0ICcuL2FkZCc7XG5pbXBvcnQgJy4vbW92ZSc7XG5pbXBvcnQgJy4vZGVsZXRlJztcbmltcG9ydCAnLi91bnNldCc7XG5pbXBvcnQgJy4vZGlzYWJsZS1idXR0b25zJztcbmltcG9ydCBQYWdlTWVkaWEsIHsgSW5zdGFuY2UgYXMgUGFnZU1lZGlhSW5zdGFuY2VzIH0gZnJvbSAnLi9tZWRpYSc7XG5pbXBvcnQgJy4vbXVsdGlsYW5nJztcblxuY29uc3Qgc3dpdGNoZXIgPSAkKCdpbnB1dFt0eXBlPVwicmFkaW9cIl1bbmFtZT1cIm1vZGUtc3dpdGNoXCJdJyk7XG5cbmlmIChzd2l0Y2hlcikge1xuICAgIGxldCBsaW5rID0gc3dpdGNoZXIuY2xvc2VzdCgnOmNoZWNrZWQnKS5kYXRhKCdsZWF2ZS11cmwnKTtcbiAgICBsZXQgZmFrZUxpbmsgPSAkKGA8YSBocmVmPVwiJHtsaW5rfVwiIC8+YCk7XG5cbiAgICBzd2l0Y2hlci5wYXJlbnQoKS5hcHBlbmQoZmFrZUxpbmspO1xuXG4gICAgc3dpdGNoZXIuc2libGluZ3MoJ2xhYmVsJykub24oJ21vdXNlZG93biB0b3VjaGRvd24nLCAoZXZlbnQpID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAvLyBsZXQgcmVtb2RhbCA9ICQucmVtb2RhbC5sb29rdXBbJCgnW2RhdGEtcmVtb2RhbC1pZD1cImNoYW5nZXNcIl0nKS5kYXRhKCdyZW1vZGFsJyldO1xuICAgICAgICBsZXQgY29uZmlybSA9ICQoJ1tkYXRhLXJlbW9kYWwtaWQ9XCJjaGFuZ2VzXCJdIFtkYXRhLWxlYXZlLWFjdGlvbj1cImNvbnRpbnVlXCJdJyk7XG5cbiAgICAgICAgY29uZmlybS5vbmUoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgICAgJChnbG9iYWwpLm9uKCdiZWZvcmV1bmxvYWQuX2dyYXYnKTtcbiAgICAgICAgICAgIGZha2VMaW5rLm9mZignY2xpY2suX2dyYXYnKTtcblxuICAgICAgICAgICAgJChldmVudC50YXJnZXQpLnRyaWdnZXIoJ2NsaWNrJyk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGZha2VMaW5rLnRyaWdnZXIoJ2NsaWNrLl9ncmF2Jyk7XG4gICAgfSk7XG5cbiAgICBzd2l0Y2hlci5vbignY2hhbmdlJywgKGV2ZW50KSA9PiB7XG4gICAgICAgIGxldCByYWRpbyA9ICQoZXZlbnQudGFyZ2V0KTtcbiAgICAgICAgbGluayA9IHJhZGlvLmRhdGEoJ2xlYXZlLXVybCcpO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gZmFrZUxpbmsuYXR0cignaHJlZicsIGxpbmspLmdldCgwKS5jbGljaygpLCA1KTtcbiAgICB9KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICAgIE1lZGlhOiB7XG4gICAgICAgIFBhZ2VNZWRpYSxcbiAgICAgICAgUGFnZU1lZGlhSW5zdGFuY2VzXG4gICAgfVxufTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/pages/page/index.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/pages/page/media.js":
|
|
/*!*********************************!*\
|
|
!*** ./app/pages/page/media.js ***!
|
|
\*********************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ PageMedia),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/request */ \"./app/utils/request.js\");\n/* harmony import */ var _forms_fields_files__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../forms/fields/files */ \"./app/forms/fields/files.js\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _forms_fields_editor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../forms/fields/editor */ \"./app/forms/fields/editor.js\");\n/* harmony import */ var sortablejs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! sortablejs */ \"./node_modules/sortablejs/modular/sortable.esm.js\");\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\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); return Constructor; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || 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; } 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 : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n\nvar previewTemplate = \"\\n <div class=\\\"dz-preview dz-file-preview\\\">\\n <div class=\\\"dz-details\\\">\\n <div class=\\\"dz-filename\\\"><span data-dz-name></span></div>\\n <div class=\\\"dz-size\\\" data-dz-size></div>\\n <img data-dz-thumbnail />\\n </div>\\n <div class=\\\"dz-progress\\\"><span class=\\\"dz-upload\\\" data-dz-uploadprogress></span></div>\\n <div class=\\\"dz-success-mark\\\"><span>\\u2714</span></div>\\n <div class=\\\"dz-error-mark\\\"><span>\\u2718</span></div>\\n <div class=\\\"dz-error-message\\\"><span data-dz-errormessage></span></div>\\n <a class=\\\"dz-remove\\\" title=\\\"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.DELETE, \"\\\" href=\\\"javascript:undefined;\\\" data-dz-remove>\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.DELETE, \"</a>\\n <a class=\\\"dz-metadata\\\" title=\\\"\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.METADATA, \"\\\" href=\\\"#\\\" target=\\\"_blank\\\" data-dz-metadata>\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.METADATA, \"</a>\\n <a class=\\\"dz-view\\\" title=\\\"\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.VIEW, \"\\\" href=\\\"#\\\" target=\\\"_blank\\\" data-dz-view>\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.VIEW, \"</a>\\n <a class=\\\"dz-insert\\\" title=\\\"\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.INSERT, \"\\\" href=\\\"javascript:undefined;\\\" data-dz-insert>\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.translations.PLUGIN_ADMIN.INSERT, \"</a>\\n </div>\").trim();\n\nvar PageMedia = /*#__PURE__*/function (_FilesField) {\n _inherits(PageMedia, _FilesField);\n\n var _super = _createSuper(PageMedia);\n\n function PageMedia() {\n var _this;\n\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$container = _ref.container,\n container = _ref$container === void 0 ? '#grav-dropzone' : _ref$container,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options;\n\n _classCallCheck(this, PageMedia);\n\n options = Object.assign(options, {\n previewTemplate: previewTemplate\n });\n _this = _super.call(this, {\n container: container,\n options: options\n });\n\n if (!_this.container.length) {\n return _possibleConstructorReturn(_this);\n }\n\n _this.urls = {\n fetch: \"\".concat(_this.container.data('media-url'), \"/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.config.param_sep, \"listmedia\"),\n add: \"\".concat(_this.container.data('media-url'), \"/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.config.param_sep, \"addmedia\"),\n \"delete\": \"\".concat(_this.container.data('media-url'), \"/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_3__.config.param_sep, \"delmedia\")\n };\n _this.dropzone.options.url = _this.urls.add;\n\n if (typeof _this.options.fetchMedia === 'undefined' || _this.options.fetchMedia) {\n _this.fetchMedia();\n }\n\n if (typeof _this.options.attachDragDrop === 'undefined' || _this.options.attachDragDrop) {\n _this.attachDragDrop();\n }\n\n var field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[name=\\\"\".concat(_this.container.data('dropzone-field'), \"\\\"]\"));\n\n if (field.length) {\n _this.sortable = new sortablejs__WEBPACK_IMPORTED_MODULE_5__.default(_this.container.get(0), {\n animation: 150,\n // forceFallback: true,\n setData: function setData(dataTransfer, target) {\n target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(target);\n var uri = encodeURI(target.find('.dz-filename').text());\n var shortcode = (0,_forms_fields_files__WEBPACK_IMPORTED_MODULE_2__.UriToMarkdown)(uri);\n\n _this.dropzone.disable();\n\n target.addClass('hide-backface');\n dataTransfer.effectAllowed = 'copy';\n dataTransfer.setData('text', shortcode);\n },\n onSort: function onSort() {\n var names = [];\n\n _this.container.find('[data-dz-name]').each(function (index, file) {\n file = jquery__WEBPACK_IMPORTED_MODULE_0___default()(file);\n var name = file.text().trim();\n names.push(name);\n });\n\n field.val(names.join(','));\n }\n });\n }\n\n return _this;\n }\n\n _createClass(PageMedia, [{\n key: \"fetchMedia\",\n value: function fetchMedia() {\n var _this2 = this;\n\n var order = this.container.closest('.form-field').find('[name=\"data[header][media_order]\"]').val();\n var body = {\n uri: this.getURI(),\n order: order\n };\n var url = this.urls.fetch;\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_1__.default)(url, {\n method: 'post',\n body: body\n }, function (response) {\n var results = response.results;\n Object.keys(results).forEach(function (name) {\n var data = results[name];\n var mock = {\n name: name,\n size: data.size,\n accepted: true,\n extras: data\n };\n\n _this2.dropzone.files.push(mock);\n\n _this2.dropzone.options.addedfile.call(_this2.dropzone, mock);\n\n _this2.dropzone.options.thumbnail.call(_this2.dropzone, mock, data.url);\n });\n\n _this2.container.find('.dz-preview').prop('draggable', 'true');\n });\n }\n }, {\n key: \"onDropzoneSending\",\n value: function onDropzoneSending(file, xhr, formData) {\n /*\n // Cannot call super because Safari and IE API don't implement `delete`\n super.onDropzoneSending(file, xhr, formData);\n formData.delete('task');\n */\n formData.append('name', this.options.dotNotation || file.name);\n formData.append('admin-nonce', grav_config__WEBPACK_IMPORTED_MODULE_3__.config.admin_nonce);\n formData.append('uri', this.getURI());\n }\n }, {\n key: \"onDropzoneComplete\",\n value: function onDropzoneComplete(file) {\n _get(_getPrototypeOf(PageMedia.prototype), \"onDropzoneComplete\", this).call(this, file);\n\n if (this.sortable) {\n this.sortable.options.onSort();\n } // accepted\n\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.dz-preview').prop('draggable', 'true');\n }\n }, {\n key: \"onDropzoneRemovedFile\",\n value: function onDropzoneRemovedFile(file) {\n var _get2;\n\n for (var _len = arguments.length, extra = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n extra[_key - 1] = arguments[_key];\n }\n\n (_get2 = _get(_getPrototypeOf(PageMedia.prototype), \"onDropzoneRemovedFile\", this)).call.apply(_get2, [this, file].concat(extra));\n\n if (this.sortable) {\n this.sortable.options.onSort();\n }\n }\n }, {\n key: \"attachDragDrop\",\n value: function attachDragDrop() {\n var _this3 = this;\n\n this.container.delegate('[data-dz-insert]', 'click', function (e) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.currentTarget).parent('.dz-preview').find('.dz-filename');\n var editor = _forms_fields_editor__WEBPACK_IMPORTED_MODULE_4__.Instance.editors.filter(function (index, editor) {\n return jquery__WEBPACK_IMPORTED_MODULE_0___default()(editor).attr('name') === 'data[content]';\n });\n\n if (editor.length) {\n editor = editor.data('codemirror');\n editor.focus();\n var filename = encodeURI(target.text());\n var shortcode = (0,_forms_fields_files__WEBPACK_IMPORTED_MODULE_2__.UriToMarkdown)(filename);\n editor.doc.replaceSelection(shortcode);\n }\n });\n this.container.delegate('[data-dz-view]', 'mouseenter', function (e) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.currentTarget);\n var file = target.parent('.dz-preview').find('.dz-filename');\n var filename = encodeURI(file.text());\n var URL = target.closest('[data-media-path]').data('media-path');\n\n var original = _this3.dropzone.files.filter(function (file) {\n return encodeURI(file.name) === filename;\n }).shift();\n\n original = original && (original.extras && original.extras.original || encodeURI(original.name));\n target.attr('href', \"\".concat(URL, \"/\").concat(original));\n });\n this.container.delegate('[data-dz-metadata]', 'click', function (e) {\n e.preventDefault();\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.currentTarget);\n var file = target.parent('.dz-preview').find('.dz-filename');\n var filename = encodeURI(file.text());\n var fileObj = _this3.dropzone.files.filter(function (file) {\n return file.name === __webpack_require__.g.decodeURI(filename);\n }).shift() || {};\n\n if (!fileObj.extras) {\n fileObj.extras = {\n metadata: []\n };\n }\n\n if (Array.isArray(fileObj.extras.metadata) && !fileObj.extras.metadata.length) {\n fileObj.extras.metadata = {\n '': \"\".concat(__webpack_require__.g.decodeURI(filename), \".meta.yaml doesn't exist\")\n };\n }\n\n fileObj = fileObj.extras;\n var modal_element = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').find('[data-remodal-id=\"metadata\"]');\n var modal = (jquery__WEBPACK_IMPORTED_MODULE_0___default().remodal.lookup)[modal_element.data('remodal')];\n modal_element.find('h1 strong').html(filename);\n\n if (fileObj.url) {\n modal_element.find('.meta-preview').html(\"<img src=\\\"\".concat(fileObj.url, \"\\\" />\"));\n }\n\n var container = modal_element.find('.meta-content').html('<ul />').find('ul');\n Object.keys(fileObj.metadata).forEach(function (meta) {\n container.append(\"<li><strong>\".concat(meta ? meta + ':' : '', \"</strong> \").concat(fileObj.metadata[meta], \"</li>\"));\n });\n modal.open();\n });\n this.container.delegate('.dz-preview', 'dragstart', function (e) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.currentTarget);\n var uri = encodeURI(target.find('.dz-filename').text());\n var shortcode = (0,_forms_fields_files__WEBPACK_IMPORTED_MODULE_2__.UriToMarkdown)(uri);\n\n _this3.dropzone.disable();\n\n target.addClass('hide-backface');\n e.originalEvent.dataTransfer.effectAllowed = 'copy';\n e.originalEvent.dataTransfer.setData('text', shortcode);\n });\n this.container.delegate('.dz-preview', 'dragend', function (e) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.currentTarget);\n\n _this3.dropzone.enable();\n\n target.removeClass('hide-backface');\n });\n }\n }]);\n\n return PageMedia;\n}(_forms_fields_files__WEBPACK_IMPORTED_MODULE_2__.default);\n\n\nvar Instance = new PageMedia();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3BhZ2VzL3BhZ2UvbWVkaWEuanM/ZTlhMiJdLCJuYW1lcyI6WyJwcmV2aWV3VGVtcGxhdGUiLCJ0cmFuc2xhdGlvbnMiLCJ0cmltIiwiUGFnZU1lZGlhIiwiY29udGFpbmVyIiwib3B0aW9ucyIsIk9iamVjdCIsImFzc2lnbiIsImxlbmd0aCIsInVybHMiLCJmZXRjaCIsImRhdGEiLCJjb25maWciLCJhZGQiLCJkcm9wem9uZSIsInVybCIsImZldGNoTWVkaWEiLCJhdHRhY2hEcmFnRHJvcCIsImZpZWxkIiwiJCIsInNvcnRhYmxlIiwiU29ydGFibGUiLCJnZXQiLCJhbmltYXRpb24iLCJzZXREYXRhIiwiZGF0YVRyYW5zZmVyIiwidGFyZ2V0IiwidXJpIiwiZW5jb2RlVVJJIiwiZmluZCIsInRleHQiLCJzaG9ydGNvZGUiLCJVcmlUb01hcmtkb3duIiwiZGlzYWJsZSIsImFkZENsYXNzIiwiZWZmZWN0QWxsb3dlZCIsIm9uU29ydCIsIm5hbWVzIiwiZWFjaCIsImluZGV4IiwiZmlsZSIsIm5hbWUiLCJwdXNoIiwidmFsIiwiam9pbiIsIm9yZGVyIiwiY2xvc2VzdCIsImJvZHkiLCJnZXRVUkkiLCJyZXF1ZXN0IiwibWV0aG9kIiwicmVzcG9uc2UiLCJyZXN1bHRzIiwia2V5cyIsImZvckVhY2giLCJtb2NrIiwic2l6ZSIsImFjY2VwdGVkIiwiZXh0cmFzIiwiZmlsZXMiLCJhZGRlZGZpbGUiLCJjYWxsIiwidGh1bWJuYWlsIiwicHJvcCIsInhociIsImZvcm1EYXRhIiwiYXBwZW5kIiwiZG90Tm90YXRpb24iLCJleHRyYSIsImRlbGVnYXRlIiwiZSIsImN1cnJlbnRUYXJnZXQiLCJwYXJlbnQiLCJlZGl0b3IiLCJFZGl0b3IiLCJhdHRyIiwiZm9jdXMiLCJmaWxlbmFtZSIsImRvYyIsInJlcGxhY2VTZWxlY3Rpb24iLCJVUkwiLCJvcmlnaW5hbCIsImZpbHRlciIsInNoaWZ0IiwicHJldmVudERlZmF1bHQiLCJmaWxlT2JqIiwiZ2xvYmFsIiwiZGVjb2RlVVJJIiwibWV0YWRhdGEiLCJBcnJheSIsImlzQXJyYXkiLCJtb2RhbF9lbGVtZW50IiwibW9kYWwiLCJodG1sIiwibWV0YSIsIm9wZW4iLCJvcmlnaW5hbEV2ZW50IiwiZW5hYmxlIiwicmVtb3ZlQ2xhc3MiLCJGaWxlc0ZpZWxkIiwiSW5zdGFuY2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLElBQU1BLGVBQWUsR0FBRyw0bEJBV1lDLHlFQVhaLDhEQVc2RkEseUVBWDdGLDBEQVljQSwyRUFaZCw4REFZK0ZBLDJFQVovRixzREFhVUEsdUVBYlYsMERBYW1GQSx1RUFibkYsd0RBY1lBLHlFQWRaLDhEQWM2RkEseUVBZDdGLHNCQWVaQyxJQWZZLEVBQXhCOztJQWlCcUJDLFM7Ozs7O0FBQ2pCLHVCQUFpRTtBQUFBOztBQUFBLG1GQUFKLEVBQUk7QUFBQSw4QkFBbkRDLFNBQW1EO0FBQUEsUUFBbkRBLFNBQW1ELCtCQUF2QyxnQkFBdUM7QUFBQSw0QkFBckJDLE9BQXFCO0FBQUEsUUFBckJBLE9BQXFCLDZCQUFYLEVBQVc7O0FBQUE7O0FBQzdEQSxXQUFPLEdBQUdDLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjRixPQUFkLEVBQXVCO0FBQUVMLHFCQUFlLEVBQWZBO0FBQUYsS0FBdkIsQ0FBVjtBQUNBLDhCQUFNO0FBQUVJLGVBQVMsRUFBVEEsU0FBRjtBQUFhQyxhQUFPLEVBQVBBO0FBQWIsS0FBTjs7QUFDQSxRQUFJLENBQUMsTUFBS0QsU0FBTCxDQUFlSSxNQUFwQixFQUE0QjtBQUFFO0FBQVM7O0FBRXZDLFVBQUtDLElBQUwsR0FBWTtBQUNSQyxXQUFLLFlBQUssTUFBS04sU0FBTCxDQUFlTyxJQUFmLENBQW9CLFdBQXBCLENBQUwsa0JBQTZDQyx5REFBN0MsY0FERztBQUVSQyxTQUFHLFlBQUssTUFBS1QsU0FBTCxDQUFlTyxJQUFmLENBQW9CLFdBQXBC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LENBQUNiLFFBQUwsQ0FBY21CLE9BQWQ7O0FBQ0FQLGNBQU0sQ0FBQ1EsUUFBUCxDQUFnQixlQUFoQjtBQUNBb0MsU0FBQyxDQUFDMEIsYUFBRixDQUFnQnZFLFlBQWhCLENBQTZCVSxhQUE3QixHQUE2QyxNQUE3QztBQUNBbUMsU0FBQyxDQUFDMEIsYUFBRixDQUFnQnZFLFlBQWhCLENBQTZCRCxPQUE3QixDQUFxQyxNQUFyQyxFQUE2Q08sU0FBN0M7QUFDSCxPQVJEO0FBVUEsV0FBSzNCLFNBQUwsQ0FBZWlFLFFBQWYsQ0FBd0IsYUFBeEIsRUFBdUMsU0FBdkMsRUFBa0QsVUFBQ0MsQ0FBRCxFQUFPO0FBQ3JELFlBQUk1QyxNQUFNLEdBQUdQLDZDQUFDLENBQUNtRCxDQUFDLENBQUNDLGFBQUgsQ0FBZDs7QUFDQSxjQUFJLENBQUN6RCxRQUFMLENBQWNtRixNQUFkOztBQUNBdkUsY0FBTSxDQUFDd0UsV0FBUCxDQUFtQixlQUFuQjtBQUNILE9BSkQ7QUFLSDs7OztFQWpMa0NDLHdEOzs7QUFvTGhDLElBQUlDLFFBQVEsR0FBRyxJQUFJakcsU0FBSixFQUFmIiwiZmlsZSI6Ii4vYXBwL3BhZ2VzL3BhZ2UvbWVkaWEuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IHJlcXVlc3QgZnJvbSAnLi4vLi4vdXRpbHMvcmVxdWVzdCc7XG5pbXBvcnQgRmlsZXNGaWVsZCwgeyBVcmlUb01hcmtkb3duIH0gZnJvbSAnLi4vLi4vZm9ybXMvZmllbGRzL2ZpbGVzJztcbmltcG9ydCB7IGNvbmZpZywgdHJhbnNsYXRpb25zIH0gZnJvbSAnZ3Jhdi1jb25maWcnO1xuaW1wb3J0IHsgSW5zdGFuY2UgYXMgRWRpdG9yIH0gZnJvbSAnLi4vLi4vZm9ybXMvZmllbGRzL2VkaXRvcic7XG5pbXBvcnQgU29ydGFibGUgZnJvbSAnc29ydGFibGVqcyc7XG5cbmNvbnN0IHByZXZpZXdUZW1wbGF0ZSA9IGBcbiAgICA8ZGl2IGNsYXNzPVwiZHotcHJldmlldyBkei1maWxlLXByZXZpZXdcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkei1kZXRhaWxzXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkei1maWxlbmFtZVwiPjxzcGFuIGRhdGEtZHotbmFtZT48L3NwYW4+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkei1zaXplXCIgZGF0YS1kei1zaXplPjwvZGl2PlxuICAgICAgICA8aW1nIGRhdGEtZHotdGh1bWJuYWlsIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkei1wcm9ncmVzc1wiPjxzcGFuIGNsYXNzPVwiZHotdXBsb2FkXCIgZGF0YS1kei11cGxvYWRwcm9ncmVzcz48L3NwYW4+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZHotc3VjY2Vzcy1tYXJrXCI+PHNwYW4+4pyUPC9zcGFuPjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImR6LWVycm9yLW1hcmtcIj48c3Bhbj7inJg8L3NwYW4+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZHotZXJyb3ItbWVzc2FnZVwiPjxzcGFuIGRhdGEtZHotZXJyb3JtZXNzYWdlPjwvc3Bhbj48L2Rpdj5cbiAgICAgIDxhIGNsYXNzPVwiZHotcmVtb3ZlXCIgdGl0bGU9XCIke3RyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uREVMRVRFfVwiIGhyZWY9XCJqYXZhc2NyaXB0OnVuZGVmaW5lZDtcIiBkYXRhLWR6LXJlbW92ZT4ke3RyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uREVMRVRFfTwvYT5cbiAgICAgIDxhIGNsYXNzPVwiZHotbWV0YWRhdGFcIiB0aXRsZT1cIiR7dHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5NRVRBREFUQX1cIiBocmVmPVwiI1wiIHRhcmdldD1cIl9ibGFua1wiIGRhdGEtZHotbWV0YWRhdGE+JHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLk1FVEFEQVRBfTwvYT5cbiAgICAgIDxhIGNsYXNzPVwiZHotdmlld1wiIHRpdGxlPVwiJHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLlZJRVd9XCIgaHJlZj1cIiNcIiB0YXJnZXQ9XCJfYmxhbmtcIiBkYXRhLWR6LXZpZXc+JHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLlZJRVd9PC9hPlxuICAgICAgPGEgY2xhc3M9XCJkei1pbnNlcnRcIiB0aXRsZT1cIiR7dHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5JTlNFUlR9XCIgaHJlZj1cImphdmFzY3JpcHQ6dW5kZWZpbmVkO1wiIGRhdGEtZHotaW5zZXJ0PiR7dHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5JTlNFUlR9PC9hPlxuICAgIDwvZGl2PmAudHJpbSgpO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQYWdlTWVkaWEgZXh0ZW5kcyBGaWxlc0ZpZWxkIHtcbiAgICBjb25zdHJ1Y3Rvcih7IGNvbnRhaW5lciA9ICcjZ3Jhdi1kcm9wem9uZScsIG9wdGlvbnMgPSB7fSB9ID0ge30pIHtcbiAgICAgICAgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24ob3B0aW9ucywgeyBwcmV2aWV3VGVtcGxhdGUgfSk7XG4gICAgICAgIHN1cGVyKHsgY29udGFpbmVyLCBvcHRpb25zIH0pO1xuICAgICAgICBpZiAoIXRoaXMuY29udGFpbmVyLmxlbmd0aCkgeyByZXR1cm47IH1cblxuICAgICAgICB0aGlzLnVybHMgPSB7XG4gICAgICAgICAgICBmZXRjaDogYCR7dGhpcy5jb250YWluZXIuZGF0YSgnbWVkaWEtdXJsJyl9L3Rhc2ske2NvbmZpZy5wYXJhbV9zZXB9bGlzdG1lZGlhYCxcbiAgICAgICAgICAgIGFkZDogYCR7dGhpcy5jb250YWluZXIuZGF0YSgnbWVkaWEtdXJsJyl9L3Rhc2ske2NvbmZpZy5wYXJhbV9zZXB9YWRkbWVkaWFgLFxuICAgICAgICAgICAgZGVsZXRlOiBgJHt0aGlzLmNvbnRhaW5lci5kYXRhKCdtZWRpYS11cmwnKX0vdGFzayR7Y29uZmlnLnBhcmFtX3NlcH1kZWxtZWRpYWBcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmRyb3B6b25lLm9wdGlvbnMudXJsID0gdGhpcy51cmxzLmFkZDtcblxuICAgICAgICBpZiAodHlwZW9mIHRoaXMub3B0aW9ucy5mZXRjaE1lZGlhID09PSAndW5kZWZpbmVkJyB8fCB0aGlzLm9wdGlvbnMuZmV0Y2hNZWRpYSkge1xuICAgICAgICAgICAgdGhpcy5mZXRjaE1lZGlhKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIHRoaXMub3B0aW9ucy5hdHRhY2hEcmFnRHJvcCA9PT0gJ3VuZGVmaW5lZCcgfHwgdGhpcy5vcHRpb25zLmF0dGFjaERyYWdEcm9wKSB7XG4gICAgICAgICAgICB0aGlzLmF0dGFjaERyYWdEcm9wKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmaWVsZCA9ICQoYFtuYW1lPVwiJHt0aGlzLmNvbnRhaW5lci5kYXRhKCdkcm9wem9uZS1maWVsZCcpfVwiXWApO1xuXG4gICAgICAgIGlmIChmaWVsZC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuc29ydGFibGUgPSBuZXcgU29ydGFibGUodGhpcy5jb250YWluZXIuZ2V0KDApLCB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uOiAxNTAsXG4gICAgICAgICAgICAgICAgLy8gZm9yY2VGYWxsYmFjazogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzZXREYXRhOiAoZGF0YVRyYW5zZmVyLCB0YXJnZXQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0ID0gJCh0YXJnZXQpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgdXJpID0gZW5jb2RlVVJJKHRhcmdldC5maW5kKCcuZHotZmlsZW5hbWUnKS50ZXh0KCkpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgc2hvcnRjb2RlID0gVXJpVG9NYXJrZG93bih1cmkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRyb3B6b25lLmRpc2FibGUoKTtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LmFkZENsYXNzKCdoaWRlLWJhY2tmYWNlJyk7XG4gICAgICAgICAgICAgICAgICAgIGRhdGFUcmFuc2Zlci5lZmZlY3RBbGxvd2VkID0gJ2NvcHknO1xuICAgICAgICAgICAgICAgICAgICBkYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dCcsIHNob3J0Y29kZSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBvblNvcnQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG5hbWVzID0gW107XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLmZpbmQoJ1tkYXRhLWR6LW5hbWVdJykuZWFjaCgoaW5kZXgsIGZpbGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUgPSAkKGZpbGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmFtZSA9IGZpbGUudGV4dCgpLnRyaW0oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzLnB1c2gobmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkLnZhbChuYW1lcy5qb2luKCcsJykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZmV0Y2hNZWRpYSgpIHtcbiAgICAgICAgY29uc3Qgb3JkZXIgPSB0aGlzLmNvbnRhaW5lci5jbG9zZXN0KCcuZm9ybS1maWVsZCcpLmZpbmQoJ1tuYW1lPVwiZGF0YVtoZWFkZXJdW21lZGlhX29yZGVyXVwiXScpLnZhbCgpO1xuICAgICAgICBjb25zdCBib2R5ID0geyB1cmk6IHRoaXMuZ2V0VVJJKCksIG9yZGVyIH07XG4gICAgICAgIGxldCB1cmwgPSB0aGlzLnVybHMuZmV0Y2g7XG5cbiAgICAgICAgcmVxdWVzdCh1cmwsIHsgbWV0aG9kOiAncG9zdCcsIGJvZHkgfSwgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBsZXQgcmVzdWx0cyA9IHJlc3BvbnNlLnJlc3VsdHM7XG5cbiAgICAgICAgICAgIE9iamVjdC5rZXlzKHJlc3VsdHMpLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IHJlc3VsdHNbbmFtZV07XG4gICAgICAgICAgICAgICAgbGV0IG1vY2sgPSB7IG5hbWUsIHNpemU6IGRhdGEuc2l6ZSwgYWNjZXB0ZWQ6IHRydWUsIGV4dHJhczogZGF0YSB9O1xuXG4gICAgICAgICAgICAgICAgdGhpcy5kcm9wem9uZS5maWxlcy5wdXNoKG1vY2spO1xuICAgICAgICAgICAgICAgIHRoaXMuZHJvcHpvbmUub3B0aW9ucy5hZGRlZGZpbGUuY2FsbCh0aGlzLmRyb3B6b25lLCBtb2NrKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRyb3B6b25lLm9wdGlvbnMudGh1bWJuYWlsLmNhbGwodGhpcy5kcm9wem9uZSwgbW9jaywgZGF0YS51cmwpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLmZpbmQoJy5kei1wcmV2aWV3JykucHJvcCgnZHJhZ2dhYmxlJywgJ3RydWUnKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25Ecm9wem9uZVNlbmRpbmcoZmlsZSwgeGhyLCBmb3JtRGF0YSkge1xuICAgICAgICAvKlxuICAgICAgICAvLyBDYW5ub3QgY2FsbCBzdXBlciBiZWNhdXNlIFNhZmFyaSBhbmQgSUUgQVBJIGRvbid0IGltcGxlbWVudCBgZGVsZXRlYFxuICAgICAgICBzdXBlci5vbkRyb3B6b25lU2VuZGluZyhmaWxlLCB4aHIsIGZvcm1EYXRhKTtcbiAgICAgICAgZm9ybURhdGEuZGVsZXRlKCd0YXNrJyk7XG4gICAgICAgICovXG5cbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCduYW1lJywgdGhpcy5vcHRpb25zLmRvdE5vdGF0aW9uIHx8IGZpbGUubmFtZSk7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnYWRtaW4tbm9uY2UnLCBjb25maWcuYWRtaW5fbm9uY2UpO1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ3VyaScsIHRoaXMuZ2V0VVJJKCkpO1xuICAgIH1cblxuICAgIG9uRHJvcHpvbmVDb21wbGV0ZShmaWxlKSB7XG4gICAgICAgIHN1cGVyLm9uRHJvcHpvbmVDb21wbGV0ZShmaWxlKTtcbiAgICAgICAgaWYgKHRoaXMuc29ydGFibGUpIHtcbiAgICAgICAgICAgIHRoaXMuc29ydGFibGUub3B0aW9ucy5vblNvcnQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGFjY2VwdGVkXG4gICAgICAgICQoJy5kei1wcmV2aWV3JykucHJvcCgnZHJhZ2dhYmxlJywgJ3RydWUnKTtcbiAgICB9XG5cbiAgICBvbkRyb3B6b25lUmVtb3ZlZEZpbGUoZmlsZSwgLi4uZXh0cmEpIHtcbiAgICAgICAgc3VwZXIub25Ecm9wem9uZVJlbW92ZWRGaWxlKGZpbGUsIC4uLmV4dHJhKTtcbiAgICAgICAgaWYgKHRoaXMuc29ydGFibGUpIHtcbiAgICAgICAgICAgIHRoaXMuc29ydGFibGUub3B0aW9ucy5vblNvcnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGF0dGFjaERyYWdEcm9wKCkge1xuICAgICAgICB0aGlzLmNvbnRhaW5lci5kZWxlZ2F0ZSgnW2RhdGEtZHotaW5zZXJ0XScsICdjbGljaycsIChlKSA9PiB7XG4gICAgICAgICAgICBsZXQgdGFyZ2V0ID0gJChlLmN1cnJlbnRUYXJnZXQpLnBhcmVudCgnLmR6LXByZXZpZXcnKS5maW5kKCcuZHotZmlsZW5hbWUnKTtcbiAgICAgICAgICAgIGxldCBlZGl0b3IgPSBFZGl0b3IuZWRpdG9ycy5maWx0ZXIoKGluZGV4LCBlZGl0b3IpID0+ICQoZWRpdG9yKS5hdHRyKCduYW1lJykgPT09ICdkYXRhW2NvbnRlbnRdJyk7XG5cbiAgICAgICAgICAgIGlmIChlZGl0b3IubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgZWRpdG9yID0gZWRpdG9yLmRhdGEoJ2NvZGVtaXJyb3InKTtcbiAgICAgICAgICAgICAgICBlZGl0b3IuZm9jdXMoKTtcblxuICAgICAgICAgICAgICAgIGxldCBmaWxlbmFtZSA9IGVuY29kZVVSSSh0YXJnZXQudGV4dCgpKTtcbiAgICAgICAgICAgICAgICBsZXQgc2hvcnRjb2RlID0gVXJpVG9NYXJrZG93bihmaWxlbmFtZSk7XG4gICAgICAgICAgICAgICAgZWRpdG9yLmRvYy5yZXBsYWNlU2VsZWN0aW9uKHNob3J0Y29kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY29udGFpbmVyLmRlbGVnYXRlKCdbZGF0YS1kei12aWV3XScsICdtb3VzZWVudGVyJywgKGUpID0+IHtcbiAgICAgICAgICAgIGxldCB0YXJnZXQgPSAkKGUuY3VycmVudFRhcmdldCk7XG4gICAgICAgICAgICBsZXQgZmlsZSA9IHRhcmdldC5wYXJlbnQoJy5kei1wcmV2aWV3JykuZmluZCgnLmR6LWZpbGVuYW1lJyk7XG4gICAgICAgICAgICBsZXQgZmlsZW5hbWUgPSBlbmNvZGVVUkkoZmlsZS50ZXh0KCkpO1xuICAgICAgICAgICAgbGV0IFVSTCA9IHRhcmdldC5jbG9zZXN0KCdbZGF0YS1tZWRpYS1wYXRoXScpLmRhdGEoJ21lZGlhLXBhdGgnKTtcbiAgICAgICAgICAgIGxldCBvcmlnaW5hbCA9IHRoaXMuZHJvcHpvbmUuZmlsZXMuZmlsdGVyKChmaWxlKSA9PiBlbmNvZGVVUkkoZmlsZS5uYW1lKSA9PT0gZmlsZW5hbWUpLnNoaWZ0KCk7XG5cbiAgICAgICAgICAgIG9yaWdpbmFsID0gb3JpZ2luYWwgJiYgKChvcmlnaW5hbC5leHRyYXMgJiYgb3JpZ2luYWwuZXh0cmFzLm9yaWdpbmFsKSB8fCBlbmNvZGVVUkkob3JpZ2luYWwubmFtZSkpO1xuXG4gICAgICAgICAgICB0YXJnZXQuYXR0cignaHJlZicsIGAke1VSTH0vJHtvcmlnaW5hbH1gKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5jb250YWluZXIuZGVsZWdhdGUoJ1tkYXRhLWR6LW1ldGFkYXRhXScsICdjbGljaycsIChlKSA9PiB7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSAkKGUuY3VycmVudFRhcmdldCk7XG4gICAgICAgICAgICBjb25zdCBmaWxlID0gdGFyZ2V0LnBhcmVudCgnLmR6LXByZXZpZXcnKS5maW5kKCcuZHotZmlsZW5hbWUnKTtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVuYW1lID0gZW5jb2RlVVJJKGZpbGUudGV4dCgpKTtcblxuICAgICAgICAgICAgbGV0IGZpbGVPYmogPSB0aGlzLmRyb3B6b25lLmZpbGVzLmZpbHRlcigoZmlsZSkgPT4gZmlsZS5uYW1lID09PSBnbG9iYWwuZGVjb2RlVVJJKGZpbGVuYW1lKSkuc2hpZnQoKSB8fCB7fTtcblxuICAgICAgICAgICAgaWYgKCFmaWxlT2JqLmV4dHJhcykge1xuICAgICAgICAgICAgICAgIGZpbGVPYmouZXh0cmFzID0geyBtZXRhZGF0YTogW10gfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmlsZU9iai5leHRyYXMubWV0YWRhdGEpICYmICFmaWxlT2JqLmV4dHJhcy5tZXRhZGF0YS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBmaWxlT2JqLmV4dHJhcy5tZXRhZGF0YSA9IHsgJyc6IGAke2dsb2JhbC5kZWNvZGVVUkkoZmlsZW5hbWUpfS5tZXRhLnlhbWwgZG9lc24ndCBleGlzdGAgfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZmlsZU9iaiA9IGZpbGVPYmouZXh0cmFzO1xuXG4gICAgICAgICAgICBjb25zdCBtb2RhbF9lbGVtZW50ID0gJCgnYm9keScpLmZpbmQoJ1tkYXRhLXJlbW9kYWwtaWQ9XCJtZXRhZGF0YVwiXScpO1xuICAgICAgICAgICAgY29uc3QgbW9kYWwgPSAkLnJlbW9kYWwubG9va3VwW21vZGFsX2VsZW1lbnQuZGF0YSgncmVtb2RhbCcpXTtcblxuICAgICAgICAgICAgbW9kYWxfZWxlbWVudC5maW5kKCdoMSBzdHJvbmcnKS5odG1sKGZpbGVuYW1lKTtcbiAgICAgICAgICAgIGlmIChmaWxlT2JqLnVybCkge1xuICAgICAgICAgICAgICAgIG1vZGFsX2VsZW1lbnQuZmluZCgnLm1ldGEtcHJldmlldycpLmh0bWwoYDxpbWcgc3JjPVwiJHtmaWxlT2JqLnVybH1cIiAvPmApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSBtb2RhbF9lbGVtZW50LmZpbmQoJy5tZXRhLWNvbnRlbnQnKS5odG1sKCc8dWwgLz4nKS5maW5kKCd1bCcpO1xuICAgICAgICAgICAgT2JqZWN0LmtleXMoZmlsZU9iai5tZXRhZGF0YSkuZm9yRWFjaCgobWV0YSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmQoYDxsaT48c3Ryb25nPiR7bWV0YSA/IG1ldGEgKyAnOicgOiAnJ308L3N0cm9uZz4gJHtmaWxlT2JqLm1ldGFkYXRhW21ldGFdfTwvbGk+YCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgbW9kYWwub3BlbigpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmNvbnRhaW5lci5kZWxlZ2F0ZSgnLmR6LXByZXZpZXcnLCAnZHJhZ3N0YXJ0JywgKGUpID0+IHtcbiAgICAgICAgICAgIGxldCB0YXJnZXQgPSAkKGUuY3VycmVudFRhcmdldCk7XG4gICAgICAgICAgICBsZXQgdXJpID0gZW5jb2RlVVJJKHRhcmdldC5maW5kKCcuZHotZmlsZW5hbWUnKS50ZXh0KCkpO1xuICAgICAgICAgICAgbGV0IHNob3J0Y29kZSA9IFVyaVRvTWFya2Rvd24odXJpKTtcbiAgICAgICAgICAgIHRoaXMuZHJvcHpvbmUuZGlzYWJsZSgpO1xuICAgICAgICAgICAgdGFyZ2V0LmFkZENsYXNzKCdoaWRlLWJhY2tmYWNlJyk7XG4gICAgICAgICAgICBlLm9yaWdpbmFsRXZlbnQuZGF0YVRyYW5zZmVyLmVmZmVjdEFsbG93ZWQgPSAnY29weSc7XG4gICAgICAgICAgICBlLm9yaWdpbmFsRXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQnLCBzaG9ydGNvZGUpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmNvbnRhaW5lci5kZWxlZ2F0ZSgnLmR6LXByZXZpZXcnLCAnZHJhZ2VuZCcsIChlKSA9PiB7XG4gICAgICAgICAgICBsZXQgdGFyZ2V0ID0gJChlLmN1cnJlbnRUYXJnZXQpO1xuICAgICAgICAgICAgdGhpcy5kcm9wem9uZS5lbmFibGUoKTtcbiAgICAgICAgICAgIHRhcmdldC5yZW1vdmVDbGFzcygnaGlkZS1iYWNrZmFjZScpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmV4cG9ydCBsZXQgSW5zdGFuY2UgPSBuZXcgUGFnZU1lZGlhKCk7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/pages/page/media.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/pages/page/move.js":
|
|
/*!********************************!*\
|
|
!*** ./app/pages/page/move.js ***!
|
|
\********************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-page-move] button[name=\"task\"][value=\"save\"]', function (event) {\n /* let route = $('form#blueprints:first select[name=\"data[route]\"]');\n let moveTo = $('[data-page-move] select').val();\n if (route.length && route.val() !== moveTo) {\n let selectize = route.data('selectize');\n route.val(moveTo);\n if (selectize) selectize.setValue(moveTo);\n }*/\n var modal = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget).closest('[data-remodal-id]');\n var parents = modal.data('parents') || {};\n var finder = parents.finder;\n\n if (!parents || !finder) {\n return true;\n }\n\n var field = parents.field;\n var parentLabel = parents.parentLabel;\n var parentName = parents.parentName;\n var selection = finder.findLastActive().item[0];\n var value = selection._item[finder.config.valueKey];\n var name = selection._item[finder.config.labelKey];\n field.val(value);\n parentLabel.text(value);\n parentName.text(name);\n finder.config.defaultPath = value;\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div />').css({\n backgroundColor: 'rgba(255, 255, 255, 0.1)',\n position: 'fixed',\n top: 0,\n left: 0,\n width: '100vw',\n height: '100vh',\n zIndex: 15000\n }).appendTo(jquery__WEBPACK_IMPORTED_MODULE_0___default()('body'));\n});\n/*\n$(document).on('click', '[data-remodal-id=\"parents\"] [data-parents-select]', (event) => {\n const modal = $(event.currentTarget).closest('[data-remodal-id]');\n const parents = modal.data('parents');\n const finder = parents.finder;\n const field = parents.field;\n const parentLabel = parents.parentLabel;\n const parentName = parents.parentName;\n const selection = finder.findLastActive().item[0];\n const value = selection._item[finder.config.valueKey];\n const name = selection._item[finder.config.labelKey];\n\n field.val(value);\n parentLabel.text(value);\n parentName.text(name);\n finder.config.defaultPath = value;\n\n const remodal = $.remodal.lookup[$(`[data-remodal-id=\"${modal.data('remodalId')}\"]`).data('remodal')];\n remodal.close();\n});\n*///# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3BhZ2VzL3BhZ2UvbW92ZS5qcz8yMDVmIl0sIm5hbWVzIjpbIiQiLCJkb2N1bWVudCIsIm9uIiwiZXZlbnQiLCJtb2RhbCIsImN1cnJlbnRUYXJnZXQiLCJjbG9zZXN0IiwicGFyZW50cyIsImRhdGEiLCJmaW5kZXIiLCJmaWVsZCIsInBhcmVudExhYmVsIiwicGFyZW50TmFtZSIsInNlbGVjdGlvbiIsImZpbmRMYXN0QWN0aXZlIiwiaXRlbSIsInZhbHVlIiwiX2l0ZW0iLCJjb25maWciLCJ2YWx1ZUtleSIsIm5hbWUiLCJsYWJlbEtleSIsInZhbCIsInRleHQiLCJkZWZhdWx0UGF0aCIsImNzcyIsImJhY2tncm91bmRDb2xvciIsInBvc2l0aW9uIiwidG9wIiwibGVmdCIsIndpZHRoIiwiaGVpZ2h0IiwiekluZGV4IiwiYXBwZW5kVG8iXSwibWFwcGluZ3MiOiI7OztBQUFBO0FBRUFBLDZDQUFDLENBQUNDLFFBQUQsQ0FBRCxDQUFZQyxFQUFaLENBQWUsT0FBZixFQUF3QixvREFBeEIsRUFBOEUsVUFBQ0MsS0FBRCxFQUFXO0FBQ3JGO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUksTUFBTUMsS0FBSyxHQUFHSiw2Q0FBQyxDQUFDRyxLQUFLLENBQUNFLGFBQVAsQ0FBRCxDQUF1QkMsT0FBdkIsQ0FBK0IsbUJBQS9CLENBQWQ7QUFDQSxNQUFNQyxPQUFPLEdBQUdILEtBQUssQ0FBQ0ksSUFBTixDQUFXLFNBQVgsS0FBeUIsRUFBekM7QUFDQSxNQUFNQyxNQUFNLEdBQUdGLE9BQU8sQ0FBQ0UsTUFBdkI7O0FBRUEsTUFBSSxDQUFDRixPQUFELElBQVksQ0FBQ0UsTUFBakIsRUFBeUI7QUFBRSxXQUFPLElBQVA7QUFBYzs7QUFFekMsTUFBTUMsS0FBSyxHQUFHSCxPQUFPLENBQUNHLEtBQXRCO0FBQ0EsTUFBTUMsV0FBVyxHQUFHSixPQUFPLENBQUNJLFdBQTVCO0FBQ0EsTUFBTUMsVUFBVSxHQUFHTCxPQUFPLENBQUNLLFVBQTNCO0FBQ0EsTUFBTUMsU0FBUyxHQUFHSixNQUFNLENBQUNLLGNBQVAsR0FBd0JDLElBQXhCLENBQTZCLENBQTdCLENBQWxCO0FBQ0EsTUFBTUMsS0FBSyxHQUFHSCxTQUFTLENBQUNJLEtBQVYsQ0FBZ0JSLE1BQU0sQ0FBQ1MsTUFBUCxDQUFjQyxRQUE5QixDQUFkO0FBQ0EsTUFBTUMsSUFBSSxHQUFHUCxTQUFTLENBQUNJLEtBQVYsQ0FBZ0JSLE1BQU0sQ0FBQ1MsTUFBUCxDQUFjRyxRQUE5QixDQUFiO0FBRUFYLE9BQUssQ0FBQ1ksR0FBTixDQUFVTixLQUFWO0FBQ0FMLGFBQVcsQ0FBQ1ksSUFBWixDQUFpQlAsS0FBakI7QUFDQUosWUFBVSxDQUFDVyxJQUFYLENBQWdCSCxJQUFoQjtBQUNBWCxRQUFNLENBQUNTLE1BQVAsQ0FBY00sV0FBZCxHQUE0QlIsS0FBNUI7QUFFQWhCLCtDQUFDLENBQUMsU0FBRCxDQUFELENBQWF5QixHQUFiLENBQWlCO0FBQ2JDLG1CQUFlLEVBQUUsMEJBREo7QUFFYkMsWUFBUSxFQUFFLE9BRkc7QUFHYkMsT0FBRyxFQUFFLENBSFE7QUFJYkMsUUFBSSxFQUFFLENBSk87QUFLYkMsU0FBSyxFQUFFLE9BTE07QUFNYkMsVUFBTSxFQUFFLE9BTks7QUFPYkMsVUFBTSxFQUFFO0FBUEssR0FBakIsRUFRR0MsUUFSSCxDQVFZakMsNkNBQUMsQ0FBQyxNQUFELENBUmI7QUFTSCxDQXRDRDtBQXdDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiLi9hcHAvcGFnZXMvcGFnZS9tb3ZlLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcblxuJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ1tkYXRhLXBhZ2UtbW92ZV0gYnV0dG9uW25hbWU9XCJ0YXNrXCJdW3ZhbHVlPVwic2F2ZVwiXScsIChldmVudCkgPT4ge1xuICAgIC8qIGxldCByb3V0ZSA9ICQoJ2Zvcm0jYmx1ZXByaW50czpmaXJzdCBzZWxlY3RbbmFtZT1cImRhdGFbcm91dGVdXCJdJyk7XG4gICAgbGV0IG1vdmVUbyA9ICQoJ1tkYXRhLXBhZ2UtbW92ZV0gc2VsZWN0JykudmFsKCk7XG5cbiAgICBpZiAocm91dGUubGVuZ3RoICYmIHJvdXRlLnZhbCgpICE9PSBtb3ZlVG8pIHtcbiAgICAgICAgbGV0IHNlbGVjdGl6ZSA9IHJvdXRlLmRhdGEoJ3NlbGVjdGl6ZScpO1xuICAgICAgICByb3V0ZS52YWwobW92ZVRvKTtcblxuICAgICAgICBpZiAoc2VsZWN0aXplKSBzZWxlY3RpemUuc2V0VmFsdWUobW92ZVRvKTtcbiAgICB9Ki9cblxuICAgIGNvbnN0IG1vZGFsID0gJChldmVudC5jdXJyZW50VGFyZ2V0KS5jbG9zZXN0KCdbZGF0YS1yZW1vZGFsLWlkXScpO1xuICAgIGNvbnN0IHBhcmVudHMgPSBtb2RhbC5kYXRhKCdwYXJlbnRzJykgfHwge307XG4gICAgY29uc3QgZmluZGVyID0gcGFyZW50cy5maW5kZXI7XG5cbiAgICBpZiAoIXBhcmVudHMgfHwgIWZpbmRlcikgeyByZXR1cm4gdHJ1ZTsgfVxuXG4gICAgY29uc3QgZmllbGQgPSBwYXJlbnRzLmZpZWxkO1xuICAgIGNvbnN0IHBhcmVudExhYmVsID0gcGFyZW50cy5wYXJlbnRMYWJlbDtcbiAgICBjb25zdCBwYXJlbnROYW1lID0gcGFyZW50cy5wYXJlbnROYW1lO1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9IGZpbmRlci5maW5kTGFzdEFjdGl2ZSgpLml0ZW1bMF07XG4gICAgY29uc3QgdmFsdWUgPSBzZWxlY3Rpb24uX2l0ZW1bZmluZGVyLmNvbmZpZy52YWx1ZUtleV07XG4gICAgY29uc3QgbmFtZSA9IHNlbGVjdGlvbi5faXRlbVtmaW5kZXIuY29uZmlnLmxhYmVsS2V5XTtcblxuICAgIGZpZWxkLnZhbCh2YWx1ZSk7XG4gICAgcGFyZW50TGFiZWwudGV4dCh2YWx1ZSk7XG4gICAgcGFyZW50TmFtZS50ZXh0KG5hbWUpO1xuICAgIGZpbmRlci5jb25maWcuZGVmYXVsdFBhdGggPSB2YWx1ZTtcblxuICAgICQoJzxkaXYgLz4nKS5jc3Moe1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSknLFxuICAgICAgICBwb3NpdGlvbjogJ2ZpeGVkJyxcbiAgICAgICAgdG9wOiAwLFxuICAgICAgICBsZWZ0OiAwLFxuICAgICAgICB3aWR0aDogJzEwMHZ3JyxcbiAgICAgICAgaGVpZ2h0OiAnMTAwdmgnLFxuICAgICAgICB6SW5kZXg6IDE1MDAwXG4gICAgfSkuYXBwZW5kVG8oJCgnYm9keScpKTtcbn0pO1xuXG4vKlxuJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ1tkYXRhLXJlbW9kYWwtaWQ9XCJwYXJlbnRzXCJdIFtkYXRhLXBhcmVudHMtc2VsZWN0XScsIChldmVudCkgPT4ge1xuICAgIGNvbnN0IG1vZGFsID0gJChldmVudC5jdXJyZW50VGFyZ2V0KS5jbG9zZXN0KCdbZGF0YS1yZW1vZGFsLWlkXScpO1xuICAgIGNvbnN0IHBhcmVudHMgPSBtb2RhbC5kYXRhKCdwYXJlbnRzJyk7XG4gICAgY29uc3QgZmluZGVyID0gcGFyZW50cy5maW5kZXI7XG4gICAgY29uc3QgZmllbGQgPSBwYXJlbnRzLmZpZWxkO1xuICAgIGNvbnN0IHBhcmVudExhYmVsID0gcGFyZW50cy5wYXJlbnRMYWJlbDtcbiAgICBjb25zdCBwYXJlbnROYW1lID0gcGFyZW50cy5wYXJlbnROYW1lO1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9IGZpbmRlci5maW5kTGFzdEFjdGl2ZSgpLml0ZW1bMF07XG4gICAgY29uc3QgdmFsdWUgPSBzZWxlY3Rpb24uX2l0ZW1bZmluZGVyLmNvbmZpZy52YWx1ZUtleV07XG4gICAgY29uc3QgbmFtZSA9IHNlbGVjdGlvbi5faXRlbVtmaW5kZXIuY29uZmlnLmxhYmVsS2V5XTtcblxuICAgIGZpZWxkLnZhbCh2YWx1ZSk7XG4gICAgcGFyZW50TGFiZWwudGV4dCh2YWx1ZSk7XG4gICAgcGFyZW50TmFtZS50ZXh0KG5hbWUpO1xuICAgIGZpbmRlci5jb25maWcuZGVmYXVsdFBhdGggPSB2YWx1ZTtcblxuICAgIGNvbnN0IHJlbW9kYWwgPSAkLnJlbW9kYWwubG9va3VwWyQoYFtkYXRhLXJlbW9kYWwtaWQ9XCIke21vZGFsLmRhdGEoJ3JlbW9kYWxJZCcpfVwiXWApLmRhdGEoJ3JlbW9kYWwnKV07XG4gICAgcmVtb2RhbC5jbG9zZSgpO1xufSk7XG4qL1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/pages/page/move.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/pages/page/multilang.js":
|
|
/*!*************************************!*\
|
|
!*** ./app/pages/page/multilang.js ***!
|
|
\*************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()('[name=\"task\"][value=\"saveas\"], [name=\"task\"][value=\"switchlanguage\"]').on('mousedown touchstart', function (event) {\n var fields = ['lang', 'redirect'];\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var form = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(element.attr('form')));\n\n if (!form.length) {\n return;\n }\n\n fields.forEach(function (field) {\n var value = element.attr(field);\n\n if (!value) {\n return;\n }\n\n var input = form.find(\"[name=\\\"data[\".concat(field, \"]\\\"]\"));\n\n if (!input.length) {\n input = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"<input type=\\\"hidden\\\" name=\\\"data[\".concat(field, \"]\\\" value=\\\"\\\" />\"));\n form.append(input);\n }\n\n input.val(value);\n });\n return true;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3BhZ2VzL3BhZ2UvbXVsdGlsYW5nLmpzPzBjMDEiXSwibmFtZXMiOlsiJCIsIm9uIiwiZXZlbnQiLCJmaWVsZHMiLCJlbGVtZW50IiwiY3VycmVudFRhcmdldCIsImZvcm0iLCJhdHRyIiwibGVuZ3RoIiwiZm9yRWFjaCIsImZpZWxkIiwidmFsdWUiLCJpbnB1dCIsImZpbmQiLCJhcHBlbmQiLCJ2YWwiXSwibWFwcGluZ3MiOiI7OztBQUFBO0FBRUFBLDZDQUFDLENBQUMsc0VBQUQsQ0FBRCxDQUEwRUMsRUFBMUUsQ0FBNkUsc0JBQTdFLEVBQXFHLFVBQUNDLEtBQUQsRUFBVztBQUM1RyxNQUFJQyxNQUFNLEdBQUcsQ0FBQyxNQUFELEVBQVMsVUFBVCxDQUFiO0FBQ0EsTUFBSUMsT0FBTyxHQUFHSiw2Q0FBQyxDQUFDRSxLQUFLLENBQUNHLGFBQVAsQ0FBZjtBQUNBLE1BQUlDLElBQUksR0FBR04sNkNBQUMsWUFBS0ksT0FBTyxDQUFDRyxJQUFSLENBQWEsTUFBYixDQUFMLEVBQVo7O0FBRUEsTUFBSSxDQUFDRCxJQUFJLENBQUNFLE1BQVYsRUFBa0I7QUFBRTtBQUFTOztBQUM3QkwsUUFBTSxDQUFDTSxPQUFQLENBQWUsVUFBQ0MsS0FBRCxFQUFXO0FBQ3RCLFFBQUlDLEtBQUssR0FBR1AsT0FBTyxDQUFDRyxJQUFSLENBQWFHLEtBQWIsQ0FBWjs7QUFDQSxRQUFJLENBQUNDLEtBQUwsRUFBWTtBQUFFO0FBQVM7O0FBQ3ZCLFFBQUlDLEtBQUssR0FBR04sSUFBSSxDQUFDTyxJQUFMLHdCQUF5QkgsS0FBekIsVUFBWjs7QUFDQSxRQUFJLENBQUNFLEtBQUssQ0FBQ0osTUFBWCxFQUFtQjtBQUNmSSxXQUFLLEdBQUdaLDZDQUFDLDhDQUFvQ1UsS0FBcEMsdUJBQVQ7QUFDQUosVUFBSSxDQUFDUSxNQUFMLENBQVlGLEtBQVo7QUFDSDs7QUFFREEsU0FBSyxDQUFDRyxHQUFOLENBQVVKLEtBQVY7QUFDSCxHQVZEO0FBWUEsU0FBTyxJQUFQO0FBQ0gsQ0FuQkQiLCJmaWxlIjoiLi9hcHAvcGFnZXMvcGFnZS9tdWx0aWxhbmcuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuXG4kKCdbbmFtZT1cInRhc2tcIl1bdmFsdWU9XCJzYXZlYXNcIl0sIFtuYW1lPVwidGFza1wiXVt2YWx1ZT1cInN3aXRjaGxhbmd1YWdlXCJdJykub24oJ21vdXNlZG93biB0b3VjaHN0YXJ0JywgKGV2ZW50KSA9PiB7XG4gICAgbGV0IGZpZWxkcyA9IFsnbGFuZycsICdyZWRpcmVjdCddO1xuICAgIGxldCBlbGVtZW50ID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgICBsZXQgZm9ybSA9ICQoYCMke2VsZW1lbnQuYXR0cignZm9ybScpfWApO1xuXG4gICAgaWYgKCFmb3JtLmxlbmd0aCkgeyByZXR1cm47IH1cbiAgICBmaWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgICAgbGV0IHZhbHVlID0gZWxlbWVudC5hdHRyKGZpZWxkKTtcbiAgICAgICAgaWYgKCF2YWx1ZSkgeyByZXR1cm47IH1cbiAgICAgICAgbGV0IGlucHV0ID0gZm9ybS5maW5kKGBbbmFtZT1cImRhdGFbJHtmaWVsZH1dXCJdYCk7XG4gICAgICAgIGlmICghaW5wdXQubGVuZ3RoKSB7XG4gICAgICAgICAgICBpbnB1dCA9ICQoYDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cImRhdGFbJHtmaWVsZH1dXCIgdmFsdWU9XCJcIiAvPmApO1xuICAgICAgICAgICAgZm9ybS5hcHBlbmQoaW5wdXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaW5wdXQudmFsKHZhbHVlKTtcbiAgICB9KTtcblxuICAgIHJldHVybiB0cnVlO1xufSk7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/pages/page/multilang.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/pages/page/unset.js":
|
|
/*!*********************************!*\
|
|
!*** ./app/pages/page/unset.js ***!
|
|
\*********************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '.dz-unset', function () {\n var file_upload = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).closest('.files-upload');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).closest('.dz-image-preview').remove();\n var unset_image = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).closest('.dz-image-preview').find('[data-dz-name]').text().trim();\n var images = JSON.parse(file_upload.find('input[data-grav-field=\"hidden\"]').val()) || {};\n var image_array = {};\n jquery__WEBPACK_IMPORTED_MODULE_0___default().each(images, function (ind, obj) {\n if (!ind.endsWith(unset_image)) {\n image_array[ind] = obj;\n }\n });\n file_upload.find('input[data-grav-field=\"hidden\"]').val(JSON.stringify(image_array));\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3BhZ2VzL3BhZ2UvdW5zZXQuanM/OWZiYyJdLCJuYW1lcyI6WyIkIiwiZG9jdW1lbnQiLCJvbiIsImZpbGVfdXBsb2FkIiwiY2xvc2VzdCIsInJlbW92ZSIsInVuc2V0X2ltYWdlIiwiZmluZCIsInRleHQiLCJ0cmltIiwiaW1hZ2VzIiwiSlNPTiIsInBhcnNlIiwidmFsIiwiaW1hZ2VfYXJyYXkiLCJpbmQiLCJvYmoiLCJlbmRzV2l0aCIsInN0cmluZ2lmeSJdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7QUFFQUEsNkNBQUMsQ0FBQ0MsUUFBRCxDQUFELENBQVlDLEVBQVosQ0FBZSxPQUFmLEVBQXdCLFdBQXhCLEVBQXFDLFlBQVc7QUFFNUMsTUFBTUMsV0FBVyxHQUFHSCw2Q0FBQyxDQUFDLElBQUQsQ0FBRCxDQUFRSSxPQUFSLENBQWdCLGVBQWhCLENBQXBCO0FBQ0FKLCtDQUFDLENBQUMsSUFBRCxDQUFELENBQVFJLE9BQVIsQ0FBZ0IsbUJBQWhCLEVBQXFDQyxNQUFyQztBQUNBLE1BQU1DLFdBQVcsR0FBR04sNkNBQUMsQ0FBQyxJQUFELENBQUQsQ0FBUUksT0FBUixDQUFnQixtQkFBaEIsRUFBcUNHLElBQXJDLENBQTBDLGdCQUExQyxFQUE0REMsSUFBNUQsR0FBbUVDLElBQW5FLEVBQXBCO0FBQ0EsTUFBTUMsTUFBTSxHQUFHQyxJQUFJLENBQUNDLEtBQUwsQ0FBV1QsV0FBVyxDQUFDSSxJQUFaLENBQWlCLGlDQUFqQixFQUFvRE0sR0FBcEQsRUFBWCxLQUF5RSxFQUF4RjtBQUNBLE1BQUlDLFdBQVcsR0FBRyxFQUFsQjtBQUVBZCxvREFBQSxDQUFPVSxNQUFQLEVBQWUsVUFBU0ssR0FBVCxFQUFjQyxHQUFkLEVBQW1CO0FBQzlCLFFBQUksQ0FBQ0QsR0FBRyxDQUFDRSxRQUFKLENBQWFYLFdBQWIsQ0FBTCxFQUFnQztBQUM1QlEsaUJBQVcsQ0FBQ0MsR0FBRCxDQUFYLEdBQW1CQyxHQUFuQjtBQUNIO0FBQ0osR0FKRDtBQU1BYixhQUFXLENBQUNJLElBQVosQ0FBaUIsaUNBQWpCLEVBQW9ETSxHQUFwRCxDQUF3REYsSUFBSSxDQUFDTyxTQUFMLENBQWVKLFdBQWYsQ0FBeEQ7QUFDSCxDQWZEIiwiZmlsZSI6Ii4vYXBwL3BhZ2VzL3BhZ2UvdW5zZXQuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuXG4kKGRvY3VtZW50KS5vbignY2xpY2snLCAnLmR6LXVuc2V0JywgZnVuY3Rpb24oKSB7XG5cbiAgICBjb25zdCBmaWxlX3VwbG9hZCA9ICQodGhpcykuY2xvc2VzdCgnLmZpbGVzLXVwbG9hZCcpO1xuICAgICQodGhpcykuY2xvc2VzdCgnLmR6LWltYWdlLXByZXZpZXcnKS5yZW1vdmUoKTtcbiAgICBjb25zdCB1bnNldF9pbWFnZSA9ICQodGhpcykuY2xvc2VzdCgnLmR6LWltYWdlLXByZXZpZXcnKS5maW5kKCdbZGF0YS1kei1uYW1lXScpLnRleHQoKS50cmltKCk7XG4gICAgY29uc3QgaW1hZ2VzID0gSlNPTi5wYXJzZShmaWxlX3VwbG9hZC5maW5kKCdpbnB1dFtkYXRhLWdyYXYtZmllbGQ9XCJoaWRkZW5cIl0nKS52YWwoKSkgfHwge307XG4gICAgbGV0IGltYWdlX2FycmF5ID0ge307XG5cbiAgICAkLmVhY2goaW1hZ2VzLCBmdW5jdGlvbihpbmQsIG9iaikge1xuICAgICAgICBpZiAoIWluZC5lbmRzV2l0aCh1bnNldF9pbWFnZSkpIHtcbiAgICAgICAgICAgIGltYWdlX2FycmF5W2luZF0gPSBvYmo7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIGZpbGVfdXBsb2FkLmZpbmQoJ2lucHV0W2RhdGEtZ3Jhdi1maWVsZD1cImhpZGRlblwiXScpLnZhbChKU09OLnN0cmluZ2lmeShpbWFnZV9hcnJheSkpO1xufSk7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/pages/page/unset.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/pages/tree.js":
|
|
/*!***************************!*\
|
|
!*** ./app/pages/tree.js ***!
|
|
\***************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ PagesTree),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_storage__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/storage */ \"./app/utils/storage.js\");\n/* harmony import */ var _utils_storage__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_utils_storage__WEBPACK_IMPORTED_MODULE_1__);\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); return Constructor; }\n\n\n\nvar sessionKey = 'grav:admin:pages';\n\nif (!sessionStorage.getItem(sessionKey)) {\n sessionStorage.setItem(sessionKey, '{}');\n}\n\nvar PagesTree = /*#__PURE__*/function () {\n function PagesTree(query) {\n var _this = this;\n\n var elements = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n\n _classCallCheck(this, PagesTree);\n\n this.query = query;\n this.elements = jquery__WEBPACK_IMPORTED_MODULE_0___default()(elements !== undefined ? elements : this.query);\n this.session = JSON.parse(sessionStorage.getItem(sessionKey) || '{}');\n\n if (!this.elements.length) {\n return;\n }\n\n this.restore();\n this.elements.find('.page-icon').on('click', function (event) {\n return _this.toggle(event.target);\n });\n this.elements.data('tree_init', 1);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-page-toggleall]').on('click', function (event) {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).closest('[data-page-toggleall]');\n var action = element.data('page-toggleall');\n\n _this[action]();\n });\n }\n\n _createClass(PagesTree, [{\n key: \"reload\",\n value: function reload() {\n var elements = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.query).filter(function (index, element) {\n return !jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).data('tree_init');\n });\n\n if (!elements.length) {\n return;\n }\n\n this.constructor(this.query, elements);\n }\n }, {\n key: \"toggle\",\n value: function toggle(elements) {\n var _this2 = this;\n\n var dontStore = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (typeof elements === 'string') {\n elements = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-nav-id=\\\"\".concat(elements, \"\\\"]\")).find('[data-toggle=\"children\"]');\n }\n\n elements = jquery__WEBPACK_IMPORTED_MODULE_0___default()(elements || this.elements);\n elements.each(function (index, element) {\n element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n\n var state = _this2.getState(element.closest('[data-toggle=\"children\"]'));\n\n _this2[state.isOpen ? 'collapse' : 'expand'](state.id, dontStore);\n });\n }\n }, {\n key: \"collapse\",\n value: function collapse(elements) {\n var _this3 = this;\n\n var dontStore = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (typeof elements === 'string') {\n elements = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-nav-id=\\\"\".concat(elements, \"\\\"]\")).find('[data-toggle=\"children\"]');\n }\n\n elements = jquery__WEBPACK_IMPORTED_MODULE_0___default()(elements || this.elements);\n elements.each(function (index, element) {\n element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n\n var state = _this3.getState(element);\n\n if (state.isOpen) {\n state.children.hide();\n state.icon.removeClass('children-open').addClass('children-closed');\n\n if (!dontStore) {\n delete _this3.session[state.id];\n }\n }\n });\n\n if (!dontStore) {\n this.save();\n }\n }\n }, {\n key: \"expand\",\n value: function expand(elements) {\n var _this4 = this;\n\n var dontStore = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (typeof elements === 'string') {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-nav-id=\\\"\".concat(elements, \"\\\"]\"));\n var parents = element.parents('[data-nav-id]'); // loop back through parents, we don't want to expand an hidden child\n\n if (parents.length) {\n parents = parents.find('[data-toggle=\"children\"]:first');\n parents = parents.add(element.find('[data-toggle=\"children\"]:first'));\n return this.expand(parents, dontStore);\n }\n\n elements = element.find('[data-toggle=\"children\"]:first');\n }\n\n elements = jquery__WEBPACK_IMPORTED_MODULE_0___default()(elements || this.elements);\n elements.each(function (index, element) {\n element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n\n var state = _this4.getState(element);\n\n if (!state.isOpen) {\n state.children.show();\n state.icon.removeClass('children-closed').addClass('children-open');\n\n if (!dontStore) {\n _this4.session[state.id] = 1;\n }\n }\n });\n\n if (!dontStore) {\n this.save();\n }\n }\n }, {\n key: \"restore\",\n value: function restore() {\n var _this5 = this;\n\n this.collapse(null, true);\n Object.keys(this.session).forEach(function (key) {\n _this5.expand(key, 'no-store');\n });\n }\n }, {\n key: \"save\",\n value: function save() {\n return sessionStorage.setItem(sessionKey, JSON.stringify(this.session));\n }\n }, {\n key: \"getState\",\n value: function getState(element) {\n element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n return {\n id: element.closest('[data-nav-id]').data('nav-id'),\n children: element.closest('li.page-item').find('ul:first'),\n icon: element.find('.page-icon'),\n\n get isOpen() {\n return this.icon.hasClass('children-open');\n }\n\n };\n }\n }]);\n\n return PagesTree;\n}();\n\n\nvar Instance = new PagesTree('[data-toggle=\"children\"]');\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3BhZ2VzL3RyZWUuanM/MWEzNSJdLCJuYW1lcyI6WyJzZXNzaW9uS2V5Iiwic2Vzc2lvblN0b3JhZ2UiLCJnZXRJdGVtIiwic2V0SXRlbSIsIlBhZ2VzVHJlZSIsInF1ZXJ5IiwiZWxlbWVudHMiLCJ1bmRlZmluZWQiLCIkIiwic2Vzc2lvbiIsIkpTT04iLCJwYXJzZSIsImxlbmd0aCIsInJlc3RvcmUiLCJmaW5kIiwib24iLCJldmVudCIsInRvZ2dsZSIsInRhcmdldCIsImRhdGEiLCJlbGVtZW50IiwiY2xvc2VzdCIsImFjdGlvbiIsImZpbHRlciIsImluZGV4IiwiY29uc3RydWN0b3IiLCJkb250U3RvcmUiLCJlYWNoIiwic3RhdGUiLCJnZXRTdGF0ZSIsImlzT3BlbiIsImlkIiwiY2hpbGRyZW4iLCJoaWRlIiwiaWNvbiIsInJlbW92ZUNsYXNzIiwiYWRkQ2xhc3MiLCJzYXZlIiwicGFyZW50cyIsImFkZCIsImV4cGFuZCIsInNob3ciLCJjb2xsYXBzZSIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwia2V5Iiwic3RyaW5naWZ5IiwiaGFzQ2xhc3MiLCJJbnN0YW5jZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUVBLElBQU1BLFVBQVUsR0FBRyxrQkFBbkI7O0FBRUEsSUFBSSxDQUFDQyxjQUFjLENBQUNDLE9BQWYsQ0FBdUJGLFVBQXZCLENBQUwsRUFBeUM7QUFDckNDLGdCQUFjLENBQUNFLE9BQWYsQ0FBdUJILFVBQXZCLEVBQW1DLElBQW5DO0FBQ0g7O0lBRW9CSSxTO0FBQ2pCLHFCQUFZQyxLQUFaLEVBQXlDO0FBQUE7O0FBQUEsUUFBdEJDLFFBQXNCLHVFQUFYQyxTQUFXOztBQUFBOztBQUNyQyxTQUFLRixLQUFMLEdBQWFBLEtBQWI7QUFDQSxTQUFLQyxRQUFMLEdBQWdCRSw2Q0FBQyxDQUFDRixRQUFRLEtBQUtDLFNBQWIsR0FBeUJELFFBQXpCLEdBQW9DLEtBQUtELEtB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c0MsUUFBdEMsQ0FERDtBQUVIYSxnQkFBUSxFQUFFWixPQUFPLENBQUNDLE9BQVIsQ0FBZ0IsY0FBaEIsRUFBZ0NQLElBQWhDLENBQXFDLFVBQXJDLENBRlA7QUFHSG9CLFlBQUksRUFBRWQsT0FBTyxDQUFDTixJQUFSLENBQWEsWUFBYixDQUhIOztBQUlILFlBQUlnQixNQUFKLEdBQWE7QUFBRSxpQkFBTyxLQUFLSSxJQUFMLENBQVVjLFFBQVYsQ0FBbUIsZUFBbkIsQ0FBUDtBQUE2Qzs7QUFKekQsT0FBUDtBQU1IOzs7Ozs7O0FBR0wsSUFBSUMsUUFBUSxHQUFHLElBQUk3QyxTQUFKLENBQWMsMEJBQWQsQ0FBZiIsImZpbGUiOiIuL2FwcC9wYWdlcy90cmVlLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCAnLi4vdXRpbHMvc3RvcmFnZSc7XG5cbmNvbnN0IHNlc3Npb25LZXkgPSAnZ3JhdjphZG1pbjpwYWdlcyc7XG5cbmlmICghc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShzZXNzaW9uS2V5KSkge1xuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oc2Vzc2lvbktleSwgJ3t9Jyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBhZ2VzVHJlZSB7XG4gICAgY29uc3RydWN0b3IocXVlcnksIGVsZW1lbnRzID0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMucXVlcnkgPSBxdWVyeTtcbiAgICAgICAgdGhpcy5lbGVtZW50cyA9ICQoZWxlbWVudHMgIT09IHVuZGVmaW5lZCA/IGVsZW1lbnRzIDogdGhpcy5xdWVyeSk7XG4gICAgICAgIHRoaXMuc2Vzc2lvbiA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShzZXNzaW9uS2V5KSB8fCAne30nKTtcblxuICAgICAgICBpZiAoIXRoaXMuZWxlbWVudHMubGVuZ3RoKSB7IHJldHVybjsgfVxuXG4gICAgICAgIHRoaXMucmVzdG9yZSgpO1xuXG4gICAgICAgIHRoaXMuZWxlbWVudHMuZmluZCgnLnBhZ2UtaWNvbicpLm9uKCdjbGljaycsIChldmVudCkgPT4gdGhpcy50b2dnbGUoZXZlbnQudGFyZ2V0KSk7XG4gICAgICAgIHRoaXMuZWxlbWVudHMuZGF0YSgndHJlZV9pbml0JywgMSk7XG5cbiAgICAgICAgJCgnW2RhdGEtcGFnZS10b2dnbGVhbGxdJykub24oJ2NsaWNrJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBsZXQgZWxlbWVudCA9ICQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KCdbZGF0YS1wYWdlLXRvZ2dsZWFsbF0nKTtcbiAgICAgICAgICAgIGxldCBhY3Rpb24gPSBlbGVtZW50LmRhdGEoJ3BhZ2UtdG9nZ2xlYWxsJyk7XG5cbiAgICAgICAgICAgIHRoaXNbYWN0aW9uXSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZWxvYWQoKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRzID0gJCh0aGlzLnF1ZXJ5KS5maWx0ZXIoKGluZGV4LCBlbGVtZW50KSA9PiAhJChlbGVtZW50KS5kYXRhKCd0cmVlX2luaXQnKSk7XG4gICAgICAgIGlmICghZWxlbWVudHMubGVuZ3RoKSB7IHJldHVybjsgfVxuICAgICAgICB0aGlzLmNvbnN0cnVjdG9yKHRoaXMucXVlcnksIGVsZW1lbnRzKTtcbiAgICB9XG5cbiAgICB0b2dnbGUoZWxlbWVudHMsIGRvbnRTdG9yZSA9IGZhbHNlKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZWxlbWVudHMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBlbGVtZW50cyA9ICQoYFtkYXRhLW5hdi1pZD1cIiR7ZWxlbWVudHN9XCJdYCkuZmluZCgnW2RhdGEtdG9nZ2xlPVwiY2hpbGRyZW5cIl0nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGVsZW1lbnRzID0gJChlbGVtZW50cyB8fCB0aGlzLmVsZW1lbnRzKTtcbiAgICAgICAgZWxlbWVudHMuZWFjaCgoaW5kZXgsIGVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGVsZW1lbnQgPSAkKGVsZW1lbnQpO1xuICAgICAgICAgICAgbGV0IHN0YXRlID0gdGhpcy5nZXRTdGF0ZShlbGVtZW50LmNsb3Nlc3QoJ1tkYXRhLXRvZ2dsZT1cImNoaWxkcmVuXCJdJykpO1xuICAgICAgICAgICAgdGhpc1tzdGF0ZS5pc09wZW4gPyAnY29sbGFwc2UnIDogJ2V4cGFuZCddKHN0YXRlLmlkLCBkb250U3RvcmUpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb2xsYXBzZShlbGVtZW50cywgZG9udFN0b3JlID0gZmFsc2UpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBlbGVtZW50cyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGVsZW1lbnRzID0gJChgW2RhdGEtbmF2LWlkPVwiJHtlbGVtZW50c31cIl1gKS5maW5kKCdbZGF0YS10b2dnbGU9XCJjaGlsZHJlblwiXScpO1xuICAgICAgICB9XG5cbiAgICAgICAgZWxlbWVudHMgPSAkKGVsZW1lbnRzIHx8IHRoaXMuZWxlbWVudHMpO1xuICAgICAgICBlbGVtZW50cy5lYWNoKChpbmRleCwgZWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgZWxlbWVudCA9ICQoZWxlbWVudCk7XG4gICAgICAgICAgICBsZXQgc3RhdGUgPSB0aGlzLmdldFN0YXRlKGVsZW1lbnQpO1xuXG4gICAgICAgICAgICBpZiAoc3RhdGUuaXNPcGVuKSB7XG4gICAgICAgICAgICAgICAgc3RhdGUuY2hpbGRyZW4uaGlkZSgpO1xuICAgICAgICAgICAgICAgIHN0YXRlLmljb24ucmVtb3ZlQ2xhc3MoJ2NoaWxkcmVuLW9wZW4nKS5hZGRDbGFzcygnY2hpbGRyZW4tY2xvc2VkJyk7XG4gICAgICAgICAgICAgICAgaWYgKCFkb250U3RvcmUpIHsgZGVsZXRlIHRoaXMuc2Vzc2lvbltzdGF0ZS5pZF07IH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCFkb250U3RvcmUpIHsgdGhpcy5zYXZlKCk7IH1cbiAgICB9XG5cbiAgICBleHBhbmQoZWxlbWVudHMsIGRvbnRTdG9yZSA9IGZhbHNlKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZWxlbWVudHMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBsZXQgZWxlbWVudCA9ICQoYFtkYXRhLW5hdi1pZD1cIiR7ZWxlbWVudHN9XCJdYCk7XG4gICAgICAgICAgICBsZXQgcGFyZW50cyA9IGVsZW1lbnQucGFyZW50cygnW2RhdGEtbmF2LWlkXScpO1xuXG4gICAgICAgICAgICAvLyBsb29wIGJhY2sgdGhyb3VnaCBwYXJlbnRzLCB3ZSBkb24ndCB3YW50IHRvIGV4cGFuZCBhbiBoaWRkZW4gY2hpbGRcbiAgICAgICAgICAgIGlmIChwYXJlbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHBhcmVudHMgPSBwYXJlbnRzLmZpbmQoJ1tkYXRhLXRvZ2dsZT1cImNoaWxkcmVuXCJdOmZpcnN0Jyk7XG4gICAgICAgICAgICAgICAgcGFyZW50cyA9IHBhcmVudHMuYWRkKGVsZW1lbnQuZmluZCgnW2RhdGEtdG9nZ2xlPVwiY2hpbGRyZW5cIl06Zmlyc3QnKSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXhwYW5kKHBhcmVudHMsIGRvbnRTdG9yZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGVsZW1lbnRzID0gZWxlbWVudC5maW5kKCdbZGF0YS10b2dnbGU9XCJjaGlsZHJlblwiXTpmaXJzdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgZWxlbWVudHMgPSAkKGVsZW1lbnRzIHx8IHRoaXMuZWxlbWVudHMpO1xuICAgICAgICBlbGVtZW50cy5lYWNoKChpbmRleCwgZWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgZWxlbWVudCA9ICQoZWxlbWVudCk7XG4gICAgICAgICAgICBsZXQgc3RhdGUgPSB0aGlzLmdldFN0YXRlKGVsZW1lbnQpO1xuXG4gICAgICAgICAgICBpZiAoIXN0YXRlLmlzT3Blbikge1xuICAgICAgICAgICAgICAgIHN0YXRlLmNoaWxkcmVuLnNob3coKTtcbiAgICAgICAgICAgICAgICBzdGF0ZS5pY29uLnJlbW92ZUNsYXNzKCdjaGlsZHJlbi1jbG9zZWQnKS5hZGRDbGFzcygnY2hpbGRyZW4tb3BlbicpO1xuICAgICAgICAgICAgICAgIGlmICghZG9udFN0b3JlKSB7IHRoaXMuc2Vzc2lvbltzdGF0ZS5pZF0gPSAxOyB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICghZG9udFN0b3JlKSB7IHRoaXMuc2F2ZSgpOyB9XG4gICAgfVxuXG4gICAgcmVzdG9yZSgpIHtcbiAgICAgICAgdGhpcy5jb2xsYXBzZShudWxsLCB0cnVlKTtcblxuICAgICAgICBPYmplY3Qua2V5cyh0aGlzLnNlc3Npb24pLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5leHBhbmQoa2V5LCAnbm8tc3RvcmUnKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2F2ZSgpIHtcbiAgICAgICAgcmV0dXJuIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oc2Vzc2lvbktleSwgSlNPTi5zdHJpbmdpZnkodGhpcy5zZXNzaW9uKSk7XG4gICAgfVxuXG4gICAgZ2V0U3RhdGUoZWxlbWVudCkge1xuICAgICAgICBlbGVtZW50ID0gJChlbGVtZW50KTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IGVsZW1lbnQuY2xvc2VzdCgnW2RhdGEtbmF2LWlkXScpLmRhdGEoJ25hdi1pZCcpLFxuICAgICAgICAgICAgY2hpbGRyZW46IGVsZW1lbnQuY2xvc2VzdCgnbGkucGFnZS1pdGVtJykuZmluZCgndWw6Zmlyc3QnKSxcbiAgICAgICAgICAgIGljb246IGVsZW1lbnQuZmluZCgnLnBhZ2UtaWNvbicpLFxuICAgICAgICAgICAgZ2V0IGlzT3BlbigpIHsgcmV0dXJuIHRoaXMuaWNvbi5oYXNDbGFzcygnY2hpbGRyZW4tb3BlbicpOyB9XG4gICAgICAgIH07XG4gICAgfVxufVxuXG5sZXQgSW5zdGFuY2UgPSBuZXcgUGFnZXNUcmVlKCdbZGF0YS10b2dnbGU9XCJjaGlsZHJlblwiXScpO1xuZXhwb3J0IHsgSW5zdGFuY2UgfTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/pages/tree.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/plugins/index.js":
|
|
/*!******************************!*\
|
|
!*** ./app/plugins/index.js ***!
|
|
\******************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_packages__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/packages */ \"./app/utils/packages.js\");\n/* harmony import */ var mout_string_camelCase__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! mout/string/camelCase */ \"./node_modules/mout/string/camelCase.js\");\n/* harmony import */ var mout_string_camelCase__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(mout_string_camelCase__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var debounce__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! debounce */ \"./node_modules/debounce/index.js\");\n/* harmony import */ var debounce__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(debounce__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var mout_string_contains__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! mout/string/contains */ \"./node_modules/mout/string/contains.js\");\n/* harmony import */ var mout_string_contains__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(mout_string_contains__WEBPACK_IMPORTED_MODULE_4__);\n\n\n\n\n // Plugins sliders details\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()('.gpm-name, .gpm-actions').on('click', function (e) {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.target);\n var tag = target.prop('tagName').toLowerCase();\n\n if (tag === 'a' || element.parent('a').length || target.parent('a').length) {\n return true;\n }\n\n var wrapper = element.siblings('.gpm-details').find('.table-wrapper');\n wrapper.slideToggle({\n duration: 350,\n complete: function complete() {\n var visible = wrapper.is(':visible');\n wrapper.closest('tr').find('.gpm-details-expand i').removeClass('fa-chevron-' + (visible ? 'down' : 'up')).addClass('fa-chevron-' + (visible ? 'up' : 'down'));\n }\n });\n}); // Removing plugin\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-plugin-action=\"remove-package\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__.default.handleRemovingPackage('plugin', event);\n}); // Reinstall plugin\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-plugin-action=\"reinstall-package\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__.default.handleReinstallPackage('plugin', event);\n});\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-plugin-action=\"remove-dependency-package\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__.default.handleRemovingDependency('plugin', event);\n}); // Trigger the add new plugin / update plugin modal\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-plugin-action=\"start-package-installation\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__.default.handleGettingPackageDependencies('plugin', event, 'install');\n}); // Trigger the update all plugins modal\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-plugin-action=\"start-packages-update\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__.default.handleGettingPackageDependencies('plugin', event);\n}); // Install a plugin dependencies and the plugin\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-plugin-action=\"install-dependencies-and-package\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__.default.handleInstallingDependenciesAndPackage('plugin', event);\n}); // Install a plugin\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-plugin-action=\"install-package\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__.default.handleInstallingPackage('plugin', event);\n}); // Sort plugins/themes dropdown\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('change', '.sort-actions select', function (event) {\n var direction = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.sort-actions .sort-icon .fa').hasClass('fa-sort-amount-desc') ? 'desc' : 'asc';\n var sorting = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget).val();\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__.default.Sort[mout_string_camelCase__WEBPACK_IMPORTED_MODULE_2___default()(\"by-\".concat(sorting))](direction);\n}); // Sort plugins/themes icon\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '.sort-icon', function (event) {\n var icon = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget).find('.fa');\n var current = icon.hasClass('fa-sort-amount-asc') ? 'asc' : 'desc';\n var opposite = current === 'asc' ? 'desc' : 'asc';\n icon.removeClass(\"fa-sort-amount-\".concat(current)).addClass(\"fa-sort-amount-\".concat(opposite));\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.sort-actions select').trigger('change');\n}); // Filter plugin/theme\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('input', '[data-gpm-filter]', debounce__WEBPACK_IMPORTED_MODULE_3___default()(function (event) {\n var value = jquery__WEBPACK_IMPORTED_MODULE_0___default()(jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget)).val();\n var items = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-gpm-plugin], [data-gpm-theme]');\n items.hide().filter(function (index, item) {\n item = jquery__WEBPACK_IMPORTED_MODULE_0___default()(item);\n return mout_string_contains__WEBPACK_IMPORTED_MODULE_4___default()(item.data('gpm-plugin'), value) || mout_string_contains__WEBPACK_IMPORTED_MODULE_4___default()(item.data('gpm-theme'), value) || mout_string_contains__WEBPACK_IMPORTED_MODULE_4___default()(item.data('gpm-name').toLowerCase(), value.toLowerCase());\n }).show();\n}, 250));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3BsdWdpbnMvaW5kZXguanM/ZGU3YSJdLCJuYW1lcyI6WyIkIiwib24iLCJlIiwiZWxlbWVudCIsInRhcmdldCIsInRhZyIsInByb3AiLCJ0b0xvd2VyQ2FzZSIsInBhcmVudCIsImxlbmd0aCIsIndyYXBwZXIiLCJzaWJsaW5ncyIsImZpbmQiLCJzbGlkZVRvZ2dsZSIsImR1cmF0aW9uIiwiY29tcGxldGUiLCJ2aXNpYmxlIiwiaXMiLCJjbG9zZXN0IiwicmVtb3ZlQ2xhc3MiLCJhZGRDbGFzcyIsImRvY3VtZW50IiwiZXZlbnQiLCJwYWNrYWdlcyIsImRpcmVjdGlvbiIsImhhc0NsYXNzIiwic29ydGluZyIsImN1cnJlbnRUYXJnZXQiLCJ2YWwiLCJjYW1lbENhc2UiLCJpY29uIiwiY3VycmVudCIsIm9wcG9zaXRlIiwidHJpZ2dlciIsImRlYm91bmNlIiwidmFsdWUiLCJpdGVtcyIsImhpZGUiLCJmaWx0ZXIiLCJpbmRleCIsIml0ZW0iLCJjb250YWlucyIsImRhdGEiLCJzaG93Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7Q0FHQTs7QUFDQUEsNkNBQUMsQ0FBQyx5QkFBRCxDQUFELENBQTZCQyxFQUE3QixDQUFnQyxPQUFoQyxFQUF5QyxVQUFTQyxDQUFULEVBQVk7QUFDakQsTUFBSUMsT0FBTyxHQUFHSCw2Q0FBQyxDQUFDLElBQUQsQ0FBZjtBQUNBLE1BQUlJLE1BQU0sR0FBR0osNkNBQUMsQ0FBQ0UsQ0FBQyxDQUFDRSxNQUFILENBQWQ7QUFDQSxNQUFJQyxHQUFHLEdBQUdELE1BQU0sQ0FBQ0UsSUFBUCxDQUFZLFNBQVosRUFBdUJDLFdBQXZCLEVBQVY7O0FBRUEsTUFBSUYsR0FBRyxLQUFLLEdBQVIsSUFBZUYsT0FBTyxDQUFDSyxNQUFSLENBQWUsR0FBZixFQUFvQkMsTUFBbkMsSUFBNkNMLE1BQU0sQ0FBQ0ksTUFBUCxDQUFjLEdBQWQsRUFBbUJDLE1BQXBFLEVBQTRF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QUF6QixDQUFwRCxJQUF1Rk0sMkRBQVEsQ0FBQ0QsSUFBSSxDQUFDRSxJQUFMLENBQVUsVUFBVixFQUFzQm5DLFdBQXRCLEVBQUQsRUFBc0M0QixLQUFLLENBQUM1QixXQUFOLEVBQXRDLENBQXRHO0FBQ0gsR0FKRCxFQUlHb0MsSUFKSDtBQUtILENBVG9ELEVBU2xELEdBVGtELENBQXJEIiwiZmlsZSI6Ii4vYXBwL3BsdWdpbnMvaW5kZXguanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IHBhY2thZ2VzIGZyb20gJy4uL3V0aWxzL3BhY2thZ2VzJztcbmltcG9ydCBjYW1lbENhc2UgZnJvbSAnbW91dC9zdHJpbmcvY2FtZWxDYXNlJztcbmltcG9ydCBkZWJvdW5jZSBmcm9tICdkZWJvdW5jZSc7XG5pbXBvcnQgY29udGFpbnMgZnJvbSAnbW91dC9zdHJpbmcvY29udGFpbnMnO1xuXG4vLyBQbHVnaW5zIHNsaWRlcnMgZGV0YWlsc1xuJCgnLmdwbS1uYW1lLCAuZ3BtLWFjdGlvbnMnKS5vbignY2xpY2snLCBmdW5jdGlvbihlKSB7XG4gICAgbGV0IGVsZW1lbnQgPSAkKHRoaXMpO1xuICAgIGxldCB0YXJnZXQgPSAkKGUudGFyZ2V0KTtcbiAgICBsZXQgdGFnID0gdGFyZ2V0LnByb3AoJ3RhZ05hbWUnKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgaWYgKHRhZyA9PT0gJ2EnIHx8IGVsZW1lbnQucGFyZW50KCdhJykubGVuZ3RoIHx8IHRhcmdldC5wYXJlbnQoJ2EnKS5sZW5ndGgpIHsgcmV0dXJuIHRydWU7IH1cblxuICAgIGxldCB3cmFwcGVyID0gZWxlbWVudC5zaWJsaW5ncygnLmdwbS1kZXRhaWxzJykuZmluZCgnLnRhYmxlLXdyYXBwZXInKTtcblxuICAgIHdyYXBwZXIuc2xpZGVUb2dnbGUoe1xuICAgICAgICBkdXJhdGlvbjogMzUwLFxuICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xuICAgICAgICAgICAgbGV0IHZpc2libGUgPSB3cmFwcGVyLmlzKCc6dmlzaWJsZScpO1xuICAgICAgICAgICAgd3JhcHBlclxuICAgICAgICAgICAgICAgIC5jbG9zZXN0KCd0cicpXG4gICAgICAgICAgICAgICAgLmZpbmQoJy5ncG0tZGV0YWlscy1leHBhbmQgaScpXG4gICAgICAgICAgICAgICAgLnJlbW92ZUNsYXNzKCdmYS1jaGV2cm9uLScgKyAodmlzaWJsZSA/ICdkb3duJyA6ICd1cCcpKVxuICAgICAgICAgICAgICAgIC5hZGRDbGFzcygnZmEtY2hldnJvbi0nICsgKHZpc2libGUgPyAndXAnIDogJ2Rvd24nKSk7XG4gICAgICAgIH1cbiAgICB9KTtcbn0pO1xuXG4vLyBSZW1vdmluZyBwbHVnaW5cbiQoZG9jdW1lbnQpLm9uKCdjbGljaycsICdbZGF0YS1wbHVnaW4tYWN0aW9uPVwicmVtb3ZlLXBhY2thZ2VcIl0nLCAoZXZlbnQpID0+IHtcbiAgICBwYWNrYWdlcy5oYW5kbGVSZW1vdmluZ1BhY2thZ2UoJ3BsdWdpbicsIGV2ZW50KTtcbn0pO1xuXG4vLyBSZWluc3RhbGwgcGx1Z2luXG4kKGRvY3VtZW50KS5vbignY2xpY2snLCAnW2RhdGEtcGx1Z2luLWFjdGlvbj1cInJlaW5zdGFsbC1wYWNrYWdlXCJdJywgKGV2ZW50KSA9PiB7XG4gICAgcGFja2FnZXMuaGFuZGxlUmVpbnN0YWxsUGFja2FnZSgncGx1Z2luJywgZXZlbnQpO1xufSk7XG5cbiQoZG9jdW1lbnQpLm9uKCdjbGljaycsICdbZGF0YS1wbHVnaW4tYWN0aW9uPVwicmVtb3ZlLWRlcGVuZGVuY3ktcGFja2FnZVwiXScsIChldmVudCkgPT4ge1xuICAgIHBhY2thZ2VzLmhhbmRsZVJlbW92aW5nRGVwZW5kZW5jeSgncGx1Z2luJywgZXZlbnQpO1xufSk7XG5cbi8vIFRyaWdnZXIgdGhlIGFkZCBuZXcgcGx1Z2luIC8gdXBkYXRlIHBsdWdpbiBtb2RhbFxuJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ1tkYXRhLXBsdWdpbi1hY3Rpb249XCJzdGFydC1wYWNrYWdlLWluc3RhbGxhdGlvblwiXScsIChldmVudCkgPT4ge1xuICAgIHBhY2thZ2VzLmhhbmRsZUdldHRpbmdQYWNrYWdlRGVwZW5kZW5jaWVzKCdwbHVnaW4nLCBldmVudCwgJ2luc3RhbGwnKTtcbn0pO1xuXG4vLyBUcmlnZ2VyIHRoZSB1cGRhdGUgYWxsIHBsdWdpbnMgbW9kYWxcbiQoZG9jdW1lbnQpLm9uKCdjbGljaycsICdbZGF0YS1wbHVnaW4tYWN0aW9uPVwic3RhcnQtcGFja2FnZXMtdXBkYXRlXCJdJywgKGV2ZW50KSA9PiB7XG4gICAgcGFja2FnZXMuaGFuZGxlR2V0dGluZ1BhY2thZ2VEZXBlbmRlbmNpZXMoJ3BsdWdpbicsIGV2ZW50KTtcbn0pO1xuXG4vLyBJbnN0YWxsIGEgcGx1Z2luIGRlcGVuZGVuY2llcyBhbmQgdGhlIHBsdWdpblxuJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ1tkYXRhLXBsdWdpbi1hY3Rpb249XCJpbnN0YWxsLWRlcGVuZGVuY2llcy1hbmQtcGFja2FnZVwiXScsIChldmVudCkgPT4ge1xuICAgIHBhY2thZ2VzLmhhbmRsZUluc3RhbGxpbmdEZXBlbmRlbmNpZXNBbmRQYWNrYWdlKCdwbHVnaW4nLCBldmVudCk7XG59KTtcblxuLy8gSW5zdGFsbCBhIHBsdWdpblxuJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ1tkYXRhLXBsdWdpbi1hY3Rpb249XCJpbnN0YWxsLXBhY2thZ2VcIl0nLCAoZXZlbnQpID0+IHtcbiAgICBwYWNrYWdlcy5oYW5kbGVJbnN0YWxsaW5nUGFja2FnZSgncGx1Z2luJywgZXZlbnQpO1xufSk7XG5cbi8vIFNvcnQgcGx1Z2lucy90aGVtZXMgZHJvcGRvd25cbiQoZG9jdW1lbnQpLm9uKCdjaGFuZ2UnLCAnLnNvcnQtYWN0aW9ucyBzZWxlY3QnLCAoZXZlbnQpID0+IHtcbiAgICBsZXQgZGlyZWN0aW9uID0gJCgnLnNvcnQtYWN0aW9ucyAuc29ydC1pY29uIC5mYScpLmhhc0NsYXNzKCdmYS1zb3J0LWFtb3VudC1kZXNjJykgPyAnZGVzYycgOiAnYXNjJztcbiAgICBsZXQgc29ydGluZyA9ICQoZXZlbnQuY3VycmVudFRhcmdldCkudmFsKCk7XG5cbiAgICBwYWNrYWdlcy5Tb3J0W2NhbWVsQ2FzZShgYnktJHtzb3J0aW5nfWApXShkaXJlY3Rpb24pO1xufSk7XG5cbi8vIFNvcnQgcGx1Z2lucy90aGVtZXMgaWNvblxuJChkb2N1bWVudCkub24oJ2NsaWNrJywgJy5zb3J0LWljb24nLCAoZXZlbnQpID0+IHtcbiAgICBsZXQgaWNvbiA9ICQoZXZlbnQuY3VycmVudFRhcmdldCkuZmluZCgnLmZhJyk7XG4gICAgbGV0IGN1cnJlbnQgPSBpY29uLmhhc0NsYXNzKCdmYS1zb3J0LWFtb3VudC1hc2MnKSA/ICdhc2MnIDogJ2Rlc2MnO1xuICAgIGxldCBvcHBvc2l0ZSA9IGN1cnJlbnQgPT09ICdhc2MnID8gJ2Rlc2MnIDogJ2FzYyc7XG5cbiAgICBpY29uLnJlbW92ZUNsYXNzKGBmYS1zb3J0LWFtb3VudC0ke2N1cnJlbnR9YCkuYWRkQ2xhc3MoYGZhLXNvcnQtYW1vdW50LSR7b3Bwb3NpdGV9YCk7XG4gICAgJCgnLnNvcnQtYWN0aW9ucyBzZWxlY3QnKS50cmlnZ2VyKCdjaGFuZ2UnKTtcbn0pO1xuXG4vLyBGaWx0ZXIgcGx1Z2luL3RoZW1lXG4kKGRvY3VtZW50KS5vbignaW5wdXQnLCAnW2RhdGEtZ3BtLWZpbHRlcl0nLCBkZWJvdW5jZSgoZXZlbnQpID0+IHtcbiAgICBsZXQgdmFsdWUgPSAkKCQoZXZlbnQuY3VycmVudFRhcmdldCkpLnZhbCgpO1xuICAgIGxldCBpdGVtcyA9ICQoJ1tkYXRhLWdwbS1wbHVnaW5dLCBbZGF0YS1ncG0tdGhlbWVdJyk7XG5cbiAgICBpdGVtcy5oaWRlKCkuZmlsdGVyKChpbmRleCwgaXRlbSkgPT4ge1xuICAgICAgICBpdGVtID0gJChpdGVtKTtcblxuICAgICAgICByZXR1cm4gY29udGFpbnMoaXRlbS5kYXRhKCdncG0tcGx1Z2luJyksIHZhbHVlKSB8fCBjb250YWlucyhpdGVtLmRhdGEoJ2dwbS10aGVtZScpLCB2YWx1ZSkgfHwgY29udGFpbnMoaXRlbS5kYXRhKCdncG0tbmFtZScpLnRvTG93ZXJDYXNlKCksIHZhbHVlLnRvTG93ZXJDYXNlKCkpO1xuICAgIH0pLnNob3coKTtcbn0sIDI1MCkpO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/plugins/index.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/themes/index.js":
|
|
/*!*****************************!*\
|
|
!*** ./app/themes/index.js ***!
|
|
\*****************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_packages__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/packages */ \"./app/utils/packages.js\");\n\n // Themes Switcher Warning\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('mousedown', '[data-remodal-target=\"theme-switch-warn\"]', function (event) {\n var name = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).closest('[data-gpm-theme]').find('.gpm-name a:first').text();\n var remodal = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.remodal.theme-switcher');\n remodal.find('strong').text(name);\n remodal.find('.button.continue').attr('href', jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).attr('href'));\n}); // Removing theme\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-theme-action=\"remove-package\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__.default.handleRemovingPackage('theme', event);\n}); // Reinstall theme\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-theme-action=\"reinstall-package\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__.default.handleReinstallPackage('theme', event);\n});\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-theme-action=\"remove-dependency-package\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__.default.handleRemovingDependency('theme', event);\n}); // Opened the add new theme / update theme modal\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-theme-action=\"start-package-installation\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__.default.handleGettingPackageDependencies('theme', event, 'install');\n}); // Trigger the update all themes modal\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-theme-action=\"start-packages-update\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__.default.handleGettingPackageDependencies('theme', event);\n}); // Install a theme dependencies and the theme\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-theme-action=\"install-dependencies-and-package\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__.default.handleInstallingDependenciesAndPackage('theme', event);\n}); // Install a theme\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-theme-action=\"install-package\"]', function (event) {\n _utils_packages__WEBPACK_IMPORTED_MODULE_1__.default.handleInstallingPackage('theme', event);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3RoZW1lcy9pbmRleC5qcz8zNDc0Il0sIm5hbWVzIjpbIiQiLCJkb2N1bWVudCIsIm9uIiwiZXZlbnQiLCJuYW1lIiwidGFyZ2V0IiwiY2xvc2VzdCIsImZpbmQiLCJ0ZXh0IiwicmVtb2RhbCIsImF0dHIiLCJwYWNrYWdlcyJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0NBR0E7O0FBQ0FBLDZDQUFDLENBQUNDLFFBQUQsQ0FBRCxDQUFZQyxFQUFaLENBQWUsV0FBZixFQUE0QiwyQ0FBNUIsRUFBeUUsVUFBQ0MsS0FBRCxFQUFXO0FBQ2hGLE1BQUlDLElBQUksR0FBR0osNkNBQUMsQ0FBQ0csS0FBSyxDQUFDRSxNQUFQLENBQUQsQ0FBZ0JDLE9BQWhCLENBQXdCLGtCQUF4QixFQUE0Q0MsSUFBNUMsQ0FBaUQsbUJBQWpELEVBQXNFQyxJQUF0RSxFQUFYO0FBQ0EsTUFBSUMsT0FBTyxHQUFHVCw2Q0FBQyxDQUFDLHlCQUFELENBQWY7QUFFQVMsU0FBTyxDQUFDRixJQUFSLENBQWEsUUFBYixFQUF1QkMsSUFBdkIsQ0FBNEJKLElBQTVCO0FBQ0FLLFNBQU8sQ0FBQ0YsSUFBUixDQUFhLGtCQUFiLEVBQWlDRyxJQUFqQyxDQUFzQyxNQUF0QyxFQUE4Q1YsNkNBQUMsQ0FBQ0csS0FBSyxDQUFDRSxNQUFQLENBQUQsQ0FBZ0JLLElBQWhCLENBQXFCLE1BQXJCLENBQTlDO0FBQ0gsQ0FORCxFLENBUUE7O0FBQ0FWLDZDQUFDLENBQUNDLFFBQUQsQ0FBRCxDQUFZQyxFQUFaLENBQWUsT0FBZixFQUF3QixzQ0FBeEIsRUFBZ0UsVUFBQ0MsS0FBRCxFQUFXO0FBQ3ZFUSw0RUFBQSxDQUErQixPQUEvQixFQUF3Q1IsS0FBeEM7QUFDSCxDQUZELEUsQ0FJQTs7QUFDQUgsNkNBQUMsQ0FBQ0MsUUFBRCxDQUFELENBQVlDLEVBQVosQ0FBZSxPQUFmLEVBQXdCLHlDQUF4QixFQUFtRSxVQUFDQyxLQUFELEVBQVc7QUFDMUVRLDZFQUFBLENBQWdDLE9BQWhDLEVBQXlDUixLQUF6QztBQUNILENBRkQ7QUFJQUgsNkNBQUMsQ0FBQ0MsUUFBRCxDQUFELENBQVlDLEVBQVosQ0FBZSxPQUFmLEVBQXdCLGlEQUF4QixFQUEyRSxVQUFDQyxLQUFELEVBQVc7QUFDbEZRLCtFQUFBLENBQWtDLE9BQWxDLEVBQTJDUixLQUEzQztBQUNILENBRkQsRSxDQUlBOztBQUNBSCw2Q0FBQyxDQUFDQyxRQUFELENBQUQsQ0FBWUMsRUFBWixDQUFlLE9BQWYsRUFBd0Isa0RBQXhCLEVBQTRFLFVBQUNDLEtBQUQsRUFBVztBQUNuRlEsdUZBQUEsQ0FBMEMsT0FBMUMsRUFBbURSLEtBQW5ELEVBQTBELFNBQTFEO0FBQ0gsQ0FGRCxFLENBSUE7O0FBQ0FILDZDQUFDLENBQUNDLFFBQUQsQ0FBRCxDQUFZQyxFQUFaLENBQWUsT0FBZixFQUF3Qiw2Q0FBeEIsRUFBdUUsVUFBQ0MsS0FBRCxFQUFXO0FBQzlFUSx1RkFBQSxDQUEwQyxPQUExQyxFQUFtRFIsS0FBbkQ7QUFDSCxDQUZELEUsQ0FJQTs7QUFDQUgsNkNBQUMsQ0FBQ0MsUUFBRCxDQUFELENBQVlDLEVBQVosQ0FBZSxPQUFmLEVBQXdCLHdEQUF4QixFQUFrRixVQUFDQyxLQUFELEVBQVc7QUFDekZRLDZGQUFBLENBQWdELE9BQWhELEVBQXlEUixLQUF6RDtBQUNILENBRkQsRSxDQUlBOztBQUNBSCw2Q0FBQyxDQUFDQyxRQUFELENBQUQsQ0FBWUMsRUFBWixDQUFlLE9BQWYsRUFBd0IsdUNBQXhCLEVBQWlFLFVBQUNDLEtBQUQsRUFBVztBQUN4RVEsOEVBQUEsQ0FBaUMsT0FBakMsRUFBMENSLEtBQTFDO0FBQ0gsQ0FGRCIsImZpbGUiOiIuL2FwcC90aGVtZXMvaW5kZXguanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IHBhY2thZ2VzIGZyb20gJy4uL3V0aWxzL3BhY2thZ2VzJztcblxuLy8gVGhlbWVzIFN3aXRjaGVyIFdhcm5pbmdcbiQoZG9jdW1lbnQpLm9uKCdtb3VzZWRvd24nLCAnW2RhdGEtcmVtb2RhbC10YXJnZXQ9XCJ0aGVtZS1zd2l0Y2gtd2FyblwiXScsIChldmVudCkgPT4ge1xuICAgIGxldCBuYW1lID0gJChldmVudC50YXJnZXQpLmNsb3Nlc3QoJ1tkYXRhLWdwbS10aGVtZV0nKS5maW5kKCcuZ3BtLW5hbWUgYTpmaXJzdCcpLnRleHQoKTtcbiAgICBsZXQgcmVtb2RhbCA9ICQoJy5yZW1vZGFsLnRoZW1lLXN3aXRjaGVyJyk7XG5cbiAgICByZW1vZGFsLmZpbmQoJ3N0cm9uZycpLnRleHQobmFtZSk7XG4gICAgcmVtb2RhbC5maW5kKCcuYnV0dG9uLmNvbnRpbnVlJykuYXR0cignaHJlZicsICQoZXZlbnQudGFyZ2V0KS5hdHRyKCdocmVmJykpO1xufSk7XG5cbi8vIFJlbW92aW5nIHRoZW1lXG4kKGRvY3VtZW50KS5vbignY2xpY2snLCAnW2RhdGEtdGhlbWUtYWN0aW9uPVwicmVtb3ZlLXBhY2thZ2VcIl0nLCAoZXZlbnQpID0+IHtcbiAgICBwYWNrYWdlcy5oYW5kbGVSZW1vdmluZ1BhY2thZ2UoJ3RoZW1lJywgZXZlbnQpO1xufSk7XG5cbi8vIFJlaW5zdGFsbCB0aGVtZVxuJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ1tkYXRhLXRoZW1lLWFjdGlvbj1cInJlaW5zdGFsbC1wYWNrYWdlXCJdJywgKGV2ZW50KSA9PiB7XG4gICAgcGFja2FnZXMuaGFuZGxlUmVpbnN0YWxsUGFja2FnZSgndGhlbWUnLCBldmVudCk7XG59KTtcblxuJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ1tkYXRhLXRoZW1lLWFjdGlvbj1cInJlbW92ZS1kZXBlbmRlbmN5LXBhY2thZ2VcIl0nLCAoZXZlbnQpID0+IHtcbiAgICBwYWNrYWdlcy5oYW5kbGVSZW1vdmluZ0RlcGVuZGVuY3koJ3RoZW1lJywgZXZlbnQpO1xufSk7XG5cbi8vIE9wZW5lZCB0aGUgYWRkIG5ldyB0aGVtZSAvIHVwZGF0ZSB0aGVtZSBtb2RhbFxuJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ1tkYXRhLXRoZW1lLWFjdGlvbj1cInN0YXJ0LXBhY2thZ2UtaW5zdGFsbGF0aW9uXCJdJywgKGV2ZW50KSA9PiB7XG4gICAgcGFja2FnZXMuaGFuZGxlR2V0dGluZ1BhY2thZ2VEZXBlbmRlbmNpZXMoJ3RoZW1lJywgZXZlbnQsICdpbnN0YWxsJyk7XG59KTtcblxuLy8gVHJpZ2dlciB0aGUgdXBkYXRlIGFsbCB0aGVtZXMgbW9kYWxcbiQoZG9jdW1lbnQpLm9uKCdjbGljaycsICdbZGF0YS10aGVtZS1hY3Rpb249XCJzdGFydC1wYWNrYWdlcy11cGRhdGVcIl0nLCAoZXZlbnQpID0+IHtcbiAgICBwYWNrYWdlcy5oYW5kbGVHZXR0aW5nUGFja2FnZURlcGVuZGVuY2llcygndGhlbWUnLCBldmVudCk7XG59KTtcblxuLy8gSW5zdGFsbCBhIHRoZW1lIGRlcGVuZGVuY2llcyBhbmQgdGhlIHRoZW1lXG4kKGRvY3VtZW50KS5vbignY2xpY2snLCAnW2RhdGEtdGhlbWUtYWN0aW9uPVwiaW5zdGFsbC1kZXBlbmRlbmNpZXMtYW5kLXBhY2thZ2VcIl0nLCAoZXZlbnQpID0+IHtcbiAgICBwYWNrYWdlcy5oYW5kbGVJbnN0YWxsaW5nRGVwZW5kZW5jaWVzQW5kUGFja2FnZSgndGhlbWUnLCBldmVudCk7XG59KTtcblxuLy8gSW5zdGFsbCBhIHRoZW1lXG4kKGRvY3VtZW50KS5vbignY2xpY2snLCAnW2RhdGEtdGhlbWUtYWN0aW9uPVwiaW5zdGFsbC1wYWNrYWdlXCJdJywgKGV2ZW50KSA9PiB7XG4gICAgcGFja2FnZXMuaGFuZGxlSW5zdGFsbGluZ1BhY2thZ2UoJ3RoZW1lJywgZXZlbnQpO1xufSk7XG5cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/themes/index.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/tools/index.js":
|
|
/*!****************************!*\
|
|
!*** ./app/tools/index.js ***!
|
|
\****************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony import */ var _logs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./logs */ "./app/tools/logs.js");
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/tools/logs.js":
|
|
/*!***************************!*\
|
|
!*** ./app/tools/logs.js ***!
|
|
\***************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var mout_queryString__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mout/queryString */ \"./node_modules/mout/queryString.js\");\n/* harmony import */ var mout_queryString__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(mout_queryString__WEBPACK_IMPORTED_MODULE_1__);\n\n\n\nvar prepareQuery = function prepareQuery(key, value) {\n return (0,mout_queryString__WEBPACK_IMPORTED_MODULE_1__.setParam)(__webpack_require__.g.location.href, key, value);\n};\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('change', '.logs-content .block-select select[name]', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var name = target.attr('name');\n var value = target.val();\n __webpack_require__.g.location.href = prepareQuery(name, value);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3Rvb2xzL2xvZ3MuanM/N2M0YyJdLCJuYW1lcyI6WyJwcmVwYXJlUXVlcnkiLCJrZXkiLCJ2YWx1ZSIsInNldFBhcmFtIiwiZ2xvYmFsIiwibG9jYXRpb24iLCJocmVmIiwiJCIsImRvY3VtZW50Iiwib24iLCJldmVudCIsInRhcmdldCIsImN1cnJlbnRUYXJnZXQiLCJuYW1lIiwiYXR0ciIsInZhbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBOztBQUVBLElBQU1BLFlBQVksR0FBRyxTQUFmQSxZQUFlLENBQUNDLEdBQUQsRUFBTUMsS0FBTixFQUFnQjtBQUNqQyxTQUFPQywwREFBUSxDQUFDQyxxQkFBTSxDQUFDQyxRQUFQLENBQWdCQyxJQUFqQixFQUF1QkwsR0FBdkIsRUFBNEJDLEtBQTVCLENBQWY7QUFDSCxDQUZEOztBQUlBSyw2Q0FBQyxDQUFDQyxRQUFELENBQUQsQ0FBWUMsRUFBWixDQUFlLFFBQWYsRUFBeUIsMENBQXpCLEVBQXFFLFVBQUNDLEtBQUQsRUFBVztBQUM1RSxNQUFNQyxNQUFNLEdBQUdKLDZDQUFDLENBQUNHLEtBQUssQ0FBQ0UsYUFBUCxDQUFoQjtBQUNBLE1BQU1DLElBQUksR0FBR0YsTUFBTSxDQUFDRyxJQUFQLENBQVksTUFBWixDQUFiO0FBQ0EsTUFBTVosS0FBSyxHQUFHUyxNQUFNLENBQUNJLEdBQVAsRUFBZDtBQUVBWCx1QkFBTSxDQUFDQyxRQUFQLENBQWdCQyxJQUFoQixHQUF1Qk4sWUFBWSxDQUFDYSxJQUFELEVBQU9YLEtBQVAsQ0FBbkM7QUFDSCxDQU5EIiwiZmlsZSI6Ii4vYXBwL3Rvb2xzL2xvZ3MuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IHsgc2V0UGFyYW0gfSBmcm9tICdtb3V0L3F1ZXJ5U3RyaW5nJztcblxuY29uc3QgcHJlcGFyZVF1ZXJ5ID0gKGtleSwgdmFsdWUpID0+IHtcbiAgICByZXR1cm4gc2V0UGFyYW0oZ2xvYmFsLmxvY2F0aW9uLmhyZWYsIGtleSwgdmFsdWUpO1xufTtcblxuJChkb2N1bWVudCkub24oJ2NoYW5nZScsICcubG9ncy1jb250ZW50IC5ibG9jay1zZWxlY3Qgc2VsZWN0W25hbWVdJywgKGV2ZW50KSA9PiB7XG4gICAgY29uc3QgdGFyZ2V0ID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgICBjb25zdCBuYW1lID0gdGFyZ2V0LmF0dHIoJ25hbWUnKTtcbiAgICBjb25zdCB2YWx1ZSA9IHRhcmdldC52YWwoKTtcblxuICAgIGdsb2JhbC5sb2NhdGlvbi5ocmVmID0gcHJlcGFyZVF1ZXJ5KG5hbWUsIHZhbHVlKTtcbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/tools/logs.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/updates/channel-switcher.js":
|
|
/*!*****************************************!*\
|
|
!*** ./app/updates/channel-switcher.js ***!
|
|
\*****************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/request */ \"./app/utils/request.js\");\n\n\nvar switcher = jquery__WEBPACK_IMPORTED_MODULE_0___default()('input[type=\"radio\"][name=\"channel-switch\"]');\n\nif (switcher) {\n switcher.on('change', function (event) {\n var radio = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target);\n var url = \"\".concat(radio.parent('[data-url]').data('url'));\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_1__.default)(url, {\n method: 'post',\n body: {\n task: 'gpmRelease',\n release: radio.val()\n }\n }, function (response) {\n if (response.reload) {\n __webpack_require__.g.location.reload();\n }\n });\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3VwZGF0ZXMvY2hhbm5lbC1zd2l0Y2hlci5qcz8zOTczIl0sIm5hbWVzIjpbInN3aXRjaGVyIiwiJCIsIm9uIiwiZXZlbnQiLCJyYWRpbyIsInRhcmdldCIsInVybCIsInBhcmVudCIsImRhdGEiLCJyZXF1ZXN0IiwibWV0aG9kIiwiYm9keSIsInRhc2siLCJyZWxlYXNlIiwidmFsIiwicmVzcG9uc2UiLCJyZWxvYWQiLCJnbG9iYWwiLCJsb2NhdGlvbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFFQSxJQUFNQSxRQUFRLEdBQUdDLDZDQUFDLENBQUMsNENBQUQsQ0FBbEI7O0FBRUEsSUFBSUQsUUFBSixFQUFjO0FBQ1ZBLFVBQVEsQ0FBQ0UsRUFBVCxDQUFZLFFBQVosRUFBc0IsVUFBQ0MsS0FBRCxFQUFXO0FBQzdCLFFBQUlDLEtBQUssR0FBR0gsNkNBQUMsQ0FBQ0UsS0FBSyxDQUFDRSxNQUFQLENBQWI7QUFDQSxRQUFJQyxHQUFHLGFBQU1GLEtBQUssQ0FBQ0csTUFBTixDQUFhLFlBQWIsRUFBMkJDLElBQTNCLENBQWdDLEtBQWhDLENBQU4sQ0FBUDtBQUVBQywyREFBTyxDQUFDSCxHQUFELEVBQU07QUFDVEksWUFBTSxFQUFFLE1BREM7QUFFVEMsVUFBSSxFQUFFO0FBQ0ZDLFlBQUksRUFBRSxZQURKO0FBRUZDLGVBQU8sRUFBRVQsS0FBSyxDQUFDVSxHQUFOO0FBRlA7QUFGRyxLQUFOLEVBT1AsVUFBQ0MsUUFBRCxFQUFjO0FBQ1YsVUFBSUEsUUFBUSxDQUFDQyxNQUFiLEVBQXFCO0FBQ2pCQyw2QkFBTSxDQUFDQyxRQUFQLENBQWdCRixNQUFoQjtBQUNIO0FBQ0osS0FYTSxDQUFQO0FBWUgsR0FoQkQ7QUFpQkgiLCJmaWxlIjoiLi9hcHAvdXBkYXRlcy9jaGFubmVsLXN3aXRjaGVyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCByZXF1ZXN0IGZyb20gJy4uL3V0aWxzL3JlcXVlc3QnO1xuXG5jb25zdCBzd2l0Y2hlciA9ICQoJ2lucHV0W3R5cGU9XCJyYWRpb1wiXVtuYW1lPVwiY2hhbm5lbC1zd2l0Y2hcIl0nKTtcblxuaWYgKHN3aXRjaGVyKSB7XG4gICAgc3dpdGNoZXIub24oJ2NoYW5nZScsIChldmVudCkgPT4ge1xuICAgICAgICBsZXQgcmFkaW8gPSAkKGV2ZW50LnRhcmdldCk7XG4gICAgICAgIGxldCB1cmwgPSBgJHtyYWRpby5wYXJlbnQoJ1tkYXRhLXVybF0nKS5kYXRhKCd1cmwnKX1gO1xuXG4gICAgICAgIHJlcXVlc3QodXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgICAgICB0YXNrOiAnZ3BtUmVsZWFzZScsXG4gICAgICAgICAgICAgICAgcmVsZWFzZTogcmFkaW8udmFsKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2UucmVsb2FkKSB7XG4gICAgICAgICAgICAgICAgZ2xvYmFsLmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/updates/channel-switcher.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/updates/check.js":
|
|
/*!******************************!*\
|
|
!*** ./app/updates/check.js ***!
|
|
\******************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_gpm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/gpm */ \"./app/utils/gpm.js\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _utils_toastr__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/toastr */ \"./app/utils/toastr.js\");\n\n\n\n // Check for updates trigger\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-gpm-checkupdates]').on('click', function () {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n element.find('i').addClass('fa-spin');\n _utils_gpm__WEBPACK_IMPORTED_MODULE_1__.Instance.fetch(function (response) {\n element.find('i').removeClass('fa-spin');\n var payload = response.payload;\n\n if (!payload) {\n return;\n }\n\n if (!payload.grav.isUpdatable && !payload.resources.total) {\n _utils_toastr__WEBPACK_IMPORTED_MODULE_3__.default.success(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.EVERYTHING_UP_TO_DATE);\n } else {\n var grav = payload.grav.isUpdatable ? 'Grav v' + payload.grav.available : '';\n var resources = payload.resources.total ? payload.resources.total + ' ' + grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.UPDATES_ARE_AVAILABLE : '';\n\n if (!resources) {\n grav += ' ' + grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.IS_AVAILABLE_FOR_UPDATE;\n }\n\n _utils_toastr__WEBPACK_IMPORTED_MODULE_3__.default.info(grav + (grav && resources ? ' ' + grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.AND + ' ' : '') + resources);\n }\n }, true);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3VwZGF0ZXMvY2hlY2suanM/MzQwOSJdLCJuYW1lcyI6WyIkIiwib24iLCJlbGVtZW50IiwiZmluZCIsImFkZENsYXNzIiwiZ3BtIiwicmVzcG9uc2UiLCJyZW1vdmVDbGFzcyIsInBheWxvYWQiLCJncmF2IiwiaXNVcGRhdGFibGUiLCJyZXNvdXJjZXMiLCJ0b3RhbCIsInRvYXN0ciIsInRyYW5zbGF0aW9ucyIsImF2YWlsYWJsZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtDQUdBOztBQUNBQSw2Q0FBQyxDQUFDLHlCQUFELENBQUQsQ0FBNkJDLEVBQTdCLENBQWdDLE9BQWhDLEVBQXlDLFlBQVc7QUFDaEQsTUFBSUMsT0FBTyxHQUFHRiw2Q0FBQyxDQUFDLElBQUQsQ0FBZjtBQUNBRSxTQUFPLENBQUNDLElBQVIsQ0FBYSxHQUFiLEVBQWtCQyxRQUFsQixDQUEyQixTQUEzQjtBQUVBQyx3REFBQSxDQUFVLFVBQUNDLFFBQUQsRUFBYztBQUNwQkosV0FBTyxDQUFDQyxJQUFSLENBQWEsR0FBYixFQUFrQkksV0FBbEIsQ0FBOEIsU0FBOUI7QUFDQSxRQUFJQyxPQUFPLEdBQUdGLFFBQVEsQ0FBQ0UsT0FBdkI7O0FBRUEsUUFBSSxDQUFDQSxPQUFMLEVBQWM7QUFBRTtBQUFTOztBQUN6QixRQUFJLENBQUNBLE9BQU8sQ0FBQ0MsSUFBUixDQUFhQyxXQUFkLElBQTZCLENBQUNGLE9BQU8sQ0FBQ0csU0FBUixDQUFrQkMsS0FBcEQsRUFBMkQ7QUFDdkRDLGdFQUFBLENBQWVDLHdGQUFmO0FBQ0gsS0FGRCxNQUVPO0FBQ0gsVUFBSUwsSUFBSSxHQUFHRCxPQUFPLENBQUNDLElBQVIsQ0FBYUMsV0FBYixHQUEyQixXQUFXRixPQUFPLENBQUNDLElBQVIsQ0FBYU0sU0FBbkQsR0FBK0QsRUFBMUU7QUFDQSxVQUFJSixTQUFTLEdBQUdILE9BQU8sQ0FBQ0csU0FBUixDQUFrQkMsS0FBbEIsR0FBMEJKLE9BQU8sQ0FBQ0csU0FBUixDQUFrQkMsS0FBbEIsR0FBMEIsR0FBMUIsR0FBZ0NFLHdGQUExRCxHQUE0RyxFQUE1SDs7QUFFQSxVQUFJLENBQUNILFNBQUwsRUFBZ0I7QUFBRUYsWUFBSSxJQUFJLE1BQU1LLDBGQUFkO0FBQWtFOztBQUNwRkQsNkRBQUEsQ0FBWUosSUFBSSxJQUFJQSxJQUFJLElBQUlFLFNBQVIsR0FBb0IsTUFBTUcsc0VBQU4sR0FBc0MsR0FBMUQsR0FBZ0UsRUFBcEUsQ0FBSixHQUE4RUgsU0FBMUY7QUFDSDtBQUNKLEdBZEQsRUFjRyxJQWRIO0FBZUgsQ0FuQkQiLCJmaWxlIjoiLi9hcHAvdXBkYXRlcy9jaGVjay5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgeyBJbnN0YW5jZSBhcyBncG0gfSBmcm9tICcuLi91dGlscy9ncG0nO1xuaW1wb3J0IHsgdHJhbnNsYXRpb25zIH0gZnJvbSAnZ3Jhdi1jb25maWcnO1xuaW1wb3J0IHRvYXN0ciBmcm9tICcuLi91dGlscy90b2FzdHInO1xuXG4vLyBDaGVjayBmb3IgdXBkYXRlcyB0cmlnZ2VyXG4kKCdbZGF0YS1ncG0tY2hlY2t1cGRhdGVzXScpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkge1xuICAgIGxldCBlbGVtZW50ID0gJCh0aGlzKTtcbiAgICBlbGVtZW50LmZpbmQoJ2knKS5hZGRDbGFzcygnZmEtc3BpbicpO1xuXG4gICAgZ3BtLmZldGNoKChyZXNwb25zZSkgPT4ge1xuICAgICAgICBlbGVtZW50LmZpbmQoJ2knKS5yZW1vdmVDbGFzcygnZmEtc3BpbicpO1xuICAgICAgICBsZXQgcGF5bG9hZCA9IHJlc3BvbnNlLnBheWxvYWQ7XG5cbiAgICAgICAgaWYgKCFwYXlsb2FkKSB7IHJldHVybjsgfVxuICAgICAgICBpZiAoIXBheWxvYWQuZ3Jhdi5pc1VwZGF0YWJsZSAmJiAhcGF5bG9hZC5yZXNvdXJjZXMudG90YWwpIHtcbiAgICAgICAgICAgIHRvYXN0ci5zdWNjZXNzKHRyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uRVZFUllUSElOR19VUF9UT19EQVRFKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhciBncmF2ID0gcGF5bG9hZC5ncmF2LmlzVXBkYXRhYmxlID8gJ0dyYXYgdicgKyBwYXlsb2FkLmdyYXYuYXZhaWxhYmxlIDogJyc7XG4gICAgICAgICAgICB2YXIgcmVzb3VyY2VzID0gcGF5bG9hZC5yZXNvdXJjZXMudG90YWwgPyBwYXlsb2FkLnJlc291cmNlcy50b3RhbCArICcgJyArIHRyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uVVBEQVRFU19BUkVfQVZBSUxBQkxFIDogJyc7XG5cbiAgICAgICAgICAgIGlmICghcmVzb3VyY2VzKSB7IGdyYXYgKz0gJyAnICsgdHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5JU19BVkFJTEFCTEVfRk9SX1VQREFURTsgfVxuICAgICAgICAgICAgdG9hc3RyLmluZm8oZ3JhdiArIChncmF2ICYmIHJlc291cmNlcyA/ICcgJyArIHRyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uQU5EICsgJyAnIDogJycpICsgcmVzb3VyY2VzKTtcbiAgICAgICAgfVxuICAgIH0sIHRydWUpO1xufSk7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/updates/check.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/updates/feed.js":
|
|
/*!*****************************!*\
|
|
!*** ./app/updates/feed.js ***!
|
|
\*****************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/request */ \"./app/utils/request.js\");\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); return Constructor; }\n\n\n\n\nvar URI = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/ajax.json/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep, \"getNewsFeed\");\n\nvar Feed = /*#__PURE__*/function () {\n function Feed() {\n _classCallCheck(this, Feed);\n\n this.data = null;\n }\n\n _createClass(Feed, [{\n key: \"fetch\",\n value: function fetch() {\n var _this = this;\n\n var refresh = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__.default)(URI, {\n method: 'post',\n body: {\n refresh: refresh\n }\n }, function (response) {\n _this.data = response;\n callback(response);\n });\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n var _refresh = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var feed = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#news-feed .widget-content');\n\n if (!feed.length) {\n return;\n }\n\n var loader = feed.find('.widget-loader');\n loader.find('div').remove();\n loader.find('.fa-warning').removeClass('fa-warning').addClass('fa-refresh fa-spin');\n loader.show();\n feed.find('> ul').hide();\n\n if (!this.data || this.data.error || _refresh) {\n this.fetch(_refresh, this.updateContent.bind(this));\n } else {\n this.updateContent();\n }\n }\n }, {\n key: \"updateContent\",\n value: function updateContent() {\n var feed = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#news-feed .widget-content');\n\n if (!feed.length) {\n return;\n }\n\n var loader = feed.find('.widget-loader').hide();\n var content = feed.find('> ul').empty().show();\n\n if (this.data.error || this.data.status === 'error') {\n loader.show().find('div').remove();\n loader.find('.fa-refresh').removeClass('fa-refresh fa-spin').addClass('fa-warning');\n loader.append(\"<div>\".concat(this.data.error ? this.data.error.message : this.data.message || 'Unable to download news feed', \"</div>\"));\n return;\n }\n\n if (this.data && this.data.feed_data) {\n content.append(this.data.feed_data);\n }\n }\n }]);\n\n return Feed;\n}();\n\nvar feed = new Feed();\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).ready(function () {\n return feed.refresh();\n});\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-refresh=\"feed\"]', function (event) {\n event.preventDefault();\n feed.refresh(true);\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (feed);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3VwZGF0ZXMvZmVlZC5qcz9mMTVlIl0sIm5hbWVzIjpbIlVSSSIsImNvbmZpZyIsIkZlZWQiLCJkYXRhIiwicmVmcmVzaCIsImNhbGxiYWNrIiwicmVxdWVzdCIsIm1ldGhvZCIsImJvZHkiLCJyZXNwb25zZSIsImZlZWQiLCIkIiwibGVuZ3RoIiwibG9hZGVyIiwiZmluZCIsInJlbW92ZSIsInJlbW92ZUNsYXNzIiwiYWRkQ2xhc3MiLCJzaG93IiwiaGlkZSIsImVycm9yIiwiZmV0Y2giLCJ1cGRhdGVDb250ZW50IiwiYmluZCIsImNvbnRlbnQiLCJlbXB0eSIsInN0YXR1cyIsImFwcGVuZCIsIm1lc3NhZ2UiLCJmZWVkX2RhdGEiLCJkb2N1bWVudCIsInJlYWR5Iiwib24iLCJldmVudCIsInByZXZlbnREZWZhdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFFQSxJQUFNQSxHQUFHLGFBQU1DLGlFQUFOLDRCQUFnREEseURBQWhELGdCQUFUOztJQUVNQyxJO0FBQ0Ysa0JBQWM7QUFBQTs7QUFDVixTQUFLQyxJQUFMLEdBQVksSUFBWjtBQUNIOzs7O1dBRUQsaUJBQWlEO0FBQUE7O0FBQUEsVUFBM0NDLE9BQTJDLHVFQUFqQyxLQUFpQztBQUFBLFVBQTFCQyxRQUEwQix1RUFBZixZQUFXLENBQUUsQ0FBRTtBQUM3Q0MsNkRBQU8sQ0FBQ04sR0FBRCxFQUFNO0FBQ1RPLGNBQU0sRUFBRSxNQURDO0FBRVRDLFlBQUksRUFBRTtBQUFFSixpQkFBTyxFQUFQQTtBQUFGO0FBRkcsT0FBTixFQUdKLFVBQUNLLFFBQUQsRUFBYztBQUNiLGFBQUksQ0FBQ04sSUFBTCxHQUFZTSxRQUFaO0FBQ0FKLGdCQUFRLENBQUNJLFFBQUQsQ0FBUjtBQUNILE9BTk0sQ0FBUDtBQU9IOzs7V0FFRCxtQkFBeUI7QUFBQSxVQUFqQkwsUUFBaUIsdUVBQVAsS0FBTzs7QUFDckIsVUFBTU0sSUFBSSxHQUFHQyw2Q0FBQyxDQUFDLDRCQUFELENBQWQ7O0FBQ0EsVUFBSSxDQUFDRCxJQUFJLENBQUNFLE1BQVYsRUFBa0I7QUFBRTtBQUFTOztBQUU3QixVQUFJQyxNQUFNLEdBQUdILElBQUksQ0FBQ0ksSUFBTCxDQUFVLGdCQUFWLENBQWI7QUFDQUQsWUFBTSxDQUFDQyxJQUFQLENBQVksS0FBWixFQUFtQkMsTUFBbkI7QUFDQUYsWUFBTSxDQUFDQyxJQUFQLENBQVksYUFBWixFQUEyQkUsV0FBM0IsQ0FBdUMsWUFBdkMsRUFBcURDLFFBQXJELENBQThELG9CQUE5RDtBQUNBSixZQUFNLENBQUNLLElBQVA7QUFFQVIsVUFBSSxDQUFDSSxJQUFMLENBQVUsTUFBVixFQUFrQkssSUFBbEI7O0FBRUEsVUFBSSxDQUFDLEtBQUtoQixJQUFOLElBQWMsS0FBS0EsSUFBTCxDQUFVaUIsS0FBeEIsSUFBaUNoQixRQUFyQyxFQUE4QztBQUMxQyxhQUFLaUIsS0FBTCxDQUFXakIsUUFBWCxFQUFvQixLQUFLa0IsYUFBTCxDQUFtQkMsSUFBbkIsQ0FBd0IsSUFBeEIsQ0FBcEI7QUFDSCxPQUZELE1BRU87QUFDSCxhQUFLRCxhQUFMO0FBQ0g7QUFDSjs7O1dBRUQseUJBQWdCO0FBQ1osVUFBTVosSUFBSSxHQUFHQyw2Q0FBQyxDQUFDLDRCQUFELENBQWQ7O0FBQ0EsVUFBSSxDQUFDRCxJQUFJLENBQUNFLE1BQVYsRUFBa0I7QUFBRTtBQUFTOztBQUU3QixVQUFJQyxNQUFNLEdBQUdILElBQUksQ0FBQ0ksSUFBTCxDQUFVLGdCQUFWLEVBQTRCSyxJQUE1QixFQUFiO0FBQ0EsVUFBSUssT0FBTyxHQUFHZCxJQUFJLENBQUNJLElBQUwsQ0FBVSxNQUFWLEVBQWtCVyxLQUFsQixHQUEwQlAsSUFBMUIsRUFBZDs7QUFFQSxVQUFJLEtBQUtmLElBQUwsQ0FBVWlCLEtBQVYsSUFBbUIsS0FBS2pCLElBQUwsQ0FBVXVCLE1BQVYsS0FBcUIsT0FBNUMsRUFBcUQ7QUFDakRiLGNBQU0sQ0FBQ0ssSUFBUCxHQUFjSixJQUFkLENBQW1CLEtBQW5CLEVBQTBCQyxNQUExQjtBQUNBRixjQUFNLENBQUNDLElBQVAsQ0FBWSxhQUFaLEVBQTJCRSxXQUEzQixDQUF1QyxvQkFBdkMsRUFBNkRDLFFBQTdELENBQXNFLFlBQXRFO0FBQ0FKLGNBQU0sQ0FBQ2MsTUFBUCxnQkFBc0IsS0FBS3hCLElBQUwsQ0FBVWlCLEtBQVYsR0FBa0IsS0FBS2pCLElBQUwsQ0FBVWlCLEtBQVYsQ0FBZ0JRLE9BQWxDLEdBQTRDLEtBQUt6QixJQUFMLENBQVV5QixPQUFWLElBQXFCLDhCQUF2RjtBQUVBO0FBQ0g7O0FBRUQsVUFBSSxLQUFLekIsSUFBTCxJQUFhLEtBQUtBLElBQUwsQ0FBVTBCLFNBQTNCLEVBQXNDO0FBQ2xDTCxlQUFPLENBQUNHLE1BQVIsQ0FBZSxLQUFLeEIsSUFBTCxDQUFVMEIsU0FBekI7QUFDSDtBQUNKOzs7Ozs7QUFHTCxJQUFJbkIsSUFBSSxHQUFHLElBQUlSLElBQUosRUFBWDtBQUNBUyw2Q0FBQyxDQUFDbUIsUUFBRCxDQUFELENBQVlDLEtBQVosQ0FBa0I7QUFBQSxTQUFNckIsSUFBSSxDQUFDTixPQUFMLEVBQU47QUFBQSxDQUFsQjtBQUNBTyw2Q0FBQyxDQUFDbUIsUUFBRCxDQUFELENBQVlFLEVBQVosQ0FBZSxPQUFmLEVBQXdCLHVCQUF4QixFQUFpRCxVQUFDQyxLQUFELEVBQVc7QUFDeERBLE9BQUssQ0FBQ0MsY0FBTjtBQUNBeEIsTUFBSSxDQUFDTixPQUFMLENBQWEsSUFBYjtBQUNILENBSEQ7QUFLQSxpRUFBZU0sSUFBZiIsImZpbGUiOiIuL2FwcC91cGRhdGVzL2ZlZWQuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAnZ3Jhdi1jb25maWcnO1xuaW1wb3J0IHJlcXVlc3QgZnJvbSAnLi4vdXRpbHMvcmVxdWVzdCc7XG5cbmNvbnN0IFVSSSA9IGAke2NvbmZpZy5iYXNlX3VybF9yZWxhdGl2ZX0vYWpheC5qc29uL3Rhc2ske2NvbmZpZy5wYXJhbV9zZXB9Z2V0TmV3c0ZlZWRgO1xuXG5jbGFzcyBGZWVkIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5kYXRhID0gbnVsbDtcbiAgICB9XG5cbiAgICBmZXRjaChyZWZyZXNoID0gZmFsc2UsIGNhbGxiYWNrID0gZnVuY3Rpb24oKSB7fSkge1xuICAgICAgICByZXF1ZXN0KFVSSSwge1xuICAgICAgICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICAgICAgICBib2R5OiB7IHJlZnJlc2ggfVxuICAgICAgICB9LCAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGF0YSA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgY2FsbGJhY2socmVzcG9uc2UpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZWZyZXNoKHJlZnJlc2ggPSBmYWxzZSkge1xuICAgICAgICBjb25zdCBmZWVkID0gJCgnI25ld3MtZmVlZCAud2lkZ2V0LWNvbnRlbnQnKTtcbiAgICAgICAgaWYgKCFmZWVkLmxlbmd0aCkgeyByZXR1cm47IH1cblxuICAgICAgICBsZXQgbG9hZGVyID0gZmVlZC5maW5kKCcud2lkZ2V0LWxvYWRlcicpO1xuICAgICAgICBsb2FkZXIuZmluZCgnZGl2JykucmVtb3ZlKCk7XG4gICAgICAgIGxvYWRlci5maW5kKCcuZmEtd2FybmluZycpLnJlbW92ZUNsYXNzKCdmYS13YXJuaW5nJykuYWRkQ2xhc3MoJ2ZhLXJlZnJlc2ggZmEtc3BpbicpO1xuICAgICAgICBsb2FkZXIuc2hvdygpO1xuXG4gICAgICAgIGZlZWQuZmluZCgnPiB1bCcpLmhpZGUoKTtcblxuICAgICAgICBpZiAoIXRoaXMuZGF0YSB8fCB0aGlzLmRhdGEuZXJyb3IgfHwgcmVmcmVzaCkge1xuICAgICAgICAgICAgdGhpcy5mZXRjaChyZWZyZXNoLCB0aGlzLnVwZGF0ZUNvbnRlbnQuYmluZCh0aGlzKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZUNvbnRlbnQoKSB7XG4gICAgICAgIGNvbnN0IGZlZWQgPSAkKCcjbmV3cy1mZWVkIC53aWRnZXQtY29udGVudCcpO1xuICAgICAgICBpZiAoIWZlZWQubGVuZ3RoKSB7IHJldHVybjsgfVxuXG4gICAgICAgIGxldCBsb2FkZXIgPSBmZWVkLmZpbmQoJy53aWRnZXQtbG9hZGVyJykuaGlkZSgpO1xuICAgICAgICBsZXQgY29udGVudCA9IGZlZWQuZmluZCgnPiB1bCcpLmVtcHR5KCkuc2hvdygpO1xuXG4gICAgICAgIGlmICh0aGlzLmRhdGEuZXJyb3IgfHwgdGhpcy5kYXRhLnN0YXR1cyA9PT0gJ2Vycm9yJykge1xuICAgICAgICAgICAgbG9hZGVyLnNob3coKS5maW5kKCdkaXYnKS5yZW1vdmUoKTtcbiAgICAgICAgICAgIGxvYWRlci5maW5kKCcuZmEtcmVmcmVzaCcpLnJlbW92ZUNsYXNzKCdmYS1yZWZyZXNoIGZhLXNwaW4nKS5hZGRDbGFzcygnZmEtd2FybmluZycpO1xuICAgICAgICAgICAgbG9hZGVyLmFwcGVuZChgPGRpdj4ke3RoaXMuZGF0YS5lcnJvciA/IHRoaXMuZGF0YS5lcnJvci5tZXNzYWdlIDogdGhpcy5kYXRhLm1lc3NhZ2UgfHwgJ1VuYWJsZSB0byBkb3dubG9hZCBuZXdzIGZlZWQnfTwvZGl2PmApO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5kYXRhICYmIHRoaXMuZGF0YS5mZWVkX2RhdGEpIHtcbiAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kKHRoaXMuZGF0YS5mZWVkX2RhdGEpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5sZXQgZmVlZCA9IG5ldyBGZWVkKCk7XG4kKGRvY3VtZW50KS5yZWFkeSgoKSA9PiBmZWVkLnJlZnJlc2goKSk7XG4kKGRvY3VtZW50KS5vbignY2xpY2snLCAnW2RhdGEtcmVmcmVzaD1cImZlZWRcIl0nLCAoZXZlbnQpID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGZlZWQucmVmcmVzaCh0cnVlKTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBmZWVkO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/updates/feed.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/updates/index.js":
|
|
/*!******************************!*\
|
|
!*** ./app/updates/index.js ***!
|
|
\******************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Updates),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance),\n/* harmony export */ \"Notifications\": () => (/* reexport safe */ _notifications__WEBPACK_IMPORTED_MODULE_4__.default),\n/* harmony export */ \"Feed\": () => (/* reexport safe */ _feed__WEBPACK_IMPORTED_MODULE_5__.default)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var mout_array_unique__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mout/array/unique */ \"./node_modules/mout/array/unique.js\");\n/* harmony import */ var mout_array_unique__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(mout_array_unique__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _utils_gpm__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/gpm */ \"./app/utils/gpm.js\");\n/* harmony import */ var _notifications__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./notifications */ \"./app/updates/notifications.js\");\n/* harmony import */ var _feed__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./feed */ \"./app/updates/feed.js\");\n/* harmony import */ var _check__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./check */ \"./app/updates/check.js\");\n/* harmony import */ var _update__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./update */ \"./app/updates/update.js\");\n/* harmony import */ var _channel_switcher__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./channel-switcher */ \"./app/updates/channel-switcher.js\");\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); return Constructor; }\n\n\n\n\n\n\n\n\n\n\n\nvar Updates = /*#__PURE__*/function () {\n function Updates() {\n var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Updates);\n\n this.setPayload(payload);\n this.task = \"task\".concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.config.param_sep);\n this.updateURL = '';\n }\n\n _createClass(Updates, [{\n key: \"setPayload\",\n value: function setPayload() {\n var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.payload = payload;\n return this;\n }\n }, {\n key: \"fetch\",\n value: function fetch() {\n var _this = this;\n\n var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n _utils_gpm__WEBPACK_IMPORTED_MODULE_3__.Instance.fetch(function (response) {\n return _this.setPayload(response);\n }, force);\n return this;\n }\n }, {\n key: \"maintenance\",\n value: function maintenance() {\n var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'hide';\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#updates [data-update-packages]');\n element[mode === 'show' ? 'fadeIn' : 'fadeOut']();\n\n if (mode === 'hide') {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.badges.with-updates').removeClass('with-updates').find('.badge.updates').remove();\n }\n\n return this;\n }\n }, {\n key: \"grav\",\n value: function grav() {\n var payload = this.payload.grav;\n\n if (payload && payload.isUpdatable) {\n var task = this.task;\n var bar = '';\n\n if (!payload.isSymlink) {\n this.updateURL = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.config.base_url_relative, \"/update.json/\").concat(task, \"updategrav/admin-nonce\").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.config.param_sep).concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.config.admin_nonce);\n bar += \"<button data-remodal-target=\\\"update-grav\\\" class=\\\"button button-small secondary pointer-events-none\\\" id=\\\"grav-update-button\\\">\".concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.UPDATE_GRAV_NOW, \" <span class=\\\"cnt-down\\\">(5s)</span></button>\");\n } else {\n bar += \"<span class=\\\"hint--left\\\" style=\\\"float: right;\\\" data-hint=\\\"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.GRAV_SYMBOLICALLY_LINKED, \"\\\"><i class=\\\"fa fa-fw fa-link\\\"></i></span>\");\n }\n\n bar += \"\\n Grav <b>v\".concat(payload.available, \"</b> \").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.IS_NOW_AVAILABLE, \"! <span class=\\\"less\\\">(\").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.CURRENT, \" v\").concat(payload.version, \")</span>\\n \");\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-gpm-grav]').removeClass('hidden');\n\n if (element.is(':empty')) {\n element.hide();\n }\n\n element.addClass('grav').html(\"\".concat(bar)).slideDown(150, function () {\n var c = 5;\n var x = setInterval(function () {\n c -= 1;\n element.find('.pointer-events-none .cnt-down').text('(' + c + 's)');\n }, 1000);\n setTimeout(function () {\n clearInterval(x);\n element.find('.pointer-events-none .cnt-down').remove();\n element.find('.pointer-events-none').removeClass('pointer-events-none');\n }, 5000);\n }).parent('#messages').addClass('default-box-shadow');\n }\n\n return this;\n }\n }, {\n key: \"resources\",\n value: function resources() {\n if (!this.payload || !this.payload.resources || !this.payload.resources.total) {\n return this.maintenance('hide');\n }\n\n var is_current_package_latest = true;\n var map = ['plugins', 'themes'];\n var singles = ['plugin', 'theme'];\n var _this$payload$resourc = this.payload.resources,\n plugins = _this$payload$resourc.plugins,\n themes = _this$payload$resourc.themes;\n\n if (!this.payload.resources.total) {\n return this;\n }\n\n [plugins, themes].forEach(function (resources, index) {\n if (!resources || Array.isArray(resources)) {\n return;\n }\n\n var length = Object.keys(resources).length;\n var type = map[index]; // sidebar\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#admin-menu a[href$=\\\"/\".concat(map[index], \"\\\"]\")).find('.badges').addClass('with-updates').find('.badge.updates').text(length);\n var type_translation = ''; // update all\n\n if (type === 'plugins') {\n type_translation = grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.PLUGINS;\n } else {\n type_translation = grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.THEMES;\n }\n\n var updateAll = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\".grav-update.\".concat(type));\n updateAll.css('display', 'block').html(\"\\n <p>\\n <a href=\\\"#\\\" class=\\\"button button-small secondary\\\" data-remodal-target=\\\"update-packages\\\" data-packages-slugs=\\\"\".concat(Object.keys(resources).join(), \"\\\" data-\").concat(singles[index], \"-action=\\\"start-packages-update\\\">\").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.UPDATE, \" \").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.ALL, \" \").concat(type_translation, \"</a>\\n <i class=\\\"fa fa-bullhorn\\\"></i>\\n \").concat(length, \" \").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.OF_YOUR, \" \").concat(type_translation.toLowerCase(), \" \").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.HAVE_AN_UPDATE_AVAILABLE, \"\\n </p>\\n \"));\n var existing_slugs = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-update-packages]').attr('data-packages-slugs') || '';\n\n if (existing_slugs) {\n existing_slugs = existing_slugs.split(',');\n } else {\n existing_slugs = [];\n }\n\n var slugs = mout_array_unique__WEBPACK_IMPORTED_MODULE_1___default()(existing_slugs.concat(Object.keys(resources))).join();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-update-packages]').attr('data-packages-slugs', \"\".concat(slugs));\n Object.keys(resources).forEach(function (item) {\n // listing page\n var container = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-gpm-\".concat(singles[index], \"=\\\"\").concat(item, \"\\\"]\"));\n var element = container.find('.gpm-name');\n var url = element.find('a');\n var content_wrapper = container.parents('.content-wrapper');\n\n if (type === 'plugins' && !element.find('.badge.update').length) {\n element.append(\"<a class=\\\"plugin-update-button\\\" href=\\\"\".concat(url.attr('href'), \"\\\"><span class=\\\"badge update\\\">\").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.UPDATE_AVAILABLE, \"!</span></a>\"));\n content_wrapper.addClass('has-updates');\n } else if (type === 'themes') {\n element.append(\"<div class=\\\"gpm-ribbon\\\"><a href=\\\"\".concat(url.attr('href'), \"\\\">\").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.UPDATE.toUpperCase(), \"</a></div>\"));\n content_wrapper.addClass('has-updates');\n } // details page\n\n\n if (container.length) {\n var details = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\".grav-update.\".concat(singles[index]));\n\n if (details.length) {\n var releaseType = resources[item].type === 'testing' ? '<span class=\"gpm-testing\">test release</span>' : '';\n details.html(\"\\n <p>\\n <a href=\\\"#\\\" class=\\\"button button-small secondary\\\" data-remodal-target=\\\"update-packages\\\" data-packages-slugs=\\\"\".concat(item, \"\\\" data-\").concat(singles[index], \"-action=\\\"start-package-installation\\\">\").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.UPDATE, \" \").concat(singles[index].charAt(0).toUpperCase() + singles[index].substr(1).toLowerCase(), \"</a>\\n <i class=\\\"fa fa-bullhorn\\\"></i>\\n <strong>v\").concat(resources[item].available, \"</strong> \").concat(releaseType, \" \").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.OF_THIS, \" \").concat(singles[index], \" \").concat(grav_config__WEBPACK_IMPORTED_MODULE_2__.translations.PLUGIN_ADMIN.IS_NOW_AVAILABLE, \"!\\n </p>\\n \")).css('display', 'block');\n is_current_package_latest = false;\n }\n }\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-update-packages]').removeClass('hidden');\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.content-wrapper').addClass('updates-checked');\n\n if (!is_current_package_latest) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.warning-reinstall-not-latest-release').removeClass('hidden');\n }\n }\n }]);\n\n return Updates;\n}();\n\n\nvar Instance = new Updates();\n // automatically refresh UI for updates (graph, sidebar, plugin/themes pages) after every fetch\n\n_utils_gpm__WEBPACK_IMPORTED_MODULE_3__.Instance.on('fetched', function (response, raw) {\n Instance.setPayload(response.payload || {});\n Instance.grav().resources();\n});\n\nif (grav_config__WEBPACK_IMPORTED_MODULE_2__.config.enable_auto_updates_check === '1') {\n _utils_gpm__WEBPACK_IMPORTED_MODULE_3__.Instance.fetch();\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3VwZGF0ZXMvaW5kZXguanM/MjBmMCJdLCJuYW1lcyI6WyJVcGRhdGVzIiwicGF5bG9hZCIsInNldFBheWxvYWQiLCJ0YXNrIiwiY29uZmlnIiwidXBkYXRlVVJMIiwiZm9yY2UiLCJncG0iLCJyZXNwb25zZSIsIm1vZGUiLCJlbGVtZW50IiwiJCIsInJlbW92ZUNsYXNzIiwiZmluZCIsInJlbW92ZSIsImdyYXYiLCJpc1VwZGF0YWJsZSIsImJhciIsImlzU3ltbGluayIsInRyYW5zbGF0aW9ucyIsImF2YWlsYWJsZSIsInZlcnNpb24iLCJpcyIsImhpZGUiLCJhZGRDbGFzcyIsImh0bWwiLCJzbGlkZURvd24iLCJjIiwieCIsInNldEludGVydmFsIiwidGV4dCIsInNldFRpbWVvdXQiLCJjbGVhckludGVydmFsIiwicGFyZW50IiwicmVzb3VyY2VzIiwidG90YWwiLCJtYWludGVuYW5jZSIsImlzX2N1cnJlbnRfcGFja2FnZV9sYXRlc3QiLCJtYXAiLCJzaW5nbGVzIiwicGx1Z2lucyIsInRoZW1lcyIsImZvckVhY2giLCJpbmRleCIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsIk9iamVjdCIsImtleXMiLCJ0eXBlIiwidHlwZV90cmFuc2xhdGlvbiIsInVwZGF0ZUFsbCIsImNzcyIsImpvaW4iLCJ0b0xvd2VyQ2FzZSIsImV4aXN0aW5nX3NsdWdzIiwiYXR0ciIsInNwbGl0Iiwic2x1Z3MiLCJ1bmlxdWUiLCJjb25jYXQiLCJpdGVtIiwiY29udGFpbmVyIiwidXJsIiwiY29udGVudF93cmFwcGVyIiwicGFyZW50cyIsImFwcGVuZCIsImRldGFpbHMiLCJyZWxlYXNlVHlwZSIsImNoYXJBdCIsInRvVXBwZXJDYXNlIiwic3Vic3RyIiwiSW5zdGFuY2UiLCJyYXciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7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SUFBVCxHQUFnQm1CLFNBQWhCO0FBQ0gsQ0FIRDs7QUFLQSxJQUFJOUIseUVBQUEsS0FBcUMsR0FBekMsRUFBOEM7QUFDMUNHLHdEQUFBO0FBQ0giLCJmaWxlIjoiLi9hcHAvdXBkYXRlcy9pbmRleC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgdW5pcXVlIGZyb20gJ21vdXQvYXJyYXkvdW5pcXVlJztcbmltcG9ydCB7IGNvbmZpZywgdHJhbnNsYXRpb25zIH0gZnJvbSAnZ3Jhdi1jb25maWcnO1xuaW1wb3J0IHsgSW5zdGFuY2UgYXMgZ3BtIH0gZnJvbSAnLi4vdXRpbHMvZ3BtJztcbmltcG9ydCBOb3RpZmljYXRpb25zIGZyb20gJy4vbm90aWZpY2F0aW9ucyc7XG5cbmltcG9ydCBGZWVkIGZyb20gJy4vZmVlZCc7XG5pbXBvcnQgJy4vY2hlY2snO1xuaW1wb3J0ICcuL3VwZGF0ZSc7XG5pbXBvcnQgJy4vY2hhbm5lbC1zd2l0Y2hlcic7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFVwZGF0ZXMge1xuICAgIGNvbnN0cnVjdG9yKHBheWxvYWQgPSB7fSkge1xuICAgICAgICB0aGlzLnNldFBheWxvYWQocGF5bG9hZCk7XG4gICAgICAgIHRoaXMudGFzayA9IGB0YXNrJHtjb25maWcucGFyYW1fc2VwfWA7XG4gICAgICAgIHRoaXMudXBkYXRlVVJMID0gJyc7XG4gICAgfVxuXG4gICAgc2V0UGF5bG9hZChwYXlsb2FkID0ge30pIHtcbiAgICAgICAgdGhpcy5wYXlsb2FkID0gcGF5bG9hZDtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBmZXRjaChmb3JjZSA9IGZhbHNlKSB7XG4gICAgICAgIGdwbS5mZXRjaCgocmVzcG9uc2UpID0+IHRoaXMuc2V0UGF5bG9hZChyZXNwb25zZSksIGZvcmNlKTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBtYWludGVuYW5jZShtb2RlID0gJ2hpZGUnKSB7XG4gICAgICAgIGxldCBlbGVtZW50ID0gJCgnI3VwZGF0ZXMgW2RhdGEtdXBkYXRlLXBhY2thZ2VzXScpO1xuXG4gICAgICAgIGVsZW1lbnRbbW9kZSA9PT0gJ3Nob3cnID8gJ2ZhZGVJbicgOiAnZmFkZU91dCddKCk7XG5cbiAgICAgICAgaWYgKG1vZGUgPT09ICdoaWRlJykge1xuICAgICAgICAgICAgJCgnLmJhZGdlcy53aXRoLXVwZGF0ZXMnKS5yZW1vdmVDbGFzcygnd2l0aC11cGRhdGVzJykuZmluZCgnLmJhZGdlLnVwZGF0ZXMnKS5yZW1vdmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGdyYXYoKSB7XG4gICAgICAgIGxldCBwYXlsb2FkID0gdGhpcy5wYXlsb2FkLmdyYXY7XG5cbiAgICAgICAgaWYgKHBheWxvYWQgJiYgcGF5bG9hZC5pc1VwZGF0YWJsZSkge1xuICAgICAgICAgICAgbGV0IHRhc2sgPSB0aGlzLnRhc2s7XG4gICAgICAgICAgICBsZXQgYmFyID0gJyc7XG5cbiAgICAgICAgICAgIGlmICghcGF5bG9hZC5pc1N5bWxpbmspIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVVSTCA9IGAke2NvbmZpZy5iYXNlX3VybF9yZWxhdGl2ZX0vdXBkYXRlLmpzb24vJHt0YXNrfXVwZGF0ZWdyYXYvYWRtaW4tbm9uY2Uke2NvbmZpZy5wYXJhbV9zZXB9JHtjb25maWcuYWRtaW5fbm9uY2V9YDtcbiAgICAgICAgICAgICAgICBiYXIgKz0gYDxidXR0b24gZGF0YS1yZW1vZGFsLXRhcmdldD1cInVwZGF0ZS1ncmF2XCIgY2xhc3M9XCJidXR0b24gYnV0dG9uLXNtYWxsIHNlY29uZGFyeSBwb2ludGVyLWV2ZW50cy1ub25lXCIgaWQ9XCJncmF2LXVwZGF0ZS1idXR0b25cIj4ke3RyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uVVBEQVRFX0dSQVZfTk9XfSA8c3BhbiBjbGFzcz1cImNudC1kb3duXCI+KDVzKTwvc3Bhbj48L2J1dHRvbj5gO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBiYXIgKz0gYDxzcGFuIGNsYXNzPVwiaGludC0tbGVmdFwiIHN0eWxlPVwiZmxvYXQ6IHJpZ2h0O1wiIGRhdGEtaGludD1cIiR7dHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5HUkFWX1NZTUJPTElDQUxMWV9MSU5LRUR9XCI+PGkgY2xhc3M9XCJmYSBmYS1mdyBmYS1saW5rXCI+PC9pPjwvc3Bhbj5gO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBiYXIgKz0gYFxuICAgICAgICAgICAgICAgIEdyYXYgPGI+diR7cGF5bG9hZC5hdmFpbGFibGV9PC9iPiAke3RyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uSVNfTk9XX0FWQUlMQUJMRX0hIDxzcGFuIGNsYXNzPVwibGVzc1wiPigke3RyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uQ1VSUkVOVH0gdiR7cGF5bG9hZC52ZXJzaW9ufSk8L3NwYW4+XG4gICAgICAgICAgICBgO1xuXG4gICAgICAgICAgICBsZXQgZWxlbWVudCA9ICQoJ1tkYXRhLWdwbS1ncmF2XScpLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTtcblxuICAgICAgICAgICAgaWYgKGVsZW1lbnQuaXMoJzplbXB0eScpKSB7XG4gICAgICAgICAgICAgICAgZWxlbWVudC5oaWRlKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGVsZW1lbnRcbiAgICAgICAgICAgICAgICAuYWRkQ2xhc3MoJ2dyYXYnKVxuICAgICAgICAgICAgICAgIC5odG1sKGAke2Jhcn1gKVxuICAgICAgICAgICAgICAgIC5zbGlkZURvd24oMTUwLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGMgPSA1O1xuICAgICAgICAgICAgICAgICAgICB2YXIgeCA9IHNldEludGVydmFsKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYyAtPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKCcucG9pbnRlci1ldmVudHMtbm9uZSAuY250LWRvd24nKS50ZXh0KCcoJyArIGMgKyAncyknKTtcbiAgICAgICAgICAgICAgICAgICAgfSwgMTAwMCk7XG5cbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoeCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoJy5wb2ludGVyLWV2ZW50cy1ub25lIC5jbnQtZG93bicpLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKCcucG9pbnRlci1ldmVudHMtbm9uZScpLnJlbW92ZUNsYXNzKCdwb2ludGVyLWV2ZW50cy1ub25lJyk7XG4gICAgICAgICAgICAgICAgICAgIH0sIDUwMDApO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnBhcmVudCgnI21lc3NhZ2VzJykuYWRkQ2xhc3MoJ2RlZmF1bHQtYm94LXNoYWRvdycpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcmVzb3VyY2VzKCkge1xuICAgICAgICBpZiAoIXRoaXMucGF5bG9hZCB8fCAhdGhpcy5wYXlsb2FkLnJlc291cmNlcyB8fCAhdGhpcy5wYXlsb2FkLnJlc291cmNlcy50b3RhbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubWFpbnRlbmFuY2UoJ2hpZGUnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBpc19jdXJyZW50X3BhY2thZ2VfbGF0ZXN0ID0gdHJ1ZTtcbiAgICAgICAgbGV0IG1hcCA9IFsncGx1Z2lucycsICd0aGVtZXMnXTtcbiAgICAgICAgbGV0IHNpbmdsZXMgPSBbJ3BsdWdpbicsICd0aGVtZSddO1xuICAgICAgICBsZXQgeyBwbHVnaW5zLCB0aGVtZXMgfSA9IHRoaXMucGF5bG9hZC5yZXNvdXJjZXM7XG5cbiAgICAgICAgaWYgKCF0aGlzLnBheWxvYWQucmVzb3VyY2VzLnRvdGFsKSB7IHJldHVybiB0aGlzOyB9XG5cbiAgICAgICAgW3BsdWdpbnMsIHRoZW1lc10uZm9yRWFjaChmdW5jdGlvbihyZXNvdXJjZXMsIGluZGV4KSB7XG4gICAgICAgICAgICBpZiAoIXJlc291cmNlcyB8fCBBcnJheS5pc0FycmF5KHJlc291cmNlcykpIHsgcmV0dXJuOyB9XG4gICAgICAgICAgICBsZXQgbGVuZ3RoID0gT2JqZWN0LmtleXMocmVzb3VyY2VzKS5sZW5ndGg7XG4gICAgICAgICAgICBsZXQgdHlwZSA9IG1hcFtpbmRleF07XG5cbiAgICAgICAgICAgIC8vIHNpZGViYXJcbiAgICAgICAgICAgICQoYCNhZG1pbi1tZW51IGFbaHJlZiQ9XCIvJHttYXBbaW5kZXhdfVwiXWApXG4gICAgICAgICAgICAgICAgLmZpbmQoJy5iYWRnZXMnKVxuICAgICAgICAgICAgICAgIC5hZGRDbGFzcygnd2l0aC11cGRhdGVzJylcbiAgICAgICAgICAgICAgICAuZmluZCgnLmJhZGdlLnVwZGF0ZXMnKS50ZXh0KGxlbmd0aCk7XG5cbiAgICAgICAgICAgIHZhciB0eXBlX3RyYW5zbGF0aW9uID0gJyc7XG4gICAgICAgICAgICAvLyB1cGRhdGUgYWxsXG5cbiAgICAgICAgICAgIGlmICh0eXBlID09PSAncGx1Z2lucycpIHtcbiAgICAgICAgICAgICAgICB0eXBlX3RyYW5zbGF0aW9uID0gdHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5QTFVHSU5TO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0eXBlX3RyYW5zbGF0aW9uID0gdHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5USEVNRVM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxldCB1cGRhdGVBbGwgPSAkKGAuZ3Jhdi11cGRhdGUuJHt0eXBlfWApO1xuICAgICAgICAgICAgdXBkYXRlQWxsLmNzcygnZGlzcGxheScsICdibG9jaycpLmh0bWwoYFxuICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cIiNcIiBjbGFzcz1cImJ1dHRvbiBidXR0b24tc21hbGwgc2Vjb25kYXJ5XCIgZGF0YS1yZW1vZGFsLXRhcmdldD1cInVwZGF0ZS1wYWNrYWdlc1wiIGRhdGEtcGFja2FnZXMtc2x1Z3M9XCIke09iamVjdC5rZXlzKHJlc291cmNlcykuam9pbigpfVwiIGRhdGEtJHtzaW5nbGVzW2luZGV4XX0tYWN0aW9uPVwic3RhcnQtcGFja2FnZXMtdXBkYXRlXCI+JHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLlVQREFURX0gJHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLkFMTH0gJHt0eXBlX3RyYW5zbGF0aW9ufTwvYT5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWJ1bGxob3JuXCI+PC9pPlxuICAgICAgICAgICAgICAgICR7bGVuZ3RofSAke3RyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uT0ZfWU9VUn0gJHt0eXBlX3RyYW5zbGF0aW9uLnRvTG93ZXJDYXNlKCl9ICR7dHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5IQVZFX0FOX1VQREFURV9BVkFJTEFCTEV9XG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICBgKTtcblxuICAgICAgICAgICAgbGV0IGV4aXN0aW5nX3NsdWdzID0gJCgnW2RhdGEtdXBkYXRlLXBhY2thZ2VzXScpLmF0dHIoJ2RhdGEtcGFja2FnZXMtc2x1Z3MnKSB8fCAnJztcblxuICAgICAgICAgICAgaWYgKGV4aXN0aW5nX3NsdWdzKSB7XG4gICAgICAgICAgICAgICAgZXhpc3Rpbmdfc2x1Z3MgPSBleGlzdGluZ19zbHVncy5zcGxpdCgnLCcpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBleGlzdGluZ19zbHVncyA9IFtdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsZXQgc2x1Z3MgPSB1bmlxdWUoZXhpc3Rpbmdfc2x1Z3MuY29uY2F0KE9iamVjdC5rZXlzKHJlc291cmNlcykpKS5qb2luKCk7XG4gICAgICAgICAgICAkKCdbZGF0YS11cGRhdGUtcGFja2FnZXNdJykuYXR0cignZGF0YS1wYWNrYWdlcy1zbHVncycsIGAke3NsdWdzfWApO1xuXG4gICAgICAgICAgICBPYmplY3Qua2V5cyhyZXNvdXJjZXMpLmZvckVhY2goZnVuY3Rpb24oaXRlbSkge1xuICAgICAgICAgICAgICAgIC8vIGxpc3RpbmcgcGFnZVxuICAgICAgICAgICAgICAgIGxldCBjb250YWluZXIgPSAkKGBbZGF0YS1ncG0tJHtzaW5nbGVzW2luZGV4XX09XCIke2l0ZW19XCJdYCk7XG4gICAgICAgICAgICAgICAgbGV0IGVsZW1lbnQgPSBjb250YWluZXIuZmluZCgnLmdwbS1uYW1lJyk7XG4gICAgICAgICAgICAgICAgbGV0IHVybCA9IGVsZW1lbnQuZmluZCgnYScpO1xuICAgICAgICAgICAgICAgIGxldCBjb250ZW50X3dyYXBwZXIgPSBjb250YWluZXIucGFyZW50cygnLmNvbnRlbnQtd3JhcHBlcicpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdwbHVnaW5zJyAmJiAhZWxlbWVudC5maW5kKCcuYmFkZ2UudXBkYXRlJykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuYXBwZW5kKGA8YSBjbGFzcz1cInBsdWdpbi11cGRhdGUtYnV0dG9uXCIgaHJlZj1cIiR7dXJsLmF0dHIoJ2hyZWYnKX1cIj48c3BhbiBjbGFzcz1cImJhZGdlIHVwZGF0ZVwiPiR7dHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5VUERBVEVfQVZBSUxBQkxFfSE8L3NwYW4+PC9hPmApO1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50X3dyYXBwZXIuYWRkQ2xhc3MoJ2hhcy11cGRhdGVzJyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAndGhlbWVzJykge1xuICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmFwcGVuZChgPGRpdiBjbGFzcz1cImdwbS1yaWJib25cIj48YSBocmVmPVwiJHt1cmwuYXR0cignaHJlZicpfVwiPiR7dHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5VUERBVEUudG9VcHBlckNhc2UoKX08L2E+PC9kaXY+YCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfd3JhcHBlci5hZGRDbGFzcygnaGFzLXVwZGF0ZXMnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBkZXRhaWxzIHBhZ2VcbiAgICAgICAgICAgICAgICBpZiAoY29udGFpbmVyLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZGV0YWlscyA9ICQoYC5ncmF2LXVwZGF0ZS4ke3NpbmdsZXNbaW5kZXhdfWApO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGV0YWlscy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZWxlYXNlVHlwZSA9IHJlc291cmNlc1tpdGVtXS50eXBlID09PSAndGVzdGluZycgPyAnPHNwYW4gY2xhc3M9XCJncG0tdGVzdGluZ1wiPnRlc3QgcmVsZWFzZTwvc3Bhbj4nIDogJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzLmh0bWwoYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiI1wiIGNsYXNzPVwiYnV0dG9uIGJ1dHRvbi1zbWFsbCBzZWNvbmRhcnlcIiBkYXRhLXJlbW9kYWwtdGFyZ2V0PVwidXBkYXRlLXBhY2thZ2VzXCIgZGF0YS1wYWNrYWdlcy1zbHVncz1cIiR7aXRlbX1cIiBkYXRhLSR7c2luZ2xlc1tpbmRleF19LWFjdGlvbj1cInN0YXJ0LXBhY2thZ2UtaW5zdGFsbGF0aW9uXCI+JHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLlVQREFURX0gJHtzaW5nbGVzW2luZGV4XS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHNpbmdsZXNbaW5kZXhdLnN1YnN0cigxKS50b0xvd2VyQ2FzZSgpfTwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1idWxsaG9yblwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz52JHtyZXNvdXJjZXNbaXRlbV0uYXZhaWxhYmxlfTwvc3Ryb25nPiAke3JlbGVhc2VUeXBlfSAke3RyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uT0ZfVEhJU30gJHtzaW5nbGVzW2luZGV4XX0gJHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLklTX05PV19BVkFJTEFCTEV9IVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIGApLmNzcygnZGlzcGxheScsICdibG9jaycpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpc19jdXJyZW50X3BhY2thZ2VfbGF0ZXN0ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgJCgnW2RhdGEtdXBkYXRlLXBhY2thZ2VzXScpLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgJCgnLmNvbnRlbnQtd3JhcHBlcicpLmFkZENsYXNzKCd1cGRhdGVzLWNoZWNrZWQnKTtcblxuICAgICAgICBpZiAoIWlzX2N1cnJlbnRfcGFja2FnZV9sYXRlc3QpIHtcbiAgICAgICAgICAgICQoJy53YXJuaW5nLXJlaW5zdGFsbC1ub3QtbGF0ZXN0LXJlbGVhc2UnKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmxldCBJbnN0YW5jZSA9IG5ldyBVcGRhdGVzKCk7XG5leHBvcnQgeyBJbnN0YW5jZSwgTm90aWZpY2F0aW9ucywgRmVlZCB9O1xuXG4vLyBhdXRvbWF0aWNhbGx5IHJlZnJlc2ggVUkgZm9yIHVwZGF0ZXMgKGdyYXBoLCBzaWRlYmFyLCBwbHVnaW4vdGhlbWVzIHBhZ2VzKSBhZnRlciBldmVyeSBmZXRjaFxuZ3BtLm9uKCdmZXRjaGVkJywgKHJlc3BvbnNlLCByYXcpID0+IHtcbiAgICBJbnN0YW5jZS5zZXRQYXlsb2FkKHJlc3BvbnNlLnBheWxvYWQgfHwge30pO1xuICAgIEluc3RhbmNlLmdyYXYoKS5yZXNvdXJjZXMoKTtcbn0pO1xuXG5pZiAoY29uZmlnLmVuYWJsZV9hdXRvX3VwZGF0ZXNfY2hlY2sgPT09ICcxJykge1xuICAgIGdwbS5mZXRjaCgpO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/updates/index.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/updates/notifications.js":
|
|
/*!**************************************!*\
|
|
!*** ./app/updates/notifications.js ***!
|
|
\**************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/request */ \"./app/utils/request.js\");\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); return Constructor; }\n\n\n\n\n\nvar canFetchNotifications = function canFetchNotifications() {\n return grav_config__WEBPACK_IMPORTED_MODULE_1__.config.notifications.enabled;\n};\n\nvar notificationsFilters = function notificationsFilters() {\n return grav_config__WEBPACK_IMPORTED_MODULE_1__.config.notifications.filters;\n};\n\nvar Notifications = /*#__PURE__*/function () {\n function Notifications() {\n _classCallCheck(this, Notifications);\n }\n\n _createClass(Notifications, [{\n key: \"fetch\",\n value: // Grav.default.Notifications.fetch()\n function fetch() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$filter = _ref.filter,\n filter = _ref$filter === void 0 ? notificationsFilters() : _ref$filter,\n _ref$refresh = _ref.refresh,\n refresh = _ref$refresh === void 0 ? false : _ref$refresh;\n\n if (!canFetchNotifications()) {\n return false;\n }\n\n var feed = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#notifications');\n var loader = feed.find('.widget-loader');\n var content = feed.find('.widget-content > ul');\n loader.find('div').remove();\n loader.find('.fa-warning').removeClass('fa-warning').addClass('fa-refresh fa-spin');\n loader.show();\n content.hide();\n\n var processNotifications = function processNotifications(response) {\n var notifications = response.notifications;\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('#notifications').find('.widget-content > ul').empty();\n\n if (notifications) {\n Object.keys(notifications).forEach(function (location) {\n return Notifications.processLocation(location, notifications[location]);\n });\n }\n };\n\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__.default)(\"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep, \"getNotifications\"), {\n method: 'post',\n body: {\n refresh: refresh,\n filter: filter\n }\n }, function (response) {\n processNotifications(response);\n })[\"catch\"](function () {\n var widget = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#notifications .widget-content');\n widget.find('.widget-loader').find('div').remove();\n widget.find('.widget-loader').append('<div>Failed to retrieve notifications</div>').find('.fa-spin').removeClass('fa-spin fa-refresh').addClass('fa-warning');\n });\n }\n }], [{\n key: \"addShowAllInFeed\",\n value: function addShowAllInFeed() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('#notifications ul').append('<li class=\"show-all\" data-notification-action=\"show-all-notifications\">Show all</li>');\n }\n }, {\n key: \"showNotificationInFeed\",\n value: function showNotificationInFeed(notification) {\n var notifications = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#notifications').removeClass('hidden');\n var loader = notifications.find('.widget-loader').hide();\n var content = notifications.find('.widget-content > ul').show();\n loader.find('div').remove();\n loader.find('.fa-warning').removeClass('fa-warning').addClass('fa-refresh fa-spin');\n content.append(notification).find('li:nth-child(n+11)').addClass('hidden'); // hide all items > 10\n\n if (content.find('li.hidden').length) {\n Notifications.addShowAllInFeed();\n }\n }\n }, {\n key: \"showNotificationInTop\",\n value: function showNotificationInTop(notification) {\n var container = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.top-notifications-container');\n var dummy = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div />').html(notification);\n container.removeClass('hidden').append(dummy.children());\n dummy.children().slideDown(150);\n }\n }, {\n key: \"showNotificationInDashboard\",\n value: function showNotificationInDashboard(notification) {\n var container = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.dashboard-notifications-container');\n var dummy = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div />').html(notification);\n container.removeClass('hidden').append(dummy.children());\n dummy.children().slideDown(150);\n }\n }, {\n key: \"showNotificationInPlugins\",\n value: function showNotificationInPlugins(notification) {\n var container = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.plugins-notifications-container');\n var dummy = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div />').html(notification);\n container.removeClass('hidden').append(dummy.children());\n dummy.children().slideDown(150);\n }\n }, {\n key: \"showNotificationInThemes\",\n value: function showNotificationInThemes(notification) {\n var container = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.themes-notifications-container');\n var dummy = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div />').html(notification);\n container.removeClass('hidden').append(dummy.children());\n dummy.children().slideDown(150);\n }\n }, {\n key: \"processLocation\",\n value: function processLocation(location, notification) {\n switch (location) {\n case 'feed':\n Notifications.showNotificationInFeed(notification);\n break;\n\n case 'top':\n if (!notification.read) {\n Notifications.showNotificationInTop(notification);\n }\n\n break;\n\n case 'dashboard':\n if (!notification.read) {\n Notifications.showNotificationInDashboard(notification);\n }\n\n break;\n\n case 'plugins':\n if (!notification.read) {\n Notifications.showNotificationInPlugins(notification);\n }\n\n break;\n\n case 'themes':\n if (!notification.read) {\n Notifications.showNotificationInThemes(notification);\n }\n\n break;\n }\n }\n }]);\n\n return Notifications;\n}();\n\nvar notifications = new Notifications();\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (notifications);\n\nif (canFetchNotifications()) {\n notifications.fetch();\n /* Hide a notification and store it hidden */\n // <a href=\"#\" data-notification-action=\"hide-notification\" data-notification-id=\"${notification.id}\" class=\"close hide-notification\"><i class=\"fa fa-close\"></i></a>\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-notification-action=\"hide-notification\"]', function (event) {\n var notification_id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).parents('.hide-notification').data('notification-id');\n var url = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/notifications.json/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep, \"hideNotification/notification_id\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep).concat(notification_id);\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__.default)(url, {\n method: 'post'\n }, function () {});\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).parents('.single-notification').hide();\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-notification-action=\"hide-notification\"]', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var notification = target.parent();\n notification.slideUp(function () {\n return notification.remove();\n });\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-notification-action=\"show-all-notifications\"]', function (event) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('#notifications .show-all').hide();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('#notifications .hidden').removeClass('hidden');\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-refresh=\"notifications\"]', function (event) {\n event.preventDefault();\n notifications.fetch({\n filter: ['feed'],\n refresh: true\n });\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3VwZGF0ZXMvbm90aWZpY2F0aW9ucy5qcz9mYmNkIl0sIm5hbWVzIjpbImNhbkZldGNoTm90aWZpY2F0aW9ucyIsImNvbmZpZyIsIm5vdGlmaWNhdGlvbnNGaWx0ZXJzIiwiTm90aWZpY2F0aW9ucyIsImZpbHRlciIsInJlZnJlc2giLCJmZWVkIiwiJCIsImxvYWRlciIsImZpbmQiLCJjb250ZW50IiwicmVtb3ZlIiwicmVtb3ZlQ2xhc3MiLCJhZGRDbGFzcyIsInNob3ciLCJoaWRlIiwicHJvY2Vzc05vdGlmaWNhdGlvbnMiLCJyZXNwb25zZSIsIm5vdGlmaWNhdGlvbnMiLCJlbXB0eSIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwibG9jYXRpb24iLCJwcm9jZXNzTG9jYXRpb24iLCJyZXF1ZXN0IiwibWV0aG9kIiwiYm9keSIsIndpZGdldCIsImFwcGVuZCIsIm5vdGlmaWNhdGlvbiIsImxlbmd0aCIsImFkZFNob3dBbGxJbkZlZWQiLCJjb250YWluZXIiLCJkdW1teSIsImh0bWwiLCJjaGlsZHJlbiIsInNsaWRlRG93biIsInNob3dOb3RpZmljYXRpb25JbkZlZWQiLCJyZWFkIiwic2hvd05vdGlmaWNhdGlvbkluVG9wIiwic2hvd05vdGlmaWNhdGlvbkluRGFzaGJvYXJkIiwic2hvd05vdGlmaWNhdGlvbkluUGx1Z2lucyIsInNob3dOb3RpZmljYXRpb25JblRoZW1lcyIsImZldGNoIiwiZG9jdW1lbnQiLCJvbiIsImV2ZW50Iiwibm90aWZpY2F0aW9uX2lkIiwidGFyZ2V0IiwicGFyZW50cyIsImRhdGEiLCJ1cmwiLCJjdXJyZW50VGFyZ2V0IiwicGFyZW50Iiwic2xpZGVVcCIsInByZXZlbnREZWZhdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7O0FBRUEsSUFBTUEscUJBQXFCLEdBQUcsU0FBeEJBLHFCQUF3QjtBQUFBLFNBQU1DLHFFQUFOO0FBQUEsQ0FBOUI7O0FB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LE1BQVAsRUFBckI7QUFFQXhCLGdCQUFZLENBQUN5QixPQUFiLENBQXFCO0FBQUEsYUFBTXpCLFlBQVksQ0FBQ25CLE1BQWIsRUFBTjtBQUFBLEtBQXJCO0FBQ0gsR0FMRDtBQU9BSiwrQ0FBQyxDQUFDc0MsUUFBRCxDQUFELENBQVlDLEVBQVosQ0FBZSxPQUFmLEVBQXdCLHFEQUF4QixFQUErRSxVQUFDQyxLQUFELEVBQVc7QUFDdEZ4QyxpREFBQyxDQUFDLDBCQUFELENBQUQsQ0FBOEJRLElBQTlCO0FBQ0FSLGlEQUFDLENBQUMsd0JBQUQsQ0FBRCxDQUE0QkssV0FBNUIsQ0FBd0MsUUFBeEM7QUFDSCxHQUhEO0FBS0FMLCtDQUFDLENBQUNzQyxRQUFELENBQUQsQ0FBWUMsRUFBWixDQUFlLE9BQWYsRUFBd0IsZ0NBQXhCLEVBQTBELFVBQUNDLEtBQUQsRUFBVztBQUNqRUEsU0FBSyxDQUFDUyxjQUFOO0FBQ0F0QyxpQkFBYSxDQUFDMEIsS0FBZCxDQUFvQjtBQUFFeEMsWUFBTSxFQUFFLENBQUMsTUFBRCxDQUFWO0FBQW9CQyxhQUFPLEVBQUU7QUFBN0IsS0FBcEI7QUFDSCxHQUhEO0FBSUgiLCJmaWxlIjoiLi9hcHAvdXBkYXRlcy9ub3RpZmljYXRpb25zLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ2dyYXYtY29uZmlnJztcbmltcG9ydCByZXF1ZXN0IGZyb20gJy4uL3V0aWxzL3JlcXVlc3QnO1xuXG5jb25zdCBjYW5GZXRjaE5vdGlmaWNhdGlvbnMgPSAoKSA9PiBjb25maWcubm90aWZpY2F0aW9ucy5lbmFibGVkO1xuY29uc3Qgbm90aWZpY2F0aW9uc0ZpbHRlcnMgPSAoKSA9PiBjb25maWcubm90aWZpY2F0aW9ucy5maWx0ZXJzO1xuXG5jbGFzcyBOb3RpZmljYXRpb25zIHtcblxuICAgIHN0YXRpYyBhZGRTaG93QWxsSW5GZWVkKCkge1xuICAgICAgICAkKCcjbm90aWZpY2F0aW9ucyB1bCcpLmFwcGVuZCgnPGxpIGNsYXNzPVwic2hvdy1hbGxcIiBkYXRhLW5vdGlmaWNhdGlvbi1hY3Rpb249XCJzaG93LWFsbC1ub3RpZmljYXRpb25zXCI+U2hvdyBhbGw8L2xpPicpO1xuICAgIH1cblxuICAgIHN0YXRpYyBzaG93Tm90aWZpY2F0aW9uSW5GZWVkKG5vdGlmaWNhdGlvbikge1xuICAgICAgICBsZXQgbm90aWZpY2F0aW9ucyA9ICQoJyNub3RpZmljYXRpb25zJykucmVtb3ZlQ2xhc3MoJ2hpZGRlbicpO1xuXG4gICAgICAgIGxldCBsb2FkZXIgPSBub3RpZmljYXRpb25zLmZpbmQoJy53aWRnZXQtbG9hZGVyJykuaGlkZSgpO1xuICAgICAgICBsZXQgY29udGVudCA9IG5vdGlmaWNhdGlvbnMuZmluZCgnLndpZGdldC1jb250ZW50ID4gdWwnKS5zaG93KCk7XG4gICAgICAgIGxvYWRlci5maW5kKCdkaXYnKS5yZW1vdmUoKTtcbiAgICAgICAgbG9hZGVyLmZpbmQoJy5mYS13YXJuaW5nJykucmVtb3ZlQ2xhc3MoJ2ZhLXdhcm5pbmcnKS5hZGRDbGFzcygnZmEtcmVmcmVzaCBmYS1zcGluJyk7XG5cbiAgICAgICAgY29udGVudFxuICAgICAgICAgICAgLmFwcGVuZChub3RpZmljYXRpb24pXG4gICAgICAgICAgICAuZmluZCgnbGk6bnRoLWNoaWxkKG4rMTEpJykuYWRkQ2xhc3MoJ2hpZGRlbicpOyAvLyBoaWRlIGFsbCBpdGVtcyA+IDEwXG5cbiAgICAgICAgaWYgKGNvbnRlbnQuZmluZCgnbGkuaGlkZGVuJykubGVuZ3RoKSB7XG4gICAgICAgICAgICBOb3RpZmljYXRpb25zLmFkZFNob3dBbGxJbkZlZWQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0YXRpYyBzaG93Tm90aWZpY2F0aW9uSW5Ub3Aobm90aWZpY2F0aW9uKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9ICQoJy50b3Atbm90aWZpY2F0aW9ucy1jb250YWluZXInKTtcbiAgICAgICAgY29uc3QgZHVtbXkgPSAkKCc8ZGl2IC8+JykuaHRtbChub3RpZmljYXRpb24pO1xuXG4gICAgICAgIGNvbnRhaW5lci5yZW1vdmVDbGFzcygnaGlkZGVuJykuYXBwZW5kKGR1bW15LmNoaWxkcmVuKCkpO1xuICAgICAgICBkdW1teS5jaGlsZHJlbigpLnNsaWRlRG93bigxNTApO1xuICAgIH1cblxuICAgIHN0YXRpYyBzaG93Tm90aWZpY2F0aW9uSW5EYXNoYm9hcmQobm90aWZpY2F0aW9uKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9ICQoJy5kYXNoYm9hcmQtbm90aWZpY2F0aW9ucy1jb250YWluZXInKTtcbiAgICAgICAgY29uc3QgZHVtbXkgPSAkKCc8ZGl2IC8+JykuaHRtbChub3RpZmljYXRpb24pO1xuXG4gICAgICAgIGNvbnRhaW5lci5yZW1vdmVDbGFzcygnaGlkZGVuJykuYXBwZW5kKGR1bW15LmNoaWxkcmVuKCkpO1xuICAgICAgICBkdW1teS5jaGlsZHJlbigpLnNsaWRlRG93bigxNTApO1xuICAgIH1cblxuICAgIHN0YXRpYyBzaG93Tm90aWZpY2F0aW9uSW5QbHVnaW5zKG5vdGlmaWNhdGlvbikge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSAkKCcucGx1Z2lucy1ub3RpZmljYXRpb25zLWNvbnRhaW5lcicpO1xuICAgICAgICBjb25zdCBkdW1teSA9ICQoJzxkaXYgLz4nKS5odG1sKG5vdGlmaWNhdGlvbik7XG5cbiAgICAgICAgY29udGFpbmVyLnJlbW92ZUNsYXNzKCdoaWRkZW4nKS5hcHBlbmQoZHVtbXkuY2hpbGRyZW4oKSk7XG4gICAgICAgIGR1bW15LmNoaWxkcmVuKCkuc2xpZGVEb3duKDE1MCk7XG4gICAgfVxuXG4gICAgc3RhdGljIHNob3dOb3RpZmljYXRpb25JblRoZW1lcyhub3RpZmljYXRpb24pIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gJCgnLnRoZW1lcy1ub3RpZmljYXRpb25zLWNvbnRhaW5lcicpO1xuICAgICAgICBjb25zdCBkdW1teSA9ICQoJzxkaXYgLz4nKS5odG1sKG5vdGlmaWNhdGlvbik7XG5cbiAgICAgICAgY29udGFpbmVyLnJlbW92ZUNsYXNzKCdoaWRkZW4nKS5hcHBlbmQoZHVtbXkuY2hpbGRyZW4oKSk7XG4gICAgICAgIGR1bW15LmNoaWxkcmVuKCkuc2xpZGVEb3duKDE1MCk7XG4gICAgfVxuXG4gICAgc3RhdGljIHByb2Nlc3NMb2NhdGlvbihsb2NhdGlvbiwgbm90aWZpY2F0aW9uKSB7XG4gICAgICAgIHN3aXRjaCAobG9jYXRpb24pIHtcbiAgICAgICAgICAgIGNhc2UgJ2ZlZWQnOlxuICAgICAgICAgICAgICAgIE5vdGlmaWNhdGlvbnMuc2hvd05vdGlmaWNhdGlvbkluRmVlZChub3RpZmljYXRpb24pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgICAgICAgICBpZiAoIW5vdGlmaWNhdGlvbi5yZWFkKSB7XG4gICAgICAgICAgICAgICAgICAgIE5vdGlmaWNhdGlvbnMuc2hvd05vdGlmaWNhdGlvbkluVG9wKG5vdGlmaWNhdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZGFzaGJvYXJkJzpcbiAgICAgICAgICAgICAgICBpZiAoIW5vdGlmaWNhdGlvbi5yZWFkKSB7XG4gICAgICAgICAgICAgICAgICAgIE5vdGlmaWNhdGlvbnMuc2hvd05vdGlmaWNhdGlvbkluRGFzaGJvYXJkKG5vdGlmaWNhdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncGx1Z2lucyc6XG4gICAgICAgICAgICAgICAgaWYgKCFub3RpZmljYXRpb24ucmVhZCkge1xuICAgICAgICAgICAgICAgICAgICBOb3RpZmljYXRpb25zLnNob3dOb3RpZmljYXRpb25JblBsdWdpbnMobm90aWZpY2F0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd0aGVtZXMnOlxuICAgICAgICAgICAgICAgIGlmICghbm90aWZpY2F0aW9uLnJlYWQpIHtcbiAgICAgICAgICAgICAgICAgICAgTm90aWZpY2F0aW9ucy5zaG93Tm90aWZpY2F0aW9uSW5UaGVtZXMobm90aWZpY2F0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBHcmF2LmRlZmF1bHQuTm90aWZpY2F0aW9ucy5mZXRjaCgpXG4gICAgZmV0Y2goeyBmaWx0ZXIgPSBub3RpZmljYXRpb25zRmlsdGVycygpLCByZWZyZXNoID0gZmFsc2UgfSA9IHt9KSB7XG4gICAgICAgIGlmICghY2FuRmV0Y2hOb3RpZmljYXRpb25zKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBmZWVkID0gJCgnI25vdGlmaWNhdGlvbnMnKTtcbiAgICAgICAgbGV0IGxvYWRlciA9IGZlZWQuZmluZCgnLndpZGdldC1sb2FkZXInKTtcbiAgICAgICAgbGV0IGNvbnRlbnQgPSBmZWVkLmZpbmQoJy53aWRnZXQtY29udGVudCA+IHVsJyk7XG4gICAgICAgIGxvYWRlci5maW5kKCdkaXYnKS5yZW1vdmUoKTtcbiAgICAgICAgbG9hZGVyLmZpbmQoJy5mYS13YXJuaW5nJykucmVtb3ZlQ2xhc3MoJ2ZhLXdhcm5pbmcnKS5hZGRDbGFzcygnZmEtcmVmcmVzaCBmYS1zcGluJyk7XG4gICAgICAgIGxvYWRlci5zaG93KCk7XG4gICAgICAgIGNvbnRlbnQuaGlkZSgpO1xuXG4gICAgICAgIGxldCBwcm9jZXNzTm90aWZpY2F0aW9ucyA9IChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgbGV0IG5vdGlmaWNhdGlvbnMgPSByZXNwb25zZS5ub3RpZmljYXRpb25zO1xuXG4gICAgICAgICAgICAkKCcjbm90aWZpY2F0aW9ucycpLmZpbmQoJy53aWRnZXQtY29udGVudCA+IHVsJykuZW1wdHkoKTtcblxuICAgICAgICAgICAgaWYgKG5vdGlmaWNhdGlvbnMpIHtcbiAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhub3RpZmljYXRpb25zKS5mb3JFYWNoKChsb2NhdGlvbikgPT4gTm90aWZpY2F0aW9ucy5wcm9jZXNzTG9jYXRpb24obG9jYXRpb24sIG5vdGlmaWNhdGlvbnNbbG9jYXRpb25dKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgcmVxdWVzdChgJHtjb25maWcuYmFzZV91cmxfcmVsYXRpdmV9L3Rhc2ske2NvbmZpZy5wYXJhbV9zZXB9Z2V0Tm90aWZpY2F0aW9uc2AsIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICAgICAgYm9keTogeyByZWZyZXNoLCBmaWx0ZXIgfVxuICAgICAgICB9LCAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIHByb2Nlc3NOb3RpZmljYXRpb25zKHJlc3BvbnNlKTtcbiAgICAgICAgfSkuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgbGV0IHdpZGdldCA9ICQoJyNub3RpZmljYXRpb25zIC53aWRnZXQtY29udGVudCcpO1xuICAgICAgICAgICAgd2lkZ2V0XG4gICAgICAgICAgICAgICAgLmZpbmQoJy53aWRnZXQtbG9hZGVyJylcbiAgICAgICAgICAgICAgICAuZmluZCgnZGl2JykucmVtb3ZlKCk7XG5cbiAgICAgICAgICAgIHdpZGdldFxuICAgICAgICAgICAgICAgIC5maW5kKCcud2lkZ2V0LWxvYWRlcicpXG4gICAgICAgICAgICAgICAgLmFwcGVuZCgnPGRpdj5GYWlsZWQgdG8gcmV0cmlldmUgbm90aWZpY2F0aW9uczwvZGl2PicpXG4gICAgICAgICAgICAgICAgLmZpbmQoJy5mYS1zcGluJylcbiAgICAgICAgICAgICAgICAucmVtb3ZlQ2xhc3MoJ2ZhLXNwaW4gZmEtcmVmcmVzaCcpLmFkZENsYXNzKCdmYS13YXJuaW5nJyk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxubGV0IG5vdGlmaWNhdGlvbnMgPSBuZXcgTm90aWZpY2F0aW9ucygpO1xuZXhwb3J0IGRlZmF1bHQgbm90aWZpY2F0aW9ucztcblxuaWYgKGNhbkZldGNoTm90aWZpY2F0aW9ucygpKSB7XG4gICAgbm90aWZpY2F0aW9ucy5mZXRjaCgpO1xuXG4gICAgLyogSGlkZSBhIG5vdGlmaWNhdGlvbiBhbmQgc3RvcmUgaXQgaGlkZGVuICovXG4gICAgLy8gPGEgaHJlZj1cIiNcIiBkYXRhLW5vdGlmaWNhdGlvbi1hY3Rpb249XCJoaWRlLW5vdGlmaWNhdGlvblwiIGRhdGEtbm90aWZpY2F0aW9uLWlkPVwiJHtub3RpZmljYXRpb24uaWR9XCIgY2xhc3M9XCJjbG9zZSBoaWRlLW5vdGlmaWNhdGlvblwiPjxpIGNsYXNzPVwiZmEgZmEtY2xvc2VcIj48L2k+PC9hPlxuICAgICQoZG9jdW1lbnQpLm9uKCdjbGljaycsICdbZGF0YS1ub3RpZmljYXRpb24tYWN0aW9uPVwiaGlkZS1ub3RpZmljYXRpb25cIl0nLCAoZXZlbnQpID0+IHtcbiAgICAgICAgbGV0IG5vdGlmaWNhdGlvbl9pZCA9ICQoZXZlbnQudGFyZ2V0KS5wYXJlbnRzKCcuaGlkZS1ub3RpZmljYXRpb24nKS5kYXRhKCdub3RpZmljYXRpb24taWQnKTtcblxuICAgICAgICBsZXQgdXJsID0gYCR7Y29uZmlnLmJhc2VfdXJsX3JlbGF0aXZlfS9ub3RpZmljYXRpb25zLmpzb24vdGFzayR7Y29uZmlnLnBhcmFtX3NlcH1oaWRlTm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbl9pZCR7Y29uZmlnLnBhcmFtX3NlcH0ke25vdGlmaWNhdGlvbl9pZH1gO1xuXG4gICAgICAgIHJlcXVlc3QodXJsLCB7IG1ldGhvZDogJ3Bvc3QnIH0sICgpID0+IHt9KTtcblxuICAgICAgICAkKGV2ZW50LnRhcmdldCkucGFyZW50cygnLnNpbmdsZS1ub3RpZmljYXRpb24nKS5oaWRlKCk7XG4gICAgfSk7XG5cbiAgICAkKGRvY3VtZW50KS5vbignY2xpY2snLCAnW2RhdGEtbm90aWZpY2F0aW9uLWFjdGlvbj1cImhpZGUtbm90aWZpY2F0aW9uXCJdJywgKGV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IHRhcmdldC5wYXJlbnQoKTtcblxuICAgICAgICBub3RpZmljYXRpb24uc2xpZGVVcCgoKSA9PiBub3RpZmljYXRpb24ucmVtb3ZlKCkpO1xuICAgIH0pO1xuXG4gICAgJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ1tkYXRhLW5vdGlmaWNhdGlvbi1hY3Rpb249XCJzaG93LWFsbC1ub3RpZmljYXRpb25zXCJdJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICQoJyNub3RpZmljYXRpb25zIC5zaG93LWFsbCcpLmhpZGUoKTtcbiAgICAgICAgJCgnI25vdGlmaWNhdGlvbnMgLmhpZGRlbicpLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTtcbiAgICB9KTtcblxuICAgICQoZG9jdW1lbnQpLm9uKCdjbGljaycsICdbZGF0YS1yZWZyZXNoPVwibm90aWZpY2F0aW9uc1wiXScsIChldmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBub3RpZmljYXRpb25zLmZldGNoKHsgZmlsdGVyOiBbJ2ZlZWQnXSwgcmVmcmVzaDogdHJ1ZSB9KTtcbiAgICB9KTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/updates/notifications.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/updates/update.js":
|
|
/*!*******************************!*\
|
|
!*** ./app/updates/update.js ***!
|
|
\*******************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_formatbytes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/formatbytes */ \"./app/utils/formatbytes.js\");\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/request */ \"./app/utils/request.js\");\n/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./index */ \"./app/updates/index.js\");\n\n\n\n\n // Dashboard update and Grav update\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click.remodal', '[data-remodal-id=\"update-grav\"] [data-remodal-action=\"confirm\"]', function () {\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#grav-update-button');\n element.html(\"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.UPDATING_PLEASE_WAIT, \" \").concat((0,_utils_formatbytes__WEBPACK_IMPORTED_MODULE_2__.default)(_index__WEBPACK_IMPORTED_MODULE_4__.Instance.payload.grav.assets[\"grav-update\"].size), \"..\"));\n element.attr('disabled', 'disabled').find('> .fa').removeClass('fa-cloud-download').addClass('fa-refresh fa-spin');\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_3__.default)(_index__WEBPACK_IMPORTED_MODULE_4__.Instance.updateURL, function (response) {\n if (response.type === 'updategrav') {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-gpm-grav]').remove();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('#footer .grav-version').html(response.version);\n }\n\n element.removeAttr('disabled').find('> .fa').removeClass('fa-refresh fa-spin').addClass('fa-cloud-download');\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3VwZGF0ZXMvdXBkYXRlLmpzPzQ3NjkiXSwibmFtZXMiOlsiJCIsImRvY3VtZW50Iiwib24iLCJlbGVtZW50IiwiaHRtbCIsInRyYW5zbGF0aW9ucyIsImZvcm1hdEJ5dGVzIiwiVXBkYXRlIiwiYXR0ciIsImZpbmQiLCJyZW1vdmVDbGFzcyIsImFkZENsYXNzIiwicmVxdWVzdCIsInJlc3BvbnNlIiwidHlwZSIsInJlbW92ZSIsInZlcnNpb24iLCJyZW1vdmVBdHRyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0NBR0E7O0FBQ0FBLDZDQUFDLENBQUNDLFFBQUQsQ0FBRCxDQUFZQyxFQUFaLENBQWUsZUFBZixFQUFnQyxpRUFBaEMsRUFBbUcsWUFBTTtBQUNyRyxNQUFNQyxPQUFPLEdBQUdILDZDQUFDLENBQUMscUJBQUQsQ0FBakI7QUFDQUcsU0FBTyxDQUFDQyxJQUFSLFdBQWdCQyx1RkFBaEIsY0FBa0VDLDJEQUFXLENBQUNDLG9GQUFELENBQTdFO0FBRUFKLFNBQU8sQ0FBQ0ssSUFBUixDQUFhLFVBQWIsRUFBeUIsVUFBekIsRUFBcUNDLElBQXJDLENBQTBDLE9BQTFDLEVBQW1EQyxXQUFuRCxDQUErRCxtQkFBL0QsRUFBb0ZDLFFBQXBGLENBQTZGLG9CQUE3RjtBQUVBQyx5REFBTyxDQUFDTCxzREFBRCxFQUFtQixVQUFDTSxRQUFELEVBQWM7QUFDcEMsUUFBSUEsUUFBUSxDQUFDQyxJQUFULEtBQWtCLFlBQXRCLEVBQW9DO0FBQ2hDZCxtREFBQyxDQUFDLGlCQUFELENBQUQsQ0FBcUJlLE1BQXJCO0FBQ0FmLG1EQUFDLENBQUMsdUJBQUQsQ0FBRCxDQUEyQkksSUFBM0IsQ0FBZ0NTLFFBQVEsQ0FBQ0csT0FBekM7QUFDSDs7QUFFRGIsV0FBTyxDQUFDYyxVQUFSLENBQW1CLFVBQW5CLEVBQStCUixJQUEvQixDQUFvQyxPQUFwQyxFQUE2Q0MsV0FBN0MsQ0FBeUQsb0JBQXpELEVBQStFQyxRQUEvRSxDQUF3RixtQkFBeEY7QUFDSCxHQVBNLENBQVA7QUFRSCxDQWREIiwiZmlsZSI6Ii4vYXBwL3VwZGF0ZXMvdXBkYXRlLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCB7IHRyYW5zbGF0aW9ucyB9IGZyb20gJ2dyYXYtY29uZmlnJztcbmltcG9ydCBmb3JtYXRCeXRlcyBmcm9tICcuLi91dGlscy9mb3JtYXRieXRlcyc7XG5pbXBvcnQgcmVxdWVzdCBmcm9tICcuLi91dGlscy9yZXF1ZXN0JztcbmltcG9ydCB7IEluc3RhbmNlIGFzIFVwZGF0ZSB9IGZyb20gJy4vaW5kZXgnO1xuXG4vLyBEYXNoYm9hcmQgdXBkYXRlIGFuZCBHcmF2IHVwZGF0ZVxuJChkb2N1bWVudCkub24oJ2NsaWNrLnJlbW9kYWwnLCAnW2RhdGEtcmVtb2RhbC1pZD1cInVwZGF0ZS1ncmF2XCJdIFtkYXRhLXJlbW9kYWwtYWN0aW9uPVwiY29uZmlybVwiXScsICgpID0+IHtcbiAgICBjb25zdCBlbGVtZW50ID0gJCgnI2dyYXYtdXBkYXRlLWJ1dHRvbicpO1xuICAgIGVsZW1lbnQuaHRtbChgJHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLlVQREFUSU5HX1BMRUFTRV9XQUlUfSAke2Zvcm1hdEJ5dGVzKFVwZGF0ZS5wYXlsb2FkLmdyYXYuYXNzZXRzWydncmF2LXVwZGF0ZSddLnNpemUpfS4uYCk7XG5cbiAgICBlbGVtZW50LmF0dHIoJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJykuZmluZCgnPiAuZmEnKS5yZW1vdmVDbGFzcygnZmEtY2xvdWQtZG93bmxvYWQnKS5hZGRDbGFzcygnZmEtcmVmcmVzaCBmYS1zcGluJyk7XG5cbiAgICByZXF1ZXN0KFVwZGF0ZS51cGRhdGVVUkwsIChyZXNwb25zZSkgPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2UudHlwZSA9PT0gJ3VwZGF0ZWdyYXYnKSB7XG4gICAgICAgICAgICAkKCdbZGF0YS1ncG0tZ3Jhdl0nKS5yZW1vdmUoKTtcbiAgICAgICAgICAgICQoJyNmb290ZXIgLmdyYXYtdmVyc2lvbicpLmh0bWwocmVzcG9uc2UudmVyc2lvbik7XG4gICAgICAgIH1cblxuICAgICAgICBlbGVtZW50LnJlbW92ZUF0dHIoJ2Rpc2FibGVkJykuZmluZCgnPiAuZmEnKS5yZW1vdmVDbGFzcygnZmEtcmVmcmVzaCBmYS1zcGluJykuYWRkQ2xhc3MoJ2ZhLWNsb3VkLWRvd25sb2FkJyk7XG4gICAgfSk7XG59KTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/updates/update.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/utils/2fa.js":
|
|
/*!**************************!*\
|
|
!*** ./app/utils/2fa.js ***!
|
|
\**************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/request */ \"./app/utils/request.js\");\n\n\n\nvar body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body'); // Dashboard update and Grav update\n\nbody.on('click', '[data-2fa-regenerate]', function (event) {\n event.preventDefault();\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n var url = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/ajax.json/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep, \"regenerate2FASecret\");\n element.attr('disabled', 'disabled').find('> .fa').addClass('fa-spin');\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__.default)(url, {\n method: 'post'\n }, function (response) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-2fa-image]').attr('src', response.image);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-2fa-secret]').text(response.secret);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-2fa-value]').val(response.secret.replace(' ', ''));\n element.removeAttr('disabled').find('> .fa').removeClass('fa-spin');\n });\n});\n\nvar toggleSecret = function toggleSecret() {\n var toggle = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#toggle_twofa_enabled1');\n var secret = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.twofa-secret');\n secret[toggle.is(':checked') ? 'addClass' : 'removeClass']('show');\n};\n\nbody.on('click', '.twofa-toggle input', toggleSecret);\ntoggleSecret();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzLzJmYS5qcz80NGE4Il0sIm5hbWVzIjpbImJvZHkiLCIkIiwib24iLCJldmVudCIsInByZXZlbnREZWZhdWx0IiwiZWxlbWVudCIsInVybCIsImNvbmZpZyIsImF0dHIiLCJmaW5kIiwiYWRkQ2xhc3MiLCJyZXF1ZXN0IiwibWV0aG9kIiwicmVzcG9uc2UiLCJpbWFnZSIsInRleHQiLCJzZWNyZXQiLCJ2YWwiLCJyZXBsYWNlIiwicmVtb3ZlQXR0ciIsInJlbW92ZUNsYXNzIiwidG9nZ2xlU2VjcmV0IiwidG9nZ2xlIiwiaXMiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUVBLElBQU1BLElBQUksR0FBR0MsNkNBQUMsQ0FBQyxNQUFELENBQWQsQyxDQUVBOztBQUNBRCxJQUFJLENBQUNFLEVBQUwsQ0FBUSxPQUFSLEVBQWlCLHVCQUFqQixFQUEwQyxVQUFTQyxLQUFULEVBQWdCO0FBQ3REQSxPQUFLLENBQUNDLGNBQU47QUFDQSxNQUFJQyxPQUFPLEdBQUdKLDZDQUFDLENBQUMsSUFBRCxDQUFmO0FBQ0EsTUFBSUssR0FBRyxhQUFNQyxpRUFBTiw0QkFBZ0RBLHlEQUFoRCx3QkFBUDtBQUVBRixTQUFPLENBQUNHLElBQVIsQ0FBYSxVQUFiLEVBQXlCLFVBQXpCLEVBQXFDQyxJQUFyQyxDQUEwQyxPQUExQyxFQUFtREMsUUFBbkQsQ0FBNEQsU0FBNUQ7QUFFQUMseURBQU8sQ0FBQ0wsR0FBRCxFQUFNO0FBQUVNLFVBQU0sRUFBRTtBQUFWLEdBQU4sRUFBMEIsVUFBQ0MsUUFBRCxFQUFjO0FBQzNDWixpREFBQyxDQUFDLGtCQUFELENBQUQsQ0FBc0JPLElBQXRCLENBQTJCLEtBQTNCLEVBQWtDSyxRQUFRLENBQUNDLEtBQTNDO0FBQ0FiLGlEQUFDLENBQUMsbUJBQUQsQ0FBRCxDQUF1QmMsSUFBdkIsQ0FBNEJGLFFBQVEsQ0FBQ0csTUFBckM7QUFDQWYsaURBQUMsQ0FBQyxrQkFBRCxDQUFELENBQXNCZ0IsR0FBdEIsQ0FBMEJKLFFBQVEsQ0FBQ0csTUFBVCxDQUFnQkUsT0FBaEIsQ0FBd0IsR0FBeEIsRUFBNkIsRUFBN0IsQ0FBMUI7QUFFQWIsV0FBTyxDQUFDYyxVQUFSLENBQW1CLFVBQW5CLEVBQStCVixJQUEvQixDQUFvQyxPQUFwQyxFQUE2Q1csV0FBN0MsQ0FBeUQsU0FBekQ7QUFDSCxHQU5NLENBQVA7QUFPSCxDQWREOztBQWdCQSxJQUFNQyxZQUFZLEdBQUcsU0FBZkEsWUFBZSxHQUFNO0FBQ3ZCLE1BQU1DLE1BQU0sR0FBR3JCLDZDQUFDLENBQUMsd0JBQUQsQ0FBaEI7QUFDQSxNQUFNZSxNQUFNLEdBQUdmLDZDQUFDLENBQUMsZUFBRCxDQUFoQjtBQUVBZSxRQUFNLENBQUNNLE1BQU0sQ0FBQ0MsRUFBUCxDQUFVLFVBQVYsSUFBd0IsVUFBeEIsR0FBcUMsYUFBdEMsQ0FBTixDQUEyRCxNQUEzRDtBQUNILENBTEQ7O0FBT0F2QixJQUFJLENBQUNFLEVBQUwsQ0FBUSxPQUFSLEVBQWlCLHFCQUFqQixFQUF3Q21CLFlBQXhDO0FBQ0FBLFlBQVkiLCJmaWxlIjoiLi9hcHAvdXRpbHMvMmZhLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ2dyYXYtY29uZmlnJztcbmltcG9ydCByZXF1ZXN0IGZyb20gJy4uL3V0aWxzL3JlcXVlc3QnO1xuXG5jb25zdCBib2R5ID0gJCgnYm9keScpO1xuXG4vLyBEYXNoYm9hcmQgdXBkYXRlIGFuZCBHcmF2IHVwZGF0ZVxuYm9keS5vbignY2xpY2snLCAnW2RhdGEtMmZhLXJlZ2VuZXJhdGVdJywgZnVuY3Rpb24oZXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGxldCBlbGVtZW50ID0gJCh0aGlzKTtcbiAgICBsZXQgdXJsID0gYCR7Y29uZmlnLmJhc2VfdXJsX3JlbGF0aXZlfS9hamF4Lmpzb24vdGFzayR7Y29uZmlnLnBhcmFtX3NlcH1yZWdlbmVyYXRlMkZBU2VjcmV0YDtcblxuICAgIGVsZW1lbnQuYXR0cignZGlzYWJsZWQnLCAnZGlzYWJsZWQnKS5maW5kKCc+IC5mYScpLmFkZENsYXNzKCdmYS1zcGluJyk7XG5cbiAgICByZXF1ZXN0KHVybCwgeyBtZXRob2Q6ICdwb3N0JyB9LCAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgJCgnW2RhdGEtMmZhLWltYWdlXScpLmF0dHIoJ3NyYycsIHJlc3BvbnNlLmltYWdlKTtcbiAgICAgICAgJCgnW2RhdGEtMmZhLXNlY3JldF0nKS50ZXh0KHJlc3BvbnNlLnNlY3JldCk7XG4gICAgICAgICQoJ1tkYXRhLTJmYS12YWx1ZV0nKS52YWwocmVzcG9uc2Uuc2VjcmV0LnJlcGxhY2UoJyAnLCAnJykpO1xuXG4gICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cignZGlzYWJsZWQnKS5maW5kKCc+IC5mYScpLnJlbW92ZUNsYXNzKCdmYS1zcGluJyk7XG4gICAgfSk7XG59KTtcblxuY29uc3QgdG9nZ2xlU2VjcmV0ID0gKCkgPT4ge1xuICAgIGNvbnN0IHRvZ2dsZSA9ICQoJyN0b2dnbGVfdHdvZmFfZW5hYmxlZDEnKTtcbiAgICBjb25zdCBzZWNyZXQgPSAkKCcudHdvZmEtc2VjcmV0Jyk7XG5cbiAgICBzZWNyZXRbdG9nZ2xlLmlzKCc6Y2hlY2tlZCcpID8gJ2FkZENsYXNzJyA6ICdyZW1vdmVDbGFzcyddKCdzaG93Jyk7XG59O1xuXG5ib2R5Lm9uKCdjbGljaycsICcudHdvZmEtdG9nZ2xlIGlucHV0JywgdG9nZ2xlU2VjcmV0KTtcbnRvZ2dsZVNlY3JldCgpO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/utils/2fa.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/utils/bootstrap-collapse.js":
|
|
/*!*****************************************!*\
|
|
!*** ./app/utils/bootstrap-collapse.js ***!
|
|
\*****************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n/* ========================================================================\n * Bootstrap: collapse.js v3.4.0\n * http://getbootstrap.com/javascript/#collapse\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n/* jshint latedef: false */\n\n+function ($) {\n 'use strict'; // COLLAPSE PUBLIC CLASS DEFINITION\n // ================================\n\n var Collapse = function Collapse(element, options) {\n this.$element = $(element);\n this.options = $.extend({}, Collapse.DEFAULTS, options);\n this.$trigger = $('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' + '[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]');\n this.transitioning = null;\n\n if (this.options.parent) {\n this.$parent = this.getParent();\n } else {\n this.addAriaAndCollapsedClass(this.$element, this.$trigger);\n }\n\n if (this.options.toggle) this.toggle();\n };\n\n Collapse.VERSION = '3.4.0';\n Collapse.TRANSITION_DURATION = 350;\n Collapse.DEFAULTS = {\n toggle: true\n };\n\n Collapse.prototype.dimension = function () {\n var hasWidth = this.$element.hasClass('width');\n return hasWidth ? 'width' : 'height';\n };\n\n Collapse.prototype.show = function () {\n if (this.transitioning || this.$element.hasClass('in')) return;\n var activesData;\n var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing');\n\n if (actives && actives.length) {\n activesData = actives.data('bs.collapse');\n if (activesData && activesData.transitioning) return;\n }\n\n var startEvent = $.Event('show.bs.collapse');\n this.$element.trigger(startEvent);\n if (startEvent.isDefaultPrevented()) return;\n\n if (actives && actives.length) {\n Plugin.call(actives, 'hide');\n activesData || actives.data('bs.collapse', null);\n }\n\n var dimension = this.dimension();\n this.$element.removeClass('collapse').addClass('collapsing')[dimension](0).attr('aria-expanded', true);\n this.$trigger.removeClass('collapsed').attr('aria-expanded', true);\n this.transitioning = 1;\n\n var complete = function complete() {\n this.$element.removeClass('collapsing').addClass('collapse in')[dimension]('');\n this.transitioning = 0;\n this.$element.trigger('shown.bs.collapse');\n };\n\n if (!$.support.transition) return complete.call(this);\n var scrollSize = $.camelCase(['scroll', dimension].join('-'));\n this.$element.one('bsTransitionEnd', $.proxy(complete, this)).emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize]);\n };\n\n Collapse.prototype.hide = function () {\n if (this.transitioning || !this.$element.hasClass('in')) return;\n var startEvent = $.Event('hide.bs.collapse');\n this.$element.trigger(startEvent);\n if (startEvent.isDefaultPrevented()) return;\n var dimension = this.dimension();\n this.$element[dimension](this.$element[dimension]())[0].offsetHeight;\n this.$element.addClass('collapsing').removeClass('collapse in').attr('aria-expanded', false);\n this.$trigger.addClass('collapsed').attr('aria-expanded', false);\n this.transitioning = 1;\n\n var complete = function complete() {\n this.transitioning = 0;\n this.$element.removeClass('collapsing').addClass('collapse').trigger('hidden.bs.collapse');\n };\n\n if (!$.support.transition) return complete.call(this);\n this.$element[dimension](0).one('bsTransitionEnd', $.proxy(complete, this)).emulateTransitionEnd(Collapse.TRANSITION_DURATION);\n };\n\n Collapse.prototype.toggle = function () {\n this[this.$element.hasClass('in') ? 'hide' : 'show']();\n };\n\n Collapse.prototype.getParent = function () {\n return $(this.options.parent).find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]').each($.proxy(function (i, element) {\n var $element = $(element);\n this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element);\n }, this)).end();\n };\n\n Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\n var isOpen = $element.hasClass('in');\n $element.attr('aria-expanded', isOpen);\n $trigger.toggleClass('collapsed', !isOpen).attr('aria-expanded', isOpen);\n };\n\n function getTargetFromTrigger($trigger) {\n var href;\n var target = $trigger.attr('data-target') || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, ''); // strip for ie7\n\n return $(target);\n } // COLLAPSE PLUGIN DEFINITION\n // ==========================\n\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this);\n var data = $this.data('bs.collapse');\n var options = $.extend({}, Collapse.DEFAULTS, $this.data(), _typeof(option) === 'object' && option);\n if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false;\n if (!data) $this.data('bs.collapse', data = new Collapse(this, options));\n if (typeof option === 'string') data[option]();\n });\n }\n\n var old = $.fn.collapse;\n $.fn.collapse = Plugin;\n $.fn.collapse.Constructor = Collapse; // COLLAPSE NO CONFLICT\n // ====================\n\n $.fn.collapse.noConflict = function () {\n $.fn.collapse = old;\n return this;\n }; // COLLAPSE DATA-API\n // =================\n\n\n $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\n var $this = $(this);\n if (!$this.attr('data-target')) e.preventDefault();\n var $target = getTargetFromTrigger($this);\n var data = $target.data('bs.collapse');\n var option = data ? 'toggle' : $this.data();\n Plugin.call($target, option);\n });\n}((jquery__WEBPACK_IMPORTED_MODULE_0___default()));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL2Jvb3RzdHJhcC1jb2xsYXBzZS5qcz9lMjUwIl0sIm5hbWVzIjpbIiQiLCJDb2xsYXBzZSIsImVsZW1lbnQiLCJvcHRpb25zIiwiJGVsZW1lbnQiLCJleHRlbmQiLCJERUZBVUxUUyIsIiR0cmlnZ2VyIiwiaWQiLCJ0cmFuc2l0aW9uaW5nIiwicGFyZW50IiwiJHBhcmVudCIsImdldFBhcmVudCIsImFkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcyIsInRvZ2dsZSIsIlZFUlNJT04iLCJUUkFOU0lUSU9OX0RVUkFUSU9OIiwicHJvdG90eXBlIiwiZGltZW5zaW9uIiwiaGFzV2lkdGgiLCJoYXNDbGFzcyIsInNob3ciLCJhY3RpdmVzRGF0YSIsImFjdGl2ZXMiLCJjaGlsZHJlbiIsImxlbmd0aCIsImRhdGEiLCJzdGFydEV2ZW50IiwiRXZlbnQiLCJ0cmlnZ2VyIiwiaXNEZWZhdWx0UHJldmVudGVkIiwiUGx1Z2luIiwiY2FsbCIsInJlbW92ZUNsYXNzIiwiYWRkQ2xhc3MiLCJhdHRyIiwiY29tcGxldGUiLCJzdXBwb3J0IiwidHJhbnNpdGlvbiIsInNjcm9sbFNpemUiLCJjYW1lbENhc2UiLCJqb2luIiwib25lIiwicHJveHkiLCJlbXVsYXRlVHJhbnNpdGlvbkVuZCIsImhpZGUiLCJvZmZzZXRIZWlnaHQiLCJmaW5kIiwiZWFjaCIsImkiLCJnZXRUYXJnZXRGcm9tVHJpZ2dlciIsImVuZCIsImlzT3BlbiIsInRvZ2dsZUNsYXNzIiwiaHJlZiIsInRhcmdldCIsInJlcGxhY2UiLCJvcHRpb24iLCIkdGhpcyIsInRlc3QiLCJvbGQiLCJmbiIsImNvbGxhcHNlIiwiQ29uc3RydWN0b3IiLCJub0NvbmZsaWN0IiwiZG9jdW1lbnQiLCJvbiIsImUiLCJwcmV2ZW50RGVmYXVsdCIsIiR0YXJnZXQiLCJqUXVlcnkiXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQSxDQUFFLFVBQVNBLENBQVQsRUFBWTtBQUNWLGVBRFUsQ0FHVjtBQUNBOztBQUVBLE1BQUlDLFFBQVEsR0FBRyxTQUFYQSxRQUFXLENBQVNDLE9BQVQsRUFBa0JDLE9BQWxCLEVBQTJCO0FBQ3RDLFNBQUtDLFFBQUwsR0FBZ0JKLENBQUMsQ0FBQ0UsT0FBRCxDQUFqQjtBQUNBLFNBQUtDLE9BQUwsR0FBZUgsQ0FBQyxDQUFDSyxNQUFGLENBQVMsRUFBVCxFQUFhSixRQUFRLENBQUNLLFFBQXRCLEVBQWdDSCxPQUFoQyxDQUFmO0FBQ0EsU0FBS0ksUUFBTCxHQUFnQlAsQ0FBQyxDQUFDLHFDQUFxQ0UsT0FBTyxDQUFDTSxFQUE3QyxHQUFrRCxLQUFsRCxHQUNDLHlDQURELEdBQzZDTixPQUFPLENBQUNNLEVBRHJELEdBQzBELElBRDNELENBQWpCO0FBRUEsU0FBS0MsYUFBTCxHQUFxQixJQUFyQjs7QUFFQSxRQUFJLEtBQUtOLE9BQUwsQ0FBYU8sTUFBakIsRUFBeUI7QUFDckIsV0FBS0MsT0FBTCxHQUFlLEtBQUtDLFNBQUwsRUFBZjtBQUNILEtBRkQsTUFFTztBQUNILFdBQUtDLHdCQUFMLENBQThCLEtBQUtULFFBQW5DLEVBQTZDLEtBQUtHLFFBQWxEO0FBQ0g7O0FBRUQsUUFBSSxLQUFLSixPQUFMLENBQWFXLE1BQWpCLEVBQXlCLEtBQUtBLE1BQUw7QUFDNUIsR0FkRDs7QUFnQkFiLFVBQVEsQ0FBQ2MsT0FBVCxHQUFtQixPQUFuQjtBQUVBZCxVQUFRLENBQUNlLG1CQUFULEdBQStCLEdBQS9CO0FBRUFmLFVBQVEsQ0FBQ0ssUUFBVCxHQUFvQjtBQUNoQlEsVUFBTSxFQUFFO0FBRFEsR0FBcEI7O0FBSUFiLFVBQVEsQ0FBQ2dCLFNBQVQsQ0FBbUJDLFNBQW5CLEdBQStCLFlBQVc7QUFDdEMsUUFBSUMsUUFBUSxHQUFHLEtBQUtmLFFBQUwsQ0FBY2dCLFFBQWQsQ0FBdUIsT0FBdkIsQ0FBZjtBQUNBLFdBQU9ELFFBQVEsR0FBRyxPQUFILEdBQWEsUUFBNUI7QUFDSCxHQUhEOztBQUtBbEIsVUFBUSxDQUFDZ0IsU0FBVCxDQUFtQkksSUFBbkIsR0FBMEIsWUFBVztBQUNqQyxRQUFJLEtBQUtaLGFBQUwsSUFBc0IsS0FBS0wsUUFBTCxDQUFjZ0IsUUFBZCxDQUF1QixJQUF2QixDQUExQixFQUF3RDtBQUV4RCxRQUFJRSxXQUFKO0FBQ0EsUUFBSUMsT0FBTyxHQUFHLEtBQUtaLE9BQUwsSUFBZ0IsS0FBS0EsT0FBTCxDQUFhYSxRQUFiLENBQXNCLFFBQXRCLEVBQWdDQSxRQUFoQyxDQUF5QyxrQkFBekMsQ0FBOUI7O0FBRUEsUUFBSUQsT0FBTyxJQUFJQSxPQUFPLENBQUNFLE1BQXZCLEVBQStCO0FBQzNCSCxpQkFBVyxHQUFHQyxPQUFPLENBQUNHLElBQVIsQ0FBYSxhQUFiLENBQWQ7QUFDQSxVQUFJSixXQUFXLElBQUlBLFdBQVcsQ0FBQ2IsYUFBL0IsRUFBOEM7QUFDakQ7O0FBRUQsUUFBSWtCLFVBQVUsR0FBRzNCLENBQUMsQ0FBQzRCLEtBQUYsQ0FBUSxrQkFBUixDQUFqQjtBQUNBLFNBQUt4QixRQUFMLENBQWN5QixPQUFkLENBQXNCRixVQUF0QjtBQUNBLFFBQUlBLFVBQVUsQ0FBQ0csa0JBQVgsRUFBSixFQUFxQzs7QUFFckMsUUFBSVAsT0FBTyxJQUFJQSxPQUFPLENBQUNFLE1BQXZCLEVBQStCO0FBQzNCTSxZQUFNLENBQUNDLElBQVAsQ0FBWVQsT0FBWixFQUFxQixNQUFyQjtBQUNBRCxpQkFBVyxJQUFJQyxPQUFPLENBQUNHLElBQVIsQ0FBYSxhQUFiLEVBQTRCLElBQTVCLENBQWY7QUFDSDs7QUFFRCxRQUFJUixTQUFTLEdBQUcsS0FBS0EsU0FBTCxFQUFoQjtBQUVBLFNBQUtkLFFBQUwsQ0FDSzZCLFdBREwsQ0FDaUIsVUFEakIsRUFFS0MsUUFGTCxDQUVjLFlBRmQsRUFFNEJoQixTQUY1QixFQUV1QyxDQUZ2QyxFQUdLaUIsSUFITCxDQUdVLGVBSFYsRUFHMkIsSUFIM0I7QUFLQSxTQUFLNUIsUUFBTCxDQUNLMEIsV0FETCxDQUNpQixXQURqQixFQUVLRSxJQUZMLENBRVUsZUFGVixFQUUyQixJQUYzQjtBQUlBLFNBQUsxQixhQUFMLEdBQXFCLENBQXJCOztBQUVBLFFBQUkyQixRQUFRLEdBQUcsU0FBWEEsUUFBVyxHQUFXO0FBQ3RCLFdBQUtoQyxRQUFMLENBQ0s2QixXQURMLENBQ2lCLFlBRGpCLEVBRUtDLFFBRkwsQ0FFYyxhQUZkLEVBRTZCaEIsU0FGN0IsRUFFd0MsRUFGeEM7QUFHQSxXQUFLVCxhQUFMLEdBQXFCLENBQXJCO0FBQ0EsV0FBS0wsUUFBTCxDQUNLeUIsT0FETCxDQUNhLG1CQURiO0FBRUgsS0FQRDs7QUFTQSxRQUFJLENBQUM3QixDQUFDLENBQUNxQyxPQUFGLENBQVVDLFVBQWYsRUFBMkIsT0FBT0YsUUFBUSxDQUFDSixJQUFULENBQWMsSUFBZCxDQUFQO0FBRTNCLFFBQUlPLFVBQVUsR0FBR3ZDLENBQUMsQ0FBQ3dDLFNBQUYsQ0FBWSxDQUFDLFFBQUQsRUFBV3RCLFNBQVgsRUFBc0J1QixJQUF0QixDQUEyQixHQUEzQixDQUFaLENBQWpCO0FBRUEsU0FBS3JDLFFBQUwsQ0FDS3NDLEdBREwsQ0FDUyxpQkFEVCxFQUM0QjFDLENBQUMsQ0FBQzJDLEtBQUYsQ0FBUVAsUUFBUixFQUFrQixJQUFsQixDQUQ1QixFQUVLUSxvQkFGTCxDQUUwQjNDLFFBQVEsQ0FBQ2UsbUJBRm5DLEVBRXdERSxTQUZ4RCxFQUVtRSxLQUFLZCxRQUFMLENBQWMsQ0FBZCxFQUFpQm1DLFVBQWpCLENBRm5FO0FBR0gsR0FqREQ7O0FBbURBdEMsVUFBUSxDQUFDZ0IsU0FBVCxDQUFtQjRCLElBQW5CLEdBQTBCLFlBQVc7QUFDakMsUUFBSSxLQUFLcEMsYUFBTCxJQUFzQixDQUFDLEtBQUtMLFFBQUwsQ0FBY2dCLFFBQWQsQ0FBdUIsSUFBdkIsQ0FBM0IsRUFBeUQ7QUFFekQsUUFBSU8sVUFBVSxHQUFHM0IsQ0FBQyxDQUFDNEIsS0FBRixDQUFRLGtCQUFSLENBQWpCO0FBQ0EsU0FBS3hCLFFBQUwsQ0FBY3lCLE9BQWQsQ0FBc0JGLFVBQXRCO0FBQ0EsUUFBSUEsVUFBVSxDQUFDRyxrQkFBWCxFQUFKLEVBQXFDO0FBRXJDLFFBQUlaLFNBQVMsR0FBRyxLQUFLQSxTQUFMLEVBQWhCO0FBRUEsU0FBS2QsUUFBTCxDQUFjYyxTQUFkLEVBQXlCLEtBQUtkLFFBQUwsQ0FBY2MsU0FBZCxHQUF6QixFQUFxRCxDQUFyRCxFQUF3RDRCLFlBQXhEO0FBRUEsU0FBSzFDLFFBQUwsQ0FDSzhCLFFBREwsQ0FDYyxZQURkLEVBRUtELFdBRkwsQ0FFaUIsYUFGakIsRUFHS0UsSUFITCxDQUdVLGVBSFYsRUFHMkIsS0FIM0I7QUFLQSxTQUFLNUIsUUFBTCxDQUNLMkIsUUFETCxDQUNjLFdBRGQsRUFFS0MsSUFGTCxDQUVVLGVBRlYsRUFFMkIsS0FGM0I7QUFJQSxTQUFLMUIsYUFBTCxHQUFxQixDQUFyQjs7QUFFQSxRQUFJMkIsUUFBUSxHQUFHLFNBQVhBLFFBQVcsR0FBVztBQUN0QixXQUFLM0IsYUFBTCxHQUFxQixDQUFyQjtBQUNBLFdBQUtMLFFBQUwsQ0FDSzZCLFdBREwsQ0FDaUIsWUFEakIsRUFFS0MsUUFGTCxDQUVjLFVBRmQsRUFHS0wsT0FITCxDQUdhLG9CQUhiO0FBSUgsS0FORDs7QUFRQSxRQUFJLENBQUM3QixDQUFDLENBQUNxQyxPQUFGLENBQVVDLFVBQWYsRUFBMkIsT0FBT0YsUUFBUSxDQUFDSixJQUFULENBQWMsSUFBZCxDQUFQO0FBRTNCLFNBQUs1QixRQUFMLENBQWNjLFNBQWQsRUFBeUIsQ0FBekIsRUFDS3dCLEdBREwsQ0FDUyxpQkFEVCxFQUM0QjFDLENBQUMsQ0FBQzJDLEtBQUYsQ0FBUVAsUUFBUixFQUFrQixJQUFsQixDQUQ1QixFQUVLUSxvQkFGTCxDQUUwQjNDLFFBQVEsQ0FBQ2UsbUJBRm5DO0FBR0gsR0FuQ0Q7O0FBcUNBZixVQUFRLENBQUNnQixTQUFULENBQW1CSCxNQUFuQixHQUE0QixZQUFXO0FBQ25DLFNBQUssS0FBS1YsUUFBTCxDQUFjZ0IsUUFBZCxDQUF1QixJQUF2QixJQUErQixNQUEvQixHQUF3QyxNQUE3QztBQUNILEdBRkQ7O0FBSUFuQixVQUFRLENBQUNnQixTQUFULENBQW1CTCxTQUFuQixHQUErQixZQUFXO0FBQ3RDLFdBQU9aLENBQUMsQ0FBQyxLQUFLRyxPQUFMLENBQWFPLE1BQWQsQ0FBRCxDQUNGcUMsSUFERSxDQUNHLDJDQUEyQyxLQUFLNUMsT0FBTCxDQUFhTyxNQUF4RCxHQUFpRSxJQURwRSxFQUVGc0MsSUFGRSxDQUVHaEQsQ0FBQyxDQUFDMkMsS0FBRixDQUFRLFVBQVNNLENBQVQsRUFBWS9DLE9BQVosRUFBcUI7QUFDL0IsVUFBSUUsUUFBUSxHQUFHSixDQUFDLENBQUNFLE9BQUQsQ0FBaEI7QUFDQSxXQUFLVyx3QkFBTCxDQUE4QnFDLG9CQUFvQixDQUFDOUMsUUFBRCxDQUFsRCxFQUE4REEsUUFBOUQ7QUFDSCxLQUhLLEVBR0gsSUFIRyxDQUZILEVBTUYrQyxHQU5FLEVBQVA7QUFPSCxHQVJEOztBQVVBbEQsVUFBUSxDQUFDZ0IsU0FBVCxDQUFtQkosd0JBQW5CLEdBQThDLFVBQVNULFFBQVQsRUFBbUJHLFFBQW5CLEVBQTZCO0FBQ3ZFLFFBQUk2QyxNQUFNLEdBQUdoRCxRQUFRLENBQUNnQixRQUFULENBQWtCLElBQWxCLENBQWI7QUFFQWhCLFlBQVEsQ0FBQytCLElBQVQsQ0FBYyxlQUFkLEVBQStCaUIsTUFBL0I7QUFDQTdDLFlBQVEsQ0FDSDhDLFdBREwsQ0FDaUIsV0FEakIsRUFDOEIsQ0FBQ0QsTUFEL0IsRUFFS2pCLElBRkwsQ0FFVSxlQUZWLEVBRTJCaUIsTUFGM0I7QUFHSCxHQVBEOztBQVNBLFdBQVNGLG9CQUFULENBQThCM0MsUUFBOUIsRUFBd0M7QUFDcEMsUUFBSStDLElBQUo7QUFDQSxRQUFJQyxNQUFNLEdBQUdoRCxRQUFRLENBQUM0QixJQUFULENBQWMsYUFBZCxLQUNmLENBQUNtQixJQUFJLEdBQUcvQyxRQUFRLENBQUM0QixJQUFULENBQWMsTUFBZCxDQUFSLEtBQWtDbUIsSUFBSSxDQUFDRSxPQUFMLENBQWEsZ0JBQWIsRUFBK0IsRUFBL0IsQ0FEaEMsQ0FGb0MsQ0FHZ0M7O0FBRXBFLFdBQU94RCxDQUFDLENBQUN1RCxNQUFELENBQVI7QUFDSCxHQXhKUyxDQTBKVjtBQUNBOzs7QUFFQSxXQUFTeEIsTUFBVCxDQUFnQjBCLE1BQWhCLEVBQXdCO0FBQ3BCLFdBQU8sS0FBS1QsSUFBTCxDQUFVLFlBQVc7QUFDeEIsVUFBSVUsS0FBSyxHQUFHMUQsQ0FBQyxDQUFDLElBQUQsQ0FBYjtBQUNBLFVBQUkwQixJQUFJLEdBQUdnQyxLQUFLLENBQUNoQyxJQUFOLENBQVcsYUFBWCxDQUFYO0FBQ0EsVUFBSXZCLE9BQU8sR0FBR0gsQ0FBQyxDQUFDSyxNQUFGLENBQVMsRUFBVCxFQUFhSixRQUFRLENBQUNLLFFBQXRCLEVBQWdDb0QsS0FBSyxDQUFDaEMsSUFBTixFQUFoQyxFQUE4QyxRQUFPK0IsTUFBUCxNQUFrQixRQUFsQixJQUE4QkEsTUFBNUUsQ0FBZDtBQUVBLFVBQUksQ0FBQy9CLElBQUQsSUFBU3ZCLE9BQU8sQ0FBQ1csTUFBakIsSUFBMkIsWUFBWTZDLElBQVosQ0FBaUJGLE1BQWpCLENBQS9CLEVBQXlEdEQsT0FBTyxDQUFDVyxNQUFSLEdBQWlCLEtBQWpCO0FBQ3pELFVBQUksQ0FBQ1ksSUFBTCxFQUFXZ0MsS0FBSyxDQUFDaEMsSUFBTixDQUFXLGFBQVgsRUFBMkJBLElBQUksR0FBRyxJQUFJekIsUUFBSixDQUFhLElBQWIsRUFBbUJFLE9BQW5CLENBQWxDO0FBQ1gsVUFBSSxPQUFPc0QsTUFBUCxLQUFrQixRQUF0QixFQUFnQy9CLElBQUksQ0FBQytCLE1BQUQsQ0FBSjtBQUNuQyxLQVJNLENBQVA7QUFTSDs7QUFFRCxNQUFJRyxHQUFHLEdBQUc1RCxDQUFDLENBQUM2RCxFQUFGLENBQUtDLFFBQWY7QUFFQTlELEdBQUMsQ0FBQzZELEVBQUYsQ0FBS0MsUUFBTCxHQUFnQi9CLE1BQWhCO0FBQ0EvQixHQUFDLENBQUM2RCxFQUFGLENBQUtDLFFBQUwsQ0FBY0MsV0FBZCxHQUE0QjlELFFBQTVCLENBNUtVLENBOEtWO0FBQ0E7O0FBRUFELEdBQUMsQ0FBQzZELEVBQUYsQ0FBS0MsUUFBTCxDQUFjRSxVQUFkLEdBQTJCLFlBQVc7QUFDbENoRSxLQUFDLENBQUM2RCxFQUFGLENBQUtDLFFBQUwsR0FBZ0JGLEdBQWhCO0FBQ0EsV0FBTyxJQUFQO0FBQ0gsR0FIRCxDQWpMVSxDQXNMVjtBQUNBOzs7QUFFQTVELEdBQUMsQ0FBQ2lFLFFBQUQsQ0FBRCxDQUFZQyxFQUFaLENBQWUsNEJBQWYsRUFBNkMsMEJBQTdDLEVBQXlFLFVBQVNDLENBQVQsRUFBWTtBQUNqRixRQUFJVCxLQUFLLEdBQUcxRCxDQUFDLENBQUMsSUFBRCxDQUFiO0FBRUEsUUFBSSxDQUFDMEQsS0FBSyxDQUFDdkIsSUFBTixDQUFXLGFBQVgsQ0FBTCxFQUFnQ2dDLENBQUMsQ0FBQ0MsY0FBRjtBQUVoQyxRQUFJQyxPQUFPLEdBQUduQixvQkFBb0IsQ0FBQ1EsS0FBRCxDQUFsQztBQUNBLFFBQUloQyxJQUFJLEdBQUcyQyxPQUFPLENBQUMzQyxJQUFSLENBQWEsYUFBYixDQUFYO0FBQ0EsUUFBSStCLE1BQU0sR0FBRy9CLElBQUksR0FBRyxRQUFILEdBQWNnQyxLQUFLLENBQUNoQyxJQUFOLEVBQS9CO0FBRUFLLFVBQU0sQ0FBQ0MsSUFBUCxDQUFZcUMsT0FBWixFQUFxQlosTUFBckI7QUFDSCxHQVZEO0FBWUgsQ0FyTUMsQ0FxTUFhLCtDQXJNQSxDQUFGIiwiZmlsZSI6Ii4vYXBwL3V0aWxzL2Jvb3RzdHJhcC1jb2xsYXBzZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBqUXVlcnkgZnJvbSAnanF1ZXJ5JztcblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBCb290c3RyYXA6IGNvbGxhcHNlLmpzIHYzLjQuMFxuICogaHR0cDovL2dldGJvb3RzdHJhcC5jb20vamF2YXNjcmlwdC8jY29sbGFwc2VcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogQ29weXJpZ2h0IDIwMTEtMjAxNiBUd2l0dGVyLCBJbmMuXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21hc3Rlci9MSUNFTlNFKVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIGpzaGludCBsYXRlZGVmOiBmYWxzZSAqL1xuXG4rKGZ1bmN0aW9uKCQpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvLyBDT0xMQVBTRSBQVUJMSUMgQ0xBU1MgREVGSU5JVElPTlxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgICB2YXIgQ29sbGFwc2UgPSBmdW5jdGlvbihlbGVtZW50LCBvcHRpb25zKSB7XG4gICAgICAgIHRoaXMuJGVsZW1lbnQgPSAkKGVsZW1lbnQpO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSAkLmV4dGVuZCh7fSwgQ29sbGFwc2UuREVGQVVMVFMsIG9wdGlvbnMpO1xuICAgICAgICB0aGlzLiR0cmlnZ2VyID0gJCgnW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl1baHJlZj1cIiMnICsgZWxlbWVudC5pZCArICdcIl0sJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAnW2RhdGEtdG9nZ2xlPVwiY29sbGFwc2VcIl1bZGF0YS10YXJnZXQ9XCIjJyArIGVsZW1lbnQuaWQgKyAnXCJdJyk7XG4gICAgICAgIHRoaXMudHJhbnNpdGlvbmluZyA9IG51bGw7XG5cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5wYXJlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuJHBhcmVudCA9IHRoaXMuZ2V0UGFyZW50KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmFkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcyh0aGlzLiRlbGVtZW50LCB0aGlzLiR0cmlnZ2VyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMudG9nZ2xlKSB0aGlzLnRvZ2dsZSgpO1xuICAgIH07XG5cbiAgICBDb2xsYXBzZS5WRVJTSU9OID0gJzMuNC4wJztcblxuICAgIENvbGxhcHNlLlRSQU5TSVRJT05fRFVSQVRJT04gPSAzNTA7XG5cbiAgICBDb2xsYXBzZS5ERUZBVUxUUyA9IHtcbiAgICAgICAgdG9nZ2xlOiB0cnVlXG4gICAgfTtcblxuICAgIENvbGxhcHNlLnByb3RvdHlwZS5kaW1lbnNpb24gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGhhc1dpZHRoID0gdGhpcy4kZWxlbWVudC5oYXNDbGFzcygnd2lkdGgnKTtcbiAgICAgICAgcmV0dXJuIGhhc1dpZHRoID8gJ3dpZHRoJyA6ICdoZWlnaHQnO1xuICAgIH07XG5cbiAgICBDb2xsYXBzZS5wcm90b3R5cGUuc2hvdyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy50cmFuc2l0aW9uaW5nIHx8IHRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoJ2luJykpIHJldHVybjtcblxuICAgICAgICB2YXIgYWN0aXZlc0RhdGE7XG4gICAgICAgIHZhciBhY3RpdmVzID0gdGhpcy4kcGFyZW50ICYmIHRoaXMuJHBhcmVudC5jaGlsZHJlbignLnBhbmVsJykuY2hpbGRyZW4oJy5pbiwgLmNvbGxhcHNpbmcnKTtcblxuICAgICAgICBpZiAoYWN0aXZlcyAmJiBhY3RpdmVzLmxlbmd0aCkge1xuICAgICAgICAgICAgYWN0aXZlc0RhdGEgPSBhY3RpdmVzLmRhdGEoJ2JzLmNvbGxhcHNlJyk7XG4gICAgICAgICAgICBpZiAoYWN0aXZlc0RhdGEgJiYgYWN0aXZlc0RhdGEudHJhbnNpdGlvbmluZykgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHN0YXJ0RXZlbnQgPSAkLkV2ZW50KCdzaG93LmJzLmNvbGxhcHNlJyk7XG4gICAgICAgIHRoaXMuJGVsZW1lbnQudHJpZ2dlcihzdGFydEV2ZW50KTtcbiAgICAgICAgaWYgKHN0YXJ0RXZlbnQuaXNEZWZhdWx0UHJldmVudGVkKCkpIHJldHVybjtcblxuICAgICAgICBpZiAoYWN0aXZlcyAmJiBhY3RpdmVzLmxlbmd0aCkge1xuICAgICAgICAgICAgUGx1Z2luLmNhbGwoYWN0aXZlcywgJ2hpZGUnKTtcbiAgICAgICAgICAgIGFjdGl2ZXNEYXRhIHx8IGFjdGl2ZXMuZGF0YSgnYnMuY29sbGFwc2UnLCBudWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBkaW1lbnNpb24gPSB0aGlzLmRpbWVuc2lvbigpO1xuXG4gICAgICAgIHRoaXMuJGVsZW1lbnRcbiAgICAgICAgICAgIC5yZW1vdmVDbGFzcygnY29sbGFwc2UnKVxuICAgICAgICAgICAgLmFkZENsYXNzKCdjb2xsYXBzaW5nJylbZGltZW5zaW9uXSgwKVxuICAgICAgICAgICAgLmF0dHIoJ2FyaWEtZXhwYW5kZWQnLCB0cnVlKTtcblxuICAgICAgICB0aGlzLiR0cmlnZ2VyXG4gICAgICAgICAgICAucmVtb3ZlQ2xhc3MoJ2NvbGxhcHNlZCcpXG4gICAgICAgICAgICAuYXR0cignYXJpYS1leHBhbmRlZCcsIHRydWUpO1xuXG4gICAgICAgIHRoaXMudHJhbnNpdGlvbmluZyA9IDE7XG5cbiAgICAgICAgdmFyIGNvbXBsZXRlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB0aGlzLiRlbGVtZW50XG4gICAgICAgICAgICAgICAgLnJlbW92ZUNsYXNzKCdjb2xsYXBzaW5nJylcbiAgICAgICAgICAgICAgICAuYWRkQ2xhc3MoJ2NvbGxhcHNlIGluJylbZGltZW5zaW9uXSgnJyk7XG4gICAgICAgICAgICB0aGlzLnRyYW5zaXRpb25pbmcgPSAwO1xuICAgICAgICAgICAgdGhpcy4kZWxlbWVudFxuICAgICAgICAgICAgICAgIC50cmlnZ2VyKCdzaG93bi5icy5jb2xsYXBzZScpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGlmICghJC5zdXBwb3J0LnRyYW5zaXRpb24pIHJldHVybiBjb21wbGV0ZS5jYWxsKHRoaXMpO1xuXG4gICAgICAgIHZhciBzY3JvbGxTaXplID0gJC5jYW1lbENhc2UoWydzY3JvbGwnLCBkaW1lbnNpb25dLmpvaW4oJy0nKSk7XG5cbiAgICAgICAgdGhpcy4kZWxlbWVudFxuICAgICAgICAgICAgLm9uZSgnYnNUcmFuc2l0aW9uRW5kJywgJC5wcm94eShjb21wbGV0ZSwgdGhpcykpXG4gICAgICAgICAgICAuZW11bGF0ZVRyYW5zaXRpb25FbmQoQ29sbGFwc2UuVFJBTlNJVElPTl9EVVJBVElPTilbZGltZW5zaW9uXSh0aGlzLiRlbGVtZW50WzBdW3Njcm9sbFNpemVdKTtcbiAgICB9O1xuXG4gICAgQ29sbGFwc2UucHJvdG90eXBlLmhpZGUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMudHJhbnNpdGlvbmluZyB8fCAhdGhpcy4kZWxlbWVudC5oYXNDbGFzcygnaW4nKSkgcmV0dXJuO1xuXG4gICAgICAgIHZhciBzdGFydEV2ZW50ID0gJC5FdmVudCgnaGlkZS5icy5jb2xsYXBzZScpO1xuICAgICAgICB0aGlzLiRlbGVtZW50LnRyaWdnZXIoc3RhcnRFdmVudCk7XG4gICAgICAgIGlmIChzdGFydEV2ZW50LmlzRGVmYXVsdFByZXZlbnRlZCgpKSByZXR1cm47XG5cbiAgICAgICAgdmFyIGRpbWVuc2lvbiA9IHRoaXMuZGltZW5zaW9uKCk7XG5cbiAgICAgICAgdGhpcy4kZWxlbWVudFtkaW1lbnNpb25dKHRoaXMuJGVsZW1lbnRbZGltZW5zaW9uXSgpKVswXS5vZmZzZXRIZWlnaHQ7XG5cbiAgICAgICAgdGhpcy4kZWxlbWVudFxuICAgICAgICAgICAgLmFkZENsYXNzKCdjb2xsYXBzaW5nJylcbiAgICAgICAgICAgIC5yZW1vdmVDbGFzcygnY29sbGFwc2UgaW4nKVxuICAgICAgICAgICAgLmF0dHIoJ2FyaWEtZXhwYW5kZWQnLCBmYWxzZSk7XG5cbiAgICAgICAgdGhpcy4kdHJpZ2dlclxuICAgICAgICAgICAgLmFkZENsYXNzKCdjb2xsYXBzZWQnKVxuICAgICAgICAgICAgLmF0dHIoJ2FyaWEtZXhwYW5kZWQnLCBmYWxzZSk7XG5cbiAgICAgICAgdGhpcy50cmFuc2l0aW9uaW5nID0gMTtcblxuICAgICAgICB2YXIgY29tcGxldGUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHRoaXMudHJhbnNpdGlvbmluZyA9IDA7XG4gICAgICAgICAgICB0aGlzLiRlbGVtZW50XG4gICAgICAgICAgICAgICAgLnJlbW92ZUNsYXNzKCdjb2xsYXBzaW5nJylcbiAgICAgICAgICAgICAgICAuYWRkQ2xhc3MoJ2NvbGxhcHNlJylcbiAgICAgICAgICAgICAgICAudHJpZ2dlcignaGlkZGVuLmJzLmNvbGxhcHNlJyk7XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKCEkLnN1cHBvcnQudHJhbnNpdGlvbikgcmV0dXJuIGNvbXBsZXRlLmNhbGwodGhpcyk7XG5cbiAgICAgICAgdGhpcy4kZWxlbWVudFtkaW1lbnNpb25dKDApXG4gICAgICAgICAgICAub25lKCdic1RyYW5zaXRpb25FbmQnLCAkLnByb3h5KGNvbXBsZXRlLCB0aGlzKSlcbiAgICAgICAgICAgIC5lbXVsYXRlVHJhbnNpdGlvbkVuZChDb2xsYXBzZS5UUkFOU0lUSU9OX0RVUkFUSU9OKTtcbiAgICB9O1xuXG4gICAgQ29sbGFwc2UucHJvdG90eXBlLnRvZ2dsZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICB0aGlzW3RoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoJ2luJykgPyAnaGlkZScgOiAnc2hvdyddKCk7XG4gICAgfTtcblxuICAgIENvbGxhcHNlLnByb3RvdHlwZS5nZXRQYXJlbnQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuICQodGhpcy5vcHRpb25zLnBhcmVudClcbiAgICAgICAgICAgIC5maW5kKCdbZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXVtkYXRhLXBhcmVudD1cIicgKyB0aGlzLm9wdGlvbnMucGFyZW50ICsgJ1wiXScpXG4gICAgICAgICAgICAuZWFjaCgkLnByb3h5KGZ1bmN0aW9uKGksIGVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICB2YXIgJGVsZW1lbnQgPSAkKGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkQXJpYUFuZENvbGxhcHNlZENsYXNzKGdldFRhcmdldEZyb21UcmlnZ2VyKCRlbGVtZW50KSwgJGVsZW1lbnQpO1xuICAgICAgICAgICAgfSwgdGhpcykpXG4gICAgICAgICAgICAuZW5kKCk7XG4gICAgfTtcblxuICAgIENvbGxhcHNlLnByb3RvdHlwZS5hZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3MgPSBmdW5jdGlvbigkZWxlbWVudCwgJHRyaWdnZXIpIHtcbiAgICAgICAgdmFyIGlzT3BlbiA9ICRlbGVtZW50Lmhhc0NsYXNzKCdpbicpO1xuXG4gICAgICAgICRlbGVtZW50LmF0dHIoJ2FyaWEtZXhwYW5kZWQnLCBpc09wZW4pO1xuICAgICAgICAkdHJpZ2dlclxuICAgICAgICAgICAgLnRvZ2dsZUNsYXNzKCdjb2xsYXBzZWQnLCAhaXNPcGVuKVxuICAgICAgICAgICAgLmF0dHIoJ2FyaWEtZXhwYW5kZWQnLCBpc09wZW4pO1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiBnZXRUYXJnZXRGcm9tVHJpZ2dlcigkdHJpZ2dlcikge1xuICAgICAgICB2YXIgaHJlZjtcbiAgICAgICAgdmFyIHRhcmdldCA9ICR0cmlnZ2VyLmF0dHIoJ2RhdGEtdGFyZ2V0JykgfHxcbiAgICAgIChocmVmID0gJHRyaWdnZXIuYXR0cignaHJlZicpKSAmJiBocmVmLnJlcGxhY2UoLy4qKD89I1teXFxzXSskKS8sICcnKTsgLy8gc3RyaXAgZm9yIGllN1xuXG4gICAgICAgIHJldHVybiAkKHRhcmdldCk7XG4gICAgfVxuXG4gICAgLy8gQ09MTEFQU0UgUExVR0lOIERFRklOSVRJT05cbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gICAgZnVuY3Rpb24gUGx1Z2luKG9wdGlvbikge1xuICAgICAgICByZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyICR0aGlzID0gJCh0aGlzKTtcbiAgICAgICAgICAgIHZhciBkYXRhID0gJHRoaXMuZGF0YSgnYnMuY29sbGFwc2UnKTtcbiAgICAgICAgICAgIHZhciBvcHRpb25zID0gJC5leHRlbmQoe30sIENvbGxhcHNlLkRFRkFVTFRTLCAkdGhpcy5kYXRhKCksIHR5cGVvZiBvcHRpb24gPT09ICdvYmplY3QnICYmIG9wdGlvbik7XG5cbiAgICAgICAgICAgIGlmICghZGF0YSAmJiBvcHRpb25zLnRvZ2dsZSAmJiAvc2hvd3xoaWRlLy50ZXN0KG9wdGlvbikpIG9wdGlvbnMudG9nZ2xlID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAoIWRhdGEpICR0aGlzLmRhdGEoJ2JzLmNvbGxhcHNlJywgKGRhdGEgPSBuZXcgQ29sbGFwc2UodGhpcywgb3B0aW9ucykpKTtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnc3RyaW5nJykgZGF0YVtvcHRpb25dKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHZhciBvbGQgPSAkLmZuLmNvbGxhcHNlO1xuXG4gICAgJC5mbi5jb2xsYXBzZSA9IFBsdWdpbjtcbiAgICAkLmZuLmNvbGxhcHNlLkNvbnN0cnVjdG9yID0gQ29sbGFwc2U7XG5cbiAgICAvLyBDT0xMQVBTRSBOTyBDT05GTElDVFxuICAgIC8vID09PT09PT09PT09PT09PT09PT09XG5cbiAgICAkLmZuLmNvbGxhcHNlLm5vQ29uZmxpY3QgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgJC5mbi5jb2xsYXBzZSA9IG9sZDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcblxuICAgIC8vIENPTExBUFNFIERBVEEtQVBJXG4gICAgLy8gPT09PT09PT09PT09PT09PT1cblxuICAgICQoZG9jdW1lbnQpLm9uKCdjbGljay5icy5jb2xsYXBzZS5kYXRhLWFwaScsICdbZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXScsIGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgdmFyICR0aGlzID0gJCh0aGlzKTtcblxuICAgICAgICBpZiAoISR0aGlzLmF0dHIoJ2RhdGEtdGFyZ2V0JykpIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICB2YXIgJHRhcmdldCA9IGdldFRhcmdldEZyb21UcmlnZ2VyKCR0aGlzKTtcbiAgICAgICAgdmFyIGRhdGEgPSAkdGFyZ2V0LmRhdGEoJ2JzLmNvbGxhcHNlJyk7XG4gICAgICAgIHZhciBvcHRpb24gPSBkYXRhID8gJ3RvZ2dsZScgOiAkdGhpcy5kYXRhKCk7XG5cbiAgICAgICAgUGx1Z2luLmNhbGwoJHRhcmdldCwgb3B0aW9uKTtcbiAgICB9KTtcblxufShqUXVlcnkpKTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/utils/bootstrap-collapse.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/utils/bootstrap-datetimepicker.js":
|
|
/*!***********************************************!*\
|
|
!*** ./app/utils/bootstrap-datetimepicker.js ***!
|
|
\***********************************************/
|
|
/***/ ((module, exports, __webpack_require__) => {
|
|
|
|
eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*! version : 4.17.47\n =========================================================\n bootstrap-datetimejs\n https://github.com/Eonasdan/bootstrap-datetimepicker\n Copyright (c) 2015 Jonathan Peterson\n =========================================================\n */\n\n/*\n The MIT License (MIT)\n\n Copyright (c) 2015 Jonathan Peterson\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n */\n\n/* global define:false */\n\n/* global jQuery:false */\n\n/* global moment:false */\n(function (factory) {\n 'use strict';\n\n if (true) {\n // AMD is used - Register as an anonymous module.\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! jquery */ \"jquery\"), __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else {}\n})(function ($, moment) {\n 'use strict';\n\n if (!moment) {\n throw new Error('bootstrap-datetimepicker requires Moment.js to be loaded first');\n }\n\n var dateTimePicker = function dateTimePicker(element, options) {\n var picker = {};\n var date;\n var viewDate;\n var unset = true;\n var input;\n var component = false;\n var widget = false;\n var use24Hours;\n var minViewModeNumber = 0;\n var actualFormat;\n var parseFormats;\n var currentViewMode;\n var datePickerModes = [{\n clsName: 'days',\n navFnc: 'M',\n navStep: 1\n }, {\n clsName: 'months',\n navFnc: 'y',\n navStep: 1\n }, {\n clsName: 'years',\n navFnc: 'y',\n navStep: 10\n }, {\n clsName: 'decades',\n navFnc: 'y',\n navStep: 100\n }];\n var viewModes = ['days', 'months', 'years', 'decades'];\n var verticalModes = ['top', 'bottom', 'auto'];\n var horizontalModes = ['left', 'right', 'auto'];\n var toolbarPlacements = ['default', 'top', 'bottom'];\n var keyMap = {\n 'up': 38,\n 38: 'up',\n 'down': 40,\n 40: 'down',\n 'left': 37,\n 37: 'left',\n 'right': 39,\n 39: 'right',\n 'tab': 9,\n 9: 'tab',\n 'escape': 27,\n 27: 'escape',\n 'enter': 13,\n 13: 'enter',\n 'pageUp': 33,\n 33: 'pageUp',\n 'pageDown': 34,\n 34: 'pageDown',\n 'shift': 16,\n 16: 'shift',\n 'control': 17,\n 17: 'control',\n 'space': 32,\n 32: 'space',\n 't': 84,\n 84: 't',\n 'delete': 46,\n 46: 'delete'\n };\n var keyState = {};\n /** ******************************************************************************\n *\n * Private functions\n *\n ********************************************************************************/\n\n var hasTimeZone = function hasTimeZone() {\n return moment.tz !== undefined && options.timeZone !== undefined && options.timeZone !== null && options.timeZone !== '';\n };\n\n var getMoment = function getMoment(d) {\n var returnMoment;\n\n if (d === undefined || d === null) {\n returnMoment = moment(); // TODO should this use format? and locale?\n } else if (moment.isDate(d) || moment.isMoment(d)) {\n // If the date that is passed in is already a Date() or moment() object,\n // pass it directly to moment.\n returnMoment = moment(d);\n } else if (hasTimeZone()) {\n // There is a string to parse and a default time zone\n // parse with the tz function which takes a default time zone if it is not in the format string\n returnMoment = moment.tz(d, parseFormats, options.useStrict, options.timeZone);\n } else {\n returnMoment = moment(d, parseFormats, options.useStrict);\n }\n\n if (hasTimeZone()) {\n returnMoment.tz(options.timeZone);\n }\n\n return returnMoment;\n };\n\n var isEnabled = function isEnabled(granularity) {\n if (typeof granularity !== 'string' || granularity.length > 1) {\n throw new TypeError('isEnabled expects a single character string parameter');\n }\n\n switch (granularity) {\n case 'y':\n return actualFormat.indexOf('Y') !== -1;\n\n case 'M':\n return actualFormat.indexOf('M') !== -1;\n\n case 'd':\n return actualFormat.toLowerCase().indexOf('d') !== -1;\n\n case 'h':\n case 'H':\n return actualFormat.toLowerCase().indexOf('h') !== -1;\n\n case 'm':\n return actualFormat.indexOf('m') !== -1;\n\n case 's':\n return actualFormat.indexOf('s') !== -1;\n\n default:\n return false;\n }\n };\n\n var hasTime = function hasTime() {\n return isEnabled('h') || isEnabled('m') || isEnabled('s');\n };\n\n var hasDate = function hasDate() {\n return isEnabled('y') || isEnabled('M') || isEnabled('d');\n };\n\n var getDatePickerTemplate = function getDatePickerTemplate() {\n var headTemplate = $('<thead>').append($('<tr>').append($('<th>').addClass('prev').attr('data-action', 'previous').append($('<span>').addClass(options.icons.previous))).append($('<th>').addClass('picker-switch').attr('data-action', 'pickerSwitch').attr('colspan', options.calendarWeeks ? '6' : '5')).append($('<th>').addClass('next').attr('data-action', 'next').append($('<span>').addClass(options.icons.next))));\n var contTemplate = $('<tbody>').append($('<tr>').append($('<td>').attr('colspan', options.calendarWeeks ? '8' : '7')));\n return [$('<div>').addClass('datepicker-days').append($('<table>').addClass('table-condensed').append(headTemplate).append($('<tbody>'))), $('<div>').addClass('datepicker-months').append($('<table>').addClass('table-condensed').append(headTemplate.clone()).append(contTemplate.clone())), $('<div>').addClass('datepicker-years').append($('<table>').addClass('table-condensed').append(headTemplate.clone()).append(contTemplate.clone())), $('<div>').addClass('datepicker-decades').append($('<table>').addClass('table-condensed').append(headTemplate.clone()).append(contTemplate.clone()))];\n };\n\n var getTimePickerMainTemplate = function getTimePickerMainTemplate() {\n var topRow = $('<tr>');\n var middleRow = $('<tr>');\n var bottomRow = $('<tr>');\n\n if (isEnabled('h')) {\n topRow.append($('<td>').append($('<a>').attr({\n href: '#',\n tabindex: '-1',\n 'title': options.tooltips.incrementHour\n }).addClass('btn').attr('data-action', 'incrementHours').append($('<span>').addClass(options.icons.up))));\n middleRow.append($('<td>').append($('<span>').addClass('timepicker-hour').attr({\n 'data-time-component': 'hours',\n 'title': options.tooltips.pickHour\n }).attr('data-action', 'showHours')));\n bottomRow.append($('<td>').append($('<a>').attr({\n href: '#',\n tabindex: '-1',\n 'title': options.tooltips.decrementHour\n }).addClass('btn').attr('data-action', 'decrementHours').append($('<span>').addClass(options.icons.down))));\n }\n\n if (isEnabled('m')) {\n if (isEnabled('h')) {\n topRow.append($('<td>').addClass('separator'));\n middleRow.append($('<td>').addClass('separator').html(':'));\n bottomRow.append($('<td>').addClass('separator'));\n }\n\n topRow.append($('<td>').append($('<a>').attr({\n href: '#',\n tabindex: '-1',\n 'title': options.tooltips.incrementMinute\n }).addClass('btn').attr('data-action', 'incrementMinutes').append($('<span>').addClass(options.icons.up))));\n middleRow.append($('<td>').append($('<span>').addClass('timepicker-minute').attr({\n 'data-time-component': 'minutes',\n 'title': options.tooltips.pickMinute\n }).attr('data-action', 'showMinutes')));\n bottomRow.append($('<td>').append($('<a>').attr({\n href: '#',\n tabindex: '-1',\n 'title': options.tooltips.decrementMinute\n }).addClass('btn').attr('data-action', 'decrementMinutes').append($('<span>').addClass(options.icons.down))));\n }\n\n if (isEnabled('s')) {\n if (isEnabled('m')) {\n topRow.append($('<td>').addClass('separator'));\n middleRow.append($('<td>').addClass('separator').html(':'));\n bottomRow.append($('<td>').addClass('separator'));\n }\n\n topRow.append($('<td>').append($('<a>').attr({\n href: '#',\n tabindex: '-1',\n 'title': options.tooltips.incrementSecond\n }).addClass('btn').attr('data-action', 'incrementSeconds').append($('<span>').addClass(options.icons.up))));\n middleRow.append($('<td>').append($('<span>').addClass('timepicker-second').attr({\n 'data-time-component': 'seconds',\n 'title': options.tooltips.pickSecond\n }).attr('data-action', 'showSeconds')));\n bottomRow.append($('<td>').append($('<a>').attr({\n href: '#',\n tabindex: '-1',\n 'title': options.tooltips.decrementSecond\n }).addClass('btn').attr('data-action', 'decrementSeconds').append($('<span>').addClass(options.icons.down))));\n }\n\n if (!use24Hours) {\n topRow.append($('<td>').addClass('separator'));\n middleRow.append($('<td>').append($('<button>').addClass('btn btn-primary').attr({\n 'data-action': 'togglePeriod',\n tabindex: '-1',\n 'title': options.tooltips.togglePeriod\n })));\n bottomRow.append($('<td>').addClass('separator'));\n }\n\n return $('<div>').addClass('timepicker-picker').append($('<table>').addClass('table-condensed').append([topRow, middleRow, bottomRow]));\n };\n\n var getTimePickerTemplate = function getTimePickerTemplate() {\n var hoursView = $('<div>').addClass('timepicker-hours').append($('<table>').addClass('table-condensed'));\n var minutesView = $('<div>').addClass('timepicker-minutes').append($('<table>').addClass('table-condensed'));\n var secondsView = $('<div>').addClass('timepicker-seconds').append($('<table>').addClass('table-condensed'));\n var ret = [getTimePickerMainTemplate()];\n\n if (isEnabled('h')) {\n ret.push(hoursView);\n }\n\n if (isEnabled('m')) {\n ret.push(minutesView);\n }\n\n if (isEnabled('s')) {\n ret.push(secondsView);\n }\n\n return ret;\n };\n\n var getToolbar = function getToolbar() {\n var row = [];\n\n if (options.showTodayButton) {\n row.push($('<td>').append($('<a>').attr({\n 'data-action': 'today',\n 'title': options.tooltips.today\n }).append($('<span>').addClass(options.icons.today))));\n }\n\n if (!options.sideBySide && hasDate() && hasTime()) {\n row.push($('<td>').append($('<a>').attr({\n 'data-action': 'togglePicker',\n 'title': options.tooltips.selectTime\n }).append($('<span>').addClass(options.icons.time))));\n }\n\n if (options.showClear) {\n row.push($('<td>').append($('<a>').attr({\n 'data-action': 'clear',\n 'title': options.tooltips.clear\n }).append($('<span>').addClass(options.icons.clear))));\n }\n\n if (options.showClose) {\n row.push($('<td>').append($('<a>').attr({\n 'data-action': 'close',\n 'title': options.tooltips.close\n }).append($('<span>').addClass(options.icons.close))));\n }\n\n return $('<table>').addClass('table-condensed').append($('<tbody>').append($('<tr>').append(row)));\n };\n\n var getTemplate = function getTemplate() {\n var template = $('<div>').addClass('bootstrap-datetimepicker-widget dropdown-menu');\n var dateView = $('<div>').addClass('datepicker').append(getDatePickerTemplate());\n var timeView = $('<div>').addClass('timepicker').append(getTimePickerTemplate());\n var content = $('<ul>').addClass('list-unstyled');\n var toolbar = $('<li>').addClass('picker-switch' + (options.collapse ? ' accordion-toggle' : '')).append(getToolbar());\n\n if (options.inline) {\n template.removeClass('dropdown-menu');\n }\n\n if (use24Hours) {\n template.addClass('usetwentyfour');\n }\n\n if (isEnabled('s') && !use24Hours) {\n template.addClass('wider');\n }\n\n if (options.sideBySide && hasDate() && hasTime()) {\n template.addClass('timepicker-sbs');\n\n if (options.toolbarPlacement === 'top') {\n template.append(toolbar);\n }\n\n template.append($('<div>').addClass('row').append(dateView.addClass('col-md-6')).append(timeView.addClass('col-md-6')));\n\n if (options.toolbarPlacement === 'bottom') {\n template.append(toolbar);\n }\n\n return template;\n }\n\n if (options.toolbarPlacement === 'top') {\n content.append(toolbar);\n }\n\n if (hasDate()) {\n content.append($('<li>').addClass(options.collapse && hasTime() ? 'collapse in' : '').append(dateView));\n }\n\n if (options.toolbarPlacement === 'default') {\n content.append(toolbar);\n }\n\n if (hasTime()) {\n content.append($('<li>').addClass(options.collapse && hasDate() ? 'collapse' : '').append(timeView));\n }\n\n if (options.toolbarPlacement === 'bottom') {\n content.append(toolbar);\n }\n\n return template.append(content);\n };\n\n var dataToOptions = function dataToOptions() {\n var eData;\n var dataOptions = {};\n\n if (element.is('input') || options.inline) {\n eData = element.data();\n } else {\n eData = element.find('input').data();\n }\n\n if (eData.dateOptions && eData.dateOptions instanceof Object) {\n dataOptions = $.extend(true, dataOptions, eData.dateOptions);\n }\n\n $.each(options, function (key) {\n var attributeName = 'date' + key.charAt(0).toUpperCase() + key.slice(1);\n\n if (eData[attributeName] !== undefined) {\n dataOptions[key] = eData[attributeName];\n }\n });\n return dataOptions;\n };\n\n var place = function place() {\n var position = (component || element).position();\n var offset = (component || element).offset();\n var vertical = options.widgetPositioning.vertical;\n var horizontal = options.widgetPositioning.horizontal;\n var parent;\n\n if (options.widgetParent) {\n parent = options.widgetParent.append(widget);\n } else if (element.is('input')) {\n parent = element.after(widget).parent();\n } else if (options.inline) {\n parent = element.append(widget);\n return;\n } else {\n parent = element;\n element.children().first().after(widget);\n } // Top and bottom logic\n\n\n if (vertical === 'auto') {\n if (offset.top + widget.height() * 1.5 >= $(window).height() + $(window).scrollTop() && widget.height() + element.outerHeight() < offset.top) {\n vertical = 'top';\n } else {\n vertical = 'bottom';\n }\n } // Left and right logic\n\n\n if (horizontal === 'auto') {\n if (parent.width() < offset.left + widget.outerWidth() / 2 && offset.left + widget.outerWidth() > $(window).width()) {\n horizontal = 'right';\n } else {\n horizontal = 'left';\n }\n }\n\n if (vertical === 'top') {\n widget.addClass('top').removeClass('bottom');\n } else {\n widget.addClass('bottom').removeClass('top');\n }\n\n if (horizontal === 'right') {\n widget.addClass('pull-right');\n } else {\n widget.removeClass('pull-right');\n } // find the first parent element that has a non-static css positioning\n\n\n if (parent.css('position') === 'static') {\n parent = parent.parents().filter(function () {\n return $(this).css('position') !== 'static';\n }).first();\n }\n\n if (parent.length === 0) {\n throw new Error('datetimepicker component should be placed within a non-static positioned container');\n }\n\n widget.css({\n top: vertical === 'top' ? 'auto' : position.top + element.outerHeight(),\n bottom: vertical === 'top' ? parent.outerHeight() - (parent === element ? 0 : position.top) : 'auto',\n left: horizontal === 'left' ? parent === element ? 0 : position.left : 'auto',\n right: horizontal === 'left' ? 'auto' : parent.outerWidth() - element.outerWidth() - (parent === element ? 0 : position.left)\n });\n };\n\n var notifyEvent = function notifyEvent(e) {\n if (e.type === 'dp.change' && (e.date && e.date.isSame(e.oldDate) || !e.date && !e.oldDate)) {\n return;\n }\n\n element.trigger(e);\n };\n\n var viewUpdate = function viewUpdate(e) {\n if (e === 'y') {\n e = 'YYYY';\n }\n\n notifyEvent({\n type: 'dp.update',\n change: e,\n viewDate: viewDate.clone()\n });\n };\n\n var showMode = function showMode(dir) {\n if (!widget) {\n return;\n }\n\n if (dir) {\n currentViewMode = Math.max(minViewModeNumber, Math.min(3, currentViewMode + dir));\n }\n\n widget.find('.datepicker > div').hide().filter('.datepicker-' + datePickerModes[currentViewMode].clsName).show();\n };\n\n var fillDow = function fillDow() {\n var row = $('<tr>');\n var currentDate = viewDate.clone().startOf('w').startOf('d');\n\n if (options.calendarWeeks === true) {\n row.append($('<th>').addClass('cw').text('#'));\n }\n\n while (currentDate.isBefore(viewDate.clone().endOf('w'))) {\n row.append($('<th>').addClass('dow').text(currentDate.format('dd')));\n currentDate.add(1, 'd');\n }\n\n widget.find('.datepicker-days thead').append(row);\n };\n\n var isInDisabledDates = function isInDisabledDates(testDate) {\n return options.disabledDates[testDate.format('YYYY-MM-DD')] === true;\n };\n\n var isInEnabledDates = function isInEnabledDates(testDate) {\n return options.enabledDates[testDate.format('YYYY-MM-DD')] === true;\n };\n\n var isInDisabledHours = function isInDisabledHours(testDate) {\n return options.disabledHours[testDate.format('H')] === true;\n };\n\n var isInEnabledHours = function isInEnabledHours(testDate) {\n return options.enabledHours[testDate.format('H')] === true;\n };\n\n var isValid = function isValid(targetMoment, granularity) {\n if (!targetMoment.isValid()) {\n return false;\n }\n\n if (options.disabledDates && granularity === 'd' && isInDisabledDates(targetMoment)) {\n return false;\n }\n\n if (options.enabledDates && granularity === 'd' && !isInEnabledDates(targetMoment)) {\n return false;\n }\n\n if (options.minDate && targetMoment.isBefore(options.minDate, granularity)) {\n return false;\n }\n\n if (options.maxDate && targetMoment.isAfter(options.maxDate, granularity)) {\n return false;\n }\n\n if (options.daysOfWeekDisabled && granularity === 'd' && options.daysOfWeekDisabled.indexOf(targetMoment.day()) !== -1) {\n return false;\n }\n\n if (options.disabledHours && (granularity === 'h' || granularity === 'm' || granularity === 's') && isInDisabledHours(targetMoment)) {\n return false;\n }\n\n if (options.enabledHours && (granularity === 'h' || granularity === 'm' || granularity === 's') && !isInEnabledHours(targetMoment)) {\n return false;\n }\n\n if (options.disabledTimeIntervals && (granularity === 'h' || granularity === 'm' || granularity === 's')) {\n var found = false;\n $.each(options.disabledTimeIntervals, function () {\n if (targetMoment.isBetween(this[0], this[1])) {\n found = true;\n return false;\n }\n });\n\n if (found) {\n return false;\n }\n }\n\n return true;\n };\n\n var fillMonths = function fillMonths() {\n var spans = [];\n var monthsShort = viewDate.clone().startOf('y').startOf('d');\n\n while (monthsShort.isSame(viewDate, 'y')) {\n spans.push($('<span>').attr('data-action', 'selectMonth').addClass('month').text(monthsShort.format('MMM')));\n monthsShort.add(1, 'M');\n }\n\n widget.find('.datepicker-months td').empty().append(spans);\n };\n\n var updateMonths = function updateMonths() {\n var monthsView = widget.find('.datepicker-months');\n var monthsViewHeader = monthsView.find('th');\n var months = monthsView.find('tbody').find('span');\n monthsViewHeader.eq(0).find('span').attr('title', options.tooltips.prevYear);\n monthsViewHeader.eq(1).attr('title', options.tooltips.selectYear);\n monthsViewHeader.eq(2).find('span').attr('title', options.tooltips.nextYear);\n monthsView.find('.disabled').removeClass('disabled');\n\n if (!isValid(viewDate.clone().subtract(1, 'y'), 'y')) {\n monthsViewHeader.eq(0).addClass('disabled');\n }\n\n monthsViewHeader.eq(1).text(viewDate.year());\n\n if (!isValid(viewDate.clone().add(1, 'y'), 'y')) {\n monthsViewHeader.eq(2).addClass('disabled');\n }\n\n months.removeClass('active');\n\n if (date.isSame(viewDate, 'y') && !unset) {\n months.eq(date.month()).addClass('active');\n }\n\n months.each(function (index) {\n if (!isValid(viewDate.clone().month(index), 'M')) {\n $(this).addClass('disabled');\n }\n });\n };\n\n var updateYears = function updateYears() {\n var yearsView = widget.find('.datepicker-years');\n var yearsViewHeader = yearsView.find('th');\n var startYear = viewDate.clone().subtract(5, 'y');\n var endYear = viewDate.clone().add(6, 'y');\n var html = '';\n yearsViewHeader.eq(0).find('span').attr('title', options.tooltips.prevDecade);\n yearsViewHeader.eq(1).attr('title', options.tooltips.selectDecade);\n yearsViewHeader.eq(2).find('span').attr('title', options.tooltips.nextDecade);\n yearsView.find('.disabled').removeClass('disabled');\n\n if (options.minDate && options.minDate.isAfter(startYear, 'y')) {\n yearsViewHeader.eq(0).addClass('disabled');\n }\n\n yearsViewHeader.eq(1).text(startYear.year() + '-' + endYear.year());\n\n if (options.maxDate && options.maxDate.isBefore(endYear, 'y')) {\n yearsViewHeader.eq(2).addClass('disabled');\n }\n\n while (!startYear.isAfter(endYear, 'y')) {\n html += '<span data-action=\"selectYear\" class=\"year' + (startYear.isSame(date, 'y') && !unset ? ' active' : '') + (!isValid(startYear, 'y') ? ' disabled' : '') + '\">' + startYear.year() + '</span>';\n startYear.add(1, 'y');\n }\n\n yearsView.find('td').html(html);\n };\n\n var updateDecades = function updateDecades() {\n var decadesView = widget.find('.datepicker-decades');\n var decadesViewHeader = decadesView.find('th');\n var startDecade = moment({\n y: viewDate.year() - viewDate.year() % 100 - 1\n });\n var endDecade = startDecade.clone().add(100, 'y');\n var startedAt = startDecade.clone();\n var minDateDecade = false;\n var maxDateDecade = false;\n var endDecadeYear;\n var html = '';\n decadesViewHeader.eq(0).find('span').attr('title', options.tooltips.prevCentury);\n decadesViewHeader.eq(2).find('span').attr('title', options.tooltips.nextCentury);\n decadesView.find('.disabled').removeClass('disabled');\n\n if (startDecade.isSame(moment({\n y: 1900\n })) || options.minDate && options.minDate.isAfter(startDecade, 'y')) {\n decadesViewHeader.eq(0).addClass('disabled');\n }\n\n decadesViewHeader.eq(1).text(startDecade.year() + '-' + endDecade.year());\n\n if (startDecade.isSame(moment({\n y: 2000\n })) || options.maxDate && options.maxDate.isBefore(endDecade, 'y')) {\n decadesViewHeader.eq(2).addClass('disabled');\n }\n\n while (!startDecade.isAfter(endDecade, 'y')) {\n endDecadeYear = startDecade.year() + 12;\n minDateDecade = options.minDate && options.minDate.isAfter(startDecade, 'y') && options.minDate.year() <= endDecadeYear;\n maxDateDecade = options.maxDate && options.maxDate.isAfter(startDecade, 'y') && options.maxDate.year() <= endDecadeYear;\n html += '<span data-action=\"selectDecade\" class=\"decade' + (date.isAfter(startDecade) && date.year() <= endDecadeYear ? ' active' : '') + (!isValid(startDecade, 'y') && !minDateDecade && !maxDateDecade ? ' disabled' : '') + '\" data-selection=\"' + (startDecade.year() + 6) + '\">' + (startDecade.year() + 1) + ' - ' + (startDecade.year() + 12) + '</span>';\n startDecade.add(12, 'y');\n }\n\n html += '<span></span><span></span><span></span>'; // push the dangling block over, at least this way it's even\n\n decadesView.find('td').html(html);\n decadesViewHeader.eq(1).text(startedAt.year() + 1 + '-' + startDecade.year());\n };\n\n var fillDate = function fillDate() {\n var daysView = widget.find('.datepicker-days');\n var daysViewHeader = daysView.find('th');\n var currentDate;\n var html = [];\n var row;\n var clsNames = [];\n var i;\n\n if (!hasDate()) {\n return;\n }\n\n daysViewHeader.eq(0).find('span').attr('title', options.tooltips.prevMonth);\n daysViewHeader.eq(1).attr('title', options.tooltips.selectMonth);\n daysViewHeader.eq(2).find('span').attr('title', options.tooltips.nextMonth);\n daysView.find('.disabled').removeClass('disabled');\n daysViewHeader.eq(1).text(viewDate.format(options.dayViewHeaderFormat));\n\n if (!isValid(viewDate.clone().subtract(1, 'M'), 'M')) {\n daysViewHeader.eq(0).addClass('disabled');\n }\n\n if (!isValid(viewDate.clone().add(1, 'M'), 'M')) {\n daysViewHeader.eq(2).addClass('disabled');\n }\n\n currentDate = viewDate.clone().startOf('M').startOf('w').startOf('d');\n\n for (i = 0; i < 42; i++) {\n // always display 42 days (should show 6 weeks)\n if (currentDate.weekday() === 0) {\n row = $('<tr>');\n\n if (options.calendarWeeks) {\n row.append('<td class=\"cw\">' + currentDate.week() + '</td>');\n }\n\n html.push(row);\n }\n\n clsNames = ['day'];\n\n if (currentDate.isBefore(viewDate, 'M')) {\n clsNames.push('old');\n }\n\n if (currentDate.isAfter(viewDate, 'M')) {\n clsNames.push('new');\n }\n\n if (currentDate.isSame(date, 'd') && !unset) {\n clsNames.push('active');\n }\n\n if (!isValid(currentDate, 'd')) {\n clsNames.push('disabled');\n }\n\n if (currentDate.isSame(getMoment(), 'd')) {\n clsNames.push('today');\n }\n\n if (currentDate.day() === 0 || currentDate.day() === 6) {\n clsNames.push('weekend');\n }\n\n notifyEvent({\n type: 'dp.classify',\n date: currentDate,\n classNames: clsNames\n });\n row.append('<td data-action=\"selectDay\" data-day=\"' + currentDate.format('L') + '\" class=\"' + clsNames.join(' ') + '\">' + currentDate.date() + '</td>');\n currentDate.add(1, 'd');\n }\n\n daysView.find('tbody').empty().append(html);\n updateMonths();\n updateYears();\n updateDecades();\n };\n\n var fillHours = function fillHours() {\n var table = widget.find('.timepicker-hours table');\n var currentHour = viewDate.clone().startOf('d');\n var html = [];\n var row = $('<tr>');\n\n if (viewDate.hour() > 11 && !use24Hours) {\n currentHour.hour(12);\n }\n\n while (currentHour.isSame(viewDate, 'd') && (use24Hours || viewDate.hour() < 12 && currentHour.hour() < 12 || viewDate.hour() > 11)) {\n if (currentHour.hour() % 4 === 0) {\n row = $('<tr>');\n html.push(row);\n }\n\n row.append('<td data-action=\"selectHour\" class=\"hour' + (!isValid(currentHour, 'h') ? ' disabled' : '') + '\">' + currentHour.format(use24Hours ? 'HH' : 'hh') + '</td>');\n currentHour.add(1, 'h');\n }\n\n table.empty().append(html);\n };\n\n var fillMinutes = function fillMinutes() {\n var table = widget.find('.timepicker-minutes table');\n var currentMinute = viewDate.clone().startOf('h');\n var html = [];\n var row = $('<tr>');\n var step = options.stepping === 1 ? 5 : options.stepping;\n\n while (viewDate.isSame(currentMinute, 'h')) {\n if (currentMinute.minute() % (step * 4) === 0) {\n row = $('<tr>');\n html.push(row);\n }\n\n row.append('<td data-action=\"selectMinute\" class=\"minute' + (!isValid(currentMinute, 'm') ? ' disabled' : '') + '\">' + currentMinute.format('mm') + '</td>');\n currentMinute.add(step, 'm');\n }\n\n table.empty().append(html);\n };\n\n var fillSeconds = function fillSeconds() {\n var table = widget.find('.timepicker-seconds table');\n var currentSecond = viewDate.clone().startOf('m');\n var html = [];\n var row = $('<tr>');\n\n while (viewDate.isSame(currentSecond, 'm')) {\n if (currentSecond.second() % 20 === 0) {\n row = $('<tr>');\n html.push(row);\n }\n\n row.append('<td data-action=\"selectSecond\" class=\"second' + (!isValid(currentSecond, 's') ? ' disabled' : '') + '\">' + currentSecond.format('ss') + '</td>');\n currentSecond.add(5, 's');\n }\n\n table.empty().append(html);\n };\n\n var fillTime = function fillTime() {\n var toggle;\n var newDate;\n var timeComponents = widget.find('.timepicker span[data-time-component]');\n\n if (!use24Hours) {\n toggle = widget.find('.timepicker [data-action=togglePeriod]');\n newDate = date.clone().add(date.hours() >= 12 ? -12 : 12, 'h');\n toggle.text(date.format('A'));\n\n if (isValid(newDate, 'h')) {\n toggle.removeClass('disabled');\n } else {\n toggle.addClass('disabled');\n }\n }\n\n timeComponents.filter('[data-time-component=hours]').text(date.format(use24Hours ? 'HH' : 'hh'));\n timeComponents.filter('[data-time-component=minutes]').text(date.format('mm'));\n timeComponents.filter('[data-time-component=seconds]').text(date.format('ss'));\n fillHours();\n fillMinutes();\n fillSeconds();\n };\n\n var update = function update() {\n if (!widget) {\n return;\n }\n\n fillDate();\n fillTime();\n };\n\n var setValue = function setValue(targetMoment) {\n var oldDate = unset ? null : date; // case of calling setValue(null or false)\n\n if (!targetMoment) {\n unset = true;\n input.val('');\n element.data('date', '');\n notifyEvent({\n type: 'dp.change',\n date: false,\n oldDate: oldDate\n });\n update();\n return;\n }\n\n targetMoment = targetMoment.clone().locale(options.locale);\n\n if (hasTimeZone()) {\n targetMoment.tz(options.timeZone);\n }\n\n if (options.stepping !== 1) {\n targetMoment.minutes(Math.round(targetMoment.minutes() / options.stepping) * options.stepping).seconds(0);\n\n while (options.minDate && targetMoment.isBefore(options.minDate)) {\n targetMoment.add(options.stepping, 'minutes');\n }\n }\n\n if (isValid(targetMoment)) {\n date = targetMoment;\n viewDate = date.clone();\n input.val(date.format(actualFormat));\n element.data('date', date.format(actualFormat));\n unset = false;\n update();\n notifyEvent({\n type: 'dp.change',\n date: date.clone(),\n oldDate: oldDate\n });\n } else {\n if (!options.keepInvalid) {\n input.val(unset ? '' : date.format(actualFormat));\n } else {\n notifyEvent({\n type: 'dp.change',\n date: targetMoment,\n oldDate: oldDate\n });\n }\n\n notifyEvent({\n type: 'dp.error',\n date: targetMoment,\n oldDate: oldDate\n });\n }\n };\n /**\n * Hides the widget. Possibly will emit dp.hide\n */\n\n\n var hide = function hide() {\n var transitioning = false;\n\n if (!widget) {\n return picker;\n } // Ignore event if in the middle of a picker transition\n\n\n widget.find('.collapse').each(function () {\n var collapseData = $(this).data('collapse');\n\n if (collapseData && collapseData.transitioning) {\n transitioning = true;\n return false;\n }\n\n return true;\n });\n\n if (transitioning) {\n return picker;\n }\n\n if (component && component.hasClass('btn')) {\n component.toggleClass('active');\n }\n\n widget.hide();\n $(window).off('resize', place);\n widget.off('click', '[data-action]');\n widget.off('mousedown', false);\n widget.remove();\n widget = false;\n notifyEvent({\n type: 'dp.hide',\n date: date.clone()\n });\n input.blur();\n viewDate = date.clone();\n return picker;\n };\n\n var clear = function clear() {\n setValue(null);\n };\n\n var parseInputDate = function parseInputDate(inputDate) {\n if (options.parseInputDate === undefined) {\n if (!moment.isMoment(inputDate) || inputDate instanceof Date) {\n inputDate = getMoment(inputDate);\n }\n } else {\n inputDate = options.parseInputDate(inputDate);\n } // inputDate.locale(options.locale);\n\n\n return inputDate;\n };\n /** ******************************************************************************\n *\n * Widget UI interaction functions\n *\n ********************************************************************************/\n\n\n var actions = {\n next: function next() {\n var navFnc = datePickerModes[currentViewMode].navFnc;\n viewDate.add(datePickerModes[currentViewMode].navStep, navFnc);\n fillDate();\n viewUpdate(navFnc);\n },\n previous: function previous() {\n var navFnc = datePickerModes[currentViewMode].navFnc;\n viewDate.subtract(datePickerModes[currentViewMode].navStep, navFnc);\n fillDate();\n viewUpdate(navFnc);\n },\n pickerSwitch: function pickerSwitch() {\n showMode(1);\n },\n selectMonth: function selectMonth(e) {\n var month = $(e.target).closest('tbody').find('span').index($(e.target));\n viewDate.month(month);\n\n if (currentViewMode === minViewModeNumber) {\n setValue(date.clone().year(viewDate.year()).month(viewDate.month()));\n\n if (!options.inline) {\n hide();\n }\n } else {\n showMode(-1);\n fillDate();\n }\n\n viewUpdate('M');\n },\n selectYear: function selectYear(e) {\n var year = parseInt($(e.target).text(), 10) || 0;\n viewDate.year(year);\n\n if (currentViewMode === minViewModeNumber) {\n setValue(date.clone().year(viewDate.year()));\n\n if (!options.inline) {\n hide();\n }\n } else {\n showMode(-1);\n fillDate();\n }\n\n viewUpdate('YYYY');\n },\n selectDecade: function selectDecade(e) {\n var year = parseInt($(e.target).data('selection'), 10) || 0;\n viewDate.year(year);\n\n if (currentViewMode === minViewModeNumber) {\n setValue(date.clone().year(viewDate.year()));\n\n if (!options.inline) {\n hide();\n }\n } else {\n showMode(-1);\n fillDate();\n }\n\n viewUpdate('YYYY');\n },\n selectDay: function selectDay(e) {\n var day = viewDate.clone();\n\n if ($(e.target).is('.old')) {\n day.subtract(1, 'M');\n }\n\n if ($(e.target).is('.new')) {\n day.add(1, 'M');\n }\n\n setValue(day.date(parseInt($(e.target).text(), 10)));\n\n if (!hasTime() && !options.keepOpen && !options.inline) {\n hide();\n }\n },\n incrementHours: function incrementHours() {\n var newDate = date.clone().add(1, 'h');\n\n if (isValid(newDate, 'h')) {\n setValue(newDate);\n }\n },\n incrementMinutes: function incrementMinutes() {\n var newDate = date.clone().add(options.stepping, 'm');\n\n if (isValid(newDate, 'm')) {\n setValue(newDate);\n }\n },\n incrementSeconds: function incrementSeconds() {\n var newDate = date.clone().add(1, 's');\n\n if (isValid(newDate, 's')) {\n setValue(newDate);\n }\n },\n decrementHours: function decrementHours() {\n var newDate = date.clone().subtract(1, 'h');\n\n if (isValid(newDate, 'h')) {\n setValue(newDate);\n }\n },\n decrementMinutes: function decrementMinutes() {\n var newDate = date.clone().subtract(options.stepping, 'm');\n\n if (isValid(newDate, 'm')) {\n setValue(newDate);\n }\n },\n decrementSeconds: function decrementSeconds() {\n var newDate = date.clone().subtract(1, 's');\n\n if (isValid(newDate, 's')) {\n setValue(newDate);\n }\n },\n togglePeriod: function togglePeriod() {\n setValue(date.clone().add(date.hours() >= 12 ? -12 : 12, 'h'));\n },\n togglePicker: function togglePicker(e) {\n var $this = $(e.target);\n var $parent = $this.closest('ul');\n var expanded = $parent.find('.in');\n var closed = $parent.find('.collapse:not(.in)');\n var collapseData;\n\n if (expanded && expanded.length) {\n collapseData = expanded.data('collapse');\n\n if (collapseData && collapseData.transitioning) {\n return;\n }\n\n if (expanded.collapse) {\n // if collapse plugin is available through bootstrap.js then use it\n expanded.collapse('hide');\n closed.collapse('show');\n } else {\n // otherwise just toggle in class on the two views\n expanded.removeClass('in');\n closed.addClass('in');\n }\n\n if ($this.is('span')) {\n $this.toggleClass(options.icons.time + ' ' + options.icons.date);\n } else {\n $this.find('span').toggleClass(options.icons.time + ' ' + options.icons.date);\n } // NOTE: uncomment if toggled state will be restored in show()\n // if (component) {\n // component.find('span').toggleClass(options.icons.time + ' ' + options.icons.date);\n // }\n\n }\n },\n showPicker: function showPicker() {\n widget.find('.timepicker > div:not(.timepicker-picker)').hide();\n widget.find('.timepicker .timepicker-picker').show();\n },\n showHours: function showHours() {\n widget.find('.timepicker .timepicker-picker').hide();\n widget.find('.timepicker .timepicker-hours').show();\n },\n showMinutes: function showMinutes() {\n widget.find('.timepicker .timepicker-picker').hide();\n widget.find('.timepicker .timepicker-minutes').show();\n },\n showSeconds: function showSeconds() {\n widget.find('.timepicker .timepicker-picker').hide();\n widget.find('.timepicker .timepicker-seconds').show();\n },\n selectHour: function selectHour(e) {\n var hour = parseInt($(e.target).text(), 10);\n\n if (!use24Hours) {\n if (date.hours() >= 12) {\n if (hour !== 12) {\n hour += 12;\n }\n } else {\n if (hour === 12) {\n hour = 0;\n }\n }\n }\n\n setValue(date.clone().hours(hour));\n actions.showPicker.call(picker);\n },\n selectMinute: function selectMinute(e) {\n setValue(date.clone().minutes(parseInt($(e.target).text(), 10)));\n actions.showPicker.call(picker);\n },\n selectSecond: function selectSecond(e) {\n setValue(date.clone().seconds(parseInt($(e.target).text(), 10)));\n actions.showPicker.call(picker);\n },\n clear: clear,\n today: function today() {\n var todaysDate = getMoment();\n\n if (isValid(todaysDate, 'd')) {\n setValue(todaysDate);\n }\n },\n close: hide\n };\n\n var doAction = function doAction(e) {\n if ($(e.currentTarget).is('.disabled')) {\n return false;\n }\n\n actions[$(e.currentTarget).data('action')].apply(picker, arguments);\n return false;\n };\n /**\n * Shows the widget. Possibly will emit dp.show and dp.change\n */\n\n\n var show = function show() {\n var currentMoment;\n var useCurrentGranularity = {\n 'year': function year(m) {\n return m.month(0).date(1).hours(0).seconds(0).minutes(0);\n },\n 'month': function month(m) {\n return m.date(1).hours(0).seconds(0).minutes(0);\n },\n 'day': function day(m) {\n return m.hours(0).seconds(0).minutes(0);\n },\n 'hour': function hour(m) {\n return m.seconds(0).minutes(0);\n },\n 'minute': function minute(m) {\n return m.seconds(0);\n }\n };\n\n if (input.prop('disabled') || !options.ignoreReadonly && input.prop('readonly') || widget) {\n return picker;\n }\n\n if (input.val() !== undefined && input.val().trim().length !== 0) {\n setValue(parseInputDate(input.val().trim()));\n } else if (unset && options.useCurrent && (options.inline || input.is('input') && input.val().trim().length === 0)) {\n currentMoment = getMoment();\n\n if (typeof options.useCurrent === 'string') {\n currentMoment = useCurrentGranularity[options.useCurrent](currentMoment);\n }\n\n setValue(currentMoment);\n }\n\n widget = getTemplate();\n fillDow();\n fillMonths();\n widget.find('.timepicker-hours').hide();\n widget.find('.timepicker-minutes').hide();\n widget.find('.timepicker-seconds').hide();\n update();\n showMode();\n $(window).on('resize', place);\n widget.on('click', '[data-action]', doAction); // this handles clicks on the widget\n\n widget.on('mousedown', false);\n\n if (component && component.hasClass('btn')) {\n component.toggleClass('active');\n }\n\n place();\n widget.show();\n\n if (options.focusOnShow && !input.is(':focus')) {\n input.focus();\n }\n\n notifyEvent({\n type: 'dp.show'\n });\n return picker;\n };\n /**\n * Shows or hides the widget\n */\n\n\n var toggle = function toggle() {\n return widget ? hide() : show();\n };\n\n var keydown = function keydown(e) {\n var handler = null;\n var index;\n var index2;\n var pressedKeys = [];\n var pressedModifiers = {};\n var currentKey = e.which;\n var keyBindKeys;\n var allModifiersPressed;\n var pressed = 'p';\n keyState[currentKey] = pressed;\n\n for (index in keyState) {\n if (keyState.hasOwnProperty(index) && keyState[index] === pressed) {\n pressedKeys.push(index);\n\n if (parseInt(index, 10) !== currentKey) {\n pressedModifiers[index] = true;\n }\n }\n }\n\n for (index in options.keyBinds) {\n if (options.keyBinds.hasOwnProperty(index) && typeof options.keyBinds[index] === 'function') {\n keyBindKeys = index.split(' ');\n\n if (keyBindKeys.length === pressedKeys.length && keyMap[currentKey] === keyBindKeys[keyBindKeys.length - 1]) {\n allModifiersPressed = true;\n\n for (index2 = keyBindKeys.length - 2; index2 >= 0; index2--) {\n if (!(keyMap[keyBindKeys[index2]] in pressedModifiers)) {\n allModifiersPressed = false;\n break;\n }\n }\n\n if (allModifiersPressed) {\n handler = options.keyBinds[index];\n break;\n }\n }\n }\n }\n\n if (handler) {\n handler.call(picker, widget);\n e.stopPropagation();\n e.preventDefault();\n }\n };\n\n var keyup = function keyup(e) {\n keyState[e.which] = 'r';\n e.stopPropagation();\n e.preventDefault();\n };\n\n var change = function change(e) {\n var val = $(e.target).val().trim();\n var parsedDate = val ? parseInputDate(val) : null;\n setValue(parsedDate);\n e.stopImmediatePropagation();\n return false;\n };\n\n var attachDatePickerElementEvents = function attachDatePickerElementEvents() {\n input.on({\n 'change': change,\n 'blur': options.debug ? '' : hide,\n 'keydown': keydown,\n 'keyup': keyup,\n 'focus': options.allowInputToggle ? show : ''\n });\n\n if (element.is('input')) {\n input.on({\n 'focus': show\n });\n } else if (component) {\n component.on('click', toggle);\n component.on('mousedown', false);\n }\n };\n\n var detachDatePickerElementEvents = function detachDatePickerElementEvents() {\n input.off({\n 'change': change,\n 'blur': blur,\n 'keydown': keydown,\n 'keyup': keyup,\n 'focus': options.allowInputToggle ? hide : ''\n });\n\n if (element.is('input')) {\n input.off({\n 'focus': show\n });\n } else if (component) {\n component.off('click', toggle);\n component.off('mousedown', false);\n }\n };\n\n var indexGivenDates = function indexGivenDates(givenDatesArray) {\n // Store given enabledDates and disabledDates as keys.\n // This way we can check their existence in O(1) time instead of looping through whole array.\n // (for example: options.enabledDates['2014-02-27'] === true)\n var givenDatesIndexed = {};\n $.each(givenDatesArray, function () {\n var dDate = parseInputDate(this);\n\n if (dDate.isValid()) {\n givenDatesIndexed[dDate.format('YYYY-MM-DD')] = true;\n }\n });\n return Object.keys(givenDatesIndexed).length ? givenDatesIndexed : false;\n };\n\n var indexGivenHours = function indexGivenHours(givenHoursArray) {\n // Store given enabledHours and disabledHours as keys.\n // This way we can check their existence in O(1) time instead of looping through whole array.\n // (for example: options.enabledHours['2014-02-27'] === true)\n var givenHoursIndexed = {};\n $.each(givenHoursArray, function () {\n givenHoursIndexed[this] = true;\n });\n return Object.keys(givenHoursIndexed).length ? givenHoursIndexed : false;\n };\n\n var initFormatting = function initFormatting() {\n var format = options.format || 'L LT';\n actualFormat = format.replace(/(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g, function (formatInput) {\n var newinput = date.localeData().longDateFormat(formatInput) || formatInput;\n return newinput.replace(/(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g, function (formatInput2) {\n // temp fix for #740\n return date.localeData().longDateFormat(formatInput2) || formatInput2;\n });\n });\n parseFormats = options.extraFormats ? options.extraFormats.slice() : [];\n\n if (parseFormats.indexOf(format) < 0 && parseFormats.indexOf(actualFormat) < 0) {\n parseFormats.push(actualFormat);\n }\n\n use24Hours = actualFormat.toLowerCase().indexOf('a') < 1 && actualFormat.replace(/\\[.*?\\]/g, '').indexOf('h') < 1;\n\n if (isEnabled('y')) {\n minViewModeNumber = 2;\n }\n\n if (isEnabled('M')) {\n minViewModeNumber = 1;\n }\n\n if (isEnabled('d')) {\n minViewModeNumber = 0;\n }\n\n currentViewMode = Math.max(minViewModeNumber, currentViewMode);\n\n if (!unset) {\n setValue(date);\n }\n };\n /** ******************************************************************************\n *\n * Public API functions\n * =====================\n *\n * Important: Do not expose direct references to private objects or the options\n * object to the outer world. Always return a clone when returning values or make\n * a clone when setting a private variable.\n *\n ********************************************************************************/\n\n\n picker.destroy = function () {\n // /<summary>Destroys the widget and removes all attached event listeners</summary>\n hide();\n detachDatePickerElementEvents();\n element.removeData('DateTimePicker');\n element.removeData('date');\n };\n\n picker.toggle = toggle;\n picker.show = show;\n picker.hide = hide;\n\n picker.disable = function () {\n // /<summary>Disables the input element, the component is attached to, by adding a disabled=\"true\" attribute to it.\n // /If the widget was visible before that call it is hidden. Possibly emits dp.hide</summary>\n hide();\n\n if (component && component.hasClass('btn')) {\n component.addClass('disabled');\n }\n\n input.prop('disabled', true);\n return picker;\n };\n\n picker.enable = function () {\n // /<summary>Enables the input element, the component is attached to, by removing disabled attribute from it.</summary>\n if (component && component.hasClass('btn')) {\n component.removeClass('disabled');\n }\n\n input.prop('disabled', false);\n return picker;\n };\n\n picker.ignoreReadonly = function (ignoreReadonly) {\n if (arguments.length === 0) {\n return options.ignoreReadonly;\n }\n\n if (typeof ignoreReadonly !== 'boolean') {\n throw new TypeError('ignoreReadonly () expects a boolean parameter');\n }\n\n options.ignoreReadonly = ignoreReadonly;\n return picker;\n };\n\n picker.options = function (newOptions) {\n if (arguments.length === 0) {\n return $.extend(true, {}, options);\n }\n\n if (!(newOptions instanceof Object)) {\n throw new TypeError('options() options parameter should be an object');\n }\n\n $.extend(true, options, newOptions);\n $.each(options, function (key, value) {\n if (picker[key] !== undefined) {\n picker[key](value);\n } else {\n throw new TypeError('option ' + key + ' is not recognized!');\n }\n });\n return picker;\n };\n\n picker.date = function (newDate) {\n // /<signature helpKeyword=\"$.fn.datetimepicker.date\">\n // /<summary>Returns the component's model current date, a moment object or null if not set.</summary>\n // /<returns type=\"Moment\">date.clone()</returns>\n // /</signature>\n // /<signature>\n // /<summary>Sets the components model current moment to it. Passing a null value unsets the components model current moment. Parsing of the newDate parameter is made using moment library with the options.format and options.useStrict components configuration.</summary>\n // /<param name=\"newDate\" locid=\"$.fn.datetimepicker.date_p:newDate\">Takes string, Date, moment, null parameter.</param>\n // /</signature>\n if (arguments.length === 0) {\n if (unset) {\n return null;\n }\n\n return date.clone();\n }\n\n if (newDate !== null && typeof newDate !== 'string' && !moment.isMoment(newDate) && !(newDate instanceof Date)) {\n throw new TypeError('date() parameter must be one of [null, string, moment or Date]');\n }\n\n setValue(newDate === null ? null : parseInputDate(newDate));\n return picker;\n };\n\n picker.format = function (newFormat) {\n // /<summary>test su</summary>\n // /<param name=\"newFormat\">info about para</param>\n // /<returns type=\"string|boolean\">returns foo</returns>\n if (arguments.length === 0) {\n return options.format;\n }\n\n if (typeof newFormat !== 'string' && (typeof newFormat !== 'boolean' || newFormat !== false)) {\n throw new TypeError('format() expects a string or boolean:false parameter ' + newFormat);\n }\n\n options.format = newFormat;\n\n if (actualFormat) {\n initFormatting(); // reinit formatting\n }\n\n return picker;\n };\n\n picker.timeZone = function (newZone) {\n if (arguments.length === 0) {\n return options.timeZone;\n }\n\n if (typeof newZone !== 'string') {\n throw new TypeError('newZone() expects a string parameter');\n }\n\n options.timeZone = newZone;\n return picker;\n };\n\n picker.dayViewHeaderFormat = function (newFormat) {\n if (arguments.length === 0) {\n return options.dayViewHeaderFormat;\n }\n\n if (typeof newFormat !== 'string') {\n throw new TypeError('dayViewHeaderFormat() expects a string parameter');\n }\n\n options.dayViewHeaderFormat = newFormat;\n return picker;\n };\n\n picker.extraFormats = function (formats) {\n if (arguments.length === 0) {\n return options.extraFormats;\n }\n\n if (formats !== false && !(formats instanceof Array)) {\n throw new TypeError('extraFormats() expects an array or false parameter');\n }\n\n options.extraFormats = formats;\n\n if (parseFormats) {\n initFormatting(); // reinit formatting\n }\n\n return picker;\n };\n\n picker.disabledDates = function (dates) {\n // /<signature helpKeyword=\"$.fn.datetimepicker.disabledDates\">\n // /<summary>Returns an array with the currently set disabled dates on the component.</summary>\n // /<returns type=\"array\">options.disabledDates</returns>\n // /</signature>\n // /<signature>\n // /<summary>Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of\n // /options.enabledDates if such exist.</summary>\n // /<param name=\"dates\" locid=\"$.fn.datetimepicker.disabledDates_p:dates\">Takes an [ string or Date or moment ] of values and allows the user to select only from those days.</param>\n // /</signature>\n if (arguments.length === 0) {\n return options.disabledDates ? $.extend({}, options.disabledDates) : options.disabledDates;\n }\n\n if (!dates) {\n options.disabledDates = false;\n update();\n return picker;\n }\n\n if (!(dates instanceof Array)) {\n throw new TypeError('disabledDates() expects an array parameter');\n }\n\n options.disabledDates = indexGivenDates(dates);\n options.enabledDates = false;\n update();\n return picker;\n };\n\n picker.enabledDates = function (dates) {\n // /<signature helpKeyword=\"$.fn.datetimepicker.enabledDates\">\n // /<summary>Returns an array with the currently set enabled dates on the component.</summary>\n // /<returns type=\"array\">options.enabledDates</returns>\n // /</signature>\n // /<signature>\n // /<summary>Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of options.disabledDates if such exist.</summary>\n // /<param name=\"dates\" locid=\"$.fn.datetimepicker.enabledDates_p:dates\">Takes an [ string or Date or moment ] of values and allows the user to select only from those days.</param>\n // /</signature>\n if (arguments.length === 0) {\n return options.enabledDates ? $.extend({}, options.enabledDates) : options.enabledDates;\n }\n\n if (!dates) {\n options.enabledDates = false;\n update();\n return picker;\n }\n\n if (!(dates instanceof Array)) {\n throw new TypeError('enabledDates() expects an array parameter');\n }\n\n options.enabledDates = indexGivenDates(dates);\n options.disabledDates = false;\n update();\n return picker;\n };\n\n picker.daysOfWeekDisabled = function (daysOfWeekDisabled) {\n if (arguments.length === 0) {\n return options.daysOfWeekDisabled.splice(0);\n }\n\n if (typeof daysOfWeekDisabled === 'boolean' && !daysOfWeekDisabled) {\n options.daysOfWeekDisabled = false;\n update();\n return picker;\n }\n\n if (!(daysOfWeekDisabled instanceof Array)) {\n throw new TypeError('daysOfWeekDisabled() expects an array parameter');\n }\n\n options.daysOfWeekDisabled = daysOfWeekDisabled.reduce(function (previousValue, currentValue) {\n currentValue = parseInt(currentValue, 10);\n\n if (currentValue > 6 || currentValue < 0 || isNaN(currentValue)) {\n return previousValue;\n }\n\n if (previousValue.indexOf(currentValue) === -1) {\n previousValue.push(currentValue);\n }\n\n return previousValue;\n }, []).sort();\n\n if (options.useCurrent && !options.keepInvalid) {\n var tries = 0;\n\n while (!isValid(date, 'd')) {\n date.add(1, 'd');\n\n if (tries === 31) {\n throw new Error('Tried 31 times to find a valid date');\n }\n\n tries++;\n }\n\n setValue(date);\n }\n\n update();\n return picker;\n };\n\n picker.maxDate = function (maxDate) {\n if (arguments.length === 0) {\n return options.maxDate ? options.maxDate.clone() : options.maxDate;\n }\n\n if (typeof maxDate === 'boolean' && maxDate === false) {\n options.maxDate = false;\n update();\n return picker;\n }\n\n if (typeof maxDate === 'string') {\n if (maxDate === 'now' || maxDate === 'moment') {\n maxDate = getMoment();\n }\n }\n\n var parsedDate = parseInputDate(maxDate);\n\n if (!parsedDate.isValid()) {\n throw new TypeError('maxDate() Could not parse date parameter: ' + maxDate);\n }\n\n if (options.minDate && parsedDate.isBefore(options.minDate)) {\n throw new TypeError('maxDate() date parameter is before options.minDate: ' + parsedDate.format(actualFormat));\n }\n\n options.maxDate = parsedDate;\n\n if (options.useCurrent && !options.keepInvalid && date.isAfter(maxDate)) {\n setValue(options.maxDate);\n }\n\n if (viewDate.isAfter(parsedDate)) {\n viewDate = parsedDate.clone().subtract(options.stepping, 'm');\n }\n\n update();\n return picker;\n };\n\n picker.minDate = function (minDate) {\n if (arguments.length === 0) {\n return options.minDate ? options.minDate.clone() : options.minDate;\n }\n\n if (typeof minDate === 'boolean' && minDate === false) {\n options.minDate = false;\n update();\n return picker;\n }\n\n if (typeof minDate === 'string') {\n if (minDate === 'now' || minDate === 'moment') {\n minDate = getMoment();\n }\n }\n\n var parsedDate = parseInputDate(minDate);\n\n if (!parsedDate.isValid()) {\n throw new TypeError('minDate() Could not parse date parameter: ' + minDate);\n }\n\n if (options.maxDate && parsedDate.isAfter(options.maxDate)) {\n throw new TypeError('minDate() date parameter is after options.maxDate: ' + parsedDate.format(actualFormat));\n }\n\n options.minDate = parsedDate;\n\n if (options.useCurrent && !options.keepInvalid && date.isBefore(minDate)) {\n setValue(options.minDate);\n }\n\n if (viewDate.isBefore(parsedDate)) {\n viewDate = parsedDate.clone().add(options.stepping, 'm');\n }\n\n update();\n return picker;\n };\n\n picker.defaultDate = function (defaultDate) {\n // /<signature helpKeyword=\"$.fn.datetimepicker.defaultDate\">\n // /<summary>Returns a moment with the options.defaultDate option configuration or false if not set</summary>\n // /<returns type=\"Moment\">date.clone()</returns>\n // /</signature>\n // /<signature>\n // /<summary>Will set the picker's inital date. If a boolean:false value is passed the options.defaultDate parameter is cleared.</summary>\n // /<param name=\"defaultDate\" locid=\"$.fn.datetimepicker.defaultDate_p:defaultDate\">Takes a string, Date, moment, boolean:false</param>\n // /</signature>\n if (arguments.length === 0) {\n return options.defaultDate ? options.defaultDate.clone() : options.defaultDate;\n }\n\n if (!defaultDate) {\n options.defaultDate = false;\n return picker;\n }\n\n if (typeof defaultDate === 'string') {\n if (defaultDate === 'now' || defaultDate === 'moment') {\n defaultDate = getMoment();\n } else {\n defaultDate = getMoment(defaultDate);\n }\n }\n\n var parsedDate = parseInputDate(defaultDate);\n\n if (!parsedDate.isValid()) {\n throw new TypeError('defaultDate() Could not parse date parameter: ' + defaultDate);\n }\n\n if (!isValid(parsedDate)) {\n throw new TypeError('defaultDate() date passed is invalid according to component setup validations');\n }\n\n options.defaultDate = parsedDate;\n\n if (options.defaultDate && options.inline || input.val().trim() === '') {\n setValue(options.defaultDate);\n }\n\n return picker;\n };\n\n picker.locale = function (locale) {\n if (arguments.length === 0) {\n return options.locale;\n }\n\n if (!moment.localeData(locale)) {\n throw new TypeError('locale() locale ' + locale + ' is not loaded from moment locales!');\n }\n\n options.locale = locale;\n date.locale(options.locale);\n viewDate.locale(options.locale);\n\n if (actualFormat) {\n initFormatting(); // reinit formatting\n }\n\n if (widget) {\n hide();\n show();\n }\n\n return picker;\n };\n\n picker.stepping = function (stepping) {\n if (arguments.length === 0) {\n return options.stepping;\n }\n\n stepping = parseInt(stepping, 10);\n\n if (isNaN(stepping) || stepping < 1) {\n stepping = 1;\n }\n\n options.stepping = stepping;\n return picker;\n };\n\n picker.useCurrent = function (useCurrent) {\n var useCurrentOptions = ['year', 'month', 'day', 'hour', 'minute'];\n\n if (arguments.length === 0) {\n return options.useCurrent;\n }\n\n if (typeof useCurrent !== 'boolean' && typeof useCurrent !== 'string') {\n throw new TypeError('useCurrent() expects a boolean or string parameter');\n }\n\n if (typeof useCurrent === 'string' && useCurrentOptions.indexOf(useCurrent.toLowerCase()) === -1) {\n throw new TypeError('useCurrent() expects a string parameter of ' + useCurrentOptions.join(', '));\n }\n\n options.useCurrent = useCurrent;\n return picker;\n };\n\n picker.collapse = function (collapse) {\n if (arguments.length === 0) {\n return options.collapse;\n }\n\n if (typeof collapse !== 'boolean') {\n throw new TypeError('collapse() expects a boolean parameter');\n }\n\n if (options.collapse === collapse) {\n return picker;\n }\n\n options.collapse = collapse;\n\n if (widget) {\n hide();\n show();\n }\n\n return picker;\n };\n\n picker.icons = function (icons) {\n if (arguments.length === 0) {\n return $.extend({}, options.icons);\n }\n\n if (!(icons instanceof Object)) {\n throw new TypeError('icons() expects parameter to be an Object');\n }\n\n $.extend(options.icons, icons);\n\n if (widget) {\n hide();\n show();\n }\n\n return picker;\n };\n\n picker.tooltips = function (tooltips) {\n if (arguments.length === 0) {\n return $.extend({}, options.tooltips);\n }\n\n if (!(tooltips instanceof Object)) {\n throw new TypeError('tooltips() expects parameter to be an Object');\n }\n\n $.extend(options.tooltips, tooltips);\n\n if (widget) {\n hide();\n show();\n }\n\n return picker;\n };\n\n picker.useStrict = function (useStrict) {\n if (arguments.length === 0) {\n return options.useStrict;\n }\n\n if (typeof useStrict !== 'boolean') {\n throw new TypeError('useStrict() expects a boolean parameter');\n }\n\n options.useStrict = useStrict;\n return picker;\n };\n\n picker.sideBySide = function (sideBySide) {\n if (arguments.length === 0) {\n return options.sideBySide;\n }\n\n if (typeof sideBySide !== 'boolean') {\n throw new TypeError('sideBySide() expects a boolean parameter');\n }\n\n options.sideBySide = sideBySide;\n\n if (widget) {\n hide();\n show();\n }\n\n return picker;\n };\n\n picker.viewMode = function (viewMode) {\n if (arguments.length === 0) {\n return options.viewMode;\n }\n\n if (typeof viewMode !== 'string') {\n throw new TypeError('viewMode() expects a string parameter');\n }\n\n if (viewModes.indexOf(viewMode) === -1) {\n throw new TypeError('viewMode() parameter must be one of (' + viewModes.join(', ') + ') value');\n }\n\n options.viewMode = viewMode;\n currentViewMode = Math.max(viewModes.indexOf(viewMode), minViewModeNumber);\n showMode();\n return picker;\n };\n\n picker.toolbarPlacement = function (toolbarPlacement) {\n if (arguments.length === 0) {\n return options.toolbarPlacement;\n }\n\n if (typeof toolbarPlacement !== 'string') {\n throw new TypeError('toolbarPlacement() expects a string parameter');\n }\n\n if (toolbarPlacements.indexOf(toolbarPlacement) === -1) {\n throw new TypeError('toolbarPlacement() parameter must be one of (' + toolbarPlacements.join(', ') + ') value');\n }\n\n options.toolbarPlacement = toolbarPlacement;\n\n if (widget) {\n hide();\n show();\n }\n\n return picker;\n };\n\n picker.widgetPositioning = function (widgetPositioning) {\n if (arguments.length === 0) {\n return $.extend({}, options.widgetPositioning);\n }\n\n if ({}.toString.call(widgetPositioning) !== '[object Object]') {\n throw new TypeError('widgetPositioning() expects an object variable');\n }\n\n if (widgetPositioning.horizontal) {\n if (typeof widgetPositioning.horizontal !== 'string') {\n throw new TypeError('widgetPositioning() horizontal variable must be a string');\n }\n\n widgetPositioning.horizontal = widgetPositioning.horizontal.toLowerCase();\n\n if (horizontalModes.indexOf(widgetPositioning.horizontal) === -1) {\n throw new TypeError('widgetPositioning() expects horizontal parameter to be one of (' + horizontalModes.join(', ') + ')');\n }\n\n options.widgetPositioning.horizontal = widgetPositioning.horizontal;\n }\n\n if (widgetPositioning.vertical) {\n if (typeof widgetPositioning.vertical !== 'string') {\n throw new TypeError('widgetPositioning() vertical variable must be a string');\n }\n\n widgetPositioning.vertical = widgetPositioning.vertical.toLowerCase();\n\n if (verticalModes.indexOf(widgetPositioning.vertical) === -1) {\n throw new TypeError('widgetPositioning() expects vertical parameter to be one of (' + verticalModes.join(', ') + ')');\n }\n\n options.widgetPositioning.vertical = widgetPositioning.vertical;\n }\n\n update();\n return picker;\n };\n\n picker.calendarWeeks = function (calendarWeeks) {\n if (arguments.length === 0) {\n return options.calendarWeeks;\n }\n\n if (typeof calendarWeeks !== 'boolean') {\n throw new TypeError('calendarWeeks() expects parameter to be a boolean value');\n }\n\n options.calendarWeeks = calendarWeeks;\n update();\n return picker;\n };\n\n picker.showTodayButton = function (showTodayButton) {\n if (arguments.length === 0) {\n return options.showTodayButton;\n }\n\n if (typeof showTodayButton !== 'boolean') {\n throw new TypeError('showTodayButton() expects a boolean parameter');\n }\n\n options.showTodayButton = showTodayButton;\n\n if (widget) {\n hide();\n show();\n }\n\n return picker;\n };\n\n picker.showClear = function (showClear) {\n if (arguments.length === 0) {\n return options.showClear;\n }\n\n if (typeof showClear !== 'boolean') {\n throw new TypeError('showClear() expects a boolean parameter');\n }\n\n options.showClear = showClear;\n\n if (widget) {\n hide();\n show();\n }\n\n return picker;\n };\n\n picker.widgetParent = function (widgetParent) {\n if (arguments.length === 0) {\n return options.widgetParent;\n }\n\n if (typeof widgetParent === 'string') {\n widgetParent = $(widgetParent);\n }\n\n if (widgetParent !== null && typeof widgetParent !== 'string' && !(widgetParent instanceof $)) {\n throw new TypeError('widgetParent() expects a string or a jQuery object parameter');\n }\n\n options.widgetParent = widgetParent;\n\n if (widget) {\n hide();\n show();\n }\n\n return picker;\n };\n\n picker.keepOpen = function (keepOpen) {\n if (arguments.length === 0) {\n return options.keepOpen;\n }\n\n if (typeof keepOpen !== 'boolean') {\n throw new TypeError('keepOpen() expects a boolean parameter');\n }\n\n options.keepOpen = keepOpen;\n return picker;\n };\n\n picker.focusOnShow = function (focusOnShow) {\n if (arguments.length === 0) {\n return options.focusOnShow;\n }\n\n if (typeof focusOnShow !== 'boolean') {\n throw new TypeError('focusOnShow() expects a boolean parameter');\n }\n\n options.focusOnShow = focusOnShow;\n return picker;\n };\n\n picker.inline = function (inline) {\n if (arguments.length === 0) {\n return options.inline;\n }\n\n if (typeof inline !== 'boolean') {\n throw new TypeError('inline() expects a boolean parameter');\n }\n\n options.inline = inline;\n return picker;\n };\n\n picker.clear = function () {\n clear();\n return picker;\n };\n\n picker.keyBinds = function (keyBinds) {\n if (arguments.length === 0) {\n return options.keyBinds;\n }\n\n options.keyBinds = keyBinds;\n return picker;\n };\n\n picker.getMoment = function (d) {\n return getMoment(d);\n };\n\n picker.debug = function (debug) {\n if (typeof debug !== 'boolean') {\n throw new TypeError('debug() expects a boolean parameter');\n }\n\n options.debug = debug;\n return picker;\n };\n\n picker.allowInputToggle = function (allowInputToggle) {\n if (arguments.length === 0) {\n return options.allowInputToggle;\n }\n\n if (typeof allowInputToggle !== 'boolean') {\n throw new TypeError('allowInputToggle() expects a boolean parameter');\n }\n\n options.allowInputToggle = allowInputToggle;\n return picker;\n };\n\n picker.showClose = function (showClose) {\n if (arguments.length === 0) {\n return options.showClose;\n }\n\n if (typeof showClose !== 'boolean') {\n throw new TypeError('showClose() expects a boolean parameter');\n }\n\n options.showClose = showClose;\n return picker;\n };\n\n picker.keepInvalid = function (keepInvalid) {\n if (arguments.length === 0) {\n return options.keepInvalid;\n }\n\n if (typeof keepInvalid !== 'boolean') {\n throw new TypeError('keepInvalid() expects a boolean parameter');\n }\n\n options.keepInvalid = keepInvalid;\n return picker;\n };\n\n picker.datepickerInput = function (datepickerInput) {\n if (arguments.length === 0) {\n return options.datepickerInput;\n }\n\n if (typeof datepickerInput !== 'string') {\n throw new TypeError('datepickerInput() expects a string parameter');\n }\n\n options.datepickerInput = datepickerInput;\n return picker;\n };\n\n picker.parseInputDate = function (parseInputDate) {\n if (arguments.length === 0) {\n return options.parseInputDate;\n }\n\n if (typeof parseInputDate !== 'function') {\n throw new TypeError('parseInputDate() sholud be as function');\n }\n\n options.parseInputDate = parseInputDate;\n return picker;\n };\n\n picker.disabledTimeIntervals = function (disabledTimeIntervals) {\n // /<signature helpKeyword=\"$.fn.datetimepicker.disabledTimeIntervals\">\n // /<summary>Returns an array with the currently set disabled dates on the component.</summary>\n // /<returns type=\"array\">options.disabledTimeIntervals</returns>\n // /</signature>\n // /<signature>\n // /<summary>Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of\n // /options.enabledDates if such exist.</summary>\n // /<param name=\"dates\" locid=\"$.fn.datetimepicker.disabledTimeIntervals_p:dates\">Takes an [ string or Date or moment ] of values and allows the user to select only from those days.</param>\n // /</signature>\n if (arguments.length === 0) {\n return options.disabledTimeIntervals ? $.extend({}, options.disabledTimeIntervals) : options.disabledTimeIntervals;\n }\n\n if (!disabledTimeIntervals) {\n options.disabledTimeIntervals = false;\n update();\n return picker;\n }\n\n if (!(disabledTimeIntervals instanceof Array)) {\n throw new TypeError('disabledTimeIntervals() expects an array parameter');\n }\n\n options.disabledTimeIntervals = disabledTimeIntervals;\n update();\n return picker;\n };\n\n picker.disabledHours = function (hours) {\n // /<signature helpKeyword=\"$.fn.datetimepicker.disabledHours\">\n // /<summary>Returns an array with the currently set disabled hours on the component.</summary>\n // /<returns type=\"array\">options.disabledHours</returns>\n // /</signature>\n // /<signature>\n // /<summary>Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of\n // /options.enabledHours if such exist.</summary>\n // /<param name=\"hours\" locid=\"$.fn.datetimepicker.disabledHours_p:hours\">Takes an [ int ] of values and disallows the user to select only from those hours.</param>\n // /</signature>\n if (arguments.length === 0) {\n return options.disabledHours ? $.extend({}, options.disabledHours) : options.disabledHours;\n }\n\n if (!hours) {\n options.disabledHours = false;\n update();\n return picker;\n }\n\n if (!(hours instanceof Array)) {\n throw new TypeError('disabledHours() expects an array parameter');\n }\n\n options.disabledHours = indexGivenHours(hours);\n options.enabledHours = false;\n\n if (options.useCurrent && !options.keepInvalid) {\n var tries = 0;\n\n while (!isValid(date, 'h')) {\n date.add(1, 'h');\n\n if (tries === 24) {\n throw new Error('Tried 24 times to find a valid date');\n }\n\n tries++;\n }\n\n setValue(date);\n }\n\n update();\n return picker;\n };\n\n picker.enabledHours = function (hours) {\n // /<signature helpKeyword=\"$.fn.datetimepicker.enabledHours\">\n // /<summary>Returns an array with the currently set enabled hours on the component.</summary>\n // /<returns type=\"array\">options.enabledHours</returns>\n // /</signature>\n // /<signature>\n // /<summary>Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of options.disabledHours if such exist.</summary>\n // /<param name=\"hours\" locid=\"$.fn.datetimepicker.enabledHours_p:hours\">Takes an [ int ] of values and allows the user to select only from those hours.</param>\n // /</signature>\n if (arguments.length === 0) {\n return options.enabledHours ? $.extend({}, options.enabledHours) : options.enabledHours;\n }\n\n if (!hours) {\n options.enabledHours = false;\n update();\n return picker;\n }\n\n if (!(hours instanceof Array)) {\n throw new TypeError('enabledHours() expects an array parameter');\n }\n\n options.enabledHours = indexGivenHours(hours);\n options.disabledHours = false;\n\n if (options.useCurrent && !options.keepInvalid) {\n var tries = 0;\n\n while (!isValid(date, 'h')) {\n date.add(1, 'h');\n\n if (tries === 24) {\n throw new Error('Tried 24 times to find a valid date');\n }\n\n tries++;\n }\n\n setValue(date);\n }\n\n update();\n return picker;\n };\n /**\n * Returns the component's model current viewDate, a moment object or null if not set. Passing a null value unsets the components model current moment. Parsing of the newDate parameter is made using moment library with the options.format and options.useStrict components configuration.\n * @param {Takes string, viewDate, moment, null parameter.} newDate\n * @returns {viewDate.clone()}\n */\n\n\n picker.viewDate = function (newDate) {\n if (arguments.length === 0) {\n return viewDate.clone();\n }\n\n if (!newDate) {\n viewDate = date.clone();\n return picker;\n }\n\n if (typeof newDate !== 'string' && !moment.isMoment(newDate) && !(newDate instanceof Date)) {\n throw new TypeError('viewDate() parameter must be one of [string, moment or Date]');\n }\n\n viewDate = parseInputDate(newDate);\n viewUpdate();\n return picker;\n }; // initializing element and component attributes\n\n\n if (element.is('input')) {\n input = element;\n } else {\n input = element.find(options.datepickerInput);\n\n if (input.length === 0) {\n input = element.find('input');\n } else if (!input.is('input')) {\n throw new Error('CSS class \"' + options.datepickerInput + '\" cannot be applied to non input element');\n }\n }\n\n if (element.hasClass('input-group')) {\n // in case there is more then one 'input-group-addon' Issue #48\n if (element.find('.datepickerbutton').length === 0) {\n component = element.find('.input-group-addon');\n } else {\n component = element.find('.datepickerbutton');\n }\n }\n\n if (!options.inline && !input.is('input')) {\n throw new Error('Could not initialize DateTimePicker without an input element');\n } // Set defaults for date here now instead of in var declaration\n\n\n date = getMoment();\n viewDate = date.clone();\n $.extend(true, options, dataToOptions());\n picker.options(options);\n initFormatting();\n attachDatePickerElementEvents();\n\n if (input.prop('disabled')) {\n picker.disable();\n }\n\n if (input.is('input') && input.val().trim().length !== 0) {\n setValue(parseInputDate(input.val().trim()));\n } else if (options.defaultDate && input.attr('placeholder') === undefined) {\n setValue(options.defaultDate);\n }\n\n if (options.inline) {\n show();\n }\n\n return picker;\n };\n /** ******************************************************************************\n *\n * jQuery plugin constructor and defaults object\n *\n ********************************************************************************/\n\n /**\n * See (http://jquery.com/).\n * @name jQuery\n * @class\n * See the jQuery Library (http://jquery.com/) for full details. This just\n * documents the function and classes that are added to jQuery by this plug-in.\n */\n\n /**\n * See (http://jquery.com/)\n * @name fn\n * @class\n * See the jQuery Library (http://jquery.com/) for full details. This just\n * documents the function and classes that are added to jQuery by this plug-in.\n * @memberOf jQuery\n */\n\n /**\n * Show comments\n * @class datetimepicker\n * @memberOf jQuery.fn\n */\n\n\n $.fn.datetimepicker = function (options) {\n options = options || {};\n var args = Array.prototype.slice.call(arguments, 1);\n var isInstance = true;\n var thisMethods = ['destroy', 'hide', 'show', 'toggle'];\n var returnValue;\n\n if (_typeof(options) === 'object') {\n return this.each(function () {\n var $this = $(this);\n\n var _options;\n\n if (!$this.data('DateTimePicker')) {\n // create a private copy of the defaults object\n _options = $.extend(true, {}, $.fn.datetimepicker.defaults, options);\n $this.data('DateTimePicker', dateTimePicker($this, _options));\n }\n });\n } else if (typeof options === 'string') {\n this.each(function () {\n var $this = $(this);\n var instance = $this.data('DateTimePicker');\n\n if (!instance) {\n throw new Error('bootstrap-datetimepicker(\"' + options + '\") method was called on an element that is not using DateTimePicker');\n }\n\n returnValue = instance[options].apply(instance, args);\n isInstance = returnValue === instance;\n });\n\n if (isInstance || $.inArray(options, thisMethods) > -1) {\n return this;\n }\n\n return returnValue;\n }\n\n throw new TypeError('Invalid arguments for DateTimePicker: ' + options);\n };\n\n $.fn.datetimepicker.defaults = {\n timeZone: '',\n format: false,\n dayViewHeaderFormat: 'MMMM YYYY',\n extraFormats: false,\n stepping: 1,\n minDate: false,\n maxDate: false,\n useCurrent: true,\n collapse: true,\n locale: moment.locale(),\n defaultDate: false,\n disabledDates: false,\n enabledDates: false,\n icons: {\n time: 'glyphicon glyphicon-time',\n date: 'glyphicon glyphicon-calendar',\n up: 'glyphicon glyphicon-chevron-up',\n down: 'glyphicon glyphicon-chevron-down',\n previous: 'glyphicon glyphicon-chevron-left',\n next: 'glyphicon glyphicon-chevron-right',\n today: 'glyphicon glyphicon-screenshot',\n clear: 'glyphicon glyphicon-trash',\n close: 'glyphicon glyphicon-remove'\n },\n tooltips: {\n today: 'Go to today',\n clear: 'Clear selection',\n close: 'Close the picker',\n selectMonth: 'Select Month',\n prevMonth: 'Previous Month',\n nextMonth: 'Next Month',\n selectYear: 'Select Year',\n prevYear: 'Previous Year',\n nextYear: 'Next Year',\n selectDecade: 'Select Decade',\n prevDecade: 'Previous Decade',\n nextDecade: 'Next Decade',\n prevCentury: 'Previous Century',\n nextCentury: 'Next Century',\n pickHour: 'Pick Hour',\n incrementHour: 'Increment Hour',\n decrementHour: 'Decrement Hour',\n pickMinute: 'Pick Minute',\n incrementMinute: 'Increment Minute',\n decrementMinute: 'Decrement Minute',\n pickSecond: 'Pick Second',\n incrementSecond: 'Increment Second',\n decrementSecond: 'Decrement Second',\n togglePeriod: 'Toggle Period',\n selectTime: 'Select Time'\n },\n useStrict: false,\n sideBySide: false,\n daysOfWeekDisabled: false,\n calendarWeeks: false,\n viewMode: 'days',\n toolbarPlacement: 'default',\n showTodayButton: false,\n showClear: false,\n showClose: false,\n widgetPositioning: {\n horizontal: 'auto',\n vertical: 'auto'\n },\n widgetParent: null,\n ignoreReadonly: false,\n keepOpen: false,\n focusOnShow: true,\n inline: false,\n keepInvalid: false,\n datepickerInput: '.datepickerinput',\n keyBinds: {\n up: function up(widget) {\n if (!widget) {\n return;\n }\n\n var d = this.date() || this.getMoment();\n\n if (widget.find('.datepicker').is(':visible')) {\n this.date(d.clone().subtract(7, 'd'));\n } else {\n this.date(d.clone().add(this.stepping(), 'm'));\n }\n },\n down: function down(widget) {\n if (!widget) {\n this.show();\n return;\n }\n\n var d = this.date() || this.getMoment();\n\n if (widget.find('.datepicker').is(':visible')) {\n this.date(d.clone().add(7, 'd'));\n } else {\n this.date(d.clone().subtract(this.stepping(), 'm'));\n }\n },\n 'control up': function controlUp(widget) {\n if (!widget) {\n return;\n }\n\n var d = this.date() || this.getMoment();\n\n if (widget.find('.datepicker').is(':visible')) {\n this.date(d.clone().subtract(1, 'y'));\n } else {\n this.date(d.clone().add(1, 'h'));\n }\n },\n 'control down': function controlDown(widget) {\n if (!widget) {\n return;\n }\n\n var d = this.date() || this.getMoment();\n\n if (widget.find('.datepicker').is(':visible')) {\n this.date(d.clone().add(1, 'y'));\n } else {\n this.date(d.clone().subtract(1, 'h'));\n }\n },\n left: function left(widget) {\n if (!widget) {\n return;\n }\n\n var d = this.date() || this.getMoment();\n\n if (widget.find('.datepicker').is(':visible')) {\n this.date(d.clone().subtract(1, 'd'));\n }\n },\n right: function right(widget) {\n if (!widget) {\n return;\n }\n\n var d = this.date() || this.getMoment();\n\n if (widget.find('.datepicker').is(':visible')) {\n this.date(d.clone().add(1, 'd'));\n }\n },\n pageUp: function pageUp(widget) {\n if (!widget) {\n return;\n }\n\n var d = this.date() || this.getMoment();\n\n if (widget.find('.datepicker').is(':visible')) {\n this.date(d.clone().subtract(1, 'M'));\n }\n },\n pageDown: function pageDown(widget) {\n if (!widget) {\n return;\n }\n\n var d = this.date() || this.getMoment();\n\n if (widget.find('.datepicker').is(':visible')) {\n this.date(d.clone().add(1, 'M'));\n }\n },\n enter: function enter() {\n this.hide();\n },\n escape: function escape() {\n this.hide();\n },\n // tab: function (widget) { //this break the flow of the form. disabling for now\n // var toggle = widget.find('.picker-switch a[data-action=\"togglePicker\"]');\n // if(toggle.length > 0) toggle.click();\n // },\n 'control space': function controlSpace(widget) {\n if (!widget) {\n return;\n }\n\n if (widget.find('.timepicker').is(':visible')) {\n widget.find('.btn[data-action=\"togglePeriod\"]').click();\n }\n },\n t: function t() {\n this.date(this.getMoment());\n },\n 'delete': function _delete() {\n this.clear();\n }\n },\n debug: false,\n allowInputToggle: false,\n disabledTimeIntervals: false,\n disabledHours: false,\n enabledHours: false,\n viewDate: false\n };\n return $.fn.datetimepicker;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL2Jvb3RzdHJhcC1kYXRldGltZXBpY2tlci5qcz9lNDA5Il0sIm5hbWVzIjpbImZhY3RvcnkiLCJkZWZpbmUiLCIkIiwibW9tZW50IiwiRXJyb3IiLCJkYXRlVGltZVBpY2tlciIsImVsZW1lbnQiLCJvcHRpb25zIiwicGlja2VyIiwiZGF0ZSIsInZpZXdEYXRlIiwidW5zZXQiLCJpbnB1dCIsImNvbXBvbmVudCIsIndpZGdldCIsInVzZTI0SG91cnMiLCJtaW5WaWV3TW9kZU51bWJlciIsImFjdHVhbEZvcm1hdCIsInBhcnNlRm9ybWF0cyIsImN1cnJlbnRWaWV3TW9kZSIsImRhdGVQaWNrZXJNb2RlcyIsImNsc05hbWUiLCJuYXZGbmMiLCJuYXZTdGVwIiwidmlld01vZGVzIiwidmVydGljYWxNb2RlcyIsImhvcml6b250YWxNb2RlcyIsInRvb2xiYXJQbGFjZW1lbnRzIiwia2V5TWFwIiwia2V5U3RhdGUiLCJoYXNUaW1lWm9uZSIsInR6IiwidW5kZWZpbmVkIiwidGltZVpvbmUiLCJnZXRNb21lbnQiLCJkIiwicmV0dXJuTW9tZW50IiwiaXNEYXRlIiwiaXNNb21lbnQiLCJ1c2VTdHJpY3QiLCJpc0VuYWJsZWQiLCJncmFudWxhcml0eSIsImxlbmd0aCIsIlR5cGVFcnJvciIsImluZGV4T2YiLCJ0b0xvd2VyQ2FzZSIsImhhc1RpbWUiLCJoYXNEYXRlIiwiZ2V0RGF0ZVBpY2tlclRlbXBsYXRlIiwiaGVhZFRlbXBsYXRlIiwiYXBwZW5kIiwiYWRkQ2xhc3MiLCJhdHRyIiwiaWNvbnMiLCJwcmV2aW91cyIsImNhbGVuZGFyV2Vla3MiLCJuZXh0IiwiY29udFRlbXBsYXRlIiwiY2xvbmUiLCJnZXRUaW1lUGlja2VyTWFpblRlbXBsYXRlIiwidG9wUm93IiwibWlkZGxlUm93IiwiYm90dG9tUm93IiwiaHJlZiIsInRhYmluZGV4IiwidG9vbHRpcHMiLCJpbmNyZW1lbnRIb3VyIiwidXAiLCJwaWNrSG91ciIsImRlY3JlbWVudEhvdXIiLCJkb3duIiwiaHRtbCIsImluY3JlbWVudE1pbnV0ZSIsInBpY2tNaW51dGUiLCJkZWNyZW1lbnRNaW51dGUiLCJpbmNyZW1lbnRTZWNvbmQiLCJwaWNrU2Vjb25kIiwiZGVjcmVtZW50U2Vjb25kIiwidG9nZ2xlUGVyaW9kIiwiZ2V0VGltZVBpY2tlclRlbXBsYXRlIiwiaG91cnNWaWV3IiwibWludXRlc1ZpZXciLCJzZWNvbmRzVmlldyIsInJldCIsInB1c2giLCJnZXRUb29sYmFyIiwicm93Iiwic2hvd1RvZGF5QnV0dG9uIiwidG9kYXkiLCJzaWRlQnlTaWRlIiwic2VsZWN0VGltZSIsInRpbWUiLCJzaG93Q2xlYXIiLCJjbGVhciIsInNob3dDbG9zZSIsImNsb3NlIiwiZ2V0VGVtcGxhdGUiLCJ0ZW1wbGF0ZSIsImRhdGVWaWV3IiwidGltZVZpZXciLCJjb250ZW50IiwidG9vbGJhciIsImNvbGxhcHNlIiwiaW5saW5lIiwicmVtb3ZlQ2xhc3MiLCJ0b29sYmFyUGxhY2VtZW50IiwiZGF0YVRvT3B0aW9ucyIsImVEYXRhIiwiZGF0YU9wdGlvbnMiLCJpcyIsImRhdGEiLCJmaW5kIiwiZGF0ZU9wdGlvbnMiLCJPYmplY3QiLCJleHRlbmQiLCJlYWNoIiwia2V5IiwiYXR0cmlidXRlTmFtZSIsImNoYXJBdCIsInRvVXBwZXJDYXNlIiwic2xpY2UiLCJwbGFjZSIsInBvc2l0aW9uIiwib2Zmc2V0IiwidmVydGljYWwiLCJ3aWRnZXRQb3NpdGlvbmluZyIsImhvcml6b250YWwiLCJwYXJlbnQiLCJ3aWRnZXRQYXJlbnQiLCJhZnRlciIsImNoaWxkcmVuIiwiZmlyc3QiLCJ0b3AiLCJoZWlnaHQiLCJ3aW5kb3ciLCJzY3JvbGxUb3AiLCJvdXRlckhlaWdodCIsIndpZHRoIiwibGVmdCIsIm91dGVyV2lkdGgiLCJjc3MiLCJwYXJlbnRzIiwiZmlsdGVyIiwiYm90dG9tIiwicmlnaHQiLCJub3RpZnlFdmVudCIsImUiLCJ0eXBlIiwiaXNTYW1lIiwib2xkRGF0ZSIsInRyaWdnZXIiLCJ2aWV3VXBkYXRlIiwiY2hhbmdlIiwic2hvd01vZGUiLCJkaXIiLCJNYXRoIiwibWF4IiwibWluIiwiaGlkZSIsInNob3ciLCJmaWxsRG93IiwiY3VycmVudERhdGUiLCJzdGFydE9mIiwidGV4dCIsImlzQmVmb3JlIiwiZW5kT2YiLCJmb3JtYXQiLCJhZGQiLCJpc0luRGlzYWJsZWREYXRlcyIsInRlc3REYXRlIiwiZGlzYWJsZWREYXRlcyIsImlzSW5FbmFibGVkRGF0ZXMiLCJlbmFibGVkRGF0ZXMiLCJpc0luRGlzYWJsZWRIb3VycyIsImRpc2FibGVkSG91cnMiLCJpc0luRW5hYmxlZEhvdXJzIiwiZW5hYmxlZEhvdXJzIiwiaXNWYWxpZCIsInRhcmdldE1vbWVudCIsIm1pbkRhdGUiLCJtYXhEYXRlIiwiaXNBZnRlciIsImRheXNPZldlZWtEaXNhYmxlZCIsImRheSIsImRpc2FibGVkVGltZUludGVydmFscyIsImZvdW5kIiwiaXNCZXR3ZWVuIiwiZmlsbE1vbnRocyIsInNwYW5zIiwibW9udGhzU2hvcnQiLCJlbXB0eSIsInVwZGF0ZU1vbnRocyIsIm1vbnRoc1ZpZXciLCJtb250aHNWaWV3SGVhZGVyIiwibW9udGhzIiwiZXEiLCJwcmV2WWVhciIsInNlbGVjdFllYXIiLCJuZXh0WWVhciIsInN1YnRyYWN0IiwieWVhciIsIm1vbnRoIiwiaW5kZXgiLCJ1cGRhdGVZZWFycyIsInllYXJzVmlldyIsInllYXJzVmlld0hlYWRlciIsInN0YXJ0WWVhciIsImVuZFllYXIiLCJwcmV2RGVjYWRlIiwic2VsZWN0RGVjYWRlIiwibmV4dERlY2FkZSIsInVwZGF0ZURlY2FkZXMiLCJkZWNhZGVzVmlldyIsImRlY2FkZXNWaWV3SGVhZGVyIiwic3RhcnREZWNhZGUiLCJ5IiwiZW5kRGVjYWRlIiwic3RhcnRlZEF0IiwibWluRGF0ZURlY2FkZSIsIm1heERhdGVEZWNhZGUiLCJlbmREZWNhZGVZZWFyIiwicHJldkNlbnR1cnkiLCJuZXh0Q2VudHVyeSIsImZpbGxEYXRlIiwiZGF5c1ZpZXciLCJkYXlzVmlld0hlYWRlciIsImNsc05hbWVzIiwiaSIsInByZXZNb250aCIsInNlbGVjdE1vbnRoIiwibmV4dE1vbnRoIiwiZGF5Vmlld0hlYWRlckZvcm1hdCIsIndlZWtkYXkiLCJ3ZWVrIiwiY2xhc3NOYW1lcyIsImpvaW4iLCJmaWxsSG91cnMiLCJ0YWJsZSIsImN1cnJlbnRIb3VyIiwiaG91ciIsImZpbGxNaW51dGVzIiwiY3VycmVudE1pbnV0ZSIsInN0ZXAiLCJzdGVwcGluZyIsIm1pbnV0ZSIsImZpbGxTZWNvbmRzIiwiY3VycmVudFNlY29uZCIsInNlY29uZCIsImZpbGxUaW1lIiwidG9nZ2xlIiwibmV3RGF0ZSIsInRpbWVDb21wb25lbnRzIiwiaG91cnMiLCJ1cGRhdGUiLCJzZXRWYWx1ZSIsInZhbCIsImxvY2FsZSIsIm1pbnV0ZXMiLCJyb3VuZCIsInNlY29uZHMiLCJrZWVwSW52YWxpZCIsInRyYW5zaXRpb25pbmciLCJjb2xsYXBzZURhdGEiLCJoYXNDbGFzcyIsInRvZ2dsZUNsYXNzIiwib2ZmIiwicmVtb3ZlIiwiYmx1ciIsInBhcnNlSW5wdXREYXRlIiwiaW5wdXREYXRlIiwiRGF0ZSIsImFjdGlvbnMiLCJwaWNrZXJTd2l0Y2giLCJ0YXJnZXQiLCJjbG9zZXN0IiwicGFyc2VJbnQiLCJzZWxlY3REYXkiLCJrZWVwT3BlbiIsImluY3JlbWVudEhvdXJzIiwiaW5jcmVtZW50TWludXRlcyIsImluY3JlbWVudFNlY29uZHMiLCJkZWNyZW1lbnRIb3VycyIsImRlY3JlbWVudE1pbnV0ZXMiLCJkZWNyZW1lbnRTZWNvbmRzIiwidG9nZ2xlUGlja2VyIiwiJHRoaXMiLCIkcGFyZW50IiwiZXhwYW5kZWQiLCJjbG9zZWQiLCJzaG93UGlja2VyIiwic2hvd0hvdXJzIiwic2hvd01pbnV0ZXMiLCJzaG93U2Vjb25kcyIsInNlbGVjdEhvdXIiLCJjYWxsIiwic2VsZWN0TWludXRlIiwic2VsZWN0U2Vjb25kIiwidG9kYXlzRGF0ZSIsImRvQWN0aW9uIiwiY3VycmVudFRhcmdldCIsImFwcGx5IiwiYXJndW1lbnRzIiwiY3VycmVudE1vbWVudCIsInVzZUN1cnJlbnRHcmFudWxhcml0eSIsIm0iLCJwcm9wIiwiaWdub3JlUmVhZG9ubHkiLCJ0cmltIiwidXNlQ3VycmVudCIsIm9uIiwiZm9jdXNPblNob3ciLCJmb2N1cyIsImtleWRvd24iLCJoYW5kbGVyIiwiaW5kZXgyIiwicHJlc3NlZEtleXMiLCJwcmVzc2VkTW9kaWZpZXJzIiwiY3VycmVudEtleSIsIndoaWNoIiwia2V5QmluZEtleXMiLCJhbGxNb2RpZmllcnNQcmVzc2VkIiwicHJlc3NlZCIsImhhc093blByb3BlcnR5Iiwia2V5QmluZHMiLCJzcGxpdCIsInN0b3BQcm9wYWdhdGlvbiIsInByZXZlbnREZWZhdWx0Iiwia2V5dXAiLCJwYXJzZWREYXRlIiwic3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uIiwiYXR0YWNoRGF0ZVBpY2tlckVsZW1lbnRFdmVudHMiLCJkZWJ1ZyIsImFsbG93SW5wdXRUb2dnbGUiLCJkZXRhY2hEYXRlUGlja2VyRWxlbWVudEV2ZW50cyIsImluZGV4R2l2ZW5EYXRlcyIsImdpdmVuRGF0ZXNBcnJheSIsImdpdmVuRGF0ZXNJbmRleGVkIiwiZERhdGUiLCJrZXlzIiwiaW5kZXhHaXZlbkhvdXJzIiwiZ2l2ZW5Ib3Vyc0FycmF5IiwiZ2l2ZW5Ib3Vyc0luZGV4ZWQiLCJpbml0Rm9ybWF0dGluZyIsInJlcGxhY2UiLCJmb3JtYXRJbnB1dCIsIm5ld2lucHV0IiwibG9jYWxlRGF0YSIsImxvbmdEYXRlRm9ybWF0IiwiZm9ybWF0SW5wdXQyIiwiZXh0cmFGb3JtYXRzIiwiZGVzdHJveSIsInJlbW92ZURhdGEiLCJkaXNhYmxlIiwiZW5hYmxlIiwibmV3T3B0aW9ucyIsInZhbHVlIiwibmV3Rm9ybWF0IiwibmV3Wm9uZSIsImZvcm1hdHMiLCJBcnJheSIsImRhdGVzIiwic3BsaWNlIiwicmVkdWNlIiwicHJldmlvdXNWYWx1ZSIsImN1cnJlbnRWYWx1ZSIsImlzTmFOIiwic29ydCIsInRyaWVzIiwiZGVmYXVsdERhdGUiLCJ1c2VDdXJyZW50T3B0aW9ucyIsInZpZXdNb2RlIiwidG9TdHJpbmciLCJkYXRlcGlja2VySW5wdXQiLCJmbiIsImRhdGV0aW1lcGlja2VyIiwiYXJncyIsInByb3RvdHlwZSIsImlzSW5zdGFuY2UiLCJ0aGlzTWV0aG9kcyIsInJldHVyblZhbHVlIiwiX29wdGlvbnMiLCJkZWZhdWx0cyIsImluc3RhbmNlIiwiaW5BcnJheSIsInBhZ2VVcCIsInBhZ2VEb3duIiwiZW50ZXIiLCJlc2NhcGUiLCJjbGljayIsInQiXSwibWFwcGluZ3MiOiI7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTtBQUNDLFdBQVNBLE9BQVQsRUFBa0I7QUFDZjs7QUFDQSxNQUFJLElBQUosRUFBZ0Q7QUFDNUM7QUFDQUMscUNBQU8sQ0FBQywyQ0FBRCxFQUFXLG9FQUFYLENBQUQsb0NBQXVCRCxPQUF2QjtBQUFBO0FBQUE7QUFBQSxrR0FBTjtBQUNILEdBSEQsTUFHTyxFQVdOO0FBQ0osQ0FqQkEsRUFpQkMsVUFBU0UsQ0FBVCxFQUFZQyxNQUFaLEVBQW9CO0FBQ2xCOztBQUNBLE1BQUksQ0FBQ0EsTUFBTCxFQUFhO0FBQ1QsVUFBTSxJQUFJQyxLQUFKLENBQVUsZ0VBQVYsQ0FBTjtBQUNIOztBQUVELE1BQUlDLGNBQWMsR0FBRyxTQUFqQkEsY0FBaUIsQ0FBU0MsT0FBVCxFQUFrQkMsT0FBbEIsRUFBMkI7QUFDNUMsUUFBSUMsTUFBTSxHQUFHLEVBQWI7QUFDQSxRQUFJQyxJQUFKO0FBQ0EsUUFBSUMsUUFBSjtBQUNBLFFBQUlDLEtBQUssR0FBRyxJQUFaO0FBQ0EsUUFBSUMsS0FBSjtBQUNBLFFBQUlDLFNBQVMsR0FBRyxLQUFoQjtBQUNBLFFBQUlDLE1BQU0s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a2VyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyohIHZlcnNpb24gOiA0LjE3LjQ3XG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gYm9vdHN0cmFwLWRhdGV0aW1lanNcbiBodHRwczovL2dpdGh1Yi5jb20vRW9uYXNkYW4vYm9vdHN0cmFwLWRhdGV0aW1lcGlja2VyXG4gQ29weXJpZ2h0IChjKSAyMDE1IEpvbmF0aGFuIFBldGVyc29uXG4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKi9cbi8qXG4gVGhlIE1JVCBMaWNlbnNlIChNSVQpXG5cbiBDb3B5cmlnaHQgKGMpIDIwMTUgSm9uYXRoYW4gUGV0ZXJzb25cblxuIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuXG4gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cblxuIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4gVEhFIFNPRlRXQVJFLlxuICovXG4vKiBnbG9iYWwgZGVmaW5lOmZhbHNlICovXG4vKiBnbG9iYWwgalF1ZXJ5OmZhbHNlICovXG4vKiBnbG9iYWwgbW9tZW50OmZhbHNlICovXG4oZnVuY3Rpb24oZmFjdG9yeSkge1xuICAgICd1c2Ugc3RyaWN0JztcbiAgICBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7XG4gICAgICAgIC8vIEFNRCBpcyB1c2VkIC0gUmVnaXN0ZXIgYXMgYW4gYW5vbnltb3VzIG1vZHVsZS5cbiAgICAgICAgZGVmaW5lKFsnanF1ZXJ5JywgJ21vbWVudCddLCBmYWN0b3J5KTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jykge1xuICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkocmVxdWlyZSgnanF1ZXJ5JyksIHJlcXVpcmUoJ21vbWVudCcpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICAvLyBOZWl0aGVyIEFNRCBub3IgQ29tbW9uSlMgdXNlZC4gVXNlIGdsb2JhbCB2YXJpYWJsZXMuXG4gICAgICAgIGlmICh0eXBlb2YgalF1ZXJ5ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdib290c3RyYXAtZGF0ZXRpbWVwaWNrZXIgcmVxdWlyZXMgalF1ZXJ5IHRvIGJlIGxvYWRlZCBmaXJzdCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgbW9tZW50ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdib290c3RyYXAtZGF0ZXRpbWVwaWNrZXIgcmVxdWlyZXMgTW9tZW50LmpzIHRvIGJlIGxvYWRlZCBmaXJzdCcpO1xuICAgICAgICB9XG4gICAgICAgIGZhY3RvcnkoalF1ZXJ5LCBtb21lbnQpO1xuICAgIH1cbn0oZnVuY3Rpb24oJCwgbW9tZW50KSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuICAgIGlmICghbW9tZW50KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignYm9vdHN0cmFwLWRhdGV0aW1lcGlja2VyIHJlcXVpcmVzIE1vbWVudC5qcyB0byBiZSBsb2FkZWQgZmlyc3QnKTtcbiAgICB9XG5cbiAgICB2YXIgZGF0ZVRpbWVQaWNrZXIgPSBmdW5jdGlvbihlbGVtZW50LCBvcHRpb25zKSB7XG4gICAgICAgIHZhciBwaWNrZXIgPSB7fTtcbiAgICAgICAgdmFyIGRhdGU7XG4gICAgICAgIHZhciB2aWV3RGF0ZTtcbiAgICAgICAgdmFyIHVuc2V0ID0gdHJ1ZTtcbiAgICAgICAgdmFyIGlucHV0O1xuICAgICAgICB2YXIgY29tcG9uZW50ID0gZmFsc2U7XG4gICAgICAgIHZhciB3aWRnZXQgPSBmYWxzZTtcbiAgICAgICAgdmFyIHVzZTI0SG91cnM7XG4gICAgICAgIHZhciBtaW5WaWV3TW9kZU51bWJlciA9IDA7XG4gICAgICAgIHZhciBhY3R1YWxGb3JtYXQ7XG4gICAgICAgIHZhciBwYXJzZUZvcm1hdHM7XG4gICAgICAgIHZhciBjdXJyZW50Vmlld01vZGU7XG4gICAgICAgIHZhciBkYXRlUGlja2VyTW9kZXMgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2xzTmFtZTogJ2RheXMnLFxuICAgICAgICAgICAgICAgIG5hdkZuYzogJ00nLFxuICAgICAgICAgICAgICAgIG5hdlN0ZXA6IDFcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2xzTmFtZTogJ21vbnRocycsXG4gICAgICAgICAgICAgICAgbmF2Rm5jOiAneScsXG4gICAgICAgICAgICAgICAgbmF2U3RlcDogMVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjbHNOYW1lOiAneWVhcnMnLFxuICAgICAgICAgICAgICAgIG5hdkZuYzogJ3knLFxuICAgICAgICAgICAgICAgIG5hdlN0ZXA6IDEwXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsc05hbWU6ICdkZWNhZGVzJyxcbiAgICAgICAgICAgICAgICBuYXZGbmM6ICd5JyxcbiAgICAgICAgICAgICAgICBuYXZTdGVwOiAxMDBcbiAgICAgICAgICAgIH1cbiAgICAgICAgXTtcbiAgICAgICAgdmFyIHZpZXdNb2RlcyA9IFsnZGF5cycsICdtb250aHMnLCAneWVhcnMnLCAnZGVjYWRlcyddO1xuICAgICAgICB2YXIgdmVydGljYWxNb2RlcyA9IFsndG9wJywgJ2JvdHRvbScsICdhdXRvJ107XG4gICAgICAgIHZhciBob3Jpem9udGFsTW9kZXMgPSBbJ2xlZnQnLCAncmlnaHQnLCAnYXV0byddO1xuICAgICAgICB2YXIgdG9vbGJhclBsYWNlbWVudHMgPSBbJ2RlZmF1bHQnLCAndG9wJywgJ2JvdHRvbSddO1xuICAgICAgICB2YXIga2V5TWFwID0ge1xuICAgICAgICAgICAgJ3VwJzogMzgsXG4gICAgICAgICAgICAzODogJ3VwJyxcbiAgICAgICAgICAgICdkb3duJzogNDAsXG4gICAgICAgICAgICA0MDogJ2Rvd24nLFxuICAgICAgICAgICAgJ2xlZnQnOiAzNyxcbiAgICAgICAgICAgIDM3OiAnbGVmdCcsXG4gICAgICAgICAgICAncmlnaHQnOiAzOSxcbiAgICAgICAgICAgIDM5OiAncmlnaHQnLFxuICAgICAgICAgICAgJ3RhYic6IDksXG4gICAgICAgICAgICA5OiAndGFiJyxcbiAgICAgICAgICAgICdlc2NhcGUnOiAyNyxcbiAgICAgICAgICAgIDI3OiAnZXNjYXBlJyxcbiAgICAgICAgICAgICdlbnRlcic6IDEzLFxuICAgICAgICAgICAgMTM6ICdlbnRlcicsXG4gICAgICAgICAgICAncGFnZVVwJzogMzMsXG4gICAgICAgICAgICAzMzogJ3BhZ2VVcCcsXG4gICAgICAgICAgICAncGFnZURvd24nOiAzNCxcbiAgICAgICAgICAgIDM0OiAncGFnZURvd24nLFxuICAgICAgICAgICAgJ3NoaWZ0JzogMTYsXG4gICAgICAgICAgICAxNjogJ3NoaWZ0JyxcbiAgICAgICAgICAgICdjb250cm9sJzogMTcsXG4gICAgICAgICAgICAxNzogJ2NvbnRyb2wnLFxuICAgICAgICAgICAgJ3NwYWNlJzogMzIsXG4gICAgICAgICAgICAzMjogJ3NwYWNlJyxcbiAgICAgICAgICAgICd0JzogODQsXG4gICAgICAgICAgICA4NDogJ3QnLFxuICAgICAgICAgICAgJ2RlbGV0ZSc6IDQ2LFxuICAgICAgICAgICAgNDY6ICdkZWxldGUnXG4gICAgICAgIH07XG4gICAgICAgIHZhciBrZXlTdGF0ZSA9IHt9O1xuXG4gICAgICAgIC8qKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgKiBQcml2YXRlIGZ1bmN0aW9uc1xuICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgICAgICB2YXIgaGFzVGltZVpvbmUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHJldHVybiBtb21lbnQudHogIT09IHVuZGVmaW5lZCAmJiBvcHRpb25zLnRpbWVab25lICE9PSB1bmRlZmluZWQgJiYgb3B0aW9ucy50aW1lWm9uZSAhPT0gbnVsbCAmJiBvcHRpb25zLnRpbWVab25lICE9PSAnJztcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgZ2V0TW9tZW50ID0gZnVuY3Rpb24oZCkge1xuICAgICAgICAgICAgdmFyIHJldHVybk1vbWVudDtcblxuICAgICAgICAgICAgaWYgKGQgPT09IHVuZGVmaW5lZCB8fCBkID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuTW9tZW50ID0gbW9tZW50KCk7IC8vIFRPRE8gc2hvdWxkIHRoaXMgdXNlIGZvcm1hdD8gYW5kIGxvY2FsZT9cbiAgICAgICAgICAgIH0gZWxzZSBpZiAobW9tZW50LmlzRGF0ZShkKSB8fCBtb21lbnQuaXNNb21lbnQoZCkpIHtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgZGF0ZSB0aGF0IGlzIHBhc3NlZCBpbiBpcyBhbHJlYWR5IGEgRGF0ZSgpIG9yIG1vbWVudCgpIG9iamVjdCxcbiAgICAgICAgICAgICAgICAvLyBwYXNzIGl0IGRpcmVjdGx5IHRvIG1vbWVudC5cbiAgICAgICAgICAgICAgICByZXR1cm5Nb21lbnQgPSBtb21lbnQoZCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGhhc1RpbWVab25lKCkpIHsgLy8gVGhlcmUgaXMgYSBzdHJpbmcgdG8gcGFyc2UgYW5kIGEgZGVmYXVsdCB0aW1lIHpvbmVcbiAgICAgICAgICAgICAgICAvLyBwYXJzZSB3aXRoIHRoZSB0eiBmdW5jdGlvbiB3aGljaCB0YWtlcyBhIGRlZmF1bHQgdGltZSB6b25lIGlmIGl0IGlzIG5vdCBpbiB0aGUgZm9ybWF0IHN0cmluZ1xuICAgICAgICAgICAgICAgIHJldHVybk1vbWVudCA9IG1vbWVudC50eihkLCBwYXJzZUZvcm1hdHMsIG9wdGlvbnMudXNlU3RyaWN0LCBvcHRpb25zLnRpbWVab25lKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuTW9tZW50ID0gbW9tZW50KGQsIHBhcnNlRm9ybWF0cywgb3B0aW9ucy51c2VTdHJpY3QpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoaGFzVGltZVpvbmUoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybk1vbWVudC50eihvcHRpb25zLnRpbWVab25lKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHJldHVybk1vbWVudDtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgaXNFbmFibGVkID0gZnVuY3Rpb24oZ3JhbnVsYXJpdHkpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZ3JhbnVsYXJpdHkgIT09ICdzdHJpbmcnIHx8IGdyYW51bGFyaXR5Lmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdpc0VuYWJsZWQgZXhwZWN0cyBhIHNpbmdsZSBjaGFyYWN0ZXIgc3RyaW5nIHBhcmFtZXRlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3dpdGNoIChncmFudWxhcml0eSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3knOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWN0dWFsRm9ybWF0LmluZGV4T2YoJ1knKSAhPT0gLTE7XG4gICAgICAgICAgICAgICAgY2FzZSAnTSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhY3R1YWxGb3JtYXQuaW5kZXhPZignTScpICE9PSAtMTtcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjdHVhbEZvcm1hdC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoJ2QnKSAhPT0gLTE7XG4gICAgICAgICAgICAgICAgY2FzZSAnaCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnSCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhY3R1YWxGb3JtYXQudG9Mb3dlckNhc2UoKS5pbmRleE9mKCdoJykgIT09IC0xO1xuICAgICAgICAgICAgICAgIGNhc2UgJ20nOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWN0dWFsRm9ybWF0LmluZGV4T2YoJ20nKSAhPT0gLTE7XG4gICAgICAgICAgICAgICAgY2FzZSAncyc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhY3R1YWxGb3JtYXQuaW5kZXhPZigncycpICE9PSAtMTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGhhc1RpbWUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHJldHVybiAoaXNFbmFibGVkKCdoJykgfHwgaXNFbmFibGVkKCdtJykgfHwgaXNFbmFibGVkKCdzJykpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBoYXNEYXRlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICByZXR1cm4gKGlzRW5hYmxlZCgneScpIHx8IGlzRW5hYmxlZCgnTScpIHx8IGlzRW5hYmxlZCgnZCcpKTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgZ2V0RGF0ZVBpY2tlclRlbXBsYXRlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgaGVhZFRlbXBsYXRlID0gJCgnPHRoZWFkPicpXG4gICAgICAgICAgICAgICAgLmFwcGVuZCgkKCc8dHI+JylcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZCgkKCc8dGg+JykuYWRkQ2xhc3MoJ3ByZXYnKS5hdHRyKCdkYXRhLWFjdGlvbicsICdwcmV2aW91cycpXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKCQoJzxzcGFuPicpLmFkZENsYXNzKG9wdGlvbnMuaWNvbnMucHJldmlvdXMpKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoJCgnPHRoPicpLmFkZENsYXNzKCdwaWNrZXItc3dpdGNoJykuYXR0cignZGF0YS1hY3Rpb24nLCAncGlja2VyU3dpdGNoJykuYXR0cignY29sc3BhbicsIChvcHRpb25zLmNhbGVuZGFyV2Vla3MgPyAnNicgOiAnNScpKSlcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZCgkKCc8dGg+JykuYWRkQ2xhc3MoJ25leHQnKS5hdHRyKCdkYXRhLWFjdGlvbicsICduZXh0JylcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoJCgnPHNwYW4+JykuYWRkQ2xhc3Mob3B0aW9ucy5pY29ucy5uZXh0KSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB2YXIgY29udFRlbXBsYXRlID0gJCgnPHRib2R5PicpXG4gICAgICAgICAgICAgICAgLmFwcGVuZCgkKCc8dHI+JylcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZCgkKCc8dGQ+JykuYXR0cignY29sc3BhbicsIChvcHRpb25zLmNhbGVuZGFyV2Vla3MgPyAnOCcgOiAnNycpKSlcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICQoJzxkaXY+JykuYWRkQ2xhc3MoJ2RhdGVwaWNrZXItZGF5cycpXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoJCgnPHRhYmxlPicpLmFkZENsYXNzKCd0YWJsZS1jb25kZW5zZWQnKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZChoZWFkVGVtcGxhdGUpXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKCQoJzx0Ym9keT4nKSlcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAkKCc8ZGl2PicpLmFkZENsYXNzKCdkYXRlcGlja2VyLW1vbnRocycpXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoJCgnPHRhYmxlPicpLmFkZENsYXNzKCd0YWJsZS1jb25kZW5zZWQnKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZChoZWFkVGVtcGxhdGUuY2xvbmUoKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoY29udFRlbXBsYXRlLmNsb25lKCkpXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgJCgnPGRpdj4nKS5hZGRDbGFzcygnZGF0ZXBpY2tlci15ZWFycycpXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoJCgnPHRhYmxlPicpLmFkZENsYXNzKCd0YWJsZS1jb25kZW5zZWQnKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZChoZWFkVGVtcGxhdGUuY2xvbmUoKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoY29udFRlbXBsYXRlLmNsb25lKCkpXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgJCgnPGRpdj4nKS5hZGRDbGFzcygnZGF0ZXBpY2tlci1kZWNhZGVzJylcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZCgkKCc8dGFibGU+JykuYWRkQ2xhc3MoJ3RhYmxlLWNvbmRlbnNlZCcpXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKGhlYWRUZW1wbGF0ZS5jbG9uZSgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZChjb250VGVtcGxhdGUuY2xvbmUoKSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgXTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgZ2V0VGltZVBpY2tlck1haW5UZW1wbGF0ZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIHRvcFJvdyA9ICQoJzx0cj4nKTtcbiAgICAgICAgICAgIHZhciBtaWRkbGVSb3cgPSAkKCc8dHI+Jyk7XG4gICAgICAgICAgICB2YXIgYm90dG9tUm93ID0gJCgnPHRyPicpO1xuXG4gICAgICAgICAgICBpZiAoaXNFbmFibGVkKCdoJykpIHtcbiAgICAgICAgICAgICAgICB0b3BSb3cuYXBwZW5kKCQoJzx0ZD4nKVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKCQoJzxhPicpLmF0dHIoeyBocmVmOiAnIycsIHRhYmluZGV4OiAnLTEnLCAndGl0bGUnOiBvcHRpb25zLnRvb2x0aXBzLmluY3JlbWVudEhvdXIgfSkuYWRkQ2xhc3MoJ2J0bicpLmF0dHIoJ2RhdGEtYWN0aW9uJywgJ2luY3JlbWVudEhvdXJzJykuYXBwZW5kKCQoJzxzcGFuPicpLmFkZENsYXNzKG9wdGlvbnMuaWNvbnMudXApKSkpO1xuICAgICAgICAgICAgICAgIG1pZGRsZVJvdy5hcHBlbmQoJCgnPHRkPicpXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoJCgnPHNwYW4+JykuYWRkQ2xhc3MoJ3RpbWVwaWNrZXItaG91cicpLmF0dHIoeyAnZGF0YS10aW1lLWNvbXBvbmVudCc6ICdob3VycycsICd0aXRsZSc6IG9wdGlvbnMudG9vbHRpcHMucGlja0hvdXIgfSkuYXR0cignZGF0YS1hY3Rpb24nLCAnc2hvd0hvdXJzJykpKTtcbiAgICAgICAgICAgICAgICBib3R0b21Sb3cuYXBwZW5kKCQoJzx0ZD4nKVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKCQoJzxhPicpLmF0dHIoeyBocmVmOiAnIycsIHRhYmluZGV4OiAnLTEnLCAndGl0bGUnOiBvcHRpb25zLnRvb2x0aXBzLmRlY3JlbWVudEhvdXIgfSkuYWRkQ2xhc3MoJ2J0bicpLmF0dHIoJ2RhdGEtYWN0aW9uJywgJ2RlY3JlbWVudEhvdXJzJykuYXBwZW5kKCQoJzxzcGFuPicpLmFkZENsYXNzKG9wdGlvbnMuaWNvbnMuZG93bikpKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNFbmFibGVkKCdtJykpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNFbmFibGVkKCdoJykpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9wUm93LmFwcGVuZCgkKCc8dGQ+JykuYWRkQ2xhc3MoJ3NlcGFyYXRvcicpKTtcbiAgICAgICAgICAgICAgICAgICAgbWlkZGxlUm93LmFwcGVuZCgkKCc8dGQ+JykuYWRkQ2xhc3MoJ3NlcGFyYXRvcicpLmh0bWwoJzonKSk7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbVJvdy5hcHBlbmQoJCgnPHRkPicpLmFkZENsYXNzKCdzZXBhcmF0b3InKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRvcFJvdy5hcHBlbmQoJCgnPHRkPicpXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoJCgnPGE+JykuYXR0cih7IGhyZWY6ICcjJywgdGFiaW5kZXg6ICctMScsICd0aXRsZSc6IG9wdGlvbnMudG9vbHRpcHMuaW5jcmVtZW50TWludXRlIH0pLmFkZENsYXNzKCdidG4nKS5hdHRyKCdkYXRhLWFjdGlvbicsICdpbmNyZW1lbnRNaW51dGVzJylcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoJCgnPHNwYW4+JykuYWRkQ2xhc3Mob3B0aW9ucy5pY29ucy51cCkpKSk7XG4gICAgICAgICAgICAgICAgbWlkZGxlUm93LmFwcGVuZCgkKCc8dGQ+JylcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZCgkKCc8c3Bhbj4nKS5hZGRDbGFzcygndGltZXBpY2tlci1taW51dGUnKS5hdHRyKHsgJ2RhdGEtdGltZS1jb21wb25lbnQnOiAnbWludXRlcycsICd0aXRsZSc6IG9wdGlvbnMudG9vbHRpcHMucGlja01pbnV0ZSB9KS5hdHRyKCdkYXRhLWFjdGlvbicsICdzaG93TWludXRlcycpKSk7XG4gICAgICAgICAgICAgICAgYm90dG9tUm93LmFwcGVuZCgkKCc8dGQ+JylcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZCgkKCc8YT4nKS5hdHRyKHsgaHJlZjogJyMnLCB0YWJpbmRleDogJy0xJywgJ3RpdGxlJzogb3B0aW9ucy50b29sdGlwcy5kZWNyZW1lbnRNaW51dGUgfSkuYWRkQ2xhc3MoJ2J0bicpLmF0dHIoJ2RhdGEtYWN0aW9uJywgJ2RlY3JlbWVudE1pbnV0ZXMnKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZCgkKCc8c3Bhbj4nKS5hZGRDbGFzcyhvcHRpb25zLmljb25zLmRvd24pKSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzRW5hYmxlZCgncycpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzRW5hYmxlZCgnbScpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvcFJvdy5hcHBlbmQoJCgnPHRkPicpLmFkZENsYXNzKCdzZXBhcmF0b3InKSk7XG4gICAgICAgICAgICAgICAgICAgIG1pZGRsZVJvdy5hcHBlbmQoJCgnPHRkPicpLmFkZENsYXNzKCdzZXBhcmF0b3InKS5odG1sKCc6JykpO1xuICAgICAgICAgICAgICAgICAgICBib3R0b21Sb3cuYXBwZW5kKCQoJzx0ZD4nKS5hZGRDbGFzcygnc2VwYXJhdG9yJykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0b3BSb3cuYXBwZW5kKCQoJzx0ZD4nKVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKCQoJzxhPicpLmF0dHIoeyBocmVmOiAnIycsIHRhYmluZGV4OiAnLTEnLCAndGl0bGUnOiBvcHRpb25zLnRvb2x0aXBzLmluY3JlbWVudFNlY29uZCB9KS5hZGRDbGFzcygnYnRuJykuYXR0cignZGF0YS1hY3Rpb24nLCAnaW5jcmVtZW50U2Vjb25kcycpXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKCQoJzxzcGFuPicpLmFkZENsYXNzKG9wdGlvbnMuaWNvbnMudXApKSkpO1xuICAgICAgICAgICAgICAgIG1pZGRsZVJvdy5hcHBlbmQoJCgnPHRkPicpXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoJCgnPHNwYW4+JykuYWRkQ2xhc3MoJ3RpbWVwaWNrZXItc2Vjb25kJykuYXR0cih7ICdkYXRhLXRpbWUtY29tcG9uZW50JzogJ3NlY29uZHMnLCAndGl0bGUnOiBvcHRpb25zLnRvb2x0aXBzLnBpY2tTZWNvbmQgfSkuYXR0cignZGF0YS1hY3Rpb24nLCAnc2hvd1NlY29uZHMnKSkpO1xuICAgICAgICAgICAgICAgIGJvdHRvbVJvdy5hcHBlbmQoJCgnPHRkPicpXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoJCgnPGE+JykuYXR0cih7IGhyZWY6ICcjJywgdGFiaW5kZXg6ICctMScsICd0aXRsZSc6IG9wdGlvbnMudG9vbHRpcHMuZGVjcmVtZW50U2Vjb25kIH0pLmFkZENsYXNzKCdidG4nKS5hdHRyKCdkYXRhLWFjdGlvbicsICdkZWNyZW1lbnRTZWNvbmRzJylcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoJCgnPHNwYW4+JykuYWRkQ2xhc3Mob3B0aW9ucy5pY29ucy5kb3duKSkpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCF1c2UyNEhvdXJzKSB7XG4gICAgICAgICAgICAgICAgdG9wUm93LmFwcGVuZCgkKCc8dGQ+JykuYWRkQ2xhc3MoJ3NlcGFyYXRvcicpKTtcbiAgICAgICAgICAgICAgICBtaWRkbGVSb3cuYXBwZW5kKCQoJzx0ZD4nKVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKCQoJzxidXR0b24+JykuYWRkQ2xhc3MoJ2J0biBidG4tcHJpbWFyeScpLmF0dHIoeyAnZGF0YS1hY3Rpb24nOiAndG9nZ2xlUGVyaW9kJywgdGFiaW5kZXg6ICctMScsICd0aXRsZSc6IG9wdGlvbnMudG9vbHRpcHMudG9nZ2xlUGVyaW9kIH0pKSk7XG4gICAgICAgICAgICAgICAgYm90dG9tUm93LmFwcGVuZCgkKCc8dGQ+JykuYWRkQ2xhc3MoJ3NlcGFyYXRvcicpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuICQoJzxkaXY+JykuYWRkQ2xhc3MoJ3RpbWVwaWNrZXItcGlja2VyJylcbiAgICAgICAgICAgICAgICAuYXBwZW5kKCQoJzx0YWJsZT4nKS5hZGRDbGFzcygndGFibGUtY29uZGVuc2VkJylcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZChbdG9wUm93LCBtaWRkbGVSb3csIGJvdHRvbVJvd10pKTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgZ2V0VGltZVBpY2tlclRlbXBsYXRlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgaG91cnNWaWV3ID0gJCgnPGRpdj4nKS5hZGRDbGFzcygndGltZXBpY2tlci1ob3VycycpXG4gICAgICAgICAgICAgICAgLmFwcGVuZCgkKCc8dGFibGU+JykuYWRkQ2xhc3MoJ3RhYmxlLWNvbmRlbnNlZCcpKTtcbiAgICAgICAgICAgIHZhciBtaW51dGVzVmlldyA9ICQoJzxkaXY+JykuYWRkQ2xhc3MoJ3RpbWVwaWNrZXItbWludXRlcycpXG4gICAgICAgICAgICAgICAgLmFwcGVuZCgkKCc8dGFibGU+JykuYWRkQ2xhc3MoJ3RhYmxlLWNvbmRlbnNlZCcpKTtcbiAgICAgICAgICAgIHZhciBzZWNvbmRzVmlldyA9ICQoJzxkaXY+JykuYWRkQ2xhc3MoJ3RpbWVwaWNrZXItc2Vjb25kcycpXG4gICAgICAgICAgICAgICAgLmFwcGVuZCgkKCc8dGFibGU+JykuYWRkQ2xhc3MoJ3RhYmxlLWNvbmRlbnNlZCcpKTtcbiAgICAgICAgICAgIHZhciByZXQgPSBbZ2V0VGltZVBpY2tlck1haW5UZW1wbGF0ZSgpXTtcblxuICAgICAgICAgICAgaWYgKGlzRW5hYmxlZCgnaCcpKSB7XG4gICAgICAgICAgICAgICAgcmV0LnB1c2goaG91cnNWaWV3KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0VuYWJsZWQoJ20nKSkge1xuICAgICAgICAgICAgICAgIHJldC5wdXNoKG1pbnV0ZXNWaWV3KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0VuYWJsZWQoJ3MnKSkge1xuICAgICAgICAgICAgICAgIHJldC5wdXNoKHNlY29uZHNWaWV3KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgZ2V0VG9vbGJhciA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIHJvdyA9IFtdO1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMuc2hvd1RvZGF5QnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgcm93LnB1c2goJCgnPHRkPicpLmFwcGVuZCgkKCc8YT4nKS5hdHRyKHsgJ2RhdGEtYWN0aW9uJzogJ3RvZGF5JywgJ3RpdGxlJzogb3B0aW9ucy50b29sdGlwcy50b2RheSB9KS5hcHBlbmQoJCgnPHNwYW4+JykuYWRkQ2xhc3Mob3B0aW9ucy5pY29ucy50b2RheSkpKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIW9wdGlvbnMuc2lkZUJ5U2lkZSAmJiBoYXNEYXRlKCkgJiYgaGFzVGltZSgpKSB7XG4gICAgICAgICAgICAgICAgcm93LnB1c2goJCgnPHRkPicpLmFwcGVuZCgkKCc8YT4nKS5hdHRyKHsgJ2RhdGEtYWN0aW9uJzogJ3RvZ2dsZVBpY2tlcicsICd0aXRsZSc6IG9wdGlvbnMudG9vbHRpcHMuc2VsZWN0VGltZSB9KS5hcHBlbmQoJCgnPHNwYW4+JykuYWRkQ2xhc3Mob3B0aW9ucy5pY29ucy50aW1lKSkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvcHRpb25zLnNob3dDbGVhcikge1xuICAgICAgICAgICAgICAgIHJvdy5wdXNoKCQoJzx0ZD4nKS5hcHBlbmQoJCgnPGE+JykuYXR0cih7ICdkYXRhLWFjdGlvbic6ICdjbGVhcicsICd0aXRsZSc6IG9wdGlvbnMudG9vbHRpcHMuY2xlYXIgfSkuYXBwZW5kKCQoJzxzcGFuPicpLmFkZENsYXNzKG9wdGlvbnMuaWNvbnMuY2xlYXIpKSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuc2hvd0Nsb3NlKSB7XG4gICAgICAgICAgICAgICAgcm93LnB1c2goJCgnPHRkPicpLmFwcGVuZCgkKCc8YT4nKS5hdHRyKHsgJ2RhdGEtYWN0aW9uJzogJ2Nsb3NlJywgJ3RpdGxlJzogb3B0aW9ucy50b29sdGlwcy5jbG9zZSB9KS5hcHBlbmQoJCgnPHNwYW4+JykuYWRkQ2xhc3Mob3B0aW9ucy5pY29ucy5jbG9zZSkpKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gJCgnPHRhYmxlPicpLmFkZENsYXNzKCd0YWJsZS1jb25kZW5zZWQnKS5hcHBlbmQoJCgnPHRib2R5PicpLmFwcGVuZCgkKCc8dHI+JykuYXBwZW5kKHJvdykpKTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgZ2V0VGVtcGxhdGUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciB0ZW1wbGF0ZSA9ICQoJzxkaXY+JykuYWRkQ2xhc3MoJ2Jvb3RzdHJhcC1kYXRldGltZXBpY2tlci13aWRnZXQgZHJvcGRvd24tbWVudScpO1xuICAgICAgICAgICAgdmFyIGRhdGVWaWV3ID0gJCgnPGRpdj4nKS5hZGRDbGFzcygnZGF0ZXBpY2tlcicpLmFwcGVuZChnZXREYXRlUGlja2VyVGVtcGxhdGUoKSk7XG4gICAgICAgICAgICB2YXIgdGltZVZpZXcgPSAkKCc8ZGl2PicpLmFkZENsYXNzKCd0aW1lcGlja2VyJykuYXBwZW5kKGdldFRpbWVQaWNrZXJUZW1wbGF0ZSgpKTtcbiAgICAgICAgICAgIHZhciBjb250ZW50ID0gJCgnPHVsPicpLmFkZENsYXNzKCdsaXN0LXVuc3R5bGVkJyk7XG4gICAgICAgICAgICB2YXIgdG9vbGJhciA9ICQoJzxsaT4nKS5hZGRDbGFzcygncGlja2VyLXN3aXRjaCcgKyAob3B0aW9ucy5jb2xsYXBzZSA/ICcgYWNjb3JkaW9uLXRvZ2dsZScgOiAnJykpLmFwcGVuZChnZXRUb29sYmFyKCkpO1xuXG4gICAgICAgICAgICBpZiAob3B0aW9ucy5pbmxpbmUpIHtcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZS5yZW1vdmVDbGFzcygnZHJvcGRvd24tbWVudScpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodXNlMjRIb3Vycykge1xuICAgICAgICAgICAgICAgIHRlbXBsYXRlLmFkZENsYXNzKCd1c2V0d2VudHlmb3VyJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChpc0VuYWJsZWQoJ3MnKSAmJiAhdXNlMjRIb3Vycykge1xuICAgICAgICAgICAgICAgIHRlbXBsYXRlLmFkZENsYXNzKCd3aWRlcicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAob3B0aW9ucy5zaWRlQnlTaWRlICYmIGhhc0RhdGUoKSAmJiBoYXNUaW1lKCkpIHtcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZS5hZGRDbGFzcygndGltZXBpY2tlci1zYnMnKTtcbiAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy50b29sYmFyUGxhY2VtZW50ID09PSAndG9wJykge1xuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZS5hcHBlbmQodG9vbGJhcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRlbXBsYXRlLmFwcGVuZChcbiAgICAgICAgICAgICAgICAgICAgJCgnPGRpdj4nKS5hZGRDbGFzcygncm93JylcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmQoZGF0ZVZpZXcuYWRkQ2xhc3MoJ2NvbC1tZC02JykpXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kKHRpbWVWaWV3LmFkZENsYXNzKCdjb2wtbWQtNicpKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMudG9vbGJhclBsYWNlbWVudCA9PT0gJ2JvdHRvbScpIHtcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGUuYXBwZW5kKHRvb2xiYXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdGVtcGxhdGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChvcHRpb25zLnRvb2xiYXJQbGFjZW1lbnQgPT09ICd0b3AnKSB7XG4gICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmQodG9vbGJhcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaGFzRGF0ZSgpKSB7XG4gICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmQoJCgnPGxpPicpLmFkZENsYXNzKChvcHRpb25zLmNvbGxhcHNlICYmIGhhc1RpbWUoKSA/ICdjb2xsYXBzZSBpbicgOiAnJykpLmFwcGVuZChkYXRlVmlldykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9wdGlvbnMudG9vbGJhclBsYWNlbWVudCA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmQodG9vbGJhcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaGFzVGltZSgpKSB7XG4gICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmQoJCgnPGxpPicpLmFkZENsYXNzKChvcHRpb25zLmNvbGxhcHNlICYmIGhhc0RhdGUoKSA/ICdjb2xsYXBzZScgOiAnJykpLmFwcGVuZCh0aW1lVmlldykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9wdGlvbnMudG9vbGJhclBsYWNlbWVudCA9PT0gJ2JvdHRvbScpIHtcbiAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZCh0b29sYmFyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0ZW1wbGF0ZS5hcHBlbmQoY29udGVudCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGRhdGFUb09wdGlvbnMgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciBlRGF0YTtcbiAgICAgICAgICAgIHZhciBkYXRhT3B0aW9ucyA9IHt9O1xuXG4gICAgICAgICAgICBpZiAoZWxlbWVudC5pcygnaW5wdXQnKSB8fCBvcHRpb25zLmlubGluZSkge1xuICAgICAgICAgICAgICAgIGVEYXRhID0gZWxlbWVudC5kYXRhKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGVEYXRhID0gZWxlbWVudC5maW5kKCdpbnB1dCcpLmRhdGEoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGVEYXRhLmRhdGVPcHRpb25zICYmIGVEYXRhLmRhdGVPcHRpb25zIGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgZGF0YU9wdGlvbnMgPSAkLmV4dGVuZCh0cnVlLCBkYXRhT3B0aW9ucywgZURhdGEuZGF0ZU9wdGlvbnMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAkLmVhY2gob3B0aW9ucywgZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgICAgICAgICAgdmFyIGF0dHJpYnV0ZU5hbWUgPSAnZGF0ZScgKyBrZXkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBrZXkuc2xpY2UoMSk7XG4gICAgICAgICAgICAgICAgaWYgKGVEYXRhW2F0dHJpYnV0ZU5hbWVdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YU9wdGlvbnNba2V5XSA9IGVEYXRhW2F0dHJpYnV0ZU5hbWVdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIGRhdGFPcHRpb25zO1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBwbGFjZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIHBvc2l0aW9uID0gKGNvbXBvbmVudCB8fCBlbGVtZW50KS5wb3NpdGlvbigpO1xuICAgICAgICAgICAgdmFyIG9mZnNldCA9IChjb21wb25lbnQgfHwgZWxlbWVudCkub2Zmc2V0KCk7XG4gICAgICAgICAgICB2YXIgdmVydGljYWwgPSBvcHRpb25zLndpZGdldFBvc2l0aW9uaW5nLnZlcnRpY2FsO1xuICAgICAgICAgICAgdmFyIGhvcml6b250YWwgPSBvcHRpb25zLndpZGdldFBvc2l0aW9uaW5nLmhvcml6b250YWw7XG4gICAgICAgICAgICB2YXIgcGFyZW50O1xuXG4gICAgICAgICAgICBpZiAob3B0aW9ucy53aWRnZXRQYXJlbnQpIHtcbiAgICAgICAgICAgICAgICBwYXJlbnQgPSBvcHRpb25zLndpZGdldFBhcmVudC5hcHBlbmQod2lkZ2V0KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5pcygnaW5wdXQnKSkge1xuICAgICAgICAgICAgICAgIHBhcmVudCA9IGVsZW1lbnQuYWZ0ZXIod2lkZ2V0KS5wYXJlbnQoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy5pbmxpbmUpIHtcbiAgICAgICAgICAgICAgICBwYXJlbnQgPSBlbGVtZW50LmFwcGVuZCh3aWRnZXQpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGFyZW50ID0gZWxlbWVudDtcbiAgICAgICAgICAgICAgICBlbGVtZW50LmNoaWxkcmVuKCkuZmlyc3QoKS5hZnRlcih3aWRnZXQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBUb3AgYW5kIGJvdHRvbSBsb2dpY1xuICAgICAgICAgICAgaWYgKHZlcnRpY2FsID09PSAnYXV0bycpIHtcbiAgICAgICAgICAgICAgICBpZiAob2Zmc2V0LnRvcCArIHdpZGdldC5oZWlnaHQoKSAqIDEuNSA+PSAkKHdpbmRvdykuaGVpZ2h0KCkgKyAkKHdpbmRvdykuc2Nyb2xsVG9wKCkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZGdldC5oZWlnaHQoKSArIGVsZW1lbnQub3V0ZXJIZWlnaHQoKSA8IG9mZnNldC50b3ApIHtcbiAgICAgICAgICAgICAgICAgICAgdmVydGljYWwgPSAndG9wJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbCA9ICdib3R0b20nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gTGVmdCBhbmQgcmlnaHQgbG9naWNcbiAgICAgICAgICAgIGlmIChob3Jpem9udGFsID09PSAnYXV0bycpIHtcbiAgICAgICAgICAgICAgICBpZiAocGFyZW50LndpZHRoKCkgPCBvZmZzZXQubGVmdCArIHdpZGdldC5vdXRlcldpZHRoKCkgLyAyICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQubGVmdCArIHdpZGdldC5vdXRlcldpZHRoKCkgPiAkKHdpbmRvdykud2lkdGgoKSkge1xuICAgICAgICAgICAgICAgICAgICBob3Jpem9udGFsID0gJ3JpZ2h0JztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBob3Jpem9udGFsID0gJ2xlZnQnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHZlcnRpY2FsID09PSAndG9wJykge1xuICAgICAgICAgICAgICAgIHdpZGdldC5hZGRDbGFzcygndG9wJykucmVtb3ZlQ2xhc3MoJ2JvdHRvbScpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB3aWRnZXQuYWRkQ2xhc3MoJ2JvdHRvbScpLnJlbW92ZUNsYXNzKCd0b3AnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGhvcml6b250YWwgPT09ICdyaWdodCcpIHtcbiAgICAgICAgICAgICAgICB3aWRnZXQuYWRkQ2xhc3MoJ3B1bGwtcmlnaHQnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgd2lkZ2V0LnJlbW92ZUNsYXNzKCdwdWxsLXJpZ2h0Jyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGZpbmQgdGhlIGZpcnN0IHBhcmVudCBlbGVtZW50IHRoYXQgaGFzIGEgbm9uLXN0YXRpYyBjc3MgcG9zaXRpb25pbmdcbiAgICAgICAgICAgIGlmIChwYXJlbnQuY3NzKCdwb3NpdGlvbicpID09PSAnc3RhdGljJykge1xuICAgICAgICAgICAgICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnRzKCkuZmlsdGVyKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJCh0aGlzKS5jc3MoJ3Bvc2l0aW9uJykgIT09ICdzdGF0aWMnO1xuICAgICAgICAgICAgICAgIH0pLmZpcnN0KCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChwYXJlbnQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdkYXRldGltZXBpY2tlciBjb21wb25lbnQgc2hvdWxkIGJlIHBsYWNlZCB3aXRoaW4gYSBub24tc3RhdGljIHBvc2l0aW9uZWQgY29udGFpbmVyJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHdpZGdldC5jc3Moe1xuICAgICAgICAgICAgICAgIHRvcDogdmVydGljYWwgPT09ICd0b3AnID8gJ2F1dG8nIDogcG9zaXRpb24udG9wICsgZWxlbWVudC5vdXRlckhlaWdodCgpLFxuICAgICAgICAgICAgICAgIGJvdHRvbTogdmVydGljYWwgPT09ICd0b3AnID8gcGFyZW50Lm91dGVySGVpZ2h0KCkgLSAocGFyZW50ID09PSBlbGVtZW50ID8gMCA6IHBvc2l0aW9uLnRvcCkgOiAnYXV0bycsXG4gICAgICAgICAgICAgICAgbGVmdDogaG9yaXpvbnRhbCA9PT0gJ2xlZnQnID8gKHBhcmVudCA9PT0gZWxlbWVudCA/IDAgOiBwb3NpdGlvbi5sZWZ0KSA6ICdhdXRvJyxcbiAgICAgICAgICAgICAgICByaWdodDogaG9yaXpvbnRhbCA9PT0gJ2xlZnQnID8gJ2F1dG8nIDogcGFyZW50Lm91dGVyV2lkdGgoKSAtIGVsZW1lbnQub3V0ZXJXaWR0aCgpIC0gKHBhcmVudCA9PT0gZWxlbWVudCA/IDAgOiBwb3NpdGlvbi5sZWZ0KVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIG5vdGlmeUV2ZW50ID0gZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgaWYgKGUudHlwZSA9PT0gJ2RwLmNoYW5nZScgJiYgKChlLmRhdGUgJiYgZS5kYXRlLmlzU2FtZShlLm9sZERhdGUpKSB8fCAoIWUuZGF0ZSAmJiAhZS5vbGREYXRlKSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbGVtZW50LnRyaWdnZXIoZSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIHZpZXdVcGRhdGUgPSBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICBpZiAoZSA9PT0gJ3knKSB7XG4gICAgICAgICAgICAgICAgZSA9ICdZWVlZJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG5vdGlmeUV2ZW50KHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnZHAudXBkYXRlJyxcbiAgICAgICAgICAgICAgICBjaGFuZ2U6IGUsXG4gICAgICAgICAgICAgICAgdmlld0RhdGU6IHZpZXdEYXRlLmNsb25lKClcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBzaG93TW9kZSA9IGZ1bmN0aW9uKGRpcikge1xuICAgICAgICAgICAgaWYgKCF3aWRnZXQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGlyKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudFZpZXdNb2RlID0gTWF0aC5tYXgobWluVmlld01vZGVOdW1iZXIsIE1hdGgubWluKDMsIGN1cnJlbnRWaWV3TW9kZSArIGRpcikpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd2lkZ2V0LmZpbmQoJy5kYXRlcGlja2VyID4gZGl2JykuaGlkZSgpLmZpbHRlcignLmRhdGVwaWNrZXItJyArIGRhdGVQaWNrZXJNb2Rlc1tjdXJyZW50Vmlld01vZGVdLmNsc05hbWUpLnNob3coKTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgZmlsbERvdyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIHJvdyA9ICQoJzx0cj4nKTtcbiAgICAgICAgICAgIHZhciBjdXJyZW50RGF0ZSA9IHZpZXdEYXRlLmNsb25lKCkuc3RhcnRPZigndycpLnN0YXJ0T2YoJ2QnKTtcblxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuY2FsZW5kYXJXZWVrcyA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIHJvdy5hcHBlbmQoJCgnPHRoPicpLmFkZENsYXNzKCdjdycpLnRleHQoJyMnKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHdoaWxlIChjdXJyZW50RGF0ZS5pc0JlZm9yZSh2aWV3RGF0ZS5jbG9uZSgpLmVuZE9mKCd3JykpKSB7XG4gICAgICAgICAgICAgICAgcm93LmFwcGVuZCgkKCc8dGg+JykuYWRkQ2xhc3MoJ2RvdycpLnRleHQoY3VycmVudERhdGUuZm9ybWF0KCdkZCcpKSk7XG4gICAgICAgICAgICAgICAgY3VycmVudERhdGUuYWRkKDEsICdkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB3aWRnZXQuZmluZCgnLmRhdGVwaWNrZXItZGF5cyB0aGVhZCcpLmFwcGVuZChyb3cpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBpc0luRGlzYWJsZWREYXRlcyA9IGZ1bmN0aW9uKHRlc3REYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5kaXNhYmxlZERhdGVzW3Rlc3REYXRlLmZvcm1hdCgnWVlZWS1NTS1ERCcpXSA9PT0gdHJ1ZTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgaXNJbkVuYWJsZWREYXRlcyA9IGZ1bmN0aW9uKHRlc3REYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5lbmFibGVkRGF0ZXNbdGVzdERhdGUuZm9ybWF0KCdZWVlZLU1NLUREJyldID09PSB0cnVlO1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBpc0luRGlzYWJsZWRIb3VycyA9IGZ1bmN0aW9uKHRlc3REYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5kaXNhYmxlZEhvdXJzW3Rlc3REYXRlLmZvcm1hdCgnSCcpXSA9PT0gdHJ1ZTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgaXNJbkVuYWJsZWRIb3VycyA9IGZ1bmN0aW9uKHRlc3REYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5lbmFibGVkSG91cnNbdGVzdERhdGUuZm9ybWF0KCdIJyldID09PSB0cnVlO1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBpc1ZhbGlkID0gZnVuY3Rpb24odGFyZ2V0TW9tZW50LCBncmFudWxhcml0eSkge1xuICAgICAgICAgICAgaWYgKCF0YXJnZXRNb21lbnQuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuZGlzYWJsZWREYXRlcyAmJiBncmFudWxhcml0eSA9PT0gJ2QnICYmIGlzSW5EaXNhYmxlZERhdGVzKHRhcmdldE1vbWVudCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5lbmFibGVkRGF0ZXMgJiYgZ3JhbnVsYXJpdHkgPT09ICdkJyAmJiAhaXNJbkVuYWJsZWREYXRlcyh0YXJnZXRNb21lbnQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9wdGlvbnMubWluRGF0ZSAmJiB0YXJnZXRNb21lbnQuaXNCZWZvcmUob3B0aW9ucy5taW5EYXRlLCBncmFudWxhcml0eSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5tYXhEYXRlICYmIHRhcmdldE1vbWVudC5pc0FmdGVyKG9wdGlvbnMubWF4RGF0ZSwgZ3JhbnVsYXJpdHkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuZGF5c09mV2Vla0Rpc2FibGVkICYmIGdyYW51bGFyaXR5ID09PSAnZCcgJiYgb3B0aW9ucy5kYXlzT2ZXZWVrRGlzYWJsZWQuaW5kZXhPZih0YXJnZXRNb21lbnQuZGF5KCkpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvcHRpb25zLmRpc2FibGVkSG91cnMgJiYgKGdyYW51bGFyaXR5ID09PSAnaCcgfHwgZ3JhbnVsYXJpdHkgPT09ICdtJyB8fCBncmFudWxhcml0eSA9PT0gJ3MnKSAmJiBpc0luRGlzYWJsZWRIb3Vycyh0YXJnZXRNb21lbnQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuZW5hYmxlZEhvdXJzICYmIChncmFudWxhcml0eSA9PT0gJ2gnIHx8IGdyYW51bGFyaXR5ID09PSAnbScgfHwgZ3JhbnVsYXJpdHkgPT09ICdzJykgJiYgIWlzSW5FbmFibGVkSG91cnModGFyZ2V0TW9tZW50KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvcHRpb25zLmRpc2FibGVkVGltZUludGVydmFscyAmJiAoZ3JhbnVsYXJpdHkgPT09ICdoJyB8fCBncmFudWxhcml0eSA9PT0gJ20nIHx8IGdyYW51bGFyaXR5ID09PSAncycpKSB7XG4gICAgICAgICAgICAgICAgdmFyIGZvdW5kID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgJC5lYWNoKG9wdGlvbnMuZGlzYWJsZWRUaW1lSW50ZXJ2YWxzLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldE1vbWVudC5pc0JldHdlZW4odGhpc1swXSwgdGhpc1sxXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChmb3VuZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGZpbGxNb250aHMgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciBzcGFucyA9IFtdO1xuICAgICAgICAgICAgdmFyIG1vbnRoc1Nob3J0ID0gdmlld0RhdGUuY2xvbmUoKS5zdGFydE9mKCd5Jykuc3RhcnRPZignZCcpO1xuICAgICAgICAgICAgd2hpbGUgKG1vbnRoc1Nob3J0LmlzU2FtZSh2aWV3RGF0ZSwgJ3knKSkge1xuICAgICAgICAgICAgICAgIHNwYW5zLnB1c2goJCgnPHNwYW4+JykuYXR0cignZGF0YS1hY3Rpb24nLCAnc2VsZWN0TW9udGgnKS5hZGRDbGFzcygnbW9udGgnKS50ZXh0KG1vbnRoc1Nob3J0LmZvcm1hdCgnTU1NJykpKTtcbiAgICAgICAgICAgICAgICBtb250aHNTaG9ydC5hZGQoMSwgJ00nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdpZGdldC5maW5kKCcuZGF0ZXBpY2tlci1tb250aHMgdGQnKS5lbXB0eSgpLmFwcGVuZChzcGFucyk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIHVwZGF0ZU1vbnRocyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIG1vbnRoc1ZpZXcgPSB3aWRnZXQuZmluZCgnLmRhdGVwaWNrZXItbW9udGhzJyk7XG4gICAgICAgICAgICB2YXIgbW9udGhzVmlld0hlYWRlciA9IG1vbnRoc1ZpZXcuZmluZCgndGgnKTtcbiAgICAgICAgICAgIHZhciBtb250aHMgPSBtb250aHNWaWV3LmZpbmQoJ3Rib2R5JykuZmluZCgnc3BhbicpO1xuXG4gICAgICAgICAgICBtb250aHNWaWV3SGVhZGVyLmVxKDApLmZpbmQoJ3NwYW4nKS5hdHRyKCd0aXRsZScsIG9wdGlvbnMudG9vbHRpcHMucHJldlllYXIpO1xuICAgICAgICAgICAgbW9udGhzVmlld0hlYWRlci5lcSgxKS5hdHRyKCd0aXRsZScsIG9wdGlvbnMudG9vbHRpcHMuc2VsZWN0WWVhcik7XG4gICAgICAgICAgICBtb250aHNWaWV3SGVhZGVyLmVxKDIpLmZpbmQoJ3NwYW4nKS5hdHRyKCd0aXRsZScsIG9wdGlvbnMudG9vbHRpcHMubmV4dFllYXIpO1xuXG4gICAgICAgICAgICBtb250aHNWaWV3LmZpbmQoJy5kaXNhYmxlZCcpLnJlbW92ZUNsYXNzKCdkaXNhYmxlZCcpO1xuXG4gICAgICAgICAgICBpZiAoIWlzVmFsaWQodmlld0RhdGUuY2xvbmUoKS5zdWJ0cmFjdCgxLCAneScpLCAneScpKSB7XG4gICAgICAgICAgICAgICAgbW9udGhzVmlld0hlYWRlci5lcSgwKS5hZGRDbGFzcygnZGlzYWJsZWQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbW9udGhzVmlld0hlYWRlci5lcSgxKS50ZXh0KHZpZXdEYXRlLnllYXIoKSk7XG5cbiAgICAgICAgICAgIGlmICghaXNWYWxpZCh2aWV3RGF0ZS5jbG9uZSgpLmFkZCgxLCAneScpLCAneScpKSB7XG4gICAgICAgICAgICAgICAgbW9udGhzVmlld0hlYWRlci5lcSgyKS5hZGRDbGFzcygnZGlzYWJsZWQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbW9udGhzLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgICAgIGlmIChkYXRlLmlzU2FtZSh2aWV3RGF0ZSwgJ3knKSAmJiAhdW5zZXQpIHtcbiAgICAgICAgICAgICAgICBtb250aHMuZXEoZGF0ZS5tb250aCgpKS5hZGRDbGFzcygnYWN0aXZlJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG1vbnRocy5lYWNoKGZ1bmN0aW9uKGluZGV4KSB7XG4gICAgICAgICAgICAgICAgaWYgKCFpc1ZhbGlkKHZpZXdEYXRlLmNsb25lKCkubW9udGgoaW5kZXgpLCAnTScpKSB7XG4gICAgICAgICAgICAgICAgICAgICQodGhpcykuYWRkQ2xhc3MoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIHVwZGF0ZVllYXJzID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgeWVhcnNWaWV3ID0gd2lkZ2V0LmZpbmQoJy5kYXRlcGlja2VyLXllYXJzJyk7XG4gICAgICAgICAgICB2YXIgeWVhcnNWaWV3SGVhZGVyID0geWVhcnNWaWV3LmZpbmQoJ3RoJyk7XG4gICAgICAgICAgICB2YXIgc3RhcnRZZWFyID0gdmlld0RhdGUuY2xvbmUoKS5zdWJ0cmFjdCg1LCAneScpO1xuICAgICAgICAgICAgdmFyIGVuZFllYXIgPSB2aWV3RGF0ZS5jbG9uZSgpLmFkZCg2LCAneScpO1xuICAgICAgICAgICAgdmFyIGh0bWwgPSAnJztcblxuICAgICAgICAgICAgeWVhcnNWaWV3SGVhZGVyLmVxKDApLmZpbmQoJ3NwYW4nKS5hdHRyKCd0aXRsZScsIG9wdGlvbnMudG9vbHRpcHMucHJldkRlY2FkZSk7XG4gICAgICAgICAgICB5ZWFyc1ZpZXdIZWFkZXIuZXEoMSkuYXR0cigndGl0bGUnLCBvcHRpb25zLnRvb2x0aXBzLnNlbGVjdERlY2FkZSk7XG4gICAgICAgICAgICB5ZWFyc1ZpZXdIZWFkZXIuZXEoMikuZmluZCgnc3BhbicpLmF0dHIoJ3RpdGxlJywgb3B0aW9ucy50b29sdGlwcy5uZXh0RGVjYWRlKTtcblxuICAgICAgICAgICAgeWVhcnNWaWV3LmZpbmQoJy5kaXNhYmxlZCcpLnJlbW92ZUNsYXNzKCdkaXNhYmxlZCcpO1xuXG4gICAgICAgICAgICBpZiAob3B0aW9ucy5taW5EYXRlICYmIG9wdGlvbnMubWluRGF0ZS5pc0FmdGVyKHN0YXJ0WWVhciwgJ3knKSkge1xuICAgICAgICAgICAgICAgIHllYXJzVmlld0hlYWRlci5lcSgwKS5hZGRDbGFzcygnZGlzYWJsZWQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgeWVhcnNWaWV3SGVhZGVyLmVxKDEpLnRleHQoc3RhcnRZZWFyLnllYXIoKSArICctJyArIGVuZFllYXIueWVhcigpKTtcblxuICAgICAgICAgICAgaWYgKG9wdGlvbnMubWF4RGF0ZSAmJiBvcHRpb25zLm1heERhdGUuaXNCZWZvcmUoZW5kWWVhciwgJ3knKSkge1xuICAgICAgICAgICAgICAgIHllYXJzVmlld0hlYWRlci5lcSgyKS5hZGRDbGFzcygnZGlzYWJsZWQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgd2hpbGUgKCFzdGFydFllYXIuaXNBZnRlcihlbmRZZWFyLCAneScpKSB7XG4gICAgICAgICAgICAgICAgaHRtbCArPSAnPHNwYW4gZGF0YS1hY3Rpb249XCJzZWxlY3RZZWFyXCIgY2xhc3M9XCJ5ZWFyJyArIChzdGFydFllYXIuaXNTYW1lKGRhdGUsICd5JykgJiYgIXVuc2V0ID8gJyBhY3RpdmUnIDogJycpICsgKCFpc1ZhbGlkKHN0YXJ0WWVhciwgJ3knKSA/ICcgZGlzYWJsZWQnIDogJycpICsgJ1wiPicgKyBzdGFydFllYXIueWVhcigpICsgJzwvc3Bhbj4nO1xuICAgICAgICAgICAgICAgIHN0YXJ0WWVhci5hZGQoMSwgJ3knKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgeWVhcnNWaWV3LmZpbmQoJ3RkJykuaHRtbChodG1sKTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgdXBkYXRlRGVjYWRlcyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIGRlY2FkZXNWaWV3ID0gd2lkZ2V0LmZpbmQoJy5kYXRlcGlja2VyLWRlY2FkZXMnKTtcbiAgICAgICAgICAgIHZhciBkZWNhZGVzVmlld0hlYWRlciA9IGRlY2FkZXNWaWV3LmZpbmQoJ3RoJyk7XG4gICAgICAgICAgICB2YXIgc3RhcnREZWNhZGUgPSBtb21lbnQoeyB5OiB2aWV3RGF0ZS55ZWFyKCkgLSAodmlld0RhdGUueWVhcigpICUgMTAwKSAtIDEgfSk7XG4gICAgICAgICAgICB2YXIgZW5kRGVjYWRlID0gc3RhcnREZWNhZGUuY2xvbmUoKS5hZGQoMTAwLCAneScpO1xuICAgICAgICAgICAgdmFyIHN0YXJ0ZWRBdCA9IHN0YXJ0RGVjYWRlLmNsb25lKCk7XG4gICAgICAgICAgICB2YXIgbWluRGF0ZURlY2FkZSA9IGZhbHNlO1xuICAgICAgICAgICAgdmFyIG1heERhdGVEZWNhZGUgPSBmYWxzZTtcbiAgICAgICAgICAgIHZhciBlbmREZWNhZGVZZWFyO1xuICAgICAgICAgICAgdmFyIGh0bWwgPSAnJztcblxuICAgICAgICAgICAgZGVjYWRlc1ZpZXdIZWFkZXIuZXEoMCkuZmluZCgnc3BhbicpLmF0dHIoJ3RpdGxlJywgb3B0aW9ucy50b29sdGlwcy5wcmV2Q2VudHVyeSk7XG4gICAgICAgICAgICBkZWNhZGVzVmlld0hlYWRlci5lcSgyKS5maW5kKCdzcGFuJykuYXR0cigndGl0bGUnLCBvcHRpb25zLnRvb2x0aXBzLm5leHRDZW50dXJ5KTtcblxuICAgICAgICAgICAgZGVjYWRlc1ZpZXcuZmluZCgnLmRpc2FibGVkJykucmVtb3ZlQ2xhc3MoJ2Rpc2FibGVkJyk7XG5cbiAgICAgICAgICAgIGlmIChzdGFydERlY2FkZS5pc1NhbWUobW9tZW50KHsgeTogMTkwMCB9KSkgfHwgKG9wdGlvbnMubWluRGF0ZSAmJiBvcHRpb25zLm1pbkRhdGUuaXNBZnRlcihzdGFydERlY2FkZSwgJ3knKSkpIHtcbiAgICAgICAgICAgICAgICBkZWNhZGVzVmlld0hlYWRlci5lcSgwKS5hZGRDbGFzcygnZGlzYWJsZWQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZGVjYWRlc1ZpZXdIZWFkZXIuZXEoMSkudGV4dChzdGFydERlY2FkZS55ZWFyKCkgKyAnLScgKyBlbmREZWNhZGUueWVhcigpKTtcblxuICAgICAgICAgICAgaWYgKHN0YXJ0RGVjYWRlLmlzU2FtZShtb21lbnQoeyB5OiAyMDAwIH0pKSB8fCAob3B0aW9ucy5tYXhEYXRlICYmIG9wdGlvbnMubWF4RGF0ZS5pc0JlZm9yZShlbmREZWNhZGUsICd5JykpKSB7XG4gICAgICAgICAgICAgICAgZGVjYWRlc1ZpZXdIZWFkZXIuZXEoMikuYWRkQ2xhc3MoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHdoaWxlICghc3RhcnREZWNhZGUuaXNBZnRlcihlbmREZWNhZGUsICd5JykpIHtcbiAgICAgICAgICAgICAgICBlbmREZWNhZGVZZWFyID0gc3RhcnREZWNhZGUueWVhcigpICsgMTI7XG4gICAgICAgICAgICAgICAgbWluRGF0ZURlY2FkZSA9IG9wdGlvbnMubWluRGF0ZSAmJiBvcHRpb25zLm1pbkRhdGUuaXNBZnRlcihzdGFydERlY2FkZSwgJ3knKSAmJiBvcHRpb25zLm1pbkRhdGUueWVhcigpIDw9IGVuZERlY2FkZVllYXI7XG4gICAgICAgICAgICAgICAgbWF4RGF0ZURlY2FkZSA9IG9wdGlvbnMubWF4RGF0ZSAmJiBvcHRpb25zLm1heERhdGUuaXNBZnRlcihzdGFydERlY2FkZSwgJ3knKSAmJiBvcHRpb25zLm1heERhdGUueWVhcigpIDw9IGVuZERlY2FkZVllYXI7XG4gICAgICAgICAgICAgICAgaHRtbCArPSAnPHNwYW4gZGF0YS1hY3Rpb249XCJzZWxlY3REZWNhZGVcIiBjbGFzcz1cImRlY2FkZScgKyAoZGF0ZS5pc0FmdGVyKHN0YXJ0RGVjYWRlKSAmJiBkYXRlLnllYXIoKSA8PSBlbmREZWNhZGVZZWFyID8gJyBhY3RpdmUnIDogJycpICtcbiAgICAgICAgICAgICAgICAgICAgICAgICghaXNWYWxpZChzdGFydERlY2FkZSwgJ3knKSAmJiAhbWluRGF0ZURlY2FkZSAmJiAhbWF4RGF0ZURlY2FkZSA/ICcgZGlzYWJsZWQnIDogJycpICsgJ1wiIGRhdGEtc2VsZWN0aW9uPVwiJyArIChzdGFydERlY2FkZS55ZWFyKCkgKyA2KSArICdcIj4nICsgKHN0YXJ0RGVjYWRlLnllYXIoKSArIDEpICsgJyAtICcgKyAoc3RhcnREZWNhZGUueWVhcigpICsgMTIpICsgJzwvc3Bhbj4nO1xuICAgICAgICAgICAgICAgIHN0YXJ0RGVjYWRlLmFkZCgxMiwgJ3knKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGh0bWwgKz0gJzxzcGFuPjwvc3Bhbj48c3Bhbj48L3NwYW4+PHNwYW4+PC9zcGFuPic7IC8vIHB1c2ggdGhlIGRhbmdsaW5nIGJsb2NrIG92ZXIsIGF0IGxlYXN0IHRoaXMgd2F5IGl0J3MgZXZlblxuXG4gICAgICAgICAgICBkZWNhZGVzVmlldy5maW5kKCd0ZCcpLmh0bWwoaHRtbCk7XG4gICAgICAgICAgICBkZWNhZGVzVmlld0hlYWRlci5lcSgxKS50ZXh0KChzdGFydGVkQXQueWVhcigpICsgMSkgKyAnLScgKyAoc3RhcnREZWNhZGUueWVhcigpKSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGZpbGxEYXRlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgZGF5c1ZpZXcgPSB3aWRnZXQuZmluZCgnLmRhdGVwaWNrZXItZGF5cycpO1xuICAgICAgICAgICAgdmFyIGRheXNWaWV3SGVhZGVyID0gZGF5c1ZpZXcuZmluZCgndGgnKTtcbiAgICAgICAgICAgIHZhciBjdXJyZW50RGF0ZTtcbiAgICAgICAgICAgIHZhciBodG1sID0gW107XG4gICAgICAgICAgICB2YXIgcm93O1xuICAgICAgICAgICAgdmFyIGNsc05hbWVzID0gW107XG4gICAgICAgICAgICB2YXIgaTtcblxuICAgICAgICAgICAgaWYgKCFoYXNEYXRlKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGRheXNWaWV3SGVhZGVyLmVxKDApLmZpbmQoJ3NwYW4nKS5hdHRyKCd0aXRsZScsIG9wdGlvbnMudG9vbHRpcHMucHJldk1vbnRoKTtcbiAgICAgICAgICAgIGRheXNWaWV3SGVhZGVyLmVxKDEpLmF0dHIoJ3RpdGxlJywgb3B0aW9ucy50b29sdGlwcy5zZWxlY3RNb250aCk7XG4gICAgICAgICAgICBkYXlzVmlld0hlYWRlci5lcSgyKS5maW5kKCdzcGFuJykuYXR0cigndGl0bGUnLCBvcHRpb25zLnRvb2x0aXBzLm5leHRNb250aCk7XG5cbiAgICAgICAgICAgIGRheXNWaWV3LmZpbmQoJy5kaXNhYmxlZCcpLnJlbW92ZUNsYXNzKCdkaXNhYmxlZCcpO1xuICAgICAgICAgICAgZGF5c1ZpZXdIZWFkZXIuZXEoMSkudGV4dCh2aWV3RGF0ZS5mb3JtYXQob3B0aW9ucy5kYXlWaWV3SGVhZGVyRm9ybWF0KSk7XG5cbiAgICAgICAgICAgIGlmICghaXNWYWxpZCh2aWV3RGF0ZS5jbG9uZSgpLnN1YnRyYWN0KDEsICdNJyksICdNJykpIHtcbiAgICAgICAgICAgICAgICBkYXlzVmlld0hlYWRlci5lcSgwKS5hZGRDbGFzcygnZGlzYWJsZWQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghaXNWYWxpZCh2aWV3RGF0ZS5jbG9uZSgpLmFkZCgxLCAnTScpLCAnTScpKSB7XG4gICAgICAgICAgICAgICAgZGF5c1ZpZXdIZWFkZXIuZXEoMikuYWRkQ2xhc3MoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGN1cnJlbnREYXRlID0gdmlld0RhdGUuY2xvbmUoKS5zdGFydE9mKCdNJykuc3RhcnRPZigndycpLnN0YXJ0T2YoJ2QnKTtcblxuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IDQyOyBpKyspIHsgLy8gYWx3YXlzIGRpc3BsYXkgNDIgZGF5cyAoc2hvdWxkIHNob3cgNiB3ZWVrcylcbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudERhdGUud2Vla2RheSgpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJvdyA9ICQoJzx0cj4nKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMuY2FsZW5kYXJXZWVrcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcm93LmFwcGVuZCgnPHRkIGNsYXNzPVwiY3dcIj4nICsgY3VycmVudERhdGUud2VlaygpICsgJzwvdGQ+Jyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaHRtbC5wdXNoKHJvdyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNsc05hbWVzID0gWydkYXknXTtcbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudERhdGUuaXNCZWZvcmUodmlld0RhdGUsICdNJykpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xzTmFtZXMucHVzaCgnb2xkJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50RGF0ZS5pc0FmdGVyKHZpZXdEYXRlLCAnTScpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNsc05hbWVzLnB1c2goJ25ldycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudERhdGUuaXNTYW1lKGRhdGUsICdkJykgJiYgIXVuc2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNsc05hbWVzLnB1c2goJ2FjdGl2ZScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIWlzVmFsaWQoY3VycmVudERhdGUsICdkJykpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xzTmFtZXMucHVzaCgnZGlzYWJsZWQnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnREYXRlLmlzU2FtZShnZXRNb21lbnQoKSwgJ2QnKSkge1xuICAgICAgICAgICAgICAgICAgICBjbHNOYW1lcy5wdXNoKCd0b2RheScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudERhdGUuZGF5KCkgPT09IDAgfHwgY3VycmVudERhdGUuZGF5KCkgPT09IDYpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xzTmFtZXMucHVzaCgnd2Vla2VuZCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBub3RpZnlFdmVudCh7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdkcC5jbGFzc2lmeScsXG4gICAgICAgICAgICAgICAgICAgIGRhdGU6IGN1cnJlbnREYXRlLFxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWVzOiBjbHNOYW1lc1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJvdy5hcHBlbmQoJzx0ZCBkYXRhLWFjdGlvbj1cInNlbGVjdERheVwiIGRhdGEtZGF5PVwiJyArIGN1cnJlbnREYXRlLmZvcm1hdCgnTCcpICsgJ1wiIGNsYXNzPVwiJyArIGNsc05hbWVzLmpvaW4oJyAnKSArICdcIj4nICsgY3VycmVudERhdGUuZGF0ZSgpICsgJzwvdGQ+Jyk7XG4gICAgICAgICAgICAgICAgY3VycmVudERhdGUuYWRkKDEsICdkJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGRheXNWaWV3LmZpbmQoJ3Rib2R5JykuZW1wdHkoKS5hcHBlbmQoaHRtbCk7XG5cbiAgICAgICAgICAgIHVwZGF0ZU1vbnRocygpO1xuXG4gICAgICAgICAgICB1cGRhdGVZZWFycygpO1xuXG4gICAgICAgICAgICB1cGRhdGVEZWNhZGVzKCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGZpbGxIb3VycyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIHRhYmxlID0gd2lkZ2V0LmZpbmQoJy50aW1lcGlja2VyLWhvdXJzIHRhYmxlJyk7XG4gICAgICAgICAgICB2YXIgY3VycmVudEhvdXIgPSB2aWV3RGF0ZS5jbG9uZSgpLnN0YXJ0T2YoJ2QnKTtcbiAgICAgICAgICAgIHZhciBodG1sID0gW107XG4gICAgICAgICAgICB2YXIgcm93ID0gJCgnPHRyPicpO1xuXG4gICAgICAgICAgICBpZiAodmlld0RhdGUuaG91cigpID4gMTEgJiYgIXVzZTI0SG91cnMpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50SG91ci5ob3VyKDEyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdoaWxlIChjdXJyZW50SG91ci5pc1NhbWUodmlld0RhdGUsICdkJykgJiYgKHVzZTI0SG91cnMgfHwgKHZpZXdEYXRlLmhvdXIoKSA8IDEyICYmIGN1cnJlbnRIb3VyLmhvdXIoKSA8IDEyKSB8fCB2aWV3RGF0ZS5ob3VyKCkgPiAxMSkpIHtcbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudEhvdXIuaG91cigpICUgNCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICByb3cgPSAkKCc8dHI+Jyk7XG4gICAgICAgICAgICAgICAgICAgIGh0bWwucHVzaChyb3cpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByb3cuYXBwZW5kKCc8dGQgZGF0YS1hY3Rpb249XCJzZWxlY3RIb3VyXCIgY2xhc3M9XCJob3VyJyArICghaXNWYWxpZChjdXJyZW50SG91ciwgJ2gnKSA/ICcgZGlzYWJsZWQnIDogJycpICsgJ1wiPicgKyBjdXJyZW50SG91ci5mb3JtYXQodXNlMjRIb3VycyA/ICdISCcgOiAnaGgnKSArICc8L3RkPicpO1xuICAgICAgICAgICAgICAgIGN1cnJlbnRIb3VyLmFkZCgxLCAnaCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGFibGUuZW1wdHkoKS5hcHBlbmQoaHRtbCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGZpbGxNaW51dGVzID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgdGFibGUgPSB3aWRnZXQuZmluZCgnLnRpbWVwaWNrZXItbWludXRlcyB0YWJsZScpO1xuICAgICAgICAgICAgdmFyIGN1cnJlbnRNaW51dGUgPSB2aWV3RGF0ZS5jbG9uZSgpLnN0YXJ0T2YoJ2gnKTtcbiAgICAgICAgICAgIHZhciBodG1sID0gW107XG4gICAgICAgICAgICB2YXIgcm93ID0gJCgnPHRyPicpO1xuICAgICAgICAgICAgdmFyIHN0ZXAgPSBvcHRpb25zLnN0ZXBwaW5nID09PSAxID8gNSA6IG9wdGlvbnMuc3RlcHBpbmc7XG5cbiAgICAgICAgICAgIHdoaWxlICh2aWV3RGF0ZS5pc1NhbWUoY3VycmVudE1pbnV0ZSwgJ2gnKSkge1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50TWludXRlLm1pbnV0ZSgpICUgKHN0ZXAgKiA0KSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICByb3cgPSAkKCc8dHI+Jyk7XG4gICAgICAgICAgICAgICAgICAgIGh0bWwucHVzaChyb3cpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByb3cuYXBwZW5kKCc8dGQgZGF0YS1hY3Rpb249XCJzZWxlY3RNaW51dGVcIiBjbGFzcz1cIm1pbnV0ZScgKyAoIWlzVmFsaWQoY3VycmVudE1pbnV0ZSwgJ20nKSA/ICcgZGlzYWJsZWQnIDogJycpICsgJ1wiPicgKyBjdXJyZW50TWludXRlLmZvcm1hdCgnbW0nKSArICc8L3RkPicpO1xuICAgICAgICAgICAgICAgIGN1cnJlbnRNaW51dGUuYWRkKHN0ZXAsICdtJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0YWJsZS5lbXB0eSgpLmFwcGVuZChodG1sKTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgZmlsbFNlY29uZHMgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciB0YWJsZSA9IHdpZGdldC5maW5kKCcudGltZXBpY2tlci1zZWNvbmRzIHRhYmxlJyk7XG4gICAgICAgICAgICB2YXIgY3VycmVudFNlY29uZCA9IHZpZXdEYXRlLmNsb25lKCkuc3RhcnRPZignbScpO1xuICAgICAgICAgICAgdmFyIGh0bWwgPSBbXTtcbiAgICAgICAgICAgIHZhciByb3cgPSAkKCc8dHI+Jyk7XG5cbiAgICAgICAgICAgIHdoaWxlICh2aWV3RGF0ZS5pc1NhbWUoY3VycmVudFNlY29uZCwgJ20nKSkge1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50U2Vjb25kLnNlY29uZCgpICUgMjAgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcm93ID0gJCgnPHRyPicpO1xuICAgICAgICAgICAgICAgICAgICBodG1sLnB1c2gocm93KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcm93LmFwcGVuZCgnPHRkIGRhdGEtYWN0aW9uPVwic2VsZWN0U2Vjb25kXCIgY2xhc3M9XCJzZWNvbmQnICsgKCFpc1ZhbGlkKGN1cnJlbnRTZWNvbmQsICdzJykgPyAnIGRpc2FibGVkJyA6ICcnKSArICdcIj4nICsgY3VycmVudFNlY29uZC5mb3JtYXQoJ3NzJykgKyAnPC90ZD4nKTtcbiAgICAgICAgICAgICAgICBjdXJyZW50U2Vjb25kLmFkZCg1LCAncycpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0YWJsZS5lbXB0eSgpLmFwcGVuZChodG1sKTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgZmlsbFRpbWUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciB0b2dnbGU7IHZhciBuZXdEYXRlOyB2YXIgdGltZUNvbXBvbmVudHMgPSB3aWRnZXQuZmluZCgnLnRpbWVwaWNrZXIgc3BhbltkYXRhLXRpbWUtY29tcG9uZW50XScpO1xuXG4gICAgICAgICAgICBpZiAoIXVzZTI0SG91cnMpIHtcbiAgICAgICAgICAgICAgICB0b2dnbGUgPSB3aWRnZXQuZmluZCgnLnRpbWVwaWNrZXIgW2RhdGEtYWN0aW9uPXRvZ2dsZVBlcmlvZF0nKTtcbiAgICAgICAgICAgICAgICBuZXdEYXRlID0gZGF0ZS5jbG9uZSgpLmFkZCgoZGF0ZS5ob3VycygpID49IDEyKSA/IC0xMiA6IDEyLCAnaCcpO1xuXG4gICAgICAgICAgICAgICAgdG9nZ2xlLnRleHQoZGF0ZS5mb3JtYXQoJ0EnKSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZChuZXdEYXRlLCAnaCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvZ2dsZS5yZW1vdmVDbGFzcygnZGlzYWJsZWQnKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0b2dnbGUuYWRkQ2xhc3MoJ2Rpc2FibGVkJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGltZUNvbXBvbmVudHMuZmlsdGVyKCdbZGF0YS10aW1lLWNvbXBvbmVudD1ob3Vyc10nKS50ZXh0KGRhdGUuZm9ybWF0KHVzZTI0SG91cnMgPyAnSEgnIDogJ2hoJykpO1xuICAgICAgICAgICAgdGltZUNvbXBvbmVudHMuZmlsdGVyKCdbZGF0YS10aW1lLWNvbXBvbmVudD1taW51dGVzXScpLnRleHQoZGF0ZS5mb3JtYXQoJ21tJykpO1xuICAgICAgICAgICAgdGltZUNvbXBvbmVudHMuZmlsdGVyKCdbZGF0YS10aW1lLWNvbXBvbmVudD1zZWNvbmRzXScpLnRleHQoZGF0ZS5mb3JtYXQoJ3NzJykpO1xuXG4gICAgICAgICAgICBmaWxsSG91cnMoKTtcbiAgICAgICAgICAgIGZpbGxNaW51dGVzKCk7XG4gICAgICAgICAgICBmaWxsU2Vjb25kcygpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciB1cGRhdGUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGlmICghd2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmlsbERhdGUoKTtcbiAgICAgICAgICAgIGZpbGxUaW1lKCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIHNldFZhbHVlID0gZnVuY3Rpb24odGFyZ2V0TW9tZW50KSB7XG4gICAgICAgICAgICB2YXIgb2xkRGF0ZSA9IHVuc2V0ID8gbnVsbCA6IGRhdGU7XG5cbiAgICAgICAgICAgIC8vIGNhc2Ugb2YgY2FsbGluZyBzZXRWYWx1ZShudWxsIG9yIGZhbHNlKVxuICAgICAgICAgICAgaWYgKCF0YXJnZXRNb21lbnQpIHtcbiAgICAgICAgICAgICAgICB1bnNldCA9IHRydWU7XG4gICAgICAgICAgICAgICAgaW5wdXQudmFsKCcnKTtcbiAgICAgICAgICAgICAgICBlbGVtZW50LmRhdGEoJ2RhdGUnLCAnJyk7XG4gICAgICAgICAgICAgICAgbm90aWZ5RXZlbnQoe1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnZHAuY2hhbmdlJyxcbiAgICAgICAgICAgICAgICAgICAgZGF0ZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIG9sZERhdGU6IG9sZERhdGVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB1cGRhdGUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRhcmdldE1vbWVudCA9IHRhcmdldE1vbWVudC5jbG9uZSgpLmxvY2FsZShvcHRpb25zLmxvY2FsZSk7XG5cbiAgICAgICAgICAgIGlmIChoYXNUaW1lWm9uZSgpKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0TW9tZW50LnR6KG9wdGlvbnMudGltZVpvbmUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAob3B0aW9ucy5zdGVwcGluZyAhPT0gMSkge1xuICAgICAgICAgICAgICAgIHRhcmdldE1vbWVudC5taW51dGVzKChNYXRoLnJvdW5kKHRhcmdldE1vbWVudC5taW51dGVzKCkgLyBvcHRpb25zLnN0ZXBwaW5nKSAqIG9wdGlvbnMuc3RlcHBpbmcpKS5zZWNvbmRzKDApO1xuXG4gICAgICAgICAgICAgICAgd2hpbGUgKG9wdGlvbnMubWluRGF0ZSAmJiB0YXJnZXRNb21lbnQuaXNCZWZvcmUob3B0aW9ucy5taW5EYXRlKSkge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXRNb21lbnQuYWRkKG9wdGlvbnMuc3RlcHBpbmcsICdtaW51dGVzJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoaXNWYWxpZCh0YXJnZXRNb21lbnQpKSB7XG4gICAgICAgICAgICAgICAgZGF0ZSA9IHRhcmdldE1vbWVudDtcbiAgICAgICAgICAgICAgICB2aWV3RGF0ZSA9IGRhdGUuY2xvbmUoKTtcbiAgICAgICAgICAgICAgICBpbnB1dC52YWwoZGF0ZS5mb3JtYXQoYWN0dWFsRm9ybWF0KSk7XG4gICAgICAgICAgICAgICAgZWxlbWVudC5kYXRhKCdkYXRlJywgZGF0ZS5mb3JtYXQoYWN0dWFsRm9ybWF0KSk7XG4gICAgICAgICAgICAgICAgdW5zZXQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB1cGRhdGUoKTtcbiAgICAgICAgICAgICAgICBub3RpZnlFdmVudCh7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdkcC5jaGFuZ2UnLFxuICAgICAgICAgICAgICAgICAgICBkYXRlOiBkYXRlLmNsb25lKCksXG4gICAgICAgICAgICAgICAgICAgIG9sZERhdGU6IG9sZERhdGVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKCFvcHRpb25zLmtlZXBJbnZhbGlkKSB7XG4gICAgICAgICAgICAgICAgICAgIGlucHV0LnZhbCh1bnNldCA/ICcnIDogZGF0ZS5mb3JtYXQoYWN0dWFsRm9ybWF0KSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbm90aWZ5RXZlbnQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2RwLmNoYW5nZScsXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRlOiB0YXJnZXRNb21lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICBvbGREYXRlOiBvbGREYXRlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBub3RpZnlFdmVudCh7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdkcC5lcnJvcicsXG4gICAgICAgICAgICAgICAgICAgIGRhdGU6IHRhcmdldE1vbWVudCxcbiAgICAgICAgICAgICAgICAgICAgb2xkRGF0ZTogb2xkRGF0ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgICAgICogSGlkZXMgdGhlIHdpZGdldC4gUG9zc2libHkgd2lsbCBlbWl0IGRwLmhpZGVcbiAgICAgICAgICAgICAqL1xuICAgICAgICB2YXIgaGlkZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIHRyYW5zaXRpb25pbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmICghd2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIElnbm9yZSBldmVudCBpZiBpbiB0aGUgbWlkZGxlIG9mIGEgcGlja2VyIHRyYW5zaXRpb25cbiAgICAgICAgICAgIHdpZGdldC5maW5kKCcuY29sbGFwc2UnKS5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciBjb2xsYXBzZURhdGEgPSAkKHRoaXMpLmRhdGEoJ2NvbGxhcHNlJyk7XG4gICAgICAgICAgICAgICAgaWYgKGNvbGxhcHNlRGF0YSAmJiBjb2xsYXBzZURhdGEudHJhbnNpdGlvbmluZykge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKHRyYW5zaXRpb25pbmcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNvbXBvbmVudCAmJiBjb21wb25lbnQuaGFzQ2xhc3MoJ2J0bicpKSB7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50LnRvZ2dsZUNsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdpZGdldC5oaWRlKCk7XG5cbiAgICAgICAgICAgICQod2luZG93KS5vZmYoJ3Jlc2l6ZScsIHBsYWNlKTtcbiAgICAgICAgICAgIHdpZGdldC5vZmYoJ2NsaWNrJywgJ1tkYXRhLWFjdGlvbl0nKTtcbiAgICAgICAgICAgIHdpZGdldC5vZmYoJ21vdXNlZG93bicsIGZhbHNlKTtcblxuICAgICAgICAgICAgd2lkZ2V0LnJlbW92ZSgpO1xuICAgICAgICAgICAgd2lkZ2V0ID0gZmFsc2U7XG5cbiAgICAgICAgICAgIG5vdGlmeUV2ZW50KHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnZHAuaGlkZScsXG4gICAgICAgICAgICAgICAgZGF0ZTogZGF0ZS5jbG9uZSgpXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaW5wdXQuYmx1cigpO1xuXG4gICAgICAgICAgICB2aWV3RGF0ZSA9IGRhdGUuY2xvbmUoKTtcblxuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgY2xlYXIgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHNldFZhbHVlKG51bGwpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBwYXJzZUlucHV0RGF0ZSA9IGZ1bmN0aW9uKGlucHV0RGF0ZSkge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMucGFyc2VJbnB1dERhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGlmICghbW9tZW50LmlzTW9tZW50KGlucHV0RGF0ZSkgfHwgaW5wdXREYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICBpbnB1dERhdGUgPSBnZXRNb21lbnQoaW5wdXREYXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlucHV0RGF0ZSA9IG9wdGlvbnMucGFyc2VJbnB1dERhdGUoaW5wdXREYXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGlucHV0RGF0ZS5sb2NhbGUob3B0aW9ucy5sb2NhbGUpO1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0RGF0ZTtcbiAgICAgICAgfTtcblxuICAgICAgICAvKiogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAgICAgKlxuICAgICAgICAgICAgICogV2lkZ2V0IFVJIGludGVyYWN0aW9uIGZ1bmN0aW9uc1xuICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiAgICAgICAgdmFyIGFjdGlvbnMgPSB7XG4gICAgICAgICAgICBuZXh0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB2YXIgbmF2Rm5jID0gZGF0ZVBpY2tlck1vZGVzW2N1cnJlbnRWaWV3TW9kZV0ubmF2Rm5jO1xuICAgICAgICAgICAgICAgIHZpZXdEYXRlLmFkZChkYXRlUGlja2VyTW9kZXNbY3VycmVudFZpZXdNb2RlXS5uYXZTdGVwLCBuYXZGbmMpO1xuICAgICAgICAgICAgICAgIGZpbGxEYXRlKCk7XG4gICAgICAgICAgICAgICAgdmlld1VwZGF0ZShuYXZGbmMpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgcHJldmlvdXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciBuYXZGbmMgPSBkYXRlUGlja2VyTW9kZXNbY3VycmVudFZpZXdNb2RlXS5uYXZGbmM7XG4gICAgICAgICAgICAgICAgdmlld0RhdGUuc3VidHJhY3QoZGF0ZVBpY2tlck1vZGVzW2N1cnJlbnRWaWV3TW9kZV0ubmF2U3RlcCwgbmF2Rm5jKTtcbiAgICAgICAgICAgICAgICBmaWxsRGF0ZSgpO1xuICAgICAgICAgICAgICAgIHZpZXdVcGRhdGUobmF2Rm5jKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHBpY2tlclN3aXRjaDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgc2hvd01vZGUoMSk7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBzZWxlY3RNb250aDogZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgICAgIHZhciBtb250aCA9ICQoZS50YXJnZXQpLmNsb3Nlc3QoJ3Rib2R5JykuZmluZCgnc3BhbicpLmluZGV4KCQoZS50YXJnZXQpKTtcbiAgICAgICAgICAgICAgICB2aWV3RGF0ZS5tb250aChtb250aCk7XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRWaWV3TW9kZSA9PT0gbWluVmlld01vZGVOdW1iZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWUoZGF0ZS5jbG9uZSgpLnllYXIodmlld0RhdGUueWVhcigpKS5tb250aCh2aWV3RGF0ZS5tb250aCgpKSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghb3B0aW9ucy5pbmxpbmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHNob3dNb2RlKC0xKTtcbiAgICAgICAgICAgICAgICAgICAgZmlsbERhdGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmlld1VwZGF0ZSgnTScpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgc2VsZWN0WWVhcjogZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgICAgIHZhciB5ZWFyID0gcGFyc2VJbnQoJChlLnRhcmdldCkudGV4dCgpLCAxMCkgfHwgMDtcbiAgICAgICAgICAgICAgICB2aWV3RGF0ZS55ZWFyKHllYXIpO1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50Vmlld01vZGUgPT09IG1pblZpZXdNb2RlTnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFZhbHVlKGRhdGUuY2xvbmUoKS55ZWFyKHZpZXdEYXRlLnllYXIoKSkpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIW9wdGlvbnMuaW5saW5lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzaG93TW9kZSgtMSk7XG4gICAgICAgICAgICAgICAgICAgIGZpbGxEYXRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZpZXdVcGRhdGUoJ1lZWVknKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHNlbGVjdERlY2FkZTogZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgICAgIHZhciB5ZWFyID0gcGFyc2VJbnQoJChlLnRhcmdldCkuZGF0YSgnc2VsZWN0aW9uJyksIDEwKSB8fCAwO1xuICAgICAgICAgICAgICAgIHZpZXdEYXRlLnllYXIoeWVhcik7XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRWaWV3TW9kZSA9PT0gbWluVmlld01vZGVOdW1iZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWUoZGF0ZS5jbG9uZSgpLnllYXIodmlld0RhdGUueWVhcigpKSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghb3B0aW9ucy5pbmxpbmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHNob3dNb2RlKC0xKTtcbiAgICAgICAgICAgICAgICAgICAgZmlsbERhdGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmlld1VwZGF0ZSgnWVlZWScpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgc2VsZWN0RGF5OiBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICAgICAgdmFyIGRheSA9IHZpZXdEYXRlLmNsb25lKCk7XG4gICAgICAgICAgICAgICAgaWYgKCQoZS50YXJnZXQpLmlzKCcub2xkJykpIHtcbiAgICAgICAgICAgICAgICAgICAgZGF5LnN1YnRyYWN0KDEsICdNJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICgkKGUudGFyZ2V0KS5pcygnLm5ldycpKSB7XG4gICAgICAgICAgICAgICAgICAgIGRheS5hZGQoMSwgJ00nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2V0VmFsdWUoZGF5LmRhdGUocGFyc2VJbnQoJChlLnRhcmdldCkudGV4dCgpLCAxMCkpKTtcbiAgICAgICAgICAgICAgICBpZiAoIWhhc1RpbWUoKSAmJiAhb3B0aW9ucy5rZWVwT3BlbiAmJiAhb3B0aW9ucy5pbmxpbmUpIHtcbiAgICAgICAgICAgICAgICAgICAgaGlkZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGluY3JlbWVudEhvdXJzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB2YXIgbmV3RGF0ZSA9IGRhdGUuY2xvbmUoKS5hZGQoMSwgJ2gnKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZChuZXdEYXRlLCAnaCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFZhbHVlKG5ld0RhdGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGluY3JlbWVudE1pbnV0ZXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciBuZXdEYXRlID0gZGF0ZS5jbG9uZSgpLmFkZChvcHRpb25zLnN0ZXBwaW5nLCAnbScpO1xuICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkKG5ld0RhdGUsICdtJykpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWUobmV3RGF0ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgaW5jcmVtZW50U2Vjb25kczogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyIG5ld0RhdGUgPSBkYXRlLmNsb25lKCkuYWRkKDEsICdzJyk7XG4gICAgICAgICAgICAgICAgaWYgKGlzVmFsaWQobmV3RGF0ZSwgJ3MnKSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRWYWx1ZShuZXdEYXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBkZWNyZW1lbnRIb3VyczogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyIG5ld0RhdGUgPSBkYXRlLmNsb25lKCkuc3VidHJhY3QoMSwgJ2gnKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNWYWxpZChuZXdEYXRlLCAnaCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFZhbHVlKG5ld0RhdGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGRlY3JlbWVudE1pbnV0ZXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciBuZXdEYXRlID0gZGF0ZS5jbG9uZSgpLnN1YnRyYWN0KG9wdGlvbnMuc3RlcHBpbmcsICdtJyk7XG4gICAgICAgICAgICAgICAgaWYgKGlzVmFsaWQobmV3RGF0ZSwgJ20nKSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRWYWx1ZShuZXdEYXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBkZWNyZW1lbnRTZWNvbmRzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB2YXIgbmV3RGF0ZSA9IGRhdGUuY2xvbmUoKS5zdWJ0cmFjdCgxLCAncycpO1xuICAgICAgICAgICAgICAgIGlmIChpc1ZhbGlkKG5ld0RhdGUsICdzJykpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWUobmV3RGF0ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgdG9nZ2xlUGVyaW9kOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICBzZXRWYWx1ZShkYXRlLmNsb25lKCkuYWRkKChkYXRlLmhvdXJzKCkgPj0gMTIpID8gLTEyIDogMTIsICdoJykpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgdG9nZ2xlUGlja2VyOiBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICAgICAgdmFyICR0aGlzID0gJChlLnRhcmdldCk7XG4gICAgICAgICAgICAgICAgdmFyICRwYXJlbnQgPSAkdGhpcy5jbG9zZXN0KCd1bCcpO1xuICAgICAgICAgICAgICAgIHZhciBleHBhbmRlZCA9ICRwYXJlbnQuZmluZCgnLmluJyk7XG4gICAgICAgICAgICAgICAgdmFyIGNsb3NlZCA9ICRwYXJlbnQuZmluZCgnLmNvbGxhcHNlOm5vdCguaW4pJyk7XG4gICAgICAgICAgICAgICAgdmFyIGNvbGxhcHNlRGF0YTtcblxuICAgICAgICAgICAgICAgIGlmIChleHBhbmRlZCAmJiBleHBhbmRlZC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29sbGFwc2VEYXRhID0gZXhwYW5kZWQuZGF0YSgnY29sbGFwc2UnKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbGxhcHNlRGF0YSAmJiBjb2xsYXBzZURhdGEudHJhbnNpdGlvbmluZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChleHBhbmRlZC5jb2xsYXBzZSkgeyAvLyBpZiBjb2xsYXBzZSBwbHVnaW4gaXMgYXZhaWxhYmxlIHRocm91Z2ggYm9vdHN0cmFwLmpzIHRoZW4gdXNlIGl0XG4gICAgICAgICAgICAgICAgICAgICAgICBleHBhbmRlZC5jb2xsYXBzZSgnaGlkZScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VkLmNvbGxhcHNlKCdzaG93Jyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8vIG90aGVyd2lzZSBqdXN0IHRvZ2dsZSBpbiBjbGFzcyBvbiB0aGUgdHdvIHZpZXdzXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBhbmRlZC5yZW1vdmVDbGFzcygnaW4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlZC5hZGRDbGFzcygnaW4nKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoJHRoaXMuaXMoJ3NwYW4nKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMudG9nZ2xlQ2xhc3Mob3B0aW9ucy5pY29ucy50aW1lICsgJyAnICsgb3B0aW9ucy5pY29ucy5kYXRlKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLmZpbmQoJ3NwYW4nKS50b2dnbGVDbGFzcyhvcHRpb25zLmljb25zLnRpbWUgKyAnICcgKyBvcHRpb25zLmljb25zLmRhdGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gTk9URTogdW5jb21tZW50IGlmIHRvZ2dsZWQgc3RhdGUgd2lsbCBiZSByZXN0b3JlZCBpbiBzaG93KClcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgKGNvbXBvbmVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyAgICBjb21wb25lbnQuZmluZCgnc3BhbicpLnRvZ2dsZUNsYXNzKG9wdGlvbnMuaWNvbnMudGltZSArICcgJyArIG9wdGlvbnMuaWNvbnMuZGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBzaG93UGlja2VyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB3aWRnZXQuZmluZCgnLnRpbWVwaWNrZXIgPiBkaXY6bm90KC50aW1lcGlja2VyLXBpY2tlciknKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgd2lkZ2V0LmZpbmQoJy50aW1lcGlja2VyIC50aW1lcGlja2VyLXBpY2tlcicpLnNob3coKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHNob3dIb3VyczogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgd2lkZ2V0LmZpbmQoJy50aW1lcGlja2VyIC50aW1lcGlja2VyLXBpY2tlcicpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB3aWRnZXQuZmluZCgnLnRpbWVwaWNrZXIgLnRpbWVwaWNrZXItaG91cnMnKS5zaG93KCk7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBzaG93TWludXRlczogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgd2lkZ2V0LmZpbmQoJy50aW1lcGlja2VyIC50aW1lcGlja2VyLXBpY2tlcicpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB3aWRnZXQuZmluZCgnLnRpbWVwaWNrZXIgLnRpbWVwaWNrZXItbWludXRlcycpLnNob3coKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHNob3dTZWNvbmRzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB3aWRnZXQuZmluZCgnLnRpbWVwaWNrZXIgLnRpbWVwaWNrZXItcGlja2VyJykuaGlkZSgpO1xuICAgICAgICAgICAgICAgIHdpZGdldC5maW5kKCcudGltZXBpY2tlciAudGltZXBpY2tlci1zZWNvbmRzJykuc2hvdygpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgc2VsZWN0SG91cjogZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgICAgIHZhciBob3VyID0gcGFyc2VJbnQoJChlLnRhcmdldCkudGV4dCgpLCAxMCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIXVzZTI0SG91cnMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGUuaG91cnMoKSA+PSAxMikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhvdXIgIT09IDEyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaG91ciArPSAxMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNldFZhbHVlKGRhdGUuY2xvbmUoKS5ob3Vycyhob3VyKSk7XG4gICAgICAgICAgICAgICAgYWN0aW9ucy5zaG93UGlja2VyLmNhbGwocGlja2VyKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHNlbGVjdE1pbnV0ZTogZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgICAgIHNldFZhbHVlKGRhdGUuY2xvbmUoKS5taW51dGVzKHBhcnNlSW50KCQoZS50YXJnZXQpLnRleHQoKSwgMTApKSk7XG4gICAgICAgICAgICAgICAgYWN0aW9ucy5zaG93UGlja2VyLmNhbGwocGlja2VyKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHNlbGVjdFNlY29uZDogZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgICAgIHNldFZhbHVlKGRhdGUuY2xvbmUoKS5zZWNvbmRzKHBhcnNlSW50KCQoZS50YXJnZXQpLnRleHQoKSwgMTApKSk7XG4gICAgICAgICAgICAgICAgYWN0aW9ucy5zaG93UGlja2VyLmNhbGwocGlja2VyKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGNsZWFyOiBjbGVhcixcblxuICAgICAgICAgICAgdG9kYXk6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciB0b2RheXNEYXRlID0gZ2V0TW9tZW50KCk7XG4gICAgICAgICAgICAgICAgaWYgKGlzVmFsaWQodG9kYXlzRGF0ZSwgJ2QnKSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRWYWx1ZSh0b2RheXNEYXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBjbG9zZTogaGlkZVxuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBkb0FjdGlvbiA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgIGlmICgkKGUuY3VycmVudFRhcmdldCkuaXMoJy5kaXNhYmxlZCcpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYWN0aW9uc1skKGUuY3VycmVudFRhcmdldCkuZGF0YSgnYWN0aW9uJyldLmFwcGx5KHBpY2tlciwgYXJndW1lbnRzKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfTtcblxuICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFNob3dzIHRoZSB3aWRnZXQuIFBvc3NpYmx5IHdpbGwgZW1pdCBkcC5zaG93IGFuZCBkcC5jaGFuZ2VcbiAgICAgICAgICAgICAqL1xuICAgICAgICB2YXIgc2hvdyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIGN1cnJlbnRNb21lbnQ7XG4gICAgICAgICAgICB2YXIgdXNlQ3VycmVudEdyYW51bGFyaXR5ID0ge1xuICAgICAgICAgICAgICAgICd5ZWFyJzogZnVuY3Rpb24obSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbS5tb250aCgwKS5kYXRlKDEpLmhvdXJzKDApLnNlY29uZHMoMCkubWludXRlcygwKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICdtb250aCc6IGZ1bmN0aW9uKG0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG0uZGF0ZSgxKS5ob3VycygwKS5zZWNvbmRzKDApLm1pbnV0ZXMoMCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAnZGF5JzogZnVuY3Rpb24obSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbS5ob3VycygwKS5zZWNvbmRzKDApLm1pbnV0ZXMoMCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAnaG91cic6IGZ1bmN0aW9uKG0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG0uc2Vjb25kcygwKS5taW51dGVzKDApO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgJ21pbnV0ZSc6IGZ1bmN0aW9uKG0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG0uc2Vjb25kcygwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBpZiAoaW5wdXQucHJvcCgnZGlzYWJsZWQnKSB8fCAoIW9wdGlvbnMuaWdub3JlUmVhZG9ubHkgJiYgaW5wdXQucHJvcCgncmVhZG9ubHknKSkgfHwgd2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpbnB1dC52YWwoKSAhPT0gdW5kZWZpbmVkICYmIGlucHV0LnZhbCgpLnRyaW0oKS5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICAgICAgICBzZXRWYWx1ZShwYXJzZUlucHV0RGF0ZShpbnB1dC52YWwoKS50cmltKCkpKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodW5zZXQgJiYgb3B0aW9ucy51c2VDdXJyZW50ICYmIChvcHRpb25zLmlubGluZSB8fCAoaW5wdXQuaXMoJ2lucHV0JykgJiYgaW5wdXQudmFsKCkudHJpbSgpLmxlbmd0aCA9PT0gMCkpKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudE1vbWVudCA9IGdldE1vbWVudCgpO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy51c2VDdXJyZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50TW9tZW50ID0gdXNlQ3VycmVudEdyYW51bGFyaXR5W29wdGlvbnMudXNlQ3VycmVudF0oY3VycmVudE1vbWVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNldFZhbHVlKGN1cnJlbnRNb21lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd2lkZ2V0ID0gZ2V0VGVtcGxhdGUoKTtcblxuICAgICAgICAgICAgZmlsbERvdygpO1xuICAgICAgICAgICAgZmlsbE1vbnRocygpO1xuXG4gICAgICAgICAgICB3aWRnZXQuZmluZCgnLnRpbWVwaWNrZXItaG91cnMnKS5oaWRlKCk7XG4gICAgICAgICAgICB3aWRnZXQuZmluZCgnLnRpbWVwaWNrZXItbWludXRlcycpLmhpZGUoKTtcbiAgICAgICAgICAgIHdpZGdldC5maW5kKCcudGltZXBpY2tlci1zZWNvbmRzJykuaGlkZSgpO1xuXG4gICAgICAgICAgICB1cGRhdGUoKTtcbiAgICAgICAgICAgIHNob3dNb2RlKCk7XG5cbiAgICAgICAgICAgICQod2luZG93KS5vbigncmVzaXplJywgcGxhY2UpO1xuICAgICAgICAgICAgd2lkZ2V0Lm9uKCdjbGljaycsICdbZGF0YS1hY3Rpb25dJywgZG9BY3Rpb24pOyAvLyB0aGlzIGhhbmRsZXMgY2xpY2tzIG9uIHRoZSB3aWRnZXRcbiAgICAgICAgICAgIHdpZGdldC5vbignbW91c2Vkb3duJywgZmFsc2UpO1xuXG4gICAgICAgICAgICBpZiAoY29tcG9uZW50ICYmIGNvbXBvbmVudC5oYXNDbGFzcygnYnRuJykpIHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnQudG9nZ2xlQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGxhY2UoKTtcbiAgICAgICAgICAgIHdpZGdldC5zaG93KCk7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5mb2N1c09uU2hvdyAmJiAhaW5wdXQuaXMoJzpmb2N1cycpKSB7XG4gICAgICAgICAgICAgICAgaW5wdXQuZm9jdXMoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbm90aWZ5RXZlbnQoe1xuICAgICAgICAgICAgICAgIHR5cGU6ICdkcC5zaG93J1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgICAgICogU2hvd3Mgb3IgaGlkZXMgdGhlIHdpZGdldFxuICAgICAgICAgICAgICovXG4gICAgICAgIHZhciB0b2dnbGUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHJldHVybiAod2lkZ2V0ID8gaGlkZSgpIDogc2hvdygpKTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIga2V5ZG93biA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgIHZhciBoYW5kbGVyID0gbnVsbDtcbiAgICAgICAgICAgIHZhciBpbmRleDtcbiAgICAgICAgICAgIHZhciBpbmRleDI7XG4gICAgICAgICAgICB2YXIgcHJlc3NlZEtleXMgPSBbXTtcbiAgICAgICAgICAgIHZhciBwcmVzc2VkTW9kaWZpZXJzID0ge307XG4gICAgICAgICAgICB2YXIgY3VycmVudEtleSA9IGUud2hpY2g7XG4gICAgICAgICAgICB2YXIga2V5QmluZEtleXM7XG4gICAgICAgICAgICB2YXIgYWxsTW9kaWZpZXJzUHJlc3NlZDtcbiAgICAgICAgICAgIHZhciBwcmVzc2VkID0gJ3AnO1xuXG4gICAgICAgICAgICBrZXlTdGF0ZVtjdXJyZW50S2V5XSA9IHByZXNzZWQ7XG5cbiAgICAgICAgICAgIGZvciAoaW5kZXggaW4ga2V5U3RhdGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoa2V5U3RhdGUuaGFzT3duUHJvcGVydHkoaW5kZXgpICYmIGtleVN0YXRlW2luZGV4XSA9PT0gcHJlc3NlZCkge1xuICAgICAgICAgICAgICAgICAgICBwcmVzc2VkS2V5cy5wdXNoKGluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhcnNlSW50KGluZGV4LCAxMCkgIT09IGN1cnJlbnRLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXNzZWRNb2RpZmllcnNbaW5kZXhdID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9yIChpbmRleCBpbiBvcHRpb25zLmtleUJpbmRzKSB7XG4gICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMua2V5QmluZHMuaGFzT3duUHJvcGVydHkoaW5kZXgpICYmIHR5cGVvZiAob3B0aW9ucy5rZXlCaW5kc1tpbmRleF0pID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIGtleUJpbmRLZXlzID0gaW5kZXguc3BsaXQoJyAnKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGtleUJpbmRLZXlzLmxlbmd0aCA9PT0gcHJlc3NlZEtleXMubGVuZ3RoICYmIGtleU1hcFtjdXJyZW50S2V5XSA9PT0ga2V5QmluZEtleXNba2V5QmluZEtleXMubGVuZ3RoIC0gMV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsbE1vZGlmaWVyc1ByZXNzZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbmRleDIgPSBrZXlCaW5kS2V5cy5sZW5ndGggLSAyOyBpbmRleDIgPj0gMDsgaW5kZXgyLS0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIShrZXlNYXBba2V5QmluZEtleXNbaW5kZXgyXV0gaW4gcHJlc3NlZE1vZGlmaWVycykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsTW9kaWZpZXJzUHJlc3NlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWxsTW9kaWZpZXJzUHJlc3NlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZXIgPSBvcHRpb25zLmtleUJpbmRzW2luZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGhhbmRsZXIpIHtcbiAgICAgICAgICAgICAgICBoYW5kbGVyLmNhbGwocGlja2VyLCB3aWRnZXQpO1xuICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBrZXl1cCA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgIGtleVN0YXRlW2Uud2hpY2hdID0gJ3InO1xuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgY2hhbmdlID0gZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgdmFyIHZhbCA9ICQoZS50YXJnZXQpLnZhbCgpLnRyaW0oKTtcbiAgICAgICAgICAgIHZhciBwYXJzZWREYXRlID0gdmFsID8gcGFyc2VJbnB1dERhdGUodmFsKSA6IG51bGw7XG4gICAgICAgICAgICBzZXRWYWx1ZShwYXJzZWREYXRlKTtcbiAgICAgICAgICAgIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGF0dGFjaERhdGVQaWNrZXJFbGVtZW50RXZlbnRzID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBpbnB1dC5vbih7XG4gICAgICAgICAgICAgICAgJ2NoYW5nZSc6IGNoYW5nZSxcbiAgICAgICAgICAgICAgICAnYmx1cic6IG9wdGlvbnMuZGVidWcgPyAnJyA6IGhpZGUsXG4gICAgICAgICAgICAgICAgJ2tleWRvd24nOiBrZXlkb3duLFxuICAgICAgICAgICAgICAgICdrZXl1cCc6IGtleXVwLFxuICAgICAgICAgICAgICAgICdmb2N1cyc6IG9wdGlvbnMuYWxsb3dJbnB1dFRvZ2dsZSA/IHNob3cgOiAnJ1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmIChlbGVtZW50LmlzKCdpbnB1dCcpKSB7XG4gICAgICAgICAgICAgICAgaW5wdXQub24oe1xuICAgICAgICAgICAgICAgICAgICAnZm9jdXMnOiBzaG93XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNvbXBvbmVudCkge1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudC5vbignY2xpY2snLCB0b2dnbGUpO1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudC5vbignbW91c2Vkb3duJywgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBkZXRhY2hEYXRlUGlja2VyRWxlbWVudEV2ZW50cyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgaW5wdXQub2ZmKHtcbiAgICAgICAgICAgICAgICAnY2hhbmdlJzogY2hhbmdlLFxuICAgICAgICAgICAgICAgICdibHVyJzogYmx1cixcbiAgICAgICAgICAgICAgICAna2V5ZG93bic6IGtleWRvd24sXG4gICAgICAgICAgICAgICAgJ2tleXVwJzoga2V5dXAsXG4gICAgICAgICAgICAgICAgJ2ZvY3VzJzogb3B0aW9ucy5hbGxvd0lucHV0VG9nZ2xlID8gaGlkZSA6ICcnXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKGVsZW1lbnQuaXMoJ2lucHV0JykpIHtcbiAgICAgICAgICAgICAgICBpbnB1dC5vZmYoe1xuICAgICAgICAgICAgICAgICAgICAnZm9jdXMnOiBzaG93XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNvbXBvbmVudCkge1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudC5vZmYoJ2NsaWNrJywgdG9nZ2xlKTtcbiAgICAgICAgICAgICAgICBjb21wb25lbnQub2ZmKCdtb3VzZWRvd24nLCBmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGluZGV4R2l2ZW5EYXRlcyA9IGZ1bmN0aW9uKGdpdmVuRGF0ZXNBcnJheSkge1xuICAgICAgICAgICAgLy8gU3RvcmUgZ2l2ZW4gZW5hYmxlZERhdGVzIGFuZCBkaXNhYmxlZERhdGVzIGFzIGtleXMuXG4gICAgICAgICAgICAvLyBUaGlzIHdheSB3ZSBjYW4gY2hlY2sgdGhlaXIgZXhpc3RlbmNlIGluIE8oMSkgdGltZSBpbnN0ZWFkIG9mIGxvb3BpbmcgdGhyb3VnaCB3aG9sZSBhcnJheS5cbiAgICAgICAgICAgIC8vIChmb3IgZXhhbXBsZTogb3B0aW9ucy5lbmFibGVkRGF0ZXNbJzIwMTQtMDItMjcnXSA9PT0gdHJ1ZSlcbiAgICAgICAgICAgIHZhciBnaXZlbkRhdGVzSW5kZXhlZCA9IHt9O1xuICAgICAgICAgICAgJC5lYWNoKGdpdmVuRGF0ZXNBcnJheSwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyIGREYXRlID0gcGFyc2VJbnB1dERhdGUodGhpcyk7XG4gICAgICAgICAgICAgICAgaWYgKGREYXRlLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgICAgICAgICBnaXZlbkRhdGVzSW5kZXhlZFtkRGF0ZS5mb3JtYXQoJ1lZWVktTU0tREQnKV0gPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIChPYmplY3Qua2V5cyhnaXZlbkRhdGVzSW5kZXhlZCkubGVuZ3RoKSA/IGdpdmVuRGF0ZXNJbmRleGVkIDogZmFsc2U7XG4gICAgICAgIH07XG5cbiAgICAgICAgdmFyIGluZGV4R2l2ZW5Ib3VycyA9IGZ1bmN0aW9uKGdpdmVuSG91cnNBcnJheSkge1xuICAgICAgICAgICAgLy8gU3RvcmUgZ2l2ZW4gZW5hYmxlZEhvdXJzIGFuZCBkaXNhYmxlZEhvdXJzIGFzIGtleXMuXG4gICAgICAgICAgICAvLyBUaGlzIHdheSB3ZSBjYW4gY2hlY2sgdGhlaXIgZXhpc3RlbmNlIGluIE8oMSkgdGltZSBpbnN0ZWFkIG9mIGxvb3BpbmcgdGhyb3VnaCB3aG9sZSBhcnJheS5cbiAgICAgICAgICAgIC8vIChmb3IgZXhhbXBsZTogb3B0aW9ucy5lbmFibGVkSG91cnNbJzIwMTQtMDItMjcnXSA9PT0gdHJ1ZSlcbiAgICAgICAgICAgIHZhciBnaXZlbkhvdXJzSW5kZXhlZCA9IHt9O1xuICAgICAgICAgICAgJC5lYWNoKGdpdmVuSG91cnNBcnJheSwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgZ2l2ZW5Ib3Vyc0luZGV4ZWRbdGhpc10gPSB0cnVlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gKE9iamVjdC5rZXlzKGdpdmVuSG91cnNJbmRleGVkKS5sZW5ndGgpID8gZ2l2ZW5Ib3Vyc0luZGV4ZWQgOiBmYWxzZTtcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgaW5pdEZvcm1hdHRpbmcgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciBmb3JtYXQgPSBvcHRpb25zLmZvcm1hdCB8fCAnTCBMVCc7XG5cbiAgICAgICAgICAgIGFjdHVhbEZvcm1hdCA9IGZvcm1hdC5yZXBsYWNlKC8oXFxbW15cXFtdKlxcXSl8KFxcXFwpPyhMVFN8TFR8TEw/TD9MP3xsezEsNH0pL2csIGZ1bmN0aW9uKGZvcm1hdElucHV0KSB7XG4gICAgICAgICAgICAgICAgdmFyIG5ld2lucHV0ID0gZGF0ZS5sb2NhbGVEYXRhKCkubG9uZ0RhdGVGb3JtYXQoZm9ybWF0SW5wdXQpIHx8IGZvcm1hdElucHV0O1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXdpbnB1dC5yZXBsYWNlKC8oXFxbW15cXFtdKlxcXSl8KFxcXFwpPyhMVFN8TFR8TEw/TD9MP3xsezEsNH0pL2csIGZ1bmN0aW9uKGZvcm1hdElucHV0MikgeyAvLyB0ZW1wIGZpeCBmb3IgIzc0MFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZS5sb2NhbGVEYXRhKCkubG9uZ0RhdGVGb3JtYXQoZm9ybWF0SW5wdXQyKSB8fCBmb3JtYXRJbnB1dDI7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgcGFyc2VGb3JtYXRzID0gb3B0aW9ucy5leHRyYUZvcm1hdHMgPyBvcHRpb25zLmV4dHJhRm9ybWF0cy5zbGljZSgpIDogW107XG4gICAgICAgICAgICBpZiAocGFyc2VGb3JtYXRzLmluZGV4T2YoZm9ybWF0KSA8IDAgJiYgcGFyc2VGb3JtYXRzLmluZGV4T2YoYWN0dWFsRm9ybWF0KSA8IDApIHtcbiAgICAgICAgICAgICAgICBwYXJzZUZvcm1hdHMucHVzaChhY3R1YWxGb3JtYXQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB1c2UyNEhvdXJzID0gKGFjdHVhbEZvcm1hdC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoJ2EnKSA8IDEgJiYgYWN0dWFsRm9ybWF0LnJlcGxhY2UoL1xcWy4qP1xcXS9nLCAnJykuaW5kZXhPZignaCcpIDwgMSk7XG5cbiAgICAgICAgICAgIGlmIChpc0VuYWJsZWQoJ3knKSkge1xuICAgICAgICAgICAgICAgIG1pblZpZXdNb2RlTnVtYmVyID0gMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0VuYWJsZWQoJ00nKSkge1xuICAgICAgICAgICAgICAgIG1pblZpZXdNb2RlTnVtYmVyID0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0VuYWJsZWQoJ2QnKSkge1xuICAgICAgICAgICAgICAgIG1pblZpZXdNb2RlTnVtYmVyID0gMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY3VycmVudFZpZXdNb2RlID0gTWF0aC5tYXgobWluVmlld01vZGVOdW1iZXIsIGN1cnJlbnRWaWV3TW9kZSk7XG5cbiAgICAgICAgICAgIGlmICghdW5zZXQpIHtcbiAgICAgICAgICAgICAgICBzZXRWYWx1ZShkYXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICAvKiogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICAgICAqXG4gICAgICAgICAqIFB1YmxpYyBBUEkgZnVuY3Rpb25zXG4gICAgICAgICAqID09PT09PT09PT09PT09PT09PT09PVxuICAgICAgICAgKlxuICAgICAgICAgKiBJbXBvcnRhbnQ6IERvIG5vdCBleHBvc2UgZGlyZWN0IHJlZmVyZW5jZXMgdG8gcHJpdmF0ZSBvYmplY3RzIG9yIHRoZSBvcHRpb25zXG4gICAgICAgICAqIG9iamVjdCB0byB0aGUgb3V0ZXIgd29ybGQuIEFsd2F5cyByZXR1cm4gYSBjbG9uZSB3aGVuIHJldHVybmluZyB2YWx1ZXMgb3IgbWFrZVxuICAgICAgICAgKiBhIGNsb25lIHdoZW4gc2V0dGluZyBhIHByaXZhdGUgdmFyaWFibGUuXG4gICAgICAgICAqXG4gICAgICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiAgICAgICAgcGlja2VyLmRlc3Ryb3kgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIC8vIC88c3VtbWFyeT5EZXN0cm95cyB0aGUgd2lkZ2V0IGFuZCByZW1vdmVzIGFsbCBhdHRhY2hlZCBldmVudCBsaXN0ZW5lcnM8L3N1bW1hcnk+XG4gICAgICAgICAgICBoaWRlKCk7XG4gICAgICAgICAgICBkZXRhY2hEYXRlUGlja2VyRWxlbWVudEV2ZW50cygpO1xuICAgICAgICAgICAgZWxlbWVudC5yZW1vdmVEYXRhKCdEYXRlVGltZVBpY2tlcicpO1xuICAgICAgICAgICAgZWxlbWVudC5yZW1vdmVEYXRhKCdkYXRlJyk7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLnRvZ2dsZSA9IHRvZ2dsZTtcblxuICAgICAgICBwaWNrZXIuc2hvdyA9IHNob3c7XG5cbiAgICAgICAgcGlja2VyLmhpZGUgPSBoaWRlO1xuXG4gICAgICAgIHBpY2tlci5kaXNhYmxlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAvLyAvPHN1bW1hcnk+RGlzYWJsZXMgdGhlIGlucHV0IGVsZW1lbnQsIHRoZSBjb21wb25lbnQgaXMgYXR0YWNoZWQgdG8sIGJ5IGFkZGluZyBhIGRpc2FibGVkPVwidHJ1ZVwiIGF0dHJpYnV0ZSB0byBpdC5cbiAgICAgICAgICAgIC8vIC9JZiB0aGUgd2lkZ2V0IHdhcyB2aXNpYmxlIGJlZm9yZSB0aGF0IGNhbGwgaXQgaXMgaGlkZGVuLiBQb3NzaWJseSBlbWl0cyBkcC5oaWRlPC9zdW1tYXJ5PlxuICAgICAgICAgICAgaGlkZSgpO1xuICAgICAgICAgICAgaWYgKGNvbXBvbmVudCAmJiBjb21wb25lbnQuaGFzQ2xhc3MoJ2J0bicpKSB7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50LmFkZENsYXNzKCdkaXNhYmxlZCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaW5wdXQucHJvcCgnZGlzYWJsZWQnLCB0cnVlKTtcbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLmVuYWJsZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgLy8gLzxzdW1tYXJ5PkVuYWJsZXMgdGhlIGlucHV0IGVsZW1lbnQsIHRoZSBjb21wb25lbnQgaXMgYXR0YWNoZWQgdG8sIGJ5IHJlbW92aW5nIGRpc2FibGVkIGF0dHJpYnV0ZSBmcm9tIGl0Ljwvc3VtbWFyeT5cbiAgICAgICAgICAgIGlmIChjb21wb25lbnQgJiYgY29tcG9uZW50Lmhhc0NsYXNzKCdidG4nKSkge1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudC5yZW1vdmVDbGFzcygnZGlzYWJsZWQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlucHV0LnByb3AoJ2Rpc2FibGVkJywgZmFsc2UpO1xuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIuaWdub3JlUmVhZG9ubHkgPSBmdW5jdGlvbihpZ25vcmVSZWFkb25seSkge1xuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5pZ25vcmVSZWFkb25seTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgaWdub3JlUmVhZG9ubHkgIT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2lnbm9yZVJlYWRvbmx5ICgpIGV4cGVjdHMgYSBib29sZWFuIHBhcmFtZXRlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3B0aW9ucy5pZ25vcmVSZWFkb25seSA9IGlnbm9yZVJlYWRvbmx5O1xuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIub3B0aW9ucyA9IGZ1bmN0aW9uKG5ld09wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICQuZXh0ZW5kKHRydWUsIHt9LCBvcHRpb25zKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCEobmV3T3B0aW9ucyBpbnN0YW5jZW9mIE9iamVjdCkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb25zKCkgb3B0aW9ucyBwYXJhbWV0ZXIgc2hvdWxkIGJlIGFuIG9iamVjdCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJC5leHRlbmQodHJ1ZSwgb3B0aW9ucywgbmV3T3B0aW9ucyk7XG4gICAgICAgICAgICAkLmVhY2gob3B0aW9ucywgZnVuY3Rpb24oa2V5LCB2YWx1ZSkge1xuICAgICAgICAgICAgICAgIGlmIChwaWNrZXJba2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHBpY2tlcltrZXldKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdvcHRpb24gJyArIGtleSArICcgaXMgbm90IHJlY29nbml6ZWQhJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5kYXRlID0gZnVuY3Rpb24obmV3RGF0ZSkge1xuICAgICAgICAgICAgLy8gLzxzaWduYXR1cmUgaGVscEtleXdvcmQ9XCIkLmZuLmRhdGV0aW1lcGlja2VyLmRhdGVcIj5cbiAgICAgICAgICAgIC8vIC88c3VtbWFyeT5SZXR1cm5zIHRoZSBjb21wb25lbnQncyBtb2RlbCBjdXJyZW50IGRhdGUsIGEgbW9tZW50IG9iamVjdCBvciBudWxsIGlmIG5vdCBzZXQuPC9zdW1tYXJ5PlxuICAgICAgICAgICAgLy8gLzxyZXR1cm5zIHR5cGU9XCJNb21lbnRcIj5kYXRlLmNsb25lKCk8L3JldHVybnM+XG4gICAgICAgICAgICAvLyAvPC9zaWduYXR1cmU+XG4gICAgICAgICAgICAvLyAvPHNpZ25hdHVyZT5cbiAgICAgICAgICAgIC8vIC88c3VtbWFyeT5TZXRzIHRoZSBjb21wb25lbnRzIG1vZGVsIGN1cnJlbnQgbW9tZW50IHRvIGl0LiBQYXNzaW5nIGEgbnVsbCB2YWx1ZSB1bnNldHMgdGhlIGNvbXBvbmVudHMgbW9kZWwgY3VycmVudCBtb21lbnQuIFBhcnNpbmcgb2YgdGhlIG5ld0RhdGUgcGFyYW1ldGVyIGlzIG1hZGUgdXNpbmcgbW9tZW50IGxpYnJhcnkgd2l0aCB0aGUgb3B0aW9ucy5mb3JtYXQgYW5kIG9wdGlvbnMudXNlU3RyaWN0IGNvbXBvbmVudHMgY29uZmlndXJhdGlvbi48L3N1bW1hcnk+XG4gICAgICAgICAgICAvLyAvPHBhcmFtIG5hbWU9XCJuZXdEYXRlXCIgbG9jaWQ9XCIkLmZuLmRhdGV0aW1lcGlja2VyLmRhdGVfcDpuZXdEYXRlXCI+VGFrZXMgc3RyaW5nLCBEYXRlLCBtb21lbnQsIG51bGwgcGFyYW1ldGVyLjwvcGFyYW0+XG4gICAgICAgICAgICAvLyAvPC9zaWduYXR1cmU+XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGlmICh1bnNldCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGUuY2xvbmUoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG5ld0RhdGUgIT09IG51bGwgJiYgdHlwZW9mIG5ld0RhdGUgIT09ICdzdHJpbmcnICYmICFtb21lbnQuaXNNb21lbnQobmV3RGF0ZSkgJiYgIShuZXdEYXRlIGluc3RhbmNlb2YgRGF0ZSkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdkYXRlKCkgcGFyYW1ldGVyIG11c3QgYmUgb25lIG9mIFtudWxsLCBzdHJpbmcsIG1vbWVudCBvciBEYXRlXScpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzZXRWYWx1ZShuZXdEYXRlID09PSBudWxsID8gbnVsbCA6IHBhcnNlSW5wdXREYXRlKG5ld0RhdGUpKTtcbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLmZvcm1hdCA9IGZ1bmN0aW9uKG5ld0Zvcm1hdCkge1xuICAgICAgICAgICAgLy8gLzxzdW1tYXJ5PnRlc3Qgc3U8L3N1bW1hcnk+XG4gICAgICAgICAgICAvLyAvPHBhcmFtIG5hbWU9XCJuZXdGb3JtYXRcIj5pbmZvIGFib3V0IHBhcmE8L3BhcmFtPlxuICAgICAgICAgICAgLy8gLzxyZXR1cm5zIHR5cGU9XCJzdHJpbmd8Ym9vbGVhblwiPnJldHVybnMgZm9vPC9yZXR1cm5zPlxuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5mb3JtYXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICgodHlwZW9mIG5ld0Zvcm1hdCAhPT0gJ3N0cmluZycpICYmICgodHlwZW9mIG5ld0Zvcm1hdCAhPT0gJ2Jvb2xlYW4nKSB8fCAobmV3Rm9ybWF0ICE9PSBmYWxzZSkpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignZm9ybWF0KCkgZXhwZWN0cyBhIHN0cmluZyBvciBib29sZWFuOmZhbHNlIHBhcmFtZXRlciAnICsgbmV3Rm9ybWF0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb3B0aW9ucy5mb3JtYXQgPSBuZXdGb3JtYXQ7XG4gICAgICAgICAgICBpZiAoYWN0dWFsRm9ybWF0KSB7XG4gICAgICAgICAgICAgICAgaW5pdEZvcm1hdHRpbmcoKTsgLy8gcmVpbml0IGZvcm1hdHRpbmdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLnRpbWVab25lID0gZnVuY3Rpb24obmV3Wm9uZSkge1xuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy50aW1lWm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBuZXdab25lICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ25ld1pvbmUoKSBleHBlY3RzIGEgc3RyaW5nIHBhcmFtZXRlcicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvcHRpb25zLnRpbWVab25lID0gbmV3Wm9uZTtcblxuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIuZGF5Vmlld0hlYWRlckZvcm1hdCA9IGZ1bmN0aW9uKG5ld0Zvcm1hdCkge1xuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5kYXlWaWV3SGVhZGVyRm9ybWF0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIG5ld0Zvcm1hdCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdkYXlWaWV3SGVhZGVyRm9ybWF0KCkgZXhwZWN0cyBhIHN0cmluZyBwYXJhbWV0ZXInKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb3B0aW9ucy5kYXlWaWV3SGVhZGVyRm9ybWF0ID0gbmV3Rm9ybWF0O1xuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIuZXh0cmFGb3JtYXRzID0gZnVuY3Rpb24oZm9ybWF0cykge1xuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5leHRyYUZvcm1hdHM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChmb3JtYXRzICE9PSBmYWxzZSAmJiAhKGZvcm1hdHMgaW5zdGFuY2VvZiBBcnJheSkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdleHRyYUZvcm1hdHMoKSBleHBlY3RzIGFuIGFycmF5IG9yIGZhbHNlIHBhcmFtZXRlcicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvcHRpb25zLmV4dHJhRm9ybWF0cyA9IGZvcm1hdHM7XG4gICAgICAgICAgICBpZiAocGFyc2VGb3JtYXRzKSB7XG4gICAgICAgICAgICAgICAgaW5pdEZvcm1hdHRpbmcoKTsgLy8gcmVpbml0IGZvcm1hdHRpbmdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLmRpc2FibGVkRGF0ZXMgPSBmdW5jdGlvbihkYXRlcykge1xuICAgICAgICAgICAgLy8gLzxzaWduYXR1cmUgaGVscEtleXdvcmQ9XCIkLmZuLmRhdGV0aW1lcGlja2VyLmRpc2FibGVkRGF0ZXNcIj5cbiAgICAgICAgICAgIC8vIC88c3VtbWFyeT5SZXR1cm5zIGFuIGFycmF5IHdpdGggdGhlIGN1cnJlbnRseSBzZXQgZGlzYWJsZWQgZGF0ZXMgb24gdGhlIGNvbXBvbmVudC48L3N1bW1hcnk+XG4gICAgICAgICAgICAvLyAvPHJldHVybnMgdHlwZT1cImFycmF5XCI+b3B0aW9ucy5kaXNhYmxlZERhdGVzPC9yZXR1cm5zPlxuICAgICAgICAgICAgLy8gLzwvc2lnbmF0dXJlPlxuICAgICAgICAgICAgLy8gLzxzaWduYXR1cmU+XG4gICAgICAgICAgICAvLyAvPHN1bW1hcnk+U2V0dGluZyB0aGlzIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBvcHRpb25zLm1pbkRhdGUsIG9wdGlvbnMubWF4RGF0ZSBjb25maWd1cmF0aW9uLiBBbHNvIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiByZW1vdmVzIHRoZSBjb25maWd1cmF0aW9uIG9mXG4gICAgICAgICAgICAvLyAvb3B0aW9ucy5lbmFibGVkRGF0ZXMgaWYgc3VjaCBleGlzdC48L3N1bW1hcnk+XG4gICAgICAgICAgICAvLyAvPHBhcmFtIG5hbWU9XCJkYXRlc1wiIGxvY2lkPVwiJC5mbi5kYXRldGltZXBpY2tlci5kaXNhYmxlZERhdGVzX3A6ZGF0ZXNcIj5UYWtlcyBhbiBbIHN0cmluZyBvciBEYXRlIG9yIG1vbWVudCBdIG9mIHZhbHVlcyBhbmQgYWxsb3dzIHRoZSB1c2VyIHRvIHNlbGVjdCBvbmx5IGZyb20gdGhvc2UgZGF5cy48L3BhcmFtPlxuICAgICAgICAgICAgLy8gLzwvc2lnbmF0dXJlPlxuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKG9wdGlvbnMuZGlzYWJsZWREYXRlcyA/ICQuZXh0ZW5kKHt9LCBvcHRpb25zLmRpc2FibGVkRGF0ZXMpIDogb3B0aW9ucy5kaXNhYmxlZERhdGVzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFkYXRlcykge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMuZGlzYWJsZWREYXRlcyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHVwZGF0ZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIShkYXRlcyBpbnN0YW5jZW9mIEFycmF5KSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2Rpc2FibGVkRGF0ZXMoKSBleHBlY3RzIGFuIGFycmF5IHBhcmFtZXRlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3B0aW9ucy5kaXNhYmxlZERhdGVzID0gaW5kZXhHaXZlbkRhdGVzKGRhdGVzKTtcbiAgICAgICAgICAgIG9wdGlvbnMuZW5hYmxlZERhdGVzID0gZmFsc2U7XG4gICAgICAgICAgICB1cGRhdGUoKTtcbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLmVuYWJsZWREYXRlcyA9IGZ1bmN0aW9uKGRhdGVzKSB7XG4gICAgICAgICAgICAvLyAvPHNpZ25hdHVyZSBoZWxwS2V5d29yZD1cIiQuZm4uZGF0ZXRpbWVwaWNrZXIuZW5hYmxlZERhdGVzXCI+XG4gICAgICAgICAgICAvLyAvPHN1bW1hcnk+UmV0dXJucyBhbiBhcnJheSB3aXRoIHRoZSBjdXJyZW50bHkgc2V0IGVuYWJsZWQgZGF0ZXMgb24gdGhlIGNvbXBvbmVudC48L3N1bW1hcnk+XG4gICAgICAgICAgICAvLyAvPHJldHVybnMgdHlwZT1cImFycmF5XCI+b3B0aW9ucy5lbmFibGVkRGF0ZXM8L3JldHVybnM+XG4gICAgICAgICAgICAvLyAvPC9zaWduYXR1cmU+XG4gICAgICAgICAgICAvLyAvPHNpZ25hdHVyZT5cbiAgICAgICAgICAgIC8vIC88c3VtbWFyeT5TZXR0aW5nIHRoaXMgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIG9wdGlvbnMubWluRGF0ZSwgb3B0aW9ucy5tYXhEYXRlIGNvbmZpZ3VyYXRpb24uIEFsc28gY2FsbGluZyB0aGlzIGZ1bmN0aW9uIHJlbW92ZXMgdGhlIGNvbmZpZ3VyYXRpb24gb2Ygb3B0aW9ucy5kaXNhYmxlZERhdGVzIGlmIHN1Y2ggZXhpc3QuPC9zdW1tYXJ5PlxuICAgICAgICAgICAgLy8gLzxwYXJhbSBuYW1lPVwiZGF0ZXNcIiBsb2NpZD1cIiQuZm4uZGF0ZXRpbWVwaWNrZXIuZW5hYmxlZERhdGVzX3A6ZGF0ZXNcIj5UYWtlcyBhbiBbIHN0cmluZyBvciBEYXRlIG9yIG1vbWVudCBdIG9mIHZhbHVlcyBhbmQgYWxsb3dzIHRoZSB1c2VyIHRvIHNlbGVjdCBvbmx5IGZyb20gdGhvc2UgZGF5cy48L3BhcmFtPlxuICAgICAgICAgICAgLy8gLzwvc2lnbmF0dXJlPlxuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKG9wdGlvbnMuZW5hYmxlZERhdGVzID8gJC5leHRlbmQoe30sIG9wdGlvbnMuZW5hYmxlZERhdGVzKSA6IG9wdGlvbnMuZW5hYmxlZERhdGVzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFkYXRlcykge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMuZW5hYmxlZERhdGVzID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdXBkYXRlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghKGRhdGVzIGluc3RhbmNlb2YgQXJyYXkpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignZW5hYmxlZERhdGVzKCkgZXhwZWN0cyBhbiBhcnJheSBwYXJhbWV0ZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wdGlvbnMuZW5hYmxlZERhdGVzID0gaW5kZXhHaXZlbkRhdGVzKGRhdGVzKTtcbiAgICAgICAgICAgIG9wdGlvbnMuZGlzYWJsZWREYXRlcyA9IGZhbHNlO1xuICAgICAgICAgICAgdXBkYXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5kYXlzT2ZXZWVrRGlzYWJsZWQgPSBmdW5jdGlvbihkYXlzT2ZXZWVrRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMuZGF5c09mV2Vla0Rpc2FibGVkLnNwbGljZSgwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCh0eXBlb2YgZGF5c09mV2Vla0Rpc2FibGVkID09PSAnYm9vbGVhbicpICYmICFkYXlzT2ZXZWVrRGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zLmRheXNPZldlZWtEaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHVwZGF0ZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghKGRheXNPZldlZWtEaXNhYmxlZCBpbnN0YW5jZW9mIEFycmF5KSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2RheXNPZldlZWtEaXNhYmxlZCgpIGV4cGVjdHMgYW4gYXJyYXkgcGFyYW1ldGVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcHRpb25zLmRheXNPZldlZWtEaXNhYmxlZCA9IGRheXNPZldlZWtEaXNhYmxlZC5yZWR1Y2UoZnVuY3Rpb24ocHJldmlvdXNWYWx1ZSwgY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudFZhbHVlID0gcGFyc2VJbnQoY3VycmVudFZhbHVlLCAxMCk7XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZSA+IDYgfHwgY3VycmVudFZhbHVlIDwgMCB8fCBpc05hTihjdXJyZW50VmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmV2aW91c1ZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNWYWx1ZS5pbmRleE9mKGN1cnJlbnRWYWx1ZSkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHByZXZpb3VzVmFsdWUucHVzaChjdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcHJldmlvdXNWYWx1ZTtcbiAgICAgICAgICAgIH0sIFtdKS5zb3J0KCk7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy51c2VDdXJyZW50ICYmICFvcHRpb25zLmtlZXBJbnZhbGlkKSB7XG4gICAgICAgICAgICAgICAgdmFyIHRyaWVzID0gMDtcbiAgICAgICAgICAgICAgICB3aGlsZSAoIWlzVmFsaWQoZGF0ZSwgJ2QnKSkge1xuICAgICAgICAgICAgICAgICAgICBkYXRlLmFkZCgxLCAnZCcpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodHJpZXMgPT09IDMxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RyaWVkIDMxIHRpbWVzIHRvIGZpbmQgYSB2YWxpZCBkYXRlJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdHJpZXMrKztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2V0VmFsdWUoZGF0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB1cGRhdGUoKTtcbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLm1heERhdGUgPSBmdW5jdGlvbihtYXhEYXRlKSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLm1heERhdGUgPyBvcHRpb25zLm1heERhdGUuY2xvbmUoKSA6IG9wdGlvbnMubWF4RGF0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCh0eXBlb2YgbWF4RGF0ZSA9PT0gJ2Jvb2xlYW4nKSAmJiBtYXhEYXRlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMubWF4RGF0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHVwZGF0ZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgbWF4RGF0ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBpZiAobWF4RGF0ZSA9PT0gJ25vdycgfHwgbWF4RGF0ZSA9PT0gJ21vbWVudCcpIHtcbiAgICAgICAgICAgICAgICAgICAgbWF4RGF0ZSA9IGdldE1vbWVudCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmFyIHBhcnNlZERhdGUgPSBwYXJzZUlucHV0RGF0ZShtYXhEYXRlKTtcblxuICAgICAgICAgICAgaWYgKCFwYXJzZWREYXRlLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ21heERhdGUoKSBDb3VsZCBub3QgcGFyc2UgZGF0ZSBwYXJhbWV0ZXI6ICcgKyBtYXhEYXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvcHRpb25zLm1pbkRhdGUgJiYgcGFyc2VkRGF0ZS5pc0JlZm9yZShvcHRpb25zLm1pbkRhdGUpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignbWF4RGF0ZSgpIGRhdGUgcGFyYW1ldGVyIGlzIGJlZm9yZSBvcHRpb25zLm1pbkRhdGU6ICcgKyBwYXJzZWREYXRlLmZvcm1hdChhY3R1YWxGb3JtYXQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wdGlvbnMubWF4RGF0ZSA9IHBhcnNlZERhdGU7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy51c2VDdXJyZW50ICYmICFvcHRpb25zLmtlZXBJbnZhbGlkICYmIGRhdGUuaXNBZnRlcihtYXhEYXRlKSkge1xuICAgICAgICAgICAgICAgIHNldFZhbHVlKG9wdGlvbnMubWF4RGF0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmlld0RhdGUuaXNBZnRlcihwYXJzZWREYXRlKSkge1xuICAgICAgICAgICAgICAgIHZpZXdEYXRlID0gcGFyc2VkRGF0ZS5jbG9uZSgpLnN1YnRyYWN0KG9wdGlvbnMuc3RlcHBpbmcsICdtJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB1cGRhdGUoKTtcbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLm1pbkRhdGUgPSBmdW5jdGlvbihtaW5EYXRlKSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLm1pbkRhdGUgPyBvcHRpb25zLm1pbkRhdGUuY2xvbmUoKSA6IG9wdGlvbnMubWluRGF0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCh0eXBlb2YgbWluRGF0ZSA9PT0gJ2Jvb2xlYW4nKSAmJiBtaW5EYXRlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMubWluRGF0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHVwZGF0ZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgbWluRGF0ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBpZiAobWluRGF0ZSA9PT0gJ25vdycgfHwgbWluRGF0ZSA9PT0gJ21vbWVudCcpIHtcbiAgICAgICAgICAgICAgICAgICAgbWluRGF0ZSA9IGdldE1vbWVudCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmFyIHBhcnNlZERhdGUgPSBwYXJzZUlucHV0RGF0ZShtaW5EYXRlKTtcblxuICAgICAgICAgICAgaWYgKCFwYXJzZWREYXRlLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ21pbkRhdGUoKSBDb3VsZCBub3QgcGFyc2UgZGF0ZSBwYXJhbWV0ZXI6ICcgKyBtaW5EYXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvcHRpb25zLm1heERhdGUgJiYgcGFyc2VkRGF0ZS5pc0FmdGVyKG9wdGlvbnMubWF4RGF0ZSkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdtaW5EYXRlKCkgZGF0ZSBwYXJhbWV0ZXIgaXMgYWZ0ZXIgb3B0aW9ucy5tYXhEYXRlOiAnICsgcGFyc2VkRGF0ZS5mb3JtYXQoYWN0dWFsRm9ybWF0KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcHRpb25zLm1pbkRhdGUgPSBwYXJzZWREYXRlO1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMudXNlQ3VycmVudCAmJiAhb3B0aW9ucy5rZWVwSW52YWxpZCAmJiBkYXRlLmlzQmVmb3JlKG1pbkRhdGUpKSB7XG4gICAgICAgICAgICAgICAgc2V0VmFsdWUob3B0aW9ucy5taW5EYXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh2aWV3RGF0ZS5pc0JlZm9yZShwYXJzZWREYXRlKSkge1xuICAgICAgICAgICAgICAgIHZpZXdEYXRlID0gcGFyc2VkRGF0ZS5jbG9uZSgpLmFkZChvcHRpb25zLnN0ZXBwaW5nLCAnbScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdXBkYXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5kZWZhdWx0RGF0ZSA9IGZ1bmN0aW9uKGRlZmF1bHREYXRlKSB7XG4gICAgICAgICAgICAvLyAvPHNpZ25hdHVyZSBoZWxwS2V5d29yZD1cIiQuZm4uZGF0ZXRpbWVwaWNrZXIuZGVmYXVsdERhdGVcIj5cbiAgICAgICAgICAgIC8vIC88c3VtbWFyeT5SZXR1cm5zIGEgbW9tZW50IHdpdGggdGhlIG9wdGlvbnMuZGVmYXVsdERhdGUgb3B0aW9uIGNvbmZpZ3VyYXRpb24gb3IgZmFsc2UgaWYgbm90IHNldDwvc3VtbWFyeT5cbiAgICAgICAgICAgIC8vIC88cmV0dXJucyB0eXBlPVwiTW9tZW50XCI+ZGF0ZS5jbG9uZSgpPC9yZXR1cm5zPlxuICAgICAgICAgICAgLy8gLzwvc2lnbmF0dXJlPlxuICAgICAgICAgICAgLy8gLzxzaWduYXR1cmU+XG4gICAgICAgICAgICAvLyAvPHN1bW1hcnk+V2lsbCBzZXQgdGhlIHBpY2tlcidzIGluaXRhbCBkYXRlLiBJZiBhIGJvb2xlYW46ZmFsc2UgdmFsdWUgaXMgcGFzc2VkIHRoZSBvcHRpb25zLmRlZmF1bHREYXRlIHBhcmFtZXRlciBpcyBjbGVhcmVkLjwvc3VtbWFyeT5cbiAgICAgICAgICAgIC8vIC88cGFyYW0gbmFtZT1cImRlZmF1bHREYXRlXCIgbG9jaWQ9XCIkLmZuLmRhdGV0aW1lcGlja2VyLmRlZmF1bHREYXRlX3A6ZGVmYXVsdERhdGVcIj5UYWtlcyBhIHN0cmluZywgRGF0ZSwgbW9tZW50LCBib29sZWFuOmZhbHNlPC9wYXJhbT5cbiAgICAgICAgICAgIC8vIC88L3NpZ25hdHVyZT5cbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMuZGVmYXVsdERhdGUgPyBvcHRpb25zLmRlZmF1bHREYXRlLmNsb25lKCkgOiBvcHRpb25zLmRlZmF1bHREYXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFkZWZhdWx0RGF0ZSkge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMuZGVmYXVsdERhdGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGRlZmF1bHREYXRlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGlmIChkZWZhdWx0RGF0ZSA9PT0gJ25vdycgfHwgZGVmYXVsdERhdGUgPT09ICdtb21lbnQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHREYXRlID0gZ2V0TW9tZW50KCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdERhdGUgPSBnZXRNb21lbnQoZGVmYXVsdERhdGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmFyIHBhcnNlZERhdGUgPSBwYXJzZUlucHV0RGF0ZShkZWZhdWx0RGF0ZSk7XG4gICAgICAgICAgICBpZiAoIXBhcnNlZERhdGUuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignZGVmYXVsdERhdGUoKSBDb3VsZCBub3QgcGFyc2UgZGF0ZSBwYXJhbWV0ZXI6ICcgKyBkZWZhdWx0RGF0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWlzVmFsaWQocGFyc2VkRGF0ZSkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdkZWZhdWx0RGF0ZSgpIGRhdGUgcGFzc2VkIGlzIGludmFsaWQgYWNjb3JkaW5nIHRvIGNvbXBvbmVudCBzZXR1cCB2YWxpZGF0aW9ucycpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvcHRpb25zLmRlZmF1bHREYXRlID0gcGFyc2VkRGF0ZTtcblxuICAgICAgICAgICAgaWYgKChvcHRpb25zLmRlZmF1bHREYXRlICYmIG9wdGlvbnMuaW5saW5lKSB8fCBpbnB1dC52YWwoKS50cmltKCkgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgc2V0VmFsdWUob3B0aW9ucy5kZWZhdWx0RGF0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5sb2NhbGUgPSBmdW5jdGlvbihsb2NhbGUpIHtcbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMubG9jYWxlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIW1vbWVudC5sb2NhbGVEYXRhKGxvY2FsZSkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdsb2NhbGUoKSBsb2NhbGUgJyArIGxvY2FsZSArICcgaXMgbm90IGxvYWRlZCBmcm9tIG1vbWVudCBsb2NhbGVzIScpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvcHRpb25zLmxvY2FsZSA9IGxvY2FsZTtcbiAgICAgICAgICAgIGRhdGUubG9jYWxlKG9wdGlvbnMubG9jYWxlKTtcbiAgICAgICAgICAgIHZpZXdEYXRlLmxvY2FsZShvcHRpb25zLmxvY2FsZSk7XG5cbiAgICAgICAgICAgIGlmIChhY3R1YWxGb3JtYXQpIHtcbiAgICAgICAgICAgICAgICBpbml0Rm9ybWF0dGluZygpOyAvLyByZWluaXQgZm9ybWF0dGluZ1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHdpZGdldCkge1xuICAgICAgICAgICAgICAgIGhpZGUoKTtcbiAgICAgICAgICAgICAgICBzaG93KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5zdGVwcGluZyA9IGZ1bmN0aW9uKHN0ZXBwaW5nKSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLnN0ZXBwaW5nO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzdGVwcGluZyA9IHBhcnNlSW50KHN0ZXBwaW5nLCAxMCk7XG4gICAgICAgICAgICBpZiAoaXNOYU4oc3RlcHBpbmcpIHx8IHN0ZXBwaW5nIDwgMSkge1xuICAgICAgICAgICAgICAgIHN0ZXBwaW5nID0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wdGlvbnMuc3RlcHBpbmcgPSBzdGVwcGluZztcbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLnVzZUN1cnJlbnQgPSBmdW5jdGlvbih1c2VDdXJyZW50KSB7XG4gICAgICAgICAgICB2YXIgdXNlQ3VycmVudE9wdGlvbnMgPSBbJ3llYXInLCAnbW9udGgnLCAnZGF5JywgJ2hvdXInLCAnbWludXRlJ107XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLnVzZUN1cnJlbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICgodHlwZW9mIHVzZUN1cnJlbnQgIT09ICdib29sZWFuJykgJiYgKHR5cGVvZiB1c2VDdXJyZW50ICE9PSAnc3RyaW5nJykpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd1c2VDdXJyZW50KCkgZXhwZWN0cyBhIGJvb2xlYW4gb3Igc3RyaW5nIHBhcmFtZXRlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiB1c2VDdXJyZW50ID09PSAnc3RyaW5nJyAmJiB1c2VDdXJyZW50T3B0aW9ucy5pbmRleE9mKHVzZUN1cnJlbnQudG9Mb3dlckNhc2UoKSkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigndXNlQ3VycmVudCgpIGV4cGVjdHMgYSBzdHJpbmcgcGFyYW1ldGVyIG9mICcgKyB1c2VDdXJyZW50T3B0aW9ucy5qb2luKCcsICcpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wdGlvbnMudXNlQ3VycmVudCA9IHVzZUN1cnJlbnQ7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5jb2xsYXBzZSA9IGZ1bmN0aW9uKGNvbGxhcHNlKSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLmNvbGxhcHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNvbGxhcHNlICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdjb2xsYXBzZSgpIGV4cGVjdHMgYSBib29sZWFuIHBhcmFtZXRlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuY29sbGFwc2UgPT09IGNvbGxhcHNlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wdGlvbnMuY29sbGFwc2UgPSBjb2xsYXBzZTtcbiAgICAgICAgICAgIGlmICh3aWRnZXQpIHtcbiAgICAgICAgICAgICAgICBoaWRlKCk7XG4gICAgICAgICAgICAgICAgc2hvdygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIuaWNvbnMgPSBmdW5jdGlvbihpY29ucykge1xuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJC5leHRlbmQoe30sIG9wdGlvbnMuaWNvbnMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIShpY29ucyBpbnN0YW5jZW9mIE9iamVjdCkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdpY29ucygpIGV4cGVjdHMgcGFyYW1ldGVyIHRvIGJlIGFuIE9iamVjdCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJC5leHRlbmQob3B0aW9ucy5pY29ucywgaWNvbnMpO1xuICAgICAgICAgICAgaWYgKHdpZGdldCkge1xuICAgICAgICAgICAgICAgIGhpZGUoKTtcbiAgICAgICAgICAgICAgICBzaG93KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci50b29sdGlwcyA9IGZ1bmN0aW9uKHRvb2x0aXBzKSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAkLmV4dGVuZCh7fSwgb3B0aW9ucy50b29sdGlwcyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghKHRvb2x0aXBzIGluc3RhbmNlb2YgT2JqZWN0KSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3Rvb2x0aXBzKCkgZXhwZWN0cyBwYXJhbWV0ZXIgdG8gYmUgYW4gT2JqZWN0Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkLmV4dGVuZChvcHRpb25zLnRvb2x0aXBzLCB0b29sdGlwcyk7XG4gICAgICAgICAgICBpZiAod2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgaGlkZSgpO1xuICAgICAgICAgICAgICAgIHNob3coKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLnVzZVN0cmljdCA9IGZ1bmN0aW9uKHVzZVN0cmljdCkge1xuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy51c2VTdHJpY3Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgdXNlU3RyaWN0ICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd1c2VTdHJpY3QoKSBleHBlY3RzIGEgYm9vbGVhbiBwYXJhbWV0ZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wdGlvbnMudXNlU3RyaWN0ID0gdXNlU3RyaWN0O1xuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIuc2lkZUJ5U2lkZSA9IGZ1bmN0aW9uKHNpZGVCeVNpZGUpIHtcbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMuc2lkZUJ5U2lkZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBzaWRlQnlTaWRlICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdzaWRlQnlTaWRlKCkgZXhwZWN0cyBhIGJvb2xlYW4gcGFyYW1ldGVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcHRpb25zLnNpZGVCeVNpZGUgPSBzaWRlQnlTaWRlO1xuICAgICAgICAgICAgaWYgKHdpZGdldCkge1xuICAgICAgICAgICAgICAgIGhpZGUoKTtcbiAgICAgICAgICAgICAgICBzaG93KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci52aWV3TW9kZSA9IGZ1bmN0aW9uKHZpZXdNb2RlKSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLnZpZXdNb2RlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHZpZXdNb2RlICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3ZpZXdNb2RlKCkgZXhwZWN0cyBhIHN0cmluZyBwYXJhbWV0ZXInKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHZpZXdNb2Rlcy5pbmRleE9mKHZpZXdNb2RlKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd2aWV3TW9kZSgpIHBhcmFtZXRlciBtdXN0IGJlIG9uZSBvZiAoJyArIHZpZXdNb2Rlcy5qb2luKCcsICcpICsgJykgdmFsdWUnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb3B0aW9ucy52aWV3TW9kZSA9IHZpZXdNb2RlO1xuICAgICAgICAgICAgY3VycmVudFZpZXdNb2RlID0gTWF0aC5tYXgodmlld01vZGVzLmluZGV4T2Yodmlld01vZGUpLCBtaW5WaWV3TW9kZU51bWJlcik7XG5cbiAgICAgICAgICAgIHNob3dNb2RlKCk7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci50b29sYmFyUGxhY2VtZW50ID0gZnVuY3Rpb24odG9vbGJhclBsYWNlbWVudCkge1xuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy50b29sYmFyUGxhY2VtZW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHRvb2xiYXJQbGFjZW1lbnQgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigndG9vbGJhclBsYWNlbWVudCgpIGV4cGVjdHMgYSBzdHJpbmcgcGFyYW1ldGVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodG9vbGJhclBsYWNlbWVudHMuaW5kZXhPZih0b29sYmFyUGxhY2VtZW50KSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd0b29sYmFyUGxhY2VtZW50KCkgcGFyYW1ldGVyIG11c3QgYmUgb25lIG9mICgnICsgdG9vbGJhclBsYWNlbWVudHMuam9pbignLCAnKSArICcpIHZhbHVlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcHRpb25zLnRvb2xiYXJQbGFjZW1lbnQgPSB0b29sYmFyUGxhY2VtZW50O1xuXG4gICAgICAgICAgICBpZiAod2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgaGlkZSgpO1xuICAgICAgICAgICAgICAgIHNob3coKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLndpZGdldFBvc2l0aW9uaW5nID0gZnVuY3Rpb24od2lkZ2V0UG9zaXRpb25pbmcpIHtcbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICQuZXh0ZW5kKHt9LCBvcHRpb25zLndpZGdldFBvc2l0aW9uaW5nKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCh7fSkudG9TdHJpbmcuY2FsbCh3aWRnZXRQb3NpdGlvbmluZykgIT09ICdbb2JqZWN0IE9iamVjdF0nKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignd2lkZ2V0UG9zaXRpb25pbmcoKSBleHBlY3RzIGFuIG9iamVjdCB2YXJpYWJsZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHdpZGdldFBvc2l0aW9uaW5nLmhvcml6b250YWwpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHdpZGdldFBvc2l0aW9uaW5nLmhvcml6b250YWwgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3dpZGdldFBvc2l0aW9uaW5nKCkgaG9yaXpvbnRhbCB2YXJpYWJsZSBtdXN0IGJlIGEgc3RyaW5nJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHdpZGdldFBvc2l0aW9uaW5nLmhvcml6b250YWwgPSB3aWRnZXRQb3NpdGlvbmluZy5ob3Jpem9udGFsLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgaWYgKGhvcml6b250YWxNb2Rlcy5pbmRleE9mKHdpZGdldFBvc2l0aW9uaW5nLmhvcml6b250YWwpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd3aWRnZXRQb3NpdGlvbmluZygpIGV4cGVjdHMgaG9yaXpvbnRhbCBwYXJhbWV0ZXIgdG8gYmUgb25lIG9mICgnICsgaG9yaXpvbnRhbE1vZGVzLmpvaW4oJywgJykgKyAnKScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBvcHRpb25zLndpZGdldFBvc2l0aW9uaW5nLmhvcml6b250YWwgPSB3aWRnZXRQb3NpdGlvbmluZy5ob3Jpem9udGFsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHdpZGdldFBvc2l0aW9uaW5nLnZlcnRpY2FsKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB3aWRnZXRQb3NpdGlvbmluZy52ZXJ0aWNhbCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignd2lkZ2V0UG9zaXRpb25pbmcoKSB2ZXJ0aWNhbCB2YXJpYWJsZSBtdXN0IGJlIGEgc3RyaW5nJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHdpZGdldFBvc2l0aW9uaW5nLnZlcnRpY2FsID0gd2lkZ2V0UG9zaXRpb25pbmcudmVydGljYWwudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICBpZiAodmVydGljYWxNb2Rlcy5pbmRleE9mKHdpZGdldFBvc2l0aW9uaW5nLnZlcnRpY2FsKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignd2lkZ2V0UG9zaXRpb25pbmcoKSBleHBlY3RzIHZlcnRpY2FsIHBhcmFtZXRlciB0byBiZSBvbmUgb2YgKCcgKyB2ZXJ0aWNhbE1vZGVzLmpvaW4oJywgJykgKyAnKScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBvcHRpb25zLndpZGdldFBvc2l0aW9uaW5nLnZlcnRpY2FsID0gd2lkZ2V0UG9zaXRpb25pbmcudmVydGljYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB1cGRhdGUoKTtcbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLmNhbGVuZGFyV2Vla3MgPSBmdW5jdGlvbihjYWxlbmRhcldlZWtzKSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLmNhbGVuZGFyV2Vla3M7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2FsZW5kYXJXZWVrcyAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignY2FsZW5kYXJXZWVrcygpIGV4cGVjdHMgcGFyYW1ldGVyIHRvIGJlIGEgYm9vbGVhbiB2YWx1ZScpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvcHRpb25zLmNhbGVuZGFyV2Vla3MgPSBjYWxlbmRhcldlZWtzO1xuICAgICAgICAgICAgdXBkYXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5zaG93VG9kYXlCdXR0b24gPSBmdW5jdGlvbihzaG93VG9kYXlCdXR0b24pIHtcbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMuc2hvd1RvZGF5QnV0dG9uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHNob3dUb2RheUJ1dHRvbiAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignc2hvd1RvZGF5QnV0dG9uKCkgZXhwZWN0cyBhIGJvb2xlYW4gcGFyYW1ldGVyJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG9wdGlvbnMuc2hvd1RvZGF5QnV0dG9uID0gc2hvd1RvZGF5QnV0dG9uO1xuICAgICAgICAgICAgaWYgKHdpZGdldCkge1xuICAgICAgICAgICAgICAgIGhpZGUoKTtcbiAgICAgICAgICAgICAgICBzaG93KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5zaG93Q2xlYXIgPSBmdW5jdGlvbihzaG93Q2xlYXIpIHtcbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMuc2hvd0NsZWFyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHNob3dDbGVhciAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignc2hvd0NsZWFyKCkgZXhwZWN0cyBhIGJvb2xlYW4gcGFyYW1ldGVyJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG9wdGlvbnMuc2hvd0NsZWFyID0gc2hvd0NsZWFyO1xuICAgICAgICAgICAgaWYgKHdpZGdldCkge1xuICAgICAgICAgICAgICAgIGhpZGUoKTtcbiAgICAgICAgICAgICAgICBzaG93KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci53aWRnZXRQYXJlbnQgPSBmdW5jdGlvbih3aWRnZXRQYXJlbnQpIHtcbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMud2lkZ2V0UGFyZW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHdpZGdldFBhcmVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICB3aWRnZXRQYXJlbnQgPSAkKHdpZGdldFBhcmVudCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh3aWRnZXRQYXJlbnQgIT09IG51bGwgJiYgKHR5cGVvZiB3aWRnZXRQYXJlbnQgIT09ICdzdHJpbmcnICYmICEod2lkZ2V0UGFyZW50IGluc3RhbmNlb2YgJCkpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignd2lkZ2V0UGFyZW50KCkgZXhwZWN0cyBhIHN0cmluZyBvciBhIGpRdWVyeSBvYmplY3QgcGFyYW1ldGVyJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG9wdGlvbnMud2lkZ2V0UGFyZW50ID0gd2lkZ2V0UGFyZW50O1xuICAgICAgICAgICAgaWYgKHdpZGdldCkge1xuICAgICAgICAgICAgICAgIGhpZGUoKTtcbiAgICAgICAgICAgICAgICBzaG93KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5rZWVwT3BlbiA9IGZ1bmN0aW9uKGtlZXBPcGVuKSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLmtlZXBPcGVuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGtlZXBPcGVuICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdrZWVwT3BlbigpIGV4cGVjdHMgYSBib29sZWFuIHBhcmFtZXRlcicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvcHRpb25zLmtlZXBPcGVuID0ga2VlcE9wZW47XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5mb2N1c09uU2hvdyA9IGZ1bmN0aW9uKGZvY3VzT25TaG93KSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLmZvY3VzT25TaG93O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGZvY3VzT25TaG93ICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdmb2N1c09uU2hvdygpIGV4cGVjdHMgYSBib29sZWFuIHBhcmFtZXRlcicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvcHRpb25zLmZvY3VzT25TaG93ID0gZm9jdXNPblNob3c7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5pbmxpbmUgPSBmdW5jdGlvbihpbmxpbmUpIHtcbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMuaW5saW5lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGlubGluZSAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignaW5saW5lKCkgZXhwZWN0cyBhIGJvb2xlYW4gcGFyYW1ldGVyJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG9wdGlvbnMuaW5saW5lID0gaW5saW5lO1xuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIuY2xlYXIgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGNsZWFyKCk7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5rZXlCaW5kcyA9IGZ1bmN0aW9uKGtleUJpbmRzKSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLmtleUJpbmRzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvcHRpb25zLmtleUJpbmRzID0ga2V5QmluZHM7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5nZXRNb21lbnQgPSBmdW5jdGlvbihkKSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0TW9tZW50KGQpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5kZWJ1ZyA9IGZ1bmN0aW9uKGRlYnVnKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGRlYnVnICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdkZWJ1ZygpIGV4cGVjdHMgYSBib29sZWFuIHBhcmFtZXRlcicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvcHRpb25zLmRlYnVnID0gZGVidWc7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5hbGxvd0lucHV0VG9nZ2xlID0gZnVuY3Rpb24oYWxsb3dJbnB1dFRvZ2dsZSkge1xuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5hbGxvd0lucHV0VG9nZ2xlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGFsbG93SW5wdXRUb2dnbGUgIT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2FsbG93SW5wdXRUb2dnbGUoKSBleHBlY3RzIGEgYm9vbGVhbiBwYXJhbWV0ZXInKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb3B0aW9ucy5hbGxvd0lucHV0VG9nZ2xlID0gYWxsb3dJbnB1dFRvZ2dsZTtcbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgcGlja2VyLnNob3dDbG9zZSA9IGZ1bmN0aW9uKHNob3dDbG9zZSkge1xuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5zaG93Q2xvc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2Ygc2hvd0Nsb3NlICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdzaG93Q2xvc2UoKSBleHBlY3RzIGEgYm9vbGVhbiBwYXJhbWV0ZXInKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb3B0aW9ucy5zaG93Q2xvc2UgPSBzaG93Q2xvc2U7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5rZWVwSW52YWxpZCA9IGZ1bmN0aW9uKGtlZXBJbnZhbGlkKSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLmtlZXBJbnZhbGlkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGtlZXBJbnZhbGlkICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdrZWVwSW52YWxpZCgpIGV4cGVjdHMgYSBib29sZWFuIHBhcmFtZXRlcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3B0aW9ucy5rZWVwSW52YWxpZCA9IGtlZXBJbnZhbGlkO1xuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIuZGF0ZXBpY2tlcklucHV0ID0gZnVuY3Rpb24oZGF0ZXBpY2tlcklucHV0KSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLmRhdGVwaWNrZXJJbnB1dDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBkYXRlcGlja2VySW5wdXQgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignZGF0ZXBpY2tlcklucHV0KCkgZXhwZWN0cyBhIHN0cmluZyBwYXJhbWV0ZXInKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb3B0aW9ucy5kYXRlcGlja2VySW5wdXQgPSBkYXRlcGlja2VySW5wdXQ7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5wYXJzZUlucHV0RGF0ZSA9IGZ1bmN0aW9uKHBhcnNlSW5wdXREYXRlKSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zLnBhcnNlSW5wdXREYXRlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHBhcnNlSW5wdXREYXRlICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigncGFyc2VJbnB1dERhdGUoKSBzaG9sdWQgYmUgYXMgZnVuY3Rpb24nKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb3B0aW9ucy5wYXJzZUlucHV0RGF0ZSA9IHBhcnNlSW5wdXREYXRlO1xuXG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5kaXNhYmxlZFRpbWVJbnRlcnZhbHMgPSBmdW5jdGlvbihkaXNhYmxlZFRpbWVJbnRlcnZhbHMpIHtcbiAgICAgICAgICAgIC8vIC88c2lnbmF0dXJlIGhlbHBLZXl3b3JkPVwiJC5mbi5kYXRldGltZXBpY2tlci5kaXNhYmxlZFRpbWVJbnRlcnZhbHNcIj5cbiAgICAgICAgICAgIC8vIC88c3VtbWFyeT5SZXR1cm5zIGFuIGFycmF5IHdpdGggdGhlIGN1cnJlbnRseSBzZXQgZGlzYWJsZWQgZGF0ZXMgb24gdGhlIGNvbXBvbmVudC48L3N1bW1hcnk+XG4gICAgICAgICAgICAvLyAvPHJldHVybnMgdHlwZT1cImFycmF5XCI+b3B0aW9ucy5kaXNhYmxlZFRpbWVJbnRlcnZhbHM8L3JldHVybnM+XG4gICAgICAgICAgICAvLyAvPC9zaWduYXR1cmU+XG4gICAgICAgICAgICAvLyAvPHNpZ25hdHVyZT5cbiAgICAgICAgICAgIC8vIC88c3VtbWFyeT5TZXR0aW5nIHRoaXMgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIG9wdGlvbnMubWluRGF0ZSwgb3B0aW9ucy5tYXhEYXRlIGNvbmZpZ3VyYXRpb24uIEFsc28gY2FsbGluZyB0aGlzIGZ1bmN0aW9uIHJlbW92ZXMgdGhlIGNvbmZpZ3VyYXRpb24gb2ZcbiAgICAgICAgICAgIC8vIC9vcHRpb25zLmVuYWJsZWREYXRlcyBpZiBzdWNoIGV4aXN0Ljwvc3VtbWFyeT5cbiAgICAgICAgICAgIC8vIC88cGFyYW0gbmFtZT1cImRhdGVzXCIgbG9jaWQ9XCIkLmZuLmRhdGV0aW1lcGlja2VyLmRpc2FibGVkVGltZUludGVydmFsc19wOmRhdGVzXCI+VGFrZXMgYW4gWyBzdHJpbmcgb3IgRGF0ZSBvciBtb21lbnQgXSBvZiB2YWx1ZXMgYW5kIGFsbG93cyB0aGUgdXNlciB0byBzZWxlY3Qgb25seSBmcm9tIHRob3NlIGRheXMuPC9wYXJhbT5cbiAgICAgICAgICAgIC8vIC88L3NpZ25hdHVyZT5cbiAgICAgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChvcHRpb25zLmRpc2FibGVkVGltZUludGVydmFscyA/ICQuZXh0ZW5kKHt9LCBvcHRpb25zLmRpc2FibGVkVGltZUludGVydmFscykgOiBvcHRpb25zLmRpc2FibGVkVGltZUludGVydmFscyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghZGlzYWJsZWRUaW1lSW50ZXJ2YWxzKSB7XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5kaXNhYmxlZFRpbWVJbnRlcnZhbHMgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB1cGRhdGUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCEoZGlzYWJsZWRUaW1lSW50ZXJ2YWxzIGluc3RhbmNlb2YgQXJyYXkpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignZGlzYWJsZWRUaW1lSW50ZXJ2YWxzKCkgZXhwZWN0cyBhbiBhcnJheSBwYXJhbWV0ZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wdGlvbnMuZGlzYWJsZWRUaW1lSW50ZXJ2YWxzID0gZGlzYWJsZWRUaW1lSW50ZXJ2YWxzO1xuICAgICAgICAgICAgdXBkYXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuXG4gICAgICAgIHBpY2tlci5kaXNhYmxlZEhvdXJzID0gZnVuY3Rpb24oaG91cnMpIHtcbiAgICAgICAgICAgIC8vIC88c2lnbmF0dXJlIGhlbHBLZXl3b3JkPVwiJC5mbi5kYXRldGltZXBpY2tlci5kaXNhYmxlZEhvdXJzXCI+XG4gICAgICAgICAgICAvLyAvPHN1bW1hcnk+UmV0dXJucyBhbiBhcnJheSB3aXRoIHRoZSBjdXJyZW50bHkgc2V0IGRpc2FibGVkIGhvdXJzIG9uIHRoZSBjb21wb25lbnQuPC9zdW1tYXJ5PlxuICAgICAgICAgICAgLy8gLzxyZXR1cm5zIHR5cGU9XCJhcnJheVwiPm9wdGlvbnMuZGlzYWJsZWRIb3VyczwvcmV0dXJucz5cbiAgICAgICAgICAgIC8vIC88L3NpZ25hdHVyZT5cbiAgICAgICAgICAgIC8vIC88c2lnbmF0dXJlPlxuICAgICAgICAgICAgLy8gLzxzdW1tYXJ5PlNldHRpbmcgdGhpcyB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgb3B0aW9ucy5taW5EYXRlLCBvcHRpb25zLm1heERhdGUgY29uZmlndXJhdGlvbi4gQWxzbyBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gcmVtb3ZlcyB0aGUgY29uZmlndXJhdGlvbiBvZlxuICAgICAgICAgICAgLy8gL29wdGlvbnMuZW5hYmxlZEhvdXJzIGlmIHN1Y2ggZXhpc3QuPC9zdW1tYXJ5PlxuICAgICAgICAgICAgLy8gLzxwYXJhbSBuYW1lPVwiaG91cnNcIiBsb2NpZD1cIiQuZm4uZGF0ZXRpbWVwaWNrZXIuZGlzYWJsZWRIb3Vyc19wOmhvdXJzXCI+VGFrZXMgYW4gWyBpbnQgXSBvZiB2YWx1ZXMgYW5kIGRpc2FsbG93cyB0aGUgdXNlciB0byBzZWxlY3Qgb25seSBmcm9tIHRob3NlIGhvdXJzLjwvcGFyYW0+XG4gICAgICAgICAgICAvLyAvPC9zaWduYXR1cmU+XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAob3B0aW9ucy5kaXNhYmxlZEhvdXJzID8gJC5leHRlbmQoe30sIG9wdGlvbnMuZGlzYWJsZWRIb3VycykgOiBvcHRpb25zLmRpc2FibGVkSG91cnMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIWhvdXJzKSB7XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5kaXNhYmxlZEhvdXJzID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdXBkYXRlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghKGhvdXJzIGluc3RhbmNlb2YgQXJyYXkpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignZGlzYWJsZWRIb3VycygpIGV4cGVjdHMgYW4gYXJyYXkgcGFyYW1ldGVyJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvcHRpb25zLmRpc2FibGVkSG91cnMgPSBpbmRleEdpdmVuSG91cnMoaG91cnMpO1xuICAgICAgICAgICAgb3B0aW9ucy5lbmFibGVkSG91cnMgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLnVzZUN1cnJlbnQgJiYgIW9wdGlvbnMua2VlcEludmFsaWQpIHtcbiAgICAgICAgICAgICAgICB2YXIgdHJpZXMgPSAwO1xuICAgICAgICAgICAgICAgIHdoaWxlICghaXNWYWxpZChkYXRlLCAnaCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGUuYWRkKDEsICdoJyk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0cmllcyA9PT0gMjQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVHJpZWQgMjQgdGltZXMgdG8gZmluZCBhIHZhbGlkIGRhdGUnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0cmllcysrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzZXRWYWx1ZShkYXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHVwZGF0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgfTtcblxuICAgICAgICBwaWNrZXIuZW5hYmxlZEhvdXJzID0gZnVuY3Rpb24oaG91cnMpIHtcbiAgICAgICAgICAgIC8vIC88c2lnbmF0dXJlIGhlbHBLZXl3b3JkPVwiJC5mbi5kYXRldGltZXBpY2tlci5lbmFibGVkSG91cnNcIj5cbiAgICAgICAgICAgIC8vIC88c3VtbWFyeT5SZXR1cm5zIGFuIGFycmF5IHdpdGggdGhlIGN1cnJlbnRseSBzZXQgZW5hYmxlZCBob3VycyBvbiB0aGUgY29tcG9uZW50Ljwvc3VtbWFyeT5cbiAgICAgICAgICAgIC8vIC88cmV0dXJucyB0eXBlPVwiYXJyYXlcIj5vcHRpb25zLmVuYWJsZWRIb3VyczwvcmV0dXJucz5cbiAgICAgICAgICAgIC8vIC88L3NpZ25hdHVyZT5cbiAgICAgICAgICAgIC8vIC88c2lnbmF0dXJlPlxuICAgICAgICAgICAgLy8gLzxzdW1tYXJ5PlNldHRpbmcgdGhpcyB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgb3B0aW9ucy5taW5EYXRlLCBvcHRpb25zLm1heERhdGUgY29uZmlndXJhdGlvbi4gQWxzbyBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gcmVtb3ZlcyB0aGUgY29uZmlndXJhdGlvbiBvZiBvcHRpb25zLmRpc2FibGVkSG91cnMgaWYgc3VjaCBleGlzdC48L3N1bW1hcnk+XG4gICAgICAgICAgICAvLyAvPHBhcmFtIG5hbWU9XCJob3Vyc1wiIGxvY2lkPVwiJC5mbi5kYXRldGltZXBpY2tlci5lbmFibGVkSG91cnNfcDpob3Vyc1wiPlRha2VzIGFuIFsgaW50IF0gb2YgdmFsdWVzIGFuZCBhbGxvd3MgdGhlIHVzZXIgdG8gc2VsZWN0IG9ubHkgZnJvbSB0aG9zZSBob3Vycy48L3BhcmFtPlxuICAgICAgICAgICAgLy8gLzwvc2lnbmF0dXJlPlxuICAgICAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKG9wdGlvbnMuZW5hYmxlZEhvdXJzID8gJC5leHRlbmQoe30sIG9wdGlvbnMuZW5hYmxlZEhvdXJzKSA6IG9wdGlvbnMuZW5hYmxlZEhvdXJzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFob3Vycykge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMuZW5hYmxlZEhvdXJzID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdXBkYXRlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBpY2tlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghKGhvdXJzIGluc3RhbmNlb2YgQXJyYXkpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignZW5hYmxlZEhvdXJzKCkgZXhwZWN0cyBhbiBhcnJheSBwYXJhbWV0ZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wdGlvbnMuZW5hYmxlZEhvdXJzID0gaW5kZXhHaXZlbkhvdXJzKGhvdXJzKTtcbiAgICAgICAgICAgIG9wdGlvbnMuZGlzYWJsZWRIb3VycyA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMudXNlQ3VycmVudCAmJiAhb3B0aW9ucy5rZWVwSW52YWxpZCkge1xuICAgICAgICAgICAgICAgIHZhciB0cmllcyA9IDA7XG4gICAgICAgICAgICAgICAgd2hpbGUgKCFpc1ZhbGlkKGRhdGUsICdoJykpIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0ZS5hZGQoMSwgJ2gnKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRyaWVzID09PSAyNCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUcmllZCAyNCB0aW1lcyB0byBmaW5kIGEgdmFsaWQgZGF0ZScpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRyaWVzKys7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNldFZhbHVlKGRhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdXBkYXRlKCk7XG4gICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICB9O1xuICAgICAgICAvKipcbiAgICAgICAgICogUmV0dXJucyB0aGUgY29tcG9uZW50J3MgbW9kZWwgY3VycmVudCB2aWV3RGF0ZSwgYSBtb21lbnQgb2JqZWN0IG9yIG51bGwgaWYgbm90IHNldC4gUGFzc2luZyBhIG51bGwgdmFsdWUgdW5zZXRzIHRoZSBjb21wb25lbnRzIG1vZGVsIGN1cnJlbnQgbW9tZW50LiBQYXJzaW5nIG9mIHRoZSBuZXdEYXRlIHBhcmFtZXRlciBpcyBtYWRlIHVzaW5nIG1vbWVudCBsaWJyYXJ5IHdpdGggdGhlIG9wdGlvbnMuZm9ybWF0IGFuZCBvcHRpb25zLnVzZVN0cmljdCBjb21wb25lbnRzIGNvbmZpZ3VyYXRpb24uXG4gICAgICAgICAqIEBwYXJhbSB7VGFrZXMgc3RyaW5nLCB2aWV3RGF0ZSwgbW9tZW50LCBudWxsIHBhcmFtZXRlci59IG5ld0RhdGVcbiAgICAgICAgICogQHJldHVybnMge3ZpZXdEYXRlLmNsb25lKCl9XG4gICAgICAgICAqL1xuICAgICAgICBwaWNrZXIudmlld0RhdGUgPSBmdW5jdGlvbihuZXdEYXRlKSB7XG4gICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2aWV3RGF0ZS5jbG9uZSgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIW5ld0RhdGUpIHtcbiAgICAgICAgICAgICAgICB2aWV3RGF0ZSA9IGRhdGUuY2xvbmUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIG5ld0RhdGUgIT09ICdzdHJpbmcnICYmICFtb21lbnQuaXNNb21lbnQobmV3RGF0ZSkgJiYgIShuZXdEYXRlIGluc3RhbmNlb2YgRGF0ZSkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCd2aWV3RGF0ZSgpIHBhcmFtZXRlciBtdXN0IGJlIG9uZSBvZiBbc3RyaW5nLCBtb21lbnQgb3IgRGF0ZV0nKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmlld0RhdGUgPSBwYXJzZUlucHV0RGF0ZShuZXdEYXRlKTtcbiAgICAgICAgICAgIHZpZXdVcGRhdGUoKTtcbiAgICAgICAgICAgIHJldHVybiBwaWNrZXI7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gaW5pdGlhbGl6aW5nIGVsZW1lbnQgYW5kIGNvbXBvbmVudCBhdHRyaWJ1dGVzXG4gICAgICAgIGlmIChlbGVtZW50LmlzKCdpbnB1dCcpKSB7XG4gICAgICAgICAgICBpbnB1dCA9IGVsZW1lbnQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpbnB1dCA9IGVsZW1lbnQuZmluZChvcHRpb25zLmRhdGVwaWNrZXJJbnB1dCk7XG4gICAgICAgICAgICBpZiAoaW5wdXQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgaW5wdXQgPSBlbGVtZW50LmZpbmQoJ2lucHV0Jyk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFpbnB1dC5pcygnaW5wdXQnKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ1NTIGNsYXNzIFwiJyArIG9wdGlvbnMuZGF0ZXBpY2tlcklucHV0ICsgJ1wiIGNhbm5vdCBiZSBhcHBsaWVkIHRvIG5vbiBpbnB1dCBlbGVtZW50Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZWxlbWVudC5oYXNDbGFzcygnaW5wdXQtZ3JvdXAnKSkge1xuICAgICAgICAgICAgLy8gaW4gY2FzZSB0aGVyZSBpcyBtb3JlIHRoZW4gb25lICdpbnB1dC1ncm91cC1hZGRvbicgSXNzdWUgIzQ4XG4gICAgICAgICAgICBpZiAoZWxlbWVudC5maW5kKCcuZGF0ZXBpY2tlcmJ1dHRvbicpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudCA9IGVsZW1lbnQuZmluZCgnLmlucHV0LWdyb3VwLWFkZG9uJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudCA9IGVsZW1lbnQuZmluZCgnLmRhdGVwaWNrZXJidXR0b24nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghb3B0aW9ucy5pbmxpbmUgJiYgIWlucHV0LmlzKCdpbnB1dCcpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBpbml0aWFsaXplIERhdGVUaW1lUGlja2VyIHdpdGhvdXQgYW4gaW5wdXQgZWxlbWVudCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2V0IGRlZmF1bHRzIGZvciBkYXRlIGhlcmUgbm93IGluc3RlYWQgb2YgaW4gdmFyIGRlY2xhcmF0aW9uXG4gICAgICAgIGRhdGUgPSBnZXRNb21lbnQoKTtcbiAgICAgICAgdmlld0RhdGUgPSBkYXRlLmNsb25lKCk7XG5cbiAgICAgICAgJC5leHRlbmQodHJ1ZSwgb3B0aW9ucywgZGF0YVRvT3B0aW9ucygpKTtcblxuICAgICAgICBwaWNrZXIub3B0aW9ucyhvcHRpb25zKTtcblxuICAgICAgICBpbml0Rm9ybWF0dGluZygpO1xuXG4gICAgICAgIGF0dGFjaERhdGVQaWNrZXJFbGVtZW50RXZlbnRzKCk7XG5cbiAgICAgICAgaWYgKGlucHV0LnByb3AoJ2Rpc2FibGVkJykpIHtcbiAgICAgICAgICAgIHBpY2tlci5kaXNhYmxlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlucHV0LmlzKCdpbnB1dCcpICYmIGlucHV0LnZhbCgpLnRyaW0oKS5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICAgIHNldFZhbHVlKHBhcnNlSW5wdXREYXRlKGlucHV0LnZhbCgpLnRyaW0oKSkpO1xuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMuZGVmYXVsdERhdGUgJiYgaW5wdXQuYXR0cigncGxhY2Vob2xkZXInKSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBzZXRWYWx1ZShvcHRpb25zLmRlZmF1bHREYXRlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5pbmxpbmUpIHtcbiAgICAgICAgICAgIHNob3coKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGlja2VyO1xuICAgIH07XG5cbiAgICAvKiogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiBqUXVlcnkgcGx1Z2luIGNvbnN0cnVjdG9yIGFuZCBkZWZhdWx0cyBvYmplY3RcbiAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIC8qKlxuICAgICAqIFNlZSAoaHR0cDovL2pxdWVyeS5jb20vKS5cbiAgICAgKiBAbmFtZSBqUXVlcnlcbiAgICAgKiBAY2xhc3NcbiAgICAgKiBTZWUgdGhlIGpRdWVyeSBMaWJyYXJ5ICAoaHR0cDovL2pxdWVyeS5jb20vKSBmb3IgZnVsbCBkZXRhaWxzLiAgVGhpcyBqdXN0XG4gICAgICogZG9jdW1lbnRzIHRoZSBmdW5jdGlvbiBhbmQgY2xhc3NlcyB0aGF0IGFyZSBhZGRlZCB0byBqUXVlcnkgYnkgdGhpcyBwbHVnLWluLlxuICAgICAqL1xuICAgIC8qKlxuICAgICAqIFNlZSAoaHR0cDovL2pxdWVyeS5jb20vKVxuICAgICAqIEBuYW1lIGZuXG4gICAgICogQGNsYXNzXG4gICAgICogU2VlIHRoZSBqUXVlcnkgTGlicmFyeSAgKGh0dHA6Ly9qcXVlcnkuY29tLykgZm9yIGZ1bGwgZGV0YWlscy4gIFRoaXMganVzdFxuICAgICAqIGRvY3VtZW50cyB0aGUgZnVuY3Rpb24gYW5kIGNsYXNzZXMgdGhhdCBhcmUgYWRkZWQgdG8galF1ZXJ5IGJ5IHRoaXMgcGx1Zy1pbi5cbiAgICAgKiBAbWVtYmVyT2YgalF1ZXJ5XG4gICAgICovXG4gICAgLyoqXG4gICAgICogU2hvdyBjb21tZW50c1xuICAgICAqIEBjbGFzcyBkYXRldGltZXBpY2tlclxuICAgICAqIEBtZW1iZXJPZiBqUXVlcnkuZm5cbiAgICAgKi9cbiAgICAkLmZuLmRhdGV0aW1lcGlja2VyID0gZnVuY3Rpb24ob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICAgICAgICB2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7XG4gICAgICAgIHZhciBpc0luc3RhbmNlID0gdHJ1ZTtcbiAgICAgICAgdmFyIHRoaXNNZXRob2RzID0gWydkZXN0cm95JywgJ2hpZGUnLCAnc2hvdycsICd0b2dnbGUnXTtcbiAgICAgICAgdmFyIHJldHVyblZhbHVlO1xuXG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyICR0aGlzID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICB2YXIgX29wdGlvbnM7XG4gICAgICAgICAgICAgICAgaWYgKCEkdGhpcy5kYXRhKCdEYXRlVGltZVBpY2tlcicpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSBhIHByaXZhdGUgY29weSBvZiB0aGUgZGVmYXVsdHMgb2JqZWN0XG4gICAgICAgICAgICAgICAgICAgIF9vcHRpb25zID0gJC5leHRlbmQodHJ1ZSwge30sICQuZm4uZGF0ZXRpbWVwaWNrZXIuZGVmYXVsdHMsIG9wdGlvbnMpO1xuICAgICAgICAgICAgICAgICAgICAkdGhpcy5kYXRhKCdEYXRlVGltZVBpY2tlcicsIGRhdGVUaW1lUGlja2VyKCR0aGlzLCBfb3B0aW9ucykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBvcHRpb25zID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdGhpcy5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciAkdGhpcyA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgdmFyIGluc3RhbmNlID0gJHRoaXMuZGF0YSgnRGF0ZVRpbWVQaWNrZXInKTtcbiAgICAgICAgICAgICAgICBpZiAoIWluc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignYm9vdHN0cmFwLWRhdGV0aW1lcGlja2VyKFwiJyArIG9wdGlvbnMgKyAnXCIpIG1ldGhvZCB3YXMgY2FsbGVkIG9uIGFuIGVsZW1lbnQgdGhhdCBpcyBub3QgdXNpbmcgRGF0ZVRpbWVQaWNrZXInKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IGluc3RhbmNlW29wdGlvbnNdLmFwcGx5KGluc3RhbmNlLCBhcmdzKTtcbiAgICAgICAgICAgICAgICBpc0luc3RhbmNlID0gcmV0dXJuVmFsdWUgPT09IGluc3RhbmNlO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmIChpc0luc3RhbmNlIHx8ICQuaW5BcnJheShvcHRpb25zLCB0aGlzTWV0aG9kcykgPiAtMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIGFyZ3VtZW50cyBmb3IgRGF0ZVRpbWVQaWNrZXI6ICcgKyBvcHRpb25zKTtcbiAgICB9O1xuXG4gICAgJC5mbi5kYXRldGltZXBpY2tlci5kZWZhdWx0cyA9IHtcbiAgICAgICAgdGltZVpvbmU6ICcnLFxuICAgICAgICBmb3JtYXQ6IGZhbHNlLFxuICAgICAgICBkYXlWaWV3SGVhZGVyRm9ybWF0OiAnTU1NTSBZWVlZJyxcbiAgICAgICAgZXh0cmFGb3JtYXRzOiBmYWxzZSxcbiAgICAgICAgc3RlcHBpbmc6IDEsXG4gICAgICAgIG1pbkRhdGU6IGZhbHNlLFxuICAgICAgICBtYXhEYXRlOiBmYWxzZSxcbiAgICAgICAgdXNlQ3VycmVudDogdHJ1ZSxcbiAgICAgICAgY29sbGFwc2U6IHRydWUsXG4gICAgICAgIGxvY2FsZTogbW9tZW50LmxvY2FsZSgpLFxuICAgICAgICBkZWZhdWx0RGF0ZTogZmFsc2UsXG4gICAgICAgIGRpc2FibGVkRGF0ZXM6IGZhbHNlLFxuICAgICAgICBlbmFibGVkRGF0ZXM6IGZhbHNlLFxuICAgICAgICBpY29uczoge1xuICAgICAgICAgICAgdGltZTogJ2dseXBoaWNvbiBnbHlwaGljb24tdGltZScsXG4gICAgICAgICAgICBkYXRlOiAnZ2x5cGhpY29uIGdseXBoaWNvbi1jYWxlbmRhcicsXG4gICAgICAgICAgICB1cDogJ2dseXBoaWNvbiBnbHlwaGljb24tY2hldnJvbi11cCcsXG4gICAgICAgICAgICBkb3duOiAnZ2x5cGhpY29uIGdseXBoaWNvbi1jaGV2cm9uLWRvd24nLFxuICAgICAgICAgICAgcHJldmlvdXM6ICdnbHlwaGljb24gZ2x5cGhpY29uLWNoZXZyb24tbGVmdCcsXG4gICAgICAgICAgICBuZXh0OiAnZ2x5cGhpY29uIGdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0JyxcbiAgICAgICAgICAgIHRvZGF5OiAnZ2x5cGhpY29uIGdseXBoaWNvbi1zY3JlZW5zaG90JyxcbiAgICAgICAgICAgIGNsZWFyOiAnZ2x5cGhpY29uIGdseXBoaWNvbi10cmFzaCcsXG4gICAgICAgICAgICBjbG9zZTogJ2dseXBoaWNvbiBnbHlwaGljb24tcmVtb3ZlJ1xuICAgICAgICB9LFxuICAgICAgICB0b29sdGlwczoge1xuICAgICAgICAgICAgdG9kYXk6ICdHbyB0byB0b2RheScsXG4gICAgICAgICAgICBjbGVhcjogJ0NsZWFyIHNlbGVjdGlvbicsXG4gICAgICAgICAgICBjbG9zZTogJ0Nsb3NlIHRoZSBwaWNrZXInLFxuICAgICAgICAgICAgc2VsZWN0TW9udGg6ICdTZWxlY3QgTW9udGgnLFxuICAgICAgICAgICAgcHJldk1vbnRoOiAnUHJldmlvdXMgTW9udGgnLFxuICAgICAgICAgICAgbmV4dE1vbnRoOiAnTmV4dCBNb250aCcsXG4gICAgICAgICAgICBzZWxlY3RZZWFyOiAnU2VsZWN0IFllYXInLFxuICAgICAgICAgICAgcHJldlllYXI6ICdQcmV2aW91cyBZZWFyJyxcbiAgICAgICAgICAgIG5leHRZZWFyOiAnTmV4dCBZZWFyJyxcbiAgICAgICAgICAgIHNlbGVjdERlY2FkZTogJ1NlbGVjdCBEZWNhZGUnLFxuICAgICAgICAgICAgcHJldkRlY2FkZTogJ1ByZXZpb3VzIERlY2FkZScsXG4gICAgICAgICAgICBuZXh0RGVjYWRlOiAnTmV4dCBEZWNhZGUnLFxuICAgICAgICAgICAgcHJldkNlbnR1cnk6ICdQcmV2aW91cyBDZW50dXJ5JyxcbiAgICAgICAgICAgIG5leHRDZW50dXJ5OiAnTmV4dCBDZW50dXJ5JyxcbiAgICAgICAgICAgIHBpY2tIb3VyOiAnUGljayBIb3VyJyxcbiAgICAgICAgICAgIGluY3JlbWVudEhvdXI6ICdJbmNyZW1lbnQgSG91cicsXG4gICAgICAgICAgICBkZWNyZW1lbnRIb3VyOiAnRGVjcmVtZW50IEhvdXInLFxuICAgICAgICAgICAgcGlja01pbnV0ZTogJ1BpY2sgTWludXRlJyxcbiAgICAgICAgICAgIGluY3JlbWVudE1pbnV0ZTogJ0luY3JlbWVudCBNaW51dGUnLFxuICAgICAgICAgICAgZGVjcmVtZW50TWludXRlOiAnRGVjcmVtZW50IE1pbnV0ZScsXG4gICAgICAgICAgICBwaWNrU2Vjb25kOiAnUGljayBTZWNvbmQnLFxuICAgICAgICAgICAgaW5jcmVtZW50U2Vjb25kOiAnSW5jcmVtZW50IFNlY29uZCcsXG4gICAgICAgICAgICBkZWNyZW1lbnRTZWNvbmQ6ICdEZWNyZW1lbnQgU2Vjb25kJyxcbiAgICAgICAgICAgIHRvZ2dsZVBlcmlvZDogJ1RvZ2dsZSBQZXJpb2QnLFxuICAgICAgICAgICAgc2VsZWN0VGltZTogJ1NlbGVjdCBUaW1lJ1xuICAgICAgICB9LFxuICAgICAgICB1c2VTdHJpY3Q6IGZhbHNlLFxuICAgICAgICBzaWRlQnlTaWRlOiBmYWxzZSxcbiAgICAgICAgZGF5c09mV2Vla0Rpc2FibGVkOiBmYWxzZSxcbiAgICAgICAgY2FsZW5kYXJXZWVrczogZmFsc2UsXG4gICAgICAgIHZpZXdNb2RlOiAnZGF5cycsXG4gICAgICAgIHRvb2xiYXJQbGFjZW1lbnQ6ICdkZWZhdWx0JyxcbiAgICAgICAgc2hvd1RvZGF5QnV0dG9uOiBmYWxzZSxcbiAgICAgICAgc2hvd0NsZWFyOiBmYWxzZSxcbiAgICAgICAgc2hvd0Nsb3NlOiBmYWxzZSxcbiAgICAgICAgd2lkZ2V0UG9zaXRpb25pbmc6IHtcbiAgICAgICAgICAgIGhvcml6b250YWw6ICdhdXRvJyxcbiAgICAgICAgICAgIHZlcnRpY2FsOiAnYXV0bydcbiAgICAgICAgfSxcbiAgICAgICAgd2lkZ2V0UGFyZW50OiBudWxsLFxuICAgICAgICBpZ25vcmVSZWFkb25seTogZmFsc2UsXG4gICAgICAgIGtlZXBPcGVuOiBmYWxzZSxcbiAgICAgICAgZm9jdXNPblNob3c6IHRydWUsXG4gICAgICAgIGlubGluZTogZmFsc2UsXG4gICAgICAgIGtlZXBJbnZhbGlkOiBmYWxzZSxcbiAgICAgICAgZGF0ZXBpY2tlcklucHV0OiAnLmRhdGVwaWNrZXJpbnB1dCcsXG4gICAgICAgIGtleUJpbmRzOiB7XG4gICAgICAgICAgICB1cDogZnVuY3Rpb24od2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgaWYgKCF3aWRnZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgZCA9IHRoaXMuZGF0ZSgpIHx8IHRoaXMuZ2V0TW9tZW50KCk7XG4gICAgICAgICAgICAgICAgaWYgKHdpZGdldC5maW5kKCcuZGF0ZXBpY2tlcicpLmlzKCc6dmlzaWJsZScpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZShkLmNsb25lKCkuc3VidHJhY3QoNywgJ2QnKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlKGQuY2xvbmUoKS5hZGQodGhpcy5zdGVwcGluZygpLCAnbScpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZG93bjogZnVuY3Rpb24od2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgaWYgKCF3aWRnZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFyIGQgPSB0aGlzLmRhdGUoKSB8fCB0aGlzLmdldE1vbWVudCgpO1xuICAgICAgICAgICAgICAgIGlmICh3aWRnZXQuZmluZCgnLmRhdGVwaWNrZXInKS5pcygnOnZpc2libGUnKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGUoZC5jbG9uZSgpLmFkZCg3LCAnZCcpKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGUoZC5jbG9uZSgpLnN1YnRyYWN0KHRoaXMuc3RlcHBpbmcoKSwgJ20nKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICdjb250cm9sIHVwJzogZnVuY3Rpb24od2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgaWYgKCF3aWRnZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgZCA9IHRoaXMuZGF0ZSgpIHx8IHRoaXMuZ2V0TW9tZW50KCk7XG4gICAgICAgICAgICAgICAgaWYgKHdpZGdldC5maW5kKCcuZGF0ZXBpY2tlcicpLmlzKCc6dmlzaWJsZScpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZShkLmNsb25lKCkuc3VidHJhY3QoMSwgJ3knKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlKGQuY2xvbmUoKS5hZGQoMSwgJ2gnKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICdjb250cm9sIGRvd24nOiBmdW5jdGlvbih3aWRnZXQpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXdpZGdldCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciBkID0gdGhpcy5kYXRlKCkgfHwgdGhpcy5nZXRNb21lbnQoKTtcbiAgICAgICAgICAgICAgICBpZiAod2lkZ2V0LmZpbmQoJy5kYXRlcGlja2VyJykuaXMoJzp2aXNpYmxlJykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlKGQuY2xvbmUoKS5hZGQoMSwgJ3knKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlKGQuY2xvbmUoKS5zdWJ0cmFjdCgxLCAnaCcpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbGVmdDogZnVuY3Rpb24od2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgaWYgKCF3aWRnZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgZCA9IHRoaXMuZGF0ZSgpIHx8IHRoaXMuZ2V0TW9tZW50KCk7XG4gICAgICAgICAgICAgICAgaWYgKHdpZGdldC5maW5kKCcuZGF0ZXBpY2tlcicpLmlzKCc6dmlzaWJsZScpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZShkLmNsb25lKCkuc3VidHJhY3QoMSwgJ2QnKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJpZ2h0OiBmdW5jdGlvbih3aWRnZXQpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXdpZGdldCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciBkID0gdGhpcy5kYXRlKCkgfHwgdGhpcy5nZXRNb21lbnQoKTtcbiAgICAgICAgICAgICAgICBpZiAod2lkZ2V0LmZpbmQoJy5kYXRlcGlja2VyJykuaXMoJzp2aXNpYmxlJykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlKGQuY2xvbmUoKS5hZGQoMSwgJ2QnKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBhZ2VVcDogZnVuY3Rpb24od2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgaWYgKCF3aWRnZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgZCA9IHRoaXMuZGF0ZSgpIHx8IHRoaXMuZ2V0TW9tZW50KCk7XG4gICAgICAgICAgICAgICAgaWYgKHdpZGdldC5maW5kKCcuZGF0ZXBpY2tlcicpLmlzKCc6dmlzaWJsZScpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZShkLmNsb25lKCkuc3VidHJhY3QoMSwgJ00nKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBhZ2VEb3duOiBmdW5jdGlvbih3aWRnZXQpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXdpZGdldCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciBkID0gdGhpcy5kYXRlKCkgfHwgdGhpcy5nZXRNb21lbnQoKTtcbiAgICAgICAgICAgICAgICBpZiAod2lkZ2V0LmZpbmQoJy5kYXRlcGlja2VyJykuaXMoJzp2aXNpYmxlJykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlKGQuY2xvbmUoKS5hZGQoMSwgJ00nKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVudGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlc2NhcGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vIHRhYjogZnVuY3Rpb24gKHdpZGdldCkgeyAvL3RoaXMgYnJlYWsgdGhlIGZsb3cgb2YgdGhlIGZvcm0uIGRpc2FibGluZyBmb3Igbm93XG4gICAgICAgICAgICAvLyAgICB2YXIgdG9nZ2xlID0gd2lkZ2V0LmZpbmQoJy5waWNrZXItc3dpdGNoIGFbZGF0YS1hY3Rpb249XCJ0b2dnbGVQaWNrZXJcIl0nKTtcbiAgICAgICAgICAgIC8vICAgIGlmKHRvZ2dsZS5sZW5ndGggPiAwKSB0b2dnbGUuY2xpY2soKTtcbiAgICAgICAgICAgIC8vIH0sXG4gICAgICAgICAgICAnY29udHJvbCBzcGFjZSc6IGZ1bmN0aW9uKHdpZGdldCkge1xuICAgICAgICAgICAgICAgIGlmICghd2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHdpZGdldC5maW5kKCcudGltZXBpY2tlcicpLmlzKCc6dmlzaWJsZScpKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZGdldC5maW5kKCcuYnRuW2RhdGEtYWN0aW9uPVwidG9nZ2xlUGVyaW9kXCJdJykuY2xpY2soKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlKHRoaXMuZ2V0TW9tZW50KCkpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICdkZWxldGUnOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGRlYnVnOiBmYWxzZSxcbiAgICAgICAgYWxsb3dJbnB1dFRvZ2dsZTogZmFsc2UsXG4gICAgICAgIGRpc2FibGVkVGltZUludGVydmFsczogZmFsc2UsXG4gICAgICAgIGRpc2FibGVkSG91cnM6IGZhbHNlLFxuICAgICAgICBlbmFibGVkSG91cnM6IGZhbHNlLFxuICAgICAgICB2aWV3RGF0ZTogZmFsc2VcbiAgICB9O1xuXG4gICAgcmV0dXJuICQuZm4uZGF0ZXRpbWVwaWNrZXI7XG59KSk7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/utils/bootstrap-datetimepicker.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/utils/bootstrap-dropdown.js":
|
|
/*!*****************************************!*\
|
|
!*** ./app/utils/bootstrap-dropdown.js ***!
|
|
\*****************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\n/* ========================================================================\n * Bootstrap: dropdown.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#dropdowns\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/v3-dev/LICENSE)\n * ======================================================================== */\n\n+function ($) {\n 'use strict'; // DROPDOWN CLASS DEFINITION\n // =========================\n\n var backdrop = '.dropdown-backdrop';\n var toggle = '[data-toggle=\"dropdown\"]';\n\n var Dropdown = function Dropdown(element) {\n $(element).on('click.bs.dropdown', this.toggle);\n };\n\n Dropdown.VERSION = '3.4.1';\n\n function getParent($this) {\n var selector = $this.attr('data-target');\n\n if (!selector) {\n selector = $this.attr('href');\n selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, ''); // strip for ie7\n }\n\n var $parent = selector !== '#' ? $(document).find(selector) : null;\n return $parent && $parent.length ? $parent : $this.parent();\n }\n\n function clearMenus(e) {\n if (e && e.which === 3) {\n return;\n }\n\n $(backdrop).remove();\n $(toggle).each(function () {\n var $this = $(this);\n var $parent = getParent($this);\n var relatedTarget = {\n relatedTarget: this\n };\n\n if (!$parent.hasClass('open')) {\n return;\n }\n\n if (e && e.type === 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) {\n return;\n }\n\n $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget));\n\n if (e.isDefaultPrevented()) {\n return;\n }\n\n $this.attr('aria-expanded', 'false');\n $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget));\n });\n }\n\n Dropdown.prototype.toggle = function (e) {\n var $this = $(this);\n\n if ($this.is('.disabled, :disabled')) {\n return;\n }\n\n var $parent = getParent($this);\n var isActive = $parent.hasClass('open');\n clearMenus();\n\n if (!isActive) {\n if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\n // if mobile we use a backdrop because click events don't delegate\n $(document.createElement('div')).addClass('dropdown-backdrop').insertAfter($(this)).on('click', clearMenus);\n }\n\n var relatedTarget = {\n relatedTarget: this\n };\n $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget));\n\n if (e.isDefaultPrevented()) {\n return;\n }\n\n $this.trigger('focus').attr('aria-expanded', 'true');\n $parent.toggleClass('open').trigger($.Event('shown.bs.dropdown', relatedTarget));\n }\n\n return false;\n };\n\n Dropdown.prototype.keydown = function (e) {\n if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return;\n var $this = $(this);\n e.preventDefault();\n e.stopPropagation();\n\n if ($this.is('.disabled, :disabled')) {\n return;\n }\n\n var $parent = getParent($this);\n var isActive = $parent.hasClass('open');\n\n if (!isActive && e.which !== 27 || isActive && e.which === 27) {\n if (e.which === 27) {\n $parent.find(toggle).trigger('focus');\n }\n\n return $this.trigger('click');\n }\n\n var desc = ' li:not(.disabled):visible a';\n var $items = $parent.find('.dropdown-menu' + desc);\n\n if (!$items.length) {\n return;\n }\n\n var index = $items.index(e.target);\n\n if (e.which === 38 && index > 0) {\n index--;\n } // up\n\n\n if (e.which === 40 && index < $items.length - 1) {\n index++;\n } // down\n\n\n if (!~index) {\n index = 0;\n }\n\n $items.eq(index).trigger('focus');\n }; // DROPDOWN PLUGIN DEFINITION\n // ==========================\n\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this);\n var data = $this.data('bs.dropdown');\n if (!data) $this.data('bs.dropdown', data = new Dropdown(this));\n if (typeof option === 'string') data[option].call($this);\n });\n }\n\n var old = $.fn.dropdown;\n $.fn.dropdown = Plugin;\n $.fn.dropdown.Constructor = Dropdown; // DROPDOWN NO CONFLICT\n // ====================\n\n $.fn.dropdown.noConflict = function () {\n $.fn.dropdown = old;\n return this;\n }; // APPLY TO STANDARD DROPDOWN ELEMENTS\n // ===================================\n\n\n $(document).on('click.bs.dropdown.data-api', clearMenus).on('click.bs.dropdown.data-api', '.dropdown form', function (e) {\n e.stopPropagation();\n }).on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle).on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown).on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown);\n}((jquery__WEBPACK_IMPORTED_MODULE_0___default()));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL2Jvb3RzdHJhcC1kcm9wZG93bi5qcz9hZGJmIl0sIm5hbWVzIjpbIiQiLCJiYWNrZHJvcCIsInRvZ2dsZSIsIkRyb3Bkb3duIiwiZWxlbWVudCIsIm9uIiwiVkVSU0lPTiIsImdldFBhcmVudCIsIiR0aGlzIiwic2VsZWN0b3IiLCJhdHRyIiwidGVzdCIsInJlcGxhY2UiLCIkcGFyZW50IiwiZG9jdW1lbnQiLCJmaW5kIiwibGVuZ3RoIiwicGFyZW50IiwiY2xlYXJNZW51cyIsImUiLCJ3aGljaCIsInJlbW92ZSIsImVhY2giLCJyZWxhdGVkVGFyZ2V0IiwiaGFzQ2xhc3MiLCJ0eXBlIiwidGFyZ2V0IiwidGFnTmFtZSIsImNvbnRhaW5zIiwidHJpZ2dlciIsIkV2ZW50IiwiaXNEZWZhdWx0UHJldmVudGVkIiwicmVtb3ZlQ2xhc3MiLCJwcm90b3R5cGUiLCJpcyIsImlzQWN0aXZlIiwiZG9jdW1lbnRFbGVtZW50IiwiY2xvc2VzdCIsImNyZWF0ZUVsZW1lbnQiLCJhZGRDbGFzcyIsImluc2VydEFmdGVyIiwidG9nZ2xlQ2xhc3MiLCJrZXlkb3duIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJkZXNjIiwiJGl0ZW1zIiwiaW5kZXgiLCJlcSIsIlBsdWdpbiIsIm9wdGlvbiIsImRhdGEiLCJjYWxsIiwib2xkIiwiZm4iLCJkcm9wZG93biIsIkNvbnN0cnVjdG9yIiwibm9Db25mbGljdCIsImpRdWVyeSJdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxDQUFFLFVBQVNBLENBQVQsRUFBWTtBQUNWLGVBRFUsQ0FHVjtBQUNBOztBQUVBLE1BQU1DLFFBQVEsR0FBRyxvQkFBakI7QUFDQSxNQUFNQyxNQUFNLEdBQUcsMEJBQWY7O0FBQ0EsTUFBTUMsUUFBUSxHQUFHLFNBQVhBLFFBQVcsQ0FBU0MsT0FBVCxFQUFrQjtBQUMvQkos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QUQsQ0FDS1QsRUFETCxDQUNRLDRCQURSLEVBQ3NDYSxVQUR0QyxFQUVLYixFQUZMLENBRVEsNEJBRlIsRUFFc0MsZ0JBRnRDLEVBRXdELFVBQVNjLENBQVQsRUFBWTtBQUFFQSxLQUFDLENBQUN5QixlQUFGO0FBQXNCLEdBRjVGLEVBR0t2QyxFQUhMLENBR1EsNEJBSFIsRUFHc0NILE1BSHRDLEVBRzhDQyxRQUFRLENBQUM4QixTQUFULENBQW1CL0IsTUFIakUsRUFJS0csRUFKTCxDQUlRLDhCQUpSLEVBSXdDSCxNQUp4QyxFQUlnREMsUUFBUSxDQUFDOEIsU0FBVCxDQUFtQlMsT0FKbkUsRUFLS3JDLEVBTEwsQ0FLUSw4QkFMUixFQUt3QyxnQkFMeEMsRUFLMERGLFFBQVEsQ0FBQzhCLFNBQVQsQ0FBbUJTLE9BTDdFO0FBTUgsQ0E5SkMsQ0E4SkFnQiwrQ0E5SkEsQ0FBRiIsImZpbGUiOiIuL2FwcC91dGlscy9ib290c3RyYXAtZHJvcGRvd24uanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgalF1ZXJ5IGZyb20gJ2pxdWVyeSc7XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogQm9vdHN0cmFwOiBkcm9wZG93bi5qcyB2My40LjFcbiAqIGh0dHBzOi8vZ2V0Ym9vdHN0cmFwLmNvbS9kb2NzLzMuNC9qYXZhc2NyaXB0LyNkcm9wZG93bnNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogQ29weXJpZ2h0IDIwMTEtMjAxOSBUd2l0dGVyLCBJbmMuXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL3YzLWRldi9MSUNFTlNFKVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbisoZnVuY3Rpb24oJCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIC8vIERST1BET1dOIENMQVNTIERFRklOSVRJT05cbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgICBjb25zdCBiYWNrZHJvcCA9ICcuZHJvcGRvd24tYmFja2Ryb3AnO1xuICAgIGNvbnN0IHRvZ2dsZSA9ICdbZGF0YS10b2dnbGU9XCJkcm9wZG93blwiXSc7XG4gICAgY29uc3QgRHJvcGRvd24gPSBmdW5jdGlvbihlbGVtZW50KSB7XG4gICAgICAgICQoZWxlbWVudCkub24oJ2NsaWNrLmJzLmRyb3Bkb3duJywgdGhpcy50b2dnbGUpO1xuICAgIH07XG5cbiAgICBEcm9wZG93bi5WRVJTSU9OID0gJzMuNC4xJztcblxuICAgIGZ1bmN0aW9uIGdldFBhcmVudCgkdGhpcykge1xuICAgICAgICBsZXQgc2VsZWN0b3IgPSAkdGhpcy5hdHRyKCdkYXRhLXRhcmdldCcpO1xuXG4gICAgICAgIGlmICghc2VsZWN0b3IpIHtcbiAgICAgICAgICAgIHNlbGVjdG9yID0gJHRoaXMuYXR0cignaHJlZicpO1xuICAgICAgICAgICAgc2VsZWN0b3IgPSBzZWxlY3RvciAmJiAvI1tBLVphLXpdLy50ZXN0KHNlbGVjdG9yKSAmJiBzZWxlY3Rvci5yZXBsYWNlKC8uKig/PSNbXlxcc10qJCkvLCAnJyk7IC8vIHN0cmlwIGZvciBpZTdcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0ICRwYXJlbnQgPSBzZWxlY3RvciAhPT0gJyMnID8gJChkb2N1bWVudCkuZmluZChzZWxlY3RvcikgOiBudWxsO1xuXG4gICAgICAgIHJldHVybiAkcGFyZW50ICYmICRwYXJlbnQubGVuZ3RoID8gJHBhcmVudCA6ICR0aGlzLnBhcmVudCgpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNsZWFyTWVudXMoZSkge1xuICAgICAgICBpZiAoZSAmJiBlLndoaWNoID09PSAzKSB7IHJldHVybjsgfVxuICAgICAgICAkKGJhY2tkcm9wKS5yZW1vdmUoKTtcbiAgICAgICAgJCh0b2dnbGUpLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBjb25zdCAkdGhpcyA9ICQodGhpcyk7XG4gICAgICAgICAgICBjb25zdCAkcGFyZW50ID0gZ2V0UGFyZW50KCR0aGlzKTtcbiAgICAgICAgICAgIGNvbnN0IHJlbGF0ZWRUYXJnZXQgPSB7IHJlbGF0ZWRUYXJnZXQ6IHRoaXMgfTtcblxuICAgICAgICAgICAgaWYgKCEkcGFyZW50Lmhhc0NsYXNzKCdvcGVuJykpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgICAgIGlmIChlICYmIGUudHlwZSA9PT0gJ2NsaWNrJyAmJiAvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KGUudGFyZ2V0LnRhZ05hbWUpICYmICQuY29udGFpbnMoJHBhcmVudFswXSwgZS50YXJnZXQpKSB7IHJldHVybjsgfVxuXG4gICAgICAgICAgICAkcGFyZW50LnRyaWdnZXIoZSA9ICQuRXZlbnQoJ2hpZGUuYnMuZHJvcGRvd24nLCByZWxhdGVkVGFyZ2V0KSk7XG5cbiAgICAgICAgICAgIGlmIChlLmlzRGVmYXVsdFByZXZlbnRlZCgpKSB7IHJldHVybjsgfVxuXG4gICAgICAgICAgICAkdGhpcy5hdHRyKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XG4gICAgICAgICAgICAkcGFyZW50LnJlbW92ZUNsYXNzKCdvcGVuJykudHJpZ2dlcigkLkV2ZW50KCdoaWRkZW4uYnMuZHJvcGRvd24nLCByZWxhdGVkVGFyZ2V0KSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIERyb3Bkb3duLnByb3RvdHlwZS50b2dnbGUgPSBmdW5jdGlvbihlKSB7XG4gICAgICAgIGNvbnN0ICR0aGlzID0gJCh0aGlzKTtcblxuICAgICAgICBpZiAoJHRoaXMuaXMoJy5kaXNhYmxlZCwgOmRpc2FibGVkJykpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgY29uc3QgJHBhcmVudCA9IGdldFBhcmVudCgkdGhpcyk7XG4gICAgICAgIGNvbnN0IGlzQWN0aXZlID0gJHBhcmVudC5oYXNDbGFzcygnb3BlbicpO1xuXG4gICAgICAgIGNsZWFyTWVudXMoKTtcblxuICAgICAgICBpZiAoIWlzQWN0aXZlKSB7XG4gICAgICAgICAgICBpZiAoJ29udG91Y2hzdGFydCcgaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICYmICEkcGFyZW50LmNsb3Nlc3QoJy5uYXZiYXItbmF2JykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgLy8gaWYgbW9iaWxlIHdlIHVzZSBhIGJhY2tkcm9wIGJlY2F1c2UgY2xpY2sgZXZlbnRzIGRvbid0IGRlbGVnYXRlXG4gICAgICAgICAgICAgICAgJChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSlcbiAgICAgICAgICAgICAgICAgICAgLmFkZENsYXNzKCdkcm9wZG93bi1iYWNrZHJvcCcpXG4gICAgICAgICAgICAgICAgICAgIC5pbnNlcnRBZnRlcigkKHRoaXMpKVxuICAgICAgICAgICAgICAgICAgICAub24oJ2NsaWNrJywgY2xlYXJNZW51cyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHJlbGF0ZWRUYXJnZXQgPSB7IHJlbGF0ZWRUYXJnZXQ6IHRoaXMgfTtcbiAgICAgICAgICAgICRwYXJlbnQudHJpZ2dlcihlID0gJC5FdmVudCgnc2hvdy5icy5kcm9wZG93bicsIHJlbGF0ZWRUYXJnZXQpKTtcblxuICAgICAgICAgICAgaWYgKGUuaXNEZWZhdWx0UHJldmVudGVkKCkpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgICAgICR0aGlzXG4gICAgICAgICAgICAgICAgLnRyaWdnZXIoJ2ZvY3VzJylcbiAgICAgICAgICAgICAgICAuYXR0cignYXJpYS1leHBhbmRlZCcsICd0cnVlJyk7XG5cbiAgICAgICAgICAgICRwYXJlbnRcbiAgICAgICAgICAgICAgICAudG9nZ2xlQ2xhc3MoJ29wZW4nKVxuICAgICAgICAgICAgICAgIC50cmlnZ2VyKCQuRXZlbnQoJ3Nob3duLmJzLmRyb3Bkb3duJywgcmVsYXRlZFRhcmdldCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG5cbiAgICBEcm9wZG93bi5wcm90b3R5cGUua2V5ZG93biA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgaWYgKCEvKDM4fDQwfDI3fDMyKS8udGVzdChlLndoaWNoKSB8fCAvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KGUudGFyZ2V0LnRhZ05hbWUpKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgJHRoaXMgPSAkKHRoaXMpO1xuXG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICBpZiAoJHRoaXMuaXMoJy5kaXNhYmxlZCwgOmRpc2FibGVkJykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0ICRwYXJlbnQgPSBnZXRQYXJlbnQoJHRoaXMpO1xuICAgICAgICBjb25zdCBpc0FjdGl2ZSA9ICRwYXJlbnQuaGFzQ2xhc3MoJ29wZW4nKTtcblxuICAgICAgICBpZiAoIWlzQWN0aXZlICYmIGUud2hpY2ggIT09IDI3IHx8IGlzQWN0aXZlICYmIGUud2hpY2ggPT09IDI3KSB7XG4gICAgICAgICAgICBpZiAoZS53aGljaCA9PT0gMjcpIHtcbiAgICAgICAgICAgICAgICAkcGFyZW50LmZpbmQodG9nZ2xlKS50cmlnZ2VyKCdmb2N1cycpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gJHRoaXMudHJpZ2dlcignY2xpY2snKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRlc2MgPSAnIGxpOm5vdCguZGlzYWJsZWQpOnZpc2libGUgYSc7XG4gICAgICAgIGNvbnN0ICRpdGVtcyA9ICRwYXJlbnQuZmluZCgnLmRyb3Bkb3duLW1lbnUnICsgZGVzYyk7XG5cbiAgICAgICAgaWYgKCEkaXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgaW5kZXggPSAkaXRlbXMuaW5kZXgoZS50YXJnZXQpO1xuXG4gICAgICAgIGlmIChlLndoaWNoID09PSAzOCAmJiBpbmRleCA+IDApIHsgaW5kZXgtLTsgfSAvLyB1cFxuICAgICAgICBpZiAoZS53aGljaCA9PT0gNDAgJiYgaW5kZXggPCAkaXRlbXMubGVuZ3RoIC0gMSkgeyBpbmRleCsrOyB9IC8vIGRvd25cbiAgICAgICAgaWYgKCF+aW5kZXgpIHsgaW5kZXggPSAwOyB9XG5cbiAgICAgICAgJGl0ZW1zLmVxKGluZGV4KS50cmlnZ2VyKCdmb2N1cycpO1xuICAgIH07XG5cbiAgICAvLyBEUk9QRE9XTiBQTFVHSU4gREVGSU5JVElPTlxuICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgICBmdW5jdGlvbiBQbHVnaW4ob3B0aW9uKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBjb25zdCAkdGhpcyA9ICQodGhpcyk7XG4gICAgICAgICAgICBsZXQgZGF0YSA9ICR0aGlzLmRhdGEoJ2JzLmRyb3Bkb3duJyk7XG5cbiAgICAgICAgICAgIGlmICghZGF0YSkgJHRoaXMuZGF0YSgnYnMuZHJvcGRvd24nLCAoZGF0YSA9IG5ldyBEcm9wZG93bih0aGlzKSkpO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb24gPT09ICdzdHJpbmcnKSBkYXRhW29wdGlvbl0uY2FsbCgkdGhpcyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IG9sZCA9ICQuZm4uZHJvcGRvd247XG5cbiAgICAkLmZuLmRyb3Bkb3duID0gUGx1Z2luO1xuICAgICQuZm4uZHJvcGRvd24uQ29uc3RydWN0b3IgPSBEcm9wZG93bjtcblxuICAgIC8vIERST1BET1dOIE5PIENPTkZMSUNUXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT1cblxuICAgICQuZm4uZHJvcGRvd24ubm9Db25mbGljdCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAkLmZuLmRyb3Bkb3duID0gb2xkO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuXG4gICAgLy8gQVBQTFkgVE8gU1RBTkRBUkQgRFJPUERPV04gRUxFTUVOVFNcbiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gICAgJChkb2N1bWVudClcbiAgICAgICAgLm9uKCdjbGljay5icy5kcm9wZG93bi5kYXRhLWFwaScsIGNsZWFyTWVudXMpXG4gICAgICAgIC5vbignY2xpY2suYnMuZHJvcGRvd24uZGF0YS1hcGknLCAnLmRyb3Bkb3duIGZvcm0nLCBmdW5jdGlvbihlKSB7IGUuc3RvcFByb3BhZ2F0aW9uKCk7IH0pXG4gICAgICAgIC5vbignY2xpY2suYnMuZHJvcGRvd24uZGF0YS1hcGknLCB0b2dnbGUsIERyb3Bkb3duLnByb3RvdHlwZS50b2dnbGUpXG4gICAgICAgIC5vbigna2V5ZG93bi5icy5kcm9wZG93bi5kYXRhLWFwaScsIHRvZ2dsZSwgRHJvcGRvd24ucHJvdG90eXBlLmtleWRvd24pXG4gICAgICAgIC5vbigna2V5ZG93bi5icy5kcm9wZG93bi5kYXRhLWFwaScsICcuZHJvcGRvd24tbWVudScsIERyb3Bkb3duLnByb3RvdHlwZS5rZXlkb3duKTtcbn0oalF1ZXJ5KSk7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/utils/bootstrap-dropdown.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/utils/bootstrap-transition.js":
|
|
/*!*******************************************!*\
|
|
!*** ./app/utils/bootstrap-transition.js ***!
|
|
\*******************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\n+function ($) {\n 'use strict'; // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)\n // ============================================================\n\n function transitionEnd() {\n var el = document.createElement('bootstrap');\n var transEndEventNames = {\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'oTransitionEnd otransitionend',\n transition: 'transitionend'\n };\n\n for (var name in transEndEventNames) {\n if (el.style[name] !== undefined) {\n return {\n end: transEndEventNames[name]\n };\n }\n }\n\n return false; // explicit for ie8 ( ._.)\n } // http://blog.alexmaccaw.com/css-transitions\n\n\n $.fn.emulateTransitionEnd = function (duration) {\n var called = false;\n var $el = this;\n $(this).one('bsTransitionEnd', function () {\n called = true;\n });\n\n var callback = function callback() {\n if (!called) $($el).trigger($.support.transition.end);\n };\n\n setTimeout(callback, duration);\n return this;\n };\n\n $(function () {\n $.support.transition = transitionEnd();\n if (!$.support.transition) return;\n $.event.special.bsTransitionEnd = {\n bindType: $.support.transition.end,\n delegateType: $.support.transition.end,\n handle: function handle(e) {\n if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments);\n }\n };\n });\n}((jquery__WEBPACK_IMPORTED_MODULE_0___default()));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL2Jvb3RzdHJhcC10cmFuc2l0aW9uLmpzPzZlYTciXSwibmFtZXMiOlsiJCIsInRyYW5zaXRpb25FbmQiLCJlbCIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsInRyYW5zRW5kRXZlbnROYW1lcyIsIldlYmtpdFRyYW5zaXRpb24iLCJNb3pUcmFuc2l0aW9uIiwiT1RyYW5zaXRpb24iLCJ0cmFuc2l0aW9uIiwibmFtZSIsInN0eWxlIiwidW5kZWZpbmVkIiwiZW5kIiwiZm4iLCJlbXVsYXRlVHJhbnNpdGlvbkVuZCIsImR1cmF0aW9uIiwiY2FsbGVkIiwiJGVsIiwib25lIiwiY2FsbGJhY2siLCJ0cmlnZ2VyIiwic3VwcG9ydCIsInNldFRpbWVvdXQiLCJldmVudCIsInNwZWNpYWwiLCJic1RyYW5zaXRpb25FbmQiLCJiaW5kVHlwZSIsImRlbGVnYXRlVHlwZSIsImhhbmRsZSIsImUiLCJ0YXJnZXQiLCJpcyIsImhhbmRsZU9iaiIsImhhbmRsZXIiLCJhcHBseSIsImFyZ3VtZW50cyIsImpRdWVyeSJdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7QUFFQSxDQUFFLFVBQVNBLENBQVQsRUFBWTtBQUNWLGVBRFUsQ0FHVjtBQUNBOztBQUVBLFdBQVNDLGFBQVQsR0FBeUI7QUFDckIsUUFBSUMsRUFBRSxHQUFHQyxRQUFRLENBQUNDLGFBQVQsQ0FBdUIsV0FBdkIsQ0FBVDtBQUVBLFFBQUlDLGtCQUFrQixHQUFHO0FBQ3JCQyxzQkFBZ0IsRUFBRSxxQkFERztBQUVyQkMsbUJBQWEsRUFBRSxlQUZNO0FBR3JCQyxpQkFBVyxFQUFFLCtCQUhRO0FBSXJCQyxnQkFBVSxFQUFFO0FBSlMsS0FBekI7O0FBT0EsU0FBSyxJQUFJQyxJQUFULElBQWlCTCxrQkFBakIsRUFBcUM7QUFDakMsVUFBSUgsRUFBRSxDQUFDUyxLQUFILENBQVNELElBQVQsTUFBbUJFLFNBQXZCLEVBQWtDO0FBQzlCLGVBQU87QUFBRUMsYUFBRyxFQUFFUixrQkFBa0IsQ0FBQ0ssSUFBRDtBQUF6QixTQUFQO0FBQ0g7QUFDSjs7QUFFRCxXQUFPLEtBQVAsQ0FoQnFCLENBZ0JQO0FBQ2pCLEdBdkJTLENBeUJWOzs7QUFDQVYsR0FBQyxDQUFDYyxFQUFGLENBQUtDLG9CQUFMLEdBQTRCLFVBQVNDLFFBQVQsRUFBbUI7QUFDM0MsUUFBSUMsTUFBTSxHQUFHLEtBQWI7QUFDQSxRQUFJQyxHQUFHLEdBQUcsSUFBVjtBQUNBbEIsS0FBQyxDQUFDLElBQUQsQ0FBRCxDQUFRbUIsR0FBUixDQUFZLGlCQUFaLEVBQStCLFlBQVc7QUFBRUYsWUFBTSxHQUFHLElBQVQ7QUFBZ0IsS0FBNUQ7O0FBQ0EsUUFBSUcsUUFBUSxHQUFHLFNBQVhBLFFBQVcsR0FBVztBQUFFLFVBQUksQ0FBQ0gsTUFBTCxFQUFhakIsQ0FBQyxDQUFDa0IsR0FBRCxDQUFELENBQU9HLE9BQVAsQ0FBZXJCLENBQUMsQ0FBQ3NCLE9BQUYsQ0FBVWIsVUFBVixDQUFxQkksR0FBcEM7QUFBMkMsS0FBcEY7O0FBQ0FVLGNBQVUsQ0FBQ0gsUUFBRCxFQUFXSixRQUFYLENBQVY7QUFDQSxXQUFPLElBQVA7QUFDSCxHQVBEOztBQVNBaEIsR0FBQyxDQUFDLFlBQVc7QUFDVEEsS0FBQyxDQUFDc0IsT0FBRixDQUFVYixVQUFWLEdBQXVCUixhQUFhLEVBQXBDO0FBRUEsUUFBSSxDQUFDRCxDQUFDLENBQUNzQixPQUFGLENBQVViLFVBQWYsRUFBMkI7QUFFM0JULEtBQUMsQ0FBQ3dCLEtBQUYsQ0FBUUMsT0FBUixDQUFnQkMsZUFBaEIsR0FBa0M7QUFDOUJDLGNBQVEsRUFBRTNCLENBQUMsQ0FBQ3NCLE9BQUYsQ0FBVWIsVUFBVixDQUFxQkksR0FERDtBQUU5QmUsa0JBQVksRUFBRTVCLENBQUMsQ0FBQ3NCLE9BQUYsQ0FBVWIsVUFBVixDQUFxQkksR0FGTDtBQUc5QmdCLFlBQU0sRUFBRSxnQkFBU0MsQ0FBVCxFQUFZO0FBQ2hCLFlBQUk5QixDQUFDLENBQUM4QixDQUFDLENBQUNDLE1BQUgsQ0FBRCxDQUFZQyxFQUFaLENBQWUsSUFBZixDQUFKLEVBQTBCLE9BQU9GLENBQUMsQ0FBQ0csU0FBRixDQUFZQyxPQUFaLENBQW9CQyxLQUFwQixDQUEwQixJQUExQixFQUFnQ0MsU0FBaEMsQ0FBUDtBQUM3QjtBQUw2QixLQUFsQztBQU9ILEdBWkEsQ0FBRDtBQWNILENBakRDLENBaURBQywrQ0FqREEsQ0FBRiIsImZpbGUiOiIuL2FwcC91dGlscy9ib290c3RyYXAtdHJhbnNpdGlvbi5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBqUXVlcnkgZnJvbSAnanF1ZXJ5JztcblxuKyhmdW5jdGlvbigkKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8gQ1NTIFRSQU5TSVRJT04gU1VQUE9SVCAoU2hvdXRvdXQ6IGh0dHA6Ly93d3cubW9kZXJuaXpyLmNvbS8pXG4gICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgICBmdW5jdGlvbiB0cmFuc2l0aW9uRW5kKCkge1xuICAgICAgICB2YXIgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdib290c3RyYXAnKTtcblxuICAgICAgICB2YXIgdHJhbnNFbmRFdmVudE5hbWVzID0ge1xuICAgICAgICAgICAgV2Via2l0VHJhbnNpdGlvbjogJ3dlYmtpdFRyYW5zaXRpb25FbmQnLFxuICAgICAgICAgICAgTW96VHJhbnNpdGlvbjogJ3RyYW5zaXRpb25lbmQnLFxuICAgICAgICAgICAgT1RyYW5zaXRpb246ICdvVHJhbnNpdGlvbkVuZCBvdHJhbnNpdGlvbmVuZCcsXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAndHJhbnNpdGlvbmVuZCdcbiAgICAgICAgfTtcblxuICAgICAgICBmb3IgKHZhciBuYW1lIGluIHRyYW5zRW5kRXZlbnROYW1lcykge1xuICAgICAgICAgICAgaWYgKGVsLnN0eWxlW25hbWVdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBlbmQ6IHRyYW5zRW5kRXZlbnROYW1lc1tuYW1lXSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBleHBsaWNpdCBmb3IgaWU4ICggIC5fLilcbiAgICB9XG5cbiAgICAvLyBodHRwOi8vYmxvZy5hbGV4bWFjY2F3LmNvbS9jc3MtdHJhbnNpdGlvbnNcbiAgICAkLmZuLmVtdWxhdGVUcmFuc2l0aW9uRW5kID0gZnVuY3Rpb24oZHVyYXRpb24pIHtcbiAgICAgICAgdmFyIGNhbGxlZCA9IGZhbHNlO1xuICAgICAgICB2YXIgJGVsID0gdGhpcztcbiAgICAgICAgJCh0aGlzKS5vbmUoJ2JzVHJhbnNpdGlvbkVuZCcsIGZ1bmN0aW9uKCkgeyBjYWxsZWQgPSB0cnVlOyB9KTtcbiAgICAgICAgdmFyIGNhbGxiYWNrID0gZnVuY3Rpb24oKSB7IGlmICghY2FsbGVkKSAkKCRlbCkudHJpZ2dlcigkLnN1cHBvcnQudHJhbnNpdGlvbi5lbmQpOyB9O1xuICAgICAgICBzZXRUaW1lb3V0KGNhbGxiYWNrLCBkdXJhdGlvbik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG5cbiAgICAkKGZ1bmN0aW9uKCkge1xuICAgICAgICAkLnN1cHBvcnQudHJhbnNpdGlvbiA9IHRyYW5zaXRpb25FbmQoKTtcblxuICAgICAgICBpZiAoISQuc3VwcG9ydC50cmFuc2l0aW9uKSByZXR1cm47XG5cbiAgICAgICAgJC5ldmVudC5zcGVjaWFsLmJzVHJhbnNpdGlvbkVuZCA9IHtcbiAgICAgICAgICAgIGJpbmRUeXBlOiAkLnN1cHBvcnQudHJhbnNpdGlvbi5lbmQsXG4gICAgICAgICAgICBkZWxlZ2F0ZVR5cGU6ICQuc3VwcG9ydC50cmFuc2l0aW9uLmVuZCxcbiAgICAgICAgICAgIGhhbmRsZTogZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgICAgIGlmICgkKGUudGFyZ2V0KS5pcyh0aGlzKSkgcmV0dXJuIGUuaGFuZGxlT2JqLmhhbmRsZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9KTtcblxufShqUXVlcnkpKTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/utils/bootstrap-transition.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/utils/changelog.js":
|
|
/*!********************************!*\
|
|
!*** ./app/utils/changelog.js ***!
|
|
\********************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* eslint-disable */\n\nvar TRIGGER = null;\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('click', '[data-remodal-changelog]', function (event) {\n TRIGGER = event.currentTarget;\n});\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('opened', '[data-remodal-id=\"changelog\"]', function () {\n var instance = (jquery__WEBPACK_IMPORTED_MODULE_0___default().remodal.lookup)[jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-remodal-id=changelog]').data('remodal')];\n instance.$modal.html('<div class=\"changelog-overflow center\" style=\"padding:5rem 0;text-align:center;\"><i class=\"fa fa-spinner fa-spin fa-3x fa-fw\"></i></div>');\n\n if (!TRIGGER) {\n return true;\n }\n\n var url = jquery__WEBPACK_IMPORTED_MODULE_0___default()(TRIGGER).data('remodalChangelog');\n jquery__WEBPACK_IMPORTED_MODULE_0___default().ajax({\n url: url\n }).done(function (data) {\n instance.$modal.html(data);\n });\n});\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('closed', '[data-remodal-id=\"changelog\"]', function () {\n var instance = (jquery__WEBPACK_IMPORTED_MODULE_0___default().remodal.lookup)[jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-remodal-id=changelog]').data('remodal')];\n instance.$modal.html('');\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL2NoYW5nZWxvZy5qcz83NjFjIl0sIm5hbWVzIjpbIlRSSUdHRVIiLCIkIiwiZG9jdW1lbnQiLCJvbiIsImV2ZW50IiwiY3VycmVudFRhcmdldCIsImluc3RhbmNlIiwiZGF0YSIsIiRtb2RhbCIsImh0bWwiLCJ1cmwiLCJkb25lIl0sIm1hcHBpbmdzIjoiOzs7QUFBQTtBQUNBO0FBRUEsSUFBSUEsT0FBTyxHQUFHLElBQWQ7QUFFQUMsNkNBQUMsQ0FBQ0MsUUFBRCxDQUFELENBQVlDLEVBQVosQ0FBZSxPQUFmLEVBQXdCLDBCQUF4QixFQUFvRCxVQUFDQyxLQUFELEVBQVc7QUFDM0RKLFNBQU8sR0FBR0ksS0FBSyxDQUFDQyxhQUFoQjtBQUNILENBRkQ7QUFJQUosNkNBQUMsQ0FBQ0MsUUFBRCxDQUFELENBQVlDLEVBQVosQ0FBZSxRQUFmLEVBQXlCLCtCQUF6QixFQUEwRCxZQUFNO0FBQzVELE1BQU1HLFFBQVEsR0FBR0wsOERBQUEsQ0FBaUJBLDZDQUFDLENBQUMsNkJBQUQsQ0FBRCxDQUFpQ00sSUFBakMsQ0FBc0MsU0FBdEMsQ0FBakIsQ0FBakI7QUFDQUQsVUFBUSxDQUFDRSxNQUFULENBQWdCQyxJQUFoQixDQUFxQiwwSUFBckI7O0FBQ0EsTUFBSSxDQUFDVCxPQUFMLEVBQWM7QUFBRSxXQUFPLElBQVA7QUFBYzs7QUFFOUIsTUFBTVUsR0FBRyxHQUFHVCw2Q0FBQyxDQUFDRCxPQUFELENBQUQsQ0FBV08sSUFBWCxDQUFnQixrQkFBaEIsQ0FBWjtBQUVBTixvREFBQSxDQUFPO0FBQUNTLE9BQUcsRUFBRUE7QUFBTixHQUFQLEVBQW1CQyxJQUFuQixDQUF3QixVQUFTSixJQUFULEVBQWU7QUFDbkNELFlBQVEsQ0FBQ0UsTUFBVCxDQUFnQkMsSUFBaEIsQ0FBcUJGLElBQXJCO0FBQ0gsR0FGRDtBQUdILENBVkQ7QUFZQU4sNkNBQUMsQ0FBQ0MsUUFBRCxDQUFELENBQVlDLEVBQVosQ0FBZSxRQUFmLEVBQXlCLCtCQUF6QixFQUEwRCxZQUFNO0FBQzVELE1BQU1HLFFBQVEsR0FBR0wsOERBQUEsQ0FBaUJBLDZDQUFDLENBQUMsNkJBQUQsQ0FBRCxDQUFpQ00sSUFBakMsQ0FBc0MsU0FBdEMsQ0FBakIsQ0FBakI7QUFDQUQsVUFBUSxDQUFDRSxNQUFULENBQWdCQyxJQUFoQixDQUFxQixFQUFyQjtBQUNILENBSEQiLCJmaWxlIjoiLi9hcHAvdXRpbHMvY2hhbmdlbG9nLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgKi9cbmltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5cbmxldCBUUklHR0VSID0gbnVsbDtcblxuJChkb2N1bWVudCkub24oJ2NsaWNrJywgJ1tkYXRhLXJlbW9kYWwtY2hhbmdlbG9nXScsIChldmVudCkgPT4ge1xuICAgIFRSSUdHRVIgPSBldmVudC5jdXJyZW50VGFyZ2V0O1xufSk7XG5cbiQoZG9jdW1lbnQpLm9uKCdvcGVuZWQnLCAnW2RhdGEtcmVtb2RhbC1pZD1cImNoYW5nZWxvZ1wiXScsICgpID0+IHtcbiAgICBjb25zdCBpbnN0YW5jZSA9ICQucmVtb2RhbC5sb29rdXBbJCgnW2RhdGEtcmVtb2RhbC1pZD1jaGFuZ2Vsb2ddJykuZGF0YSgncmVtb2RhbCcpXTtcbiAgICBpbnN0YW5jZS4kbW9kYWwuaHRtbCgnPGRpdiBjbGFzcz1cImNoYW5nZWxvZy1vdmVyZmxvdyBjZW50ZXJcIiBzdHlsZT1cInBhZGRpbmc6NXJlbSAwO3RleHQtYWxpZ246Y2VudGVyO1wiPjxpIGNsYXNzPVwiZmEgZmEtc3Bpbm5lciBmYS1zcGluIGZhLTN4IGZhLWZ3XCI+PC9pPjwvZGl2PicpO1xuICAgIGlmICghVFJJR0dFUikgeyByZXR1cm4gdHJ1ZTsgfVxuXG4gICAgY29uc3QgdXJsID0gJChUUklHR0VSKS5kYXRhKCdyZW1vZGFsQ2hhbmdlbG9nJyk7XG5cbiAgICAkLmFqYXgoe3VybDogdXJsfSkuZG9uZShmdW5jdGlvbihkYXRhKSB7XG4gICAgICAgIGluc3RhbmNlLiRtb2RhbC5odG1sKGRhdGEpO1xuICAgIH0pO1xufSk7XG5cbiQoZG9jdW1lbnQpLm9uKCdjbG9zZWQnLCAnW2RhdGEtcmVtb2RhbC1pZD1cImNoYW5nZWxvZ1wiXScsICgpID0+IHtcbiAgICBjb25zdCBpbnN0YW5jZSA9ICQucmVtb2RhbC5sb29rdXBbJCgnW2RhdGEtcmVtb2RhbC1pZD1jaGFuZ2Vsb2ddJykuZGF0YSgncmVtb2RhbCcpXTtcbiAgICBpbnN0YW5jZS4kbW9kYWwuaHRtbCgnJyk7XG59KTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/utils/changelog.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/utils/colors.js":
|
|
/*!*****************************!*\
|
|
!*** ./app/utils/colors.js ***!
|
|
\*****************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"parseHex\": () => (/* binding */ parseHex),\n/* harmony export */ \"hsb2rgb\": () => (/* binding */ hsb2rgb),\n/* harmony export */ \"rgb2hex\": () => (/* binding */ rgb2hex),\n/* harmony export */ \"rgbstr2hex\": () => (/* binding */ rgbstr2hex),\n/* harmony export */ \"hsb2hex\": () => (/* binding */ hsb2hex),\n/* harmony export */ \"hex2hsb\": () => (/* binding */ hex2hsb),\n/* harmony export */ \"rgb2hsb\": () => (/* binding */ rgb2hsb),\n/* harmony export */ \"hex2rgb\": () => (/* binding */ hex2rgb)\n/* harmony export */ });\n// Parses a string and returns a valid hex string when possible\n// parseHex('#fff') => '#ffffff'\nvar parseHex = function parseHex(string) {\n string = string.replace(/[^A-F0-9]/ig, '');\n if (string.length !== 3 && string.length !== 6) return '';\n\n if (string.length === 3) {\n string = string[0] + string[0] + string[1] + string[1] + string[2] + string[2];\n }\n\n return '#' + string.toLowerCase();\n}; // Converts an HSB object to an RGB object\n// hsb2rgb({h: 0, s: 0, b: 100}) => {r: 255, g: 255, b: 255}\n\nvar hsb2rgb = function hsb2rgb(hsb) {\n var rgb = {};\n var h = Math.round(hsb.h);\n var s = Math.round(hsb.s * 255 / 100);\n var v = Math.round(hsb.b * 255 / 100);\n\n if (s === 0) {\n rgb.r = rgb.g = rgb.b = v;\n } else {\n var t1 = v;\n var t2 = (255 - s) * v / 255;\n var t3 = (t1 - t2) * (h % 60) / 60;\n if (h === 360) h = 0;\n\n if (h < 60) {\n rgb.r = t1;\n rgb.b = t2;\n rgb.g = t2 + t3;\n } else if (h < 120) {\n rgb.g = t1;\n rgb.b = t2;\n rgb.r = t1 - t3;\n } else if (h < 180) {\n rgb.g = t1;\n rgb.r = t2;\n rgb.b = t2 + t3;\n } else if (h < 240) {\n rgb.b = t1;\n rgb.r = t2;\n rgb.g = t1 - t3;\n } else if (h < 300) {\n rgb.b = t1;\n rgb.g = t2;\n rgb.r = t2 + t3;\n } else if (h < 360) {\n rgb.r = t1;\n rgb.g = t2;\n rgb.b = t1 - t3;\n } else {\n rgb.r = 0;\n rgb.g = 0;\n rgb.b = 0;\n }\n }\n\n return {\n r: Math.round(rgb.r),\n g: Math.round(rgb.g),\n b: Math.round(rgb.b)\n };\n}; // Converts an RGB object to a HEX string\n// rgb2hex({r: 255, g: 255, b: 255}) => #ffffff\n\nvar rgb2hex = function rgb2hex(rgb) {\n var hex = [rgb.r.toString(16), rgb.g.toString(16), rgb.b.toString(16)];\n hex.forEach(function (val, nr) {\n if (val.length === 1) hex[nr] = '0' + val;\n });\n return '#' + hex.join('');\n}; // Converts and RGB(a) string to a HEX string\n// rgbstr2hex('rgba(255, 255, 255, 0.5)') => #ffffff\n\nvar rgbstr2hex = function rgbstr2hex(rgb) {\n rgb = rgb.match(/^rgba?[\\s+]?\\([\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?/i);\n return rgb && rgb.length === 4 ? '#' + ('0' + parseInt(rgb[1], 10).toString(16)).slice(-2) + ('0' + parseInt(rgb[2], 10).toString(16)).slice(-2) + ('0' + parseInt(rgb[3], 10).toString(16)).slice(-2) : '';\n}; // Converts an HSB object to a HEX string\n// hsb2hex({h: 0, s: 0, b: 100}) => #ffffff\n\nvar hsb2hex = function hsb2hex(hsb) {\n return rgb2hex(hsb2rgb(hsb));\n}; // Converts a HEX string to an HSB object\n// hex2hsb('#ffffff') => {h: 0, s: 0, b: 100}\n\nvar hex2hsb = function hex2hsb(hex) {\n var hsb = rgb2hsb(hex2rgb(hex));\n if (hsb.s === 0) hsb.h = 360;\n return hsb;\n}; // Converts an RGB object to an HSB object\n// rgb2hsb({r: 255, g: 255, b: 255}) => {h: 0, s: 0, b: 100}\n\nvar rgb2hsb = function rgb2hsb(rgb) {\n var hsb = {\n h: 0,\n s: 0,\n b: 0\n };\n var min = Math.min(rgb.r, rgb.g, rgb.b);\n var max = Math.max(rgb.r, rgb.g, rgb.b);\n var delta = max - min;\n hsb.b = max;\n hsb.s = max !== 0 ? 255 * delta / max : 0;\n\n if (hsb.s !== 0) {\n if (rgb.r === max) {\n hsb.h = (rgb.g - rgb.b) / delta;\n } else if (rgb.g === max) {\n hsb.h = 2 + (rgb.b - rgb.r) / delta;\n } else {\n hsb.h = 4 + (rgb.r - rgb.g) / delta;\n }\n } else {\n hsb.h = -1;\n }\n\n hsb.h *= 60;\n\n if (hsb.h < 0) {\n hsb.h += 360;\n }\n\n hsb.s *= 100 / 255;\n hsb.b *= 100 / 255;\n return hsb;\n}; // Converts a HEX string to an RGB object\n// hex2rgb('#ffffff') => {r: 255, g: 255, b: 255}\n\nvar hex2rgb = function hex2rgb(hex) {\n hex = parseInt(hex.indexOf('#') > -1 ? hex.substring(1) : hex, 16);\n return {\n /* jshint ignore:start */\n r: hex >> 16,\n g: (hex & 0x00FF00) >> 8,\n b: hex & 0x0000FF\n /* jshint ignore:end */\n\n };\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL2NvbG9ycy5qcz9lMGE4Il0sIm5hbWVzIjpbInBhcnNlSGV4Iiwic3RyaW5nIiwicmVwbGFjZSIsImxlbmd0aCIsInRvTG93ZXJDYXNlIiwiaHNiMnJnYiIsImhzYiIsInJnYiIsImgiLCJNYXRoIiwicm91bmQiLCJzIiwidiIsImIiLCJyIiwiZyIsInQxIiwidDIiLCJ0MyIsInJnYjJoZXgiLCJoZXgiLCJ0b1N0cmluZyIsImZvckVhY2giLCJ2YWwiLCJuciIsImpvaW4iLCJyZ2JzdHIyaGV4IiwibWF0Y2giLCJwYXJzZUludCIsInNsaWNlIiwiaHNiMmhleCIsImhleDJoc2IiLCJyZ2IyaHNiIiwiaGV4MnJnYiIsIm1pbiIsIm1heCIsImRlbHRhIiwiaW5kZXhPZiIsInN1YnN0cmluZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ08sSUFBTUEsUUFBUSxHQUFHLFNBQVhBLFFBQVcsQ0FBQ0MsTUFBRCxFQUFZO0FBQ2hDQSxRQUFNLEdBQUdBLE1BQU0sQ0FBQ0MsT0FBUCxDQUFlLGFBQWYsRUFBOEIsRUFBOUIsQ0FBVDtBQUNBLE1BQUlELE1BQU0sQ0FBQ0UsTUFBUCxLQUFrQixDQUFsQixJQUF1QkYsTUFBTSxDQUFDRSxNQUFQLEtBQWtCLENBQTdDLEVBQWdELE9BQU8sRUFBUDs7QUFDaEQsTUFBSUYsTUFBTSxDQUFDRSxNQUFQLEtBQWtCLENBQXRCLEVBQXlCO0FBQ3JCRixVQUFNLEdBQUdBLE1BQU0sQ0FBQyxDQUFELENBQU4sR0FBWUEsTUFBTSxDQUFDLENBQUQsQ0FBbEIsR0FBd0JBLE1BQU0sQ0FBQyxDQUFELENBQTlCLEdBQW9DQSxNQUFNLENBQUMsQ0FBRCxDQUExQyxHQUFnREEsTUFBTSxDQUFDLENBQUQsQ0FBdEQsR0FBNERBLE1BQU0sQ0FBQyxDQUFELENBQTNFO0FBQ0g7O0FBRUQsU0FBTyxNQUFNQSxNQUFNLENBQUNHLFdBQVAsRUFBYjtBQUNILENBUk0sQyxDQVVQ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OUJNLEMsQ0FnQ1A7QUFDQTs7QUFDTyxJQUFNMkIsT0FBTyxHQUFHLFNBQVZBLE9BQVUsQ0FBQ2IsR0FBRCxFQUFTO0FBQzVCQSxLQUFHLEdBQUdRLFFBQVEsQ0FBR1IsR0FBRyxDQUFDaUIsT0FBSixDQUFZLEdBQVosSUFBbUIsQ0FBQyxDQUFyQixHQUEwQmpCLEdBQUcsQ0FBQ2tCLFNBQUosQ0FBYyxDQUFkLENBQTFCLEdBQTZDbEIsR0FBL0MsRUFBcUQsRUFBckQsQ0FBZDtBQUVBLFNBQU87QUFDSDtBQUNBTixLQUFDLEVBQUVNLEdBQUcsSUFBSSxFQUZQO0FBR0hMLEtBQUMsRUFBRSxDQUFDSyxHQUFHLEdBQUcsUUFBUCxLQUFvQixDQUhwQjtBQUlIUCxLQUFDLEVBQUdPLEdBQUcsR0FBRztBQUNWOztBQUxHLEdBQVA7QUFPSCxDQVZNIiwiZmlsZSI6Ii4vYXBwL3V0aWxzL2NvbG9ycy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFBhcnNlcyBhIHN0cmluZyBhbmQgcmV0dXJucyBhIHZhbGlkIGhleCBzdHJpbmcgd2hlbiBwb3NzaWJsZVxuLy8gcGFyc2VIZXgoJyNmZmYnKSA9PiAnI2ZmZmZmZidcbmV4cG9ydCBjb25zdCBwYXJzZUhleCA9IChzdHJpbmcpID0+IHtcbiAgICBzdHJpbmcgPSBzdHJpbmcucmVwbGFjZSgvW15BLUYwLTldL2lnLCAnJyk7XG4gICAgaWYgKHN0cmluZy5sZW5ndGggIT09IDMgJiYgc3RyaW5nLmxlbmd0aCAhPT0gNikgcmV0dXJuICcnO1xuICAgIGlmIChzdHJpbmcubGVuZ3RoID09PSAzKSB7XG4gICAgICAgIHN0cmluZyA9IHN0cmluZ1swXSArIHN0cmluZ1swXSArIHN0cmluZ1sxXSArIHN0cmluZ1sxXSArIHN0cmluZ1syXSArIHN0cmluZ1syXTtcbiAgICB9XG5cbiAgICByZXR1cm4gJyMnICsgc3RyaW5nLnRvTG93ZXJDYXNlKCk7XG59O1xuXG4vLyBDb252ZXJ0cyBhbiBIU0Igb2JqZWN0IHRvIGFuIFJHQiBvYmplY3Rcbi8vIGhzYjJyZ2Ioe2g6IDAsIHM6IDAsIGI6IDEwMH0pID0+IHtyOiAyNTUsIGc6IDI1NSwgYjogMjU1fVxuZXhwb3J0IGNvbnN0IGhzYjJyZ2IgPSAoaHNiKSA9PiB7XG4gICAgbGV0IHJnYiA9IHt9O1xuICAgIGxldCBoID0gTWF0aC5yb3VuZChoc2IuaCk7XG4gICAgbGV0IHMgPSBNYXRoLnJvdW5kKGhzYi5zICogMjU1IC8gMTAwKTtcbiAgICBsZXQgdiA9IE1hdGgucm91bmQoaHNiLmIgKiAyNTUgLyAxMDApO1xuICAgIGlmIChzID09PSAwKSB7XG4gICAgICAgIHJnYi5yID0gcmdiLmcgPSByZ2IuYiA9IHY7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIHQxID0gdjtcbiAgICAgICAgdmFyIHQyID0gKDI1NSAtIHMpICogdiAvIDI1NTtcbiAgICAgICAgdmFyIHQzID0gKHQxIC0gdDIpICogKGggJSA2MCkgLyA2MDtcbiAgICAgICAgaWYgKGggPT09IDM2MCkgaCA9IDA7XG4gICAgICAgIGlmIChoIDwgNjApIHtcbiAgICAgICAgICAgIHJnYi5yID0gdDE7XG4gICAgICAgICAgICByZ2IuYiA9IHQyO1xuICAgICAgICAgICAgcmdiLmcgPSB0MiArIHQzO1xuICAgICAgICB9IGVsc2UgaWYgKGggPCAxMjApIHtcbiAgICAgICAgICAgIHJnYi5nID0gdDE7XG4gICAgICAgICAgICByZ2IuYiA9IHQyO1xuICAgICAgICAgICAgcmdiLnIgPSB0MSAtIHQzO1xuICAgICAgICB9IGVsc2UgaWYgKGggPCAxODApIHtcbiAgICAgICAgICAgIHJnYi5nID0gdDE7XG4gICAgICAgICAgICByZ2IuciA9IHQyO1xuICAgICAgICAgICAgcmdiLmIgPSB0MiArIHQzO1xuICAgICAgICB9IGVsc2UgaWYgKGggPCAyNDApIHtcbiAgICAgICAgICAgIHJnYi5iID0gdDE7XG4gICAgICAgICAgICByZ2IuciA9IHQyO1xuICAgICAgICAgICAgcmdiLmcgPSB0MSAtIHQzO1xuICAgICAgICB9IGVsc2UgaWYgKGggPCAzMDApIHtcbiAgICAgICAgICAgIHJnYi5iID0gdDE7XG4gICAgICAgICAgICByZ2IuZyA9IHQyO1xuICAgICAgICAgICAgcmdiLnIgPSB0MiArIHQzO1xuICAgICAgICB9IGVsc2UgaWYgKGggPCAzNjApIHtcbiAgICAgICAgICAgIHJnYi5yID0gdDE7XG4gICAgICAgICAgICByZ2IuZyA9IHQyO1xuICAgICAgICAgICAgcmdiLmIgPSB0MSAtIHQzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmdiLnIgPSAwO1xuICAgICAgICAgICAgcmdiLmcgPSAwO1xuICAgICAgICAgICAgcmdiLmIgPSAwO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHI6IE1hdGgucm91bmQocmdiLnIpLFxuICAgICAgICBnOiBNYXRoLnJvdW5kKHJnYi5nKSxcbiAgICAgICAgYjogTWF0aC5yb3VuZChyZ2IuYilcbiAgICB9O1xufTtcblxuLy8gQ29udmVydHMgYW4gUkdCIG9iamVjdCB0byBhIEhFWCBzdHJpbmdcbi8vIHJnYjJoZXgoe3I6IDI1NSwgZzogMjU1LCBiOiAyNTV9KSA9PiAjZmZmZmZmXG5leHBvcnQgY29uc3QgcmdiMmhleCA9IChyZ2IpID0+IHtcbiAgICB2YXIgaGV4ID0gW1xuICAgICAgICByZ2Iuci50b1N0cmluZygxNiksXG4gICAgICAgIHJnYi5nLnRvU3RyaW5nKDE2KSxcbiAgICAgICAgcmdiLmIudG9TdHJpbmcoMTYpXG4gICAgXTtcblxuICAgIGhleC5mb3JFYWNoKCh2YWwsIG5yKSA9PiB7XG4gICAgICAgIGlmICh2YWwubGVuZ3RoID09PSAxKSBoZXhbbnJdID0gJzAnICsgdmFsO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuICcjJyArIGhleC5qb2luKCcnKTtcbn07XG5cbi8vIENvbnZlcnRzIGFuZCBSR0IoYSkgc3RyaW5nIHRvIGEgSEVYIHN0cmluZ1xuLy8gcmdic3RyMmhleCgncmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpJykgPT4gI2ZmZmZmZlxuZXhwb3J0IGNvbnN0IHJnYnN0cjJoZXggPSAocmdiKSA9PiB7XG4gICAgcmdiID0gcmdiLm1hdGNoKC9ecmdiYT9bXFxzK10/XFwoW1xccytdPyhcXGQrKVtcXHMrXT8sW1xccytdPyhcXGQrKVtcXHMrXT8sW1xccytdPyhcXGQrKVtcXHMrXT8vaSk7XG5cbiAgICByZXR1cm4gKHJnYiAmJiByZ2IubGVuZ3RoID09PSA0KSA/ICcjJyArXG4gICAgKCcwJyArIHBhcnNlSW50KHJnYlsxXSwgMTApLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTIpICtcbiAgICAoJzAnICsgcGFyc2VJbnQocmdiWzJdLCAxMCkudG9TdHJpbmcoMTYpKS5zbGljZSgtMikgK1xuICAgICgnMCcgKyBwYXJzZUludChyZ2JbM10sIDEwKS50b1N0cmluZygxNikpLnNsaWNlKC0yKSA6ICcnO1xufTtcblxuLy8gQ29udmVydHMgYW4gSFNCIG9iamVjdCB0byBhIEhFWCBzdHJpbmdcbi8vIGhzYjJoZXgoe2g6IDAsIHM6IDAsIGI6IDEwMH0pID0+ICNmZmZmZmZcbmV4cG9ydCBjb25zdCBoc2IyaGV4ID0gKGhzYikgPT4ge1xuICAgIHJldHVybiByZ2IyaGV4KGhzYjJyZ2IoaHNiKSk7XG59O1xuXG4vLyBDb252ZXJ0cyBhIEhFWCBzdHJpbmcgdG8gYW4gSFNCIG9iamVjdFxuLy8gaGV4MmhzYignI2ZmZmZmZicpID0+IHtoOiAwLCBzOiAwLCBiOiAxMDB9XG5leHBvcnQgY29uc3QgaGV4MmhzYiA9IChoZXgpID0+IHtcbiAgICBsZXQgaHNiID0gcmdiMmhzYihoZXgycmdiKGhleCkpO1xuICAgIGlmIChoc2IucyA9PT0gMCkgaHNiLmggPSAzNjA7XG5cbiAgICByZXR1cm4gaHNiO1xufTtcblxuLy8gQ29udmVydHMgYW4gUkdCIG9iamVjdCB0byBhbiBIU0Igb2JqZWN0XG4vLyByZ2IyaHNiKHtyOiAyNTUsIGc6IDI1NSwgYjogMjU1fSkgPT4ge2g6IDAsIHM6IDAsIGI6IDEwMH1cbmV4cG9ydCBjb25zdCByZ2IyaHNiID0gKHJnYikgPT4ge1xuICAgIGxldCBoc2IgPSB7XG4gICAgICAgIGg6IDAsXG4gICAgICAgIHM6IDAsXG4gICAgICAgIGI6IDBcbiAgICB9O1xuICAgIGxldCBtaW4gPSBNYXRoLm1pbihyZ2IuciwgcmdiLmcsIHJnYi5iKTtcbiAgICBsZXQgbWF4ID0gTWF0aC5tYXgocmdiLnIsIHJnYi5nLCByZ2IuYik7XG4gICAgbGV0IGRlbHRhID0gbWF4IC0gbWluO1xuICAgIGhzYi5iID0gbWF4O1xuICAgIGhzYi5zID0gbWF4ICE9PSAwID8gMjU1ICogZGVsdGEgLyBtYXggOiAwO1xuICAgIGlmIChoc2IucyAhPT0gMCkge1xuICAgICAgICBpZiAocmdiLnIgPT09IG1heCkge1xuICAgICAgICAgICAgaHNiLmggPSAocmdiLmcgLSByZ2IuYikgLyBkZWx0YTtcbiAgICAgICAgfSBlbHNlIGlmIChyZ2IuZyA9PT0gbWF4KSB7XG4gICAgICAgICAgICBoc2IuaCA9IDIgKyAocmdiLmIgLSByZ2IucikgLyBkZWx0YTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGhzYi5oID0gNCArIChyZ2IuciAtIHJnYi5nKSAvIGRlbHRhO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaHNiLmggPSAtMTtcbiAgICB9XG4gICAgaHNiLmggKj0gNjA7XG4gICAgaWYgKGhzYi5oIDwgMCkge1xuICAgICAgICBoc2IuaCArPSAzNjA7XG4gICAgfVxuICAgIGhzYi5zICo9IDEwMCAvIDI1NTtcbiAgICBoc2IuYiAqPSAxMDAgLyAyNTU7XG5cbiAgICByZXR1cm4gaHNiO1xufTtcblxuLy8gQ29udmVydHMgYSBIRVggc3RyaW5nIHRvIGFuIFJHQiBvYmplY3Rcbi8vIGhleDJyZ2IoJyNmZmZmZmYnKSA9PiB7cjogMjU1LCBnOiAyNTUsIGI6IDI1NX1cbmV4cG9ydCBjb25zdCBoZXgycmdiID0gKGhleCkgPT4ge1xuICAgIGhleCA9IHBhcnNlSW50KCgoaGV4LmluZGV4T2YoJyMnKSA+IC0xKSA/IGhleC5zdWJzdHJpbmcoMSkgOiBoZXgpLCAxNik7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICAvKiBqc2hpbnQgaWdub3JlOnN0YXJ0ICovXG4gICAgICAgIHI6IGhleCA+PiAxNixcbiAgICAgICAgZzogKGhleCAmIDB4MDBGRjAwKSA+PiA4LFxuICAgICAgICBiOiAoaGV4ICYgMHgwMDAwRkYpXG4gICAgICAgIC8qIGpzaGludCBpZ25vcmU6ZW5kICovXG4gICAgfTtcbn07XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/utils/colors.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/utils/cookies.js":
|
|
/*!******************************!*\
|
|
!*** ./app/utils/cookies.js ***!
|
|
\******************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*\n * Cookies.js - 1.2.3-grav\n * https://github.com/ScottHamper/Cookies\n *\n * With SameSite support by Grav\n *\n * This is free and unencumbered software released into the public domain.\n */\nvar factory = function factory(window) {\n var _arguments = arguments;\n\n if (_typeof(window.document) !== 'object') {\n throw new Error('Cookies.js requires a `window` with a `document` object');\n }\n\n var Cookies = function Cookies(key, value, options) {\n alert('a');\n return _arguments.length === 1 ? Cookies.get(key) : Cookies.set(key, value, options);\n }; // Allows for setter injection in unit tests\n\n\n Cookies._document = window.document; // Used to ensure cookie keys do not collide with\n // built-in `Object` properties\n\n Cookies._cacheKeyPrefix = 'cookey.'; // Hurr hurr, :)\n\n Cookies._maxExpireDate = new Date('Fri, 31 Dec 9999 23:59:59 UTC');\n Cookies.defaults = {\n path: '/',\n secure: false,\n sameSite: 'Lax'\n };\n\n Cookies.get = function (key) {\n if (Cookies._cachedDocumentCookie !== Cookies._document.cookie) {\n Cookies._renewCache();\n }\n\n var value = Cookies._cache[Cookies._cacheKeyPrefix + key];\n return value === undefined ? undefined : decodeURIComponent(value);\n };\n\n Cookies.set = function (key, value, options) {\n options = Cookies._getExtendedOptions(options);\n options.expires = Cookies._getExpiresDate(value === undefined ? -1 : options.expires);\n Cookies._document.cookie = Cookies._generateCookieString(key, value, options);\n return Cookies;\n };\n\n Cookies.expire = function (key, options) {\n return Cookies.set(key, undefined, options);\n };\n\n Cookies._getExtendedOptions = function (options) {\n return {\n path: options && options.path || Cookies.defaults.path,\n domain: options && options.domain || Cookies.defaults.domain,\n expires: options && options.expires || Cookies.defaults.expires,\n secure: options && options.secure !== undefined ? options.secure : Cookies.defaults.secure,\n sameSite: options && options.sameSite || Cookies.defaults.sameSite\n };\n };\n\n Cookies._isValidDate = function (date) {\n return Object.prototype.toString.call(date) === '[object Date]' && !isNaN(date.getTime());\n };\n\n Cookies._getExpiresDate = function (expires, now) {\n now = now || new Date();\n\n if (typeof expires === 'number') {\n expires = expires === Infinity ? Cookies._maxExpireDate : new Date(now.getTime() + expires * 1000);\n } else if (typeof expires === 'string') {\n expires = new Date(expires);\n }\n\n if (expires && !Cookies._isValidDate(expires)) {\n throw new Error('`expires` parameter cannot be converted to a valid Date instance');\n }\n\n return expires;\n };\n\n Cookies._generateCookieString = function (key, value, options) {\n key = key.replace(/[^#$&+\\^`|]/g, encodeURIComponent);\n key = key.replace(/\\(/g, '%28').replace(/\\)/g, '%29');\n value = (value + '').replace(/[^!#$&-+\\--:<-\\[\\]-~]/g, encodeURIComponent);\n options = options || {};\n var cookieString = key + '=' + value;\n cookieString += options.path ? ';path=' + options.path : '';\n cookieString += options.domain ? ';domain=' + options.domain : '';\n cookieString += options.expires ? ';expires=' + options.expires.toUTCString() : '';\n cookieString += options.secure ? ';secure' : '';\n cookieString += options.sameSite ? ';SameSite=' + options.sameSite : '';\n return cookieString;\n };\n\n Cookies._getCacheFromString = function (documentCookie) {\n var cookieCache = {};\n var cookiesArray = documentCookie ? documentCookie.split('; ') : [];\n\n for (var i = 0; i < cookiesArray.length; i++) {\n var cookieKvp = Cookies._getKeyValuePairFromCookieString(cookiesArray[i]);\n\n if (cookieCache[Cookies._cacheKeyPrefix + cookieKvp.key] === undefined) {\n cookieCache[Cookies._cacheKeyPrefix + cookieKvp.key] = cookieKvp.value;\n }\n }\n\n return cookieCache;\n };\n\n Cookies._getKeyValuePairFromCookieString = function (cookieString) {\n // \"=\" is a valid character in a cookie value according to RFC6265, so cannot `split('=')`\n var separatorIndex = cookieString.indexOf('='); // IE omits the \"=\" when the cookie value is an empty string\n\n separatorIndex = separatorIndex < 0 ? cookieString.length : separatorIndex;\n var key = cookieString.substr(0, separatorIndex);\n var decodedKey;\n\n try {\n decodedKey = decodeURIComponent(key);\n } catch (e) {\n if (console && typeof console.error === 'function') {\n console.error('Could not decode cookie with key \"' + key + '\"', e);\n }\n }\n\n return {\n key: decodedKey,\n value: cookieString.substr(separatorIndex + 1) // Defer decoding value until accessed\n\n };\n };\n\n Cookies._renewCache = function () {\n Cookies._cache = Cookies._getCacheFromString(Cookies._document.cookie);\n Cookies._cachedDocumentCookie = Cookies._document.cookie;\n };\n\n Cookies._areEnabled = function () {\n var testKey = 'cookies.js';\n var areEnabled = Cookies.set(testKey, 1).get(testKey) === '1';\n Cookies.expire(testKey);\n return areEnabled;\n };\n\n Cookies.enabled = Cookies._areEnabled();\n return Cookies;\n};\n\n__webpack_require__.g.Cookies = __webpack_require__.g && _typeof(__webpack_require__.g.document) === 'object' ? factory(__webpack_require__.g) : factory;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__webpack_require__.g.Cookies);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL2Nvb2tpZXMuanM/ZWNlNSJdLCJuYW1lcyI6WyJmYWN0b3J5Iiwid2luZG93IiwiZG9jdW1lbnQiLCJFcnJvciIsIkNvb2tpZXMiLCJrZXkiLCJ2YWx1ZSIsIm9wdGlvbnMiLCJhbGVydCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImdldCIsInNldCIsIl9kb2N1bWVudCIsIl9jYWNoZUtleVByZWZpeCIsIl9tYXhFeHBpcmVEYXRlIiwiRGF0ZSIsImRlZmF1bHRzIiwicGF0aCIsInNlY3VyZSIsInNhbWVTaXRlIiwiX2NhY2hlZERvY3VtZW50Q29va2llIiwiY29va2llIiwiX3JlbmV3Q2FjaGUiLCJfY2FjaGUiLCJ1bmRlZmluZWQiLCJkZWNvZGVVUklDb21wb25lbnQiLCJfZ2V0RXh0ZW5kZWRPcHRpb25zIiwiZXhwaXJlcyIsIl9nZXRFeHBpcmVzRGF0ZSIsIl9nZW5lcmF0ZUNvb2tpZVN0cmluZyIsImV4cGlyZSIsImRvbWFpbiIsIl9pc1ZhbGlkRGF0ZSIsImRhdGUiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsImNhbGwiLCJpc05hTiIsImdldFRpbWUiLCJub3ciLCJJbmZpbml0eSIsInJlcGxhY2UiLCJlbmNvZGVVUklDb21wb25lbnQiLCJjb29raWVTdHJpbmciLCJ0b1VUQ1N0cmluZyIsIl9nZXRDYWNoZUZyb21TdHJpbmciLCJkb2N1bWVudENvb2tpZSIsImNvb2tpZUNhY2hlIiwiY29va2llc0FycmF5Iiwic3BsaXQiLCJpIiwiY29va2llS3ZwIiwiX2dldEtleVZhbHVlUGFpckZyb21Db29raWVTdHJpbmciLCJzZXBhcmF0b3JJbmRleCIsImluZGV4T2YiLCJzdWJzdHIiLCJkZWNvZGVkS2V5IiwiZSIsImNvbnNvbGUiLCJlcnJvciIsIl9hcmVFbmFibGVkIiwidGVzdEtleSIsImFyZUVuYWJsZWQiLCJlbmFibGVkIiwiZ2xvYmFsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtB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QUFvRWxFLE9BQXJGO0FBRUEsaUVBQWVrRSxxQkFBTSxDQUFDOUQsT0FBdEIiLCJmaWxlIjoiLi9hcHAvdXRpbHMvY29va2llcy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb29raWVzLmpzIC0gMS4yLjMtZ3JhdlxuICogaHR0cHM6Ly9naXRodWIuY29tL1Njb3R0SGFtcGVyL0Nvb2tpZXNcbiAqXG4gKiBXaXRoIFNhbWVTaXRlIHN1cHBvcnQgYnkgR3JhdlxuICpcbiAqIFRoaXMgaXMgZnJlZSBhbmQgdW5lbmN1bWJlcmVkIHNvZnR3YXJlIHJlbGVhc2VkIGludG8gdGhlIHB1YmxpYyBkb21haW4uXG4gKi9cblxuY29uc3QgZmFjdG9yeSA9IGZ1bmN0aW9uKHdpbmRvdykge1xuICAgIGlmICh0eXBlb2Ygd2luZG93LmRvY3VtZW50ICE9PSAnb2JqZWN0Jykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nvb2tpZXMuanMgcmVxdWlyZXMgYSBgd2luZG93YCB3aXRoIGEgYGRvY3VtZW50YCBvYmplY3QnKTtcbiAgICB9XG5cbiAgICBjb25zdCBDb29raWVzID0gKGtleSwgdmFsdWUsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgYWxlcnQoJ2EnKTtcbiAgICAgICAgcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPT09IDFcbiAgICAgICAgICAgID8gQ29va2llcy5nZXQoa2V5KVxuICAgICAgICAgICAgOiBDb29raWVzLnNldChrZXksIHZhbHVlLCBvcHRpb25zKTtcbiAgICB9O1xuXG4gICAgLy8gQWxsb3dzIGZvciBzZXR0ZXIgaW5qZWN0aW9uIGluIHVuaXQgdGVzdHNcbiAgICBDb29raWVzLl9kb2N1bWVudCA9IHdpbmRvdy5kb2N1bWVudDtcblxuICAgIC8vIFVzZWQgdG8gZW5zdXJlIGNvb2tpZSBrZXlzIGRvIG5vdCBjb2xsaWRlIHdpdGhcbiAgICAvLyBidWlsdC1pbiBgT2JqZWN0YCBwcm9wZXJ0aWVzXG4gICAgQ29va2llcy5fY2FjaGVLZXlQcmVmaXggPSAnY29va2V5Lic7IC8vIEh1cnIgaHVyciwgOilcblxuICAgIENvb2tpZXMuX21heEV4cGlyZURhdGUgPSBuZXcgRGF0ZSgnRnJpLCAzMSBEZWMgOTk5OSAyMzo1OTo1OSBVVEMnKTtcblxuICAgIENvb2tpZXMuZGVmYXVsdHMgPSB7XG4gICAgICAgIHBhdGg6ICcvJyxcbiAgICAgICAgc2VjdXJlOiBmYWxzZSxcbiAgICAgICAgc2FtZVNpdGU6ICdMYXgnXG4gICAgfTtcblxuICAgIENvb2tpZXMuZ2V0ID0gKGtleSkgPT4ge1xuICAgICAgICBpZiAoQ29va2llcy5fY2FjaGVkRG9jdW1lbnRDb29raWUgIT09IENvb2tpZXMuX2RvY3VtZW50LmNvb2tpZSkge1xuICAgICAgICAgICAgQ29va2llcy5fcmVuZXdDYWNoZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmFsdWUgPSBDb29raWVzLl9jYWNoZVtDb29raWVzLl9jYWNoZUtleVByZWZpeCArIGtleV07XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBkZWNvZGVVUklDb21wb25lbnQodmFsdWUpO1xuICAgIH07XG5cbiAgICBDb29raWVzLnNldCA9IChrZXksIHZhbHVlLCBvcHRpb25zKSA9PiB7XG4gICAgICAgIG9wdGlvbnMgPSBDb29raWVzLl9nZXRFeHRlbmRlZE9wdGlvbnMob3B0aW9ucyk7XG4gICAgICAgIG9wdGlvbnMuZXhwaXJlcyA9IENvb2tpZXMuX2dldEV4cGlyZXNEYXRlKHZhbHVlID09PSB1bmRlZmluZWQgPyAtMSA6IG9wdGlvbnMuZXhwaXJlcyk7XG5cbiAgICAgICAgQ29va2llcy5fZG9jdW1lbnQuY29va2llID0gQ29va2llcy5fZ2VuZXJhdGVDb29raWVTdHJpbmcoa2V5LCB2YWx1ZSwgb3B0aW9ucyk7XG5cbiAgICAgICAgcmV0dXJuIENvb2tpZXM7XG4gICAgfTtcblxuICAgIENvb2tpZXMuZXhwaXJlID0gKGtleSwgb3B0aW9ucykgPT4ge1xuICAgICAgICByZXR1cm4gQ29va2llcy5zZXQoa2V5LCB1bmRlZmluZWQsIG9wdGlvbnMpO1xuICAgIH07XG5cbiAgICBDb29raWVzLl9nZXRFeHRlbmRlZE9wdGlvbnMgPSAob3B0aW9ucykgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcGF0aDogb3B0aW9ucyAmJiBvcHRpb25zLnBhdGggfHwgQ29va2llcy5kZWZhdWx0cy5wYXRoLFxuICAgICAgICAgICAgZG9tYWluOiBvcHRpb25zICYmIG9wdGlvbnMuZG9tYWluIHx8IENvb2tpZXMuZGVmYXVsdHMuZG9tYWluLFxuICAgICAgICAgICAgZXhwaXJlczogb3B0aW9ucyAmJiBvcHRpb25zLmV4cGlyZXMgfHwgQ29va2llcy5kZWZhdWx0cy5leHBpcmVzLFxuICAgICAgICAgICAgc2VjdXJlOiBvcHRpb25zICYmIG9wdGlvbnMuc2VjdXJlICE9PSB1bmRlZmluZWQgPyBvcHRpb25zLnNlY3VyZSA6IENvb2tpZXMuZGVmYXVsdHMuc2VjdXJlLFxuICAgICAgICAgICAgc2FtZVNpdGU6IG9wdGlvbnMgJiYgb3B0aW9ucy5zYW1lU2l0ZSB8fCBDb29raWVzLmRlZmF1bHRzLnNhbWVTaXRlXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIENvb2tpZXMuX2lzVmFsaWREYXRlID0gKGRhdGUpID0+IHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkYXRlKSA9PT0gJ1tvYmplY3QgRGF0ZV0nICYmICFpc05hTihkYXRlLmdldFRpbWUoKSk7XG4gICAgfTtcblxuICAgIENvb2tpZXMuX2dldEV4cGlyZXNEYXRlID0gKGV4cGlyZXMsIG5vdykgPT4ge1xuICAgICAgICBub3cgPSBub3cgfHwgbmV3IERhdGUoKTtcblxuICAgICAgICBpZiAodHlwZW9mIGV4cGlyZXMgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICBleHBpcmVzID0gZXhwaXJlcyA9PT0gSW5maW5pdHlcbiAgICAgICAgICAgICAgICA/IENvb2tpZXMuX21heEV4cGlyZURhdGVcbiAgICAgICAgICAgICAgICA6IG5ldyBEYXRlKG5vdy5nZXRUaW1lKCkgKyBleHBpcmVzICogMTAwMCk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGV4cGlyZXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBleHBpcmVzID0gbmV3IERhdGUoZXhwaXJlcyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXhwaXJlcyAmJiAhQ29va2llcy5faXNWYWxpZERhdGUoZXhwaXJlcykpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignYGV4cGlyZXNgIHBhcmFtZXRlciBjYW5ub3QgYmUgY29udmVydGVkIHRvIGEgdmFsaWQgRGF0ZSBpbnN0YW5jZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGV4cGlyZXM7XG4gICAgfTtcblxuICAgIENvb2tpZXMuX2dlbmVyYXRlQ29va2llU3RyaW5nID0gKGtleSwgdmFsdWUsIG9wdGlvbnMpID0+IHtcbiAgICAgICAga2V5ID0ga2V5LnJlcGxhY2UoL1teIyQmK1xcXmB8XS9nLCBlbmNvZGVVUklDb21wb25lbnQpO1xuICAgICAgICBrZXkgPSBrZXkucmVwbGFjZSgvXFwoL2csICclMjgnKS5yZXBsYWNlKC9cXCkvZywgJyUyOScpO1xuICAgICAgICB2YWx1ZSA9ICh2YWx1ZSArICcnKS5yZXBsYWNlKC9bXiEjJCYtK1xcLS06PC1cXFtcXF0tfl0vZywgZW5jb2RlVVJJQ29tcG9uZW50KTtcbiAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG5cbiAgICAgICAgbGV0IGNvb2tpZVN0cmluZyA9IGtleSArICc9JyArIHZhbHVlO1xuICAgICAgICBjb29raWVTdHJpbmcgKz0gb3B0aW9ucy5wYXRoID8gJztwYXRoPScgKyBvcHRpb25zLnBhdGggOiAnJztcbiAgICAgICAgY29va2llU3RyaW5nICs9IG9wdGlvbnMuZG9tYWluID8gJztkb21haW49JyArIG9wdGlvbnMuZG9tYWluIDogJyc7XG4gICAgICAgIGNvb2tpZVN0cmluZyArPSBvcHRpb25zLmV4cGlyZXMgPyAnO2V4cGlyZXM9JyArIG9wdGlvbnMuZXhwaXJlcy50b1VUQ1N0cmluZygpIDogJyc7XG4gICAgICAgIGNvb2tpZVN0cmluZyArPSBvcHRpb25zLnNlY3VyZSA/ICc7c2VjdXJlJyA6ICcnO1xuICAgICAgICBjb29raWVTdHJpbmcgKz0gb3B0aW9ucy5zYW1lU2l0ZSA/ICc7U2FtZVNpdGU9JyArIG9wdGlvbnMuc2FtZVNpdGUgOiAnJztcblxuICAgICAgICByZXR1cm4gY29va2llU3RyaW5nO1xuICAgIH07XG5cbiAgICBDb29raWVzLl9nZXRDYWNoZUZyb21TdHJpbmcgPSAoZG9jdW1lbnRDb29raWUpID0+IHtcbiAgICAgICAgbGV0IGNvb2tpZUNhY2hlID0ge307XG4gICAgICAgIGNvbnN0IGNvb2tpZXNBcnJheSA9IGRvY3VtZW50Q29va2llID8gZG9jdW1lbnRDb29raWUuc3BsaXQoJzsgJykgOiBbXTtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvb2tpZXNBcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgY29va2llS3ZwID0gQ29va2llcy5fZ2V0S2V5VmFsdWVQYWlyRnJvbUNvb2tpZVN0cmluZyhjb29raWVzQXJyYXlbaV0pO1xuXG4gICAgICAgICAgICBpZiAoY29va2llQ2FjaGVbQ29va2llcy5fY2FjaGVLZXlQcmVmaXggKyBjb29raWVLdnAua2V5XSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgY29va2llQ2FjaGVbQ29va2llcy5fY2FjaGVLZXlQcmVmaXggKyBjb29raWVLdnAua2V5XSA9IGNvb2tpZUt2cC52YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb29raWVDYWNoZTtcbiAgICB9O1xuXG4gICAgQ29va2llcy5fZ2V0S2V5VmFsdWVQYWlyRnJvbUNvb2tpZVN0cmluZyA9IChjb29raWVTdHJpbmcpID0+IHtcbiAgICAgICAgLy8gXCI9XCIgaXMgYSB2YWxpZCBjaGFyYWN0ZXIgaW4gYSBjb29raWUgdmFsdWUgYWNjb3JkaW5nIHRvIFJGQzYyNjUsIHNvIGNhbm5vdCBgc3BsaXQoJz0nKWBcbiAgICAgICAgbGV0IHNlcGFyYXRvckluZGV4ID0gY29va2llU3RyaW5nLmluZGV4T2YoJz0nKTtcblxuICAgICAgICAvLyBJRSBvbWl0cyB0aGUgXCI9XCIgd2hlbiB0aGUgY29va2llIHZhbHVlIGlzIGFuIGVtcHR5IHN0cmluZ1xuICAgICAgICBzZXBhcmF0b3JJbmRleCA9IHNlcGFyYXRvckluZGV4IDwgMCA/IGNvb2tpZVN0cmluZy5sZW5ndGggOiBzZXBhcmF0b3JJbmRleDtcblxuICAgICAgICBjb25zdCBrZXkgPSBjb29raWVTdHJpbmcuc3Vic3RyKDAsIHNlcGFyYXRvckluZGV4KTtcbiAgICAgICAgbGV0IGRlY29kZWRLZXk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBkZWNvZGVkS2V5ID0gZGVjb2RlVVJJQ29tcG9uZW50KGtleSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGlmIChjb25zb2xlICYmIHR5cGVvZiBjb25zb2xlLmVycm9yID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignQ291bGQgbm90IGRlY29kZSBjb29raWUgd2l0aCBrZXkgXCInICsga2V5ICsgJ1wiJywgZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAga2V5OiBkZWNvZGVkS2V5LFxuICAgICAgICAgICAgdmFsdWU6IGNvb2tpZVN0cmluZy5zdWJzdHIoc2VwYXJhdG9ySW5kZXggKyAxKSAvLyBEZWZlciBkZWNvZGluZyB2YWx1ZSB1bnRpbCBhY2Nlc3NlZFxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBDb29raWVzLl9yZW5ld0NhY2hlID0gKCkgPT4ge1xuICAgICAgICBDb29raWVzLl9jYWNoZSA9IENvb2tpZXMuX2dldENhY2hlRnJvbVN0cmluZyhDb29raWVzLl9kb2N1bWVudC5jb29raWUpO1xuICAgICAgICBDb29raWVzLl9jYWNoZWREb2N1bWVudENvb2tpZSA9IENvb2tpZXMuX2RvY3VtZW50LmNvb2tpZTtcbiAgICB9O1xuXG4gICAgQ29va2llcy5fYXJlRW5hYmxlZCA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgdGVzdEtleSA9ICdjb29raWVzLmpzJztcbiAgICAgICAgY29uc3QgYXJlRW5hYmxlZCA9IENvb2tpZXMuc2V0KHRlc3RLZXksIDEpLmdldCh0ZXN0S2V5KSA9PT0gJzEnO1xuICAgICAgICBDb29raWVzLmV4cGlyZSh0ZXN0S2V5KTtcbiAgICAgICAgcmV0dXJuIGFyZUVuYWJsZWQ7XG4gICAgfTtcblxuICAgIENvb2tpZXMuZW5hYmxlZCA9IENvb2tpZXMuX2FyZUVuYWJsZWQoKTtcblxuICAgIHJldHVybiBDb29raWVzO1xufTtcblxuZ2xvYmFsLkNvb2tpZXMgPSAoZ2xvYmFsICYmIHR5cGVvZiBnbG9iYWwuZG9jdW1lbnQgPT09ICdvYmplY3QnKSA/IGZhY3RvcnkoZ2xvYmFsKSA6IGZhY3Rvcnk7XG5cbmV4cG9ydCBkZWZhdWx0IGdsb2JhbC5Db29raWVzO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/utils/cookies.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/utils/cron-ui.js":
|
|
/*!******************************!*\
|
|
!*** ./app/utils/cron-ui.js ***!
|
|
\******************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint-disable */\n\n/*\n * This file is part of the Arnapou jqCron package.\n *\n * (c) Arnaud Buathier <arnaud@arnapou.net>\n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\n/**\n * Default settings\n */\n\nvar jqCronDefaultSettings = {\n texts: {},\n monthdays: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31],\n hours: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23],\n hour_labels: [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\", \"13\", \"14\", \"15\", \"16\", \"17\", \"18\", \"19\", \"20\", \"21\", \"22\", \"23\"],\n minutes: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59],\n lang: 'en',\n enabled_minute: false,\n enabled_hour: true,\n enabled_day: true,\n enabled_week: true,\n enabled_month: true,\n enabled_year: true,\n multiple_dom: false,\n multiple_month: false,\n multiple_mins: false,\n multiple_dow: false,\n multiple_time_hours: false,\n multiple_time_minutes: false,\n numeric_zero_pad: false,\n default_period: 'day',\n default_value: '',\n no_reset_button: true,\n disabled: false,\n bind_to: null,\n bind_method: {\n set: function set($element, value) {\n $element.is(':input') ? $element.val(value) : $element.data('jqCronValue', value);\n },\n get: function get($element) {\n return $element.is(':input') ? $element.val() : $element.data('jqCronValue');\n }\n }\n};\n/**\n * Custom extend of json for jqCron settings.\n * We don't use jQuery.extend because simple extend does not fit our needs, and deep extend has a bad\n * feature for us : it replaces keys of \"Arrays\" instead of replacing the full array.\n */\n\n(function ($) {\n var extend = function extend(dst, src) {\n for (var i in src) {\n if ($.isPlainObject(src[i])) {\n dst[i] = extend(dst[i] && $.isPlainObject(dst[i]) ? dst[i] : {}, src[i]);\n } else if ($.isArray(src[i])) {\n dst[i] = src[i].slice(0);\n } else if (src[i] !== undefined) {\n dst[i] = src[i];\n }\n }\n\n return dst;\n };\n\n this.jqCronMergeSettings = function (obj) {\n return extend(extend({}, jqCronDefaultSettings), obj || {});\n };\n}).call(window, (jquery__WEBPACK_IMPORTED_MODULE_0___default()));\n/**\n * Shortcut to get the instance of jqCron instance from one jquery object\n */\n\n(function ($) {\n $.fn.jqCronGetInstance = function () {\n return this.data('jqCron');\n };\n}).call(window, (jquery__WEBPACK_IMPORTED_MODULE_0___default()));\n/**\n * Main plugin\n */\n\n(function ($) {\n $.fn.jqCron = function (settings) {\n var saved_settings = settings;\n return this.each(function () {\n var cron, saved;\n var $this = $(this);\n var settings = jqCronMergeSettings(saved_settings); // clone settings\n\n var translations = settings.texts[settings.lang];\n\n if (_typeof(translations) !== 'object' || $.isEmptyObject(translations)) {\n console && console.error('Missing translations for language \"' + settings.lang + '\". ' + 'Please include jqCron.' + settings.lang + '.js or manually provide ' + 'the necessary translations when calling $.fn.jqCron().');\n return;\n }\n\n if (!settings.jquery_container) {\n if ($this.is(':container')) {\n settings.jquery_element = $this.uniqueId('jqCron');\n } else if ($this.is(':autoclose')) {\n // delete already generated dom if exists\n if ($this.next('.jqCron').length == 1) {\n $this.next('.jqCron').remove();\n } // generate new\n\n\n settings.jquery_element = $('<span class=\"jqCron\"></span>').uniqueId('jqCron').insertAfter($this);\n } else {\n console && console.error(settings.texts[settings.lang].error1.replace('%s', this.tagName));\n return;\n }\n } // autoset bind_to if it is an input\n\n\n if ($this.is(':input')) {\n settings.bind_to = settings.bind_to || $this;\n } // init cron object\n\n\n if (settings.bind_to) {\n if (settings.bind_to.is(':input')) {\n // auto bind from input to object if an input, textarea ...\n settings.bind_to.blur(function () {\n var value = settings.bind_method.get(settings.bind_to);\n $this.jqCronGetInstance().setCron(value);\n });\n }\n\n saved = settings.bind_method.get(settings.bind_to);\n cron = new jqCron(settings);\n cron.setCron(saved);\n } else {\n cron = new jqCron(settings);\n }\n\n $(this).data('jqCron', cron);\n });\n };\n}).call(window, (jquery__WEBPACK_IMPORTED_MODULE_0___default()));\n/**\n * jqCron class\n */\n\n(function ($) {\n var jqCronInstances = [];\n\n function jqCron(settings) {\n var _initialized = false;\n\n var _self = this;\n\n var _$elt = this;\n\n var _$obj = $('<span class=\"jqCron-container\"></span>');\n\n var _$blocks = $('<span class=\"jqCron-blocks\"></span>');\n\n var _$blockPERIOD = $('<span class=\"jqCron-period\"></span>');\n\n var _$blockDOM = $('<span class=\"jqCron-dom\"></span>');\n\n var _$blockMONTH = $('<span class=\"jqCron-month\"></span>');\n\n var _$blockMINS = $('<span class=\"jqCron-mins\"></span>');\n\n var _$blockDOW = $('<span class=\"jqCron-dow\"></span>');\n\n var _$blockTIME = $('<span class=\"jqCron-time\"></span>');\n\n var _$cross = $('<span class=\"jqCron-cross\">✘</span>');\n\n var _selectors = [];\n\n var _selectorPeriod, _selectorMins, _selectorTimeH, _selectorTimeM, _selectorDow, _selectorDom, _selectorMonth; // instanciate a new selector\n\n\n function newSelector($block, multiple, type) {\n var selector = new jqCronSelector(_self, $block, multiple, type);\n selector.$.bind('selector:open', function () {\n // we close all opened selectors of all other jqCron\n for (var n = jqCronInstances.length; n--;) {\n if (jqCronInstances[n] != _self) {\n jqCronInstances[n].closeSelectors();\n } else {\n // we close all other opened selectors of this jqCron\n for (var o = _selectors.length; o--;) {\n if (_selectors[o] != selector) {\n _selectors[o].close();\n }\n }\n }\n }\n });\n selector.$.bind('selector:change', function () {\n var boundChanged = false; // don't propagate if not initialized\n\n if (!_initialized) return; // bind data between two minute selectors (only if they have the same multiple settings)\n\n if (settings.multiple_mins == settings.multiple_time_minutes) {\n if (selector == _selectorMins) {\n boundChanged = _selectorTimeM.setValue(_selectorMins.getValue());\n } else if (selector == _selectorTimeM) {\n boundChanged = _selectorMins.setValue(_selectorTimeM.getValue());\n }\n } // we propagate the change event to the main object\n\n\n boundChanged || _$obj.trigger('cron:change', _self.getCron());\n });\n\n _selectors.push(selector);\n\n return selector;\n } // disable the selector\n\n\n this.disable = function () {\n _$obj.addClass('disable');\n\n settings.disable = true;\n\n _self.closeSelectors();\n }; // return if the selector is disabled\n\n\n this.isDisabled = function () {\n return settings.disable == true;\n }; // enable the selector\n\n\n this.enable = function () {\n _$obj.removeClass('disable');\n\n settings.disable = false;\n }; // get cron value\n\n\n this.getCron = function () {\n var period = _selectorPeriod.getValue();\n\n var items = ['*', '*', '*', '*', '*'];\n\n if (period == 'hour') {\n items[0] = _selectorMins.getCronValue();\n }\n\n if (period == 'day' || period == 'week' || period == 'month' || period == 'year') {\n items[0] = _selectorTimeM.getCronValue();\n items[1] = _selectorTimeH.getCronValue();\n }\n\n if (period == 'month' || period == 'year') {\n items[2] = _selectorDom.getCronValue();\n }\n\n if (period == 'year') {\n items[3] = _selectorMonth.getCronValue();\n }\n\n if (period == 'week') {\n items[4] = _selectorDow.getCronValue();\n }\n\n return items.join(' ');\n }; // set cron (string like * * * * *)\n\n\n this.setCron = function (str) {\n if (!str) return;\n\n try {\n str = str.replace(/\\s+/g, ' ').replace(/^ +/, '').replace(/ +$/, ''); // sanitize\n\n var mask = str.replace(/[^\\* ]/g, '-').replace(/-+/g, '-').replace(/ +/g, '');\n var items = str.split(' ');\n if (items.length != 5) _self.error(_self.getText('error2'));\n\n if (mask == '*****') {\n // 1 possibility\n _selectorPeriod.setValue('minute');\n } else if (mask == '-****') {\n // 1 possibility\n _selectorPeriod.setValue('hour');\n\n _selectorMins.setCronValue(items[0]);\n\n _selectorTimeM.setCronValue(items[0]);\n } else if (mask.substring(2, mask.length) == '***') {\n // 4 possibilities\n _selectorPeriod.setValue('day');\n\n _selectorMins.setCronValue(items[0]);\n\n _selectorTimeM.setCronValue(items[0]);\n\n _selectorTimeH.setCronValue(items[1]);\n } else if (mask.substring(2, mask.length) == '-**') {\n // 4 possibilities\n _selectorPeriod.setValue('month');\n\n _selectorMins.setCronValue(items[0]);\n\n _selectorTimeM.setCronValue(items[0]);\n\n _selectorTimeH.setCronValue(items[1]);\n\n _selectorDom.setCronValue(items[2]);\n } else if (mask.substring(2, mask.length) == '**-') {\n // 4 possibilities\n _selectorPeriod.setValue('week');\n\n _selectorMins.setCronValue(items[0]);\n\n _selectorTimeM.setCronValue(items[0]);\n\n _selectorTimeH.setCronValue(items[1]);\n\n _selectorDow.setCronValue(items[4]);\n } else if (mask.substring(3, mask.length) == '-*') {\n // 8 possibilities\n _selectorPeriod.setValue('year');\n\n _selectorMins.setCronValue(items[0]);\n\n _selectorTimeM.setCronValue(items[0]);\n\n _selectorTimeH.setCronValue(items[1]);\n\n _selectorDom.setCronValue(items[2]);\n\n _selectorMonth.setCronValue(items[3]);\n } else {\n _self.error(_self.getText('error4'));\n }\n\n _self.clearError();\n } catch (e) {}\n }; // close all child selectors\n\n\n this.closeSelectors = function () {\n for (var n = _selectors.length; n--;) {\n _selectors[n].close();\n }\n }; // get the main element id\n\n\n this.getId = function () {\n return _$elt.attr('id');\n }; // get the translated text\n\n\n this.getText = function (key) {\n var text = settings.texts[settings.lang][key] || null;\n\n if (typeof text == \"string\" && text.match('<b')) {\n text = text.replace(/(<b *\\/>)/gi, '</span><b /><span class=\"jqCron-text\">');\n text = '<span class=\"jqCron-text\">' + text + '</span>';\n }\n\n return text;\n }; // get the human readable text\n\n\n this.getHumanText = function () {\n var texts = [];\n\n _$obj.find('> span > span:visible').find('.jqCron-text, .jqCron-selector > span').each(function () {\n var text = $(this).text().replace(/\\s+$/g, '').replace(/^\\s+/g, '');\n text && texts.push(text);\n });\n\n return texts.join(' ').replace(/\\s:\\s/g, ':');\n }; // get settings\n\n\n this.getSettings = function () {\n return settings;\n }; // display an error\n\n\n this.error = function (msg) {\n console && console.error('[jqCron Error] ' + msg);\n\n _$obj.addClass('jqCron-error').attr('title', msg);\n\n throw msg;\n }; // clear error\n\n\n this.clearError = function () {\n _$obj.attr('title', '').removeClass('jqCron-error');\n }; // clear\n\n\n this.clear = function () {\n _selectorDom.setValue([]);\n\n _selectorDow.setValue([]);\n\n _selectorMins.setValue([]);\n\n _selectorMonth.setValue([]);\n\n _selectorTimeH.setValue([]);\n\n _selectorTimeM.setValue([]);\n\n _self.triggerChange();\n }; // init (called in constructor)\n\n\n this.init = function () {\n var n, i, labelsList, list;\n if (_initialized) return;\n settings = jqCronMergeSettings(settings);\n settings.jquery_element || _self.error(_self.getText('error3'));\n _$elt = settings.jquery_element;\n\n _$elt.append(_$obj);\n\n _$obj.data('id', settings.id);\n\n _$obj.data('jqCron', _self);\n\n _$obj.append(_$blocks);\n\n settings.no_reset_button || _$obj.append(_$cross);\n !settings.disable || _$obj.addClass('disable');\n\n _$blocks.append(_$blockPERIOD);\n\n if (/^(ko)$/i.test(settings.lang)) {\n _$blocks.append(_$blockMONTH, _$blockDOM);\n } else {\n _$blocks.append(_$blockDOM, _$blockMONTH);\n }\n\n _$blocks.append(_$blockMINS);\n\n _$blocks.append(_$blockDOW);\n\n _$blocks.append(_$blockTIME); // various binding\n\n\n _$cross.click(function () {\n _self.isDisabled() || _self.clear();\n }); // binding from cron to target\n\n\n _$obj.bind('cron:change', function (evt, value) {\n if (!settings.bind_to) return;\n settings.bind_method.set && settings.bind_method.set(settings.bind_to, value);\n\n _self.clearError();\n }); // PERIOD\n\n\n _$blockPERIOD.append(_self.getText('text_period'));\n\n _selectorPeriod = newSelector(_$blockPERIOD, false, 'period');\n settings.enabled_minute && _selectorPeriod.add('minute', _self.getText('name_minute'));\n settings.enabled_hour && _selectorPeriod.add('hour', _self.getText('name_hour'));\n settings.enabled_day && _selectorPeriod.add('day', _self.getText('name_day'));\n settings.enabled_week && _selectorPeriod.add('week', _self.getText('name_week'));\n settings.enabled_month && _selectorPeriod.add('month', _self.getText('name_month'));\n settings.enabled_year && _selectorPeriod.add('year', _self.getText('name_year'));\n\n _selectorPeriod.$.bind('selector:change', function (e, value) {\n _$blockDOM.hide();\n\n _$blockMONTH.hide();\n\n _$blockMINS.hide();\n\n _$blockDOW.hide();\n\n _$blockTIME.hide();\n\n if (value == 'hour') {\n _$blockMINS.show();\n } else if (value == 'day') {\n _$blockTIME.show();\n } else if (value == 'week') {\n _$blockDOW.show();\n\n _$blockTIME.show();\n } else if (value == 'month') {\n _$blockDOM.show();\n\n _$blockTIME.show();\n } else if (value == 'year') {\n _$blockDOM.show();\n\n _$blockMONTH.show();\n\n _$blockTIME.show();\n }\n });\n\n _selectorPeriod.setValue(settings.default_period); // MINS (minutes)\n\n\n _$blockMINS.append(_self.getText('text_mins'));\n\n _selectorMins = newSelector(_$blockMINS, settings.multiple_mins, 'minutes');\n\n for (i = 0, list = settings.minutes; i < list.length; i++) {\n _selectorMins.add(list[i], list[i]);\n } // TIME (hour:min)\n\n\n _$blockTIME.append(_self.getText('text_time'));\n\n _selectorTimeH = newSelector(_$blockTIME, settings.multiple_time_hours, 'time_hours');\n\n for (i = 0, list = settings.hours, labelsList = settings.hour_labels; i < list.length; i++) {\n _selectorTimeH.add(list[i], labelsList[i]);\n }\n\n _selectorTimeM = newSelector(_$blockTIME, settings.multiple_time_minutes, 'time_minutes');\n\n for (i = 0, list = settings.minutes; i < list.length; i++) {\n _selectorTimeM.add(list[i], list[i]);\n } // DOW (day of week)\n\n\n _$blockDOW.append(_self.getText('text_dow'));\n\n _selectorDow = newSelector(_$blockDOW, settings.multiple_dow, 'day_of_week');\n\n for (i = 0, list = _self.getText('weekdays'); i < list.length; i++) {\n _selectorDow.add(i + 1, list[i]);\n } // DOM (day of month)\n\n\n _$blockDOM.append(_self.getText('text_dom'));\n\n _selectorDom = newSelector(_$blockDOM, settings.multiple_dom, 'day_of_month');\n\n for (i = 0, list = settings.monthdays; i < list.length; i++) {\n _selectorDom.add(list[i], list[i]);\n } // MONTH (day of week)\n\n\n _$blockMONTH.append(_self.getText('text_month'));\n\n _selectorMonth = newSelector(_$blockMONTH, settings.multiple_month, 'month');\n\n for (i = 0, list = _self.getText('months'); i < list.length; i++) {\n _selectorMonth.add(i + 1, list[i]);\n } // close all selectors when we click in body\n\n\n $('body').click(function () {\n var i,\n n = _selectors.length;\n\n for (i = 0; i < n; i++) {\n _selectors[i].close();\n }\n });\n _initialized = true; // default value\n\n if (settings.default_value) {\n _self.setCron(settings.default_value);\n }\n }; // trigger a change event\n\n\n this.triggerChange = function () {\n _$obj.trigger('cron:change', _self.getCron());\n }; // store instance in array\n\n\n jqCronInstances.push(this); // expose main jquery object\n\n this.$ = _$obj; // init\n\n try {\n this.init();\n\n _self.triggerChange();\n } catch (e) {}\n }\n\n this.jqCron = jqCron;\n}).call(window, (jquery__WEBPACK_IMPORTED_MODULE_0___default()));\n/**\n * jqCronSelector class\n */\n\n(function ($) {\n function jqCronSelector(_cron, _$block, _multiple, _type) {\n var _self = this;\n\n var _$list = $('<ul class=\"jqCron-selector-list\"></ul>');\n\n var _$title = $('<span class=\"jqCron-selector-title\"></span>');\n\n var _$selector = $('<span class=\"jqCron-selector\"></span>');\n\n var _values = {};\n var _value = [];\n var _hasNumericTexts = true;\n\n var _numeric_zero_pad = _cron.getSettings().numeric_zero_pad; // return an array without doublon\n\n\n function array_unique(l) {\n var i = 0,\n n = l.length,\n k = {},\n a = [];\n\n while (i < n) {\n k[l[i]] || (k[l[i]] = true && a.push(l[i]));\n i++;\n }\n\n return a;\n } // get the value (an array if multiple, else a single value)\n\n\n this.getValue = function () {\n return _multiple ? _value : _value[0];\n }; // get a correct string for cron\n\n\n this.getCronValue = function () {\n if (_value.length == 0) return '*';\n var cron = [_value[0]],\n i,\n s = _value[0],\n c = _value[0],\n n = _value.length;\n\n for (i = 1; i < n; i++) {\n if (_value[i] == c + 1) {\n c = _value[i];\n cron[cron.length - 1] = s + '-' + c;\n } else {\n s = c = _value[i];\n cron.push(c);\n }\n }\n\n return cron.join(',');\n }; // set the cron value\n\n\n this.setCronValue = function (str) {\n var values = [],\n m,\n i,\n n;\n\n if (str !== '*') {\n while (str != '') {\n // test \"*/n\" expression\n m = str.match(/^\\*\\/([0-9]+),?/);\n\n if (m && m.length == 2) {\n for (i = 0; i <= 59; i += m[1] | 0) {\n values.push(i);\n }\n\n str = str.replace(m[0], '');\n continue;\n } // test \"a-b/n\" expression\n\n\n m = str.match(/^([0-9]+)-([0-9]+)\\/([0-9]+),?/);\n\n if (m && m.length == 4) {\n for (i = m[1] | 0; i <= (m[2] | 0); i += m[3] | 0) {\n values.push(i);\n }\n\n str = str.replace(m[0], '');\n continue;\n } // test \"a-b\" expression\n\n\n m = str.match(/^([0-9]+)-([0-9]+),?/);\n\n if (m && m.length == 3) {\n for (i = m[1] | 0; i <= (m[2] | 0); i++) {\n values.push(i);\n }\n\n str = str.replace(m[0], '');\n continue;\n } // test \"c\" expression\n\n\n m = str.match(/^([0-9]+),?/);\n\n if (m && m.length == 2) {\n values.push(m[1] | 0);\n str = str.replace(m[0], '');\n continue;\n } // something goes wrong in the expression\n\n\n return;\n }\n }\n\n _self.setValue(values);\n }; // close the selector\n\n\n this.close = function () {\n _$selector.trigger('selector:close');\n }; // open the selector\n\n\n this.open = function () {\n _$selector.trigger('selector:open');\n }; // whether the selector is open\n\n\n this.isOpened = function () {\n return _$list.is(':visible');\n }; // add a selected value to the list\n\n\n this.addValue = function (key) {\n var values = _multiple ? _value.slice(0) : []; // clone array\n\n values.push(key);\n\n _self.setValue(values);\n }; // remove a selected value from the list\n\n\n this.removeValue = function (key) {\n if (_multiple) {\n var i,\n newValue = [];\n\n for (i = 0; i < _value.length; i++) {\n if (key != [_value[i]]) {\n newValue.push(_value[i]);\n }\n }\n\n _self.setValue(newValue);\n } else {\n _self.clear();\n }\n }; // set the selected value(s) of the list\n\n\n this.setValue = function (keys) {\n var i,\n newKeys = [],\n saved = _value.join(' ');\n\n if (!$.isArray(keys)) keys = [keys];\n\n _$list.find('li').removeClass('selected');\n\n keys = array_unique(keys);\n keys.sort(function (a, b) {\n var ta = _typeof(a);\n\n var tb = _typeof(b);\n\n if (ta == tb && ta == \"number\") return a - b;else return String(a) == String(b) ? 0 : String(a) < String(b) ? -1 : 1;\n });\n\n if (_multiple) {\n for (i = 0; i < keys.length; i++) {\n if (keys[i] in _values) {\n _values[keys[i]].addClass('selected');\n\n newKeys.push(keys[i]);\n }\n }\n } else {\n if (keys[0] in _values) {\n _values[keys[0]].addClass('selected');\n\n newKeys.push(keys[0]);\n }\n } // remove unallowed values\n\n\n _value = newKeys;\n\n if (saved != _value.join(' ')) {\n _$selector.trigger('selector:change', _multiple ? keys : keys[0]);\n\n return true;\n }\n\n return false;\n }; // get the title text\n\n\n this.getTitleText = function () {\n var getValueText = function getValueText(key) {\n return key in _values ? _values[key].text() : key;\n };\n\n if (_value.length == 0) {\n return _cron.getText('empty_' + _type) || _cron.getText('empty');\n }\n\n var cron = [getValueText(_value[0])],\n i,\n s = _value[0],\n c = _value[0],\n n = _value.length;\n\n for (i = 1; i < n; i++) {\n if (_value[i] == c + 1) {\n c = _value[i];\n cron[cron.length - 1] = getValueText(s) + '-' + getValueText(c);\n } else {\n s = c = _value[i];\n cron.push(getValueText(c));\n }\n }\n\n return cron.join(',');\n }; // clear list\n\n\n this.clear = function () {\n _values = {};\n\n _self.setValue([]);\n\n _$list.empty();\n }; // add a (key, value) pair\n\n\n this.add = function (key, value) {\n if (!(value + '').match(/^[0-9]+$/)) _hasNumericTexts = false;\n\n if (_numeric_zero_pad && _hasNumericTexts && value < 10) {\n value = '0' + value;\n }\n\n var $item = $('<li>' + value + '</li>');\n\n _$list.append($item);\n\n _values[key] = $item;\n $item.click(function () {\n if (_multiple && $(this).hasClass('selected')) {\n _self.removeValue(key);\n } else {\n _self.addValue(key);\n\n if (!_multiple) _self.close();\n }\n });\n }; // expose main jquery object\n\n\n this.$ = _$selector; // constructor\n\n _$block.find('b:eq(0)').after(_$selector).remove();\n\n _$selector.addClass('jqCron-selector-' + _$block.find('.jqCron-selector').length).append(_$title).append(_$list).bind('selector:open', function () {\n if (_hasNumericTexts) {\n var nbcols = 1,\n n = _$list.find('li').length;\n\n if (n > 5 && n <= 16) nbcols = 2;else if (n > 16 && n <= 23) nbcols = 3;else if (n > 23 && n <= 40) nbcols = 4;else if (n > 40) nbcols = 5;\n\n _$list.addClass('cols' + nbcols);\n }\n\n _$list.show();\n }).bind('selector:close', function () {\n _$list.hide();\n }).bind('selector:change', function () {\n _$title.html(_self.getTitleText());\n }).click(function (e) {\n e.stopPropagation();\n }).trigger('selector:change');\n\n $.fn.disableSelection && _$selector.disableSelection(); // only work with jQuery UI\n\n _$title.click(function (e) {\n _self.isOpened() || _cron.isDisabled() ? _self.close() : _self.open();\n });\n\n _self.close();\n\n _self.clear();\n }\n\n this.jqCronSelector = jqCronSelector;\n}).call(window, (jquery__WEBPACK_IMPORTED_MODULE_0___default()));\n/**\n * Generate unique id for each element.\n * Skip elements which have already an id.\n */\n\n(function ($) {\n var jqUID = 0;\n\n var jqGetUID = function jqGetUID(prefix) {\n var id;\n\n while (1) {\n jqUID++;\n id = (prefix || 'JQUID') + '' + jqUID;\n if (!document.getElementById(id)) return id;\n }\n };\n\n $.fn.uniqueId = function (prefix) {\n return this.each(function () {\n if ($(this).attr('id')) return;\n var id = jqGetUID(prefix);\n $(this).attr('id', id);\n });\n };\n}).call(window, (jquery__WEBPACK_IMPORTED_MODULE_0___default()));\n/**\n * Extends jQuery selectors with new block selector\n */\n\n(function ($) {\n $.extend($.expr[':'], {\n container: function container(a) {\n return (a.tagName + '').toLowerCase() in {\n a: 1,\n abbr: 1,\n acronym: 1,\n address: 1,\n b: 1,\n big: 1,\n blockquote: 1,\n button: 1,\n cite: 1,\n code: 1,\n dd: 1,\n del: 1,\n dfn: 1,\n div: 1,\n dt: 1,\n em: 1,\n fieldset: 1,\n form: 1,\n h1: 1,\n h2: 1,\n h3: 1,\n h4: 1,\n h5: 1,\n h6: 1,\n i: 1,\n ins: 1,\n kbd: 1,\n label: 1,\n li: 1,\n p: 1,\n pre: 1,\n q: 1,\n samp: 1,\n small: 1,\n span: 1,\n strong: 1,\n sub: 1,\n sup: 1,\n td: 1,\n tt: 1\n };\n },\n autoclose: function autoclose(a) {\n return (a.tagName + '').toLowerCase() in {\n area: 1,\n base: 1,\n basefont: 1,\n br: 1,\n col: 1,\n frame: 1,\n hr: 1,\n img: 1,\n input: 1,\n link: 1,\n meta: 1,\n param: 1\n };\n }\n });\n}).call(window, (jquery__WEBPACK_IMPORTED_MODULE_0___default()));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL2Nyb24tdWkuanM/NDlmYyJdLCJuYW1lcyI6WyJqcUNyb25EZWZhdWx0U2V0dGluZ3MiLCJ0ZXh0cyIsIm1vbnRoZGF5cyIsImhvdXJzIiwiaG91cl9sYWJlbHMiLCJtaW51dGVzIiwibGFuZyIsImVuYWJsZWRfbWludXRlIiwiZW5hYmxlZF9ob3VyIiwiZW5hYmxlZF9kYXkiLCJlbmFibGVkX3dlZWsiLCJlbmFibGVkX21vbnRoIiwiZW5hYmxlZF95ZWFyIiwibXVsdGlwbGVfZG9tIiwibXVsdGlwbGVfbW9udGgiLCJtdWx0aXBsZV9taW5zIiwibXVsdGlwbGVfZG93IiwibXVsdGlwbGVfdGltZV9ob3VycyIsIm11bHRpcGxlX3RpbWVfbWludXRlcyIsIm51bWVyaWNfemVyb19wYWQiLCJkZWZhdWx0X3BlcmlvZCIsImRlZmF1bHRfdmFsdWUiLCJub19yZXNldF9idXR0b24iLCJkaXNhYmxlZCIsImJpbmRfdG8iLCJiaW5kX21ldGhvZCIsInNldCIsIiRlbGVtZW50IiwidmFsdWUiLCJpcyIsInZhbCIsImRhdGEiLCJnZXQiLCIkIiwiZXh0ZW5kIiwiZHN0Iiwic3JjIiwiaSIsImlzUGxhaW5PYmplY3QiLCJpc0FycmF5Iiwic2xpY2UiLCJ1bmRlZmluZWQiLCJqcUNyb25NZXJnZVNldHRpbmdzIiwib2JqIiwiY2FsbCIsIndpbmRvdyIsImZuIiwianFDcm9uR2V0SW5zdGFuY2UiLCJqcUNyb24iLCJzZXR0aW5ncyIsInNhdmVkX3NldHRpbmdzIiwiZWFjaCIsImNyb24iLCJzYXZlZCIsIiR0aGlzIiwidHJhbnNsYXRpb25zIiwiaXNFbXB0eU9iamVjdCIsImNvbnNvbGUiLCJlcnJvciIsImpxdWVyeV9jb250YWluZXIiLCJqcXVlcnlfZWxlbWVudCIsInVuaXF1ZUlkIiwibmV4dCIsImxlbmd0aCIsInJlbW92ZSIsImluc2VydEFmdGVyIiwiZXJyb3IxIiwicmVwbGFjZSIsInRhZ05hbWUiLCJibHVyIiwic2V0Q3JvbiIsImpxQ3Jvbkluc3RhbmNlcyIsIl9pbml0aWFsaXplZCIsIl9zZWxmIiwiXyRlbHQiLCJfJG9iaiIsIl8kYmxvY2tzIiwiXyRibG9ja1BFUklPRCIsIl8kYmxvY2tET00iLCJfJGJsb2NrTU9OVEgiLCJfJGJsb2NrTUlOUyIsIl8kYmxvY2tET1ciLCJfJGJsb2NrVElNRSIsIl8kY3Jvc3MiLCJfc2VsZWN0b3JzIiwiX3NlbGVjdG9yUGVyaW9kIiwiX3NlbGVjdG9yTWlucyIsIl9zZWxlY3RvclRpbWVIIiwiX3NlbGVjdG9yVGltZU0iLCJfc2VsZWN0b3JEb3ciLCJfc2VsZWN0b3JEb20iLCJfc2VsZWN0b3JNb250aCIsIm5ld1NlbGVjdG9yIiwiJGJsb2NrIiwibXVsdGlwbGUiLCJ0eXBlIiwic2VsZWN0b3IiLCJqcUNyb25TZWxlY3RvciIsImJpbmQiLCJuIiwiY2xvc2VTZWxlY3RvcnMiLCJvIiwiY2xvc2UiLCJib3VuZENoYW5nZWQiLCJzZXRWYWx1ZSIsImdldFZhbHVlIiwidHJpZ2dlciIsImdldENyb24iLCJwdXNoIiwiZGlzYWJsZSIsImFkZENsYXNzIiwiaXNEaXNhYmxlZCIsImVuYWJsZSIsInJlbW92ZUNsYXNzIiwicGVyaW9kIiwiaXRlbXMiLCJnZXRDcm9uVmFsdWUiLCJqb2luIiwic3RyIiwibWFzayIsInNwbGl0IiwiZ2V0VGV4dCIsInNldENyb25WYWx1ZSIsInN1YnN0cmluZyIsImNsZWFyRXJyb3IiLCJlIiwiZ2V0SWQiLCJhdHRyIiwia2V5IiwidGV4dCIsIm1hdGNoIiwiZ2V0SHVtYW5UZXh0IiwiZmluZCIsImdldFNldHRpbmdzIiwibXNnIiwiY2xlYXIiLCJ0cmlnZ2VyQ2hhbmdlIiwiaW5pdCIsImxhYmVsc0xpc3QiLCJsaXN0IiwiYXBwZW5kIiwiaWQiLCJ0ZXN0IiwiY2xpY2siLCJldnQiLCJhZGQiLCJoaWRlIiwic2hvdyIsIl9jcm9uIiwiXyRibG9jayIsIl9tdWx0aXBsZSIsIl90eXBlIiwiXyRsaXN0IiwiXyR0aXRsZSIsIl8kc2VsZWN0b3IiLCJfdmFsdWVzIiwiX3ZhbHVlIiwiX2hhc051bWVyaWNUZXh0cyIsIl9udW1lcmljX3plcm9fcGFkIiwiYXJyYXlfdW5pcXVlIiwibCIsImsiLCJhIiwicyIsImMiLCJ2YWx1ZXMiLCJtIiwib3BlbiIsImlzT3BlbmVkIiwiYWRkVmFsdWUiLCJyZW1vdmVWYWx1ZSIsIm5ld1ZhbHVlIiwia2V5cyIsIm5ld0tleXMiLCJzb3J0IiwiYiIsInRhIiwidGIiLCJTdHJpbmciLCJnZXRUaXRsZVRleHQiLCJnZXRWYWx1ZVRleHQiLCJlbXB0eSIsIiRpdGVtIiwiaGFzQ2xhc3MiLCJhZnRlciIsIm5iY29scyIsImh0bWwiLCJzdG9wUHJvcGFnYXRpb24iLCJkaXNhYmxlU2VsZWN0aW9uIiwianFVSUQiLCJqcUdldFVJRCIsInByZWZpeCIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJleHByIiwiY29udGFpbmVyIiwidG9Mb3dlckNhc2UiLCJhYmJyIiwiYWNyb255bSIsImFkZHJlc3MiLCJiaWciLCJibG9ja3F1b3RlIiwiYnV0dG9uIiwiY2l0ZSIsImNvZGUiLCJkZCIsImRlbCIsImRmbiIsImRpdiIsImR0IiwiZW0iLCJmaWVsZHNldCIsImZvcm0iLCJoMSIsImgyIiwiaDMiLCJoNCIsImg1IiwiaDYiLCJpbnMiLCJrYmQiLCJsYWJlbCIsImxpIiwicCIsInByZSIsInEiLCJzYW1wIiwic21hbGwiLCJzcGFuIiwic3Ryb25nIiwic3ViIiwic3VwIiwidGQiLCJ0dCIsImF1dG9jbG9zZSIsImFyZWEiLCJiYXNlIiwiYmFzZWZvbnQiLCJiciIsImNvbCIsImZyYW1lIiwiaHIiLCJpbWciLCJpbnB1dCIsImxpbmsiLCJtZXRhIiwicGFyYW0iXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUNBLElBQUlBLHFCQUFxQixHQUFHO0FBQ3hCQyxPQUFLLEVBQUUsRUFEaUI7QUFFeEJDLFdBQVMsRUFBRSxD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bkNDLFlBQUksRUFBQyxDQWpDOEI7QUFrQ25DQyxhQUFLLEVBQUMsQ0FsQzZCO0FBbUNuQ0MsWUFBSSxFQUFDLENBbkM4QjtBQW9DbkNDLGNBQU0sRUFBQyxDQXBDNEI7QUFxQ25DQyxXQUFHLEVBQUUsQ0FyQzhCO0FBc0NuQ0MsV0FBRyxFQUFDLENBdEMrQjtBQXVDbkNDLFVBQUUsRUFBQyxDQXZDZ0M7QUF3Q25DQyxVQUFFLEVBQUM7QUF4Q2dDLE9BQXZDO0FBMENILEtBNUNpQjtBQTZDbEJDLGFBQVMsRUFBRSxtQkFBU3hFLENBQVQsRUFBWTtBQUNuQixhQUFPLENBQUNBLENBQUMsQ0FBQzlGLE9BQUYsR0FBVSxFQUFYLEVBQWVnSSxXQUFmLE1BQWdDO0FBQ25DdUMsWUFBSSxFQUFDLENBRDhCO0FBRW5DQyxZQUFJLEVBQUMsQ0FGOEI7QUFHbkNDLGdCQUFRLEVBQUMsQ0FIMEI7QUFJbkNDLFVBQUUsRUFBQyxDQUpnQztBQUtuQ0MsV0FBRyxFQUFDLENBTCtCO0FBTW5DQyxhQUFLLEVBQUMsQ0FONkI7QUFPbkNDLFVBQUUsRUFBQyxDQVBnQztBQVFuQ0MsV0FBRyxFQUFDLENBUitCO0FBU25DQyxhQUFLLEVBQUMsQ0FUNkI7QUFVbkNDLFlBQUksRUFBQyxDQVY4QjtBQVduQ0MsWUFBSSxFQUFDLENBWDhCO0FBWW5DQyxhQUFLLEVBQUM7QUFaNkIsT0FBdkM7QUFjSDtBQTVEaUIsR0FBdEI7QUE4REgsQ0EvREQsRUErREcxTSxJQS9ESCxDQStEUUMsTUEvRFIsRUErRGdCWiwrQ0EvRGhCIiwiZmlsZSI6Ii4vYXBwL3V0aWxzL2Nyb24tdWkuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSAqL1xuaW1wb3J0ICQgZnJvbSAnanF1ZXJ5Jztcbi8qXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQXJuYXBvdSBqcUNyb24gcGFja2FnZS5cbiAqXG4gKiAoYykgQXJuYXVkIEJ1YXRoaWVyIDxhcm5hdWRAYXJuYXBvdS5uZXQ+XG4gKlxuICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0VcbiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLlxuICovXG5cbi8qKlxuICogRGVmYXVsdCBzZXR0aW5nc1xuICovXG52YXIganFDcm9uRGVmYXVsdFNldHRpbmdzID0ge1xuICAgIHRleHRzOiB7fSxcbiAgICBtb250aGRheXM6IFsxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMV0sXG4gICAgaG91cnM6IFswLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjNdLFxuICAgIGhvdXJfbGFiZWxzOiBbXCIwXCIsIFwiMVwiLCBcIjJcIiwgXCIzXCIsIFwiNFwiLCBcIjVcIiwgXCI2XCIsIFwiN1wiLCBcIjhcIiwgXCI5XCIsIFwiMTBcIiwgXCIxMVwiLCBcIjEyXCIsIFwiMTNcIiwgXCIxNFwiLCBcIjE1XCIsIFwiMTZcIiwgXCIxN1wiLCBcIjE4XCIsIFwiMTlcIiwgXCIyMFwiLCBcIjIxXCIsIFwiMjJcIiwgXCIyM1wiXSxcbiAgICBtaW51dGVzOiBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyLCAzMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAzOSwgNDAsIDQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OCwgNDksIDUwLCA1MSwgNTIsIDUzLCA1NCwgNTUsIDU2LCA1NywgNTgsIDU5XSxcbiAgICBsYW5nOiAnZW4nLFxuICAgIGVuYWJsZWRfbWludXRlOiBmYWxzZSxcbiAgICBlbmFibGVkX2hvdXI6IHRydWUsXG4gICAgZW5hYmxlZF9kYXk6IHRydWUsXG4gICAgZW5hYmxlZF93ZWVrOiB0cnVlLFxuICAgIGVuYWJsZWRfbW9udGg6IHRydWUsXG4gICAgZW5hYmxlZF95ZWFyOiB0cnVlLFxuICAgIG11bHRpcGxlX2RvbTogZmFsc2UsXG4gICAgbXVsdGlwbGVfbW9udGg6IGZhbHNlLFxuICAgIG11bHRpcGxlX21pbnM6IGZhbHNlLFxuICAgIG11bHRpcGxlX2RvdzogZmFsc2UsXG4gICAgbXVsdGlwbGVfdGltZV9ob3VyczogZmFsc2UsXG4gICAgbXVsdGlwbGVfdGltZV9taW51dGVzOiBmYWxzZSxcbiAgICBudW1lcmljX3plcm9fcGFkOiBmYWxzZSxcbiAgICBkZWZhdWx0X3BlcmlvZDogJ2RheScsXG4gICAgZGVmYXVsdF92YWx1ZTogJycsXG4gICAgbm9fcmVzZXRfYnV0dG9uOiB0cnVlLFxuICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICBiaW5kX3RvOiBudWxsLFxuICAgIGJpbmRfbWV0aG9kOiB7XG4gICAgICAgIHNldDogZnVuY3Rpb24oJGVsZW1lbnQsIHZhbHVlKSB7XG4gICAgICAgICAgICAkZWxlbWVudC5pcygnOmlucHV0JykgPyAkZWxlbWVudC52YWwodmFsdWUpIDogJGVsZW1lbnQuZGF0YSgnanFDcm9uVmFsdWUnLCB2YWx1ZSk7XG4gICAgICAgIH0sXG4gICAgICAgIGdldDogZnVuY3Rpb24oJGVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudC5pcygnOmlucHV0JykgPyAkZWxlbWVudC52YWwoKSA6ICRlbGVtZW50LmRhdGEoJ2pxQ3JvblZhbHVlJyk7XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG4vKipcbiAqIEN1c3RvbSBleHRlbmQgb2YganNvbiBmb3IganFDcm9uIHNldHRpbmdzLlxuICogV2UgZG9uJ3QgdXNlIGpRdWVyeS5leHRlbmQgYmVjYXVzZSBzaW1wbGUgZXh0ZW5kIGRvZXMgbm90IGZpdCBvdXIgbmVlZHMsIGFuZCBkZWVwIGV4dGVuZCBoYXMgYSBiYWRcbiAqIGZlYXR1cmUgZm9yIHVzIDogaXQgcmVwbGFjZXMga2V5cyBvZiBcIkFycmF5c1wiIGluc3RlYWQgb2YgcmVwbGFjaW5nIHRoZSBmdWxsIGFycmF5LlxuICovXG4oZnVuY3Rpb24oJCl7XG4gICAgdmFyIGV4dGVuZCA9IGZ1bmN0aW9uKGRzdCwgc3JjKSB7XG4gICAgICAgIGZvcih2YXIgaSBpbiBzcmMpIHtcbiAgICAgICAgICAgIGlmKCQuaXNQbGFpbk9iamVjdChzcmNbaV0pKSB7XG4gICAgICAgICAgICAgICAgZHN0W2ldID0gZXh0ZW5kKGRzdFtpXSAmJiAkLmlzUGxhaW5PYmplY3QoZHN0W2ldKSA/IGRzdFtpXSA6IHt9LCBzcmNbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZigkLmlzQXJyYXkoc3JjW2ldKSkge1xuICAgICAgICAgICAgICAgIGRzdFtpXSA9IHNyY1tpXS5zbGljZSgwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYoc3JjW2ldICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBkc3RbaV0gPSBzcmNbaV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRzdDtcbiAgICB9O1xuICAgIHRoaXMuanFDcm9uTWVyZ2VTZXR0aW5ncyA9IGZ1bmN0aW9uKG9iaikge1xuICAgICAgICByZXR1cm4gZXh0ZW5kKGV4dGVuZCh7fSwganFDcm9uRGVmYXVsdFNldHRpbmdzKSwgb2JqIHx8IHt9KTtcbiAgICB9O1xufSkuY2FsbCh3aW5kb3csICQpO1xuXG4vKipcbiAqIFNob3J0Y3V0IHRvIGdldCB0aGUgaW5zdGFuY2Ugb2YganFDcm9uIGluc3RhbmNlIGZyb20gb25lIGpxdWVyeSBvYmplY3RcbiAqL1xuKGZ1bmN0aW9uKCQpe1xuICAgICQuZm4uanFDcm9uR2V0SW5zdGFuY2UgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YSgnanFDcm9uJyk7XG4gICAgfTtcbn0pLmNhbGwod2luZG93LCAkKTtcblxuLyoqXG4gKiBNYWluIHBsdWdpblxuICovXG4oZnVuY3Rpb24oJCl7XG4gICAgJC5mbi5qcUNyb24gPSBmdW5jdGlvbihzZXR0aW5ncykge1xuICAgICAgICB2YXIgc2F2ZWRfc2V0dGluZ3MgPSBzZXR0aW5ncztcbiAgICAgICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciBjcm9uLCBzYXZlZDtcbiAgICAgICAgICAgIHZhciAkdGhpcyA9ICQodGhpcyk7XG4gICAgICAgICAgICB2YXIgc2V0dGluZ3MgPSBqcUNyb25NZXJnZVNldHRpbmdzKHNhdmVkX3NldHRpbmdzKTsgLy8gY2xvbmUgc2V0dGluZ3NcbiAgICAgICAgICAgIHZhciB0cmFuc2xhdGlvbnMgPSBzZXR0aW5ncy50ZXh0c1tzZXR0aW5ncy5sYW5nXTtcblxuICAgICAgICAgICAgaWYgKHR5cGVvZih0cmFuc2xhdGlvbnMpICE9PSAnb2JqZWN0JyB8fCAkLmlzRW1wdHlPYmplY3QodHJhbnNsYXRpb25zKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUgJiYgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgJ01pc3NpbmcgdHJhbnNsYXRpb25zIGZvciBsYW5ndWFnZSBcIicgKyBzZXR0aW5ncy5sYW5nICsgJ1wiLiAnICtcbiAgICAgICAgICAgICAgICAgICAgJ1BsZWFzZSBpbmNsdWRlIGpxQ3Jvbi4nICsgc2V0dGluZ3MubGFuZyArICcuanMgb3IgbWFudWFsbHkgcHJvdmlkZSAnICtcbiAgICAgICAgICAgICAgICAgICAgJ3RoZSBuZWNlc3NhcnkgdHJhbnNsYXRpb25zIHdoZW4gY2FsbGluZyAkLmZuLmpxQ3JvbigpLidcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYoIXNldHRpbmdzLmpxdWVyeV9jb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICBpZigkdGhpcy5pcygnOmNvbnRhaW5lcicpKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldHRpbmdzLmpxdWVyeV9lbGVtZW50ID0gJHRoaXMudW5pcXVlSWQoJ2pxQ3JvbicpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmKCR0aGlzLmlzKCc6YXV0b2Nsb3NlJykpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gZGVsZXRlIGFscmVhZHkgZ2VuZXJhdGVkIGRvbSBpZiBleGlzdHNcbiAgICAgICAgICAgICAgICAgICAgaWYoJHRoaXMubmV4dCgnLmpxQ3JvbicpLmxlbmd0aCA9PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy5uZXh0KCcuanFDcm9uJykucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gZ2VuZXJhdGUgbmV3XG4gICAgICAgICAgICAgICAgICAgIHNldHRpbmdzLmpxdWVyeV9lbGVtZW50ID0gJCgnPHNwYW4gY2xhc3M9XCJqcUNyb25cIj48L3NwYW4+JykudW5pcXVlSWQoJ2pxQ3JvbicpLmluc2VydEFmdGVyKCR0aGlzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUgJiYgY29uc29sZS5lcnJvcihzZXR0aW5ncy50ZXh0c1tzZXR0aW5ncy5sYW5nXS5lcnJvcjEucmVwbGFjZSgnJXMnLCB0aGlzLnRhZ05hbWUpKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gYXV0b3NldCBiaW5kX3RvIGlmIGl0IGlzIGFuIGlucHV0XG4gICAgICAgICAgICBpZigkdGhpcy5pcygnOmlucHV0JykpIHtcbiAgICAgICAgICAgICAgICBzZXR0aW5ncy5iaW5kX3RvID0gc2V0dGluZ3MuYmluZF90byB8fCAkdGhpcztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gaW5pdCBjcm9uIG9iamVjdFxuICAgICAgICAgICAgaWYoc2V0dGluZ3MuYmluZF90byl7XG4gICAgICAgICAgICAgICAgaWYoc2V0dGluZ3MuYmluZF90by5pcygnOmlucHV0JykpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gYXV0byBiaW5kIGZyb20gaW5wdXQgdG8gb2JqZWN0IGlmIGFuIGlucHV0LCB0ZXh0YXJlYSAuLi5cbiAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3MuYmluZF90by5ibHVyKGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBzZXR0aW5ncy5iaW5kX21ldGhvZC5nZXQoc2V0dGluZ3MuYmluZF90byk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy5qcUNyb25HZXRJbnN0YW5jZSgpLnNldENyb24odmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2F2ZWQgPSBzZXR0aW5ncy5iaW5kX21ldGhvZC5nZXQoc2V0dGluZ3MuYmluZF90byk7XG4gICAgICAgICAgICAgICAgY3JvbiA9IG5ldyBqcUNyb24oc2V0dGluZ3MpO1xuICAgICAgICAgICAgICAgIGNyb24uc2V0Q3JvbihzYXZlZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjcm9uID0gbmV3IGpxQ3JvbihzZXR0aW5ncyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkKHRoaXMpLmRhdGEoJ2pxQ3JvbicsIGNyb24pO1xuICAgICAgICB9KTtcbiAgICB9O1xufSkuY2FsbCh3aW5kb3csICQpO1xuXG4vKipcbiAqIGpxQ3JvbiBjbGFzc1xuICovXG4oZnVuY3Rpb24oJCl7XG4gICAgdmFyIGpxQ3Jvbkluc3RhbmNlcyA9IFtdO1xuXG4gICAgZnVuY3Rpb24ganFDcm9uKHNldHRpbmdzKSB7XG4gICAgICAgIHZhciBfaW5pdGlhbGl6ZWQgID0gZmFsc2U7XG4gICAgICAgIHZhciBfc2VsZiAgICAgICAgID0gdGhpcztcbiAgICAgICAgdmFyIF8kZWx0ICAgICAgICAgPSB0aGlzO1xuICAgICAgICB2YXIgXyRvYmogICAgICAgICA9ICQoJzxzcGFuIGNsYXNzPVwianFDcm9uLWNvbnRhaW5lclwiPjwvc3Bhbj4nKTtcbiAgICAgICAgdmFyIF8kYmxvY2tzICAgICAgPSAkKCc8c3BhbiBjbGFzcz1cImpxQ3Jvbi1ibG9ja3NcIj48L3NwYW4+Jyk7XG4gICAgICAgIHZhciBfJGJsb2NrUEVSSU9EID0gJCgnPHNwYW4gY2xhc3M9XCJqcUNyb24tcGVyaW9kXCI+PC9zcGFuPicpO1xuICAgICAgICB2YXIgXyRibG9ja0RPTSAgICA9ICQoJzxzcGFuIGNsYXNzPVwianFDcm9uLWRvbVwiPjwvc3Bhbj4nKTtcbiAgICAgICAgdmFyIF8kYmxvY2tNT05USCAgPSAkKCc8c3BhbiBjbGFzcz1cImpxQ3Jvbi1tb250aFwiPjwvc3Bhbj4nKTtcbiAgICAgICAgdmFyIF8kYmxvY2tNSU5TICAgPSAkKCc8c3BhbiBjbGFzcz1cImpxQ3Jvbi1taW5zXCI+PC9zcGFuPicpO1xuICAgICAgICB2YXIgXyRibG9ja0RPVyAgICA9ICQoJzxzcGFuIGNsYXNzPVwianFDcm9uLWRvd1wiPjwvc3Bhbj4nKTtcbiAgICAgICAgdmFyIF8kYmxvY2tUSU1FICAgPSAkKCc8c3BhbiBjbGFzcz1cImpxQ3Jvbi10aW1lXCI+PC9zcGFuPicpO1xuICAgICAgICB2YXIgXyRjcm9zcyAgICAgICA9ICQoJzxzcGFuIGNsYXNzPVwianFDcm9uLWNyb3NzXCI+JiMxMDAwODs8L3NwYW4+Jyk7XG4gICAgICAgIHZhciBfc2VsZWN0b3JzICAgID0gW107XG4gICAgICAgIHZhciBfc2VsZWN0b3JQZXJpb2QsIF9zZWxlY3Rvck1pbnMsIF9zZWxlY3RvclRpbWVILCBfc2VsZWN0b3JUaW1lTSwgX3NlbGVjdG9yRG93LCBfc2VsZWN0b3JEb20sIF9zZWxlY3Rvck1vbnRoO1xuXG4gICAgICAgIC8vIGluc3RhbmNpYXRlIGEgbmV3IHNlbGVjdG9yXG4gICAgICAgIGZ1bmN0aW9uIG5ld1NlbGVjdG9yKCRibG9jaywgbXVsdGlwbGUsIHR5cGUpe1xuICAgICAgICAgICAgdmFyIHNlbGVjdG9yID0gbmV3IGpxQ3JvblNlbGVjdG9yKF9zZWxmLCAkYmxvY2ssIG11bHRpcGxlLCB0eXBlKTtcbiAgICAgICAgICAgIHNlbGVjdG9yLiQuYmluZCgnc2VsZWN0b3I6b3BlbicsIGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICAgICAgLy8gd2UgY2xvc2UgYWxsIG9wZW5lZCBzZWxlY3RvcnMgb2YgYWxsIG90aGVyIGpxQ3JvblxuICAgICAgICAgICAgICAgIGZvcih2YXIgbiA9IGpxQ3Jvbkluc3RhbmNlcy5sZW5ndGg7IG4tLTsgKXtcbiAgICAgICAgICAgICAgICAgICAgaWYoanFDcm9uSW5zdGFuY2VzW25dICE9IF9zZWxmKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBqcUNyb25JbnN0YW5jZXNbbl0uY2xvc2VTZWxlY3RvcnMoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGNsb3NlIGFsbCBvdGhlciBvcGVuZWQgc2VsZWN0b3JzIG9mIHRoaXMganFDcm9uXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IodmFyIG8gPSBfc2VsZWN0b3JzLmxlbmd0aDsgby0tOyApe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKF9zZWxlY3RvcnNbb10gIT0gc2VsZWN0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3NlbGVjdG9yc1tvXS5jbG9zZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgc2VsZWN0b3IuJC5iaW5kKCdzZWxlY3RvcjpjaGFuZ2UnLCBmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgIHZhciBib3VuZENoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAvLyBkb24ndCBwcm9wYWdhdGUgaWYgbm90IGluaXRpYWxpemVkXG4gICAgICAgICAgICAgICAgaWYoIV9pbml0aWFsaXplZCkgcmV0dXJuO1xuICAgICAgICAgICAgICAgIC8vIGJpbmQgZGF0YSBiZXR3ZWVuIHR3byBtaW51dGUgc2VsZWN0b3JzIChvbmx5IGlmIHRoZXkgaGF2ZSB0aGUgc2FtZSBtdWx0aXBsZSBzZXR0aW5ncylcbiAgICAgICAgICAgICAgICBpZihzZXR0aW5ncy5tdWx0aXBsZV9taW5zID09IHNldHRpbmdzLm11bHRpcGxlX3RpbWVfbWludXRlcykge1xuICAgICAgICAgICAgICAgICAgICBpZihzZWxlY3RvciA9PSBfc2VsZWN0b3JNaW5zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3VuZENoYW5nZWQgPSBfc2VsZWN0b3JUaW1lTS5zZXRWYWx1ZShfc2VsZWN0b3JNaW5zLmdldFZhbHVlKCkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYoc2VsZWN0b3IgPT0gX3NlbGVjdG9yVGltZU0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvdW5kQ2hhbmdlZCA9IF9zZWxlY3Rvck1pbnMuc2V0VmFsdWUoX3NlbGVjdG9yVGltZU0uZ2V0VmFsdWUoKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gd2UgcHJvcGFnYXRlIHRoZSBjaGFuZ2UgZXZlbnQgdG8gdGhlIG1haW4gb2JqZWN0XG4gICAgICAgICAgICAgICAgYm91bmRDaGFuZ2VkIHx8IF8kb2JqLnRyaWdnZXIoJ2Nyb246Y2hhbmdlJywgX3NlbGYuZ2V0Q3JvbigpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgX3NlbGVjdG9ycy5wdXNoKHNlbGVjdG9yKTtcbiAgICAgICAgICAgIHJldHVybiBzZWxlY3RvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGRpc2FibGUgdGhlIHNlbGVjdG9yXG4gICAgICAgIHRoaXMuZGlzYWJsZSA9IGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICBfJG9iai5hZGRDbGFzcygnZGlzYWJsZScpO1xuICAgICAgICAgICAgc2V0dGluZ3MuZGlzYWJsZSA9IHRydWU7XG4gICAgICAgICAgICBfc2VsZi5jbG9zZVNlbGVjdG9ycygpO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIHJldHVybiBpZiB0aGUgc2VsZWN0b3IgaXMgZGlzYWJsZWRcbiAgICAgICAgdGhpcy5pc0Rpc2FibGVkID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICByZXR1cm4gc2V0dGluZ3MuZGlzYWJsZSA9PSB0cnVlO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIGVuYWJsZSB0aGUgc2VsZWN0b3JcbiAgICAgICAgdGhpcy5lbmFibGUgPSBmdW5jdGlvbigpe1xuICAgICAgICAgICAgXyRvYmoucmVtb3ZlQ2xhc3MoJ2Rpc2FibGUnKTtcbiAgICAgICAgICAgIHNldHRpbmdzLmRpc2FibGUgPSBmYWxzZTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBnZXQgY3JvbiB2YWx1ZVxuICAgICAgICB0aGlzLmdldENyb24gPSBmdW5jdGlvbigpe1xuICAgICAgICAgICAgdmFyIHBlcmlvZCA9IF9zZWxlY3RvclBlcmlvZC5nZXRWYWx1ZSgpO1xuICAgICAgICAgICAgdmFyIGl0ZW1zID0gWycqJywgJyonLCAnKicsICcqJywgJyonXTtcbiAgICAgICAgICAgIGlmKHBlcmlvZCA9PSAnaG91cicpIHtcbiAgICAgICAgICAgICAgICBpdGVtc1swXSA9IF9zZWxlY3Rvck1pbnMuZ2V0Q3JvblZhbHVlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZihwZXJpb2QgPT0gJ2RheScgfHwgcGVyaW9kID09ICd3ZWVrJyB8fCBwZXJpb2QgPT0gJ21vbnRoJyB8fCBwZXJpb2QgPT0gJ3llYXInKSB7XG4gICAgICAgICAgICAgICAgaXRlbXNbMF0gPSBfc2VsZWN0b3JUaW1lTS5nZXRDcm9uVmFsdWUoKTtcbiAgICAgICAgICAgICAgICBpdGVtc1sxXSA9IF9zZWxlY3RvclRpbWVILmdldENyb25WYWx1ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYocGVyaW9kID09ICdtb250aCcgfHwgcGVyaW9kID09ICd5ZWFyJykge1xuICAgICAgICAgICAgICAgIGl0ZW1zWzJdID0gX3NlbGVjdG9yRG9tLmdldENyb25WYWx1ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYocGVyaW9kID09ICd5ZWFyJykge1xuICAgICAgICAgICAgICAgIGl0ZW1zWzNdID0gX3NlbGVjdG9yTW9udGguZ2V0Q3JvblZhbHVlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZihwZXJpb2QgPT0gJ3dlZWsnKSB7XG4gICAgICAgICAgICAgICAgaXRlbXNbNF0gPSBfc2VsZWN0b3JEb3cuZ2V0Q3JvblZhbHVlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gaXRlbXMuam9pbignICcpO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIHNldCBjcm9uIChzdHJpbmcgbGlrZSAqICogKiAqICopXG4gICAgICAgIHRoaXMuc2V0Q3JvbiA9IGZ1bmN0aW9uKHN0cikge1xuICAgICAgICAgICAgaWYoIXN0cikgcmV0dXJuO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBzdHIgPSBzdHIucmVwbGFjZSgvXFxzKy9nLCAnICcpLnJlcGxhY2UoL14gKy8sICcnKS5yZXBsYWNlKC8gKyQvLCAnJyk7IC8vIHNhbml0aXplXG4gICAgICAgICAgICAgICAgdmFyIG1hc2sgPSBzdHIucmVwbGFjZSgvW15cXCogXS9nLCAnLScpLnJlcGxhY2UoLy0rL2csICctJykucmVwbGFjZSgvICsvZywgJycpO1xuICAgICAgICAgICAgICAgIHZhciBpdGVtcyA9IHN0ci5zcGxpdCgnICcpO1xuICAgICAgICAgICAgICAgIGlmIChpdGVtcy5sZW5ndGggIT0gNSkgX3NlbGYuZXJyb3IoX3NlbGYuZ2V0VGV4dCgnZXJyb3IyJykpO1xuICAgICAgICAgICAgICAgIGlmKG1hc2sgPT0gJyoqKioqJykge1x0XHRcdFx0XHRcdC8vIDEgcG9zc2liaWxpdHlcbiAgICAgICAgICAgICAgICAgICAgX3NlbGVjdG9yUGVyaW9kLnNldFZhbHVlKCdtaW51dGUnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZihtYXNrID09ICctKioqKicpIHtcdFx0XHRcdFx0Ly8gMSBwb3NzaWJpbGl0eVxuICAgICAgICAgICAgICAgICAgICBfc2VsZWN0b3JQZXJpb2Quc2V0VmFsdWUoJ2hvdXInKTtcbiAgICAgICAgICAgICAgICAgICAgX3NlbGVjdG9yTWlucy5zZXRDcm9uVmFsdWUoaXRlbXNbMF0pO1xuICAgICAgICAgICAgICAgICAgICBfc2VsZWN0b3JUaW1lTS5zZXRDcm9uVmFsdWUoaXRlbXNbMF0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmKG1hc2suc3Vic3RyaW5nKDIsIG1hc2subGVuZ3RoKSA9PSAnKioqJykge1x0XHRcdC8vIDQgcG9zc2liaWxpdGllc1xuICAgICAgICAgICAgICAgICAgICBfc2VsZWN0b3JQZXJpb2Quc2V0VmFsdWUoJ2RheScpO1xuICAgICAgICAgICAgICAgICAgICBfc2VsZWN0b3JNaW5zLnNldENyb25WYWx1ZShpdGVtc1swXSk7XG4gICAgICAgICAgICAgICAgICAgIF9zZWxlY3RvclRpbWVNLnNldENyb25WYWx1ZShpdGVtc1swXSk7XG4gICAgICAgICAgICAgICAgICAgIF9zZWxlY3RvclRpbWVILnNldENyb25WYWx1ZShpdGVtc1sxXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYobWFzay5zdWJzdHJpbmcoMiwgbWFzay5sZW5ndGgpID09ICctKionKSB7XHRcdFx0Ly8gNCBwb3NzaWJpbGl0aWVzXG4gICAgICAgICAgICAgICAgICAgIF9zZWxlY3RvclBlcmlvZC5zZXRWYWx1ZSgnbW9udGgnKTtcbiAgICAgICAgICAgICAgICAgICAgX3NlbGVjdG9yTWlucy5zZXRDcm9uVmFsdWUoaXRlbXNbMF0pO1xuICAgICAgICAgICAgICAgICAgICBfc2VsZWN0b3JUaW1lTS5zZXRDcm9uVmFsdWUoaXRlbXNbMF0pO1xuICAgICAgICAgICAgICAgICAgICBfc2VsZWN0b3JUaW1lSC5zZXRDcm9uVmFsdWUoaXRlbXNbMV0pO1xuICAgICAgICAgICAgICAgICAgICBfc2VsZWN0b3JEb20uc2V0Q3JvblZhbHVlKGl0ZW1zWzJdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZihtYXNrLnN1YnN0cmluZygyLCBtYXNrLmxlbmd0aCkgPT0gJyoqLScpIHtcdFx0XHQvLyA0IHBvc3NpYmlsaXRpZXNcbiAgICAgICAgICAgICAgICAgICAgX3NlbGVjdG9yUGVyaW9kLnNldFZhbHVlKCd3ZWVrJyk7XG4gICAgICAgICAgICAgICAgICAgIF9zZWxlY3Rvck1pbnMuc2V0Q3JvblZhbHVlKGl0ZW1zWzBdKTtcbiAgICAgICAgICAgICAgICAgICAgX3NlbGVjdG9yVGltZU0uc2V0Q3JvblZhbHVlKGl0ZW1zWzBdKTtcbiAgICAgICAgICAgICAgICAgICAgX3NlbGVjdG9yVGltZUguc2V0Q3JvblZhbHVlKGl0ZW1zWzFdKTtcbiAgICAgICAgICAgICAgICAgICAgX3NlbGVjdG9yRG93LnNldENyb25WYWx1ZShpdGVtc1s0XSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1hc2suc3Vic3RyaW5nKDMsIG1hc2subGVuZ3RoKSA9PSAnLSonKSB7XHRcdFx0Ly8gOCBwb3NzaWJpbGl0aWVzXG4gICAgICAgICAgICAgICAgICAgIF9zZWxlY3RvclBlcmlvZC5zZXRWYWx1ZSgneWVhcicpO1xuICAgICAgICAgICAgICAgICAgICBfc2VsZWN0b3JNaW5zLnNldENyb25WYWx1ZShpdGVtc1swXSk7XG4gICAgICAgICAgICAgICAgICAgIF9zZWxlY3RvclRpbWVNLnNldENyb25WYWx1ZShpdGVtc1swXSk7XG4gICAgICAgICAgICAgICAgICAgIF9zZWxlY3RvclRpbWVILnNldENyb25WYWx1ZShpdGVtc1sxXSk7XG4gICAgICAgICAgICAgICAgICAgIF9zZWxlY3RvckRvbS5zZXRDcm9uVmFsdWUoaXRlbXNbMl0pO1xuICAgICAgICAgICAgICAgICAgICBfc2VsZWN0b3JNb250aC5zZXRDcm9uVmFsdWUoaXRlbXNbM10pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgX3NlbGYuZXJyb3IoX3NlbGYuZ2V0VGV4dCgnZXJyb3I0JykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBfc2VsZi5jbGVhckVycm9yKCk7XG4gICAgICAgICAgICB9IGNhdGNoKGUpIHt9XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gY2xvc2UgYWxsIGNoaWxkIHNlbGVjdG9yc1xuICAgICAgICB0aGlzLmNsb3NlU2VsZWN0b3JzID0gZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIGZvcih2YXIgbiA9IF9zZWxlY3RvcnMubGVuZ3RoOyBuLS07ICl7XG4gICAgICAgICAgICAgICAgX3NlbGVjdG9yc1tuXS5jbG9zZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIGdldCB0aGUgbWFpbiBlbGVtZW50IGlkXG4gICAgICAgIHRoaXMuZ2V0SWQgPSBmdW5jdGlvbigpe1xuICAgICAgICAgICAgcmV0dXJuIF8kZWx0LmF0dHIoJ2lkJyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBnZXQgdGhlIHRyYW5zbGF0ZWQgdGV4dFxuICAgICAgICB0aGlzLmdldFRleHQgPSBmdW5jdGlvbihrZXkpIHtcbiAgICAgICAgICAgIHZhciB0ZXh0ID0gc2V0dGluZ3MudGV4dHNbc2V0dGluZ3MubGFuZ11ba2V5XSB8fCBudWxsO1xuICAgICAgICAgICAgaWYodHlwZW9mKHRleHQpID09IFwic3RyaW5nXCIgJiYgdGV4dC5tYXRjaCgnPGInKSl7XG4gICAgICAgICAgICAgICAgdGV4dCA9IHRleHQucmVwbGFjZSgvKDxiICpcXC8+KS9naSwgJzwvc3Bhbj48YiAvPjxzcGFuIGNsYXNzPVwianFDcm9uLXRleHRcIj4nKTtcbiAgICAgICAgICAgICAgICB0ZXh0ID0gJzxzcGFuIGNsYXNzPVwianFDcm9uLXRleHRcIj4nICsgdGV4dCArICc8L3NwYW4+JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0ZXh0O1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIGdldCB0aGUgaHVtYW4gcmVhZGFibGUgdGV4dFxuICAgICAgICB0aGlzLmdldEh1bWFuVGV4dCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIHRleHRzPVtdO1xuICAgICAgICAgICAgXyRvYmpcbiAgICAgICAgICAgICAgICAuZmluZCgnPiBzcGFuID4gc3Bhbjp2aXNpYmxlJylcbiAgICAgICAgICAgICAgICAuZmluZCgnLmpxQ3Jvbi10ZXh0LCAuanFDcm9uLXNlbGVjdG9yID4gc3BhbicpXG4gICAgICAgICAgICAgICAgLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciB0ZXh0ID0gJCh0aGlzKS50ZXh0KCkucmVwbGFjZSgvXFxzKyQvZywgJycpLnJlcGxhY2UoL15cXHMrL2csICcnKTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dCAmJiB0ZXh0cy5wdXNoKHRleHQpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHRleHRzLmpvaW4oJyAnKS5yZXBsYWNlKC9cXHM6XFxzL2csICc6Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBnZXQgc2V0dGluZ3NcbiAgICAgICAgdGhpcy5nZXRTZXR0aW5ncyA9IGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICByZXR1cm4gc2V0dGluZ3M7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gZGlzcGxheSBhbiBlcnJvclxuICAgICAgICB0aGlzLmVycm9yID0gZnVuY3Rpb24obXNnKSB7XG4gICAgICAgICAgICBjb25zb2xlICYmIGNvbnNvbGUuZXJyb3IoJ1tqcUNyb24gRXJyb3JdICcgKyBtc2cpO1xuICAgICAgICAgICAgXyRvYmouYWRkQ2xhc3MoJ2pxQ3Jvbi1lcnJvcicpLmF0dHIoJ3RpdGxlJywgbXNnKTtcbiAgICAgICAgICAgIHRocm93IG1zZztcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBjbGVhciBlcnJvclxuICAgICAgICB0aGlzLmNsZWFyRXJyb3IgPSBmdW5jdGlvbigpe1xuICAgICAgICAgICAgXyRvYmouYXR0cigndGl0bGUnLCAnJykucmVtb3ZlQ2xhc3MoJ2pxQ3Jvbi1lcnJvcicpO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIGNsZWFyXG4gICAgICAgIHRoaXMuY2xlYXIgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIF9zZWxlY3RvckRvbS5zZXRWYWx1ZShbXSk7XG4gICAgICAgICAgICBfc2VsZWN0b3JEb3cuc2V0VmFsdWUoW10pO1xuICAgICAgICAgICAgX3NlbGVjdG9yTWlucy5zZXRWYWx1ZShbXSk7XG4gICAgICAgICAgICBfc2VsZWN0b3JNb250aC5zZXRWYWx1ZShbXSk7XG4gICAgICAgICAgICBfc2VsZWN0b3JUaW1lSC5zZXRWYWx1ZShbXSk7XG4gICAgICAgICAgICBfc2VsZWN0b3JUaW1lTS5zZXRWYWx1ZShbXSk7XG4gICAgICAgICAgICBfc2VsZi50cmlnZ2VyQ2hhbmdlKCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gaW5pdCAoY2FsbGVkIGluIGNvbnN0cnVjdG9yKVxuICAgICAgICB0aGlzLmluaXQgPSBmdW5jdGlvbigpe1xuICAgICAgICAgICAgdmFyIG4saSxsYWJlbHNMaXN0LGxpc3Q7XG4gICAgICAgICAgICBpZihfaW5pdGlhbGl6ZWQpIHJldHVybjtcblxuICAgICAgICAgICAgc2V0dGluZ3MgPSBqcUNyb25NZXJnZVNldHRpbmdzKHNldHRpbmdzKTtcbiAgICAgICAgICAgIHNldHRpbmdzLmpxdWVyeV9lbGVtZW50IHx8IF9zZWxmLmVycm9yKF9zZWxmLmdldFRleHQoJ2Vycm9yMycpKTtcbiAgICAgICAgICAgIF8kZWx0ID0gc2V0dGluZ3MuanF1ZXJ5X2VsZW1lbnQ7XG4gICAgICAgICAgICBfJGVsdC5hcHBlbmQoXyRvYmopO1xuICAgICAgICAgICAgXyRvYmouZGF0YSgnaWQnLCBzZXR0aW5ncy5pZCk7XG4gICAgICAgICAgICBfJG9iai5kYXRhKCdqcUNyb24nLCBfc2VsZik7XG4gICAgICAgICAgICBfJG9iai5hcHBlbmQoXyRibG9ja3MpO1xuICAgICAgICAgICAgc2V0dGluZ3Mubm9fcmVzZXRfYnV0dG9uIHx8IF8kb2JqLmFwcGVuZChfJGNyb3NzKTtcbiAgICAgICAgICAgICghc2V0dGluZ3MuZGlzYWJsZSkgfHwgXyRvYmouYWRkQ2xhc3MoJ2Rpc2FibGUnKTtcbiAgICAgICAgICAgIF8kYmxvY2tzLmFwcGVuZChfJGJsb2NrUEVSSU9EKTtcblxuICAgICAgICAgICAgaWYgKCAvXihrbykkL2kudGVzdChzZXR0aW5ncy5sYW5nKSApXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgXyRibG9ja3MuYXBwZW5kKF8kYmxvY2tNT05USCwgXyRibG9ja0RPTSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgXyRibG9ja3MuYXBwZW5kKF8kYmxvY2tET00sIF8kYmxvY2tNT05USCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIF8kYmxvY2tzLmFwcGVuZChfJGJsb2NrTUlOUyk7XG4gICAgICAgICAgICBfJGJsb2Nrcy5hcHBlbmQoXyRibG9ja0RPVyk7XG4gICAgICAgICAgICBfJGJsb2Nrcy5hcHBlbmQoXyRibG9ja1RJTUUpO1xuXG4gICAgICAgICAgICAvLyB2YXJpb3VzIGJpbmRpbmdcbiAgICAgICAgICAgIF8kY3Jvc3MuY2xpY2soZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICAgICBfc2VsZi5pc0Rpc2FibGVkKCkgfHwgX3NlbGYuY2xlYXIoKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAvLyBiaW5kaW5nIGZyb20gY3JvbiB0byB0YXJnZXRcbiAgICAgICAgICAgIF8kb2JqLmJpbmQoJ2Nyb246Y2hhbmdlJywgZnVuY3Rpb24oZXZ0LCB2YWx1ZSl7XG4gICAgICAgICAgICAgICAgaWYoIXNldHRpbmdzLmJpbmRfdG8pIHJldHVybjtcbiAgICAgICAgICAgICAgICBzZXR0aW5ncy5iaW5kX21ldGhvZC5zZXQgJiYgc2V0dGluZ3MuYmluZF9tZXRob2Quc2V0KHNldHRpbmdzLmJpbmRfdG8sIHZhbHVlKTtcbiAgICAgICAgICAgICAgICBfc2VsZi5jbGVhckVycm9yKCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLy8gUEVSSU9EXG4gICAgICAgICAgICBfJGJsb2NrUEVSSU9ELmFwcGVuZChfc2VsZi5nZXRUZXh0KCd0ZXh0X3BlcmlvZCcpKTtcbiAgICAgICAgICAgIF9zZWxlY3RvclBlcmlvZCA9IG5ld1NlbGVjdG9yKF8kYmxvY2tQRVJJT0QsIGZhbHNlLCAncGVyaW9kJyk7XG4gICAgICAgICAgICBzZXR0aW5ncy5lbmFibGVkX21pbnV0ZSAmJiBfc2VsZWN0b3JQZXJpb2QuYWRkKCdtaW51dGUnLCBfc2VsZi5nZXRUZXh0KCduYW1lX21pbnV0ZScpKTtcbiAgICAgICAgICAgIHNldHRpbmdzLmVuYWJsZWRfaG91ciAgICYmIF9zZWxlY3RvclBlcmlvZC5hZGQoJ2hvdXInLCAgIF9zZWxmLmdldFRleHQoJ25hbWVfaG91cicpKTtcbiAgICAgICAgICAgIHNldHRpbmdzLmVuYWJsZWRfZGF5ICAgICYmIF9zZWxlY3RvclBlcmlvZC5hZGQoJ2RheScsICAgIF9zZWxmLmdldFRleHQoJ25hbWVfZGF5JykpO1xuICAgICAgICAgICAgc2V0dGluZ3MuZW5hYmxlZF93ZWVrICAgJiYgX3NlbGVjdG9yUGVyaW9kLmFkZCgnd2VlaycsICAgX3NlbGYuZ2V0VGV4dCgnbmFtZV93ZWVrJykpO1xuICAgICAgICAgICAgc2V0dGluZ3MuZW5hYmxlZF9tb250aCAgJiYgX3NlbGVjdG9yUGVyaW9kLmFkZCgnbW9udGgnLCAgX3NlbGYuZ2V0VGV4dCgnbmFtZV9tb250aCcpKTtcbiAgICAgICAgICAgIHNldHRpbmdzLmVuYWJsZWRfeWVhciAgICYmIF9zZWxlY3RvclBlcmlvZC5hZGQoJ3llYXInLCAgIF9zZWxmLmdldFRleHQoJ25hbWVfeWVhcicpKTtcbiAgICAgICAgICAgIF9zZWxlY3RvclBlcmlvZC4kLmJpbmQoJ3NlbGVjdG9yOmNoYW5nZScsIGZ1bmN0aW9uKGUsIHZhbHVlKXtcbiAgICAgICAgICAgICAgICBfJGJsb2NrRE9NLmhpZGUoKTtcbiAgICAgICAgICAgICAgICBfJGJsb2NrTU9OVEguaGlkZSgpO1xuICAgICAgICAgICAgICAgIF8kYmxvY2tNSU5TLmhpZGUoKTtcbiAgICAgICAgICAgICAgICBfJGJsb2NrRE9XLmhpZGUoKTtcbiAgICAgICAgICAgICAgICBfJGJsb2NrVElNRS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgaWYodmFsdWUgPT0gJ2hvdXInKSB7XG4gICAgICAgICAgICAgICAgICAgIF8kYmxvY2tNSU5TLnNob3coKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZih2YWx1ZSA9PSAnZGF5Jykge1xuICAgICAgICAgICAgICAgICAgICBfJGJsb2NrVElNRS5zaG93KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYodmFsdWUgPT0gJ3dlZWsnKSB7XG4gICAgICAgICAgICAgICAgICAgIF8kYmxvY2tET1cuc2hvdygpO1xuICAgICAgICAgICAgICAgICAgICBfJGJsb2NrVElNRS5zaG93KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYodmFsdWUgPT0gJ21vbnRoJykge1xuICAgICAgICAgICAgICAgICAgICBfJGJsb2NrRE9NLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgXyRibG9ja1RJTUUuc2hvdygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmKHZhbHVlID09ICd5ZWFyJykge1xuICAgICAgICAgICAgICAgICAgICBfJGJsb2NrRE9NLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgXyRibG9ja01PTlRILnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgXyRibG9ja1RJTUUuc2hvdygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgX3NlbGVjdG9yUGVyaW9kLnNldFZhbHVlKHNldHRpbmdzLmRlZmF1bHRfcGVyaW9kKTtcblxuICAgICAgICAgICAgLy8gTUlOUyAgKG1pbnV0ZXMpXG4gICAgICAgICAgICBfJGJsb2NrTUlOUy5hcHBlbmQoX3NlbGYuZ2V0VGV4dCgndGV4dF9taW5zJykpO1xuICAgICAgICAgICAgX3NlbGVjdG9yTWlucyA9IG5ld1NlbGVjdG9yKF8kYmxvY2tNSU5TLCBzZXR0aW5ncy5tdWx0aXBsZV9taW5zLCAnbWludXRlcycpO1xuICAgICAgICAgICAgZm9yKGk9MCwgbGlzdD1zZXR0aW5ncy5taW51dGVzOyBpPGxpc3QubGVuZ3RoOyBpKyspe1xuICAgICAgICAgICAgICAgIF9zZWxlY3Rvck1pbnMuYWRkKGxpc3RbaV0sIGxpc3RbaV0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBUSU1FICAoaG91cjptaW4pXG4gICAgICAgICAgICBfJGJsb2NrVElNRS5hcHBlbmQoX3NlbGYuZ2V0VGV4dCgndGV4dF90aW1lJykpO1xuICAgICAgICAgICAgX3NlbGVjdG9yVGltZUggPSBuZXdTZWxlY3RvcihfJGJsb2NrVElNRSwgc2V0dGluZ3MubXVsdGlwbGVfdGltZV9ob3VycywgJ3RpbWVfaG91cnMnKTtcbiAgICAgICAgICAgIGZvcihpPTAsIGxpc3Q9c2V0dGluZ3MuaG91cnMsIGxhYmVsc0xpc3Q9c2V0dGluZ3MuaG91cl9sYWJlbHM7IGk8bGlzdC5sZW5ndGg7IGkrKyl7XG4gICAgICAgICAgICAgICAgX3NlbGVjdG9yVGltZUguYWRkKGxpc3RbaV0sIGxhYmVsc0xpc3RbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgX3NlbGVjdG9yVGltZU0gPSBuZXdTZWxlY3RvcihfJGJsb2NrVElNRSwgc2V0dGluZ3MubXVsdGlwbGVfdGltZV9taW51dGVzLCAndGltZV9taW51dGVzJyk7XG4gICAgICAgICAgICBmb3IoaT0wLCBsaXN0PXNldHRpbmdzLm1pbnV0ZXM7IGk8bGlzdC5sZW5ndGg7IGkrKyl7XG4gICAgICAgICAgICAgICAgX3NlbGVjdG9yVGltZU0uYWRkKGxpc3RbaV0sIGxpc3RbaV0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBET1cgIChkYXkgb2Ygd2VlaylcbiAgICAgICAgICAgIF8kYmxvY2tET1cuYXBwZW5kKF9zZWxmLmdldFRleHQoJ3RleHRfZG93JykpO1xuICAgICAgICAgICAgX3NlbGVjdG9yRG93ID0gbmV3U2VsZWN0b3IoXyRibG9ja0RPVywgc2V0dGluZ3MubXVsdGlwbGVfZG93LCAnZGF5X29mX3dlZWsnKTtcbiAgICAgICAgICAgIGZvcihpPTAsIGxpc3Q9X3NlbGYuZ2V0VGV4dCgnd2Vla2RheXMnKTsgaTxsaXN0Lmxlbmd0aDsgaSsrKXtcbiAgICAgICAgICAgICAgICBfc2VsZWN0b3JEb3cuYWRkKGkrMSwgbGlzdFtpXSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIERPTSAgKGRheSBvZiBtb250aClcbiAgICAgICAgICAgIF8kYmxvY2tET00uYXBwZW5kKF9zZWxmLmdldFRleHQoJ3RleHRfZG9tJykpO1xuICAgICAgICAgICAgX3NlbGVjdG9yRG9tID0gbmV3U2VsZWN0b3IoXyRibG9ja0RPTSwgc2V0dGluZ3MubXVsdGlwbGVfZG9tLCAnZGF5X29mX21vbnRoJyk7XG4gICAgICAgICAgICBmb3IoaT0wLCBsaXN0PXNldHRpbmdzLm1vbnRoZGF5czsgaTxsaXN0Lmxlbmd0aDsgaSsrKXtcbiAgICAgICAgICAgICAgICBfc2VsZWN0b3JEb20uYWRkKGxpc3RbaV0sIGxpc3RbaV0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBNT05USCAgKGRheSBvZiB3ZWVrKVxuICAgICAgICAgICAgXyRibG9ja01PTlRILmFwcGVuZChfc2VsZi5nZXRUZXh0KCd0ZXh0X21vbnRoJykpO1xuICAgICAgICAgICAgX3NlbGVjdG9yTW9udGggPSBuZXdTZWxlY3RvcihfJGJsb2NrTU9OVEgsIHNldHRpbmdzLm11bHRpcGxlX21vbnRoLCAnbW9udGgnKTtcbiAgICAgICAgICAgIGZvcihpPTAsIGxpc3Q9X3NlbGYuZ2V0VGV4dCgnbW9udGhzJyk7IGk8bGlzdC5sZW5ndGg7IGkrKyl7XG4gICAgICAgICAgICAgICAgX3NlbGVjdG9yTW9udGguYWRkKGkrMSwgbGlzdFtpXSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGNsb3NlIGFsbCBzZWxlY3RvcnMgd2hlbiB3ZSBjbGljayBpbiBib2R5XG4gICAgICAgICAgICAkKCdib2R5JykuY2xpY2soZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICAgICB2YXIgaSwgbiA9IF9zZWxlY3RvcnMubGVuZ3RoO1xuICAgICAgICAgICAgICAgIGZvcihpID0gMDsgaSA8IG47IGkrKyl7XG4gICAgICAgICAgICAgICAgICAgIF9zZWxlY3RvcnNbaV0uY2xvc2UoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIF9pbml0aWFsaXplZCA9IHRydWU7XG5cbiAgICAgICAgICAgIC8vIGRlZmF1bHQgdmFsdWVcbiAgICAgICAgICAgIGlmKHNldHRpbmdzLmRlZmF1bHRfdmFsdWUpIHtcbiAgICAgICAgICAgICAgICBfc2VsZi5zZXRDcm9uKHNldHRpbmdzLmRlZmF1bHRfdmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIHRyaWdnZXIgYSBjaGFuZ2UgZXZlbnRcbiAgICAgICAgdGhpcy50cmlnZ2VyQ2hhbmdlID0gZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIF8kb2JqLnRyaWdnZXIoJ2Nyb246Y2hhbmdlJywgX3NlbGYuZ2V0Q3JvbigpKTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBzdG9yZSBpbnN0YW5jZSBpbiBhcnJheVxuICAgICAgICBqcUNyb25JbnN0YW5jZXMucHVzaCh0aGlzKTtcblxuICAgICAgICAvLyBleHBvc2UgbWFpbiBqcXVlcnkgb2JqZWN0XG4gICAgICAgIHRoaXMuJCA9IF8kb2JqO1xuXG4gICAgICAgIC8vIGluaXRcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMuaW5pdCgpO1xuICAgICAgICAgICAgX3NlbGYudHJpZ2dlckNoYW5nZSgpO1xuICAgICAgICB9IGNhdGNoKGUpe31cbiAgICB9XG4gICAgdGhpcy5qcUNyb24gPSBqcUNyb247XG59KS5jYWxsKHdpbmRvdywgJCk7XG5cblxuLyoqXG4gKiBqcUNyb25TZWxlY3RvciBjbGFzc1xuICovXG4oZnVuY3Rpb24oJCl7XG4gICAgZnVuY3Rpb24ganFDcm9uU2VsZWN0b3IoX2Nyb24sIF8kYmxvY2ssIF9tdWx0aXBsZSwgX3R5cGUpe1xuICAgICAgICB2YXIgX3NlbGYgICAgICA9IHRoaXM7XG4gICAgICAgIHZhciBfJGxpc3QgICAgID0gJCgnPHVsIGNsYXNzPVwianFDcm9uLXNlbGVjdG9yLWxpc3RcIj48L3VsPicpO1xuICAgICAgICB2YXIgXyR0aXRsZSAgICA9ICQoJzxzcGFuIGNsYXNzPVwianFDcm9uLXNlbGVjdG9yLXRpdGxlXCI+PC9zcGFuPicpO1xuICAgICAgICB2YXIgXyRzZWxlY3RvciA9ICQoJzxzcGFuIGNsYXNzPVwianFDcm9uLXNlbGVjdG9yXCI+PC9zcGFuPicpO1xuICAgICAgICB2YXIgX3ZhbHVlcyAgICA9IHt9O1xuICAgICAgICB2YXIgX3ZhbHVlICAgICA9IFtdO1xuICAgICAgICB2YXIgX2hhc051bWVyaWNUZXh0cyA9IHRydWU7XG4gICAgICAgIHZhciBfbnVtZXJpY196ZXJvX3BhZCA9IF9jcm9uLmdldFNldHRpbmdzKCkubnVtZXJpY196ZXJvX3BhZDtcblxuICAgICAgICAvLyByZXR1cm4gYW4gYXJyYXkgd2l0aG91dCBkb3VibG9uXG4gICAgICAgIGZ1bmN0aW9uIGFycmF5X3VuaXF1ZShsKXtcbiAgICAgICAgICAgIHZhciBpPTAsbj1sLmxlbmd0aCxrPXt9LGE9W107XG4gICAgICAgICAgICB3aGlsZShpPG4pIHtcbiAgICAgICAgICAgICAgICBrW2xbaV1dIHx8IChrW2xbaV1dID0gMSAmJiBhLnB1c2gobFtpXSkpO1xuICAgICAgICAgICAgICAgIGkrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBhO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZ2V0IHRoZSB2YWx1ZSAoYW4gYXJyYXkgaWYgbXVsdGlwbGUsIGVsc2UgYSBzaW5nbGUgdmFsdWUpXG4gICAgICAgIHRoaXMuZ2V0VmFsdWUgPSBmdW5jdGlvbigpe1xuICAgICAgICAgICAgcmV0dXJuIF9tdWx0aXBsZSA/IF92YWx1ZSA6IF92YWx1ZVswXTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBnZXQgYSBjb3JyZWN0IHN0cmluZyBmb3IgY3JvblxuICAgICAgICB0aGlzLmdldENyb25WYWx1ZSA9IGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICBpZihfdmFsdWUubGVuZ3RoID09IDApIHJldHVybiAnKic7XG4gICAgICAgICAgICB2YXIgY3JvbiA9IFtfdmFsdWVbMF1dLCBpLCBzID0gX3ZhbHVlWzBdLCBjID0gX3ZhbHVlWzBdLCBuID0gX3ZhbHVlLmxlbmd0aDtcbiAgICAgICAgICAgIGZvcihpPTE7IGk8bjsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYoX3ZhbHVlW2ldID09IGMrMSkge1xuICAgICAgICAgICAgICAgICAgICBjID0gX3ZhbHVlW2ldO1xuICAgICAgICAgICAgICAgICAgICBjcm9uW2Nyb24ubGVuZ3RoLTFdID0gcysnLScrYztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHMgPSBjID0gX3ZhbHVlW2ldO1xuICAgICAgICAgICAgICAgICAgICBjcm9uLnB1c2goYyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGNyb24uam9pbignLCcpO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIHNldCB0aGUgY3JvbiB2YWx1ZVxuICAgICAgICB0aGlzLnNldENyb25WYWx1ZSA9IGZ1bmN0aW9uKHN0cikge1xuICAgICAgICAgICAgdmFyIHZhbHVlcyA9IFtdLCBtICxpLCBuO1xuICAgICAgICAgICAgaWYoc3RyICE9PSAnKicpIHtcbiAgICAgICAgICAgICAgICB3aGlsZShzdHIgIT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gdGVzdCBcIiovblwiIGV4cHJlc3Npb25cbiAgICAgICAgICAgICAgICAgICAgbSA9IHN0ci5tYXRjaCgvXlxcKlxcLyhbMC05XSspLD8vKTtcbiAgICAgICAgICAgICAgICAgICAgaWYobSAmJiBtLmxlbmd0aCA9PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IoaT0wOyBpPD01OTsgaSs9KG1bMV18MCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0ciA9IHN0ci5yZXBsYWNlKG1bMF0sICcnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIHRlc3QgXCJhLWIvblwiIGV4cHJlc3Npb25cbiAgICAgICAgICAgICAgICAgICAgbSA9IHN0ci5tYXRjaCgvXihbMC05XSspLShbMC05XSspXFwvKFswLTldKyksPy8pO1xuICAgICAgICAgICAgICAgICAgICBpZihtICYmIG0ubGVuZ3RoID09IDQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcihpPShtWzFdfDApOyBpPD0obVsyXXwwKTsgaSs9KG1bM118MCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0ciA9IHN0ci5yZXBsYWNlKG1bMF0sICcnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIHRlc3QgXCJhLWJcIiBleHByZXNzaW9uXG4gICAgICAgICAgICAgICAgICAgIG0gPSBzdHIubWF0Y2goL14oWzAtOV0rKS0oWzAtOV0rKSw/Lyk7XG4gICAgICAgICAgICAgICAgICAgIGlmKG0gJiYgbS5sZW5ndGggPT0gMykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yKGk9KG1bMV18MCk7IGk8PShtWzJdfDApOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0ciA9IHN0ci5yZXBsYWNlKG1bMF0sICcnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIHRlc3QgXCJjXCIgZXhwcmVzc2lvblxuICAgICAgICAgICAgICAgICAgICBtID0gc3RyLm1hdGNoKC9eKFswLTldKyksPy8pO1xuICAgICAgICAgICAgICAgICAgICBpZihtICYmIG0ubGVuZ3RoID09IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKG1bMV18MCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHIgPSBzdHIucmVwbGFjZShtWzBdLCAnJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBzb21ldGhpbmcgZ29lcyB3cm9uZyBpbiB0aGUgZXhwcmVzc2lvblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF9zZWxmLnNldFZhbHVlKHZhbHVlcyk7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gY2xvc2UgdGhlIHNlbGVjdG9yXG4gICAgICAgIHRoaXMuY2xvc2UgPSBmdW5jdGlvbigpe1xuICAgICAgICAgICAgXyRzZWxlY3Rvci50cmlnZ2VyKCdzZWxlY3RvcjpjbG9zZScpO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIG9wZW4gdGhlIHNlbGVjdG9yXG4gICAgICAgIHRoaXMub3BlbiA9IGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICBfJHNlbGVjdG9yLnRyaWdnZXIoJ3NlbGVjdG9yOm9wZW4nKTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyB3aGV0aGVyIHRoZSBzZWxlY3RvciBpcyBvcGVuXG4gICAgICAgIHRoaXMuaXNPcGVuZWQgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHJldHVybiBfJGxpc3QuaXMoJzp2aXNpYmxlJyk7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gYWRkIGEgc2VsZWN0ZWQgdmFsdWUgdG8gdGhlIGxpc3RcbiAgICAgICAgdGhpcy5hZGRWYWx1ZSA9IGZ1bmN0aW9uKGtleSkge1xuICAgICAgICAgICAgdmFyIHZhbHVlcyA9IF9tdWx0aXBsZSA/IF92YWx1ZS5zbGljZSgwKSA6IFtdOyAvLyBjbG9uZSBhcnJheVxuICAgICAgICAgICAgdmFsdWVzLnB1c2goa2V5KTtcbiAgICAgICAgICAgIF9zZWxmLnNldFZhbHVlKHZhbHVlcyk7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gcmVtb3ZlIGEgc2VsZWN0ZWQgdmFsdWUgZnJvbSB0aGUgbGlzdFxuICAgICAgICB0aGlzLnJlbW92ZVZhbHVlID0gZnVuY3Rpb24oa2V5KSB7XG4gICAgICAgICAgICBpZihfbXVsdGlwbGUpIHtcbiAgICAgICAgICAgICAgICB2YXIgaSwgbmV3VmFsdWUgPSBbXTtcbiAgICAgICAgICAgICAgICBmb3IoaT0wOyBpPF92YWx1ZS5sZW5ndGg7IGkrKyl7XG4gICAgICAgICAgICAgICAgICAgIGlmKGtleSAhPSBbX3ZhbHVlW2ldXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3VmFsdWUucHVzaChfdmFsdWVbaV0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF9zZWxmLnNldFZhbHVlKG5ld1ZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIF9zZWxmLmNsZWFyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gc2V0IHRoZSBzZWxlY3RlZCB2YWx1ZShzKSBvZiB0aGUgbGlzdFxuICAgICAgICB0aGlzLnNldFZhbHVlID0gZnVuY3Rpb24oa2V5cyl7XG4gICAgICAgICAgICB2YXIgaSwgbmV3S2V5cyA9IFtdLCBzYXZlZCA9IF92YWx1ZS5qb2luKCcgJyk7XG4gICAgICAgICAgICBpZighJC5pc0FycmF5KGtleXMpKSBrZXlzID0gW2tleXNdO1xuICAgICAgICAgICAgXyRsaXN0LmZpbmQoJ2xpJykucmVtb3ZlQ2xhc3MoJ3NlbGVjdGVkJyk7XG4gICAgICAgICAgICBrZXlzID0gYXJyYXlfdW5pcXVlKGtleXMpO1xuICAgICAgICAgICAga2V5cy5zb3J0KGZ1bmN0aW9uKGEsIGIpe1xuICAgICAgICAgICAgICAgIHZhciB0YSA9IHR5cGVvZihhKTtcbiAgICAgICAgICAgICAgICB2YXIgdGIgPSB0eXBlb2YoYik7XG4gICAgICAgICAgICAgICAgaWYodGE9PXRiICYmIHRhPT1cIm51bWJlclwiKSByZXR1cm4gYS1iO1xuICAgICAgICAgICAgICAgIGVsc2UgcmV0dXJuIFN0cmluZyhhKSA9PSBTdHJpbmcoYikgPyAwIDogKFN0cmluZyhhKSA8IFN0cmluZyhiKSA/IC0xIDogMSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmKF9tdWx0aXBsZSkge1xuICAgICAgICAgICAgICAgIGZvcihpPTA7IGk8a2V5cy5sZW5ndGg7IGkrKyl7XG4gICAgICAgICAgICAgICAgICAgIGlmKGtleXNbaV0gaW4gX3ZhbHVlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgX3ZhbHVlc1trZXlzW2ldXS5hZGRDbGFzcygnc2VsZWN0ZWQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld0tleXMucHVzaChrZXlzW2ldKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmKGtleXNbMF0gaW4gX3ZhbHVlcykge1xuICAgICAgICAgICAgICAgICAgICBfdmFsdWVzW2tleXNbMF1dLmFkZENsYXNzKCdzZWxlY3RlZCcpO1xuICAgICAgICAgICAgICAgICAgICBuZXdLZXlzLnB1c2goa2V5c1swXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gcmVtb3ZlIHVuYWxsb3dlZCB2YWx1ZXNcbiAgICAgICAgICAgIF92YWx1ZSA9IG5ld0tleXM7XG4gICAgICAgICAgICBpZihzYXZlZCAhPSBfdmFsdWUuam9pbignICcpKSB7XG4gICAgICAgICAgICAgICAgXyRzZWxlY3Rvci50cmlnZ2VyKCdzZWxlY3RvcjpjaGFuZ2UnLCBfbXVsdGlwbGUgPyBrZXlzIDoga2V5c1swXSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gZ2V0IHRoZSB0aXRsZSB0ZXh0XG4gICAgICAgIHRoaXMuZ2V0VGl0bGVUZXh0ID0gZnVuY3Rpb24oKXtcbiAgICAgICAgICAgIHZhciBnZXRWYWx1ZVRleHQgPSBmdW5jdGlvbihrZXkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKGtleSBpbiBfdmFsdWVzKSA/IF92YWx1ZXNba2V5XS50ZXh0KCkgOiBrZXk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBpZihfdmFsdWUubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX2Nyb24uZ2V0VGV4dCgnZW1wdHlfJyArIF90eXBlKSB8fCBfY3Jvbi5nZXRUZXh0KCdlbXB0eScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGNyb24gPSBbZ2V0VmFsdWVUZXh0KF92YWx1ZVswXSldLCBpLCBzID0gX3ZhbHVlWzBdLCBjID0gX3ZhbHVlWzBdLCBuID0gX3ZhbHVlLmxlbmd0aDtcbiAgICAgICAgICAgIGZvcihpPTE7IGk8bjsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYoX3ZhbHVlW2ldID09IGMrMSkge1xuICAgICAgICAgICAgICAgICAgICBjID0gX3ZhbHVlW2ldO1xuICAgICAgICAgICAgICAgICAgICBjcm9uW2Nyb24ubGVuZ3RoLTFdID0gZ2V0VmFsdWVUZXh0KHMpKyctJytnZXRWYWx1ZVRleHQoYyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzID0gYyA9IF92YWx1ZVtpXTtcbiAgICAgICAgICAgICAgICAgICAgY3Jvbi5wdXNoKGdldFZhbHVlVGV4dChjKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGNyb24uam9pbignLCcpO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIGNsZWFyIGxpc3RcbiAgICAgICAgdGhpcy5jbGVhciA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgX3ZhbHVlcyA9IHt9O1xuICAgICAgICAgICAgX3NlbGYuc2V0VmFsdWUoW10pO1xuICAgICAgICAgICAgXyRsaXN0LmVtcHR5KCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gYWRkIGEgKGtleSwgdmFsdWUpIHBhaXJcbiAgICAgICAgdGhpcy5hZGQgPSBmdW5jdGlvbihrZXksIHZhbHVlKSB7XG4gICAgICAgICAgICBpZighKHZhbHVlKycnKS5tYXRjaCgvXlswLTldKyQvKSkgX2hhc051bWVyaWNUZXh0cyA9IGZhbHNlO1xuICAgICAgICAgICAgaWYoX251bWVyaWNfemVyb19wYWQgJiYgX2hhc051bWVyaWNUZXh0cyAmJiB2YWx1ZSA8IDEwKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSAnMCcrdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgJGl0ZW0gPSAkKCc8bGk+JyArIHZhbHVlICsgJzwvbGk+Jyk7XG4gICAgICAgICAgICBfJGxpc3QuYXBwZW5kKCRpdGVtKTtcbiAgICAgICAgICAgIF92YWx1ZXNba2V5XSA9ICRpdGVtO1xuICAgICAgICAgICAgJGl0ZW0uY2xpY2soZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICAgICBpZihfbXVsdGlwbGUgJiYgJCh0aGlzKS5oYXNDbGFzcygnc2VsZWN0ZWQnKSkge1xuICAgICAgICAgICAgICAgICAgICBfc2VsZi5yZW1vdmVWYWx1ZShrZXkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgX3NlbGYuYWRkVmFsdWUoa2V5KTtcbiAgICAgICAgICAgICAgICAgICAgaWYoIV9tdWx0aXBsZSkgX3NlbGYuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBleHBvc2UgbWFpbiBqcXVlcnkgb2JqZWN0XG4gICAgICAgIHRoaXMuJCA9IF8kc2VsZWN0b3I7XG5cbiAgICAgICAgLy8gY29uc3RydWN0b3JcbiAgICAgICAgXyRibG9jay5maW5kKCdiOmVxKDApJykuYWZ0ZXIoXyRzZWxlY3RvcikucmVtb3ZlKCk7XG4gICAgICAgIF8kc2VsZWN0b3JcbiAgICAgICAgICAgIC5hZGRDbGFzcygnanFDcm9uLXNlbGVjdG9yLScgKyBfJGJsb2NrLmZpbmQoJy5qcUNyb24tc2VsZWN0b3InKS5sZW5ndGgpXG4gICAgICAgICAgICAuYXBwZW5kKF8kdGl0bGUpXG4gICAgICAgICAgICAuYXBwZW5kKF8kbGlzdClcbiAgICAgICAgICAgIC5iaW5kKCdzZWxlY3RvcjpvcGVuJywgZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICAgICBpZihfaGFzTnVtZXJpY1RleHRzKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBuYmNvbHMgPSAxLCBuID0gXyRsaXN0LmZpbmQoJ2xpJykubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICBpZihuID4gNSAmJiBuIDw9IDE2KSBuYmNvbHMgPSAyO1xuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKG4gPiAxNiAmJiBuIDw9IDIzKSBuYmNvbHMgPSAzO1xuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKG4gPiAyMyAmJiBuIDw9IDQwKSBuYmNvbHMgPSA0O1xuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKG4gPiA0MCkgbmJjb2xzID0gNTtcbiAgICAgICAgICAgICAgICAgICAgXyRsaXN0LmFkZENsYXNzKCdjb2xzJytuYmNvbHMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBfJGxpc3Quc2hvdygpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5iaW5kKCdzZWxlY3RvcjpjbG9zZScsIGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICAgICAgXyRsaXN0LmhpZGUoKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuYmluZCgnc2VsZWN0b3I6Y2hhbmdlJywgZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICAgICBfJHRpdGxlLmh0bWwoX3NlbGYuZ2V0VGl0bGVUZXh0KCkpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jbGljayhmdW5jdGlvbihlKXtcbiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC50cmlnZ2VyKCdzZWxlY3RvcjpjaGFuZ2UnKVxuICAgICAgICA7XG4gICAgICAgICQuZm4uZGlzYWJsZVNlbGVjdGlvbiAmJiBfJHNlbGVjdG9yLmRpc2FibGVTZWxlY3Rpb24oKTsgLy8gb25seSB3b3JrIHdpdGggalF1ZXJ5IFVJXG4gICAgICAgIF8kdGl0bGUuY2xpY2soZnVuY3Rpb24oZSl7XG4gICAgICAgICAgICAoX3NlbGYuaXNPcGVuZWQoKSB8fCBfY3Jvbi5pc0Rpc2FibGVkKCkpID8gX3NlbGYuY2xvc2UoKSA6IF9zZWxmLm9wZW4oKTtcbiAgICAgICAgfSk7XG4gICAgICAgIF9zZWxmLmNsb3NlKCk7XG4gICAgICAgIF9zZWxmLmNsZWFyKCk7XG4gICAgfVxuICAgIHRoaXMuanFDcm9uU2VsZWN0b3IgPSBqcUNyb25TZWxlY3Rvcjtcbn0pLmNhbGwod2luZG93LCAkKTtcblxuLyoqXG4gKiBHZW5lcmF0ZSB1bmlxdWUgaWQgZm9yIGVhY2ggZWxlbWVudC5cbiAqIFNraXAgZWxlbWVudHMgd2hpY2ggaGF2ZSBhbHJlYWR5IGFuIGlkLlxuICovXG4oZnVuY3Rpb24oJCl7XG4gICAgdmFyIGpxVUlEID0gMDtcbiAgICB2YXIganFHZXRVSUQgPSBmdW5jdGlvbihwcmVmaXgpe1xuICAgICAgICB2YXIgaWQ7XG4gICAgICAgIHdoaWxlKDEpIHtcbiAgICAgICAgICAgIGpxVUlEKys7XG4gICAgICAgICAgICBpZCA9ICgocHJlZml4IHx8ICdKUVVJRCcpKycnKSArIGpxVUlEO1xuICAgICAgICAgICAgaWYoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKSkgcmV0dXJuIGlkO1xuICAgICAgICB9XG4gICAgfTtcbiAgICAkLmZuLnVuaXF1ZUlkID0gIGZ1bmN0aW9uKHByZWZpeCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7XG4gICAgICAgICAgICBpZigkKHRoaXMpLmF0dHIoJ2lkJykpIHJldHVybjtcbiAgICAgICAgICAgIHZhciBpZCA9IGpxR2V0VUlEKHByZWZpeCk7XG4gICAgICAgICAgICAkKHRoaXMpLmF0dHIoJ2lkJywgaWQpO1xuICAgICAgICB9KTtcbiAgICB9O1xufSkuY2FsbCh3aW5kb3csICQpO1xuXG5cbi8qKlxuICogRXh0ZW5kcyBqUXVlcnkgc2VsZWN0b3JzIHdpdGggbmV3IGJsb2NrIHNlbGVjdG9yXG4gKi9cbihmdW5jdGlvbigkKXtcbiAgICAkLmV4dGVuZCgkLmV4cHJbJzonXSwge1xuICAgICAgICBjb250YWluZXI6IGZ1bmN0aW9uKGEpIHtcbiAgICAgICAgICAgIHJldHVybiAoYS50YWdOYW1lKycnKS50b0xvd2VyQ2FzZSgpIGluIHtcbiAgICAgICAgICAgICAgICBhOjEsXG4gICAgICAgICAgICAgICAgYWJicjoxLFxuICAgICAgICAgICAgICAgIGFjcm9ueW06MSxcbiAgICAgICAgICAgICAgICBhZGRyZXNzOjEsXG4gICAgICAgICAgICAgICAgYjoxLFxuICAgICAgICAgICAgICAgIGJpZzoxLFxuICAgICAgICAgICAgICAgIGJsb2NrcXVvdGU6MSxcbiAgICAgICAgICAgICAgICBidXR0b246MSxcbiAgICAgICAgICAgICAgICBjaXRlOjEsXG4gICAgICAgICAgICAgICAgY29kZToxLFxuICAgICAgICAgICAgICAgIGRkOiAxLFxuICAgICAgICAgICAgICAgIGRlbDoxLFxuICAgICAgICAgICAgICAgIGRmbjoxLFxuICAgICAgICAgICAgICAgIGRpdjoxLFxuICAgICAgICAgICAgICAgIGR0OjEsXG4gICAgICAgICAgICAgICAgZW06MSxcbiAgICAgICAgICAgICAgICBmaWVsZHNldDoxLFxuICAgICAgICAgICAgICAgIGZvcm06MSxcbiAgICAgICAgICAgICAgICBoMToxLFxuICAgICAgICAgICAgICAgIGgyOjEsXG4gICAgICAgICAgICAgICAgaDM6MSxcbiAgICAgICAgICAgICAgICBoNDoxLFxuICAgICAgICAgICAgICAgIGg1OjEsXG4gICAgICAgICAgICAgICAgaDY6IDEsXG4gICAgICAgICAgICAgICAgaToxLFxuICAgICAgICAgICAgICAgIGluczoxLFxuICAgICAgICAgICAgICAgIGtiZDoxLFxuICAgICAgICAgICAgICAgIGxhYmVsOjEsXG4gICAgICAgICAgICAgICAgbGk6MSxcbiAgICAgICAgICAgICAgICBwOjEsXG4gICAgICAgICAgICAgICAgcHJlOjEsXG4gICAgICAgICAgICAgICAgcToxLFxuICAgICAgICAgICAgICAgIHNhbXA6MSxcbiAgICAgICAgICAgICAgICBzbWFsbDoxLFxuICAgICAgICAgICAgICAgIHNwYW46MSxcbiAgICAgICAgICAgICAgICBzdHJvbmc6MSxcbiAgICAgICAgICAgICAgICBzdWI6IDEsXG4gICAgICAgICAgICAgICAgc3VwOjEsXG4gICAgICAgICAgICAgICAgdGQ6MSxcbiAgICAgICAgICAgICAgICB0dDoxXG4gICAgICAgICAgICB9O1xuICAgICAgICB9LFxuICAgICAgICBhdXRvY2xvc2U6IGZ1bmN0aW9uKGEpIHtcbiAgICAgICAgICAgIHJldHVybiAoYS50YWdOYW1lKycnKS50b0xvd2VyQ2FzZSgpIGluIHtcbiAgICAgICAgICAgICAgICBhcmVhOjEsXG4gICAgICAgICAgICAgICAgYmFzZToxLFxuICAgICAgICAgICAgICAgIGJhc2Vmb250OjEsXG4gICAgICAgICAgICAgICAgYnI6MSxcbiAgICAgICAgICAgICAgICBjb2w6MSxcbiAgICAgICAgICAgICAgICBmcmFtZToxLFxuICAgICAgICAgICAgICAgIGhyOjEsXG4gICAgICAgICAgICAgICAgaW1nOjEsXG4gICAgICAgICAgICAgICAgaW5wdXQ6MSxcbiAgICAgICAgICAgICAgICBsaW5rOjEsXG4gICAgICAgICAgICAgICAgbWV0YToxLFxuICAgICAgICAgICAgICAgIHBhcmFtOjFcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9KTtcbn0pLmNhbGwod2luZG93LCAkKTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/utils/cron-ui.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/utils/finderjs.js":
|
|
/*!*******************************!*\
|
|
!*** ./app/utils/finderjs.js ***!
|
|
\*******************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"DEFAULTS\": () => (/* binding */ DEFAULTS),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! eventemitter3 */ \"./node_modules/eventemitter3/index.js\");\n/* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(eventemitter3__WEBPACK_IMPORTED_MODULE_1__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\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); return Constructor; }\n\n/**\n * (c) Trilby Media, LLC\n * Author Djamil Legato\n *\n * Based on Mark Matyas's Finderjs\n * MIT License\n */\n\n\nvar DEFAULTS = {\n labelKey: 'name',\n valueKey: 'value',\n // new\n childKey: 'children',\n iconKey: 'icon',\n // new\n itemKey: 'item-key',\n // new\n pathBar: true,\n className: {\n container: 'fjs-container',\n pathBar: 'fjs-path-bar',\n col: 'fjs-col',\n list: 'fjs-list',\n item: 'fjs-item',\n active: 'fjs-active',\n children: 'fjs-has-children',\n url: 'fjs-url',\n itemPrepend: 'fjs-item-prepend',\n itemContent: 'fjs-item-content',\n itemAppend: 'fjs-item-append'\n }\n};\n\nvar Finder = /*#__PURE__*/function () {\n function Finder(container, data, options) {\n var _this = this;\n\n _classCallCheck(this, Finder);\n\n this.$emitter = new (eventemitter3__WEBPACK_IMPORTED_MODULE_1___default())();\n this.container = jquery__WEBPACK_IMPORTED_MODULE_0___default()(container);\n this.data = data;\n this.config = jquery__WEBPACK_IMPORTED_MODULE_0___default().extend({}, DEFAULTS, options); // dom events\n\n this.container.on('click', this.clickEvent.bind(this));\n this.container.on('keydown', this.keydownEvent.bind(this)); // internal events\n\n this.$emitter.on('item-selected', this.itemSelected.bind(this));\n this.$emitter.on('create-column', this.addColumn.bind(this));\n this.$emitter.on('navigate', this.navigate.bind(this));\n this.$emitter.on('go-to', this.goTo.bind(this, this.data));\n this.container.addClass(this.config.className.container).attr('tabindex', 0);\n this.createColumn(this.data);\n\n if (this.config.pathBar) {\n this.pathBar = this.createPathBar();\n this.pathBar.on('click', '[data-breadcrumb-node]', function (event) {\n event.preventDefault();\n var location = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget).data('breadcrumbNode');\n\n _this.goTo(_this.data, location);\n });\n } // '' is <Root>\n\n\n if (this.config.defaultPath || this.config.defaultPath === '') {\n this.goTo(this.data, this.config.defaultPath);\n }\n }\n\n _createClass(Finder, [{\n key: \"reload\",\n value: function reload() {\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.data;\n this.createColumn(data); // '' is <Root>\n\n if (this.config.defaultPath || this.config.defaultPath === '') {\n this.goTo(data, this.config.defaultPath);\n }\n }\n }, {\n key: \"createColumn\",\n value: function createColumn(data, parent) {\n var _this2 = this;\n\n var callback = function callback(data) {\n return _this2.createColumn(data, parent);\n };\n\n if (typeof data === 'function') {\n data.call(this, parent, callback);\n } else if (Array.isArray(data) || _typeof(data) === 'object') {\n if (_typeof(data) === 'object') {\n data = Array.from(data);\n }\n\n var list = this.createList(data);\n var div = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div />');\n div.append(list).addClass(this.config.className.col);\n this.$emitter.emit('create-column', div);\n return div;\n } else {\n throw new Error('Unknown data type');\n }\n }\n }, {\n key: \"createPathBar\",\n value: function createPathBar() {\n this.container.siblings(\".\".concat(this.config.className.pathBar)).remove();\n var pathBar = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"<div class=\\\"\".concat(this.config.className.pathBar, \"\\\" />\"));\n pathBar.insertAfter(this.container);\n return pathBar;\n }\n }, {\n key: \"clickEvent\",\n value: function clickEvent(event) {\n event.stopPropagation();\n event.preventDefault();\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target);\n var column = target.closest(\".\".concat(this.config.className.col));\n var item = target.closest(\".\".concat(this.config.className.item));\n\n if (item.length) {\n this.$emitter.emit('item-selected', {\n column: column,\n item: item\n });\n }\n }\n }, {\n key: \"keydownEvent\",\n value: function keydownEvent(event) {\n var codes = {\n 37: 'left',\n 38: 'up',\n 39: 'right',\n 40: 'down'\n };\n\n if (event.keyCode in codes) {\n event.stopPropagation();\n event.preventDefault();\n this.$emitter.emit('navigate', {\n direction: codes[event.keyCode]\n });\n }\n }\n }, {\n key: \"itemSelected\",\n value: function itemSelected(value) {\n var element = value.item;\n\n if (!element.length) {\n return false;\n }\n\n var item = element[0]._item;\n var column = value.column;\n var data = item[this.config.childKey] || this.data;\n var active = jquery__WEBPACK_IMPORTED_MODULE_0___default()(column).find(\".\".concat(this.config.className.active));\n\n if (active.length) {\n active.removeClass(this.config.className.active);\n }\n\n element.addClass(this.config.className.active);\n column.nextAll().remove(); // ?!?!?\n\n this.container[0].focus();\n window.scrollTo(window.pageXOffset, window.pageYOffset);\n this.updatePathBar();\n var newColumn;\n\n if (data) {\n newColumn = this.createColumn(data, item);\n this.$emitter.emit('interior-selected', item);\n } else {\n this.$emitter.emit('leaf-selected', item);\n }\n\n return newColumn;\n }\n }, {\n key: \"addColumn\",\n value: function addColumn(column) {\n this.container.append(column);\n this.$emitter.emit('column-created', column);\n }\n }, {\n key: \"navigate\",\n value: function navigate(value) {\n var active = this.findLastActive();\n var direction = value.direction;\n var column;\n var item;\n var target;\n\n if (active) {\n item = active.item;\n column = active.column;\n\n if (direction === 'up' && item.prev().length) {\n target = item.prev();\n } else if (direction === 'down' && item.next().length) {\n target = item.next();\n } else if (direction === 'right' && column.next().length) {\n column = column.next();\n target = column.find(\".\".concat(this.config.className.item)).first();\n } else if (direction === 'left' && column.prev().length) {\n column = column.prev();\n target = column.find(\".\".concat(this.config.className.active)).first() || column.find(\".\".concat(this.config.className.item));\n }\n } else {\n column = this.container.find(\".\".concat(this.config.className.col)).first();\n target = column.find(\".\".concat(this.config.className.item)).first();\n }\n\n if (target) {\n this.$emitter.emit('item-selected', {\n column: column,\n item: target\n });\n }\n }\n }, {\n key: \"goTo\",\n value: function goTo(data, path) {\n var _this3 = this;\n\n path = Array.isArray(path) ? path : path.split('/').map(function (bit) {\n return bit.trim();\n }).filter(Boolean);\n\n if (path.length) {\n this.container.children().remove();\n }\n\n if (typeof data === 'function') {\n data.call(this, null, function (data) {\n return _this3.selectPath(path, data);\n });\n } else {\n this.selectPath(path, data);\n }\n }\n }, {\n key: \"selectPath\",\n value: function selectPath(path, data, column) {\n var _this4 = this;\n\n column = column || (path.length ? this.createColumn(data) : this.container.find(\"> .\".concat(this.config.className.col)));\n var current = path[0] || '';\n var children = data.find(function (item) {\n return item[_this4.config.itemKey] === current;\n });\n var newColumn = this.itemSelected({\n column: column,\n item: column.find(\"[data-fjs-item=\\\"\".concat(current, \"\\\"]\")).first()\n });\n path.shift();\n\n if (path.length && children) {\n this.selectPath(path, children[this.config.childKey], newColumn);\n }\n }\n }, {\n key: \"findLastActive\",\n value: function findLastActive() {\n var active = this.container.find(\".\".concat(this.config.className.active));\n\n if (!active.length) {\n return null;\n }\n\n var item = active.last();\n var column = item.closest(\".\".concat(this.config.className.col));\n return {\n item: item,\n column: column\n };\n }\n }, {\n key: \"createList\",\n value: function createList(data) {\n var _this5 = this;\n\n var list = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<ul />');\n var items = data.map(function (item) {\n return _this5.createItem(item);\n });\n var fragments = items.reduce(function (fragment, current) {\n fragment.appendChild(current[0] || current);\n return fragment;\n }, document.createDocumentFragment());\n list.append(fragments).addClass(this.config.className.list);\n return list;\n }\n }, {\n key: \"createItem\",\n value: function createItem(item) {\n var listItem = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<li />');\n var listItemClasses = [this.config.className.item];\n var link = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<a />');\n var createItemContent = this.config.createItemContent || this.createItemContent;\n var fragment = createItemContent.call(this, item);\n link.append(fragment).attr('href', '').attr('tabindex', -1);\n\n if (item.url) {\n link.attr('href', item.url);\n listItemClasses.push(item.className);\n }\n\n if (item[this.config.childKey]) {\n listItemClasses.push(this.config.className[this.config.childKey]);\n }\n\n listItemClasses.push(\"fjs-item-\".concat(item.type));\n listItem.addClass(listItemClasses.join(' '));\n listItem.append(link).attr('data-fjs-item', item[this.config.itemKey]);\n listItem[0]._item = item;\n return listItem;\n }\n }, {\n key: \"updatePathBar\",\n value: function updatePathBar() {\n var _this6 = this;\n\n if (!this.config.pathBar) {\n return false;\n }\n\n var activeItems = this.container.find(\".\".concat(this.config.className.active));\n var itemKeys = '';\n this.pathBar.children().empty();\n activeItems.each(function (index, activeItem) {\n var item = activeItem._item;\n var isLast = index + 1 === activeItems.length;\n itemKeys += \"/\".concat(item[_this6.config.itemKey]);\n\n _this6.pathBar.append(\"\\n <span class=\\\"breadcrumb-node breadcrumb-node-\".concat(item.type, \"\\\" \").concat(item.type === 'dir' ? \"data-breadcrumb-node=\\\"\".concat(itemKeys, \"\\\"\") : '', \">\\n <i class=\\\"fa fa-fw \").concat(_this6.getIcon(item.type), \"\\\"></i>\\n <span class=\\\"breadcrumb-node-name\\\">\").concat(jquery__WEBPACK_IMPORTED_MODULE_0___default()('<div />').text(item[_this6.config.labelKey]).html(), \"</span>\\n \").concat(!isLast ? '<i class=\"fa fa-fw fa-chevron-right\"></i>' : '', \"\\n </span>\\n \"));\n });\n }\n }, {\n key: \"getIcon\",\n value: function getIcon(type) {\n switch (type) {\n case 'root':\n return 'fa-sitemap';\n\n case 'file':\n return 'fa-file-o';\n\n case 'dir':\n default:\n return 'fa-folder';\n }\n }\n }]);\n\n return Finder;\n}();\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Finder);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL2ZpbmRlcmpzLmpzP2NmNGMiXSwibmFtZXMiOlsiREVGQVVMVFMiLCJsYWJlbEtleSIsInZhbHVlS2V5IiwiY2hpbGRLZXkiLCJpY29uS2V5IiwiaXRlbUtleSIsInBhdGhCYXIiLCJjbGFzc05hbWUiLCJjb250YWluZXIiLCJjb2wiLCJsaXN0IiwiaXRlbSIsImFjdGl2ZSIsImNoaWxkcmVuIiwidXJsIiwiaXRlbVByZXBlbmQiLCJpdGVtQ29udGVudCIsIml0ZW1BcHBlbmQiLCJGaW5kZXIiLCJkYXRhIiwib3B0aW9ucyIsIiRlbWl0dGVyIiwiRXZlbnRFbWl0dGVyIiwiJCIsImNvbmZpZyIsIm9uIiwiY2xpY2tFdmVudCIsImJpbmQiLCJrZXlkb3duRXZlbnQiLCJpdGVtU2VsZWN0ZWQiLCJhZGRDb2x1bW4iLCJuYXZpZ2F0ZSIsImdvVG8iLCJhZGRDbGFzcyIsImF0dHIiLCJjcmVhdGVDb2x1bW4iLCJjcmVhdGVQYXRoQmFyIiwiZXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsImxvY2F0aW9uIiwiY3VycmVudFRhcmdldCIsImRlZmF1bHRQYXRoIiwicGFyZW50IiwiY2FsbGJhY2siLCJjYWxsIiwiQXJyYXkiLCJpc0FycmF5IiwiZnJvbSIsImNyZWF0ZUxpc3QiLCJkaXYiLCJhcHBlbmQiLCJlbWl0IiwiRXJyb3IiLCJzaWJsaW5ncyIsInJlbW92ZSIsImluc2VydEFmdGVyIiwic3RvcFByb3BhZ2F0aW9uIiwidGFyZ2V0IiwiY29sdW1uIiwiY2xvc2VzdCIsImxlbmd0aCIsImNvZGVzIiwia2V5Q29kZSIsImRpcmVjdGlvbiIsInZhbHVlIiwiZWxlbWVudCIsIl9pdGVtIiwiZmluZCIsInJlbW92ZUNsYXNzIiwibmV4dEFsbCIsImZvY3VzIiwid2luZG93Iiwic2Nyb2xsVG8iLCJwYWdlWE9mZnNldCIsInBhZ2VZT2Zmc2V0IiwidXBkYXRlUGF0aEJhciIsIm5ld0NvbHVtbiIsImZpbmRMYXN0QWN0aXZlIiwicHJldiIsIm5leHQiLCJmaXJzdCIsInBhdGgiLCJzcGxpdCIsIm1hcCIsImJpdCIsInRyaW0iLCJmaWx0ZXIiLCJCb29sZWFuIiwic2VsZWN0UGF0aCIsImN1cnJlbnQiLCJzaGlmdCIsImxhc3QiLCJpdGVtcyIsImNyZWF0ZUl0ZW0iLCJmcmFnbWVudHMiLCJyZWR1Y2UiLCJmcmFnbWVudCIsImFwcGVuZENoaWxkIiwiZG9jdW1lbnQiLCJjcmVhdGVEb2N1bWVudEZyYWdtZW50IiwibGlzdEl0ZW0iLCJsaXN0SXRlbUNsYXNzZXMiLCJsaW5rIiwiY3JlYXRlSXRlbUNvbnRlbnQiLCJwdXNoIiwidHlwZSIsImpvaW4iLCJhY3RpdmVJdGVtcyIsIml0ZW1LZXlzIiwiZW1wdHkiLCJlYWNoIiwiaW5kZXgiLCJhY3RpdmVJdGVtIiwiaXNMYXN0IiwiZ2V0SWNvbiIsInRleHQiLCJodG1sIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVPLElBQU1BLFFBQVEsR0FBRztBQUNwQkMsVUFBUSxFQUFFLE1BRFU7QUFFcEJDLFVBQVEsRUFBRSxPQUZVO0FBRUQ7QUFDbkJDLFVBQVEsRUFBRSxVQUhVO0FBSXBCQyxTQUFPLEVBQUUsTUFKVztBQUlIO0FBQ2pCQyxTQUFPLEVBQUUsVUFMVztBQUtDO0FBQ3JCQyxTQUFPLEVBQUUsSUFOVztBQU9wQkMsV0FBUyxFQUFFO0FBQ1BDLGFBQVMsRUFBRSxlQURKO0FBRVBGLFdBQU8sRUFBRSxjQUZGO0FBR1BHLE9BQUcsRUFBRSxTQUhFO0FBSVBDLFFBQUksRUFBRSxVQUpDO0FBS1BDLFFBQUksRUFBRSxVQUxDO0FBTVBDLFVBQU0sRUFBRSxZQU5EO0FBT1BDLFlBQVEsRUFBRSxrQkFQSDtBQVFQQyxPQUFHLEVBQUUsU0FSRTtBQVNQQyxlQUFXLEVBQUUsa0JBVE47QUFVUEMsZUFBVyxFQUFFLGtCQVZOO0FBV1BDLGNBQVUsRUFBRTtBQVhMO0FBUFMsQ0FBakI7O0lBc0JE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RyxJQUFJLENBQUMsTUFBSSxDQUFDYSxNQUFMLENBQVl2QixRQUFiLENBQXRCLEVBQThDbUgsSUFBOUMsRUFIN0MsMENBSVUsQ0FBQ0gsTUFBRCxHQUFVLDJDQUFWLEdBQXdELEVBSmxFO0FBT0gsT0FYRDtBQVlIOzs7V0FFRCxpQkFBUVIsSUFBUixFQUFjO0FBQ1YsY0FBUUEsSUFBUjtBQUNJLGFBQUssTUFBTDtBQUNJLGlCQUFPLFlBQVA7O0FBQ0osYUFBSyxNQUFMO0FBQ0ksaUJBQU8sV0FBUDs7QUFDSixhQUFLLEtBQUw7QUFDQTtBQUNJLGlCQUFPLFdBQVA7QUFQUjtBQVNIOzs7Ozs7QUFHTCxpRUFBZXZGLE1BQWYiLCJmaWxlIjoiLi9hcHAvdXRpbHMvZmluZGVyanMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIChjKSBUcmlsYnkgTWVkaWEsIExMQ1xuICogQXV0aG9yIERqYW1pbCBMZWdhdG9cbiAqXG4gKiBCYXNlZCBvbiBNYXJrIE1hdHlhcydzIEZpbmRlcmpzXG4gKiBNSVQgTGljZW5zZVxuICovXG5cbmltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgRXZlbnRFbWl0dGVyIGZyb20gJ2V2ZW50ZW1pdHRlcjMnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVFMgPSB7XG4gICAgbGFiZWxLZXk6ICduYW1lJyxcbiAgICB2YWx1ZUtleTogJ3ZhbHVlJywgLy8gbmV3XG4gICAgY2hpbGRLZXk6ICdjaGlsZHJlbicsXG4gICAgaWNvbktleTogJ2ljb24nLCAvLyBuZXdcbiAgICBpdGVtS2V5OiAnaXRlbS1rZXknLCAvLyBuZXdcbiAgICBwYXRoQmFyOiB0cnVlLFxuICAgIGNsYXNzTmFtZToge1xuICAgICAgICBjb250YWluZXI6ICdmanMtY29udGFpbmVyJyxcbiAgICAgICAgcGF0aEJhcjogJ2Zqcy1wYXRoLWJhcicsXG4gICAgICAgIGNvbDogJ2Zqcy1jb2wnLFxuICAgICAgICBsaXN0OiAnZmpzLWxpc3QnLFxuICAgICAgICBpdGVtOiAnZmpzLWl0ZW0nLFxuICAgICAgICBhY3RpdmU6ICdmanMtYWN0aXZlJyxcbiAgICAgICAgY2hpbGRyZW46ICdmanMtaGFzLWNoaWxkcmVuJyxcbiAgICAgICAgdXJsOiAnZmpzLXVybCcsXG4gICAgICAgIGl0ZW1QcmVwZW5kOiAnZmpzLWl0ZW0tcHJlcGVuZCcsXG4gICAgICAgIGl0ZW1Db250ZW50OiAnZmpzLWl0ZW0tY29udGVudCcsXG4gICAgICAgIGl0ZW1BcHBlbmQ6ICdmanMtaXRlbS1hcHBlbmQnXG4gICAgfVxufTtcblxuY2xhc3MgRmluZGVyIHtcbiAgICBjb25zdHJ1Y3Rvcihjb250YWluZXIsIGRhdGEsIG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy4kZW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSAkKGNvbnRhaW5lcik7XG4gICAgICAgIHRoaXMuZGF0YSA9IGRhdGE7XG5cbiAgICAgICAgdGhpcy5jb25maWcgPSAkLmV4dGVuZCh7fSwgREVGQVVMVFMsIG9wdGlvbnMpO1xuXG4gICAgICAgIC8vIGRvbSBldmVudHNcbiAgICAgICAgdGhpcy5jb250YWluZXIub24oJ2NsaWNrJywgdGhpcy5jbGlja0V2ZW50LmJpbmQodGhpcykpO1xuICAgICAgICB0aGlzLmNvbnRhaW5lci5vbigna2V5ZG93bicsIHRoaXMua2V5ZG93bkV2ZW50LmJpbmQodGhpcykpO1xuXG4gICAgICAgIC8vIGludGVybmFsIGV2ZW50c1xuICAgICAgICB0aGlzLiRlbWl0dGVyLm9uKCdpdGVtLXNlbGVjdGVkJywgdGhpcy5pdGVtU2VsZWN0ZWQuYmluZCh0aGlzKSk7XG4gICAgICAgIHRoaXMuJGVtaXR0ZXIub24oJ2NyZWF0ZS1jb2x1bW4nLCB0aGlzLmFkZENvbHVtbi5iaW5kKHRoaXMpKTtcbiAgICAgICAgdGhpcy4kZW1pdHRlci5vbignbmF2aWdhdGUnLCB0aGlzLm5hdmlnYXRlLmJpbmQodGhpcykpO1xuICAgICAgICB0aGlzLiRlbWl0dGVyLm9uKCdnby10bycsIHRoaXMuZ29Uby5iaW5kKHRoaXMsIHRoaXMuZGF0YSkpO1xuXG4gICAgICAgIHRoaXMuY29udGFpbmVyLmFkZENsYXNzKHRoaXMuY29uZmlnLmNsYXNzTmFtZS5jb250YWluZXIpLmF0dHIoJ3RhYmluZGV4JywgMCk7XG5cbiAgICAgICAgdGhpcy5jcmVhdGVDb2x1bW4odGhpcy5kYXRhKTtcblxuICAgICAgICBpZiAodGhpcy5jb25maWcucGF0aEJhcikge1xuICAgICAgICAgICAgdGhpcy5wYXRoQmFyID0gdGhpcy5jcmVhdGVQYXRoQmFyKCk7XG4gICAgICAgICAgICB0aGlzLnBhdGhCYXIub24oJ2NsaWNrJywgJ1tkYXRhLWJyZWFkY3J1bWItbm9kZV0nLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxvY2F0aW9uID0gJChldmVudC5jdXJyZW50VGFyZ2V0KS5kYXRhKCdicmVhZGNydW1iTm9kZScpO1xuICAgICAgICAgICAgICAgIHRoaXMuZ29Ubyh0aGlzLmRhdGEsIGxvY2F0aW9uKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gJycgaXMgPFJvb3Q+XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5kZWZhdWx0UGF0aCB8fCB0aGlzLmNvbmZpZy5kZWZhdWx0UGF0aCA9PT0gJycpIHtcbiAgICAgICAgICAgIHRoaXMuZ29Ubyh0aGlzLmRhdGEsIHRoaXMuY29uZmlnLmRlZmF1bHRQYXRoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlbG9hZChkYXRhID0gdGhpcy5kYXRhKSB7XG4gICAgICAgIHRoaXMuY3JlYXRlQ29sdW1uKGRhdGEpO1xuXG4gICAgICAgIC8vICcnIGlzIDxSb290PlxuICAgICAgICBpZiAodGhpcy5jb25maWcuZGVmYXVsdFBhdGggfHwgdGhpcy5jb25maWcuZGVmYXVsdFBhdGggPT09ICcnKSB7XG4gICAgICAgICAgICB0aGlzLmdvVG8oZGF0YSwgdGhpcy5jb25maWcuZGVmYXVsdFBhdGgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY3JlYXRlQ29sdW1uKGRhdGEsIHBhcmVudCkge1xuICAgICAgICBjb25zdCBjYWxsYmFjayA9IChkYXRhKSA9PiB0aGlzLmNyZWF0ZUNvbHVtbihkYXRhLCBwYXJlbnQpO1xuXG4gICAgICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgZGF0YS5jYWxsKHRoaXMsIHBhcmVudCwgY2FsbGJhY2spO1xuICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkgfHwgdHlwZW9mIGRhdGEgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGRhdGEgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgZGF0YSA9IEFycmF5LmZyb20oZGF0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBsaXN0ID0gdGhpcy5jcmVhdGVMaXN0KGRhdGEpO1xuICAgICAgICAgICAgY29uc3QgZGl2ID0gJCgnPGRpdiAvPicpO1xuICAgICAgICAgICAgZGl2LmFwcGVuZChsaXN0KS5hZGRDbGFzcyh0aGlzLmNvbmZpZy5jbGFzc05hbWUuY29sKTtcbiAgICAgICAgICAgIHRoaXMuJGVtaXR0ZXIuZW1pdCgnY3JlYXRlLWNvbHVtbicsIGRpdik7XG5cbiAgICAgICAgICAgIHJldHVybiBkaXY7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gZGF0YSB0eXBlJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjcmVhdGVQYXRoQmFyKCkge1xuICAgICAgICB0aGlzLmNvbnRhaW5lci5zaWJsaW5ncyhgLiR7dGhpcy5jb25maWcuY2xhc3NOYW1lLnBhdGhCYXJ9YCkucmVtb3ZlKCk7XG4gICAgICAgIGNvbnN0IHBhdGhCYXIgPSAkKGA8ZGl2IGNsYXNzPVwiJHt0aGlzLmNvbmZpZy5jbGFzc05hbWUucGF0aEJhcn1cIiAvPmApO1xuICAgICAgICBwYXRoQmFyLmluc2VydEFmdGVyKHRoaXMuY29udGFpbmVyKTtcblxuICAgICAgICByZXR1cm4gcGF0aEJhcjtcbiAgICB9XG5cbiAgICBjbGlja0V2ZW50KGV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIGNvbnN0IHRhcmdldCA9ICQoZXZlbnQudGFyZ2V0KTtcbiAgICAgICAgY29uc3QgY29sdW1uID0gdGFyZ2V0LmNsb3Nlc3QoYC4ke3RoaXMuY29uZmlnLmNsYXNzTmFtZS5jb2x9YCk7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSB0YXJnZXQuY2xvc2VzdChgLiR7dGhpcy5jb25maWcuY2xhc3NOYW1lLml0ZW19YCk7XG5cbiAgICAgICAgaWYgKGl0ZW0ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLiRlbWl0dGVyLmVtaXQoJ2l0ZW0tc2VsZWN0ZWQnLCB7IGNvbHVtbiwgaXRlbSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGtleWRvd25FdmVudChldmVudCkge1xuICAgICAgICBjb25zdCBjb2RlcyA9IHsgMzc6ICdsZWZ0JywgMzg6ICd1cCcsIDM5OiAncmlnaHQnLCA0MDogJ2Rvd24nIH07XG5cbiAgICAgICAgaWYgKGV2ZW50LmtleUNvZGUgaW4gY29kZXMpIHtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgICAgdGhpcy4kZW1pdHRlci5lbWl0KCduYXZpZ2F0ZScsIHtcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb246IGNvZGVzW2V2ZW50LmtleUNvZGVdXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGl0ZW1TZWxlY3RlZCh2YWx1ZSkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdmFsdWUuaXRlbTtcbiAgICAgICAgaWYgKCFlbGVtZW50Lmxlbmd0aCkgeyByZXR1cm4gZmFsc2U7IH1cbiAgICAgICAgY29uc3QgaXRlbSA9IGVsZW1lbnRbMF0uX2l0ZW07XG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IHZhbHVlLmNvbHVtbjtcbiAgICAgICAgY29uc3QgZGF0YSA9IGl0ZW1bdGhpcy5jb25maWcuY2hpbGRLZXldIHx8IHRoaXMuZGF0YTtcbiAgICAgICAgY29uc3QgYWN0aXZlID0gJChjb2x1bW4pLmZpbmQoYC4ke3RoaXMuY29uZmlnLmNsYXNzTmFtZS5hY3RpdmV9YCk7XG5cbiAgICAgICAgaWYgKGFjdGl2ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgIGFjdGl2ZS5yZW1vdmVDbGFzcyh0aGlzLmNvbmZpZy5jbGFzc05hbWUuYWN0aXZlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGVsZW1lbnQuYWRkQ2xhc3ModGhpcy5jb25maWcuY2xhc3NOYW1lLmFjdGl2ZSk7XG4gICAgICAgIGNvbHVtbi5uZXh0QWxsKCkucmVtb3ZlKCk7IC8vID8hPyE/XG5cbiAgICAgICAgdGhpcy5jb250YWluZXJbMF0uZm9jdXMoKTtcbiAgICAgICAgd2luZG93LnNjcm9sbFRvKHdpbmRvdy5wYWdlWE9mZnNldCwgd2luZG93LnBhZ2VZT2Zmc2V0KTtcblxuICAgICAgICB0aGlzLnVwZGF0ZVBhdGhCYXIoKTtcblxuICAgICAgICBsZXQgbmV3Q29sdW1uO1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgbmV3Q29sdW1uID0gdGhpcy5jcmVhdGVDb2x1bW4oZGF0YSwgaXRlbSk7XG4gICAgICAgICAgICB0aGlzLiRlbWl0dGVyLmVtaXQoJ2ludGVyaW9yLXNlbGVjdGVkJywgaXRlbSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLiRlbWl0dGVyLmVtaXQoJ2xlYWYtc2VsZWN0ZWQnLCBpdGVtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXdDb2x1bW47XG4gICAgfVxuXG4gICAgYWRkQ29sdW1uKGNvbHVtbikge1xuICAgICAgICB0aGlzLmNvbnRhaW5lci5hcHBlbmQoY29sdW1uKTtcbiAgICAgICAgdGhpcy4kZW1pdHRlci5lbWl0KCdjb2x1bW4tY3JlYXRlZCcsIGNvbHVtbik7XG4gICAgfVxuXG4gICAgbmF2aWdhdGUodmFsdWUpIHtcbiAgICAgICAgY29uc3QgYWN0aXZlID0gdGhpcy5maW5kTGFzdEFjdGl2ZSgpO1xuICAgICAgICBjb25zdCBkaXJlY3Rpb24gPSB2YWx1ZS5kaXJlY3Rpb247XG4gICAgICAgIGxldCBjb2x1bW47XG4gICAgICAgIGxldCBpdGVtO1xuICAgICAgICBsZXQgdGFyZ2V0O1xuXG4gICAgICAgIGlmIChhY3RpdmUpIHtcbiAgICAgICAgICAgIGl0ZW0gPSBhY3RpdmUuaXRlbTtcbiAgICAgICAgICAgIGNvbHVtbiA9IGFjdGl2ZS5jb2x1bW47XG5cbiAgICAgICAgICAgIGlmIChkaXJlY3Rpb24gPT09ICd1cCcgJiYgaXRlbS5wcmV2KCkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0ID0gaXRlbS5wcmV2KCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PT0gJ2Rvd24nICYmIGl0ZW0ubmV4dCgpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRhcmdldCA9IGl0ZW0ubmV4dCgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT09ICdyaWdodCcgJiYgY29sdW1uLm5leHQoKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBjb2x1bW4gPSBjb2x1bW4ubmV4dCgpO1xuICAgICAgICAgICAgICAgIHRhcmdldCA9IGNvbHVtbi5maW5kKGAuJHt0aGlzLmNvbmZpZy5jbGFzc05hbWUuaXRlbX1gKS5maXJzdCgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChkaXJlY3Rpb24gPT09ICdsZWZ0JyAmJiBjb2x1bW4ucHJldigpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGNvbHVtbiA9IGNvbHVtbi5wcmV2KCk7XG4gICAgICAgICAgICAgICAgdGFyZ2V0ID0gY29sdW1uLmZpbmQoYC4ke3RoaXMuY29uZmlnLmNsYXNzTmFtZS5hY3RpdmV9YCkuZmlyc3QoKSB8fCBjb2x1bW4uZmluZChgLiR7dGhpcy5jb25maWcuY2xhc3NOYW1lLml0ZW19YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb2x1bW4gPSB0aGlzLmNvbnRhaW5lci5maW5kKGAuJHt0aGlzLmNvbmZpZy5jbGFzc05hbWUuY29sfWApLmZpcnN0KCk7XG4gICAgICAgICAgICB0YXJnZXQgPSBjb2x1bW4uZmluZChgLiR7dGhpcy5jb25maWcuY2xhc3NOYW1lLml0ZW19YCkuZmlyc3QoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0YXJnZXQpIHtcbiAgICAgICAgICAgIHRoaXMuJGVtaXR0ZXIuZW1pdCgnaXRlbS1zZWxlY3RlZCcsIHtcbiAgICAgICAgICAgICAgICBjb2x1bW4sXG4gICAgICAgICAgICAgICAgaXRlbTogdGFyZ2V0XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdvVG8oZGF0YSwgcGF0aCkge1xuICAgICAgICBwYXRoID0gQXJyYXkuaXNBcnJheShwYXRoKSA/IHBhdGggOiBwYXRoLnNwbGl0KCcvJykubWFwKGJpdCA9PiBiaXQudHJpbSgpKS5maWx0ZXIoQm9vbGVhbik7XG5cbiAgICAgICAgaWYgKHBhdGgubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lci5jaGlsZHJlbigpLnJlbW92ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBkYXRhLmNhbGwodGhpcywgbnVsbCwgKGRhdGEpID0+IHRoaXMuc2VsZWN0UGF0aChwYXRoLCBkYXRhKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdFBhdGgocGF0aCwgZGF0YSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZWxlY3RQYXRoKHBhdGgsIGRhdGEsIGNvbHVtbikge1xuICAgICAgICBjb2x1bW4gPSBjb2x1bW4gfHwgKHBhdGgubGVuZ3RoID8gdGhpcy5jcmVhdGVDb2x1bW4oZGF0YSkgOiB0aGlzLmNvbnRhaW5lci5maW5kKGA+IC4ke3RoaXMuY29uZmlnLmNsYXNzTmFtZS5jb2x9YCkpO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnQgPSBwYXRoWzBdIHx8ICcnO1xuICAgICAgICBjb25zdCBjaGlsZHJlbiA9IGRhdGEuZmluZCgoaXRlbSkgPT4gaXRlbVt0aGlzLmNvbmZpZy5pdGVtS2V5XSA9PT0gY3VycmVudCk7XG4gICAgICAgIGNvbnN0IG5ld0NvbHVtbiA9IHRoaXMuaXRlbVNlbGVjdGVkKHtcbiAgICAgICAgICAgIGNvbHVtbixcbiAgICAgICAgICAgIGl0ZW06IGNvbHVtbi5maW5kKGBbZGF0YS1manMtaXRlbT1cIiR7Y3VycmVudH1cIl1gKS5maXJzdCgpXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHBhdGguc2hpZnQoKTtcblxuICAgICAgICBpZiAocGF0aC5sZW5ndGggJiYgY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0UGF0aChwYXRoLCBjaGlsZHJlblt0aGlzLmNvbmZpZy5jaGlsZEtleV0sIG5ld0NvbHVtbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmaW5kTGFzdEFjdGl2ZSgpIHtcbiAgICAgICAgY29uc3QgYWN0aXZlID0gdGhpcy5jb250YWluZXIuZmluZChgLiR7dGhpcy5jb25maWcuY2xhc3NOYW1lLmFjdGl2ZX1gKTtcbiAgICAgICAgaWYgKCFhY3RpdmUubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGl0ZW0gPSBhY3RpdmUubGFzdCgpO1xuICAgICAgICBjb25zdCBjb2x1bW4gPSBpdGVtLmNsb3Nlc3QoYC4ke3RoaXMuY29uZmlnLmNsYXNzTmFtZS5jb2x9YCk7XG5cbiAgICAgICAgcmV0dXJuIHsgaXRlbSwgY29sdW1uIH07XG4gICAgfVxuXG4gICAgY3JlYXRlTGlzdChkYXRhKSB7XG4gICAgICAgIGNvbnN0IGxpc3QgPSAkKCc8dWwgLz4nKTtcbiAgICAgICAgY29uc3QgaXRlbXMgPSBkYXRhLm1hcCgoaXRlbSkgPT4gdGhpcy5jcmVhdGVJdGVtKGl0ZW0pKTtcblxuICAgICAgICBjb25zdCBmcmFnbWVudHMgPSBpdGVtcy5yZWR1Y2UoKGZyYWdtZW50LCBjdXJyZW50KSA9PiB7XG4gICAgICAgICAgICBmcmFnbWVudC5hcHBlbmRDaGlsZChjdXJyZW50WzBdIHx8IGN1cnJlbnQpO1xuXG4gICAgICAgICAgICByZXR1cm4gZnJhZ21lbnQ7XG4gICAgICAgIH0sIGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSk7XG5cbiAgICAgICAgbGlzdC5hcHBlbmQoZnJhZ21lbnRzKS5hZGRDbGFzcyh0aGlzLmNvbmZpZy5jbGFzc05hbWUubGlzdCk7XG5cbiAgICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfVxuXG4gICAgY3JlYXRlSXRlbShpdGVtKSB7XG4gICAgICAgIGNvbnN0IGxpc3RJdGVtID0gJCgnPGxpIC8+Jyk7XG4gICAgICAgIGNvbnN0IGxpc3RJdGVtQ2xhc3NlcyA9IFt0aGlzLmNvbmZpZy5jbGFzc05hbWUuaXRlbV07XG4gICAgICAgIGNvbnN0IGxpbmsgPSAkKCc8YSAvPicpO1xuICAgICAgICBjb25zdCBjcmVhdGVJdGVtQ29udGVudCA9IHRoaXMuY29uZmlnLmNyZWF0ZUl0ZW1Db250ZW50IHx8IHRoaXMuY3JlYXRlSXRlbUNvbnRlbnQ7XG4gICAgICAgIGNvbnN0IGZyYWdtZW50ID0gY3JlYXRlSXRlbUNvbnRlbnQuY2FsbCh0aGlzLCBpdGVtKTtcbiAgICAgICAgbGluay5hcHBlbmQoZnJhZ21lbnQpXG4gICAgICAgICAgICAuYXR0cignaHJlZicsICcnKVxuICAgICAgICAgICAgLmF0dHIoJ3RhYmluZGV4JywgLTEpO1xuXG4gICAgICAgIGlmIChpdGVtLnVybCkge1xuICAgICAgICAgICAgbGluay5hdHRyKCdocmVmJywgaXRlbS51cmwpO1xuICAgICAgICAgICAgbGlzdEl0ZW1DbGFzc2VzLnB1c2goaXRlbS5jbGFzc05hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGl0ZW1bdGhpcy5jb25maWcuY2hpbGRLZXldKSB7XG4gICAgICAgICAgICBsaXN0SXRlbUNsYXNzZXMucHVzaCh0aGlzLmNvbmZpZy5jbGFzc05hbWVbdGhpcy5jb25maWcuY2hpbGRLZXldKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpc3RJdGVtQ2xhc3Nlcy5wdXNoKGBmanMtaXRlbS0ke2l0ZW0udHlwZX1gKTtcbiAgICAgICAgbGlzdEl0ZW0uYWRkQ2xhc3MobGlzdEl0ZW1DbGFzc2VzLmpvaW4oJyAnKSk7XG4gICAgICAgIGxpc3RJdGVtLmFwcGVuZChsaW5rKVxuICAgICAgICAgICAgLmF0dHIoJ2RhdGEtZmpzLWl0ZW0nLCBpdGVtW3RoaXMuY29uZmlnLml0ZW1LZXldKTtcblxuICAgICAgICBsaXN0SXRlbVswXS5faXRlbSA9IGl0ZW07XG5cbiAgICAgICAgcmV0dXJuIGxpc3RJdGVtO1xuICAgIH1cblxuICAgIHVwZGF0ZVBhdGhCYXIoKSB7XG4gICAgICAgIGlmICghdGhpcy5jb25maWcucGF0aEJhcikgeyByZXR1cm4gZmFsc2U7IH1cblxuICAgICAgICBjb25zdCBhY3RpdmVJdGVtcyA9IHRoaXMuY29udGFpbmVyLmZpbmQoYC4ke3RoaXMuY29uZmlnLmNsYXNzTmFtZS5hY3RpdmV9YCk7XG4gICAgICAgIGxldCBpdGVtS2V5cyA9ICcnO1xuICAgICAgICB0aGlzLnBhdGhCYXIuY2hpbGRyZW4oKS5lbXB0eSgpO1xuICAgICAgICBhY3RpdmVJdGVtcy5lYWNoKChpbmRleCwgYWN0aXZlSXRlbSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXRlbSA9IGFjdGl2ZUl0ZW0uX2l0ZW07XG4gICAgICAgICAgICBjb25zdCBpc0xhc3QgPSAoaW5kZXggKyAxKSA9PT0gYWN0aXZlSXRlbXMubGVuZ3RoO1xuICAgICAgICAgICAgaXRlbUtleXMgKz0gYC8ke2l0ZW1bdGhpcy5jb25maWcuaXRlbUtleV19YDtcbiAgICAgICAgICAgIHRoaXMucGF0aEJhci5hcHBlbmQoYFxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYnJlYWRjcnVtYi1ub2RlIGJyZWFkY3J1bWItbm9kZS0ke2l0ZW0udHlwZX1cIiAke2l0ZW0udHlwZSA9PT0gJ2RpcicgPyBgZGF0YS1icmVhZGNydW1iLW5vZGU9XCIke2l0ZW1LZXlzfVwiYCA6ICcnfT5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1mdyAke3RoaXMuZ2V0SWNvbihpdGVtLnR5cGUpfVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJicmVhZGNydW1iLW5vZGUtbmFtZVwiPiR7JCgnPGRpdiAvPicpLnRleHQoaXRlbVt0aGlzLmNvbmZpZy5sYWJlbEtleV0pLmh0bWwoKX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICR7IWlzTGFzdCA/ICc8aSBjbGFzcz1cImZhIGZhLWZ3IGZhLWNoZXZyb24tcmlnaHRcIj48L2k+JyA6ICcnfVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIGApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXRJY29uKHR5cGUpIHtcbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdyb290JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2ZhLXNpdGVtYXAnO1xuICAgICAgICAgICAgY2FzZSAnZmlsZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdmYS1maWxlLW8nO1xuICAgICAgICAgICAgY2FzZSAnZGlyJzpcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdmYS1mb2xkZXInO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBGaW5kZXI7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/utils/finderjs.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/utils/formatbytes.js":
|
|
/*!**********************************!*\
|
|
!*** ./app/utils/formatbytes.js ***!
|
|
\**********************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ formatBytes)\n/* harmony export */ });\nvar sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\nfunction formatBytes(bytes, decimals) {\n if (bytes === 0) return '0 Byte';\n var k = 1000;\n var value = Math.floor(Math.log(bytes) / Math.log(k));\n var decimal = decimals + 1 || 3;\n return (bytes / Math.pow(k, value)).toPrecision(decimal) + ' ' + sizes[value];\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL2Zvcm1hdGJ5dGVzLmpzP2FhZDMiXSwibmFtZXMiOlsic2l6ZXMiLCJmb3JtYXRCeXRlcyIsImJ5dGVzIiwiZGVjaW1hbHMiLCJrIiwidmFsdWUiLCJNYXRoIiwiZmxvb3IiLCJsb2ciLCJkZWNpbWFsIiwicG93IiwidG9QcmVjaXNpb24iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxJQUFNQSxLQUFLLEdBQUcsQ0FBQyxPQUFELEVBQVUsSUFBVixFQUFnQixJQUFoQixFQUFzQixJQUF0QixFQUE0QixJQUE1QixFQUFrQyxJQUFsQyxFQUF3QyxJQUF4QyxFQUE4QyxJQUE5QyxFQUFvRCxJQUFwRCxDQUFkO0FBRWUsU0FBU0MsV0FBVCxDQUFxQkMsS0FBckIsRUFBNEJDLFFBQTVCLEVBQXNDO0FBQ2pELE1BQUlELEtBQUssS0FBSyxDQUFkLEVBQWlCLE9BQU8sUUFBUDtBQUVqQixNQUFJRSxDQUFDLEdBQUcsSUFBUjtBQUNBLE1BQUlDLEtBQUssR0FBR0MsSUFBSSxDQUFDQyxLQUFMLENBQVdELElBQUksQ0FBQ0UsR0FBTCxDQUFTTixLQUFULElBQWtCSSxJQUFJLENBQUNFLEdBQUwsQ0FBU0osQ0FBVCxDQUE3QixDQUFaO0FBQ0EsTUFBSUssT0FBTyxHQUFHTixRQUFRLEdBQUcsQ0FBWCxJQUFnQixDQUE5QjtBQUVBLFNBQU8sQ0FBQ0QsS0FBSyxHQUFHSSxJQUFJLENBQUNJLEdBQUwsQ0FBU04sQ0FBVCxFQUFZQyxLQUFaLENBQVQsRUFBNkJNLFdBQTdCLENBQXlDRixPQUF6QyxJQUFvRCxHQUFwRCxHQUEwRFQsS0FBSyxDQUFDSyxLQUFELENBQXRFO0FBQ0giLCJmaWxlIjoiLi9hcHAvdXRpbHMvZm9ybWF0Ynl0ZXMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBzaXplcyA9IFsnQnl0ZXMnLCAnS0InLCAnTUInLCAnR0InLCAnVEInLCAnUEInLCAnRUInLCAnWkInLCAnWUInXTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZm9ybWF0Qnl0ZXMoYnl0ZXMsIGRlY2ltYWxzKSB7XG4gICAgaWYgKGJ5dGVzID09PSAwKSByZXR1cm4gJzAgQnl0ZSc7XG5cbiAgICBsZXQgayA9IDEwMDA7XG4gICAgbGV0IHZhbHVlID0gTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZyhrKSk7XG4gICAgbGV0IGRlY2ltYWwgPSBkZWNpbWFscyArIDEgfHwgMztcblxuICAgIHJldHVybiAoYnl0ZXMgLyBNYXRoLnBvdyhrLCB2YWx1ZSkpLnRvUHJlY2lzaW9uKGRlY2ltYWwpICsgJyAnICsgc2l6ZXNbdmFsdWVdO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/utils/formatbytes.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/utils/gpm.js":
|
|
/*!**************************!*\
|
|
!*** ./app/utils/gpm.js ***!
|
|
\**************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ GPM),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var _response__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./response */ \"./app/utils/response.js\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! events */ \"./node_modules/events/events.js\");\n/* harmony import */ var events__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(events__WEBPACK_IMPORTED_MODULE_2__);\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\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); 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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || 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; } 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 : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\nvar GPM = /*#__PURE__*/function (_EventEmitter) {\n _inherits(GPM, _EventEmitter);\n\n var _super = _createSuper(GPM);\n\n function GPM() {\n var _this;\n\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'getUpdates';\n\n _classCallCheck(this, GPM);\n\n _this = _super.call(this);\n _this.payload = {};\n _this.raw = {};\n _this.action = action;\n return _this;\n }\n\n _createClass(GPM, [{\n key: \"setPayload\",\n value: function setPayload() {\n var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.payload = payload;\n this.emit('payload', payload);\n return this;\n }\n }, {\n key: \"setAction\",\n value: function setAction() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'getUpdates';\n this.action = action;\n this.emit('action', action);\n return this;\n }\n }, {\n key: \"fetch\",\n value: function (_fetch) {\n function fetch() {\n return _fetch.apply(this, arguments);\n }\n\n fetch.toString = function () {\n return _fetch.toString();\n };\n\n return fetch;\n }(function () {\n var _this2 = this;\n\n var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {\n return true;\n };\n var flush = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var data = new FormData();\n data.append('admin-nonce', grav_config__WEBPACK_IMPORTED_MODULE_1__.config.admin_nonce);\n\n if (flush) {\n data.append('flush', true);\n }\n\n this.emit('fetching', this);\n fetch(\"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/update.json/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep, \"getUpdates\"), {\n credentials: 'same-origin',\n method: 'post',\n body: data\n }).then(function (response) {\n _this2.raw = response;\n return response;\n }).then(_response__WEBPACK_IMPORTED_MODULE_0__.parseStatus).then(_response__WEBPACK_IMPORTED_MODULE_0__.parseJSON).then(function (response) {\n return _this2.response(response);\n }).then(function (response) {\n return callback(response, _this2.raw);\n }).then(function (response) {\n return _this2.emit('fetched', _this2.payload, _this2.raw, _this2);\n })[\"catch\"](_response__WEBPACK_IMPORTED_MODULE_0__.userFeedbackError);\n })\n }, {\n key: \"response\",\n value: function response(_response) {\n this.payload = _response;\n return _response;\n }\n }]);\n\n return GPM;\n}((events__WEBPACK_IMPORTED_MODULE_2___default()));\n\n\nvar Instance = new GPM();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL2dwbS5qcz83OWI2Il0sIm5hbWVzIjpbIkdQTSIsImFjdGlvbiIsInBheWxvYWQiLCJyYXciLCJlbWl0IiwiY2FsbGJhY2siLCJmbHVzaCIsImRhdGEiLCJGb3JtRGF0YSIsImFwcGVuZCIsImNvbmZpZyIsImZldGNoIiwiY3JlZGVudGlhbHMiLCJtZXRob2QiLCJib2R5IiwidGhlbiIsInJlc3BvbnNlIiwicGFyc2VTdGF0dXMiLCJwYXJzZUpTT04iLCJ1c2VyRmVlZGJhY2tFcnJvciIsIkV2ZW50RW1pdHRlciIsIkluc3RhbmNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTs7SUFFcUJBLEc7Ozs7O0FBQ2pCLGlCQUFtQztBQUFBOztBQUFBLFFBQXZCQyxNQUF1Qix1RUFBZCxZQUFjOztBQUFBOztBQUMvQjtBQUNBLFVBQUtDLE9BQUwsR0FBZSxFQUFmO0FBQ0EsVUFBS0MsR0FBTCxHQUFXLEVBQVg7QUFDQSxVQUFLRixNQUFMLEdBQWNBLE1BQWQ7QUFKK0I7QUFLbEM7Ozs7V0FFRCxzQkFBeUI7QUFBQSxVQUFkQyxPQUFjLHVFQUFKLEVBQUk7QUFDckIsV0FBS0EsT0FBTCxHQUFlQSxPQUFmO0FBQ0EsV0FBS0UsSUFBTCxDQUFVLFNBQVYsRUFBcUJGLE9BQXJCO0FBRUEsYUFBTyxJQUFQO0FBQ0g7OztXQUVELHFCQUFpQztBQUFBLFVBQXZCRCxNQUF1Qix1RUFBZCxZQUFjO0FBQzdCLFdBQUtBLE1BQUwsR0FBY0EsTUFBZDtBQUNBLFdBQUtHLElBQUwsQ0FBVSxRQUFWLEVBQW9CSCxNQUFwQjtBQUVBLGFBQU8sSUFBUDtBQUNIOzs7Ozs7Ozs7Ozs7O01BRUQsWUFBNEM7QUFBQTs7QUFBQSxVQUF0Q0ksUUFBc0MsdUVBQTNCO0FBQUEsZUFBTSxJQUFOO0FBQUEsT0FBMkI7QUFBQSxVQUFmQyxLQUFlLHVFQUFQLEtBQU87QUFDeEMsVUFBSUMsSUFBSSxHQUFHLElBQUlDLFFBQUosRUFBWDtBQUNBRCxVQUFJLENBQUNFLE1BQUwsQ0FBWSxhQUFaLEVBQTJCQywyREFBM0I7O0FBRUEsVUFBSUosS0FBSixFQUFXO0FBQ1BDLFlBQUksQ0FBQ0UsTUFBTCxDQUFZLE9BQVosRUFBcUIsSUFBckI7QUFDSDs7QUFFRCxXQUFLTCxJQUFMLENBQVUsVUFBVixFQUFzQixJQUF0QjtBQUVBTyxXQUFLLFdBQUlELGlFQUFKLDhCQUFnREEseURBQWhELGlCQUE4RTtBQUMvRUUsbUJBQVcsRUFBRSxhQURrRTtBQUUvRUMsY0FBTSxFQUFFLE1BRnVFO0FBRy9FQyxZQUFJLEVBQUVQO0FBSHlFLE9BQTlFLENBQUwsQ0FJR1EsSUFKSCxDQUlRLFVBQUNDLFFBQUQsRUFBYztBQUFFLGNBQUksQ0FBQ2IsR0FBTCxHQUFXYSxRQUFYO0FBQXFCLGVBQU9BLFFBQVA7QUFBa0IsT0FKL0QsRUFLS0QsSUFMTCxDQUtVRSxrREFMVixFQU1LRixJQU5MLENBTVVHLGdEQU5WLEVBT0tILElBUEwsQ0FPVSxVQUFDQyxRQUFEO0FBQUEsZUFBYyxNQUFJLENBQUNBLFFBQUwsQ0FBY0EsUUFBZCxDQUFkO0FBQUEsT0FQVixFQVFLRCxJQVJMLENBUVUsVUFBQ0MsUUFBRDtBQUFBLGVBQWNYLFFBQVEsQ0FBQ1csUUFBRCxFQUFXLE1BQUksQ0FBQ2IsR0FBaEIsQ0FBdEI7QUFBQSxPQVJWLEVBU0tZLElBVEwsQ0FTVSxVQUFDQyxRQUFEO0FBQUEsZUFBYyxNQUFJLENBQUNaLElBQUwsQ0FBVSxTQUFWLEVBQXFCLE1BQUksQ0FBQ0YsT0FBMUIsRUFBbUMsTUFBSSxDQUFDQyxHQUF4QyxFQUE2QyxNQUE3QyxDQUFkO0FBQUEsT0FUVixXQVVXZ0Isd0RBVlg7QUFXSCxLOzs7V0FFRCxrQkFBU0gsU0FBVCxFQUFtQjtBQUNmLFdBQUtkLE9BQUwsR0FBZWMsU0FBZjtBQUVBLGFBQU9BLFNBQVA7QUFDSDs7OztFQWpENEJJLCtDOzs7QUFvRDFCLElBQUlDLFFBQVEsR0FBRyxJQUFJckIsR0FBSixFQUFmIiwiZmlsZSI6Ii4vYXBwL3V0aWxzL2dwbS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhcnNlSlNPTiwgcGFyc2VTdGF0dXMsIHVzZXJGZWVkYmFja0Vycm9yIH0gZnJvbSAnLi9yZXNwb25zZSc7XG5pbXBvcnQgeyBjb25maWcgfSBmcm9tICdncmF2LWNvbmZpZyc7XG5pbXBvcnQgRXZlbnRFbWl0dGVyIGZyb20gJ2V2ZW50cyc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdQTSBleHRlbmRzIEV2ZW50RW1pdHRlciB7XG4gICAgY29uc3RydWN0b3IoYWN0aW9uID0gJ2dldFVwZGF0ZXMnKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMucGF5bG9hZCA9IHt9O1xuICAgICAgICB0aGlzLnJhdyA9IHt9O1xuICAgICAgICB0aGlzLmFjdGlvbiA9IGFjdGlvbjtcbiAgICB9XG5cbiAgICBzZXRQYXlsb2FkKHBheWxvYWQgPSB7fSkge1xuICAgICAgICB0aGlzLnBheWxvYWQgPSBwYXlsb2FkO1xuICAgICAgICB0aGlzLmVtaXQoJ3BheWxvYWQnLCBwYXlsb2FkKTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBzZXRBY3Rpb24oYWN0aW9uID0gJ2dldFVwZGF0ZXMnKSB7XG4gICAgICAgIHRoaXMuYWN0aW9uID0gYWN0aW9uO1xuICAgICAgICB0aGlzLmVtaXQoJ2FjdGlvbicsIGFjdGlvbik7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZmV0Y2goY2FsbGJhY2sgPSAoKSA9PiB0cnVlLCBmbHVzaCA9IGZhbHNlKSB7XG4gICAgICAgIGxldCBkYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgIGRhdGEuYXBwZW5kKCdhZG1pbi1ub25jZScsIGNvbmZpZy5hZG1pbl9ub25jZSk7XG5cbiAgICAgICAgaWYgKGZsdXNoKSB7XG4gICAgICAgICAgICBkYXRhLmFwcGVuZCgnZmx1c2gnLCB0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZW1pdCgnZmV0Y2hpbmcnLCB0aGlzKTtcblxuICAgICAgICBmZXRjaChgJHtjb25maWcuYmFzZV91cmxfcmVsYXRpdmV9L3VwZGF0ZS5qc29uL3Rhc2ske2NvbmZpZy5wYXJhbV9zZXB9Z2V0VXBkYXRlc2AsIHtcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nLFxuICAgICAgICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICAgICAgICBib2R5OiBkYXRhXG4gICAgICAgIH0pLnRoZW4oKHJlc3BvbnNlKSA9PiB7IHRoaXMucmF3ID0gcmVzcG9uc2U7IHJldHVybiByZXNwb25zZTsgfSlcbiAgICAgICAgICAgIC50aGVuKHBhcnNlU3RhdHVzKVxuICAgICAgICAgICAgLnRoZW4ocGFyc2VKU09OKVxuICAgICAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB0aGlzLnJlc3BvbnNlKHJlc3BvbnNlKSlcbiAgICAgICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4gY2FsbGJhY2socmVzcG9uc2UsIHRoaXMucmF3KSlcbiAgICAgICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4gdGhpcy5lbWl0KCdmZXRjaGVkJywgdGhpcy5wYXlsb2FkLCB0aGlzLnJhdywgdGhpcykpXG4gICAgICAgICAgICAuY2F0Y2godXNlckZlZWRiYWNrRXJyb3IpO1xuICAgIH1cblxuICAgIHJlc3BvbnNlKHJlc3BvbnNlKSB7XG4gICAgICAgIHRoaXMucGF5bG9hZCA9IHJlc3BvbnNlO1xuXG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9XG59XG5cbmV4cG9ydCBsZXQgSW5zdGFuY2UgPSBuZXcgR1BNKCk7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/utils/gpm.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/utils/jquery-utils.js":
|
|
/*!***********************************!*\
|
|
!*** ./app/utils/jquery-utils.js ***!
|
|
\***********************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var speakingurl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! speakingurl */ \"./node_modules/speakingurl/index.js\");\n/* harmony import */ var speakingurl__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(speakingurl__WEBPACK_IMPORTED_MODULE_1__);\nvar _this = undefined;\n\n\n // jQuery no parents filter\n\n(jquery__WEBPACK_IMPORTED_MODULE_0___default().expr[\":\"].noparents) = jquery__WEBPACK_IMPORTED_MODULE_0___default().expr.createPseudo(function (text) {\n return function (element) {\n return jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).parents(text).length < 1;\n };\n}); // Slugify\n// CommonJS and ES6 version of https://github.com/madflow/jquery-slugify\n\n(jquery__WEBPACK_IMPORTED_MODULE_0___default().fn.slugify) = function (source, options) {\n return _this.each(function (element) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element);\n var source = jquery__WEBPACK_IMPORTED_MODULE_0___default()(source);\n target.on('keyup change', function () {\n target.data('locked', target.val() !== '' && target.val() !== undefined);\n });\n source.on('keyup change', function () {\n if (target.data('locked') === true) {\n return true;\n }\n\n var isInput = target.is('input') || target.is('textarea');\n target[isInput ? 'val' : 'text'](jquery__WEBPACK_IMPORTED_MODULE_0___default().slugify(source.val(), options));\n });\n });\n}; // Static method.\n\n\n(jquery__WEBPACK_IMPORTED_MODULE_0___default().slugify) = function (sourceString, options) {\n options = jquery__WEBPACK_IMPORTED_MODULE_0___default().extend({}, (jquery__WEBPACK_IMPORTED_MODULE_0___default().slugify.options), options);\n options.lang = options.lang || jquery__WEBPACK_IMPORTED_MODULE_0___default()('html').prop('lang');\n\n if (typeof options.preSlug === 'function') {\n sourceString = options.preSlug(sourceString);\n }\n\n sourceString = options.slugFunc(sourceString, options);\n\n if (typeof options.postSlug === 'function') {\n sourceString = options.postSlug(sourceString);\n }\n\n return sourceString;\n}; // Default plugin options\n\n\n(jquery__WEBPACK_IMPORTED_MODULE_0___default().slugify.options) = {\n preSlug: null,\n postSlug: null,\n slugFunc: function slugFunc(input, opts) {\n return speakingurl__WEBPACK_IMPORTED_MODULE_1___default()(input, opts);\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL2pxdWVyeS11dGlscy5qcz85MGRlIl0sIm5hbWVzIjpbIiQiLCJ0ZXh0IiwiZWxlbWVudCIsInBhcmVudHMiLCJsZW5ndGgiLCJzb3VyY2UiLCJvcHRpb25zIiwiZWFjaCIsInRhcmdldCIsIm9uIiwiZGF0YSIsInZhbCIsInVuZGVmaW5lZCIsImlzSW5wdXQiLCJpcyIsInNvdXJjZVN0cmluZyIsImxhbmciLCJwcm9wIiwicHJlU2x1ZyIsInNsdWdGdW5jIiwicG9zdFNsdWciLCJpbnB1dCIsIm9wdHMiLCJnZXRTbHVnIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Q0FHQTs7QUFDQUEsbUVBQUEsR0FBMkJBLCtEQUFBLENBQW9CLFVBQUNDLElBQUQ7QUFBQSxTQUFVLFVBQUNDLE9BQUQ7QUFBQSxXQUFhRiw2Q0FBQyxDQUFDRSxPQUFELENBQUQsQ0FBV0MsT0FBWCxDQUFtQkYsSUFBbkIsRUFBeUJHLE1BQXpCLEdBQWtDLENBQS9DO0FBQUEsR0FBVjtBQUFBLENBQXBCLENBQTNCLEMsQ0FFQTtBQUNBOztBQUNBSiwwREFBQSxHQUFlLFVBQUNLLE1BQUQsRUFBU0MsT0FBVCxFQUFxQjtBQUNoQyxTQUFPLEtBQUksQ0FBQ0MsSUFBTCxDQUFVLFVBQUNMLE9BQUQsRUFBYTtBQUMxQixRQUFJTSxNQUFNLEdBQUdSLDZDQUFDLENBQUNFLE9BQUQsQ0FBZDtBQUNBLFFBQUlHLE1BQU0sR0FBR0wsNkNBQUMsQ0FBQ0ssTUFBRCxDQUFkO0FBRUFHLFVBQU0sQ0FBQ0MsRUFBUCxDQUFVLGNBQVYsRUFBMEIsWUFBTTtBQUM1QkQsWUFBTSxDQUFDRSxJQUFQLENBQVksUUFBWixFQUFzQkYsTUFBTSxDQUFDRyxHQUFQLE9BQWlCLEVBQWpCLElBQXVCSCxNQUFNLENBQUNHLEdBQVAsT0FBaUJDLFNBQTlEO0FBQ0gsS0FGRDtBQUlBUCxVQUFNLENBQUNJLEVBQVAsQ0FBVSxjQUFWLEVBQTBCLFlBQU07QUFDNUIsVUFBSUQsTUFBTSxDQUFDRSxJQUFQLENBQVksUUFBWixNQUEwQixJQUE5QixFQUFvQztBQUFFLGVBQU8sSUFBUDtBQUFjOztBQUVwRCxVQUFJRyxPQUFPLEdBQUdMLE1BQU0sQ0FBQ00sRUFBUCxDQUFVLE9BQVYsS0FBc0JOLE1BQU0sQ0FBQ00sRUFBUCxDQUFVLFVBQVYsQ0FBcEM7QUFDQU4sWUFBTSxDQUFDSyxPQUFPLEdBQUcsS0FBSCxHQUFXLE1BQW5CLENBQU4sQ0FBaUNiLHFEQUFBLENBQVVLLE1BQU0sQ0FBQ00sR0FBUCxFQUFWLEVBQXdCTCxPQUF4QixDQUFqQztBQUNILEtBTEQ7QUFNSCxHQWRNLENBQVA7QUFlSCxDQWhCRCxDLENBa0JBOzs7QUFDQU4sdURBQUEsR0FBWSxVQUFDZSxZQUFELEVBQWVULE9BQWYsRUFBMkI7QUFDbkNBLFNBQU8sR0FBR04sb0RBQUEsQ0FBUyxFQUFULEVBQWFBLCtEQUFiLEVBQWdDTSxPQUFoQyxDQUFWO0FBQ0FBLFNBQU8sQ0FBQ1UsSUFBUixHQUFlVixPQUFPLENBQUNVLElBQVIsSUFBZ0JoQiw2Q0FBQyxDQUFDLE1BQUQsQ0FBRCxDQUFVaUIsSUFBVixDQUFlLE1BQWYsQ0FBL0I7O0FBRUEsTUFBSSxPQUFPWCxPQUFPLENBQUNZLE9BQWYsS0FBMkIsVUFBL0IsRUFBMkM7QUFDdkNILGdCQUFZLEdBQUdULE9BQU8sQ0FBQ1ksT0FBUixDQUFnQkgsWUFBaEIsQ0FBZjtBQUNIOztBQUVEQSxjQUFZLEdBQUdULE9BQU8sQ0FBQ2EsUUFBUixDQUFpQkosWUFBakIsRUFBK0JULE9BQS9CLENBQWY7O0FBRUEsTUFBSSxPQUFPQSxPQUFPLENBQUNjLFFBQWYsS0FBNEIsVUFBaEMsRUFBNEM7QUFDeENMLGdCQUFZLEdBQUdULE9BQU8sQ0FBQ2MsUUFBUixDQUFpQkwsWUFBakIsQ0FBZjtBQUNIOztBQUVELFNBQU9BLFlBQVA7QUFDSCxDQWZELEMsQ0FpQkE7OztBQUNBZiwrREFBQSxHQUFvQjtBQUNoQmtCLFNBQU8sRUFBRSxJQURPO0FBRWhCRSxVQUFRLEVBQUUsSUFGTTtBQUdoQkQsVUFBUSxFQUFFLGtCQUFDRSxLQUFELEVBQVFDLElBQVI7QUFBQSxXQUFpQkMsa0RBQU8sQ0FBQ0YsS0FBRCxFQUFRQyxJQUFSLENBQXhCO0FBQUE7QUFITSxDQUFwQiIsImZpbGUiOiIuL2FwcC91dGlscy9qcXVlcnktdXRpbHMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IGdldFNsdWcgZnJvbSAnc3BlYWtpbmd1cmwnO1xuXG4vLyBqUXVlcnkgbm8gcGFyZW50cyBmaWx0ZXJcbiQuZXhwclsnOiddWydub3BhcmVudHMnXSA9ICQuZXhwci5jcmVhdGVQc2V1ZG8oKHRleHQpID0+IChlbGVtZW50KSA9PiAkKGVsZW1lbnQpLnBhcmVudHModGV4dCkubGVuZ3RoIDwgMSk7XG5cbi8vIFNsdWdpZnlcbi8vIENvbW1vbkpTIGFuZCBFUzYgdmVyc2lvbiBvZiBodHRwczovL2dpdGh1Yi5jb20vbWFkZmxvdy9qcXVlcnktc2x1Z2lmeVxuJC5mbi5zbHVnaWZ5ID0gKHNvdXJjZSwgb3B0aW9ucykgPT4ge1xuICAgIHJldHVybiB0aGlzLmVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgbGV0IHRhcmdldCA9ICQoZWxlbWVudCk7XG4gICAgICAgIGxldCBzb3VyY2UgPSAkKHNvdXJjZSk7XG5cbiAgICAgICAgdGFyZ2V0Lm9uKCdrZXl1cCBjaGFuZ2UnLCAoKSA9PiB7XG4gICAgICAgICAgICB0YXJnZXQuZGF0YSgnbG9ja2VkJywgdGFyZ2V0LnZhbCgpICE9PSAnJyAmJiB0YXJnZXQudmFsKCkgIT09IHVuZGVmaW5lZCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHNvdXJjZS5vbigna2V5dXAgY2hhbmdlJywgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRhcmdldC5kYXRhKCdsb2NrZWQnKSA9PT0gdHJ1ZSkgeyByZXR1cm4gdHJ1ZTsgfVxuXG4gICAgICAgICAgICBsZXQgaXNJbnB1dCA9IHRhcmdldC5pcygnaW5wdXQnKSB8fCB0YXJnZXQuaXMoJ3RleHRhcmVhJyk7XG4gICAgICAgICAgICB0YXJnZXRbaXNJbnB1dCA/ICd2YWwnIDogJ3RleHQnXSgkLnNsdWdpZnkoc291cmNlLnZhbCgpLCBvcHRpb25zKSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xufTtcblxuLy8gU3RhdGljIG1ldGhvZC5cbiQuc2x1Z2lmeSA9IChzb3VyY2VTdHJpbmcsIG9wdGlvbnMpID0+IHtcbiAgICBvcHRpb25zID0gJC5leHRlbmQoe30sICQuc2x1Z2lmeS5vcHRpb25zLCBvcHRpb25zKTtcbiAgICBvcHRpb25zLmxhbmcgPSBvcHRpb25zLmxhbmcgfHwgJCgnaHRtbCcpLnByb3AoJ2xhbmcnKTtcblxuICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5wcmVTbHVnID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHNvdXJjZVN0cmluZyA9IG9wdGlvbnMucHJlU2x1Zyhzb3VyY2VTdHJpbmcpO1xuICAgIH1cblxuICAgIHNvdXJjZVN0cmluZyA9IG9wdGlvbnMuc2x1Z0Z1bmMoc291cmNlU3RyaW5nLCBvcHRpb25zKTtcblxuICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5wb3N0U2x1ZyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBzb3VyY2VTdHJpbmcgPSBvcHRpb25zLnBvc3RTbHVnKHNvdXJjZVN0cmluZyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNvdXJjZVN0cmluZztcbn07XG5cbi8vIERlZmF1bHQgcGx1Z2luIG9wdGlvbnNcbiQuc2x1Z2lmeS5vcHRpb25zID0ge1xuICAgIHByZVNsdWc6IG51bGwsXG4gICAgcG9zdFNsdWc6IG51bGwsXG4gICAgc2x1Z0Z1bmM6IChpbnB1dCwgb3B0cykgPT4gZ2V0U2x1ZyhpbnB1dCwgb3B0cylcbn07XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/utils/jquery-utils.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/utils/keepalive.js":
|
|
/*!********************************!*\
|
|
!*** ./app/utils/keepalive.js ***!
|
|
\********************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _response__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./response */ \"./app/utils/response.js\");\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); return Constructor; }\n\n\n\nvar MAX_SAFE_DELAY = 2147483647;\n\nvar KeepAlive = /*#__PURE__*/function () {\n function KeepAlive() {\n _classCallCheck(this, KeepAlive);\n\n this.active = false;\n }\n\n _createClass(KeepAlive, [{\n key: \"start\",\n value: function start() {\n var _this = this;\n\n var timeout = grav_config__WEBPACK_IMPORTED_MODULE_0__.config.admin_timeout / 1.5 * 1000;\n this.timer = setInterval(function () {\n return _this.fetch();\n }, Math.min(timeout, MAX_SAFE_DELAY));\n this.active = true;\n }\n }, {\n key: \"stop\",\n value: function stop() {\n clearInterval(this.timer);\n this.active = false;\n }\n }, {\n key: \"fetch\",\n value: function (_fetch) {\n function fetch() {\n return _fetch.apply(this, arguments);\n }\n\n fetch.toString = function () {\n return _fetch.toString();\n };\n\n return fetch;\n }(function () {\n var data = new FormData();\n data.append('admin-nonce', grav_config__WEBPACK_IMPORTED_MODULE_0__.config.admin_nonce);\n fetch(\"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_0__.config.base_url_relative, \"/task\").concat(grav_config__WEBPACK_IMPORTED_MODULE_0__.config.param_sep, \"keepAlive\"), {\n credentials: 'same-origin',\n method: 'post',\n body: data\n })[\"catch\"](_response__WEBPACK_IMPORTED_MODULE_1__.userFeedbackError);\n })\n }]);\n\n return KeepAlive;\n}();\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (new KeepAlive());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL2tlZXBhbGl2ZS5qcz9jNWNhIl0sIm5hbWVzIjpbIk1BWF9TQUZFX0RFTEFZIiwiS2VlcEFsaXZlIiwiYWN0aXZlIiwidGltZW91dCIsImNvbmZpZyIsInRpbWVyIiwic2V0SW50ZXJ2YWwiLCJmZXRjaCIsIk1hdGgiLCJtaW4iLCJjbGVhckludGVydmFsIiwiZGF0YSIsIkZvcm1EYXRhIiwiYXBwZW5kIiwiY3JlZGVudGlhbHMiLCJtZXRob2QiLCJib2R5IiwidXNlckZlZWRiYWNrRXJyb3IiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBRUEsSUFBTUEsY0FBYyxHQUFHLFVBQXZCOztJQUVNQyxTO0FBQ0YsdUJBQWM7QUFBQTs7QUFDVixTQUFLQyxNQUFMLEdBQWMsS0FBZDtBQUNIOzs7O1dBRUQsaUJBQVE7QUFBQTs7QUFDSixVQUFJQyxPQUFPLEdBQUdDLDZEQUFBLEdBQXVCLEdBQXZCLEdBQTZCLElBQTNDO0FBQ0EsV0FBS0MsS0FBTCxHQUFhQyxXQUFXLENBQUM7QUFBQSxlQUFNLEtBQUksQ0FBQ0MsS0FBTCxFQUFOO0FBQUEsT0FBRCxFQUFxQkMsSUFBSSxDQUFDQyxHQUFMLENBQVNOLE9BQVQsRUFBa0JILGNBQWxCLENBQXJCLENBQXhCO0FBQ0EsV0FBS0UsTUFBTCxHQUFjLElBQWQ7QUFDSDs7O1dBRUQsZ0JBQU87QUFDSFEsbUJBQWEsQ0FBQyxLQUFLTCxLQUFOLENBQWI7QUFDQSxXQUFLSCxNQUFMLEdBQWMsS0FBZDtBQUNIOzs7Ozs7Ozs7Ozs7O01BRUQsWUFBUTtBQUNKLFVBQUlTLElBQUksR0FBRyxJQUFJQyxRQUFKLEVBQVg7QUFDQUQsVUFBSSxDQUFDRSxNQUFMLENBQVksYUFBWixFQUEyQlQsMkRBQTNCO0FBRUFHLFdBQUssV0FBSUgsaUVBQUosa0JBQW9DQSx5REFBcEMsZ0JBQWlFO0FBQ2xFVSxtQkFBVyxFQUFFLGFBRHFEO0FBRWxFQyxjQUFNLEVBQUUsTUFGMEQ7QUFHbEVDLFlBQUksRUFBRUw7QUFINEQsT0FBakUsQ0FBTCxVQUlTTSx3REFKVDtBQUtILEs7Ozs7OztBQUdMLGlFQUFlLElBQUloQixTQUFKLEVBQWYiLCJmaWxlIjoiLi9hcHAvdXRpbHMva2VlcGFsaXZlLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAnZ3Jhdi1jb25maWcnO1xuaW1wb3J0IHsgdXNlckZlZWRiYWNrRXJyb3IgfSBmcm9tICcuL3Jlc3BvbnNlJztcblxuY29uc3QgTUFYX1NBRkVfREVMQVkgPSAyMTQ3NDgzNjQ3O1xuXG5jbGFzcyBLZWVwQWxpdmUge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHN0YXJ0KCkge1xuICAgICAgICBsZXQgdGltZW91dCA9IGNvbmZpZy5hZG1pbl90aW1lb3V0IC8gMS41ICogMTAwMDtcbiAgICAgICAgdGhpcy50aW1lciA9IHNldEludGVydmFsKCgpID0+IHRoaXMuZmV0Y2goKSwgTWF0aC5taW4odGltZW91dCwgTUFYX1NBRkVfREVMQVkpKTtcbiAgICAgICAgdGhpcy5hY3RpdmUgPSB0cnVlO1xuICAgIH1cblxuICAgIHN0b3AoKSB7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lcik7XG4gICAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgZmV0Y2goKSB7XG4gICAgICAgIGxldCBkYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgIGRhdGEuYXBwZW5kKCdhZG1pbi1ub25jZScsIGNvbmZpZy5hZG1pbl9ub25jZSk7XG5cbiAgICAgICAgZmV0Y2goYCR7Y29uZmlnLmJhc2VfdXJsX3JlbGF0aXZlfS90YXNrJHtjb25maWcucGFyYW1fc2VwfWtlZXBBbGl2ZWAsIHtcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nLFxuICAgICAgICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICAgICAgICBib2R5OiBkYXRhXG4gICAgICAgIH0pLmNhdGNoKHVzZXJGZWVkYmFja0Vycm9yKTtcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IG5ldyBLZWVwQWxpdmUoKTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/utils/keepalive.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/utils/offline.js":
|
|
/*!******************************!*\
|
|
!*** ./app/utils/offline.js ***!
|
|
\******************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_offline__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/offline */ \"./app/utils/offline.js\");\n\n\nvar offlineElement = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#offline-status');\njquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('offline', function () {\n offlineElement.slideDown();\n});\njquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('online', function () {\n offlineElement.slideUp();\n});\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).ready(function () {\n if (!_utils_offline__WEBPACK_IMPORTED_MODULE_1__.default) {\n offlineElement.slideDown();\n }\n}); // assume online if can't check\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (typeof __webpack_require__.g.navigator.onLine !== 'undefined' ? __webpack_require__.g.navigator.onLine : true);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL29mZmxpbmUuanM/ODc0ZSJdLCJuYW1lcyI6WyJvZmZsaW5lRWxlbWVudCIsIiQiLCJ3aW5kb3ciLCJvbiIsInNsaWRlRG93biIsInNsaWRlVXAiLCJkb2N1bWVudCIsInJlYWR5IiwiaXNPbmxpbmUiLCJnbG9iYWwiLCJuYXZpZ2F0b3IiLCJvbkxpbmUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBO0FBRUEsSUFBTUEsY0FBYyxHQUFHQyw2Q0FBQyxDQUFDLGlCQUFELENBQXhCO0FBRUFBLDZDQUFDLENBQUNDLE1BQUQsQ0FBRCxDQUFVQyxFQUFWLENBQWEsU0FBYixFQUF3QixZQUFNO0FBQzFCSCxnQkFBYyxDQUFDSSxTQUFmO0FBQ0gsQ0FGRDtBQUlBSCw2Q0FBQyxDQUFDQyxNQUFELENBQUQsQ0FBVUMsRUFBVixDQUFhLFFBQWIsRUFBdUIsWUFBTTtBQUN6QkgsZ0JBQWMsQ0FBQ0ssT0FBZjtBQUNILENBRkQ7QUFJQUosNkNBQUMsQ0FBQ0ssUUFBRCxDQUFELENBQVlDLEtBQVosQ0FBa0IsWUFBTTtBQUNwQixNQUFJLENBQUNDLG1EQUFMLEVBQWU7QUFDWFIsa0JBQWMsQ0FBQ0ksU0FBZjtBQUNIO0FBQ0osQ0FKRCxFLENBTUE7O0FBQ0EsaUVBQWUsT0FBT0sscUJBQU0sQ0FBQ0MsU0FBUCxDQUFpQkMsTUFBeEIsS0FBbUMsV0FBbkMsR0FBaURGLHFCQUFNLENBQUNDLFNBQVAsQ0FBaUJDLE1BQWxFLEdBQTJFLElBQTFGIiwiZmlsZSI6Ii4vYXBwL3V0aWxzL29mZmxpbmUuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IGlzT25saW5lIGZyb20gJy4uL3V0aWxzL29mZmxpbmUnO1xuXG5jb25zdCBvZmZsaW5lRWxlbWVudCA9ICQoJyNvZmZsaW5lLXN0YXR1cycpO1xuXG4kKHdpbmRvdykub24oJ29mZmxpbmUnLCAoKSA9PiB7XG4gICAgb2ZmbGluZUVsZW1lbnQuc2xpZGVEb3duKCk7XG59KTtcblxuJCh3aW5kb3cpLm9uKCdvbmxpbmUnLCAoKSA9PiB7XG4gICAgb2ZmbGluZUVsZW1lbnQuc2xpZGVVcCgpO1xufSk7XG5cbiQoZG9jdW1lbnQpLnJlYWR5KCgpID0+IHtcbiAgICBpZiAoIWlzT25saW5lKSB7XG4gICAgICAgIG9mZmxpbmVFbGVtZW50LnNsaWRlRG93bigpO1xuICAgIH1cbn0pO1xuXG4vLyBhc3N1bWUgb25saW5lIGlmIGNhbid0IGNoZWNrXG5leHBvcnQgZGVmYXVsdCB0eXBlb2YgZ2xvYmFsLm5hdmlnYXRvci5vbkxpbmUgIT09ICd1bmRlZmluZWQnID8gZ2xvYmFsLm5hdmlnYXRvci5vbkxpbmUgOiB0cnVlO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/utils/offline.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/utils/packages.js":
|
|
/*!*******************************!*\
|
|
!*** ./app/utils/packages.js ***!
|
|
\*******************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/request */ \"./app/utils/request.js\");\n/* harmony import */ var _utils_gpm__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/gpm */ \"./app/utils/gpm.js\");\n/* harmony import */ var es6_promise__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! es6-promise */ \"./node_modules/es6-promise/dist/es6-promise.js\");\n/* harmony import */ var es6_promise__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(es6_promise__WEBPACK_IMPORTED_MODULE_4__);\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); return Constructor; }\n\n\n\n\n\n\n\nvar Sorter = /*#__PURE__*/function () {\n function Sorter() {\n _classCallCheck(this, Sorter);\n }\n\n _createClass(Sorter, [{\n key: \"getElements\",\n value: function getElements(elements, container) {\n this.elements = elements || jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-gpm-plugin], [data-gpm-theme]');\n this.container = container || jquery__WEBPACK_IMPORTED_MODULE_0___default()('.gpm-plugins > table > tbody, .gpm-themes > .themes.card-row');\n return this.elements;\n }\n }, {\n key: \"byCommon\",\n value: function byCommon() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var elements = this.getElements().sort(function (a, b) {\n var A = jquery__WEBPACK_IMPORTED_MODULE_0___default()(a).data(data).toString().toLowerCase();\n var B = jquery__WEBPACK_IMPORTED_MODULE_0___default()(b).data(data).toString().toLowerCase();\n return Sorter.sort(A, B, direction);\n });\n return elements.appendTo(this.container);\n }\n }, {\n key: \"byName\",\n value: function byName() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-name';\n return this.byCommon(direction, data);\n }\n }, {\n key: \"byAuthor\",\n value: function byAuthor() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-author';\n return this.byCommon(direction, data);\n }\n }, {\n key: \"byOfficial\",\n value: function byOfficial() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-official';\n return this.byCommon(direction, data);\n }\n }, {\n key: \"byReleaseDate\",\n value: function byReleaseDate() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-release-date';\n var elements = this.getElements().sort(function (a, b) {\n var A = new Date(jquery__WEBPACK_IMPORTED_MODULE_0___default()(a).data(data)).getTime();\n var B = new Date(jquery__WEBPACK_IMPORTED_MODULE_0___default()(b).data(data)).getTime();\n return Sorter.sort(A, B, direction === 'asc' ? 'desc' : 'asc');\n });\n elements.appendTo(this.container);\n }\n }, {\n key: \"byUpdatable\",\n value: function byUpdatable() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-updatable';\n return this.byCommon(direction, data);\n }\n }, {\n key: \"byEnabled\",\n value: function byEnabled() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-enabled';\n return this.byCommon(direction, data);\n }\n }, {\n key: \"byTesting\",\n value: function byTesting() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'asc';\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'gpm-testing';\n return this.byCommon(direction, data);\n }\n }], [{\n key: \"sort\",\n value: function sort(A, B) {\n var direction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'asc';\n\n if (A > B) {\n return direction === 'asc' ? 1 : -1;\n }\n\n if (A < B) {\n return direction === 'asc' ? -1 : 1;\n }\n\n return 0;\n }\n }]);\n\n return Sorter;\n}();\n\nvar Packages = /*#__PURE__*/function () {\n function Packages() {\n _classCallCheck(this, Packages);\n\n this.Sort = new Sorter();\n }\n\n _createClass(Packages, [{\n key: \"addDependenciesToList\",\n value: function addDependenciesToList(dependencies) {\n var slug = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n dependencies.forEach(function (dependency) {\n Packages.addDependencyToList('plugin', dependency.name || dependency, slug);\n });\n }\n }, {\n key: \"removePackage\",\n value: function removePackage(type, slug) {\n var _this = this;\n\n var url = Packages.getRemovePackageUrl(type);\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__.default)(url, {\n method: 'post',\n body: {\n \"package\": slug\n }\n }, function (response) {\n if (response.status === 'success') {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.remove-package-confirm').addClass('hidden');\n\n if (response.dependencies && response.dependencies.length > 0) {\n _this.addDependenciesToList(response.dependencies);\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.remove-package-dependencies').removeClass('hidden');\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.remove-package-done').removeClass('hidden');\n } // The package was removed. When the modal closes, move to the packages list\n\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).on('closing', '[data-remodal-id=\"remove-package\"]', function () {\n Packages.getBackToList(type);\n });\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.remove-package-confirm').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.remove-package-error').removeClass('hidden');\n }\n });\n }\n }, {\n key: \"reinstallPackage\",\n value: function reinstallPackage(type, slug, package_name, current_version) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.button-bar button').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.button-bar .spinning-wheel').removeClass('hidden');\n var url = Packages.getReinstallPackageUrl(type);\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__.default)(url, {\n method: 'post',\n body: {\n slug: slug,\n type: type,\n package_name: package_name,\n current_version: current_version\n }\n }, function (response) {\n if (response.status === 'success') {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.reinstall-package-confirm').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.reinstall-package-done').removeClass('hidden');\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.reinstall-package-confirm').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.reinstall-package-error').removeClass('hidden');\n }\n\n window.location.reload();\n });\n }\n }, {\n key: \"removeDependency\",\n value: function removeDependency(type, slug, button) {\n var _this2 = this;\n\n var url = Packages.getRemovePackageUrl(type);\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__.default)(url, {\n method: 'post',\n body: {\n \"package\": slug\n }\n }, function (response) {\n if (response.status === 'success') {\n button.removeClass('button');\n button.replaceWith(jquery__WEBPACK_IMPORTED_MODULE_0___default()('<span>Removed successfully</span>'));\n\n if (response.dependencies && response.dependencies.length > 0) {\n _this2.addDependenciesToList(response.dependencies, slug);\n }\n }\n });\n }\n }, {\n key: \"getPackagesDependencies\",\n value: function getPackagesDependencies(type, slugs, finishedLoadingCallback) {\n var url = Packages.getGetPackagesDependenciesUrl(type);\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__.default)(url, {\n method: 'post',\n body: {\n packages: slugs\n }\n }, function (response) {\n finishedLoadingCallback();\n\n if (response.status === 'success') {\n if (response.dependencies) {\n var hasDependencies = false;\n\n for (var dependency in response.dependencies) {\n if (response.dependencies.hasOwnProperty(dependency)) {\n if (dependency === 'grav') {\n continue;\n }\n\n hasDependencies = true;\n var dependencyName = dependency;\n var action = response.dependencies[dependency];\n Packages.addNeededDependencyToList(action, dependencyName);\n }\n }\n\n if (hasDependencies) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .install-dependencies-package-container').removeClass('hidden');\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .install-package-container').removeClass('hidden');\n }\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .install-package-container').removeClass('hidden');\n }\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .install-package-error').removeClass('hidden');\n }\n });\n }\n }, {\n key: \"installDependenciesOfPackages\",\n value: function installDependenciesOfPackages(type, slugs, callbackSuccess, callbackError) {\n var url = Packages.getInstallDependenciesOfPackagesUrl(type);\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__.default)(url, {\n method: 'post',\n body: {\n packages: slugs\n }\n }, callbackSuccess);\n }\n }, {\n key: \"installPackages\",\n value: function installPackages(type, slugs, callbackSuccess) {\n var url = Packages.getInstallPackageUrl(type);\n es6_promise__WEBPACK_IMPORTED_MODULE_4__.Promise.all(slugs.map(function (slug) {\n return new es6_promise__WEBPACK_IMPORTED_MODULE_4__.Promise(function (resolve, reject) {\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_2__.default)(url, {\n method: 'post',\n body: {\n \"package\": slug,\n type: type\n }\n }, function (response) {\n resolve(response);\n });\n });\n })).then(callbackSuccess);\n }\n }, {\n key: \"handleGettingPackageDependencies\",\n value: function handleGettingPackageDependencies(type, event) {\n var action = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'update';\n var slugs = Packages.getSlugsFromEvent(event);\n\n if (!slugs) {\n alert('No slug set');\n return;\n } // Cleanup\n\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.packages-names-list').html('');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.install-dependencies-package-container li').remove();\n slugs.forEach(function (slug) {\n if (action === 'update') {\n var current_version = '';\n var available_version = '';\n var _name = '';\n var resources = _utils_gpm__WEBPACK_IMPORTED_MODULE_3__.Instance.payload.payload.resources;\n\n if (resources.plugins[slug]) {\n available_version = resources.plugins[slug].available;\n current_version = resources.plugins[slug].version;\n _name = resources.plugins[slug].name;\n } else if (resources.themes[slug]) {\n available_version = resources.themes[slug].available;\n current_version = resources.themes[slug].version;\n _name = resources.themes[slug].name;\n }\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.packages-names-list').append(\"<li>\".concat(_name ? _name : slug, \", \").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.FROM, \" v<strong>\").concat(current_version, \"</strong> \").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.TO, \" v<strong>\").concat(available_version, \"</strong></li>\"));\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.packages-names-list').append(\"<li>\".concat(name ? name : slug, \"</li>\"));\n }\n });\n event.preventDefault();\n event.stopPropagation(); // fix mismatching types when sharing install modal between plugins/themes\n\n var query = '[data-packages-modal] [data-theme-action], [data-packages-modal] [data-plugin-action]';\n var data = jquery__WEBPACK_IMPORTED_MODULE_0___default()(query).data('themeAction') || jquery__WEBPACK_IMPORTED_MODULE_0___default()(query).data('pluginAction');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(query).removeAttr('data-theme-action').removeAttr('data-plugin-action').attr(\"data-\".concat(type, \"-action\"), data); // Restore original state\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .loading').removeClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .install-dependencies-package-container').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .install-package-container').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .installing-dependencies').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .installing-package').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .installation-complete').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .install-package-error').addClass('hidden');\n this.getPackagesDependencies(type, slugs, function () {\n var slugs_string = slugs.join();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-packages-modal] [data-\".concat(type, \"-action=\\\"install-dependencies-and-package\\\"]\")).attr('data-packages-slugs', slugs_string);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-packages-modal] [data-\".concat(type, \"-action=\\\"install-package\\\"]\")).attr('data-packages-slugs', slugs_string);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .loading').addClass('hidden');\n });\n }\n }, {\n key: \"handleInstallingDependenciesAndPackage\",\n value: function handleInstallingDependenciesAndPackage(type, event) {\n var _this3 = this;\n\n var slugs = Packages.getSlugsFromEvent(event);\n event.preventDefault();\n event.stopPropagation();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .install-dependencies-package-container').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .install-package-container').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .installing-dependencies').removeClass('hidden');\n this.installDependenciesOfPackages(type, slugs, function (response) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .installing-dependencies').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .installing-package').removeClass('hidden');\n\n _this3.installPackages(type, slugs, function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .installing-package').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .installation-complete').removeClass('hidden');\n\n if (response.status === 'error') {\n var remodal = (jquery__WEBPACK_IMPORTED_MODULE_0___default().remodal.lookup)[jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal]').data('remodal')];\n remodal.close();\n return;\n }\n\n setTimeout(function () {\n if (slugs.length === 1) {\n __webpack_require__.g.location.href = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/\").concat(type, \"s/\").concat(slugs[0]);\n } else {\n __webpack_require__.g.location.href = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/\").concat(type, \"s\");\n }\n }, 1000);\n });\n });\n }\n }, {\n key: \"handleInstallingPackage\",\n value: function handleInstallingPackage(type, event) {\n var slugs = Packages.getSlugsFromEvent(event);\n event.preventDefault();\n event.stopPropagation();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .install-package-container').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .installing-package').removeClass('hidden');\n this.installPackages(type, slugs, function (response) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .installing-package').addClass('hidden');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal] .installation-complete').removeClass('hidden');\n var errors = Array.from(response).filter(function (r) {\n return r.status === 'error';\n });\n\n if (errors && errors.length) {\n var remodal = (jquery__WEBPACK_IMPORTED_MODULE_0___default().remodal.lookup)[jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-packages-modal].remodal-is-opened').data('remodal')];\n remodal.close();\n return;\n }\n\n if (slugs.length === 1) {\n __webpack_require__.g.location.href = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/\").concat(type, \"s/\").concat(slugs[0]);\n } else {\n __webpack_require__.g.location.href = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/\").concat(type, \"s\");\n }\n });\n }\n }, {\n key: \"handleRemovingPackage\",\n value: function handleRemovingPackage(type, event) {\n var slug = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).attr('data-packages-slugs');\n event.preventDefault();\n event.stopPropagation();\n this.removePackage(type, slug);\n }\n }, {\n key: \"handleReinstallPackage\",\n value: function handleReinstallPackage(type, event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target);\n var slug = target.attr('data-package-slug');\n var package_name = target.attr('data-package-name');\n var current_version = target.attr('data-package-current-version');\n event.preventDefault();\n event.stopPropagation();\n this.reinstallPackage(type, slug, package_name, current_version);\n }\n }, {\n key: \"handleRemovingDependency\",\n value: function handleRemovingDependency(type, event) {\n var slug = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).attr('data-dependency-slug');\n var button = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target);\n event.preventDefault();\n event.stopPropagation();\n this.removeDependency(type, slug, button);\n }\n }], [{\n key: \"getBackToList\",\n value: function getBackToList(type) {\n __webpack_require__.g.location.href = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative, \"/\").concat(type, \"s\");\n }\n }, {\n key: \"addDependencyToList\",\n value: function addDependencyToList(type, dependency) {\n var slug = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n\n if (['admin', 'form', 'login', 'email', 'grav'].indexOf(dependency) !== -1) {\n return;\n }\n\n var container = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.package-dependencies-container');\n var text = \"\".concat(dependency, \" <a href=\\\"#\\\" class=\\\"button\\\" data-dependency-slug=\\\"\").concat(dependency, \"\\\" data-\").concat(type, \"-action=\\\"remove-dependency-package\\\">Remove</a>\");\n\n if (slug) {\n text += \" (was needed by \".concat(slug, \")\");\n }\n\n container.append(\"<li>\".concat(text, \"</li>\"));\n }\n }, {\n key: \"getTaskUrl\",\n value: function getTaskUrl(type, task) {\n var url = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.base_url_relative);\n url += \"/\".concat(type, \"s.json\");\n url += \"/task\".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.config.param_sep).concat(task);\n return url;\n }\n }, {\n key: \"getRemovePackageUrl\",\n value: function getRemovePackageUrl(type) {\n return \"\".concat(Packages.getTaskUrl(type, 'removePackage'));\n }\n }, {\n key: \"getReinstallPackageUrl\",\n value: function getReinstallPackageUrl(type) {\n return \"\".concat(Packages.getTaskUrl(type, 'reinstallPackage'));\n }\n }, {\n key: \"getGetPackagesDependenciesUrl\",\n value: function getGetPackagesDependenciesUrl(type) {\n return \"\".concat(Packages.getTaskUrl(type, 'getPackagesDependencies'));\n }\n }, {\n key: \"getInstallDependenciesOfPackagesUrl\",\n value: function getInstallDependenciesOfPackagesUrl(type) {\n return \"\".concat(Packages.getTaskUrl(type, 'installDependenciesOfPackages'));\n }\n }, {\n key: \"getInstallPackageUrl\",\n value: function getInstallPackageUrl(type) {\n return \"\".concat(Packages.getTaskUrl(type, 'installPackage'));\n }\n }, {\n key: \"addNeededDependencyToList\",\n value: function addNeededDependencyToList(action, slug) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.install-dependencies-package-container .type-' + action).removeClass('hidden');\n var list = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.install-dependencies-package-container .type-' + action + ' ul');\n\n if (action !== 'install') {\n var current_version = '';\n var available_version = '';\n var _name2 = '';\n var resources = _utils_gpm__WEBPACK_IMPORTED_MODULE_3__.Instance.payload.payload.resources;\n\n if (resources.plugins[slug]) {\n available_version = resources.plugins[slug].available;\n current_version = resources.plugins[slug].version;\n _name2 = resources.plugins[slug].name;\n } else if (resources.themes[slug]) {\n available_version = resources.themes[slug].available;\n current_version = resources.themes[slug].version;\n _name2 = resources.themes[slug].name;\n }\n\n list.append(\"<li>\".concat(_name2 ? _name2 : slug, \", \").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.FROM, \" v<strong>\").concat(current_version, \"</strong> \").concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.TO, \" v<strong>\").concat(available_version, \"</strong></li>\"));\n } else {\n list.append(\"<li>\".concat(name ? name : slug, \"</li>\"));\n }\n }\n }, {\n key: \"getSlugsFromEvent\",\n value: function getSlugsFromEvent(event) {\n var slugs = '';\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).is('[data-packages-slugs]')) {\n slugs = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).attr('data-packages-slugs');\n } else {\n slugs = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).parent('[data-packages-slugs]').attr('data-packages-slugs');\n }\n\n if (typeof slugs === 'undefined') {\n return null;\n }\n\n slugs = slugs.split(',');\n return typeof slugs === 'string' ? [slugs] : slugs;\n }\n }]);\n\n return Packages;\n}();\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (new Packages());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL3BhY2thZ2VzLmpzP2VhZWEiXSwibmFtZXMiOlsiU29ydGVyIiwiZWxlbWVudHMiLCJjb250YWluZXIiLCIkIiwiZGlyZWN0aW9uIiwiZGF0YSIsImdldEVsZW1lbnRzIiwic29ydCIsImEiLCJiIiwiQSIsInRvU3RyaW5nIiwidG9Mb3dlckNhc2UiLCJCIiwiYXBwZW5kVG8iLCJieUNvbW1vbiIsIkRhdGUiLCJnZXRUaW1lIiwiUGFja2FnZXMiLCJTb3J0IiwiZGVwZW5kZW5jaWVzIiwic2x1ZyIsImZvckVhY2giLCJkZXBlbmRlbmN5IiwiYWRkRGVwZW5kZW5jeVRvTGlzdCIsIm5hbWUiLCJ0eXBlIiwidXJsIiwiZ2V0UmVtb3ZlUGFja2FnZVVybCIsInJlcXVlc3QiLCJtZXRob2QiLCJib2R5IiwicmVzcG9uc2UiLCJzdGF0dXMiLCJhZGRDbGFzcyIsImxlbmd0aCIsImFkZERlcGVuZGVuY2llc1RvTGlzdCIsInJlbW92ZUNsYXNzIiwiZG9jdW1lbnQiLCJvbiIsImdldEJhY2tUb0xpc3QiLCJwYWNrYWdlX25hbWUiLCJjdXJyZW50X3ZlcnNpb24iLCJnZXRSZWluc3RhbGxQYWNrYWdlVXJsIiwid2luZG93IiwibG9jYXRpb24iLCJyZWxvYWQiLCJidXR0b24iLCJyZXBsYWNlV2l0aCIsInNsdWdzIiwiZmluaXNoZWRMb2FkaW5nQ2FsbGJhY2siLCJnZXRHZXRQYWNrYWdlc0RlcGVuZGVuY2llc1VybCIsInBhY2thZ2VzIiwiaGFzRGVwZW5kZW5jaWVzIiwiaGFzT3duUHJvcGVydHkiLCJkZXBlbmRlbmN5TmFtZSIsImFjdGlvbiIsImFkZE5lZWRlZERlcGVuZGVuY3lUb0xpc3QiLCJjYWxsYmFja1N1Y2Nlc3MiLCJjYWxsYmFja0Vycm9yIiwiZ2V0SW5zdGFsbERlcGVuZGVuY2llc09mUGFja2FnZXNVcmwiLCJnZXRJbnN0YWxsUGFja2FnZVVybCIsIlByb21pc2UiLCJtYXAiLCJyZXNvbHZlIiwicmVqZWN0IiwidGhlbiIsImV2ZW50IiwiZ2V0U2x1Z3NGcm9tRXZlbnQiLCJhbGVydCIsImh0bWwiLCJyZW1vdmUiLCJhdmFpbGFibGVfdmVyc2lvbiIsInJlc291cmNlcyIsImdwbSIsInBsdWdpbnMiLCJhdmFpbGFibGUiLCJ2ZXJzaW9uIiwidGhlbWVzIiwiYXBwZW5kIiwidHJhbnNsYXRpb25zIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJxdWVyeSIsInJlbW92ZUF0dHIiLCJhdHRyIiwiZ2V0UGFja2FnZXNEZXBlbmRlbmNpZXMiLCJzbHVnc19zdHJpbmciLCJqb2luIiwiaW5zdGFsbERlcGVuZGVuY2llc09mUGFja2FnZXMiLCJpbnN0YWxsUGFja2FnZXMiLCJyZW1vZGFsIiwiY2xvc2UiLCJzZXRUaW1lb3V0IiwiZ2xvYmFsIiwiaHJlZiIsImNvbmZpZyIsImVycm9ycyIsIkFycmF5IiwiZnJvbSIsImZpbHRlciIsInIiLCJ0YXJnZXQiLCJyZW1vdmVQYWNrYWdlIiwicmVpbnN0YWxsUGFja2FnZSIsInJlbW92ZURlcGVuZGVuY3kiLCJpbmRleE9mIiwidGV4dCIsInRhc2siLCJnZXRUYXNrVXJsIiwibGlzdCIsImlzIiwicGFyZW50Iiwic3BsaXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0lBRU1BLE07Ozs7Ozs7V0FDRixxQkFBWUMsUUFBWixFQUFzQkMsU0FBdEIsRUFBaUM7QUFDN0IsV0FBS0QsUUFBTCxHQUFnQkEsUUFBUSxJQUFJRSw2Q0FBQyxDQUFDLHFDQUFELENBQTdCO0FBQ0EsV0FBS0QsU0FBTCxHQUFpQkEsU0FBUyxJQUFJQyw2Q0FBQyxDQUFDLDhEQUFELENBQS9CO0FBQ0EsYUFBTyxLQUFLRixRQUFaO0FBQ0g7OztXQVNELG9CQUF1QztBQUFBLFVBQTlCRyxTQUE4Qix1RUFBbEIsS0FBa0I7QUFBQSxVQUFYQyxJQUFXLHVFQUFKLEVBQUk7QUFDbkMsVUFBSUosUUFBUSxHQUFHLEtBQUtLLFdB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bnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCB7IGNvbmZpZywgdHJhbnNsYXRpb25zIH0gZnJvbSAnZ3Jhdi1jb25maWcnO1xuaW1wb3J0IHJlcXVlc3QgZnJvbSAnLi4vdXRpbHMvcmVxdWVzdCc7XG5pbXBvcnQgeyBJbnN0YW5jZSBhcyBncG0gfSBmcm9tICcuLi91dGlscy9ncG0nO1xuaW1wb3J0IHsgUHJvbWlzZSB9IGZyb20gJ2VzNi1wcm9taXNlJztcblxuY2xhc3MgU29ydGVyIHtcbiAgICBnZXRFbGVtZW50cyhlbGVtZW50cywgY29udGFpbmVyKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudHMgPSBlbGVtZW50cyB8fCAkKCdbZGF0YS1ncG0tcGx1Z2luXSwgW2RhdGEtZ3BtLXRoZW1lXScpO1xuICAgICAgICB0aGlzLmNvbnRhaW5lciA9IGNvbnRhaW5lciB8fCAkKCcuZ3BtLXBsdWdpbnMgPiB0YWJsZSA+IHRib2R5LCAuZ3BtLXRoZW1lcyA+IC50aGVtZXMuY2FyZC1yb3cnKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudHM7XG4gICAgfVxuXG4gICAgc3RhdGljIHNvcnQoQSwgQiwgZGlyZWN0aW9uID0gJ2FzYycpIHtcbiAgICAgICAgaWYgKEEgPiBCKSB7IHJldHVybiAoZGlyZWN0aW9uID09PSAnYXNjJykgPyAxIDogLTE7IH1cbiAgICAgICAgaWYgKEEgPCBCKSB7IHJldHVybiAoZGlyZWN0aW9uID09PSAnYXNjJykgPyAtMSA6IDE7IH1cblxuICAgICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBieUNvbW1vbihkaXJlY3Rpb24gPSAnYXNjJywgZGF0YSA9ICcnKSB7XG4gICAgICAgIGxldCBlbGVtZW50cyA9IHRoaXMuZ2V0RWxlbWVudHMoKS5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgICAgICBsZXQgQSA9ICQoYSkuZGF0YShkYXRhKS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICBsZXQgQiA9ICQoYikuZGF0YShkYXRhKS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgICAgICAgIHJldHVybiBTb3J0ZXIuc29ydChBLCBCLCBkaXJlY3Rpb24pO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gZWxlbWVudHMuYXBwZW5kVG8odGhpcy5jb250YWluZXIpO1xuICAgIH1cblxuICAgIGJ5TmFtZShkaXJlY3Rpb24gPSAnYXNjJywgZGF0YSA9ICdncG0tbmFtZScpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnlDb21tb24oZGlyZWN0aW9uLCBkYXRhKTtcbiAgICB9XG5cbiAgICBieUF1dGhvcihkaXJlY3Rpb24gPSAnYXNjJywgZGF0YSA9ICdncG0tYXV0aG9yJykge1xuICAgICAgICByZXR1cm4gdGhpcy5ieUNvbW1vbihkaXJlY3Rpb24sIGRhdGEpO1xuICAgIH1cblxuICAgIGJ5T2ZmaWNpYWwoZGlyZWN0aW9uID0gJ2FzYycsIGRhdGEgPSAnZ3BtLW9mZmljaWFsJykge1xuICAgICAgICByZXR1cm4gdGhpcy5ieUNvbW1vbihkaXJlY3Rpb24sIGRhdGEpO1xuICAgIH1cblxuICAgIGJ5UmVsZWFzZURhdGUoZGlyZWN0aW9uID0gJ2FzYycsIGRhdGEgPSAnZ3BtLXJlbGVhc2UtZGF0ZScpIHtcbiAgICAgICAgbGV0IGVsZW1lbnRzID0gdGhpcy5nZXRFbGVtZW50cygpLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgICAgIGxldCBBID0gbmV3IERhdGUoJChhKS5kYXRhKGRhdGEpKS5nZXRUaW1lKCk7XG4gICAgICAgICAgICBsZXQgQiA9IG5ldyBEYXRlKCQoYikuZGF0YShkYXRhKSkuZ2V0VGltZSgpO1xuXG4gICAgICAgICAgICByZXR1cm4gU29ydGVyLnNvcnQoQSwgQiwgZGlyZWN0aW9uID09PSAnYXNjJyA/ICdkZXNjJyA6ICdhc2MnKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZWxlbWVudHMuYXBwZW5kVG8odGhpcy5jb250YWluZXIpO1xuICAgIH1cblxuICAgIGJ5VXBkYXRhYmxlKGRpcmVjdGlvbiA9ICdhc2MnLCBkYXRhID0gJ2dwbS11cGRhdGFibGUnKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmJ5Q29tbW9uKGRpcmVjdGlvbiwgZGF0YSk7XG4gICAgfVxuXG4gICAgYnlFbmFibGVkKGRpcmVjdGlvbiA9ICdhc2MnLCBkYXRhID0gJ2dwbS1lbmFibGVkJykge1xuICAgICAgICByZXR1cm4gdGhpcy5ieUNvbW1vbihkaXJlY3Rpb24sIGRhdGEpO1xuICAgIH1cblxuICAgIGJ5VGVzdGluZyhkaXJlY3Rpb24gPSAnYXNjJywgZGF0YSA9ICdncG0tdGVzdGluZycpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnlDb21tb24oZGlyZWN0aW9uLCBkYXRhKTtcbiAgICB9XG59XG5cbmNsYXNzIFBhY2thZ2VzIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5Tb3J0ID0gbmV3IFNvcnRlcigpO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXRCYWNrVG9MaXN0KHR5cGUpIHtcbiAgICAgICAgZ2xvYmFsLmxvY2F0aW9uLmhyZWYgPSBgJHtjb25maWcuYmFzZV91cmxfcmVsYXRpdmV9LyR7dHlwZX1zYDtcbiAgICB9XG5cbiAgICBzdGF0aWMgYWRkRGVwZW5kZW5jeVRvTGlzdCh0eXBlLCBkZXBlbmRlbmN5LCBzbHVnID0gJycpIHtcbiAgICAgICAgaWYgKFsnYWRtaW4nLCAnZm9ybScsICdsb2dpbicsICdlbWFpbCcsICdncmF2J10uaW5kZXhPZihkZXBlbmRlbmN5KSAhPT0gLTEpIHsgcmV0dXJuOyB9XG4gICAgICAgIGxldCBjb250YWluZXIgPSAkKCcucGFja2FnZS1kZXBlbmRlbmNpZXMtY29udGFpbmVyJyk7XG4gICAgICAgIGxldCB0ZXh0ID0gYCR7ZGVwZW5kZW5jeX0gPGEgaHJlZj1cIiNcIiBjbGFzcz1cImJ1dHRvblwiIGRhdGEtZGVwZW5kZW5jeS1zbHVnPVwiJHtkZXBlbmRlbmN5fVwiIGRhdGEtJHt0eXBlfS1hY3Rpb249XCJyZW1vdmUtZGVwZW5kZW5jeS1wYWNrYWdlXCI+UmVtb3ZlPC9hPmA7XG5cbiAgICAgICAgaWYgKHNsdWcpIHtcbiAgICAgICAgICAgIHRleHQgKz0gYCAod2FzIG5lZWRlZCBieSAke3NsdWd9KWA7XG4gICAgICAgIH1cblxuICAgICAgICBjb250YWluZXIuYXBwZW5kKGA8bGk+JHt0ZXh0fTwvbGk+YCk7XG4gICAgfVxuXG4gICAgYWRkRGVwZW5kZW5jaWVzVG9MaXN0KGRlcGVuZGVuY2llcywgc2x1ZyA9ICcnKSB7XG4gICAgICAgIGRlcGVuZGVuY2llcy5mb3JFYWNoKChkZXBlbmRlbmN5KSA9PiB7XG4gICAgICAgICAgICBQYWNrYWdlcy5hZGREZXBlbmRlbmN5VG9MaXN0KCdwbHVnaW4nLCBkZXBlbmRlbmN5Lm5hbWUgfHwgZGVwZW5kZW5jeSwgc2x1Zyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXRUYXNrVXJsKHR5cGUsIHRhc2spIHtcbiAgICAgICAgbGV0IHVybCA9IGAke2NvbmZpZy5iYXNlX3VybF9yZWxhdGl2ZX1gO1xuICAgICAgICB1cmwgKz0gYC8ke3R5cGV9cy5qc29uYDtcbiAgICAgICAgdXJsICs9IGAvdGFzayR7Y29uZmlnLnBhcmFtX3NlcH0ke3Rhc2t9YDtcbiAgICAgICAgcmV0dXJuIHVybDtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0UmVtb3ZlUGFja2FnZVVybCh0eXBlKSB7XG4gICAgICAgIHJldHVybiBgJHtQYWNrYWdlcy5nZXRUYXNrVXJsKHR5cGUsICdyZW1vdmVQYWNrYWdlJyl9YDtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0UmVpbnN0YWxsUGFja2FnZVVybCh0eXBlKSB7XG4gICAgICAgIHJldHVybiBgJHtQYWNrYWdlcy5nZXRUYXNrVXJsKHR5cGUsICdyZWluc3RhbGxQYWNrYWdlJyl9YDtcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0R2V0UGFja2FnZXNEZXBlbmRlbmNpZXNVcmwodHlwZSkge1xuICAgICAgICByZXR1cm4gYCR7UGFja2FnZXMuZ2V0VGFza1VybCh0eXBlLCAnZ2V0UGFja2FnZXNEZXBlbmRlbmNpZXMnKX1gO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXRJbnN0YWxsRGVwZW5kZW5jaWVzT2ZQYWNrYWdlc1VybCh0eXBlKSB7XG4gICAgICAgIHJldHVybiBgJHtQYWNrYWdlcy5nZXRUYXNrVXJsKHR5cGUsICdpbnN0YWxsRGVwZW5kZW5jaWVzT2ZQYWNrYWdlcycpfWA7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldEluc3RhbGxQYWNrYWdlVXJsKHR5cGUpIHtcbiAgICAgICAgcmV0dXJuIGAke1BhY2thZ2VzLmdldFRhc2tVcmwodHlwZSwgJ2luc3RhbGxQYWNrYWdlJyl9YDtcbiAgICB9XG5cbiAgICByZW1vdmVQYWNrYWdlKHR5cGUsIHNsdWcpIHtcbiAgICAgICAgbGV0IHVybCA9IFBhY2thZ2VzLmdldFJlbW92ZVBhY2thZ2VVcmwodHlwZSk7XG5cbiAgICAgICAgcmVxdWVzdCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgIHBhY2thZ2U6IHNsdWdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAnc3VjY2VzcycpIHtcbiAgICAgICAgICAgICAgICAkKCcucmVtb3ZlLXBhY2thZ2UtY29uZmlybScpLmFkZENsYXNzKCdoaWRkZW4nKTtcblxuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5kZXBlbmRlbmNpZXMgJiYgcmVzcG9uc2UuZGVwZW5kZW5jaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGREZXBlbmRlbmNpZXNUb0xpc3QocmVzcG9uc2UuZGVwZW5kZW5jaWVzKTtcbiAgICAgICAgICAgICAgICAgICAgJCgnLnJlbW92ZS1wYWNrYWdlLWRlcGVuZGVuY2llcycpLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAkKCcucmVtb3ZlLXBhY2thZ2UtZG9uZScpLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBUaGUgcGFja2FnZSB3YXMgcmVtb3ZlZC4gV2hlbiB0aGUgbW9kYWwgY2xvc2VzLCBtb3ZlIHRvIHRoZSBwYWNrYWdlcyBsaXN0XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oJ2Nsb3NpbmcnLCAnW2RhdGEtcmVtb2RhbC1pZD1cInJlbW92ZS1wYWNrYWdlXCJdJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBQYWNrYWdlcy5nZXRCYWNrVG9MaXN0KHR5cGUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAkKCcucmVtb3ZlLXBhY2thZ2UtY29uZmlybScpLmFkZENsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgICAgICAgICAkKCcucmVtb3ZlLXBhY2thZ2UtZXJyb3InKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJlaW5zdGFsbFBhY2thZ2UodHlwZSwgc2x1ZywgcGFja2FnZV9uYW1lLCBjdXJyZW50X3ZlcnNpb24pIHtcbiAgICAgICAgJCgnLmJ1dHRvbi1iYXIgYnV0dG9uJykuYWRkQ2xhc3MoJ2hpZGRlbicpO1xuICAgICAgICAkKCcuYnV0dG9uLWJhciAuc3Bpbm5pbmctd2hlZWwnKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG5cbiAgICAgICAgbGV0IHVybCA9IFBhY2thZ2VzLmdldFJlaW5zdGFsbFBhY2thZ2VVcmwodHlwZSk7XG5cbiAgICAgICAgcmVxdWVzdCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgIHNsdWc6IHNsdWcsXG4gICAgICAgICAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgICAgICAgICBwYWNrYWdlX25hbWU6IHBhY2thZ2VfbmFtZSxcbiAgICAgICAgICAgICAgICBjdXJyZW50X3ZlcnNpb246IGN1cnJlbnRfdmVyc2lvblxuICAgICAgICAgICAgfVxuICAgICAgICB9LCAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09ICdzdWNjZXNzJykge1xuICAgICAgICAgICAgICAgICQoJy5yZWluc3RhbGwtcGFja2FnZS1jb25maXJtJykuYWRkQ2xhc3MoJ2hpZGRlbicpO1xuICAgICAgICAgICAgICAgICQoJy5yZWluc3RhbGwtcGFja2FnZS1kb25lJykucmVtb3ZlQ2xhc3MoJ2hpZGRlbicpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAkKCcucmVpbnN0YWxsLXBhY2thZ2UtY29uZmlybScpLmFkZENsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgICAgICAgICAkKCcucmVpbnN0YWxsLXBhY2thZ2UtZXJyb3InKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlRGVwZW5kZW5jeSh0eXBlLCBzbHVnLCBidXR0b24pIHtcbiAgICAgICAgbGV0IHVybCA9IFBhY2thZ2VzLmdldFJlbW92ZVBhY2thZ2VVcmwodHlwZSk7XG5cbiAgICAgICAgcmVxdWVzdCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgIHBhY2thZ2U6IHNsdWdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAnc3VjY2VzcycpIHtcbiAgICAgICAgICAgICAgICBidXR0b24ucmVtb3ZlQ2xhc3MoJ2J1dHRvbicpO1xuICAgICAgICAgICAgICAgIGJ1dHRvbi5yZXBsYWNlV2l0aCgkKCc8c3Bhbj5SZW1vdmVkIHN1Y2Nlc3NmdWxseTwvc3Bhbj4nKSk7XG5cbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuZGVwZW5kZW5jaWVzICYmIHJlc3BvbnNlLmRlcGVuZGVuY2llcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkRGVwZW5kZW5jaWVzVG9MaXN0KHJlc3BvbnNlLmRlcGVuZGVuY2llcywgc2x1Zyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzdGF0aWMgYWRkTmVlZGVkRGVwZW5kZW5jeVRvTGlzdChhY3Rpb24sIHNsdWcpIHtcbiAgICAgICAgJCgnLmluc3RhbGwtZGVwZW5kZW5jaWVzLXBhY2thZ2UtY29udGFpbmVyIC50eXBlLScgKyBhY3Rpb24pLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgbGV0IGxpc3QgPSAkKCcuaW5zdGFsbC1kZXBlbmRlbmNpZXMtcGFja2FnZS1jb250YWluZXIgLnR5cGUtJyArIGFjdGlvbiArICcgdWwnKTtcblxuICAgICAgICBpZiAoYWN0aW9uICE9PSAnaW5zdGFsbCcpIHtcbiAgICAgICAgICAgIGxldCBjdXJyZW50X3ZlcnNpb24gPSAnJztcbiAgICAgICAgICAgIGxldCBhdmFpbGFibGVfdmVyc2lvbiA9ICcnO1xuICAgICAgICAgICAgbGV0IG5hbWUgPSAnJztcblxuICAgICAgICAgICAgbGV0IHJlc291cmNlcyA9IGdwbS5wYXlsb2FkLnBheWxvYWQucmVzb3VyY2VzO1xuXG4gICAgICAgICAgICBpZiAocmVzb3VyY2VzLnBsdWdpbnNbc2x1Z10pIHtcbiAgICAgICAgICAgICAgICBhdmFpbGFibGVfdmVyc2lvbiA9IHJlc291cmNlcy5wbHVnaW5zW3NsdWddLmF2YWlsYWJsZTtcbiAgICAgICAgICAgICAgICBjdXJyZW50X3ZlcnNpb24gPSByZXNvdXJjZXMucGx1Z2luc1tzbHVnXS52ZXJzaW9uO1xuICAgICAgICAgICAgICAgIG5hbWUgPSByZXNvdXJjZXMucGx1Z2luc1tzbHVnXS5uYW1lO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChyZXNvdXJjZXMudGhlbWVzW3NsdWddKSB7XG4gICAgICAgICAgICAgICAgYXZhaWxhYmxlX3ZlcnNpb24gPSByZXNvdXJjZXMudGhlbWVzW3NsdWddLmF2YWlsYWJsZTtcbiAgICAgICAgICAgICAgICBjdXJyZW50X3ZlcnNpb24gPSByZXNvdXJjZXMudGhlbWVzW3NsdWddLnZlcnNpb247XG4gICAgICAgICAgICAgICAgbmFtZSA9IHJlc291cmNlcy50aGVtZXNbc2x1Z10ubmFtZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGlzdC5hcHBlbmQoYDxsaT4ke25hbWUgPyBuYW1lIDogc2x1Z30sICR7dHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5GUk9NfSB2PHN0cm9uZz4ke2N1cnJlbnRfdmVyc2lvbn08L3N0cm9uZz4gJHt0cmFuc2xhdGlvbnMuUExVR0lOX0FETUlOLlRPfSB2PHN0cm9uZz4ke2F2YWlsYWJsZV92ZXJzaW9ufTwvc3Ryb25nPjwvbGk+YCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsaXN0LmFwcGVuZChgPGxpPiR7bmFtZSA/IG5hbWUgOiBzbHVnfTwvbGk+YCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRQYWNrYWdlc0RlcGVuZGVuY2llcyh0eXBlLCBzbHVncywgZmluaXNoZWRMb2FkaW5nQ2FsbGJhY2spIHtcbiAgICAgICAgbGV0IHVybCA9IFBhY2thZ2VzLmdldEdldFBhY2thZ2VzRGVwZW5kZW5jaWVzVXJsKHR5cGUpO1xuXG4gICAgICAgIHJlcXVlc3QodXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgICAgICBwYWNrYWdlczogc2x1Z3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgKHJlc3BvbnNlKSA9PiB7XG5cbiAgICAgICAgICAgIGZpbmlzaGVkTG9hZGluZ0NhbGxiYWNrKCk7XG5cbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09ICdzdWNjZXNzJykge1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5kZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGhhc0RlcGVuZGVuY2llcyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBkZXBlbmRlbmN5IGluIHJlc3BvbnNlLmRlcGVuZGVuY2llcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmRlcGVuZGVuY2llcy5oYXNPd25Qcm9wZXJ0eShkZXBlbmRlbmN5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkZXBlbmRlbmN5ID09PSAnZ3JhdicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0RlcGVuZGVuY2llcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW5jeTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYWN0aW9uID0gcmVzcG9uc2UuZGVwZW5kZW5jaWVzW2RlcGVuZGVuY3ldO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFja2FnZXMuYWRkTmVlZGVkRGVwZW5kZW5jeVRvTGlzdChhY3Rpb24sIGRlcGVuZGVuY3lOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChoYXNEZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICQoJ1tkYXRhLXBhY2thZ2VzLW1vZGFsXSAuaW5zdGFsbC1kZXBlbmRlbmNpZXMtcGFja2FnZS1jb250YWluZXInKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkKCdbZGF0YS1wYWNrYWdlcy1tb2RhbF0gLmluc3RhbGwtcGFja2FnZS1jb250YWluZXInKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAkKCdbZGF0YS1wYWNrYWdlcy1tb2RhbF0gLmluc3RhbGwtcGFja2FnZS1jb250YWluZXInKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAkKCdbZGF0YS1wYWNrYWdlcy1tb2RhbF0gLmluc3RhbGwtcGFja2FnZS1lcnJvcicpLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaW5zdGFsbERlcGVuZGVuY2llc09mUGFja2FnZXModHlwZSwgc2x1Z3MsIGNhbGxiYWNrU3VjY2VzcywgY2FsbGJhY2tFcnJvcikge1xuICAgICAgICBsZXQgdXJsID0gUGFja2FnZXMuZ2V0SW5zdGFsbERlcGVuZGVuY2llc09mUGFja2FnZXNVcmwodHlwZSk7XG5cbiAgICAgICAgcmVxdWVzdCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgIHBhY2thZ2VzOiBzbHVnc1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCBjYWxsYmFja1N1Y2Nlc3MpO1xuICAgIH1cblxuICAgIGluc3RhbGxQYWNrYWdlcyh0eXBlLCBzbHVncywgY2FsbGJhY2tTdWNjZXNzKSB7XG4gICAgICAgIGxldCB1cmwgPSBQYWNrYWdlcy5nZXRJbnN0YWxsUGFja2FnZVVybCh0eXBlKTtcblxuICAgICAgICBQcm9taXNlLmFsbChzbHVncy5tYXAoKHNsdWcpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdCh1cmwsIHtcbiAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICAgICAgICAgICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhY2thZ2U6IHNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiB0eXBlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSkpLnRoZW4oY2FsbGJhY2tTdWNjZXNzKTtcblxuICAgIH1cblxuICAgIHN0YXRpYyBnZXRTbHVnc0Zyb21FdmVudChldmVudCkge1xuICAgICAgICBsZXQgc2x1Z3MgPSAnJztcbiAgICAgICAgaWYgKCQoZXZlbnQudGFyZ2V0KS5pcygnW2RhdGEtcGFja2FnZXMtc2x1Z3NdJykpIHtcbiAgICAgICAgICAgIHNsdWdzID0gJChldmVudC50YXJnZXQpLmF0dHIoJ2RhdGEtcGFja2FnZXMtc2x1Z3MnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNsdWdzID0gJChldmVudC50YXJnZXQpLnBhcmVudCgnW2RhdGEtcGFja2FnZXMtc2x1Z3NdJykuYXR0cignZGF0YS1wYWNrYWdlcy1zbHVncycpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiBzbHVncyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgc2x1Z3MgPSBzbHVncy5zcGxpdCgnLCcpO1xuICAgICAgICByZXR1cm4gdHlwZW9mIHNsdWdzID09PSAnc3RyaW5nJyA/IFtzbHVnc10gOiBzbHVncztcbiAgICB9XG5cbiAgICBoYW5kbGVHZXR0aW5nUGFja2FnZURlcGVuZGVuY2llcyh0eXBlLCBldmVudCwgYWN0aW9uID0gJ3VwZGF0ZScpIHtcbiAgICAgICAgbGV0IHNsdWdzID0gUGFja2FnZXMuZ2V0U2x1Z3NGcm9tRXZlbnQoZXZlbnQpO1xuXG4gICAgICAgIGlmICghc2x1Z3MpIHtcbiAgICAgICAgICAgIGFsZXJ0KCdObyBzbHVnIHNldCcpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2xlYW51cFxuICAgICAgICAkKCcucGFja2FnZXMtbmFtZXMtbGlzdCcpLmh0bWwoJycpO1xuICAgICAgICAkKCcuaW5zdGFsbC1kZXBlbmRlbmNpZXMtcGFja2FnZS1jb250YWluZXIgbGknKS5yZW1vdmUoKTtcblxuICAgICAgICBzbHVncy5mb3JFYWNoKChzbHVnKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWN0aW9uID09PSAndXBkYXRlJykge1xuICAgICAgICAgICAgICAgIGxldCBjdXJyZW50X3ZlcnNpb24gPSAnJztcbiAgICAgICAgICAgICAgICBsZXQgYXZhaWxhYmxlX3ZlcnNpb24gPSAnJztcbiAgICAgICAgICAgICAgICBsZXQgbmFtZSA9ICcnO1xuXG4gICAgICAgICAgICAgICAgbGV0IHJlc291cmNlcyA9IGdwbS5wYXlsb2FkLnBheWxvYWQucmVzb3VyY2VzO1xuXG4gICAgICAgICAgICAgICAgaWYgKHJlc291cmNlcy5wbHVnaW5zW3NsdWddKSB7XG4gICAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZV92ZXJzaW9uID0gcmVzb3VyY2VzLnBsdWdpbnNbc2x1Z10uYXZhaWxhYmxlO1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50X3ZlcnNpb24gPSByZXNvdXJjZXMucGx1Z2luc1tzbHVnXS52ZXJzaW9uO1xuICAgICAgICAgICAgICAgICAgICBuYW1lID0gcmVzb3VyY2VzLnBsdWdpbnNbc2x1Z10ubmFtZTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlc291cmNlcy50aGVtZXNbc2x1Z10pIHtcbiAgICAgICAgICAgICAgICAgICAgYXZhaWxhYmxlX3ZlcnNpb24gPSByZXNvdXJjZXMudGhlbWVzW3NsdWddLmF2YWlsYWJsZTtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudF92ZXJzaW9uID0gcmVzb3VyY2VzLnRoZW1lc1tzbHVnXS52ZXJzaW9uO1xuICAgICAgICAgICAgICAgICAgICBuYW1lID0gcmVzb3VyY2VzLnRoZW1lc1tzbHVnXS5uYW1lO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICQoJy5wYWNrYWdlcy1uYW1lcy1saXN0JykuYXBwZW5kKGA8bGk+JHtuYW1lID8gbmFtZSA6IHNsdWd9LCAke3RyYW5zbGF0aW9ucy5QTFVHSU5fQURNSU4uRlJPTX0gdjxzdHJvbmc+JHtjdXJyZW50X3ZlcnNpb259PC9zdHJvbmc+ICR7dHJhbnNsYXRpb25zLlBMVUdJTl9BRE1JTi5UT30gdjxzdHJvbmc+JHthdmFpbGFibGVfdmVyc2lvbn08L3N0cm9uZz48L2xpPmApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAkKCcucGFja2FnZXMtbmFtZXMtbGlzdCcpLmFwcGVuZChgPGxpPiR7bmFtZSA/IG5hbWUgOiBzbHVnfTwvbGk+YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIC8vIGZpeCBtaXNtYXRjaGluZyB0eXBlcyB3aGVuIHNoYXJpbmcgaW5zdGFsbCBtb2RhbCBiZXR3ZWVuIHBsdWdpbnMvdGhlbWVzXG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0gJ1tkYXRhLXBhY2thZ2VzLW1vZGFsXSBbZGF0YS10aGVtZS1hY3Rpb25dLCBbZGF0YS1wYWNrYWdlcy1tb2RhbF0gW2RhdGEtcGx1Z2luLWFjdGlvbl0nO1xuICAgICAgICBjb25zdCBkYXRhID0gJChxdWVyeSkuZGF0YSgndGhlbWVBY3Rpb24nKSB8fCAkKHF1ZXJ5KS5kYXRhKCdwbHVnaW5BY3Rpb24nKTtcbiAgICAgICAgJChxdWVyeSkucmVtb3ZlQXR0cignZGF0YS10aGVtZS1hY3Rpb24nKS5yZW1vdmVBdHRyKCdkYXRhLXBsdWdpbi1hY3Rpb24nKS5hdHRyKGBkYXRhLSR7dHlwZX0tYWN0aW9uYCwgZGF0YSk7XG5cbiAgICAgICAgLy8gUmVzdG9yZSBvcmlnaW5hbCBzdGF0ZVxuICAgICAgICAkKCdbZGF0YS1wYWNrYWdlcy1tb2RhbF0gLmxvYWRpbmcnKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICQoJ1tkYXRhLXBhY2thZ2VzLW1vZGFsXSAuaW5zdGFsbC1kZXBlbmRlbmNpZXMtcGFja2FnZS1jb250YWluZXInKS5hZGRDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICQoJ1tkYXRhLXBhY2thZ2VzLW1vZGFsXSAuaW5zdGFsbC1wYWNrYWdlLWNvbnRhaW5lcicpLmFkZENsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgJCgnW2RhdGEtcGFja2FnZXMtbW9kYWxdIC5pbnN0YWxsaW5nLWRlcGVuZGVuY2llcycpLmFkZENsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgJCgnW2RhdGEtcGFja2FnZXMtbW9kYWxdIC5pbnN0YWxsaW5nLXBhY2thZ2UnKS5hZGRDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICQoJ1tkYXRhLXBhY2thZ2VzLW1vZGFsXSAuaW5zdGFsbGF0aW9uLWNvbXBsZXRlJykuYWRkQ2xhc3MoJ2hpZGRlbicpO1xuICAgICAgICAkKCdbZGF0YS1wYWNrYWdlcy1tb2RhbF0gLmluc3RhbGwtcGFja2FnZS1lcnJvcicpLmFkZENsYXNzKCdoaWRkZW4nKTtcblxuICAgICAgICB0aGlzLmdldFBhY2thZ2VzRGVwZW5kZW5jaWVzKHR5cGUsIHNsdWdzLCAoKSA9PiB7XG4gICAgICAgICAgICBsZXQgc2x1Z3Nfc3RyaW5nID0gc2x1Z3Muam9pbigpO1xuICAgICAgICAgICAgJChgW2RhdGEtcGFja2FnZXMtbW9kYWxdIFtkYXRhLSR7dHlwZX0tYWN0aW9uPVwiaW5zdGFsbC1kZXBlbmRlbmNpZXMtYW5kLXBhY2thZ2VcIl1gKS5hdHRyKCdkYXRhLXBhY2thZ2VzLXNsdWdzJywgc2x1Z3Nfc3RyaW5nKTtcbiAgICAgICAgICAgICQoYFtkYXRhLXBhY2thZ2VzLW1vZGFsXSBbZGF0YS0ke3R5cGV9LWFjdGlvbj1cImluc3RhbGwtcGFja2FnZVwiXWApLmF0dHIoJ2RhdGEtcGFja2FnZXMtc2x1Z3MnLCBzbHVnc19zdHJpbmcpO1xuICAgICAgICAgICAgJCgnW2RhdGEtcGFja2FnZXMtbW9kYWxdIC5sb2FkaW5nJykuYWRkQ2xhc3MoJ2hpZGRlbicpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBoYW5kbGVJbnN0YWxsaW5nRGVwZW5kZW5jaWVzQW5kUGFja2FnZSh0eXBlLCBldmVudCkge1xuICAgICAgICBsZXQgc2x1Z3MgPSBQYWNrYWdlcy5nZXRTbHVnc0Zyb21FdmVudChldmVudCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICQoJ1tkYXRhLXBhY2thZ2VzLW1vZGFsXSAuaW5zdGFsbC1kZXBlbmRlbmNpZXMtcGFja2FnZS1jb250YWluZXInKS5hZGRDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICQoJ1tkYXRhLXBhY2thZ2VzLW1vZGFsXSAuaW5zdGFsbC1wYWNrYWdlLWNvbnRhaW5lcicpLmFkZENsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgJCgnW2RhdGEtcGFja2FnZXMtbW9kYWxdIC5pbnN0YWxsaW5nLWRlcGVuZGVuY2llcycpLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTtcblxuICAgICAgICB0aGlzLmluc3RhbGxEZXBlbmRlbmNpZXNPZlBhY2thZ2VzKHR5cGUsIHNsdWdzLCAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICQoJ1tkYXRhLXBhY2thZ2VzLW1vZGFsXSAuaW5zdGFsbGluZy1kZXBlbmRlbmNpZXMnKS5hZGRDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICAgICAkKCdbZGF0YS1wYWNrYWdlcy1tb2RhbF0gLmluc3RhbGxpbmctcGFja2FnZScpLnJlbW92ZUNsYXNzKCdoaWRkZW4nKTtcbiAgICAgICAgICAgIHRoaXMuaW5zdGFsbFBhY2thZ2VzKHR5cGUsIHNsdWdzLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgJCgnW2RhdGEtcGFja2FnZXMtbW9kYWxdIC5pbnN0YWxsaW5nLXBhY2thZ2UnKS5hZGRDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgJCgnW2RhdGEtcGFja2FnZXMtbW9kYWxdIC5pbnN0YWxsYXRpb24tY29tcGxldGUnKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG5cbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAnZXJyb3InKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCByZW1vZGFsID0gJC5yZW1vZGFsLmxvb2t1cFskKCdbZGF0YS1wYWNrYWdlcy1tb2RhbF0nKS5kYXRhKCdyZW1vZGFsJyldO1xuICAgICAgICAgICAgICAgICAgICByZW1vZGFsLmNsb3NlKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2x1Z3MubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBnbG9iYWwubG9jYXRpb24uaHJlZiA9IGAke2NvbmZpZy5iYXNlX3VybF9yZWxhdGl2ZX0vJHt0eXBlfXMvJHtzbHVnc1swXX1gO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsLmxvY2F0aW9uLmhyZWYgPSBgJHtjb25maWcuYmFzZV91cmxfcmVsYXRpdmV9LyR7dHlwZX1zYDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIDEwMDApO1xuXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaGFuZGxlSW5zdGFsbGluZ1BhY2thZ2UodHlwZSwgZXZlbnQpIHtcbiAgICAgICAgbGV0IHNsdWdzID0gUGFja2FnZXMuZ2V0U2x1Z3NGcm9tRXZlbnQoZXZlbnQpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICAkKCdbZGF0YS1wYWNrYWdlcy1tb2RhbF0gLmluc3RhbGwtcGFja2FnZS1jb250YWluZXInKS5hZGRDbGFzcygnaGlkZGVuJyk7XG4gICAgICAgICQoJ1tkYXRhLXBhY2thZ2VzLW1vZGFsXSAuaW5zdGFsbGluZy1wYWNrYWdlJykucmVtb3ZlQ2xhc3MoJ2hpZGRlbicpO1xuXG4gICAgICAgIHRoaXMuaW5zdGFsbFBhY2thZ2VzKHR5cGUsIHNsdWdzLCAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICQoJ1tkYXRhLXBhY2thZ2VzLW1vZGFsXSAuaW5zdGFsbGluZy1wYWNrYWdlJykuYWRkQ2xhc3MoJ2hpZGRlbicpO1xuICAgICAgICAgICAgJCgnW2RhdGEtcGFja2FnZXMtbW9kYWxdIC5pbnN0YWxsYXRpb24tY29tcGxldGUnKS5yZW1vdmVDbGFzcygnaGlkZGVuJyk7XG5cbiAgICAgICAgICAgIGNvbnN0IGVycm9ycyA9IEFycmF5LmZyb20ocmVzcG9uc2UpLmZpbHRlcigocikgPT4gci5zdGF0dXMgPT09ICdlcnJvcicpO1xuXG4gICAgICAgICAgICBpZiAoZXJyb3JzICYmIGVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBsZXQgcmVtb2RhbCA9ICQucmVtb2RhbC5sb29rdXBbJCgnW2RhdGEtcGFja2FnZXMtbW9kYWxdLnJlbW9kYWwtaXMtb3BlbmVkJykuZGF0YSgncmVtb2RhbCcpXTtcbiAgICAgICAgICAgICAgICByZW1vZGFsLmNsb3NlKCk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChzbHVncy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICBnbG9iYWwubG9jYXRpb24uaHJlZiA9IGAke2NvbmZpZy5iYXNlX3VybF9yZWxhdGl2ZX0vJHt0eXBlfXMvJHtzbHVnc1swXX1gO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBnbG9iYWwubG9jYXRpb24uaHJlZiA9IGAke2NvbmZpZy5iYXNlX3VybF9yZWxhdGl2ZX0vJHt0eXBlfXNgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBoYW5kbGVSZW1vdmluZ1BhY2thZ2UodHlwZSwgZXZlbnQpIHtcbiAgICAgICAgbGV0IHNsdWcgPSAkKGV2ZW50LnRhcmdldCkuYXR0cignZGF0YS1wYWNrYWdlcy1zbHVncycpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICB0aGlzLnJlbW92ZVBhY2thZ2UodHlwZSwgc2x1Zyk7XG4gICAgfVxuXG4gICAgaGFuZGxlUmVpbnN0YWxsUGFja2FnZSh0eXBlLCBldmVudCkge1xuICAgICAgICBsZXQgdGFyZ2V0ID0gJChldmVudC50YXJnZXQpO1xuICAgICAgICBsZXQgc2x1ZyA9IHRhcmdldC5hdHRyKCdkYXRhLXBhY2thZ2Utc2x1ZycpO1xuICAgICAgICBsZXQgcGFja2FnZV9uYW1lID0gdGFyZ2V0LmF0dHIoJ2RhdGEtcGFja2FnZS1uYW1lJyk7XG4gICAgICAgIGxldCBjdXJyZW50X3ZlcnNpb24gPSB0YXJnZXQuYXR0cignZGF0YS1wYWNrYWdlLWN1cnJlbnQtdmVyc2lvbicpO1xuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIHRoaXMucmVpbnN0YWxsUGFja2FnZSh0eXBlLCBzbHVnLCBwYWNrYWdlX25hbWUsIGN1cnJlbnRfdmVyc2lvbik7XG4gICAgfVxuXG4gICAgaGFuZGxlUmVtb3ZpbmdEZXBlbmRlbmN5KHR5cGUsIGV2ZW50KSB7XG4gICAgICAgIGxldCBzbHVnID0gJChldmVudC50YXJnZXQpLmF0dHIoJ2RhdGEtZGVwZW5kZW5jeS1zbHVnJyk7XG4gICAgICAgIGxldCBidXR0b24gPSAkKGV2ZW50LnRhcmdldCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIHRoaXMucmVtb3ZlRGVwZW5kZW5jeSh0eXBlLCBzbHVnLCBidXR0b24pO1xuICAgIH1cblxufVxuXG5leHBvcnQgZGVmYXVsdCBuZXcgUGFja2FnZXMoKTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/utils/packages.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/utils/remodal.js":
|
|
/*!******************************!*\
|
|
!*** ./app/utils/remodal.js ***!
|
|
\******************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* Remodal from https://github.com/vodkabears/Remodal\n * With Stackable option from https://github.com/antstorm/Remodal patch\n */\n\n!function (root, factory) {\n return factory(root, (jquery__WEBPACK_IMPORTED_MODULE_0___default()));\n}(undefined, function (global, $) {\n 'use strict';\n /**\n * Name of the plugin\n * @private\n * @const\n * @type {String}\n */\n\n var PLUGIN_NAME = 'remodal';\n /**\n * Namespace for CSS and events\n * @private\n * @const\n * @type {String}\n */\n\n var NAMESPACE = window.REMODAL_GLOBALS && window.REMODAL_GLOBALS.NAMESPACE || PLUGIN_NAME;\n /**\n * Animationstart event with vendor prefixes\n * @private\n * @const\n * @type {String}\n */\n\n var ANIMATIONSTART_EVENTS = $.map(['animationstart', 'webkitAnimationStart', 'MSAnimationStart', 'oAnimationStart'], function (eventName) {\n return eventName + '.' + NAMESPACE;\n }).join(' ');\n /**\n * Animationend event with vendor prefixes\n * @private\n * @const\n * @type {String}\n */\n\n var ANIMATIONEND_EVENTS = $.map(['animationend', 'webkitAnimationEnd', 'MSAnimationEnd', 'oAnimationEnd'], function (eventName) {\n return eventName + '.' + NAMESPACE;\n }).join(' ');\n /**\n * Default settings\n * @private\n * @const\n * @type {Object}\n */\n\n var DEFAULTS = $.extend({\n hashTracking: true,\n closeOnConfirm: true,\n closeOnCancel: true,\n closeOnEscape: true,\n closeOnOutsideClick: true,\n modifier: '',\n stack: false,\n appendTo: null\n }, window.REMODAL_GLOBALS && window.REMODAL_GLOBALS.DEFAULTS);\n /**\n * States of the Remodal\n * @private\n * @const\n * @enum {String}\n */\n\n var STATES = {\n CLOSING: 'closing',\n CLOSED: 'closed',\n OPENING: 'opening',\n OPENED: 'opened'\n };\n /**\n * Reasons of the state change.\n * @private\n * @const\n * @enum {String}\n */\n\n var STATE_CHANGE_REASONS = {\n CONFIRMATION: 'confirmation',\n CANCELLATION: 'cancellation'\n };\n /**\n * Is animation supported?\n * @private\n * @const\n * @type {Boolean}\n */\n\n var IS_ANIMATION = function () {\n var style = document.createElement('div').style;\n return style.animationName !== undefined || style.WebkitAnimationName !== undefined || style.MozAnimationName !== undefined || style.msAnimationName !== undefined || style.OAnimationName !== undefined;\n }();\n /**\n * Is iOS?\n * @private\n * @const\n * @type {Boolean}\n */\n\n\n var IS_IOS = /iPad|iPhone|iPod/.test(navigator.platform);\n /**\n * Current modal\n * @private\n * @type {Remodal}\n */\n\n var openModals = [];\n /**\n * Scrollbar position\n * @private\n * @type {Number}\n */\n\n var scrollTop;\n /**\n * Returns an animation duration\n * @private\n * @param {jQuery} $elem\n * @returns {Number}\n */\n\n function getAnimationDuration($elem) {\n if (IS_ANIMATION && $elem.css('animation-name') === 'none' && $elem.css('-webkit-animation-name') === 'none' && $elem.css('-moz-animation-name') === 'none' && $elem.css('-o-animation-name') === 'none' && $elem.css('-ms-animation-name') === 'none') {\n return 0;\n }\n\n var duration = $elem.css('animation-duration') || $elem.css('-webkit-animation-duration') || $elem.css('-moz-animation-duration') || $elem.css('-o-animation-duration') || $elem.css('-ms-animation-duration') || '0s';\n var delay = $elem.css('animation-delay') || $elem.css('-webkit-animation-delay') || $elem.css('-moz-animation-delay') || $elem.css('-o-animation-delay') || $elem.css('-ms-animation-delay') || '0s';\n var iterationCount = $elem.css('animation-iteration-count') || $elem.css('-webkit-animation-iteration-count') || $elem.css('-moz-animation-iteration-count') || $elem.css('-o-animation-iteration-count') || $elem.css('-ms-animation-iteration-count') || '1';\n var max;\n var len;\n var num;\n var i;\n duration = duration.split(', ');\n delay = delay.split(', ');\n iterationCount = iterationCount.split(', '); // The 'duration' size is the same as the 'delay' size\n\n for (i = 0, len = duration.length, max = Number.NEGATIVE_INFINITY; i < len; i++) {\n num = parseFloat(duration[i]) * parseInt(iterationCount[i], 10) + parseFloat(delay[i]);\n\n if (num > max) {\n max = num;\n }\n }\n\n return max;\n }\n /**\n * Returns a scrollbar width\n * @private\n * @returns {Number}\n */\n\n\n function getScrollbarWidth() {\n if ($(document).height() <= $(window).height()) {\n return 0;\n }\n\n var outer = document.createElement('div');\n var inner = document.createElement('div');\n var widthNoScroll;\n var widthWithScroll;\n outer.style.visibility = 'hidden';\n outer.style.width = '100px';\n document.body.appendChild(outer);\n widthNoScroll = outer.offsetWidth; // Force scrollbars\n\n outer.style.overflow = 'scroll'; // Add inner div\n\n inner.style.width = '100%';\n outer.appendChild(inner);\n widthWithScroll = inner.offsetWidth; // Remove divs\n\n outer.parentNode.removeChild(outer);\n return widthNoScroll - widthWithScroll;\n }\n /**\n * Locks the screen\n * @private\n */\n\n\n function lockScreen() {\n if (IS_IOS) {\n return;\n }\n\n var $html = $('html');\n var lockedClass = namespacify('is-locked');\n var paddingRight;\n var $body;\n\n if (!$html.hasClass(lockedClass)) {\n $body = $(document.body); // Zepto does not support '-=', '+=' in the `css` method\n\n paddingRight = parseInt($body.css('padding-right'), 10) + getScrollbarWidth();\n $body.css('padding-right', paddingRight + 'px');\n $html.addClass(lockedClass);\n }\n }\n /**\n * Unlocks the screen\n * @private\n */\n\n\n function unlockScreen() {\n if (IS_IOS) {\n return;\n }\n\n var $html = $('html');\n var lockedClass = namespacify('is-locked');\n var paddingRight;\n var $body;\n\n if ($html.hasClass(lockedClass)) {\n $body = $(document.body); // Zepto does not support '-=', '+=' in the `css` method\n\n paddingRight = parseInt($body.css('padding-right'), 10) - getScrollbarWidth();\n $body.css('padding-right', paddingRight + 'px');\n $html.removeClass(lockedClass);\n }\n }\n /**\n * Sets a state for an instance\n * @private\n * @param {Remodal} instance\n * @param {STATES} state\n * @param {Boolean} isSilent If true, Remodal does not trigger events\n * @param {String} Reason of a state change.\n */\n\n\n function setState(instance, state, isSilent, reason) {\n var newState = namespacify('is', state);\n var allStates = [namespacify('is', STATES.CLOSING), namespacify('is', STATES.OPENING), namespacify('is', STATES.CLOSED), namespacify('is', STATES.OPENED)].join(' ');\n instance.$bg.removeClass(allStates).addClass(newState);\n instance.$overlay.removeClass(allStates).addClass(newState);\n instance.$wrapper.removeClass(allStates).addClass(newState);\n instance.$modal.removeClass(allStates).addClass(newState);\n instance.state = state;\n !isSilent && instance.$modal.trigger({\n type: state,\n reason: reason\n }, [{\n reason: reason\n }]);\n }\n /**\n * Synchronizes with the animation\n * @param {Function} doBeforeAnimation\n * @param {Function} doAfterAnimation\n * @param {Remodal} instance\n */\n\n\n function syncWithAnimation(doBeforeAnimation, doAfterAnimation, instance) {\n var runningAnimationsCount = 0;\n\n var handleAnimationStart = function handleAnimationStart(e) {\n if (e.target !== this) {\n return;\n }\n\n runningAnimationsCount++;\n };\n\n var handleAnimationEnd = function handleAnimationEnd(e) {\n if (e.target !== this) {\n return;\n }\n\n if (--runningAnimationsCount === 0) {\n // Remove event listeners\n $.each(['$bg', '$overlay', '$wrapper', '$modal'], function (index, elemName) {\n instance[elemName].off(ANIMATIONSTART_EVENTS + ' ' + ANIMATIONEND_EVENTS);\n });\n doAfterAnimation();\n }\n };\n\n $.each(['$bg', '$overlay', '$wrapper', '$modal'], function (index, elemName) {\n instance[elemName].on(ANIMATIONSTART_EVENTS, handleAnimationStart).on(ANIMATIONEND_EVENTS, handleAnimationEnd);\n });\n doBeforeAnimation(); // If the animation is not supported by a browser or its duration is 0\n\n if (getAnimationDuration(instance.$bg) === 0 && getAnimationDuration(instance.$overlay) === 0 && getAnimationDuration(instance.$wrapper) === 0 && getAnimationDuration(instance.$modal) === 0) {\n // Remove event listeners\n $.each(['$bg', '$overlay', '$wrapper', '$modal'], function (index, elemName) {\n instance[elemName].off(ANIMATIONSTART_EVENTS + ' ' + ANIMATIONEND_EVENTS);\n });\n doAfterAnimation();\n }\n }\n /**\n * Closes immediately\n * @private\n * @param {Remodal} instance\n */\n\n\n function halt(instance) {\n if (instance.state === STATES.CLOSED) {\n return;\n }\n\n $.each(['$bg', '$overlay', '$wrapper', '$modal'], function (index, elemName) {\n instance[elemName].off(ANIMATIONSTART_EVENTS + ' ' + ANIMATIONEND_EVENTS);\n });\n removeModal(instance);\n instance.$bg.removeClass(instance.settings.modifier);\n instance.$overlay.removeClass(instance.settings.modifier).hide();\n instance.$wrapper.hide();\n\n if (openModals.length === 0) {\n unlockScreen();\n }\n\n setState(instance, STATES.CLOSED, true);\n }\n /**\n * Parses a string with options\n * @private\n * @param str\n * @returns {Object}\n */\n\n\n function parseOptions(str) {\n var obj = {};\n var arr;\n var len;\n var val;\n var i; // Remove spaces before and after delimiters\n\n str = str.replace(/\\s*:\\s*/g, ':').replace(/\\s*,\\s*/g, ','); // Parse a string\n\n arr = str.split(',');\n\n for (i = 0, len = arr.length; i < len; i++) {\n arr[i] = arr[i].split(':');\n val = arr[i][1]; // Convert a string value if it is like a boolean\n\n if (typeof val === 'string' || val instanceof String) {\n val = val === 'true' || (val === 'false' ? false : val);\n } // Convert a string value if it is like a number\n\n\n if (typeof val === 'string' || val instanceof String) {\n val = !isNaN(val) ? +val : val;\n }\n\n obj[arr[i][0]] = val;\n }\n\n return obj;\n }\n /**\n * Generates a string separated by dashes and prefixed with NAMESPACE\n * @private\n * @param {...String}\n * @returns {String}\n */\n\n\n function namespacify() {\n var result = NAMESPACE;\n\n for (var i = 0; i < arguments.length; ++i) {\n result += '-' + arguments[i];\n }\n\n return result;\n }\n /**\n * Handles the hashchange event\n * @private\n * @listens hashchange\n */\n\n\n function handleHashChangeEvent() {\n var id = location.hash.replace('#', '');\n var instance;\n var $elem;\n var current = currentModal();\n\n if (!id) {\n // Check if we have currently opened modal and animation was completed\n if (current && current.state === STATES.OPENED && current.settings.hashTracking) {\n current.close();\n }\n } else {\n if (!current || current.id !== id) {\n // Catch syntax error if your hash is bad\n try {\n $elem = $('[data-' + PLUGIN_NAME + '-id=\"' + id + '\"]');\n } catch (err) {}\n\n if ($elem && $elem.length) {\n instance = $[PLUGIN_NAME].lookup[$elem.data(PLUGIN_NAME)];\n\n if (instance && instance.settings.hashTracking) {\n instance.open();\n }\n }\n }\n }\n }\n\n function currentModal() {\n return openModals[openModals.length - 1];\n }\n\n function removeModal(remodal) {\n var index = openModals.indexOf(remodal);\n\n if (index >= 0) {\n openModals.slice(index, 1);\n }\n }\n /**\n * Remodal constructor\n * @constructor\n * @param {jQuery} $modal\n * @param {Object} options\n */\n\n\n function Remodal($modal, options) {\n var $body = $(document.body);\n var $appendTo = $body;\n var remodal = this;\n remodal.id = $modal.attr('data-' + PLUGIN_NAME + '-id');\n remodal.settings = $.extend({}, DEFAULTS, options);\n remodal.index = $[PLUGIN_NAME].lookup.push(remodal) - 1;\n remodal.state = STATES.CLOSED; // remodal.$overlay = $('.' + namespacify('overlay'));\n\n if (remodal.settings.appendTo !== null && remodal.settings.appendTo.length) {\n $appendTo = $(remodal.settings.appendTo);\n }\n\n if (!remodal.$overlay) {\n remodal.$overlay = $('<div>').addClass(namespacify('overlay') + ' ' + namespacify('is', STATES.CLOSED)).hide();\n $appendTo.append(remodal.$overlay);\n }\n\n remodal.$bg = $('.' + namespacify('bg')).addClass(namespacify('is', STATES.CLOSED));\n remodal.$modal = $modal.addClass(NAMESPACE + ' ' + namespacify('is-initialized') + ' ' + remodal.settings.modifier + ' ' + namespacify('is', STATES.CLOSED)).attr('tabindex', '-1');\n remodal.$wrapper = $('<div>').addClass(namespacify('wrapper') + ' ' + remodal.settings.modifier + ' ' + namespacify('is', STATES.CLOSED)).hide().append(remodal.$modal);\n $appendTo.append(remodal.$wrapper); // Add the event listener for the close button\n\n remodal.$wrapper.on('click.' + NAMESPACE, '[data-' + PLUGIN_NAME + '-action=\"close\"]', function (e) {\n e.preventDefault();\n remodal.close();\n }); // Add the event listener for the cancel button\n\n remodal.$wrapper.on('click.' + NAMESPACE, '[data-' + PLUGIN_NAME + '-action=\"cancel\"]', function (e) {\n e.preventDefault();\n remodal.$modal.trigger(STATE_CHANGE_REASONS.CANCELLATION);\n\n if (remodal.settings.closeOnCancel) {\n remodal.close(STATE_CHANGE_REASONS.CANCELLATION);\n }\n }); // Add the event listener for the confirm button\n\n remodal.$wrapper.on('click.' + NAMESPACE, '[data-' + PLUGIN_NAME + '-action=\"confirm\"]', function (e) {\n e.preventDefault();\n remodal.$modal.trigger(STATE_CHANGE_REASONS.CONFIRMATION);\n\n if (remodal.settings.closeOnConfirm) {\n remodal.close(STATE_CHANGE_REASONS.CONFIRMATION);\n }\n }); // Add the event listener for the overlay\n\n remodal.$wrapper.on('click.' + NAMESPACE, function (e) {\n var $target = $(e.target);\n var isWrapper = $target.hasClass(namespacify('wrapper'));\n var isWithin = $target.closest('.' + namespacify('is', STATES.OPENED)).length;\n\n if (!isWrapper && isWithin) {\n return;\n }\n\n if (remodal.settings.closeOnOutsideClick) {\n remodal.close();\n }\n });\n }\n /**\n * Opens a modal window\n * @public\n */\n\n\n Remodal.prototype.open = function () {\n var remodal = this;\n var current;\n var modalCount; // Check if the animation was completed\n\n if (remodal.state === STATES.OPENING || remodal.state === STATES.CLOSING) {\n return;\n } // id = remodal.$modal.attr('data-' + PLUGIN_NAME + '-id');\n\n\n if (remodal.id && remodal.settings.hashTracking) {\n scrollTop = $(window).scrollTop();\n location.hash = remodal.id;\n }\n\n if (!remodal.settings.stack) {\n current = currentModal();\n\n if (current && current !== remodal) {\n halt(current);\n }\n }\n\n modalCount = openModals.push(remodal);\n remodal.$overlay.css('z-index', function (_, value) {\n return parseInt(value, 10) + modalCount;\n });\n remodal.$wrapper.css('z-index', function (_, value) {\n return parseInt(value, 10) + modalCount;\n });\n lockScreen();\n remodal.$bg.addClass(remodal.settings.modifier);\n remodal.$overlay.addClass(remodal.settings.modifier).show();\n remodal.$wrapper.show().scrollTop(0);\n remodal.$modal.focus();\n syncWithAnimation(function () {\n setState(remodal, STATES.OPENING);\n }, function () {\n setState(remodal, STATES.OPENED);\n }, remodal);\n };\n /**\n * Closes a modal window\n * @public\n * @param {String} reason\n */\n\n\n Remodal.prototype.close = function (reason) {\n var remodal = this;\n var current; // Check if the animation was completed\n\n if (remodal.state === STATES.OPENING || remodal.state === STATES.CLOSING || remodal.state === STATES.CLOSED) {\n return;\n }\n\n removeModal(remodal);\n\n if (remodal.settings.hashTracking && remodal.id === location.hash.substr(1)) {\n current = currentModal();\n\n if (current) {\n location.hash = current.id;\n } else {\n location.hash = '';\n $(window).scrollTop(scrollTop);\n }\n }\n\n syncWithAnimation(function () {\n setState(remodal, STATES.CLOSING, false, reason);\n }, function () {\n remodal.$bg.removeClass(remodal.settings.modifier);\n remodal.$overlay.removeClass(remodal.settings.modifier).hide();\n remodal.$wrapper.hide();\n\n if (openModals.length === 0) {\n unlockScreen();\n }\n\n setState(remodal, STATES.CLOSED, false, reason);\n }, remodal);\n };\n /**\n * Returns a current state of a modal\n * @public\n * @returns {STATES}\n */\n\n\n Remodal.prototype.getState = function () {\n return this.state;\n };\n /**\n * Destroys a modal\n * @public\n */\n\n\n Remodal.prototype.destroy = function () {\n var lookup = $[PLUGIN_NAME].lookup;\n var instanceCount;\n halt(this);\n this.$wrapper.remove();\n delete lookup[this.index];\n instanceCount = $.grep(lookup, function (instance) {\n return !!instance;\n }).length;\n\n if (instanceCount === 0) {\n this.$overlay.remove();\n this.$bg.removeClass(namespacify('is', STATES.CLOSING) + ' ' + namespacify('is', STATES.OPENING) + ' ' + namespacify('is', STATES.CLOSED) + ' ' + namespacify('is', STATES.OPENED));\n }\n };\n /**\n * Special plugin object for instances\n * @public\n * @type {Object}\n */\n\n\n $[PLUGIN_NAME] = {\n lookup: []\n };\n /**\n * Plugin constructor\n * @constructor\n * @param {Object} options\n * @returns {JQuery}\n */\n\n $.fn[PLUGIN_NAME] = function (opts) {\n var instance;\n var $elem;\n this.each(function (index, elem) {\n $elem = $(elem);\n\n if ($elem.data(PLUGIN_NAME) == null) {\n instance = new Remodal($elem, opts);\n $elem.data(PLUGIN_NAME, instance.index);\n\n if (instance.settings.hashTracking && instance.id === location.hash.substr(1)) {\n instance.open();\n }\n } else {\n instance = $[PLUGIN_NAME].lookup[$elem.data(PLUGIN_NAME)];\n }\n });\n return instance;\n };\n\n $(document).ready(function () {\n // data-remodal-target opens a modal window with the special Id\n $(document).on('click', '[data-' + PLUGIN_NAME + '-target]', function (e) {\n e.preventDefault();\n var elem = e.currentTarget;\n var id = elem.getAttribute('data-' + PLUGIN_NAME + '-target');\n var $target = $('[data-' + PLUGIN_NAME + '-id=\"' + id + '\"]');\n $[PLUGIN_NAME].lookup[$target.data(PLUGIN_NAME)].open();\n }); // Auto initialization of modal windows\n // They should have the 'remodal' class attribute\n // Also you can write the `data-remodal-options` attribute to pass params into the modal\n\n $(document).find('.' + NAMESPACE).each(function (i, container) {\n var $container = $(container);\n var options = $container.data(PLUGIN_NAME + '-options');\n\n if (!options) {\n options = {};\n } else if (typeof options === 'string' || options instanceof String) {\n options = parseOptions(options);\n }\n\n $container[PLUGIN_NAME](options);\n }); // Handles the keydown event\n\n $(document).on('keydown.' + NAMESPACE, function (e) {\n var current = currentModal();\n\n if (current && current.settings.closeOnEscape && current.state === STATES.OPENED && e.keyCode === 27) {\n current.close();\n }\n }); // Handles the hashchange event\n\n $(window).on('hashchange.' + NAMESPACE, handleHashChangeEvent);\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL3JlbW9kYWwuanM/M2M5ZiJdLCJuYW1lcyI6WyJyb290IiwiZmFjdG9yeSIsIiQiLCJnbG9iYWwiLCJQTFVHSU5fTkFNRSIsIk5BTUVTUEFDRSIsIndpbmRvdyIsIlJFTU9EQUxfR0xPQkFMUyIsIkFOSU1BVElPTlNUQVJUX0VWRU5UUyIsIm1hcCIsImV2ZW50TmFtZSIsImpvaW4iLCJBTklNQVRJT05FTkRfRVZFTlRTIiwiREVGQVVMVFMiLCJleHRlbmQiLCJoYXNoVHJhY2tpbmciLCJjbG9zZU9uQ29uZmlybSIsImNsb3NlT25DYW5jZWwiLCJjbG9zZU9uRXNjYXBlIiwiY2xvc2VPbk91dHNpZGVDbGljayIsIm1vZGlmaWVyIiwic3RhY2siLCJhcHBlbmRUbyIsIlNUQVRFUyIsIkNMT1NJTkciLCJDTE9TRUQiLCJPUEVOSU5HIiwiT1BFTkVEIiwiU1RBVEVfQ0hBTkdFX1JFQVNPTlMiLCJDT05GSVJNQVRJT04iLCJDQU5DRUxMQVRJT04iLCJJU19BTklNQVRJT04iLCJzdHlsZSIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImFuaW1hdGlvbk5hbWUiLCJ1bmRlZmluZWQiLCJXZWJraXRBbmltYXRpb25OYW1lIiwiTW96QW5pbWF0aW9uTmFtZSIsIm1zQW5pbWF0aW9uTmFtZSIsIk9BbmltYXRpb25OYW1lIiwiSVNfSU9TIiwidGVzdCIsIm5hdmlnYXRvciIsInBsYXRmb3JtIiwib3Blbk1vZGFscyIsInNjcm9sbFRvcCIsImdldEFuaW1hdGlvbkR1cmF0aW9uIiwiJGVsZW0iLCJjc3MiLCJkdXJhdGlvbiIsImRlbGF5IiwiaXRlcmF0aW9uQ291bnQiLCJtYXgiLCJsZW4iLCJudW0iLCJpIiwic3BsaXQiLCJsZW5ndGgiLCJOdW1iZXIiLCJORUdBVElWRV9JTkZJTklUWSIsInBhcnNlRmxvYXQiLCJwYXJzZUludCIsImdldFNjcm9sbGJhcldpZHRoIiwiaGVpZ2h0Iiwib3V0ZXIiLCJpbm5lciIsIndpZHRoTm9TY3JvbGwiLCJ3aWR0aFdpdGhTY3JvbGwiLCJ2aXNpYmlsaXR5Iiwid2lkdGgiLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJvZmZzZXRXaWR0aCIsIm92ZXJmbG93IiwicGFyZW50Tm9kZSIsInJlbW92ZUNoaWxkIiwibG9ja1NjcmVlbiIsIiRodG1sIiwibG9ja2VkQ2xhc3MiLCJuYW1lc3BhY2lmeSIsInBhZGRpbmdSaWdodCIsIiRib2R5IiwiaGFzQ2xhc3MiLCJhZGRDbGFzcyIsInVubG9ja1NjcmVlbiIsInJlbW92ZUNsYXNzIiwic2V0U3RhdGUiLCJpbnN0YW5jZSIsInN0YXRlIiwiaXNTaWxlbnQiLCJyZWFzb24iLCJuZXdTdGF0ZSIsImFsbFN0YXRlcyIsIiRiZyIsIiRvdmVybGF5IiwiJHdyYXBwZXIiLCIkbW9kYWwiLCJ0cmlnZ2VyIiwidHlwZSIsInN5bmNXaXRoQW5pbWF0aW9uIiwiZG9CZWZvcmVBbmltYXRpb24iLCJkb0FmdGVyQW5pbWF0aW9uIiwicnVubmluZ0FuaW1hdGlvbnNDb3VudCIsImhhbmRsZUFuaW1hdGlvblN0YXJ0IiwiZSIsInRhcmdldCIsImhhbmRsZUFuaW1hdGlvbkVuZCIsImVhY2giLCJpbmRleCIsImVsZW1OYW1lIiwib2ZmIiwib24iLCJoYWx0IiwicmVtb3ZlTW9kYWwiLCJzZXR0aW5ncyIsImhpZGUiLCJwYXJzZU9wdGlvbnMiLCJzdHIiLCJvYmoiLCJhcnIiLCJ2YWwiLCJyZXBsYWNlIiwiU3RyaW5nIiwiaXNOYU4iLCJyZXN1bHQiLCJhcmd1bWVudHMiLCJoYW5kbGVIYXNoQ2hhbmdlRXZlbnQiLCJpZCIsImxvY2F0aW9uIiwiaGFzaCIsImN1cnJlbnQiLCJjdXJyZW50TW9kYWwiLCJjbG9zZSIsImVyciIsImxvb2t1cCIsImRhdGEiLCJvcGVuIiwicmVtb2RhbCIsImluZGV4T2YiLCJzbGljZSIsIlJlbW9kYWwiLCJvcHRpb25zIiwiJGFwcGVuZFRvIiwiYXR0ciIsInB1c2giLCJhcHBlbmQiLCJwcmV2ZW50RGVmYXVsdCIsIiR0YXJnZXQiLCJpc1dyYXBwZXIiLCJpc1dpdGhpbiIsImNsb3Nlc3QiLCJwcm90b3R5cGUiLCJtb2RhbENvdW50IiwiXyIsInZhbHVlIiwic2hvdyIsImZvY3VzIiwic3Vic3RyIiwiZ2V0U3RhdGUiLCJkZXN0cm95IiwiaW5zdGFuY2VDb3VudCIsInJlbW92ZSIsImdyZXAiLCJmbiIsIm9wdHMiLCJlbGVtIiwicmVhZHkiLCJjdXJyZW50VGFyZ2V0IiwiZ2V0QXR0cmlidXRlIiwiZmluZCIsImNvbnRhaW5lciIsIiRjb250YWluZXIiLCJrZXlDb2RlIl0sIm1hcHBpbmdzIjoiOzs7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUVBLENBQUUsVUFBU0EsSUFBVCxFQUFlQyxPQUFmLEVBQXdCO0FBQ3RCLFNBQU9BLE9BQU8sQ0FBQ0QsSUFBRCxFQUFPRSwrQ0FBUCxDQUFkO0FBQ0gsQ0FGQSxDQUVFLFNBRkYsRUFFUSxVQUFTQyxNQUFULEVBQWlCRCxDQUFqQixFQUFvQjtBQUV6QjtBQUVBO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDSSxNQUFJRSxXQUFXLEdBQUcsU0FBbEI7QUFFQTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0ksTUFBSUMsU0FBUyxHQUFHQyxNQUFNLENBQUNDLGVBQVAsSUFBMEJELE1BQU0sQ0FBQ0MsZUFBUCxDQUF1QkYsU0FBakQsSUFBOERELFdBQTlFO0FBRUE7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNJLE1BQUlJLHFCQUFxQixHQUFHTixDQUFDLENBQUNPLEdBQUYsQ0FDeEIsQ0FBQyxnQkFBRCxFQUFtQixzQkFBbkIsRUFBMkMsa0JBQTNDLEVBQStELGlCQUEvRCxDQUR3QixFQUd4QixVQUFTQyxTQUFULEVBQW9CO0FBQ2hCLFdBQU9BLFNBQVMsR0FBRyxHQUFaLEdBQWtCTCxTQUF6QjtBQUNILEdBTHVCLEVBTzFCTSxJQVAwQixDQU9yQixHQVBxQixDQUE1QjtBQVNBO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDSSxNQUFJQyxtQkFBbUIsR0FBR1YsQ0FBQyxD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LElBQVgsQ0FBZ0JwSSxXQUFXLEdBQUcsVUFBOUIsQ0FBZDs7QUFFQSxVQUFJLENBQUMwSSxPQUFMLEVBQWM7QUFDVkEsZUFBTyxHQUFHLEVBQVY7QUFDSCxPQUZELE1BRU8sSUFBSSxPQUFPQSxPQUFQLEtBQW1CLFFBQW5CLElBQStCQSxPQUFPLFlBQVluQixNQUF0RCxFQUE4RDtBQUNqRW1CLGVBQU8sR0FBR3pCLFlBQVksQ0FBQ3lCLE9BQUQsQ0FBdEI7QUFDSDs7QUFFRDhCLGdCQUFVLENBQUN4SyxXQUFELENBQVYsQ0FBd0IwSSxPQUF4QjtBQUNILEtBWEQsRUFoQnlCLENBNkJ6Qjs7QUFDQTVJLEtBQUMsQ0FBQytCLFFBQUQsQ0FBRCxDQUFZK0UsRUFBWixDQUFlLGFBQWEzRyxTQUE1QixFQUF1QyxVQUFTb0csQ0FBVCxFQUFZO0FBQy9DLFVBQUkwQixPQUFPLEdBQUdDLFlBQVksRUFBMUI7O0FBRUEsVUFBSUQsT0FBTyxJQUFJQSxPQUFPLENBQUNoQixRQUFSLENBQWlCakcsYUFBNUIsSUFBNkNpSCxPQUFPLENBQUMxQyxLQUFSLEtBQWtCbEUsTUFBTSxDQUFDSSxNQUF0RSxJQUFnRjhFLENBQUMsQ0FBQ29FLE9BQUYsS0FBYyxFQUFsRyxFQUFzRztBQUNsRzFDLGVBQU8sQ0FBQ0UsS0FBUjtBQUNIO0FBQ0osS0FORCxFQTlCeUIsQ0FzQ3pCOztBQUNBbkksS0FBQyxDQUFDSSxNQUFELENBQUQsQ0FBVTBHLEVBQVYsQ0FBYSxnQkFBZ0IzRyxTQUE3QixFQUF3QzBILHFCQUF4QztBQUNILEdBeENEO0FBeUNILENBN3lCQSxDQUFEIiwiZmlsZSI6Ii4vYXBwL3V0aWxzL3JlbW9kYWwuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBSZW1vZGFsIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3ZvZGthYmVhcnMvUmVtb2RhbFxuICogV2l0aCBTdGFja2FibGUgb3B0aW9uIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2FudHN0b3JtL1JlbW9kYWwgcGF0Y2hcbiAqL1xuXG5pbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuXG4hKGZ1bmN0aW9uKHJvb3QsIGZhY3RvcnkpIHtcbiAgICByZXR1cm4gZmFjdG9yeShyb290LCAkKTtcbn0pKHRoaXMsIGZ1bmN0aW9uKGdsb2JhbCwgJCkge1xuXG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLyoqXG4gICAgICogTmFtZSBvZiB0aGUgcGx1Z2luXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAY29uc3RcbiAgICAgKiBAdHlwZSB7U3RyaW5nfVxuICAgICAqL1xuICAgIHZhciBQTFVHSU5fTkFNRSA9ICdyZW1vZGFsJztcblxuICAgIC8qKlxuICAgICAqIE5hbWVzcGFjZSBmb3IgQ1NTIGFuZCBldmVudHNcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBjb25zdFxuICAgICAqIEB0eXBlIHtTdHJpbmd9XG4gICAgICovXG4gICAgdmFyIE5BTUVTUEFDRSA9IHdpbmRvdy5SRU1PREFMX0dMT0JBTFMgJiYgd2luZG93LlJFTU9EQUxfR0xPQkFMUy5OQU1FU1BBQ0UgfHwgUExVR0lOX05BTUU7XG5cbiAgICAvKipcbiAgICAgKiBBbmltYXRpb25zdGFydCBldmVudCB3aXRoIHZlbmRvciBwcmVmaXhlc1xuICAgICAqIEBwcml2YXRlXG4gICAgICogQGNvbnN0XG4gICAgICogQHR5cGUge1N0cmluZ31cbiAgICAgKi9cbiAgICB2YXIgQU5JTUFUSU9OU1RBUlRfRVZFTlRTID0gJC5tYXAoXG4gICAgICAgIFsnYW5pbWF0aW9uc3RhcnQnLCAnd2Via2l0QW5pbWF0aW9uU3RhcnQnLCAnTVNBbmltYXRpb25TdGFydCcsICdvQW5pbWF0aW9uU3RhcnQnXSxcblxuICAgICAgICBmdW5jdGlvbihldmVudE5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiBldmVudE5hbWUgKyAnLicgKyBOQU1FU1BBQ0U7XG4gICAgICAgIH1cblxuICAgICkuam9pbignICcpO1xuXG4gICAgLyoqXG4gICAgICogQW5pbWF0aW9uZW5kIGV2ZW50IHdpdGggdmVuZG9yIHByZWZpeGVzXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAY29uc3RcbiAgICAgKiBAdHlwZSB7U3RyaW5nfVxuICAgICAqL1xuICAgIHZhciBBTklNQVRJT05FTkRfRVZFTlRTID0gJC5tYXAoXG4gICAgICAgIFsnYW5pbWF0aW9uZW5kJywgJ3dlYmtpdEFuaW1hdGlvbkVuZCcsICdNU0FuaW1hdGlvbkVuZCcsICdvQW5pbWF0aW9uRW5kJ10sXG5cbiAgICAgICAgZnVuY3Rpb24oZXZlbnROYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gZXZlbnROYW1lICsgJy4nICsgTkFNRVNQQUNFO1xuICAgICAgICB9XG5cbiAgICApLmpvaW4oJyAnKTtcblxuICAgIC8qKlxuICAgICAqIERlZmF1bHQgc2V0dGluZ3NcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBjb25zdFxuICAgICAqIEB0eXBlIHtPYmplY3R9XG4gICAgICovXG4gICAgdmFyIERFRkFVTFRTID0gJC5leHRlbmQoe1xuICAgICAgICBoYXNoVHJhY2tpbmc6IHRydWUsXG4gICAgICAgIGNsb3NlT25Db25maXJtOiB0cnVlLFxuICAgICAgICBjbG9zZU9uQ2FuY2VsOiB0cnVlLFxuICAgICAgICBjbG9zZU9uRXNjYXBlOiB0cnVlLFxuICAgICAgICBjbG9zZU9uT3V0c2lkZUNsaWNrOiB0cnVlLFxuICAgICAgICBtb2RpZmllcjogJycsXG4gICAgICAgIHN0YWNrOiBmYWxzZSxcbiAgICAgICAgYXBwZW5kVG86IG51bGxcbiAgICB9LCB3aW5kb3cuUkVNT0RBTF9HTE9CQUxTICYmIHdpbmRvdy5SRU1PREFMX0dMT0JBTFMuREVGQVVMVFMpO1xuXG4gICAgLyoqXG4gICAgICogU3RhdGVzIG9mIHRoZSBSZW1vZGFsXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAY29uc3RcbiAgICAgKiBAZW51bSB7U3RyaW5nfVxuICAgICAqL1xuICAgIHZhciBTVEFURVMgPSB7XG4gICAgICAgIENMT1NJTkc6ICdjbG9zaW5nJyxcbiAgICAgICAgQ0xPU0VEOiAnY2xvc2VkJyxcbiAgICAgICAgT1BFTklORzogJ29wZW5pbmcnLFxuICAgICAgICBPUEVORUQ6ICdvcGVuZWQnXG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFJlYXNvbnMgb2YgdGhlIHN0YXRlIGNoYW5nZS5cbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBjb25zdFxuICAgICAqIEBlbnVtIHtTdHJpbmd9XG4gICAgICovXG4gICAgdmFyIFNUQVRFX0NIQU5HRV9SRUFTT05TID0ge1xuICAgICAgICBDT05GSVJNQVRJT046ICdjb25maXJtYXRpb24nLFxuICAgICAgICBDQU5DRUxMQVRJT046ICdjYW5jZWxsYXRpb24nXG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIElzIGFuaW1hdGlvbiBzdXBwb3J0ZWQ/XG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAY29uc3RcbiAgICAgKiBAdHlwZSB7Qm9vbGVhbn1cbiAgICAgKi9cbiAgICB2YXIgSVNfQU5JTUFUSU9OID0gKGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKS5zdHlsZTtcblxuICAgICAgICByZXR1cm4gc3R5bGUuYW5pbWF0aW9uTmFtZSAhPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICBzdHlsZS5XZWJraXRBbmltYXRpb25OYW1lICE9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgIHN0eWxlLk1vekFuaW1hdGlvbk5hbWUgIT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgc3R5bGUubXNBbmltYXRpb25OYW1lICE9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgIHN0eWxlLk9BbmltYXRpb25OYW1lICE9PSB1bmRlZmluZWQ7XG4gICAgfSkoKTtcblxuICAgIC8qKlxuICAgICAqIElzIGlPUz9cbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBjb25zdFxuICAgICAqIEB0eXBlIHtCb29sZWFufVxuICAgICAqL1xuICAgIHZhciBJU19JT1MgPSAvaVBhZHxpUGhvbmV8aVBvZC8udGVzdChuYXZpZ2F0b3IucGxhdGZvcm0pO1xuXG4gICAgLyoqXG4gICAgICogQ3VycmVudCBtb2RhbFxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHR5cGUge1JlbW9kYWx9XG4gICAgICovXG4gICAgdmFyIG9wZW5Nb2RhbHMgPSBbXTtcblxuICAgIC8qKlxuICAgICAqIFNjcm9sbGJhciBwb3NpdGlvblxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHR5cGUge051bWJlcn1cbiAgICAgKi9cbiAgICB2YXIgc2Nyb2xsVG9wO1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhbiBhbmltYXRpb24gZHVyYXRpb25cbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7alF1ZXJ5fSAkZWxlbVxuICAgICAqIEByZXR1cm5zIHtOdW1iZXJ9XG4gICAgICovXG4gICAgZnVuY3Rpb24gZ2V0QW5pbWF0aW9uRHVyYXRpb24oJGVsZW0pIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgSVNfQU5JTUFUSU9OICYmXG4gICAgICAgICAgICAkZWxlbS5jc3MoJ2FuaW1hdGlvbi1uYW1lJykgPT09ICdub25lJyAmJlxuICAgICAgICAgICAgJGVsZW0uY3NzKCctd2Via2l0LWFuaW1hdGlvbi1uYW1lJykgPT09ICdub25lJyAmJlxuICAgICAgICAgICAgJGVsZW0uY3NzKCctbW96LWFuaW1hdGlvbi1uYW1lJykgPT09ICdub25lJyAmJlxuICAgICAgICAgICAgJGVsZW0uY3NzKCctby1hbmltYXRpb24tbmFtZScpID09PSAnbm9uZScgJiZcbiAgICAgICAgICAgICRlbGVtLmNzcygnLW1zLWFuaW1hdGlvbi1uYW1lJykgPT09ICdub25lJ1xuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGR1cmF0aW9uID0gJGVsZW0uY3NzKCdhbmltYXRpb24tZHVyYXRpb24nKSB8fFxuICAgICAgICAgICAgJGVsZW0uY3NzKCctd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbicpIHx8XG4gICAgICAgICAgICAkZWxlbS5jc3MoJy1tb3otYW5pbWF0aW9uLWR1cmF0aW9uJykgfHxcbiAgICAgICAgICAgICRlbGVtLmNzcygnLW8tYW5pbWF0aW9uLWR1cmF0aW9uJykgfHxcbiAgICAgICAgICAgICRlbGVtLmNzcygnLW1zLWFuaW1hdGlvbi1kdXJhdGlvbicpIHx8XG4gICAgICAgICAgICAnMHMnO1xuXG4gICAgICAgIHZhciBkZWxheSA9ICRlbGVtLmNzcygnYW5pbWF0aW9uLWRlbGF5JykgfHxcbiAgICAgICAgICAgICRlbGVtLmNzcygnLXdlYmtpdC1hbmltYXRpb24tZGVsYXknKSB8fFxuICAgICAgICAgICAgJGVsZW0uY3NzKCctbW96LWFuaW1hdGlvbi1kZWxheScpIHx8XG4gICAgICAgICAgICAkZWxlbS5jc3MoJy1vLWFuaW1hdGlvbi1kZWxheScpIHx8XG4gICAgICAgICAgICAkZWxlbS5jc3MoJy1tcy1hbmltYXRpb24tZGVsYXknKSB8fFxuICAgICAgICAgICAgJzBzJztcblxuICAgICAgICB2YXIgaXRlcmF0aW9uQ291bnQgPSAkZWxlbS5jc3MoJ2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQnKSB8fFxuICAgICAgICAgICAgJGVsZW0uY3NzKCctd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQnKSB8fFxuICAgICAgICAgICAgJGVsZW0uY3NzKCctbW96LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQnKSB8fFxuICAgICAgICAgICAgJGVsZW0uY3NzKCctby1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50JykgfHxcbiAgICAgICAgICAgICRlbGVtLmNzcygnLW1zLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQnKSB8fFxuICAgICAgICAgICAgJzEnO1xuXG4gICAgICAgIHZhciBtYXg7XG4gICAgICAgIHZhciBsZW47XG4gICAgICAgIHZhciBudW07XG4gICAgICAgIHZhciBpO1xuXG4gICAgICAgIGR1cmF0aW9uID0gZHVyYXRpb24uc3BsaXQoJywgJyk7XG4gICAgICAgIGRlbGF5ID0gZGVsYXkuc3BsaXQoJywgJyk7XG4gICAgICAgIGl0ZXJhdGlvbkNvdW50ID0gaXRlcmF0aW9uQ291bnQuc3BsaXQoJywgJyk7XG5cbiAgICAgICAgLy8gVGhlICdkdXJhdGlvbicgc2l6ZSBpcyB0aGUgc2FtZSBhcyB0aGUgJ2RlbGF5JyBzaXplXG4gICAgICAgIGZvciAoaSA9IDAsIGxlbiA9IGR1cmF0aW9uLmxlbmd0aCwgbWF4ID0gTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICAgIG51bSA9IHBhcnNlRmxvYXQoZHVyYXRpb25baV0pICogcGFyc2VJbnQoaXRlcmF0aW9uQ291bnRbaV0sIDEwKSArIHBhcnNlRmxvYXQoZGVsYXlbaV0pO1xuXG4gICAgICAgICAgICBpZiAobnVtID4gbWF4KSB7XG4gICAgICAgICAgICAgICAgbWF4ID0gbnVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1heDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgc2Nyb2xsYmFyIHdpZHRoXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcmV0dXJucyB7TnVtYmVyfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGdldFNjcm9sbGJhcldpZHRoKCkge1xuICAgICAgICBpZiAoJChkb2N1bWVudCkuaGVpZ2h0KCkgPD0gJCh3aW5kb3cpLmhlaWdodCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBvdXRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB2YXIgaW5uZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdmFyIHdpZHRoTm9TY3JvbGw7XG4gICAgICAgIHZhciB3aWR0aFdpdGhTY3JvbGw7XG5cbiAgICAgICAgb3V0ZXIuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgICAgICBvdXRlci5zdHlsZS53aWR0aCA9ICcxMDBweCc7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQob3V0ZXIpO1xuXG4gICAgICAgIHdpZHRoTm9TY3JvbGwgPSBvdXRlci5vZmZzZXRXaWR0aDtcblxuICAgICAgICAvLyBGb3JjZSBzY3JvbGxiYXJzXG4gICAgICAgIG91dGVyLnN0eWxlLm92ZXJmbG93ID0gJ3Njcm9sbCc7XG5cbiAgICAgICAgLy8gQWRkIGlubmVyIGRpdlxuICAgICAgICBpbm5lci5zdHlsZS53aWR0aCA9ICcxMDAlJztcbiAgICAgICAgb3V0ZXIuYXBwZW5kQ2hpbGQoaW5uZXIpO1xuXG4gICAgICAgIHdpZHRoV2l0aFNjcm9sbCA9IGlubmVyLm9mZnNldFdpZHRoO1xuXG4gICAgICAgIC8vIFJlbW92ZSBkaXZzXG4gICAgICAgIG91dGVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQob3V0ZXIpO1xuXG4gICAgICAgIHJldHVybiB3aWR0aE5vU2Nyb2xsIC0gd2lkdGhXaXRoU2Nyb2xsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIExvY2tzIHRoZSBzY3JlZW5cbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGxvY2tTY3JlZW4oKSB7XG4gICAgICAgIGlmIChJU19JT1MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciAkaHRtbCA9ICQoJ2h0bWwnKTtcbiAgICAgICAgdmFyIGxvY2tlZENsYXNzID0gbmFtZXNwYWNpZnkoJ2lzLWxvY2tlZCcpO1xuICAgICAgICB2YXIgcGFkZGluZ1JpZ2h0O1xuICAgICAgICB2YXIgJGJvZHk7XG5cbiAgICAgICAgaWYgKCEkaHRtbC5oYXNDbGFzcyhsb2NrZWRDbGFzcykpIHtcbiAgICAgICAgICAgICRib2R5ID0gJChkb2N1bWVudC5ib2R5KTtcblxuICAgICAgICAgICAgLy8gWmVwdG8gZG9lcyBub3Qgc3VwcG9ydCAnLT0nLCAnKz0nIGluIHRoZSBgY3NzYCBtZXRob2RcbiAgICAgICAgICAgIHBhZGRpbmdSaWdodCA9IHBhcnNlSW50KCRib2R5LmNzcygncGFkZGluZy1yaWdodCcpLCAxMCkgKyBnZXRTY3JvbGxiYXJXaWR0aCgpO1xuXG4gICAgICAgICAgICAkYm9keS5jc3MoJ3BhZGRpbmctcmlnaHQnLCBwYWRkaW5nUmlnaHQgKyAncHgnKTtcbiAgICAgICAgICAgICRodG1sLmFkZENsYXNzKGxvY2tlZENsYXNzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVubG9ja3MgdGhlIHNjcmVlblxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgZnVuY3Rpb24gdW5sb2NrU2NyZWVuKCkge1xuICAgICAgICBpZiAoSVNfSU9TKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgJGh0bWwgPSAkKCdodG1sJyk7XG4gICAgICAgIHZhciBsb2NrZWRDbGFzcyA9IG5hbWVzcGFjaWZ5KCdpcy1sb2NrZWQnKTtcbiAgICAgICAgdmFyIHBhZGRpbmdSaWdodDtcbiAgICAgICAgdmFyICRib2R5O1xuXG4gICAgICAgIGlmICgkaHRtbC5oYXNDbGFzcyhsb2NrZWRDbGFzcykpIHtcbiAgICAgICAgICAgICRib2R5ID0gJChkb2N1bWVudC5ib2R5KTtcblxuICAgICAgICAgICAgLy8gWmVwdG8gZG9lcyBub3Qgc3VwcG9ydCAnLT0nLCAnKz0nIGluIHRoZSBgY3NzYCBtZXRob2RcbiAgICAgICAgICAgIHBhZGRpbmdSaWdodCA9IHBhcnNlSW50KCRib2R5LmNzcygncGFkZGluZy1yaWdodCcpLCAxMCkgLSBnZXRTY3JvbGxiYXJXaWR0aCgpO1xuXG4gICAgICAgICAgICAkYm9keS5jc3MoJ3BhZGRpbmctcmlnaHQnLCBwYWRkaW5nUmlnaHQgKyAncHgnKTtcbiAgICAgICAgICAgICRodG1sLnJlbW92ZUNsYXNzKGxvY2tlZENsYXNzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgYSBzdGF0ZSBmb3IgYW4gaW5zdGFuY2VcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBwYXJhbSB7UmVtb2RhbH0gaW5zdGFuY2VcbiAgICAgKiBAcGFyYW0ge1NUQVRFU30gc3RhdGVcbiAgICAgKiBAcGFyYW0ge0Jvb2xlYW59IGlzU2lsZW50IElmIHRydWUsIFJlbW9kYWwgZG9lcyBub3QgdHJpZ2dlciBldmVudHNcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gUmVhc29uIG9mIGEgc3RhdGUgY2hhbmdlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNldFN0YXRlKGluc3RhbmNlLCBzdGF0ZSwgaXNTaWxlbnQsIHJlYXNvbikge1xuXG4gICAgICAgIHZhciBuZXdTdGF0ZSA9IG5hbWVzcGFjaWZ5KCdpcycsIHN0YXRlKTtcbiAgICAgICAgdmFyIGFsbFN0YXRlcyA9IFtuYW1lc3BhY2lmeSgnaXMnLCBTVEFURVMuQ0xPU0lORyksXG4gICAgICAgICAgICBuYW1lc3BhY2lmeSgnaXMnLCBTVEFURVMuT1BFTklORyksXG4gICAgICAgICAgICBuYW1lc3BhY2lmeSgnaXMnLCBTVEFURVMuQ0xPU0VEKSxcbiAgICAgICAgICAgIG5hbWVzcGFjaWZ5KCdpcycsIFNUQVRFUy5PUEVORUQpXS5qb2luKCcgJyk7XG5cbiAgICAgICAgaW5zdGFuY2UuJGJnXG4gICAgICAgICAgICAucmVtb3ZlQ2xhc3MoYWxsU3RhdGVzKVxuICAgICAgICAgICAgLmFkZENsYXNzKG5ld1N0YXRlKTtcblxuICAgICAgICBpbnN0YW5jZS4kb3ZlcmxheVxuICAgICAgICAgICAgLnJlbW92ZUNsYXNzKGFsbFN0YXRlcylcbiAgICAgICAgICAgIC5hZGRDbGFzcyhuZXdTdGF0ZSk7XG5cbiAgICAgICAgaW5zdGFuY2UuJHdyYXBwZXJcbiAgICAgICAgICAgIC5yZW1vdmVDbGFzcyhhbGxTdGF0ZXMpXG4gICAgICAgICAgICAuYWRkQ2xhc3MobmV3U3RhdGUpO1xuXG4gICAgICAgIGluc3RhbmNlLiRtb2RhbFxuICAgICAgICAgICAgLnJlbW92ZUNsYXNzKGFsbFN0YXRlcylcbiAgICAgICAgICAgIC5hZGRDbGFzcyhuZXdTdGF0ZSk7XG5cbiAgICAgICAgaW5zdGFuY2Uuc3RhdGUgPSBzdGF0ZTtcbiAgICAgICAgIWlzU2lsZW50ICYmIGluc3RhbmNlLiRtb2RhbC50cmlnZ2VyKHtcbiAgICAgICAgICAgIHR5cGU6IHN0YXRlLFxuICAgICAgICAgICAgcmVhc29uOiByZWFzb25cbiAgICAgICAgfSwgW3sgcmVhc29uOiByZWFzb24gfV0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFN5bmNocm9uaXplcyB3aXRoIHRoZSBhbmltYXRpb25cbiAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBkb0JlZm9yZUFuaW1hdGlvblxuICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGRvQWZ0ZXJBbmltYXRpb25cbiAgICAgKiBAcGFyYW0ge1JlbW9kYWx9IGluc3RhbmNlXG4gICAgICovXG4gICAgZnVuY3Rpb24gc3luY1dpdGhBbmltYXRpb24oZG9CZWZvcmVBbmltYXRpb24sIGRvQWZ0ZXJBbmltYXRpb24sIGluc3RhbmNlKSB7XG4gICAgICAgIHZhciBydW5uaW5nQW5pbWF0aW9uc0NvdW50ID0gMDtcblxuICAgICAgICB2YXIgaGFuZGxlQW5pbWF0aW9uU3RhcnQgPSBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICBpZiAoZS50YXJnZXQgIT09IHRoaXMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJ1bm5pbmdBbmltYXRpb25zQ291bnQrKztcbiAgICAgICAgfTtcblxuICAgICAgICB2YXIgaGFuZGxlQW5pbWF0aW9uRW5kID0gZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgaWYgKGUudGFyZ2V0ICE9PSB0aGlzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoLS1ydW5uaW5nQW5pbWF0aW9uc0NvdW50ID09PSAwKSB7XG5cbiAgICAgICAgICAgICAgICAvLyBSZW1vdmUgZXZlbnQgbGlzdGVuZXJzXG4gICAgICAgICAgICAgICAgJC5lYWNoKFsnJGJnJywgJyRvdmVybGF5JywgJyR3cmFwcGVyJywgJyRtb2RhbCddLCBmdW5jdGlvbihpbmRleCwgZWxlbU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2VbZWxlbU5hbWVdLm9mZihBTklNQVRJT05TVEFSVF9FVkVOVFMgKyAnICcgKyBBTklNQVRJT05FTkRfRVZFTlRTKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGRvQWZ0ZXJBbmltYXRpb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICAkLmVhY2goWyckYmcnLCAnJG92ZXJsYXknLCAnJHdyYXBwZXInLCAnJG1vZGFsJ10sIGZ1bmN0aW9uKGluZGV4LCBlbGVtTmFtZSkge1xuICAgICAgICAgICAgaW5zdGFuY2VbZWxlbU5hbWVdXG4gICAgICAgICAgICAgICAgLm9uKEFOSU1BVElPTlNUQVJUX0VWRU5UUywgaGFuZGxlQW5pbWF0aW9uU3RhcnQpXG4gICAgICAgICAgICAgICAgLm9uKEFOSU1BVElPTkVORF9FVkVOVFMsIGhhbmRsZUFuaW1hdGlvbkVuZCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGRvQmVmb3JlQW5pbWF0aW9uKCk7XG5cbiAgICAgICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGJ5IGEgYnJvd3NlciBvciBpdHMgZHVyYXRpb24gaXMgMFxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBnZXRBbmltYXRpb25EdXJhdGlvbihpbnN0YW5jZS4kYmcpID09PSAwICYmXG4gICAgICAgICAgICBnZXRBbmltYXRpb25EdXJhdGlvbihpbnN0YW5jZS4kb3ZlcmxheSkgPT09IDAgJiZcbiAgICAgICAgICAgIGdldEFuaW1hdGlvbkR1cmF0aW9uKGluc3RhbmNlLiR3cmFwcGVyKSA9PT0gMCAmJlxuICAgICAgICAgICAgZ2V0QW5pbWF0aW9uRHVyYXRpb24oaW5zdGFuY2UuJG1vZGFsKSA9PT0gMFxuICAgICAgICApIHtcblxuICAgICAgICAgICAgLy8gUmVtb3ZlIGV2ZW50IGxpc3RlbmVyc1xuICAgICAgICAgICAgJC5lYWNoKFsnJGJnJywgJyRvdmVybGF5JywgJyR3cmFwcGVyJywgJyRtb2RhbCddLCBmdW5jdGlvbihpbmRleCwgZWxlbU5hbWUpIHtcbiAgICAgICAgICAgICAgICBpbnN0YW5jZVtlbGVtTmFtZV0ub2ZmKEFOSU1BVElPTlNUQVJUX0VWRU5UUyArICcgJyArIEFOSU1BVElPTkVORF9FVkVOVFMpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGRvQWZ0ZXJBbmltYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsb3NlcyBpbW1lZGlhdGVseVxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtSZW1vZGFsfSBpbnN0YW5jZVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGhhbHQoaW5zdGFuY2UpIHtcbiAgICAgICAgaWYgKGluc3RhbmNlLnN0YXRlID09PSBTVEFURVMuQ0xPU0VEKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAkLmVhY2goWyckYmcnLCAnJG92ZXJsYXknLCAnJHdyYXBwZXInLCAnJG1vZGFsJ10sIGZ1bmN0aW9uKGluZGV4LCBlbGVtTmFtZSkge1xuICAgICAgICAgICAgaW5zdGFuY2VbZWxlbU5hbWVdLm9mZihBTklNQVRJT05TVEFSVF9FVkVOVFMgKyAnICcgKyBBTklNQVRJT05FTkRfRVZFTlRTKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmVtb3ZlTW9kYWwoaW5zdGFuY2UpO1xuICAgICAgICBpbnN0YW5jZS4kYmcucmVtb3ZlQ2xhc3MoaW5zdGFuY2Uuc2V0dGluZ3MubW9kaWZpZXIpO1xuICAgICAgICBpbnN0YW5jZS4kb3ZlcmxheS5yZW1vdmVDbGFzcyhpbnN0YW5jZS5zZXR0aW5ncy5tb2RpZmllcikuaGlkZSgpO1xuICAgICAgICBpbnN0YW5jZS4kd3JhcHBlci5oaWRlKCk7XG5cbiAgICAgICAgaWYgKG9wZW5Nb2RhbHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB1bmxvY2tTY3JlZW4oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFN0YXRlKGluc3RhbmNlLCBTVEFURVMuQ0xPU0VELCB0cnVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYXJzZXMgYSBzdHJpbmcgd2l0aCBvcHRpb25zXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0gc3RyXG4gICAgICogQHJldHVybnMge09iamVjdH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBwYXJzZU9wdGlvbnMoc3RyKSB7XG4gICAgICAgIHZhciBvYmogPSB7fTtcbiAgICAgICAgdmFyIGFycjtcbiAgICAgICAgdmFyIGxlbjtcbiAgICAgICAgdmFyIHZhbDtcbiAgICAgICAgdmFyIGk7XG5cbiAgICAgICAgLy8gUmVtb3ZlIHNwYWNlcyBiZWZvcmUgYW5kIGFmdGVyIGRlbGltaXRlcnNcbiAgICAgICAgc3RyID0gc3RyLnJlcGxhY2UoL1xccyo6XFxzKi9nLCAnOicpLnJlcGxhY2UoL1xccyosXFxzKi9nLCAnLCcpO1xuXG4gICAgICAgIC8vIFBhcnNlIGEgc3RyaW5nXG4gICAgICAgIGFyciA9IHN0ci5zcGxpdCgnLCcpO1xuICAgICAgICBmb3IgKGkgPSAwLCBsZW4gPSBhcnIubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICAgIGFycltpXSA9IGFycltpXS5zcGxpdCgnOicpO1xuICAgICAgICAgICAgdmFsID0gYXJyW2ldWzFdO1xuXG4gICAgICAgICAgICAvLyBDb252ZXJ0IGEgc3RyaW5nIHZhbHVlIGlmIGl0IGlzIGxpa2UgYSBib29sZWFuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgfHwgdmFsIGluc3RhbmNlb2YgU3RyaW5nKSB7XG4gICAgICAgICAgICAgICAgdmFsID0gdmFsID09PSAndHJ1ZScgfHwgKHZhbCA9PT0gJ2ZhbHNlJyA/IGZhbHNlIDogdmFsKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gQ29udmVydCBhIHN0cmluZyB2YWx1ZSBpZiBpdCBpcyBsaWtlIGEgbnVtYmVyXG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgfHwgdmFsIGluc3RhbmNlb2YgU3RyaW5nKSB7XG4gICAgICAgICAgICAgICAgdmFsID0gIWlzTmFOKHZhbCkgPyArdmFsIDogdmFsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBvYmpbYXJyW2ldWzBdXSA9IHZhbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2VuZXJhdGVzIGEgc3RyaW5nIHNlcGFyYXRlZCBieSBkYXNoZXMgYW5kIHByZWZpeGVkIHdpdGggTkFNRVNQQUNFXG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAcGFyYW0gey4uLlN0cmluZ31cbiAgICAgKiBAcmV0dXJucyB7U3RyaW5nfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIG5hbWVzcGFjaWZ5KCkge1xuICAgICAgICB2YXIgcmVzdWx0ID0gTkFNRVNQQUNFO1xuXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICByZXN1bHQgKz0gJy0nICsgYXJndW1lbnRzW2ldO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGVzIHRoZSBoYXNoY2hhbmdlIGV2ZW50XG4gICAgICogQHByaXZhdGVcbiAgICAgKiBAbGlzdGVucyBoYXNoY2hhbmdlXG4gICAgICovXG4gICAgZnVuY3Rpb24gaGFuZGxlSGFzaENoYW5nZUV2ZW50KCkge1xuICAgICAgICB2YXIgaWQgPSBsb2NhdGlvbi5oYXNoLnJlcGxhY2UoJyMnLCAnJyk7XG4gICAgICAgIHZhciBpbnN0YW5jZTtcbiAgICAgICAgdmFyICRlbGVtO1xuXG4gICAgICAgIHZhciBjdXJyZW50ID0gY3VycmVudE1vZGFsKCk7XG5cbiAgICAgICAgaWYgKCFpZCkge1xuXG4gICAgICAgICAgICAvLyBDaGVjayBpZiB3ZSBoYXZlIGN1cnJlbnRseSBvcGVuZWQgbW9kYWwgYW5kIGFuaW1hdGlvbiB3YXMgY29tcGxldGVkXG4gICAgICAgICAgICBpZiAoY3VycmVudCAmJiBjdXJyZW50LnN0YXRlID09PSBTVEFURVMuT1BFTkVEICYmIGN1cnJlbnQuc2V0dGluZ3MuaGFzaFRyYWNraW5nKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudC5jbG9zZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgICBpZiAoIWN1cnJlbnQgfHwgY3VycmVudC5pZCAhPT0gaWQpIHtcbiAgICAgICAgICAgICAgICAvLyBDYXRjaCBzeW50YXggZXJyb3IgaWYgeW91ciBoYXNoIGlzIGJhZFxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICRlbGVtID0gJChcbiAgICAgICAgICAgICAgICAgICAgICAgICdbZGF0YS0nICsgUExVR0lOX05BTUUgKyAnLWlkPVwiJyArIGlkICsgJ1wiXSdcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoJGVsZW0gJiYgJGVsZW0ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGluc3RhbmNlID0gJFtQTFVHSU5fTkFNRV0ubG9va3VwWyRlbGVtLmRhdGEoUExVR0lOX05BTUUpXTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoaW5zdGFuY2UgJiYgaW5zdGFuY2Uuc2V0dGluZ3MuaGFzaFRyYWNraW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZS5vcGVuKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGN1cnJlbnRNb2RhbCgpIHtcbiAgICAgICAgcmV0dXJuIG9wZW5Nb2RhbHNbb3Blbk1vZGFscy5sZW5ndGggLSAxXTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZW1vdmVNb2RhbChyZW1vZGFsKSB7XG4gICAgICAgIHZhciBpbmRleCA9IG9wZW5Nb2RhbHMuaW5kZXhPZihyZW1vZGFsKTtcblxuICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICAgICAgb3Blbk1vZGFscy5zbGljZShpbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vZGFsIGNvbnN0cnVjdG9yXG4gICAgICogQGNvbnN0cnVjdG9yXG4gICAgICogQHBhcmFtIHtqUXVlcnl9ICRtb2RhbFxuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gICAgICovXG4gICAgZnVuY3Rpb24gUmVtb2RhbCgkbW9kYWwsIG9wdGlvbnMpIHtcbiAgICAgICAgdmFyICRib2R5ID0gJChkb2N1bWVudC5ib2R5KTtcbiAgICAgICAgdmFyICRhcHBlbmRUbyA9ICRib2R5O1xuICAgICAgICB2YXIgcmVtb2RhbCA9IHRoaXM7XG5cbiAgICAgICAgcmVtb2RhbC5pZCA9ICRtb2RhbC5hdHRyKCdkYXRhLScgKyBQTFVHSU5fTkFNRSArICctaWQnKTtcbiAgICAgICAgcmVtb2RhbC5zZXR0aW5ncyA9ICQuZXh0ZW5kKHt9LCBERUZBVUxUUywgb3B0aW9ucyk7XG4gICAgICAgIHJlbW9kYWwuaW5kZXggPSAkW1BMVUdJTl9OQU1FXS5sb29rdXAucHVzaChyZW1vZGFsKSAtIDE7XG4gICAgICAgIHJlbW9kYWwuc3RhdGUgPSBTVEFURVMuQ0xPU0VEO1xuXG4gICAgICAgIC8vIHJlbW9kYWwuJG92ZXJsYXkgPSAkKCcuJyArIG5hbWVzcGFjaWZ5KCdvdmVybGF5JykpO1xuXG4gICAgICAgIGlmIChyZW1vZGFsLnNldHRpbmdzLmFwcGVuZFRvICE9PSBudWxsICYmIHJlbW9kYWwuc2V0dGluZ3MuYXBwZW5kVG8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAkYXBwZW5kVG8gPSAkKHJlbW9kYWwuc2V0dGluZ3MuYXBwZW5kVG8pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFyZW1vZGFsLiRvdmVybGF5KSB7XG4gICAgICAgICAgICByZW1vZGFsLiRvdmVybGF5ID0gJCgnPGRpdj4nKS5hZGRDbGFzcyhuYW1lc3BhY2lmeSgnb3ZlcmxheScpICsgJyAnICsgbmFtZXNwYWNpZnkoJ2lzJywgU1RBVEVTLkNMT1NFRCkpLmhpZGUoKTtcbiAgICAgICAgICAgICRhcHBlbmRUby5hcHBlbmQocmVtb2RhbC4kb3ZlcmxheSk7XG4gICAgICAgIH1cblxuICAgICAgICByZW1vZGFsLiRiZyA9ICQoJy4nICsgbmFtZXNwYWNpZnkoJ2JnJykpLmFkZENsYXNzKG5hbWVzcGFjaWZ5KCdpcycsIFNUQVRFUy5DTE9TRUQpKTtcblxuICAgICAgICByZW1vZGFsLiRtb2RhbCA9ICRtb2RhbFxuICAgICAgICAgICAgLmFkZENsYXNzKFxuICAgICAgICAgICAgICAgIE5BTUVTUEFDRSArICcgJyArXG4gICAgICAgICAgICAgICAgbmFtZXNwYWNpZnkoJ2lzLWluaXRpYWxpemVkJykgKyAnICcgK1xuICAgICAgICAgICAgICAgIHJlbW9kYWwuc2V0dGluZ3MubW9kaWZpZXIgKyAnICcgK1xuICAgICAgICAgICAgICAgIG5hbWVzcGFjaWZ5KCdpcycsIFNUQVRFUy5DTE9TRUQpKVxuICAgICAgICAgICAgLmF0dHIoJ3RhYmluZGV4JywgJy0xJyk7XG5cbiAgICAgICAgcmVtb2RhbC4kd3JhcHBlciA9ICQoJzxkaXY+JylcbiAgICAgICAgICAgIC5hZGRDbGFzcyhcbiAgICAgICAgICAgICAgICBuYW1lc3BhY2lmeSgnd3JhcHBlcicpICsgJyAnICtcbiAgICAgICAgICAgICAgICByZW1vZGFsLnNldHRpbmdzLm1vZGlmaWVyICsgJyAnICtcbiAgICAgICAgICAgICAgICBuYW1lc3BhY2lmeSgnaXMnLCBTVEFURVMuQ0xPU0VEKSlcbiAgICAgICAgICAgIC5oaWRlKClcbiAgICAgICAgICAgIC5hcHBlbmQocmVtb2RhbC4kbW9kYWwpO1xuICAgICAgICAkYXBwZW5kVG8uYXBwZW5kKHJlbW9kYWwuJHdyYXBwZXIpO1xuXG4gICAgICAgIC8vIEFkZCB0aGUgZXZlbnQgbGlzdGVuZXIgZm9yIHRoZSBjbG9zZSBidXR0b25cbiAgICAgICAgcmVtb2RhbC4kd3JhcHBlci5vbignY2xpY2suJyArIE5BTUVTUEFDRSwgJ1tkYXRhLScgKyBQTFVHSU5fTkFNRSArICctYWN0aW9uPVwiY2xvc2VcIl0nLCBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgICAgIHJlbW9kYWwuY2xvc2UoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gQWRkIHRoZSBldmVudCBsaXN0ZW5lciBmb3IgdGhlIGNhbmNlbCBidXR0b25cbiAgICAgICAgcmVtb2RhbC4kd3JhcHBlci5vbignY2xpY2suJyArIE5BTUVTUEFDRSwgJ1tkYXRhLScgKyBQTFVHSU5fTkFNRSArICctYWN0aW9uPVwiY2FuY2VsXCJdJywgZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgICByZW1vZGFsLiRtb2RhbC50cmlnZ2VyKFNUQVRFX0NIQU5HRV9SRUFTT05TLkNBTkNFTExBVElPTik7XG5cbiAgICAgICAgICAgIGlmIChyZW1vZGFsLnNldHRpbmdzLmNsb3NlT25DYW5jZWwpIHtcbiAgICAgICAgICAgICAgICByZW1vZGFsLmNsb3NlKFNUQVRFX0NIQU5HRV9SRUFTT05TLkNBTkNFTExBVElPTik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEFkZCB0aGUgZXZlbnQgbGlzdGVuZXIgZm9yIHRoZSBjb25maXJtIGJ1dHRvblxuICAgICAgICByZW1vZGFsLiR3cmFwcGVyLm9uKCdjbGljay4nICsgTkFNRVNQQUNFLCAnW2RhdGEtJyArIFBMVUdJTl9OQU1FICsgJy1hY3Rpb249XCJjb25maXJtXCJdJywgZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgICByZW1vZGFsLiRtb2RhbC50cmlnZ2VyKFNUQVRFX0NIQU5HRV9SRUFTT05TLkNPTkZJUk1BVElPTik7XG5cbiAgICAgICAgICAgIGlmIChyZW1vZGFsLnNldHRpbmdzLmNsb3NlT25Db25maXJtKSB7XG4gICAgICAgICAgICAgICAgcmVtb2RhbC5jbG9zZShTVEFURV9DSEFOR0VfUkVBU09OUy5DT05GSVJNQVRJT04pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBBZGQgdGhlIGV2ZW50IGxpc3RlbmVyIGZvciB0aGUgb3ZlcmxheVxuICAgICAgICByZW1vZGFsLiR3cmFwcGVyLm9uKCdjbGljay4nICsgTkFNRVNQQUNFLCBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICB2YXIgJHRhcmdldCA9ICQoZS50YXJnZXQpO1xuICAgICAgICAgICAgdmFyIGlzV3JhcHBlciA9ICR0YXJnZXQuaGFzQ2xhc3MobmFtZXNwYWNpZnkoJ3dyYXBwZXInKSk7XG4gICAgICAgICAgICB2YXIgaXNXaXRoaW4gPSAkdGFyZ2V0LmNsb3Nlc3QoJy4nICsgbmFtZXNwYWNpZnkoJ2lzJywgU1RBVEVTLk9QRU5FRCkpLmxlbmd0aDtcblxuICAgICAgICAgICAgaWYgKCFpc1dyYXBwZXIgJiYgaXNXaXRoaW4pIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChyZW1vZGFsLnNldHRpbmdzLmNsb3NlT25PdXRzaWRlQ2xpY2spIHtcbiAgICAgICAgICAgICAgICByZW1vZGFsLmNsb3NlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9wZW5zIGEgbW9kYWwgd2luZG93XG4gICAgICogQHB1YmxpY1xuICAgICAqL1xuICAgIFJlbW9kYWwucHJvdG90eXBlLm9wZW4gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHJlbW9kYWwgPSB0aGlzO1xuICAgICAgICB2YXIgY3VycmVudDtcbiAgICAgICAgdmFyIG1vZGFsQ291bnQ7XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGFuaW1hdGlvbiB3YXMgY29tcGxldGVkXG4gICAgICAgIGlmIChyZW1vZGFsLnN0YXRlID09PSBTVEFURVMuT1BFTklORyB8fCByZW1vZGFsLnN0YXRlID09PSBTVEFURVMuQ0xPU0lORykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gaWQgPSByZW1vZGFsLiRtb2RhbC5hdHRyKCdkYXRhLScgKyBQTFVHSU5fTkFNRSArICctaWQnKTtcblxuICAgICAgICBpZiAocmVtb2RhbC5pZCAmJiByZW1vZGFsLnNldHRpbmdzLmhhc2hUcmFja2luZykge1xuICAgICAgICAgICAgc2Nyb2xsVG9wID0gJCh3aW5kb3cpLnNjcm9sbFRvcCgpO1xuICAgICAgICAgICAgbG9jYXRpb24uaGFzaCA9IHJlbW9kYWwuaWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXJlbW9kYWwuc2V0dGluZ3Muc3RhY2spIHtcbiAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50TW9kYWwoKTtcbiAgICAgICAgICAgIGlmIChjdXJyZW50ICYmIGN1cnJlbnQgIT09IHJlbW9kYWwpIHtcbiAgICAgICAgICAgICAgICBoYWx0KGN1cnJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbW9kYWxDb3VudCA9IG9wZW5Nb2RhbHMucHVzaChyZW1vZGFsKTtcbiAgICAgICAgcmVtb2RhbC4kb3ZlcmxheS5jc3MoJ3otaW5kZXgnLCBmdW5jdGlvbihfLCB2YWx1ZSkgeyByZXR1cm4gcGFyc2VJbnQodmFsdWUsIDEwKSArIG1vZGFsQ291bnQ7IH0pO1xuICAgICAgICByZW1vZGFsLiR3cmFwcGVyLmNzcygnei1pbmRleCcsIGZ1bmN0aW9uKF8sIHZhbHVlKSB7IHJldHVybiBwYXJzZUludCh2YWx1ZSwgMTApICsgbW9kYWxDb3VudDsgfSk7XG5cbiAgICAgICAgbG9ja1NjcmVlbigpO1xuICAgICAgICByZW1vZGFsLiRiZy5hZGRDbGFzcyhyZW1vZGFsLnNldHRpbmdzLm1vZGlmaWVyKTtcbiAgICAgICAgcmVtb2RhbC4kb3ZlcmxheS5hZGRDbGFzcyhyZW1vZGFsLnNldHRpbmdzLm1vZGlmaWVyKS5zaG93KCk7XG4gICAgICAgIHJlbW9kYWwuJHdyYXBwZXIuc2hvdygpLnNjcm9sbFRvcCgwKTtcbiAgICAgICAgcmVtb2RhbC4kbW9kYWwuZm9jdXMoKTtcblxuICAgICAgICBzeW5jV2l0aEFuaW1hdGlvbihcbiAgICAgICAgICAgIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHNldFN0YXRlKHJlbW9kYWwsIFNUQVRFUy5PUEVOSU5HKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHNldFN0YXRlKHJlbW9kYWwsIFNUQVRFUy5PUEVORUQpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgcmVtb2RhbCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENsb3NlcyBhIG1vZGFsIHdpbmRvd1xuICAgICAqIEBwdWJsaWNcbiAgICAgKiBAcGFyYW0ge1N0cmluZ30gcmVhc29uXG4gICAgICovXG4gICAgUmVtb2RhbC5wcm90b3R5cGUuY2xvc2UgPSBmdW5jdGlvbihyZWFzb24pIHtcbiAgICAgICAgdmFyIHJlbW9kYWwgPSB0aGlzO1xuICAgICAgICB2YXIgY3VycmVudDtcblxuICAgICAgICAvLyBDaGVjayBpZiB0aGUgYW5pbWF0aW9uIHdhcyBjb21wbGV0ZWRcbiAgICAgICAgaWYgKHJlbW9kYWwuc3RhdGUgPT09IFNUQVRFUy5PUEVOSU5HIHx8IHJlbW9kYWwuc3RhdGUgPT09IFNUQVRFUy5DTE9TSU5HIHx8IHJlbW9kYWwuc3RhdGUgPT09IFNUQVRFUy5DTE9TRUQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlbW92ZU1vZGFsKHJlbW9kYWwpO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHJlbW9kYWwuc2V0dGluZ3MuaGFzaFRyYWNraW5nICYmXG4gICAgICAgICAgICByZW1vZGFsLmlkID09PSBsb2NhdGlvbi5oYXNoLnN1YnN0cigxKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50TW9kYWwoKTtcbiAgICAgICAgICAgIGlmIChjdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgbG9jYXRpb24uaGFzaCA9IGN1cnJlbnQuaWQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxvY2F0aW9uLmhhc2ggPSAnJztcbiAgICAgICAgICAgICAgICAkKHdpbmRvdykuc2Nyb2xsVG9wKHNjcm9sbFRvcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzeW5jV2l0aEFuaW1hdGlvbihcbiAgICAgICAgICAgIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHNldFN0YXRlKHJlbW9kYWwsIFNUQVRFUy5DTE9TSU5HLCBmYWxzZSwgcmVhc29uKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJlbW9kYWwuJGJnLnJlbW92ZUNsYXNzKHJlbW9kYWwuc2V0dGluZ3MubW9kaWZpZXIpO1xuICAgICAgICAgICAgICAgIHJlbW9kYWwuJG92ZXJsYXkucmVtb3ZlQ2xhc3MocmVtb2RhbC5zZXR0aW5ncy5tb2RpZmllcikuaGlkZSgpO1xuICAgICAgICAgICAgICAgIHJlbW9kYWwuJHdyYXBwZXIuaGlkZSgpO1xuXG4gICAgICAgICAgICAgICAgaWYgKG9wZW5Nb2RhbHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHVubG9ja1NjcmVlbigpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHNldFN0YXRlKHJlbW9kYWwsIFNUQVRFUy5DTE9TRUQsIGZhbHNlLCByZWFzb24pO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgcmVtb2RhbCk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSBjdXJyZW50IHN0YXRlIG9mIGEgbW9kYWxcbiAgICAgKiBAcHVibGljXG4gICAgICogQHJldHVybnMge1NUQVRFU31cbiAgICAgKi9cbiAgICBSZW1vZGFsLnByb3RvdHlwZS5nZXRTdGF0ZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogRGVzdHJveXMgYSBtb2RhbFxuICAgICAqIEBwdWJsaWNcbiAgICAgKi9cbiAgICBSZW1vZGFsLnByb3RvdHlwZS5kZXN0cm95ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciBsb29rdXAgPSAkW1BMVUdJTl9OQU1FXS5sb29rdXA7XG4gICAgICAgIHZhciBpbnN0YW5jZUNvdW50O1xuXG4gICAgICAgIGhhbHQodGhpcyk7XG4gICAgICAgIHRoaXMuJHdyYXBwZXIucmVtb3ZlKCk7XG5cbiAgICAgICAgZGVsZXRlIGxvb2t1cFt0aGlzLmluZGV4XTtcbiAgICAgICAgaW5zdGFuY2VDb3VudCA9ICQuZ3JlcChsb29rdXAsIGZ1bmN0aW9uKGluc3RhbmNlKSB7XG4gICAgICAgICAgICByZXR1cm4gISFpbnN0YW5jZTtcbiAgICAgICAgfSkubGVuZ3RoO1xuXG4gICAgICAgIGlmIChpbnN0YW5jZUNvdW50ID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLiRvdmVybGF5LnJlbW92ZSgpO1xuICAgICAgICAgICAgdGhpcy4kYmcucmVtb3ZlQ2xhc3MoXG4gICAgICAgICAgICAgICAgbmFtZXNwYWNpZnkoJ2lzJywgU1RBVEVTLkNMT1NJTkcpICsgJyAnICtcbiAgICAgICAgICAgICAgICBuYW1lc3BhY2lmeSgnaXMnLCBTVEFURVMuT1BFTklORykgKyAnICcgK1xuICAgICAgICAgICAgICAgIG5hbWVzcGFjaWZ5KCdpcycsIFNUQVRFUy5DTE9TRUQpICsgJyAnICtcbiAgICAgICAgICAgICAgICBuYW1lc3BhY2lmeSgnaXMnLCBTVEFURVMuT1BFTkVEKSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogU3BlY2lhbCBwbHVnaW4gb2JqZWN0IGZvciBpbnN0YW5jZXNcbiAgICAgKiBAcHVibGljXG4gICAgICogQHR5cGUge09iamVjdH1cbiAgICAgKi9cbiAgICAkW1BMVUdJTl9OQU1FXSA9IHtcbiAgICAgICAgbG9va3VwOiBbXVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBQbHVnaW4gY29uc3RydWN0b3JcbiAgICAgKiBAY29uc3RydWN0b3JcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICAgICAqIEByZXR1cm5zIHtKUXVlcnl9XG4gICAgICovXG4gICAgJC5mbltQTFVHSU5fTkFNRV0gPSBmdW5jdGlvbihvcHRzKSB7XG4gICAgICAgIHZhciBpbnN0YW5jZTtcbiAgICAgICAgdmFyICRlbGVtO1xuXG4gICAgICAgIHRoaXMuZWFjaChmdW5jdGlvbihpbmRleCwgZWxlbSkge1xuICAgICAgICAgICAgJGVsZW0gPSAkKGVsZW0pO1xuXG4gICAgICAgICAgICBpZiAoJGVsZW0uZGF0YShQTFVHSU5fTkFNRSkgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGluc3RhbmNlID0gbmV3IFJlbW9kYWwoJGVsZW0sIG9wdHMpO1xuICAgICAgICAgICAgICAgICRlbGVtLmRhdGEoUExVR0lOX05BTUUsIGluc3RhbmNlLmluZGV4KTtcblxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2Uuc2V0dGluZ3MuaGFzaFRyYWNraW5nICYmXG4gICAgICAgICAgICAgICAgICAgIGluc3RhbmNlLmlkID09PSBsb2NhdGlvbi5oYXNoLnN1YnN0cigxKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZS5vcGVuKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpbnN0YW5jZSA9ICRbUExVR0lOX05BTUVdLmxvb2t1cFskZWxlbS5kYXRhKFBMVUdJTl9OQU1FKV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBpbnN0YW5jZTtcbiAgICB9O1xuXG4gICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7XG5cbiAgICAgICAgLy8gZGF0YS1yZW1vZGFsLXRhcmdldCBvcGVucyBhIG1vZGFsIHdpbmRvdyB3aXRoIHRoZSBzcGVjaWFsIElkXG4gICAgICAgICQoZG9jdW1lbnQpLm9uKCdjbGljaycsICdbZGF0YS0nICsgUExVR0lOX05BTUUgKyAnLXRhcmdldF0nLCBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgICAgIHZhciBlbGVtID0gZS5jdXJyZW50VGFyZ2V0O1xuICAgICAgICAgICAgdmFyIGlkID0gZWxlbS5nZXRBdHRyaWJ1dGUoJ2RhdGEtJyArIFBMVUdJTl9OQU1FICsgJy10YXJnZXQnKTtcbiAgICAgICAgICAgIHZhciAkdGFyZ2V0ID0gJCgnW2RhdGEtJyArIFBMVUdJTl9OQU1FICsgJy1pZD1cIicgKyBpZCArICdcIl0nKTtcblxuICAgICAgICAgICAgJFtQTFVHSU5fTkFNRV0ubG9va3VwWyR0YXJnZXQuZGF0YShQTFVHSU5fTkFNRSldLm9wZW4oKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gQXV0byBpbml0aWFsaXphdGlvbiBvZiBtb2RhbCB3aW5kb3dzXG4gICAgICAgIC8vIFRoZXkgc2hvdWxkIGhhdmUgdGhlICdyZW1vZGFsJyBjbGFzcyBhdHRyaWJ1dGVcbiAgICAgICAgLy8gQWxzbyB5b3UgY2FuIHdyaXRlIHRoZSBgZGF0YS1yZW1vZGFsLW9wdGlvbnNgIGF0dHJpYnV0ZSB0byBwYXNzIHBhcmFtcyBpbnRvIHRoZSBtb2RhbFxuICAgICAgICAkKGRvY3VtZW50KS5maW5kKCcuJyArIE5BTUVTUEFDRSkuZWFjaChmdW5jdGlvbihpLCBjb250YWluZXIpIHtcbiAgICAgICAgICAgIHZhciAkY29udGFpbmVyID0gJChjb250YWluZXIpO1xuICAgICAgICAgICAgdmFyIG9wdGlvbnMgPSAkY29udGFpbmVyLmRhdGEoUExVR0lOX05BTUUgKyAnLW9wdGlvbnMnKTtcblxuICAgICAgICAgICAgaWYgKCFvcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgb3B0aW9ucyA9IHt9O1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ3N0cmluZycgfHwgb3B0aW9ucyBpbnN0YW5jZW9mIFN0cmluZykge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMgPSBwYXJzZU9wdGlvbnMob3B0aW9ucyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICRjb250YWluZXJbUExVR0lOX05BTUVdKG9wdGlvbnMpO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBIYW5kbGVzIHRoZSBrZXlkb3duIGV2ZW50XG4gICAgICAgICQoZG9jdW1lbnQpLm9uKCdrZXlkb3duLicgKyBOQU1FU1BBQ0UsIGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgIHZhciBjdXJyZW50ID0gY3VycmVudE1vZGFsKCk7XG5cbiAgICAgICAgICAgIGlmIChjdXJyZW50ICYmIGN1cnJlbnQuc2V0dGluZ3MuY2xvc2VPbkVzY2FwZSAmJiBjdXJyZW50LnN0YXRlID09PSBTVEFURVMuT1BFTkVEICYmIGUua2V5Q29kZSA9PT0gMjcpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50LmNsb3NlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEhhbmRsZXMgdGhlIGhhc2hjaGFuZ2UgZXZlbnRcbiAgICAgICAgJCh3aW5kb3cpLm9uKCdoYXNoY2hhbmdlLicgKyBOQU1FU1BBQ0UsIGhhbmRsZUhhc2hDaGFuZ2VFdmVudCk7XG4gICAgfSk7XG59KTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/utils/remodal.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/utils/request.js":
|
|
/*!******************************!*\
|
|
!*** ./app/utils/request.js ***!
|
|
\******************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _response__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./response */ \"./app/utils/response.js\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_1__);\n\n\nvar raw;\n\nvar request = function request(url) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var callback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {\n return true;\n };\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n if (options.method && options.method === 'post') {\n var data = new FormData();\n options.body = Object.assign({\n 'admin-nonce': grav_config__WEBPACK_IMPORTED_MODULE_1__.config.admin_nonce\n }, options.body || {});\n Object.keys(options.body).map(function (key) {\n return data.append(key, options.body[key]);\n });\n options.body = data;\n }\n\n options = Object.assign({\n credentials: 'same-origin',\n headers: {\n 'Accept': 'application/json'\n }\n }, options);\n return fetch(url, options).then(function (response) {\n raw = response;\n return response;\n }).then(_response__WEBPACK_IMPORTED_MODULE_0__.parseStatus).then(_response__WEBPACK_IMPORTED_MODULE_0__.parseJSON).then(_response__WEBPACK_IMPORTED_MODULE_0__.userFeedback).then(function (response) {\n return callback(response, raw);\n })[\"catch\"](_response__WEBPACK_IMPORTED_MODULE_0__.userFeedbackError);\n};\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (request);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL3JlcXVlc3QuanM/MTc2YSJdLCJuYW1lcyI6WyJyYXciLCJyZXF1ZXN0IiwidXJsIiwib3B0aW9ucyIsImNhbGxiYWNrIiwibWV0aG9kIiwiZGF0YSIsIkZvcm1EYXRhIiwiYm9keSIsIk9iamVjdCIsImFzc2lnbiIsImNvbmZpZyIsImFkbWluX25vbmNlIiwia2V5cyIsIm1hcCIsImtleSIsImFwcGVuZCIsImNyZWRlbnRpYWxzIiwiaGVhZGVycyIsImZldGNoIiwidGhlbiIsInJlc3BvbnNlIiwicGFyc2VTdGF0dXMiLCJwYXJzZUpTT04iLCJ1c2VyRmVlZGJhY2siLCJ1c2VyRmVlZGJhY2tFcnJvciJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0FBQ0E7QUFFQSxJQUFJQSxHQUFKOztBQUNBLElBQUlDLE9BQU8sR0FBRyxTQUFWQSxPQUFVLENBQVNDLEdBQVQsRUFBbUQ7QUFBQSxNQUFyQ0MsT0FBcUMsdUVBQTNCLEVBQTJCO0FBQUEsTUFBdkJDLFFBQXVCLHVFQUFaO0FBQUEsV0FBTSxJQUFOO0FBQUEsR0FBWTs7QUFDN0QsTUFBSSxPQUFPRCxPQUFQLEtBQW1CLFVBQXZCLEVBQW1DO0FBQy9CQyxZQUFRLEdBQUdELE9BQVg7QUFDQUEsV0FBTyxHQUFHLEVBQVY7QUFDSDs7QUFFRCxNQUFJQSxPQUFPLENBQUNFLE1BQVIsSUFBa0JGLE9BQU8sQ0FBQ0UsTUFBUixLQUFtQixNQUF6QyxFQUFpRDtBQUM3QyxRQUFJQyxJQUFJLEdBQUcsSUFBSUMsUUFBSixFQUFYO0FBRUFKLFdBQU8sQ0FBQ0ssSUFBUixHQUFlQyxNQUFNLENBQUNDLE1BQVAsQ0FBYztBQUFFLHFCQUFlQywyREFBa0JDO0FBQW5DLEtBQWQsRUFBcURULE9BQU8sQ0FBQ0ssSUFBUixJQUFnQixFQUFyRSxDQUFmO0FBQ0FDLFVBQU0sQ0FBQ0ksSUFBUCxDQUFZVixPQUFPLENBQUNLLElBQXBCLEVBQTBCTSxHQUExQixDQUE4QixVQUFDQyxHQUFEO0FBQUEsYUFBU1QsSUFBSSxDQUFDVSxNQUFMLENBQVlELEdBQVosRUFBaUJaLE9BQU8sQ0FBQ0ssSUFBUixDQUFhTyxHQUFiLENBQWpCLENBQVQ7QUFBQSxLQUE5QjtBQUNBWixXQUFPLENBQUNLLElBQVIsR0FBZUYsSUFBZjtBQUNIOztBQUVESCxTQUFPLEdBQUdNLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjO0FBQ3BCTyxlQUFXLEVBQUUsYUFETztBQUVwQkMsV0FBTyxFQUFFO0FBQ0wsZ0JBQVU7QUFETDtBQUZXLEdBQWQsRUFLUGYsT0FMTyxDQUFWO0FBT0EsU0FBT2dCLEtBQUssQ0FBQ2pCLEdBQUQsRUFBTUMsT0FBTixDQUFMLENBQ0ZpQixJQURFLENBQ0csVUFBQ0MsUUFBRCxFQUFjO0FBQ2hCckIsT0FBRyxHQUFHcUIsUUFBTjtBQUNBLFdBQU9BLFFBQVA7QUFDSCxHQUpFLEVBS0ZELElBTEUsQ0FLR0Usa0RBTEgsRUFNRkYsSUFORSxDQU1HRyxnREFOSCxFQU9GSCxJQVBFLENBT0dJLG1EQVBILEVBUUZKLElBUkUsQ0FRRyxVQUFDQyxRQUFEO0FBQUEsV0FBY2pCLFFBQVEsQ0FBQ2lCLFFBQUQsRUFBV3JCLEdBQVgsQ0FBdEI7QUFBQSxHQVJILFdBU0l5Qix3REFUSixDQUFQO0FBVUgsQ0EvQkQ7O0FBaUNBLGlFQUFleEIsT0FBZiIsImZpbGUiOiIuL2FwcC91dGlscy9yZXF1ZXN0LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGFyc2VTdGF0dXMsIHBhcnNlSlNPTiwgdXNlckZlZWRiYWNrLCB1c2VyRmVlZGJhY2tFcnJvciB9IGZyb20gJy4vcmVzcG9uc2UnO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAnZ3Jhdi1jb25maWcnO1xuXG5sZXQgcmF3O1xubGV0IHJlcXVlc3QgPSBmdW5jdGlvbih1cmwsIG9wdGlvbnMgPSB7fSwgY2FsbGJhY2sgPSAoKSA9PiB0cnVlKSB7XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGNhbGxiYWNrID0gb3B0aW9ucztcbiAgICAgICAgb3B0aW9ucyA9IHt9O1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLm1ldGhvZCAmJiBvcHRpb25zLm1ldGhvZCA9PT0gJ3Bvc3QnKSB7XG4gICAgICAgIGxldCBkYXRhID0gbmV3IEZvcm1EYXRhKCk7XG5cbiAgICAgICAgb3B0aW9ucy5ib2R5ID0gT2JqZWN0LmFzc2lnbih7ICdhZG1pbi1ub25jZSc6IGNvbmZpZy5hZG1pbl9ub25jZSB9LCBvcHRpb25zLmJvZHkgfHwge30pO1xuICAgICAgICBPYmplY3Qua2V5cyhvcHRpb25zLmJvZHkpLm1hcCgoa2V5KSA9PiBkYXRhLmFwcGVuZChrZXksIG9wdGlvbnMuYm9keVtrZXldKSk7XG4gICAgICAgIG9wdGlvbnMuYm9keSA9IGRhdGE7XG4gICAgfVxuXG4gICAgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe1xuICAgICAgICBjcmVkZW50aWFsczogJ3NhbWUtb3JpZ2luJyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgJ0FjY2VwdCc6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICB9XG4gICAgfSwgb3B0aW9ucyk7XG5cbiAgICByZXR1cm4gZmV0Y2godXJsLCBvcHRpb25zKVxuICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIHJhdyA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICB9KVxuICAgICAgICAudGhlbihwYXJzZVN0YXR1cylcbiAgICAgICAgLnRoZW4ocGFyc2VKU09OKVxuICAgICAgICAudGhlbih1c2VyRmVlZGJhY2spXG4gICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4gY2FsbGJhY2socmVzcG9uc2UsIHJhdykpXG4gICAgICAgIC5jYXRjaCh1c2VyRmVlZGJhY2tFcnJvcik7XG59O1xuXG5leHBvcnQgZGVmYXVsdCByZXF1ZXN0O1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/utils/request.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/utils/response.js":
|
|
/*!*******************************!*\
|
|
!*** ./app/utils/response.js ***!
|
|
\*******************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"parseStatus\": () => (/* binding */ parseStatus),\n/* harmony export */ \"parseJSON\": () => (/* binding */ parseJSON),\n/* harmony export */ \"userFeedback\": () => (/* binding */ userFeedback),\n/* harmony export */ \"userFeedbackError\": () => (/* binding */ userFeedbackError)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _toastr__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toastr */ \"./app/utils/toastr.js\");\n/* harmony import */ var _offline__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./offline */ \"./app/utils/offline.js\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var mout_string_trim__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! mout/string/trim */ \"./node_modules/mout/string/trim.js\");\n/* harmony import */ var mout_string_trim__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(mout_string_trim__WEBPACK_IMPORTED_MODULE_4__);\n\n\n\n\n\nvar UNLOADING = false;\n\nvar error = function error(response) {\n var error = new Error(response.statusText || response || '');\n error.response = response;\n return error;\n};\n\nfunction parseStatus(response) {\n return response;\n /* Whoops can handle JSON responses so we don't need this for now.\n if (response.status >= 200 && response.status < 300) {\n return response;\n } else {\n throw error(response);\n }\n */\n}\nfunction parseJSON(response) {\n return response.text().then(function (text) {\n var parsed = text;\n\n try {\n parsed = JSON.parse(text);\n } catch (error) {\n var content = document.createElement('div');\n content.innerHTML = text;\n var the_error = new Error();\n the_error.stack = mout_string_trim__WEBPACK_IMPORTED_MODULE_4___default()(content.innerText);\n throw the_error;\n }\n\n return parsed;\n });\n}\nfunction userFeedback(response) {\n if (UNLOADING) {\n return true;\n }\n\n var status = response.status || (response.error ? 'error' : '');\n var message = response.message || (response.error ? response.error.message : null);\n var settings = response.toastr || null;\n var backup;\n\n switch (status) {\n case 'unauthenticated':\n document.location.href = grav_config__WEBPACK_IMPORTED_MODULE_3__.config.base_url_relative;\n throw error('Logged out');\n\n case 'unauthorized':\n status = 'error';\n message = message || 'Unauthorized.';\n break;\n\n case 'error':\n status = 'error';\n message = message || 'Unknown error.';\n break;\n\n case 'success':\n status = 'success';\n message = message || '';\n break;\n\n default:\n status = 'error';\n message = message || 'Invalid AJAX response.';\n break;\n }\n\n if (settings) {\n backup = Object.assign({}, _toastr__WEBPACK_IMPORTED_MODULE_1__.default.options);\n Object.keys(settings).forEach(function (key) {\n _toastr__WEBPACK_IMPORTED_MODULE_1__.default.options[key] = settings[key];\n });\n }\n\n if (message && (_offline__WEBPACK_IMPORTED_MODULE_2__.default || !_offline__WEBPACK_IMPORTED_MODULE_2__.default && status !== 'error')) {\n _toastr__WEBPACK_IMPORTED_MODULE_1__.default[status === 'success' ? 'success' : 'error'](message);\n }\n\n if (settings) {\n _toastr__WEBPACK_IMPORTED_MODULE_1__.default.options = backup;\n }\n\n return response;\n}\nfunction userFeedbackError(error) {\n if (UNLOADING) {\n return true;\n }\n\n var stack = error.stack ? \"<pre><code>\".concat(error.stack, \"</code></pre>\") : '';\n _toastr__WEBPACK_IMPORTED_MODULE_1__.default.error(\"Fetch Failed: <br /> \".concat(error.message, \" \").concat(stack));\n console.error(\"\".concat(error.message, \" at \").concat(error.stack));\n}\njquery__WEBPACK_IMPORTED_MODULE_0___default()(__webpack_require__.g).on('beforeunload._ajax', function () {\n UNLOADING = true;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL3Jlc3BvbnNlLmpzP2FhYjIiXSwibmFtZXMiOlsiVU5MT0FESU5HIiwiZXJyb3IiLCJyZXNwb25zZSIsIkVycm9yIiwic3RhdHVzVGV4dCIsInBhcnNlU3RhdHVzIiwicGFyc2VKU09OIiwidGV4dCIsInRoZW4iLCJwYXJzZWQiLCJKU09OIiwicGFyc2UiLCJjb250ZW50IiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiaW5uZXJIVE1MIiwidGhlX2Vycm9yIiwic3RhY2siLCJ0cmltIiwiaW5uZXJUZXh0IiwidXNlckZlZWRiYWNrIiwic3RhdHVzIiwibWVzc2FnZSIsInNldHRpbmdzIiwidG9hc3RyIiwiYmFja3VwIiwibG9jYXRpb24iLCJocmVmIiwiY29uZmlnIiwiT2JqZWN0IiwiYXNzaWduIiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJpc09ubGluZSIsInVzZXJGZWVkYmFja0Vycm9yIiwiY29uc29sZSIsIiQiLCJnbG9iYWwiLCJvbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLElBQUlBLFNBQVMsR0FBRyxLQUFoQjs7QUFDQSxJQUFJQyxLQUFLLEdBQUcsZUFBU0MsUUFBVCxFQUFtQjtBQUMzQixNQUFJRCxLQUFLLEdBQUcsSUFBSUUsS0FBSixDQUFVRCxRQUFRLENBQUNFLFVBQVQsSUFBdUJGLFFBQXZCLElBQW1DLEVBQTdDLENBQVo7QUFDQUQsT0FBSyxDQUFDQyxRQUFOLEdBQWlCQSxRQUFqQjtBQUVBLFNBQU9ELEtBQVA7QUFDSCxDQUxEOztBQU9PLFNBQVNJLFdBQVQsQ0FBcUJILFFBQXJCLEVBQStCO0FBQ2xDLFNBQU9BLFFBQVA7QUFFQTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNDO0FBRU0sU0FBU0ksU0FBVCxDQUFtQkosUUFBbkIsRUFBNkI7QUFDaEMsU0FBT0EsUUFBUSxDQUFDSyxJQUFULEdBQWdC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QUFBLGdDQUFxQ3ZCLEtBQUssQ0FBQ3FCLE9BQTNDLGNBQXNETCxLQUF0RDtBQUNBbUIsU0FBTyxDQUFDbkMsS0FBUixXQUFpQkEsS0FBSyxDQUFDcUIsT0FBdkIsaUJBQXFDckIsS0FBSyxDQUFDZ0IsS0FBM0M7QUFDSDtBQUVEb0IsNkNBQUMsQ0FBQ0MscUJBQUQsQ0FBRCxDQUFVQyxFQUFWLENBQWEsb0JBQWIsRUFBbUMsWUFBTTtBQUNyQ3ZDLFdBQVMsR0FBRyxJQUFaO0FBQ0gsQ0FGRCIsImZpbGUiOiIuL2FwcC91dGlscy9yZXNwb25zZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgdG9hc3RyIGZyb20gJy4vdG9hc3RyJztcbmltcG9ydCBpc09ubGluZSBmcm9tICcuL29mZmxpbmUnO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAnZ3Jhdi1jb25maWcnO1xuaW1wb3J0IHRyaW0gZnJvbSAnbW91dC9zdHJpbmcvdHJpbSc7XG5cbmxldCBVTkxPQURJTkcgPSBmYWxzZTtcbmxldCBlcnJvciA9IGZ1bmN0aW9uKHJlc3BvbnNlKSB7XG4gICAgbGV0IGVycm9yID0gbmV3IEVycm9yKHJlc3BvbnNlLnN0YXR1c1RleHQgfHwgcmVzcG9uc2UgfHwgJycpO1xuICAgIGVycm9yLnJlc3BvbnNlID0gcmVzcG9uc2U7XG5cbiAgICByZXR1cm4gZXJyb3I7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VTdGF0dXMocmVzcG9uc2UpIHtcbiAgICByZXR1cm4gcmVzcG9uc2U7XG5cbiAgICAvKiBXaG9vcHMgY2FuIGhhbmRsZSBKU09OIHJlc3BvbnNlcyBzbyB3ZSBkb24ndCBuZWVkIHRoaXMgZm9yIG5vdy5cbiAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA+PSAyMDAgJiYgcmVzcG9uc2Uuc3RhdHVzIDwgMzAwKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBlcnJvcihyZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICAqL1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VKU09OKHJlc3BvbnNlKSB7XG4gICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKS50aGVuKCh0ZXh0KSA9PiB7XG4gICAgICAgIGxldCBwYXJzZWQgPSB0ZXh0O1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcGFyc2VkID0gSlNPTi5wYXJzZSh0ZXh0KTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGxldCBjb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgICBjb250ZW50LmlubmVySFRNTCA9IHRleHQ7XG5cbiAgICAgICAgICAgIGxldCB0aGVfZXJyb3IgPSBuZXcgRXJyb3IoKTtcbiAgICAgICAgICAgIHRoZV9lcnJvci5zdGFjayA9IHRyaW0oY29udGVudC5pbm5lclRleHQpO1xuXG4gICAgICAgICAgICB0aHJvdyB0aGVfZXJyb3I7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcGFyc2VkO1xuICAgIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlckZlZWRiYWNrKHJlc3BvbnNlKSB7XG4gICAgaWYgKFVOTE9BRElORykgeyByZXR1cm4gdHJ1ZTsgfVxuXG4gICAgbGV0IHN0YXR1cyA9IHJlc3BvbnNlLnN0YXR1cyB8fCAocmVzcG9uc2UuZXJyb3IgPyAnZXJyb3InIDogJycpO1xuICAgIGxldCBtZXNzYWdlID0gcmVzcG9uc2UubWVzc2FnZSB8fCAocmVzcG9uc2UuZXJyb3IgPyByZXNwb25zZS5lcnJvci5tZXNzYWdlIDogbnVsbCk7XG4gICAgbGV0IHNldHRpbmdzID0gcmVzcG9uc2UudG9hc3RyIHx8IG51bGw7XG4gICAgbGV0IGJhY2t1cDtcblxuICAgIHN3aXRjaCAoc3RhdHVzKSB7XG4gICAgICAgIGNhc2UgJ3VuYXV0aGVudGljYXRlZCc6XG4gICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gY29uZmlnLmJhc2VfdXJsX3JlbGF0aXZlO1xuICAgICAgICAgICAgdGhyb3cgZXJyb3IoJ0xvZ2dlZCBvdXQnKTtcbiAgICAgICAgY2FzZSAndW5hdXRob3JpemVkJzpcbiAgICAgICAgICAgIHN0YXR1cyA9ICdlcnJvcic7XG4gICAgICAgICAgICBtZXNzYWdlID0gbWVzc2FnZSB8fCAnVW5hdXRob3JpemVkLic7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnZXJyb3InOlxuICAgICAgICAgICAgc3RhdHVzID0gJ2Vycm9yJztcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlIHx8ICdVbmtub3duIGVycm9yLic7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnc3VjY2Vzcyc6XG4gICAgICAgICAgICBzdGF0dXMgPSAnc3VjY2Vzcyc7XG4gICAgICAgICAgICBtZXNzYWdlID0gbWVzc2FnZSB8fCAnJztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgc3RhdHVzID0gJ2Vycm9yJztcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlIHx8ICdJbnZhbGlkIEFKQVggcmVzcG9uc2UuJztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlmIChzZXR0aW5ncykge1xuICAgICAgICBiYWNrdXAgPSBPYmplY3QuYXNzaWduKHt9LCB0b2FzdHIub3B0aW9ucyk7XG4gICAgICAgIE9iamVjdC5rZXlzKHNldHRpbmdzKS5mb3JFYWNoKChrZXkpID0+IHsgdG9hc3RyLm9wdGlvbnNba2V5XSA9IHNldHRpbmdzW2tleV07IH0pO1xuICAgIH1cblxuICAgIGlmIChtZXNzYWdlICYmIChpc09ubGluZSB8fCAoIWlzT25saW5lICYmIHN0YXR1cyAhPT0gJ2Vycm9yJykpKSB7XG4gICAgICAgIHRvYXN0cltzdGF0dXMgPT09ICdzdWNjZXNzJyA/ICdzdWNjZXNzJyA6ICdlcnJvciddKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmIChzZXR0aW5ncykge1xuICAgICAgICB0b2FzdHIub3B0aW9ucyA9IGJhY2t1cDtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzcG9uc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VyRmVlZGJhY2tFcnJvcihlcnJvcikge1xuICAgIGlmIChVTkxPQURJTkcpIHsgcmV0dXJuIHRydWU7IH1cbiAgICBsZXQgc3RhY2sgPSBlcnJvci5zdGFjayA/IGA8cHJlPjxjb2RlPiR7ZXJyb3Iuc3RhY2t9PC9jb2RlPjwvcHJlPmAgOiAnJztcbiAgICB0b2FzdHIuZXJyb3IoYEZldGNoIEZhaWxlZDogPGJyIC8+ICR7ZXJyb3IubWVzc2FnZX0gJHtzdGFja31gKTtcbiAgICBjb25zb2xlLmVycm9yKGAke2Vycm9yLm1lc3NhZ2V9IGF0ICR7ZXJyb3Iuc3RhY2t9YCk7XG59XG5cbiQoZ2xvYmFsKS5vbignYmVmb3JldW5sb2FkLl9hamF4JywgKCkgPT4ge1xuICAgIFVOTE9BRElORyA9IHRydWU7XG59KTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/utils/response.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/utils/selectize-option-click.js":
|
|
/*!*********************************************!*\
|
|
!*** ./app/utils/selectize-option-click.js ***!
|
|
\*********************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var selectize__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! selectize */ \"./node_modules/selectize/dist/js/selectize.js\");\n/* harmony import */ var selectize__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(selectize__WEBPACK_IMPORTED_MODULE_1__);\n\n\nselectize__WEBPACK_IMPORTED_MODULE_1___default().define('option_click', function (options) {\n var self = this;\n var setup = self.setup;\n\n this.setup = function () {\n setup.apply(self, arguments);\n var clicking = false; // Detect click on a .clickable\n\n self.$dropdown_content.on('mousedown click', function (e) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.target);\n\n if (target.hasClass('clickable') || target.closest('.clickable').length) {\n if (e.type === 'mousedown') {\n clicking = true;\n self.isFocused = false; // awful hack to defuse the document mousedown listener\n } else {\n self.isFocused = true;\n setTimeout(function () {\n clicking = false; // wait until blur has been preempted\n });\n }\n } else {\n // cleanup in case user right-clicked or dragged off the element\n clicking = false;\n self.isFocused = true;\n }\n }); // Intercept default handlers\n\n self.$dropdown.off('mousedown click', '[data-selectable]').on('mousedown click', '[data-selectable]', function () {\n if (!clicking) {\n return self.onOptionSelect.apply(self, arguments);\n }\n });\n self.$control_input.off('blur').on('blur', function () {\n if (!clicking) {\n return self.onBlur.apply(self, arguments);\n }\n });\n };\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL3NlbGVjdGl6ZS1vcHRpb24tY2xpY2suanM/NWI2OCJdLCJuYW1lcyI6WyJTZWxlY3RpemUiLCJvcHRpb25zIiwic2VsZiIsInNldHVwIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJjbGlja2luZyIsIiRkcm9wZG93bl9jb250ZW50Iiwib24iLCJlIiwidGFyZ2V0IiwiJCIsImhhc0NsYXNzIiwiY2xvc2VzdCIsImxlbmd0aCIsInR5cGUiLCJpc0ZvY3VzZWQiLCJzZXRUaW1lb3V0IiwiJGRyb3Bkb3duIiwib2ZmIiwib25PcHRpb25TZWxlY3QiLCIkY29udHJvbF9pbnB1dCIsIm9uQmx1ciJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBO0FBRUFBLHVEQUFBLENBQWlCLGNBQWpCLEVBQWlDLFVBQVNDLE9BQVQsRUFBa0I7QUFDL0MsTUFBTUMsSUFBSSxHQUFHLElBQWI7QUFDQSxNQUFNQyxLQUFLLEdBQUdELElBQUksQ0FBQ0MsS0FBbkI7O0FBQ0EsT0FBS0EsS0FBTCxHQUFhLFlBQVc7QUFDcEJBLFNBQUssQ0FBQ0MsS0FBTixDQUFZRixJQUFaLEVBQWtCRyxTQUFsQjtBQUNBLFFBQUlDLFFBQVEsR0FBRyxLQUFmLENBRm9CLENBSXBCOztBQUNBSixRQUFJLENBQUNLLGlCQUFMLENBQXVCQyxFQUF2QixDQUEwQixpQkFBMUIsRUFBNkMsVUFBU0MsQ0FBVCxFQUFZO0FBQ3JELFVBQU1DLE1BQU0sR0FBR0MsNkNBQUMsQ0FBQ0YsQ0FBQyxDQUFDQyxNQUFILENBQWhCOztBQUNBLFVBQUlBLE1BQU0sQ0FBQ0UsUUFBUCxDQUFnQixXQUFoQixLQUFnQ0YsTUFBTSxDQUFDRyxPQUFQLENBQWUsWUFBZixFQUE2QkMsTUFBakUsRUFBeUU7QUFDckUsWUFBSUwsQ0FBQyxDQUFDTSxJQUFGLEtBQVcsV0FBZixFQUE0QjtBQUN4QlQsa0JBQVEsR0FBRyxJQUFYO0FBQ0FKLGNBQUksQ0FBQ2MsU0FBTCxHQUFpQixLQUFqQixDQUZ3QixDQUVBO0FBQzNCLFNBSEQsTUFHTztBQUNIZCxjQUFJLENBQUNjLFNBQUwsR0FBaUIsSUFBakI7QUFDQUMsb0JBQVUsQ0FBQyxZQUFXO0FBQ2xCWCxvQkFBUSxHQUFHLEtBQVgsQ0FEa0IsQ0FDQTtBQUNyQixXQUZTLENBQVY7QUFHSDtBQUNKLE9BVkQsTUFVTztBQUFFO0FBQ0xBLGdCQUFRLEdBQUcsS0FBWDtBQUNBSixZQUFJLENBQUNjLFNBQUwsR0FBaUIsSUFBakI7QUFDSDtBQUNKLEtBaEJELEVBTG9CLENBdUJwQjs7QUFDQWQsUUFBSSxDQUFDZ0IsU0FBTCxDQUFlQyxHQUFmLENBQW1CLGlCQUFuQixFQUFzQyxtQkFBdEMsRUFBMkRYLEVBQTNELENBQThELGlCQUE5RCxFQUFpRixtQkFBakYsRUFBc0csWUFBVztBQUM3RyxVQUFJLENBQUNGLFFBQUwsRUFBZTtBQUNYLGVBQU9KLElBQUksQ0FBQ2tCLGNBQUwsQ0FBb0JoQixLQUFwQixDQUEwQkYsSUFBMUIsRUFBZ0NHLFNBQWhDLENBQVA7QUFDSDtBQUNKLEtBSkQ7QUFLQUgsUUFBSSxDQUFDbUIsY0FBTCxDQUFvQkYsR0FBcEIsQ0FBd0IsTUFBeEIsRUFBZ0NYLEVBQWhDLENBQW1DLE1BQW5DLEVBQTJDLFlBQVc7QUFDbEQsVUFBSSxDQUFDRixRQUFMLEVBQWU7QUFDWCxlQUFPSixJQUFJLENBQUNvQixNQUFMLENBQVlsQixLQUFaLENBQWtCRixJQUFsQixFQUF3QkcsU0FBeEIsQ0FBUDtBQUNIO0FBQ0osS0FKRDtBQUtILEdBbENEO0FBbUNILENBdENEIiwiZmlsZSI6Ii4vYXBwL3V0aWxzL3NlbGVjdGl6ZS1vcHRpb24tY2xpY2suanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IFNlbGVjdGl6ZSBmcm9tICdzZWxlY3RpemUnO1xuXG5TZWxlY3RpemUuZGVmaW5lKCdvcHRpb25fY2xpY2snLCBmdW5jdGlvbihvcHRpb25zKSB7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgY29uc3Qgc2V0dXAgPSBzZWxmLnNldHVwO1xuICAgIHRoaXMuc2V0dXAgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgc2V0dXAuYXBwbHkoc2VsZiwgYXJndW1lbnRzKTtcbiAgICAgICAgbGV0IGNsaWNraW5nID0gZmFsc2U7XG5cbiAgICAgICAgLy8gRGV0ZWN0IGNsaWNrIG9uIGEgLmNsaWNrYWJsZVxuICAgICAgICBzZWxmLiRkcm9wZG93bl9jb250ZW50Lm9uKCdtb3VzZWRvd24gY2xpY2snLCBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSAkKGUudGFyZ2V0KTtcbiAgICAgICAgICAgIGlmICh0YXJnZXQuaGFzQ2xhc3MoJ2NsaWNrYWJsZScpIHx8IHRhcmdldC5jbG9zZXN0KCcuY2xpY2thYmxlJykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgaWYgKGUudHlwZSA9PT0gJ21vdXNlZG93bicpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xpY2tpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBzZWxmLmlzRm9jdXNlZCA9IGZhbHNlOyAvLyBhd2Z1bCBoYWNrIHRvIGRlZnVzZSB0aGUgZG9jdW1lbnQgbW91c2Vkb3duIGxpc3RlbmVyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5pc0ZvY3VzZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2tpbmcgPSBmYWxzZTsgLy8gd2FpdCB1bnRpbCBibHVyIGhhcyBiZWVuIHByZWVtcHRlZFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgeyAvLyBjbGVhbnVwIGluIGNhc2UgdXNlciByaWdodC1jbGlja2VkIG9yIGRyYWdnZWQgb2ZmIHRoZSBlbGVtZW50XG4gICAgICAgICAgICAgICAgY2xpY2tpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBzZWxmLmlzRm9jdXNlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEludGVyY2VwdCBkZWZhdWx0IGhhbmRsZXJzXG4gICAgICAgIHNlbGYuJGRyb3Bkb3duLm9mZignbW91c2Vkb3duIGNsaWNrJywgJ1tkYXRhLXNlbGVjdGFibGVdJykub24oJ21vdXNlZG93biBjbGljaycsICdbZGF0YS1zZWxlY3RhYmxlXScsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgaWYgKCFjbGlja2luZykge1xuICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLm9uT3B0aW9uU2VsZWN0LmFwcGx5KHNlbGYsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBzZWxmLiRjb250cm9sX2lucHV0Lm9mZignYmx1cicpLm9uKCdibHVyJywgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBpZiAoIWNsaWNraW5nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYub25CbHVyLmFwcGx5KHNlbGYsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG59KTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/utils/selectize-option-click.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/utils/selectize-required-fix.js":
|
|
/*!*********************************************!*\
|
|
!*** ./app/utils/selectize-required-fix.js ***!
|
|
\*********************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var selectize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! selectize */ \"./node_modules/selectize/dist/js/selectize.js\");\n/* harmony import */ var selectize__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(selectize__WEBPACK_IMPORTED_MODULE_0__);\n/**\n * This is a plugin to override the `.refreshValidityState` method of\n * the Selectize library (https://selectize.github.io/selectize.js/).\n * The library is not maintained anymore (as of 2017-09-13) and contains\n * a bug which causes Microsoft Edge to not work with selectized [required]\n * form fields. This plugin should be removed if\n * https://github.com/selectize/selectize.js/pull/1320 is ever merged\n * and a new version of Selectize gets released.\n */\n\nselectize__WEBPACK_IMPORTED_MODULE_0___default().define('required-fix', function (options) {\n var _this = this;\n\n this.refreshValidityState = function () {\n if (!_this.isRequired) return false;\n var invalid = !_this.items.length;\n _this.isInvalid = invalid;\n\n if (invalid) {\n _this.$control_input.attr('required', '');\n\n _this.$input.removeAttr('required');\n } else {\n _this.$control_input.removeAttr('required');\n\n _this.$input.attr('required');\n }\n };\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL3NlbGVjdGl6ZS1yZXF1aXJlZC1maXguanM/OWQ5NiJdLCJuYW1lcyI6WyJTZWxlY3RpemUiLCJvcHRpb25zIiwicmVmcmVzaFZhbGlkaXR5U3RhdGUiLCJpc1JlcXVpcmVkIiwiaW52YWxpZCIsIml0ZW1zIiwibGVuZ3RoIiwiaXNJbnZhbGlkIiwiJGNvbnRyb2xfaW5wdXQiLCJhdHRyIiwiJGlucHV0IiwicmVtb3ZlQXR0ciJdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQUEsdURBQUEsQ0FBaUIsY0FBakIsRUFBaUMsVUFBU0MsT0FBVCxFQUFrQjtBQUFBOztBQUMvQyxPQUFLQyxvQkFBTCxHQUE0QixZQUFNO0FBQzlCLFFBQUksQ0FBQyxLQUFJLENBQUNDLFVBQVYsRUFBc0IsT0FBTyxLQUFQO0FBRXRCLFFBQUlDLE9BQU8sR0FBRyxDQUFDLEtBQUksQ0FBQ0MsS0FBTCxDQUFXQyxNQUExQjtBQUNBLFNBQUksQ0FBQ0MsU0FBTCxHQUFpQkgsT0FBakI7O0FBRUEsUUFBSUEsT0FBSixFQUFhO0FBQ1QsV0FBSSxDQUFDSSxjQUFMLENBQW9CQyxJQUFwQixDQUF5QixVQUF6QixFQUFxQyxFQUFyQzs7QUFDQSxXQUFJLENBQUNDLE1BQUwsQ0FBWUMsVUFBWixDQUF1QixVQUF2QjtBQUNILEtBSEQsTUFHTztBQUNILFdBQUksQ0FBQ0gsY0FBTCxDQUFvQkcsVUFBcEIsQ0FBK0IsVUFBL0I7O0FBQ0EsV0FBSSxDQUFDRCxNQUFMLENBQVlELElBQVosQ0FBaUIsVUFBakI7QUFDSDtBQUNKLEdBYkQ7QUFjSCxDQWZEIiwiZmlsZSI6Ii4vYXBwL3V0aWxzL3NlbGVjdGl6ZS1yZXF1aXJlZC1maXguanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoaXMgaXMgYSBwbHVnaW4gdG8gb3ZlcnJpZGUgdGhlIGAucmVmcmVzaFZhbGlkaXR5U3RhdGVgIG1ldGhvZCBvZlxuICogdGhlIFNlbGVjdGl6ZSBsaWJyYXJ5IChodHRwczovL3NlbGVjdGl6ZS5naXRodWIuaW8vc2VsZWN0aXplLmpzLykuXG4gKiBUaGUgbGlicmFyeSBpcyBub3QgbWFpbnRhaW5lZCBhbnltb3JlIChhcyBvZiAyMDE3LTA5LTEzKSBhbmQgY29udGFpbnNcbiAqIGEgYnVnIHdoaWNoIGNhdXNlcyBNaWNyb3NvZnQgRWRnZSB0byBub3Qgd29yayB3aXRoIHNlbGVjdGl6ZWQgW3JlcXVpcmVkXVxuICogZm9ybSBmaWVsZHMuIFRoaXMgcGx1Z2luIHNob3VsZCBiZSByZW1vdmVkIGlmXG4gKiBodHRwczovL2dpdGh1Yi5jb20vc2VsZWN0aXplL3NlbGVjdGl6ZS5qcy9wdWxsLzEzMjAgaXMgZXZlciBtZXJnZWRcbiAqIGFuZCBhIG5ldyB2ZXJzaW9uIG9mIFNlbGVjdGl6ZSBnZXRzIHJlbGVhc2VkLlxuICovXG5cbmltcG9ydCBTZWxlY3RpemUgZnJvbSAnc2VsZWN0aXplJztcblxuU2VsZWN0aXplLmRlZmluZSgncmVxdWlyZWQtZml4JywgZnVuY3Rpb24ob3B0aW9ucykge1xuICAgIHRoaXMucmVmcmVzaFZhbGlkaXR5U3RhdGUgPSAoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5pc1JlcXVpcmVkKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgbGV0IGludmFsaWQgPSAhdGhpcy5pdGVtcy5sZW5ndGg7XG4gICAgICAgIHRoaXMuaXNJbnZhbGlkID0gaW52YWxpZDtcblxuICAgICAgICBpZiAoaW52YWxpZCkge1xuICAgICAgICAgICAgdGhpcy4kY29udHJvbF9pbnB1dC5hdHRyKCdyZXF1aXJlZCcsICcnKTtcbiAgICAgICAgICAgIHRoaXMuJGlucHV0LnJlbW92ZUF0dHIoJ3JlcXVpcmVkJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLiRjb250cm9sX2lucHV0LnJlbW92ZUF0dHIoJ3JlcXVpcmVkJyk7XG4gICAgICAgICAgICB0aGlzLiRpbnB1dC5hdHRyKCdyZXF1aXJlZCcpO1xuICAgICAgICB9XG4gICAgfTtcbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/utils/selectize-required-fix.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/utils/sidebar.js":
|
|
/*!******************************!*\
|
|
!*** ./app/utils/sidebar.js ***!
|
|
\******************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Sidebar),\n/* harmony export */ \"Instance\": () => (/* binding */ Instance)\n/* harmony export */ });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var es6_map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! es6-map */ \"./node_modules/es6-map/index.js\");\n/* harmony import */ var es6_map__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(es6_map__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _utils_cookies__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/cookies */ \"./app/utils/cookies.js\");\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); return Constructor; }\n\n\n\n\nvar MOBILE_BREAKPOINT = 48 - 0.062;\nvar DESKTOP_BREAKPOINT = 75 + 0.063;\nvar EVENTS = 'touchstart._grav click._grav';\nvar TARGETS = '[data-sidebar-mobile-toggle], #overlay';\nvar MOBILE_QUERY = \"(max-width: \".concat(MOBILE_BREAKPOINT, \"em)\");\nvar DESKTOP_QUERY = \"(min-width: \".concat(DESKTOP_BREAKPOINT, \"em)\");\nvar map = new (es6_map__WEBPACK_IMPORTED_MODULE_1___default())();\n\nvar Sidebar = /*#__PURE__*/function () {\n function Sidebar() {\n _classCallCheck(this, Sidebar);\n\n this.timeout = null;\n this.isOpen = false;\n this.body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body');\n this.matchMedia = __webpack_require__.g.matchMedia(MOBILE_QUERY);\n this.enable();\n }\n\n _createClass(Sidebar, [{\n key: \"enable\",\n value: function enable() {\n var sidebar = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#admin-sidebar');\n this.matchMedia.addListener(this._getBound('checkMatch'));\n this.checkMatch(this.matchMedia);\n this.body.on(EVENTS, '[data-sidebar-toggle]', this._getBound('toggleSidebarState'));\n\n if (sidebar.data('quickopen')) {\n sidebar.hover(this._getBound('quickOpenIn'), this._getBound('quickOpenOut'));\n }\n }\n }, {\n key: \"disable\",\n value: function disable() {\n var sidebar = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#admin-sidebar');\n this.close();\n this.matchMedia.removeListener(this._getBound('checkMatch'));\n this.body.off(EVENTS, '[data-sidebar-toggle]', this._getBound('toggleSidebarState'));\n\n if (sidebar.data('quickopen')) {\n sidebar.off('mouseenter mouseleave');\n }\n }\n }, {\n key: \"attach\",\n value: function attach() {\n this.body.on(EVENTS, TARGETS, this._getBound('toggle'));\n }\n }, {\n key: \"detach\",\n value: function detach() {\n this.body.off(EVENTS, TARGETS, this._getBound('toggle'));\n }\n }, {\n key: \"quickOpenIn\",\n value: function quickOpenIn()\n /* event */\n {\n var _this = this;\n\n var isDesktop = __webpack_require__.g.matchMedia(DESKTOP_QUERY).matches;\n var delay = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#admin-sidebar').data('quickopen-delay') || 500;\n\n if (this.body.hasClass('sidebar-mobile-open')) {\n return;\n }\n\n var shouldQuickOpen = isDesktop ? this.body.hasClass('sidebar-closed') : !this.body.hasClass('sidebar-open');\n\n if (!shouldQuickOpen && !this.body.hasClass('sidebar-quickopen')) {\n return this.quickOpenOut();\n }\n\n this.timeout = setTimeout(function () {\n _this.body.addClass('sidebar-open sidebar-quickopen');\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(__webpack_require__.g).trigger('sidebar_state._grav', isDesktop);\n }, delay);\n }\n }, {\n key: \"quickOpenOut\",\n value: function quickOpenOut()\n /* event */\n {\n clearTimeout(this.timeout);\n\n if (this.body.hasClass('sidebar-quickopen')) {\n this.body.removeClass('sidebar-open sidebar-quickopen');\n }\n\n return true;\n }\n }, {\n key: \"open\",\n value: function open(event) {\n var _this2 = this;\n\n var quick = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (event) {\n event.preventDefault();\n }\n\n var overlay = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#overlay');\n var sidebar = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#admin-sidebar');\n this.body.addClass('sidebar-mobile-open');\n overlay.css('display', 'block');\n\n if (!quick) {\n sidebar.css('display', 'block').animate({\n opacity: 1\n }, 200, function () {\n _this2.isOpen = true;\n });\n } else {\n sidebar.css({\n display: 'block',\n opacity: 1\n });\n this.isOpen = true;\n }\n }\n }, {\n key: \"close\",\n value: function close(event) {\n var _this3 = this;\n\n var quick = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (event) {\n event.preventDefault();\n }\n\n var overlay = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#overlay');\n var sidebar = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#admin-sidebar');\n this.body.removeClass('sidebar-mobile-open');\n overlay.css('display', 'none');\n\n if (!quick) {\n sidebar.animate({\n opacity: 0\n }, 200, function () {\n sidebar.css('display', 'none');\n _this3.isOpen = false;\n });\n } else {\n sidebar.css({\n opacity: 0,\n display: 'none'\n });\n this.isOpen = false;\n }\n }\n }, {\n key: \"toggle\",\n value: function toggle(event) {\n if (event) {\n event.preventDefault();\n }\n\n return this[this.isOpen ? 'close' : 'open'](event);\n }\n }, {\n key: \"toggleSidebarState\",\n value: function toggleSidebarState(event) {\n if (event) {\n event.preventDefault();\n }\n\n clearTimeout(this.timeout);\n var isDesktop = __webpack_require__.g.matchMedia(DESKTOP_QUERY).matches;\n var cookie = null;\n\n if (isDesktop) {\n this.body.removeClass('sidebar-open');\n }\n\n if (!isDesktop) {\n this.body.removeClass('sidebar-closed');\n this.body.removeClass('sidebar-mobile-open');\n }\n\n this.body.toggleClass(\"sidebar-\".concat(isDesktop ? 'closed' : 'open'));\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(__webpack_require__.g).trigger('sidebar_state._grav', isDesktop);\n\n if (isDesktop) {\n cookie = !this.body.hasClass('sidebar-closed');\n } else {\n cookie = this.body.hasClass('sidebar-open');\n }\n\n _utils_cookies__WEBPACK_IMPORTED_MODULE_2__.default.set('grav-admin-sidebar', cookie, {\n expires: Infinity\n });\n }\n }, {\n key: \"checkMatch\",\n value: function checkMatch(data) {\n var sidebar = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#admin-sidebar');\n var overlay = jquery__WEBPACK_IMPORTED_MODULE_0___default()('#overlay');\n this.isOpen = false;\n overlay.css('display', 'none');\n sidebar.css({\n display: data.matches ? 'none' : 'inherit',\n opacity: data.matches ? 0 : 1\n });\n\n if (data.matches) {\n this.body.removeClass('sidebar-open sidebar-closed');\n }\n\n this[data.matches ? 'attach' : 'detach']();\n }\n }, {\n key: \"_resetMap\",\n value: function _resetMap() {\n return map.clear();\n }\n }, {\n key: \"_getBound\",\n value: function _getBound(fn) {\n if (map.has(fn)) {\n return map.get(fn);\n }\n\n return map.set(fn, this[fn].bind(this)).get(fn);\n }\n }]);\n\n return Sidebar;\n}();\n\n\nvar Instance = new Sidebar();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL3NpZGViYXIuanM/MzM1MSJdLCJuYW1lcyI6WyJNT0JJTEVfQlJFQUtQT0lOVCIsIkRFU0tUT1BfQlJFQUtQT0lOVCIsIkVWRU5UUyIsIlRBUkdFVFMiLCJNT0JJTEVfUVVFUlkiLCJERVNLVE9QX1FVRVJZIiwibWFwIiwiTWFwIiwiU2lkZWJhciIsInRpbWVvdXQiLCJpc09wZW4iLCJib2R5IiwiJCIsIm1hdGNoTWVkaWEiLCJnbG9iYWwiLCJlbmFibGUiLCJzaWRlYmFyIiwiYWRkTGlzdGVuZXIiLCJfZ2V0Qm91bmQiLCJjaGVja01hdGNoIiwib24iLCJkYXRhIiwiaG92ZXIiLCJjbG9zZSIsInJlbW92ZUxpc3RlbmVyIiwib2ZmIiwiaXNEZXNrdG9wIiwibWF0Y2hlcyIsImRlbGF5IiwiaGFzQ2xhc3MiLCJzaG91bGRRdWlja09wZW4iLCJxdWlja09wZW5PdXQiLCJzZXRUaW1lb3V0IiwiYWRkQ2xhc3MiLCJ0cmlnZ2VyIiwiY2xlYXJUaW1lb3V0IiwicmVtb3ZlQ2xhc3MiLCJldmVudCIsInF1aWNrIiwicHJldmVudERlZmF1bHQiLCJvdmVybGF5IiwiY3NzIiwiYW5pbWF0ZSIsIm9wYWNpdHkiLCJkaXNwbGF5IiwiY29va2llIiwidG9nZ2xlQ2xhc3MiLCJDb29raWVzIiwiZXhwaXJlcyIsIkluZmluaXR5IiwiY2xlYXIiLCJmbiIsImhhcyIsImdldCIsInNldCIsImJpbmQiLCJJbnN0YW5jZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUVBLElBQU1BLGlCQUFpQixHQUFHLEtBQUssS0FBL0I7QUFDQSxJQUFNQyxrQkFBa0IsR0FBRyxLQUFLLEtBQWhDO0FBQ0EsSUFBTUMsTUFBTSxHQUFHLDhCQUFmO0FBQ0EsSUFBTUMsT0FBTyxHQUFHLHdDQUFoQjtBQUNBLElBQU1DLFlBQVkseUJBQWtCSixpQkFBbEIsUUFBbEI7QUFDQSxJQUFNSyxhQUFhLHlCQUFrQkos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LEVBQWtCO0FBQ2QsYUFBS2hCLElBQUwsQ0FBVXlCLFdBQVYsQ0FBc0IsNkJBQXRCO0FBQ0g7O0FBRUQsV0FBS2YsSUFBSSxDQUFDTSxPQUFMLEdBQWUsUUFBZixHQUEwQixRQUEvQjtBQUNIOzs7V0FFRCxxQkFBWTtBQUNSLGFBQU9yQixHQUFHLENBQUM0QyxLQUFKLEVBQVA7QUFDSDs7O1dBRUQsbUJBQVVDLEVBQVYsRUFBYztBQUNWLFVBQUk3QyxHQUFHLENBQUM4QyxHQUFKLENBQVFELEVBQVIsQ0FBSixFQUFpQjtBQUNiLGVBQU83QyxHQUFHLENBQUMrQyxHQUFKLENBQVFGLEVBQVIsQ0FBUDtBQUNIOztBQUVELGFBQU83QyxHQUFHLENBQUNnRCxHQUFKLENBQVFILEVBQVIsRUFBWSxLQUFLQSxFQUFMLEVBQVNJLElBQVQsQ0FBYyxJQUFkLENBQVosRUFBaUNGLEdBQWpDLENBQXFDRixFQUFyQyxDQUFQO0FBQ0g7Ozs7Ozs7QUFHRSxJQUFJSyxRQUFRLEdBQUcsSUFBSWhELE9BQUosRUFBZiIsImZpbGUiOiIuL2FwcC91dGlscy9zaWRlYmFyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCBNYXAgZnJvbSAnZXM2LW1hcCc7XG5pbXBvcnQgQ29va2llcyBmcm9tICcuLi91dGlscy9jb29raWVzJztcblxuY29uc3QgTU9CSUxFX0JSRUFLUE9JTlQgPSA0OCAtIDAuMDYyO1xuY29uc3QgREVTS1RPUF9CUkVBS1BPSU5UID0gNzUgKyAwLjA2MztcbmNvbnN0IEVWRU5UUyA9ICd0b3VjaHN0YXJ0Ll9ncmF2IGNsaWNrLl9ncmF2JztcbmNvbnN0IFRBUkdFVFMgPSAnW2RhdGEtc2lkZWJhci1tb2JpbGUtdG9nZ2xlXSwgI292ZXJsYXknO1xuY29uc3QgTU9CSUxFX1FVRVJZID0gYChtYXgtd2lkdGg6ICR7TU9CSUxFX0JSRUFLUE9JTlR9ZW0pYDtcbmNvbnN0IERFU0tUT1BfUVVFUlkgPSBgKG1pbi13aWR0aDogJHtERVNLVE9QX0JSRUFLUE9JTlR9ZW0pYDtcblxubGV0IG1hcCA9IG5ldyBNYXAoKTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2lkZWJhciB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMudGltZW91dCA9IG51bGw7XG4gICAgICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYm9keSA9ICQoJ2JvZHknKTtcbiAgICAgICAgdGhpcy5tYXRjaE1lZGlhID0gZ2xvYmFsLm1hdGNoTWVkaWEoTU9CSUxFX1FVRVJZKTtcbiAgICAgICAgdGhpcy5lbmFibGUoKTtcbiAgICB9XG5cbiAgICBlbmFibGUoKSB7XG4gICAgICAgIGNvbnN0IHNpZGViYXIgPSAkKCcjYWRtaW4tc2lkZWJhcicpO1xuXG4gICAgICAgIHRoaXMubWF0Y2hNZWRpYS5hZGRMaXN0ZW5lcih0aGlzLl9nZXRCb3VuZCgnY2hlY2tNYXRjaCcpKTtcbiAgICAgICAgdGhpcy5jaGVja01hdGNoKHRoaXMubWF0Y2hNZWRpYSk7XG4gICAgICAgIHRoaXMuYm9keS5vbihFVkVOVFMsICdbZGF0YS1zaWRlYmFyLXRvZ2dsZV0nLCB0aGlzLl9nZXRCb3VuZCgndG9nZ2xlU2lkZWJhclN0YXRlJykpO1xuXG4gICAgICAgIGlmIChzaWRlYmFyLmRhdGEoJ3F1aWNrb3BlbicpKSB7XG4gICAgICAgICAgICBzaWRlYmFyLmhvdmVyKHRoaXMuX2dldEJvdW5kKCdxdWlja09wZW5JbicpLCB0aGlzLl9nZXRCb3VuZCgncXVpY2tPcGVuT3V0JykpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGlzYWJsZSgpIHtcbiAgICAgICAgY29uc3Qgc2lkZWJhciA9ICQoJyNhZG1pbi1zaWRlYmFyJyk7XG5cbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB0aGlzLm1hdGNoTWVkaWEucmVtb3ZlTGlzdGVuZXIodGhpcy5fZ2V0Qm91bmQoJ2NoZWNrTWF0Y2gnKSk7XG4gICAgICAgIHRoaXMuYm9keS5vZmYoRVZFTlRTLCAnW2RhdGEtc2lkZWJhci10b2dnbGVdJywgdGhpcy5fZ2V0Qm91bmQoJ3RvZ2dsZVNpZGViYXJTdGF0ZScpKTtcbiAgICAgICAgaWYgKHNpZGViYXIuZGF0YSgncXVpY2tvcGVuJykpIHtcbiAgICAgICAgICAgIHNpZGViYXIub2ZmKCdtb3VzZWVudGVyIG1vdXNlbGVhdmUnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGF0dGFjaCgpIHtcbiAgICAgICAgdGhpcy5ib2R5Lm9uKEVWRU5UUywgVEFSR0VUUywgdGhpcy5fZ2V0Qm91bmQoJ3RvZ2dsZScpKTtcbiAgICB9XG5cbiAgICBkZXRhY2goKSB7XG4gICAgICAgIHRoaXMuYm9keS5vZmYoRVZFTlRTLCBUQVJHRVRTLCB0aGlzLl9nZXRCb3VuZCgndG9nZ2xlJykpO1xuICAgIH1cblxuICAgIHF1aWNrT3BlbkluKC8qIGV2ZW50ICovKSB7XG4gICAgICAgIGxldCBpc0Rlc2t0b3AgPSBnbG9iYWwubWF0Y2hNZWRpYShERVNLVE9QX1FVRVJZKS5tYXRjaGVzO1xuICAgICAgICBsZXQgZGVsYXkgPSAkKCcjYWRtaW4tc2lkZWJhcicpLmRhdGEoJ3F1aWNrb3Blbi1kZWxheScpIHx8IDUwMDtcbiAgICAgICAgaWYgKHRoaXMuYm9keS5oYXNDbGFzcygnc2lkZWJhci1tb2JpbGUtb3BlbicpKSB7IHJldHVybjsgfVxuXG4gICAgICAgIGxldCBzaG91bGRRdWlja09wZW4gPSBpc0Rlc2t0b3AgPyB0aGlzLmJvZHkuaGFzQ2xhc3MoJ3NpZGViYXItY2xvc2VkJykgOiAhdGhpcy5ib2R5Lmhhc0NsYXNzKCdzaWRlYmFyLW9wZW4nKTtcbiAgICAgICAgaWYgKCFzaG91bGRRdWlja09wZW4gJiYgIXRoaXMuYm9keS5oYXNDbGFzcygnc2lkZWJhci1xdWlja29wZW4nKSkgeyByZXR1cm4gdGhpcy5xdWlja09wZW5PdXQoKTsgfVxuXG4gICAgICAgIHRoaXMudGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5ib2R5LmFkZENsYXNzKCdzaWRlYmFyLW9wZW4gc2lkZWJhci1xdWlja29wZW4nKTtcbiAgICAgICAgICAgICQoZ2xvYmFsKS50cmlnZ2VyKCdzaWRlYmFyX3N0YXRlLl9ncmF2JywgaXNEZXNrdG9wKTtcbiAgICAgICAgfSwgZGVsYXkpO1xuICAgIH1cblxuICAgIHF1aWNrT3Blbk91dCgvKiBldmVudCAqLykge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0KTtcbiAgICAgICAgaWYgKHRoaXMuYm9keS5oYXNDbGFzcygnc2lkZWJhci1xdWlja29wZW4nKSkge1xuICAgICAgICAgICAgdGhpcy5ib2R5LnJlbW92ZUNsYXNzKCdzaWRlYmFyLW9wZW4gc2lkZWJhci1xdWlja29wZW4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIG9wZW4oZXZlbnQsIHF1aWNrID0gZmFsc2UpIHtcbiAgICAgICAgaWYgKGV2ZW50KSB7IGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IH1cbiAgICAgICAgbGV0IG92ZXJsYXkgPSAkKCcjb3ZlcmxheScpO1xuICAgICAgICBsZXQgc2lkZWJhciA9ICQoJyNhZG1pbi1zaWRlYmFyJyk7XG5cbiAgICAgICAgdGhpcy5ib2R5LmFkZENsYXNzKCdzaWRlYmFyLW1vYmlsZS1vcGVuJyk7XG4gICAgICAgIG92ZXJsYXkuY3NzKCdkaXNwbGF5JywgJ2Jsb2NrJyk7XG5cbiAgICAgICAgaWYgKCFxdWljaykge1xuICAgICAgICAgICAgc2lkZWJhci5jc3MoJ2Rpc3BsYXknLCAnYmxvY2snKS5hbmltYXRlKHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxXG4gICAgICAgICAgICB9LCAyMDAsICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzT3BlbiA9IHRydWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNpZGViYXIuY3NzKHsgZGlzcGxheTogJ2Jsb2NrJywgb3BhY2l0eTogMSB9KTtcbiAgICAgICAgICAgIHRoaXMuaXNPcGVuID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsb3NlKGV2ZW50LCBxdWljayA9IGZhbHNlKSB7XG4gICAgICAgIGlmIChldmVudCkgeyBldmVudC5wcmV2ZW50RGVmYXVsdCgpOyB9XG4gICAgICAgIGxldCBvdmVybGF5ID0gJCgnI292ZXJsYXknKTtcbiAgICAgICAgbGV0IHNpZGViYXIgPSAkKCcjYWRtaW4tc2lkZWJhcicpO1xuXG4gICAgICAgIHRoaXMuYm9keS5yZW1vdmVDbGFzcygnc2lkZWJhci1tb2JpbGUtb3BlbicpO1xuICAgICAgICBvdmVybGF5LmNzcygnZGlzcGxheScsICdub25lJyk7XG5cbiAgICAgICAgaWYgKCFxdWljaykge1xuICAgICAgICAgICAgc2lkZWJhci5hbmltYXRlKHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwXG4gICAgICAgICAgICB9LCAyMDAsICgpID0+IHtcbiAgICAgICAgICAgICAgICBzaWRlYmFyLmNzcygnZGlzcGxheScsICdub25lJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2lkZWJhci5jc3MoeyBvcGFjaXR5OiAwLCBkaXNwbGF5OiAnbm9uZScgfSk7XG4gICAgICAgICAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdG9nZ2xlKGV2ZW50KSB7XG4gICAgICAgIGlmIChldmVudCkgeyBldmVudC5wcmV2ZW50RGVmYXVsdCgpOyB9XG4gICAgICAgIHJldHVybiB0aGlzW3RoaXMuaXNPcGVuID8gJ2Nsb3NlJyA6ICdvcGVuJ10oZXZlbnQpO1xuICAgIH1cblxuICAgIHRvZ2dsZVNpZGViYXJTdGF0ZShldmVudCkge1xuICAgICAgICBpZiAoZXZlbnQpIHsgZXZlbnQucHJldmVudERlZmF1bHQoKTsgfVxuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0KTtcbiAgICAgICAgbGV0IGlzRGVza3RvcCA9IGdsb2JhbC5tYXRjaE1lZGlhKERFU0tUT1BfUVVFUlkpLm1hdGNoZXM7XG4gICAgICAgIGxldCBjb29raWUgPSBudWxsO1xuXG4gICAgICAgIGlmIChpc0Rlc2t0b3ApIHtcbiAgICAgICAgICAgIHRoaXMuYm9keS5yZW1vdmVDbGFzcygnc2lkZWJhci1vcGVuJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlzRGVza3RvcCkge1xuICAgICAgICAgICAgdGhpcy5ib2R5LnJlbW92ZUNsYXNzKCdzaWRlYmFyLWNsb3NlZCcpO1xuICAgICAgICAgICAgdGhpcy5ib2R5LnJlbW92ZUNsYXNzKCdzaWRlYmFyLW1vYmlsZS1vcGVuJyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmJvZHkudG9nZ2xlQ2xhc3MoYHNpZGViYXItJHtpc0Rlc2t0b3AgPyAnY2xvc2VkJyA6ICdvcGVuJ31gKTtcbiAgICAgICAgJChnbG9iYWwpLnRyaWdnZXIoJ3NpZGViYXJfc3RhdGUuX2dyYXYnLCBpc0Rlc2t0b3ApO1xuXG4gICAgICAgIGlmIChpc0Rlc2t0b3ApIHtcbiAgICAgICAgICAgIGNvb2tpZSA9ICF0aGlzLmJvZHkuaGFzQ2xhc3MoJ3NpZGViYXItY2xvc2VkJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb29raWUgPSB0aGlzLmJvZHkuaGFzQ2xhc3MoJ3NpZGViYXItb3BlbicpO1xuICAgICAgICB9XG5cbiAgICAgICAgQ29va2llcy5zZXQoJ2dyYXYtYWRtaW4tc2lkZWJhcicsIGNvb2tpZSwgeyBleHBpcmVzOiBJbmZpbml0eSB9KTtcbiAgICB9XG5cbiAgICBjaGVja01hdGNoKGRhdGEpIHtcbiAgICAgICAgbGV0IHNpZGViYXIgPSAkKCcjYWRtaW4tc2lkZWJhcicpO1xuICAgICAgICBsZXQgb3ZlcmxheSA9ICQoJyNvdmVybGF5Jyk7XG4gICAgICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG5cbiAgICAgICAgb3ZlcmxheS5jc3MoJ2Rpc3BsYXknLCAnbm9uZScpO1xuICAgICAgICBzaWRlYmFyLmNzcyh7XG4gICAgICAgICAgICBkaXNwbGF5OiBkYXRhLm1hdGNoZXMgPyAnbm9uZScgOiAnaW5oZXJpdCcsXG4gICAgICAgICAgICBvcGFjaXR5OiBkYXRhLm1hdGNoZXMgPyAwIDogMVxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoZGF0YS5tYXRjaGVzKSB7XG4gICAgICAgICAgICB0aGlzLmJvZHkucmVtb3ZlQ2xhc3MoJ3NpZGViYXItb3BlbiBzaWRlYmFyLWNsb3NlZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpc1tkYXRhLm1hdGNoZXMgPyAnYXR0YWNoJyA6ICdkZXRhY2gnXSgpO1xuICAgIH1cblxuICAgIF9yZXNldE1hcCgpIHtcbiAgICAgICAgcmV0dXJuIG1hcC5jbGVhcigpO1xuICAgIH1cblxuICAgIF9nZXRCb3VuZChmbikge1xuICAgICAgICBpZiAobWFwLmhhcyhmbikpIHtcbiAgICAgICAgICAgIHJldHVybiBtYXAuZ2V0KGZuKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtYXAuc2V0KGZuLCB0aGlzW2ZuXS5iaW5kKHRoaXMpKS5nZXQoZm4pO1xuICAgIH1cbn1cblxuZXhwb3J0IGxldCBJbnN0YW5jZSA9IG5ldyBTaWRlYmFyKCk7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/utils/sidebar.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/utils/storage.js":
|
|
/*!******************************!*\
|
|
!*** ./app/utils/storage.js ***!
|
|
\******************************/
|
|
/***/ (() => {
|
|
|
|
eval("// localStorage\n(function () {\n function isSupported() {\n var item = 'localStoragePollyfill';\n\n try {\n localStorage.setItem(item, item);\n localStorage.removeItem(item);\n sessionStorage.setItem(item, item);\n sessionStorage.removeItem(item);\n return true;\n } catch (e) {\n return false;\n }\n }\n\n if (!isSupported()) {\n try {\n Storage.prototype._data = {};\n\n Storage.prototype.setItem = function (id, val) {\n this._data[id] = String(val);\n return this._data[id];\n };\n\n Storage.prototype.getItem = function (id) {\n return this._data.hasOwnProperty(id) ? this._data[id] : undefined;\n };\n\n Storage.prototype.removeItem = function (id) {\n return delete this._data[id];\n };\n\n Storage.prototype.clear = function () {\n this._data = {};\n return this._data;\n };\n } catch (e) {\n console.error('localStorage pollyfill error: ', e);\n }\n }\n})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL3N0b3JhZ2UuanM/YjUzNiJdLCJuYW1lcyI6WyJpc1N1cHBvcnRlZCIsIml0ZW0iLCJsb2NhbFN0b3JhZ2UiLCJzZXRJdGVtIiwicmVtb3ZlSXRlbSIsInNlc3Npb25TdG9yYWdlIiwiZSIsIlN0b3JhZ2UiLCJwcm90b3R5cGUiLCJfZGF0YSIsImlkIiwidmFsIiwiU3RyaW5nIiwiZ2V0SXRlbSIsImhhc093blByb3BlcnR5IiwidW5kZWZpbmVkIiwiY2xlYXIiLCJjb25zb2xlIiwiZXJyb3IiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0MsYUFBVztBQUNSLFdBQVNBLFdBQVQsR0FBdUI7QUFDbkIsUUFBSUMsSUFBSSxHQUFHLHVCQUFYOztBQUNBLFFBQUk7QUFDQUMsTUFBQUEsWUFBWSxDQUFDQyxPQUFiLENBQXFCRixJQUFyQixFQUEyQkEsSUFBM0I7QUFDQUMsTUFBQUEsWUFBWSxDQUFDRSxVQUFiLENBQXdCSCxJQUF4QjtBQUNBSSxNQUFBQSxjQUFjLENBQUNGLE9BQWYsQ0FBdUJGLElBQXZCLEVBQTZCQSxJQUE3QjtBQUNBSSxNQUFBQSxjQUFjLENBQUNELFVBQWYsQ0FBMEJILElBQTFCO0FBQ0EsYUFBTyxJQUFQO0FBQ0gsS0FORCxDQU1FLE9BQU9LLENBQVAsRUFBVTtBQUNSLGFBQU8sS0FBUDtBQUNIO0FBQ0o7O0FBRUQsTUFBSSxDQUFDTixXQUFXLEVBQWhCLEVBQW9CO0FBQ2hCLFFBQUk7QUFDQU8sTUFBQUEsT0FBTyxDQUFDQyxTQUFSLENBQWtCQyxLQUFsQixHQUEwQixFQUExQjs7QUFFQUYsTUFBQUEsT0FBTyxDQUFDQyxTQUFSLENBQWtCTCxPQUFsQixHQUE0QixVQUFTTyxFQUFULEVBQWFDLEdBQWIsRUFBa0I7QUFDMUMsYUFBS0YsS0FBTCxDQUFXQyxFQUFYLElBQWlCRSxNQUFNLENBQUNELEdBQUQsQ0FBdkI7QUFDQSxlQUFPLEtBQUtGLEtBQUwsQ0FBV0MsRUFBWCxDQUFQO0FBQ0gsT0FIRDs7QUFLQUgsTUFBQUEsT0FBTyxDQUFDQyxTQUFSLENBQWtCSyxPQUFsQixHQUE0QixVQUFTSCxFQUFULEVBQWE7QUFDckMsZUFBTyxLQUFLRCxLQUFMLENBQVdLLGNBQVgsQ0FBMEJKLEVBQTFCLElBQWdDLEtBQUtELEtBQUwsQ0FBV0MsRUFBWCxDQUFoQyxHQUFpREssU0FBeEQ7QUFDSCxPQUZEOztBQUlBUixNQUFBQSxPQUFPLENBQUNDLFNBQVIsQ0FBa0JKLFVBQWxCLEdBQStCLFVBQVNNLEVBQVQsRUFBYTtBQUN4QyxlQUFPLE9BQU8sS0FBS0QsS0FBTCxDQUFXQyxFQUFYLENBQWQ7QUFDSCxPQUZEOztBQUlBSCxNQUFBQSxPQUFPLENBQUNDLFNBQVIsQ0FBa0JRLEtBQWxCLEdBQTBCLFlBQVc7QUFDakMsYUFBS1AsS0FBTCxHQUFhLEVBQWI7QUFDQSxlQUFPLEtBQUtBLEtBQVo7QUFDSCxPQUhEO0FBSUgsS0FwQkQsQ0FvQkUsT0FBT0gsQ0FBUCxFQUFVO0FBQ1JXLE1BQUFBLE9BQU8sQ0FBQ0MsS0FBUixDQUFjLGdDQUFkLEVBQWdEWixDQUFoRDtBQUNIO0FBQ0o7QUFDSixDQXZDQSxHQUFEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gbG9jYWxTdG9yYWdlXG4oZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gaXNTdXBwb3J0ZWQoKSB7XG4gICAgICAgIHZhciBpdGVtID0gJ2xvY2FsU3RvcmFnZVBvbGx5ZmlsbCc7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShpdGVtLCBpdGVtKTtcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGl0ZW0pO1xuICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShpdGVtLCBpdGVtKTtcbiAgICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oaXRlbSk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFpc1N1cHBvcnRlZCgpKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBTdG9yYWdlLnByb3RvdHlwZS5fZGF0YSA9IHt9O1xuXG4gICAgICAgICAgICBTdG9yYWdlLnByb3RvdHlwZS5zZXRJdGVtID0gZnVuY3Rpb24oaWQsIHZhbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFbaWRdID0gU3RyaW5nKHZhbCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFbaWRdO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgU3RvcmFnZS5wcm90b3R5cGUuZ2V0SXRlbSA9IGZ1bmN0aW9uKGlkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGEuaGFzT3duUHJvcGVydHkoaWQpID8gdGhpcy5fZGF0YVtpZF0gOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBTdG9yYWdlLnByb3RvdHlwZS5yZW1vdmVJdGVtID0gZnVuY3Rpb24oaWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGVsZXRlIHRoaXMuX2RhdGFbaWRdO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgU3RvcmFnZS5wcm90b3R5cGUuY2xlYXIgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kYXRhID0ge307XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGE7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdsb2NhbFN0b3JhZ2UgcG9sbHlmaWxsIGVycm9yOiAnLCBlKTtcbiAgICAgICAgfVxuICAgIH1cbn0oKSk7XG4iXSwiZmlsZSI6Ii4vYXBwL3V0aWxzL3N0b3JhZ2UuanMuanMiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/utils/storage.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/utils/tabs-memory.js":
|
|
/*!**********************************!*\
|
|
!*** ./app/utils/tabs-memory.js ***!
|
|
\**********************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_cookies__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/cookies */ \"./app/utils/cookies.js\");\n/* harmony import */ var _forms_fields_editor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../forms/fields/editor */ \"./app/forms/fields/editor.js\");\n\n\n\nvar Data = JSON.parse(_utils_cookies__WEBPACK_IMPORTED_MODULE_1__.default.get('grav-tabs-state') || '{}');\njquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('touchstart click', '[data-tabid]', function (event) {\n event && event.stopPropagation();\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n Data[target.data('tabkey')] = target.data('scope');\n _utils_cookies__WEBPACK_IMPORTED_MODULE_1__.default.set('grav-tabs-state', JSON.stringify(Data), {\n expires: Infinity\n });\n var panel = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[id=\\\"\".concat(target.data('tabid'), \"\\\"]\"));\n target.siblings('[data-tabid]').removeClass('active');\n target.addClass('active');\n panel.siblings('[id]').removeClass('active');\n panel.addClass('active');\n _forms_fields_editor__WEBPACK_IMPORTED_MODULE_2__.Instance.editors.each(function (index, editor) {\n var codemirror = jquery__WEBPACK_IMPORTED_MODULE_0___default()(editor).data('codemirror');\n\n if (!codemirror) {\n return;\n }\n\n if (codemirror.display.lastWrapWidth === 0) {\n codemirror.refresh();\n }\n });\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL3RhYnMtbWVtb3J5LmpzPzM5YjEiXSwibmFtZXMiOlsiRGF0YSIsIkpTT04iLCJwYXJzZSIsIkNvb2tpZXMiLCIkIiwib24iLCJldmVudCIsInN0b3BQcm9wYWdhdGlvbiIsInRhcmdldCIsImN1cnJlbnRUYXJnZXQiLCJkYXRhIiwic3RyaW5naWZ5IiwiZXhwaXJlcyIsIkluZmluaXR5IiwicGFuZWwiLCJzaWJsaW5ncyIsInJlbW92ZUNsYXNzIiwiYWRkQ2xhc3MiLCJFZGl0b3JzIiwiaW5kZXgiLCJlZGl0b3IiLCJjb2RlbWlycm9yIiwiZGlzcGxheSIsImxhc3RXcmFwV2lkdGgiLCJyZWZyZXNoIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUVBLElBQUlBLElBQUksR0FBR0MsSUFBSSxDQUFDQyxLQUFMLENBQVdDLHVEQUFBLENBQVksaUJBQVosS0FBa0MsSUFBN0MsQ0FBWDtBQUVBQyw2Q0FBQyxDQUFDLE1BQUQsQ0FBRCxDQUFVQyxFQUFWLENBQWEsa0JBQWIsRUFBaUMsY0FBakMsRUFBaUQsVUFBQ0MsS0FBRCxFQUFXO0FBQ3hEQSxPQUFLLElBQUlBLEtBQUssQ0FBQ0MsZUFBTixFQUFUO0FBQ0EsTUFBSUMsTUFBTSxHQUFHSiw2Q0FBQyxDQUFDRSxLQUFLLENBQUNHLGFBQVAsQ0FBZDtBQUVBVCxNQUFJLENBQUNRLE1BQU0sQ0FBQ0UsSUFBUCxDQUFZLFFBQVosQ0FBRCxDQUFKLEdBQThCRixNQUFNLENBQUNFLElBQVAsQ0FBWSxPQUFaLENBQTlCO0FBQ0FQLHlEQUFBLENBQVksaUJBQVosRUFBK0JGLElBQUksQ0FBQ1UsU0FBTCxDQUFlWCxJQUFmLENBQS9CLEVBQXFEO0FBQUVZLFdBQU8sRUFBRUM7QUFBWCxHQUFyRDtBQUVBLE1BQU1DLEtBQUssR0FBR1YsNkNBQUMsaUJBQVNJLE1BQU0sQ0FBQ0UsSUFBUCxDQUFZLE9BQVosQ0FBVCxTQUFmO0FBRUFGLFFBQU0sQ0FBQ08sUUFBUCxDQUFnQixjQUFoQixFQUFnQ0MsV0FBaEMsQ0FBNEMsUUFBNUM7QUFDQVIsUUFBTSxDQUFDUyxRQUFQLENBQWdCLFFBQWhCO0FBRUFILE9BQUssQ0FBQ0MsUUFBTixDQUFlLE1BQWYsRUFBdUJDLFdBQXZCLENBQW1DLFFBQW5DO0FBQ0FGLE9BQUssQ0FBQ0csUUFBTixDQUFlLFFBQWY7QUFFQUMseUVBQUEsQ0FBcUIsVUFBQ0MsS0FBRCxFQUFRQyxNQUFSLEVBQW1CO0FBQ3BDLFFBQUlDLFVBQVUsR0FBR2pCLDZDQUFDLENBQUNnQixNQUFELENBQUQsQ0FBVVYsSUFBVixDQUFlLFlBQWYsQ0FBakI7O0FBQ0EsUUFBSSxDQUFDVyxVQUFMLEVBQWlCO0FBQUU7QUFBUzs7QUFDNUIsUUFBSUEsVUFBVSxDQUFDQyxPQUFYLENBQW1CQyxhQUFuQixLQUFxQyxDQUF6QyxFQUE0QztBQUN4Q0YsZ0JBQVUsQ0FBQ0csT0FBWDtBQUNIO0FBQ0osR0FORDtBQU9ILENBdEJEIiwiZmlsZSI6Ii4vYXBwL3V0aWxzL3RhYnMtbWVtb3J5LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCBDb29raWVzIGZyb20gJy4uL3V0aWxzL2Nvb2tpZXMnO1xuaW1wb3J0IHsgSW5zdGFuY2UgYXMgRWRpdG9ycyB9IGZyb20gJy4uL2Zvcm1zL2ZpZWxkcy9lZGl0b3InO1xuXG5sZXQgRGF0YSA9IEpTT04ucGFyc2UoQ29va2llcy5nZXQoJ2dyYXYtdGFicy1zdGF0ZScpIHx8ICd7fScpO1xuXG4kKCdib2R5Jykub24oJ3RvdWNoc3RhcnQgY2xpY2snLCAnW2RhdGEtdGFiaWRdJywgKGV2ZW50KSA9PiB7XG4gICAgZXZlbnQgJiYgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgbGV0IHRhcmdldCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG5cbiAgICBEYXRhW3RhcmdldC5kYXRhKCd0YWJrZXknKV0gPSB0YXJnZXQuZGF0YSgnc2NvcGUnKTtcbiAgICBDb29raWVzLnNldCgnZ3Jhdi10YWJzLXN0YXRlJywgSlNPTi5zdHJpbmdpZnkoRGF0YSksIHsgZXhwaXJlczogSW5maW5pdHkgfSk7XG5cbiAgICBjb25zdCBwYW5lbCA9ICQoYFtpZD1cIiR7dGFyZ2V0LmRhdGEoJ3RhYmlkJyl9XCJdYCk7XG5cbiAgICB0YXJnZXQuc2libGluZ3MoJ1tkYXRhLXRhYmlkXScpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTtcbiAgICB0YXJnZXQuYWRkQ2xhc3MoJ2FjdGl2ZScpO1xuXG4gICAgcGFuZWwuc2libGluZ3MoJ1tpZF0nKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7XG4gICAgcGFuZWwuYWRkQ2xhc3MoJ2FjdGl2ZScpO1xuXG4gICAgRWRpdG9ycy5lZGl0b3JzLmVhY2goKGluZGV4LCBlZGl0b3IpID0+IHtcbiAgICAgICAgbGV0IGNvZGVtaXJyb3IgPSAkKGVkaXRvcikuZGF0YSgnY29kZW1pcnJvcicpO1xuICAgICAgICBpZiAoIWNvZGVtaXJyb3IpIHsgcmV0dXJuOyB9XG4gICAgICAgIGlmIChjb2RlbWlycm9yLmRpc3BsYXkubGFzdFdyYXBXaWR0aCA9PT0gMCkge1xuICAgICAgICAgICAgY29kZW1pcnJvci5yZWZyZXNoKCk7XG4gICAgICAgIH1cbiAgICB9KTtcbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/utils/tabs-memory.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/utils/toastr.js":
|
|
/*!*****************************!*\
|
|
!*** ./app/utils/toastr.js ***!
|
|
\*****************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var toastr__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! toastr */ \"./node_modules/toastr/toastr.js\");\n/* harmony import */ var toastr__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(toastr__WEBPACK_IMPORTED_MODULE_0__);\n\n(toastr__WEBPACK_IMPORTED_MODULE_0___default().options.positionClass) = 'toast-top-right';\n(toastr__WEBPACK_IMPORTED_MODULE_0___default().options.preventDuplicates) = true;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((toastr__WEBPACK_IMPORTED_MODULE_0___default()));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3V0aWxzL3RvYXN0ci5qcz9jZjdiIl0sIm5hbWVzIjpbInRvYXN0ciJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFFQUEscUVBQUEsR0FBK0IsaUJBQS9CO0FBQ0FBLHlFQUFBLEdBQW1DLElBQW5DO0FBRUEsaUVBQWVBLCtDQUFmIiwiZmlsZSI6Ii4vYXBwL3V0aWxzL3RvYXN0ci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0b2FzdHIgZnJvbSAndG9hc3RyJztcblxudG9hc3RyLm9wdGlvbnMucG9zaXRpb25DbGFzcyA9ICd0b2FzdC10b3AtcmlnaHQnO1xudG9hc3RyLm9wdGlvbnMucHJldmVudER1cGxpY2F0ZXMgPSB0cnVlO1xuXG5leHBvcnQgZGVmYXVsdCB0b2FzdHI7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./app/utils/toastr.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/whitelabel/compile.js":
|
|
/*!***********************************!*\
|
|
!*** ./app/whitelabel/compile.js ***!
|
|
\***********************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ \"prepareElement\": () => (/* binding */ prepareElement),\n/* harmony export */ \"resetElement\": () => (/* binding */ resetElement)\n/* harmony export */ });\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! grav-config */ \"grav-config\");\n/* harmony import */ var grav_config__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(grav_config__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/request */ \"./app/utils/request.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (function () {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$preview = _ref.preview,\n preview = _ref$preview === void 0 ? false : _ref$preview,\n _ref$exportScss = _ref.exportScss,\n exportScss = _ref$exportScss === void 0 ? false : _ref$exportScss,\n _ref$color_scheme = _ref.color_scheme,\n color_scheme = _ref$color_scheme === void 0 ? {} : _ref$color_scheme,\n _ref$fonts = _ref.fonts,\n fonts = _ref$fonts === void 0 ? {} : _ref$fonts,\n _ref$callback = _ref.callback,\n callback = _ref$callback === void 0 ? function () {} : _ref$callback;\n\n var task = exportScss ? 'exportScss' : 'compileScss'; // console.log(config);\n\n var URI = \"\".concat(grav_config__WEBPACK_IMPORTED_MODULE_0__.config.base_url_relative, \".json/task:\").concat(task);\n (0,_utils_request__WEBPACK_IMPORTED_MODULE_1__.default)(URI, {\n method: 'post',\n body: Object.assign({}, preview ? {\n preview: preview\n } : null, color_scheme)\n }, callback);\n});\nvar prepareElement = function prepareElement(element) {\n element.data('busy_right_now', true);\n\n if (!element.data('current_icon')) {\n element.data('current_icon', element.find('.fa').attr('class'));\n }\n\n element.find('.fa').attr('class', 'fa fa-fw fa-spin fa-refresh');\n};\nvar resetElement = function resetElement(element) {\n element.data('busy_right_now', false);\n element.find('.fa').attr('class', element.data('current_icon'));\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3doaXRlbGFiZWwvY29tcGlsZS5qcz9iZjI3Il0sIm5hbWVzIjpbInByZXZpZXciLCJleHBvcnRTY3NzIiwiY29sb3Jfc2NoZW1lIiwiZm9udHMiLCJjYWxsYmFjayIsInRhc2siLCJVUkkiLCJjb25maWciLCJyZXF1ZXN0IiwibWV0aG9kIiwiYm9keSIsIk9iamVjdCIsImFzc2lnbiIsInByZXBhcmVFbGVtZW50IiwiZWxlbWVudCIsImRhdGEiLCJmaW5kIiwiYXR0ciIsInJlc2V0RWxlbWVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUVBLGlFQUFlLFlBQXNHO0FBQUEsaUZBQVAsRUFBTztBQUFBLDBCQUFuR0EsT0FBbUc7QUFBQSxNQUFuR0EsT0FBbUcsNkJBQXpGLEtBQXlGO0FBQUEsNkJBQWxGQyxVQUFrRjtBQUFBLE1BQWxGQSxVQUFrRixnQ0FBckUsS0FBcUU7QUFBQSwrQkFBOURDLFlBQThEO0FBQUEsTUFBOURBLFlBQThELGtDQUEvQyxFQUErQztBQUFBLHdCQUEzQ0MsS0FBMkM7QUFBQSxNQUEzQ0EsS0FBMkMsMkJBQW5DLEVBQW1DO0FBQUEsMkJBQS9CQyxRQUErQjtBQUFBLE1BQS9CQSxRQUErQiw4QkFBcEIsWUFBTSxDQUFFLENBQVk7O0FBQ2pILE1BQUlDLElBQUksR0FBR0osVUFBVSxHQUFHLFlBQUgsR0FBa0IsYUFBdkMsQ0FEaUgsQ0FFakg7O0FBQ0EsTUFBTUssR0FBRyxhQUFNQyxpRUFBTix3QkFBNENGLElBQTVDLENBQVQ7QUFDQUcseURBQU8sQ0FBQ0YsR0FBRCxFQUFNO0FBQ1RHLFVBQU0sRUFBRSxNQURDO0FBRVRDLFFBQUksRUFBRUMsTUFBTSxDQUFDQyxNQUFQLENBQWMsRUFBZCxFQUFrQlosT0FBTyxHQUFHO0FBQUVBLGFBQU8sRUFBUEE7QUFBRixLQUFILEdBQWlCLElBQTFDLEVBQWdERSxZQUFoRDtBQUZHLEdBQU4sRUFHSkUsUUFISSxDQUFQO0FBSUgsQ0FSRDtBQVVPLElBQU1TLGNBQWMsR0FBRyxTQUFqQkEsY0FBaUIsQ0FBQ0MsT0FBRCxFQUFhO0FBQ3ZDQSxTQUFPLENBQUNDLElBQVIsQ0FBYSxnQkFBYixFQUErQixJQUEvQjs7QUFDQSxNQUFJLENBQUNELE9BQU8sQ0FBQ0MsSUFBUixDQUFhLGNBQWIsQ0FBTCxFQUFtQztBQUMvQkQsV0FBTyxDQUFDQyxJQUFSLENBQWEsY0FBYixFQUE2QkQsT0FBTyxDQUFDRSxJQUFSLENBQWEsS0FBYixFQUFvQkMsSUFBcEIsQ0FBeUIsT0FBekIsQ0FBN0I7QUFDSDs7QUFDREgsU0FBTyxDQUFDRSxJQUFSLENBQWEsS0FBYixFQUFvQkMsSUFBcEIsQ0FBeUIsT0FBekIsRUFBa0MsNkJBQWxDO0FBQ0gsQ0FOTTtBQVFBLElBQU1DLFlBQVksR0FBRyxTQUFmQSxZQUFlLENBQUNKLE9BQUQsRUFBYTtBQUNyQ0EsU0FBTyxDQUFDQyxJQUFSLENBQWEsZ0JBQWIsRUFBK0IsS0FBL0I7QUFDQUQsU0FBTyxDQUFDRSxJQUFSLENBQWEsS0FBYixFQUFvQkMsSUFBcEIsQ0FBeUIsT0FBekIsRUFBa0NILE9BQU8sQ0FBQ0MsSUFBUixDQUFhLGNBQWIsQ0FBbEM7QUFDSCxDQUhNIiwiZmlsZSI6Ii4vYXBwL3doaXRlbGFiZWwvY29tcGlsZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ2dyYXYtY29uZmlnJztcbmltcG9ydCByZXF1ZXN0IGZyb20gJy4uL3V0aWxzL3JlcXVlc3QnO1xuXG5leHBvcnQgZGVmYXVsdCAoeyBwcmV2aWV3ID0gZmFsc2UsIGV4cG9ydFNjc3MgPSBmYWxzZSwgY29sb3Jfc2NoZW1lID0ge30sIGZvbnRzID0ge30sIGNhbGxiYWNrID0gKCkgPT4ge30gfSA9IHt9KSA9PiB7XG4gICAgbGV0IHRhc2sgPSBleHBvcnRTY3NzID8gJ2V4cG9ydFNjc3MnIDogJ2NvbXBpbGVTY3NzJztcbiAgICAvLyBjb25zb2xlLmxvZyhjb25maWcpO1xuICAgIGNvbnN0IFVSSSA9IGAke2NvbmZpZy5iYXNlX3VybF9yZWxhdGl2ZX0uanNvbi90YXNrOiR7dGFza31gO1xuICAgIHJlcXVlc3QoVVJJLCB7XG4gICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICBib2R5OiBPYmplY3QuYXNzaWduKHt9LCBwcmV2aWV3ID8geyBwcmV2aWV3IH0gOiBudWxsLCBjb2xvcl9zY2hlbWUpXG4gICAgfSwgY2FsbGJhY2spO1xufTtcblxuZXhwb3J0IGNvbnN0IHByZXBhcmVFbGVtZW50ID0gKGVsZW1lbnQpID0+IHtcbiAgICBlbGVtZW50LmRhdGEoJ2J1c3lfcmlnaHRfbm93JywgdHJ1ZSk7XG4gICAgaWYgKCFlbGVtZW50LmRhdGEoJ2N1cnJlbnRfaWNvbicpKSB7XG4gICAgICAgIGVsZW1lbnQuZGF0YSgnY3VycmVudF9pY29uJywgZWxlbWVudC5maW5kKCcuZmEnKS5hdHRyKCdjbGFzcycpKTtcbiAgICB9XG4gICAgZWxlbWVudC5maW5kKCcuZmEnKS5hdHRyKCdjbGFzcycsICdmYSBmYS1mdyBmYS1zcGluIGZhLXJlZnJlc2gnKTtcbn07XG5cbmV4cG9ydCBjb25zdCByZXNldEVsZW1lbnQgPSAoZWxlbWVudCkgPT4ge1xuICAgIGVsZW1lbnQuZGF0YSgnYnVzeV9yaWdodF9ub3cnLCBmYWxzZSk7XG4gICAgZWxlbWVudC5maW5kKCcuZmEnKS5hdHRyKCdjbGFzcycsIGVsZW1lbnQuZGF0YSgnY3VycmVudF9pY29uJykpO1xufTtcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/whitelabel/compile.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/whitelabel/index.js":
|
|
/*!*********************************!*\
|
|
!*** ./app/whitelabel/index.js ***!
|
|
\*********************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _compile__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./compile */ \"./app/whitelabel/compile.js\");\n/* harmony import */ var _forms__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../forms */ \"./app/forms/index.js\");\n/* harmony import */ var _utils_colors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/colors */ \"./app/utils/colors.js\");\n/* harmony import */ var _presets__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./presets */ \"./app/whitelabel/presets.js\");\n\n\n\n\n\nvar body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body');\nvar FormState = _forms__WEBPACK_IMPORTED_MODULE_2__.default.FormState.Instance;\n\nvar compiler = function compiler(element) {\n var preview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var exportScss = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var _callback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {};\n\n (0,_compile__WEBPACK_IMPORTED_MODULE_1__.prepareElement)(element);\n var fields = FormState.collect();\n (0,_compile__WEBPACK_IMPORTED_MODULE_1__.default)({\n preview: preview,\n exportScss: exportScss,\n color_scheme: !fields ? [] : fields.filter(function (value, key) {\n return key.match(/^data\\[whitelabel]\\[color_scheme]/);\n }).toJS(),\n callback: function callback(response) {\n _callback.call(_callback, response);\n\n (0,_compile__WEBPACK_IMPORTED_MODULE_1__.resetElement)(element);\n }\n });\n};\n\nbody.on('click', '[data-preview-scss]', function (event) {\n event && event.preventDefault();\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n\n if (element.data('busy_right_now')) {\n return false;\n }\n\n compiler(element, true, false, function (response) {\n if (response.files) {\n Object.keys(response.files).forEach(function (key) {\n var file = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#admin-pro-preview-\".concat(key));\n var timestamp = Date.now();\n\n if (!file.length) {\n file = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"<link id=\\\"admin-pro-preview-\".concat(key, \"\\\" type=\\\"text/css\\\" rel=\\\"stylesheet\\\" />\"));\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('head').append(file);\n\n if (!jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-reset-scss]').length) {\n var reset = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<button class=\"button\" data-reset-scss style=\"margin-left: 5px;\"><i class=\"fa fa-fw fa-history\"></i> Reset</button>');\n reset.insertAfter(element);\n }\n }\n\n file.attr('href', \"\".concat(response.files[key], \"?\").concat(timestamp));\n });\n }\n });\n});\nbody.on('click', '[data-recompile-scss]', function (event) {\n event && event.preventDefault();\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n\n if (element.data('busy_right_now')) {\n return false;\n }\n\n compiler(element, true, false);\n});\nbody.on('click', '[data-export-scss]', function (event) {\n event && event.preventDefault();\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n\n if (element.data('busy_right_now')) {\n return false;\n }\n\n compiler(element, true, true, function (response) {\n if (response.files) {\n Object.keys(response.files).forEach(function (key) {\n if (key === 'download') {\n var _element = document.createElement('a');\n\n _element.setAttribute('href', response.files[key]);\n\n _element.setAttribute('download', '');\n\n _element.style.display = 'none';\n document.body.appendChild(_element);\n\n _element.click();\n\n document.body.removeChild(_element);\n }\n });\n }\n });\n});\nbody.on('change._grav_colorpicker', '[data-grav-colorpicker]', function (event, input, hex, opacity) {\n var RGB = (0,_utils_colors__WEBPACK_IMPORTED_MODULE_3__.hex2rgb)(hex);\n var YIQ = (RGB.r * 299 + RGB.g * 587 + RGB.b * 114) / 1000;\n var contrast = YIQ >= 128 || opacity <= 0.50 ? 'dark' : 'light';\n input.parent().removeClass('dark-text light-text').addClass(\"\".concat(contrast, \"-text\"));\n});\nbody.ready(function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-grav-colorpicker]').trigger('keyup');\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3doaXRlbGFiZWwvaW5kZXguanM/MjI5OCJdLCJuYW1lcyI6WyJib2R5IiwiJCIsIkZvcm1TdGF0ZSIsIkZvcm1zIiwiY29tcGlsZXIiLCJlbGVtZW50IiwicHJldmlldyIsImV4cG9ydFNjc3MiLCJjYWxsYmFjayIsInByZXBhcmVFbGVtZW50IiwiZmllbGRzIiwiY29sbGVjdCIsIkNvbXBpbGUiLCJjb2xvcl9zY2hlbWUiLCJmaWx0ZXIiLCJ2YWx1ZSIsImtleSIsIm1hdGNoIiwidG9KUyIsInJlc3BvbnNlIiwiY2FsbCIsInJlc2V0RWxlbWVudCIsIm9uIiwiZXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsImN1cnJlbnRUYXJnZXQiLCJkYXRhIiwiZmlsZXMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImZpbGUiLCJ0aW1lc3RhbXAiLCJEYXRlIiwibm93IiwibGVuZ3RoIiwiYXBwZW5kIiwicmVzZXQiLCJpbnNlcnRBZnRlciIsImF0dHIiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJzZXRBdHRyaWJ1dGUiLCJzdHlsZSIsImRpc3BsYXkiLCJhcHBlbmRDaGlsZCIsImNsaWNrIiwicmVtb3ZlQ2hpbGQiLCJpbnB1dCIsImhleCIsIm9wYWNpdHkiLCJSR0IiLCJoZXgycmdiIiwiWUlRIiwiciIsImciLCJiIiwiY29udHJhc3QiLCJwYXJlbnQiLCJyZW1vdmVDbGFzcyIsImFkZENsYXNzIiwicmVhZHkiLCJ0cmlnZ2VyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLElBQU1BLElBQUksR0FBR0MsNkNBQUMsQ0FBQyxNQUFELENBQWQ7QUFDQSxJQUFNQyxTQUFTLEdBQUdDLDhEQUFsQjs7QUFDQSxJQUFNQyxRQUFRLEdBQUcsU0FBWEEsUUFBVyxDQUFDQyxPQUFELEVBQXVFO0FBQUEsTUFBN0RDLE9BQTZELHVFQUFuRCxLQUFtRDtBQUFBLE1BQTVDQyxVQUE0Qyx1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QUlDLEdBQUcsR0FBR0Msc0RBQU8sQ0FBQ0gsR0FBRCxDQUFqQjtBQUNBLE1BQUlJLEdBQUcsR0FBRyxDQUFFRixHQUFHLENBQUNHLENBQUosR0FBUSxHQUFULEdBQWlCSCxHQUFHLENBQUNJLENBQUosR0FBUSxHQUF6QixHQUFpQ0osR0FBRyxDQUFDSyxDQUFKLEdBQVEsR0FBMUMsSUFBa0QsSUFBNUQ7QUFDQSxNQUFJQyxRQUFRLEdBQUdKLEdBQUcsSUFBSSxHQUFQLElBQWNILE9BQU8sSUFBSSxJQUF6QixHQUFnQyxNQUFoQyxHQUF5QyxPQUF4RDtBQUVBRixPQUFLLENBQUNVLE1BQU4sR0FBZUMsV0FBZixDQUEyQixzQkFBM0IsRUFBbURDLFFBQW5ELFdBQStESCxRQUEvRDtBQUNILENBTkQ7QUFRQXpELElBQUksQ0FBQzZELEtBQUwsQ0FBVyxZQUFNO0FBQ2I1RCwrQ0FBQyxDQUFDLHlCQUFELENBQUQsQ0FBNkI2RCxPQUE3QixDQUFxQyxPQUFyQztBQUNILENBRkQiLCJmaWxlIjoiLi9hcHAvd2hpdGVsYWJlbC9pbmRleC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgQ29tcGlsZSwgeyBwcmVwYXJlRWxlbWVudCwgcmVzZXRFbGVtZW50IH0gZnJvbSAnLi9jb21waWxlJztcbmltcG9ydCBGb3JtcyBmcm9tICcuLi9mb3Jtcyc7XG5pbXBvcnQgeyBoZXgycmdiIH0gZnJvbSAnLi4vdXRpbHMvY29sb3JzJztcbmltcG9ydCAnLi9wcmVzZXRzJztcblxuY29uc3QgYm9keSA9ICQoJ2JvZHknKTtcbmNvbnN0IEZvcm1TdGF0ZSA9IEZvcm1zLkZvcm1TdGF0ZS5JbnN0YW5jZTtcbmNvbnN0IGNvbXBpbGVyID0gKGVsZW1lbnQsIHByZXZpZXcgPSBmYWxzZSwgZXhwb3J0U2NzcyA9IGZhbHNlLCBjYWxsYmFjayA9ICgpID0+IHt9KSA9PiB7XG4gICAgcHJlcGFyZUVsZW1lbnQoZWxlbWVudCk7XG5cbiAgICBsZXQgZmllbGRzID0gRm9ybVN0YXRlLmNvbGxlY3QoKTtcbiAgICBDb21waWxlKHtcbiAgICAgICAgcHJldmlldyxcbiAgICAgICAgZXhwb3J0U2NzcyxcbiAgICAgICAgY29sb3Jfc2NoZW1lOiAhZmllbGRzID8gW10gOiBmaWVsZHMuZmlsdGVyKCh2YWx1ZSwga2V5KSA9PiBrZXkubWF0Y2goL15kYXRhXFxbd2hpdGVsYWJlbF1cXFtjb2xvcl9zY2hlbWVdLykpLnRvSlMoKSxcbiAgICAgICAgY2FsbGJhY2s6IChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgY2FsbGJhY2suY2FsbChjYWxsYmFjaywgcmVzcG9uc2UpO1xuICAgICAgICAgICAgcmVzZXRFbGVtZW50KGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfSk7XG59O1xuXG5ib2R5Lm9uKCdjbGljaycsICdbZGF0YS1wcmV2aWV3LXNjc3NdJywgKGV2ZW50KSA9PiB7XG4gICAgZXZlbnQgJiYgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBsZXQgZWxlbWVudCA9ICQoZXZlbnQuY3VycmVudFRhcmdldCk7XG4gICAgaWYgKGVsZW1lbnQuZGF0YSgnYnVzeV9yaWdodF9ub3cnKSkgeyByZXR1cm4gZmFsc2U7IH1cblxuICAgIGNvbXBpbGVyKGVsZW1lbnQsIHRydWUsIGZhbHNlLCAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgaWYgKHJlc3BvbnNlLmZpbGVzKSB7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhyZXNwb25zZS5maWxlcykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGZpbGUgPSAkKGAjYWRtaW4tcHJvLXByZXZpZXctJHtrZXl9YCk7XG4gICAgICAgICAgICAgICAgbGV0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XG4gICAgICAgICAgICAgICAgaWYgKCFmaWxlLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBmaWxlID0gJChgPGxpbmsgaWQ9XCJhZG1pbi1wcm8tcHJldmlldy0ke2tleX1cIiB0eXBlPVwidGV4dC9jc3NcIiByZWw9XCJzdHlsZXNoZWV0XCIgLz5gKTtcbiAgICAgICAgICAgICAgICAgICAgJCgnaGVhZCcpLmFwcGVuZChmaWxlKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoISQoJ1tkYXRhLXJlc2V0LXNjc3NdJykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVzZXQgPSAkKCc8YnV0dG9uIGNsYXNzPVwiYnV0dG9uXCIgZGF0YS1yZXNldC1zY3NzIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDVweDtcIj48aSBjbGFzcz1cImZhIGZhLWZ3IGZhLWhpc3RvcnlcIj48L2k+IFJlc2V0PC9idXR0b24+Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNldC5pbnNlcnRBZnRlcihlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGZpbGUuYXR0cignaHJlZicsIGAke3Jlc3BvbnNlLmZpbGVzW2tleV19PyR7dGltZXN0YW1wfWApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbn0pO1xuXG5ib2R5Lm9uKCdjbGljaycsICdbZGF0YS1yZWNvbXBpbGUtc2Nzc10nLCAoZXZlbnQpID0+IHtcbiAgICBldmVudCAmJiBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGxldCBlbGVtZW50ID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgICBpZiAoZWxlbWVudC5kYXRhKCdidXN5X3JpZ2h0X25vdycpKSB7IHJldHVybiBmYWxzZTsgfVxuXG4gICAgY29tcGlsZXIoZWxlbWVudCwgdHJ1ZSwgZmFsc2UpO1xufSk7XG5cbmJvZHkub24oJ2NsaWNrJywgJ1tkYXRhLWV4cG9ydC1zY3NzXScsIChldmVudCkgPT4ge1xuICAgIGV2ZW50ICYmIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgbGV0IGVsZW1lbnQgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuICAgIGlmIChlbGVtZW50LmRhdGEoJ2J1c3lfcmlnaHRfbm93JykpIHsgcmV0dXJuIGZhbHNlOyB9XG5cbiAgICBjb21waWxlcihlbGVtZW50LCB0cnVlLCB0cnVlLCAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgaWYgKHJlc3BvbnNlLmZpbGVzKSB7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhyZXNwb25zZS5maWxlcykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGtleSA9PT0gJ2Rvd25sb2FkJykge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCByZXNwb25zZS5maWxlc1trZXldKTtcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgJycpO1xuXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTtcblxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmNsaWNrKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChlbGVtZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xufSk7XG5cbmJvZHkub24oJ2NoYW5nZS5fZ3Jhdl9jb2xvcnBpY2tlcicsICdbZGF0YS1ncmF2LWNvbG9ycGlja2VyXScsIChldmVudCwgaW5wdXQsIGhleCwgb3BhY2l0eSkgPT4ge1xuICAgIGxldCBSR0IgPSBoZXgycmdiKGhleCk7XG4gICAgbGV0IFlJUSA9ICgoUkdCLnIgKiAyOTkpICsgKFJHQi5nICogNTg3KSArIChSR0IuYiAqIDExNCkpIC8gMTAwMDtcbiAgICBsZXQgY29udHJhc3QgPSBZSVEgPj0gMTI4IHx8IG9wYWNpdHkgPD0gMC41MCA/ICdkYXJrJyA6ICdsaWdodCc7XG5cbiAgICBpbnB1dC5wYXJlbnQoKS5yZW1vdmVDbGFzcygnZGFyay10ZXh0IGxpZ2h0LXRleHQnKS5hZGRDbGFzcyhgJHtjb250cmFzdH0tdGV4dGApO1xufSk7XG5cbmJvZHkucmVhZHkoKCkgPT4ge1xuICAgICQoJ1tkYXRhLWdyYXYtY29sb3JwaWNrZXJdJykudHJpZ2dlcigna2V5dXAnKTtcbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/whitelabel/index.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./app/whitelabel/presets.js":
|
|
/*!***********************************!*\
|
|
!*** ./app/whitelabel/presets.js ***!
|
|
\***********************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _forms__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../forms */ \"./app/forms/index.js\");\n\n\nvar body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body');\nvar fields = [];\nvar FormState = _forms__WEBPACK_IMPORTED_MODULE_1__.default.FormState.Instance;\n\nvar setField = function setField(field, value) {\n var name = field.prop('name');\n var tag = field.prop('tagName').toLowerCase();\n var type = field.prop('type');\n fields.push(name);\n\n switch (tag) {\n case 'select':\n field.val(value);\n field.data('selectize').setValue(value);\n field.trigger('change');\n break;\n\n case 'input':\n if (type === 'radio') {\n var strValue = value ? '1' : '0';\n field.filter(function (index, radio) {\n return jquery__WEBPACK_IMPORTED_MODULE_0___default()(radio).val() === strValue;\n }).prop('checked', true);\n break;\n }\n\n if (type === 'checkbox') {\n field.prop('checked', value);\n break;\n }\n\n field.val(value);\n field.trigger('keyup');\n }\n};\n\nbody.on('click', '[data-preset-values]', function (event) {\n var target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var data = target.data('preset-values');\n Object.keys(data).forEach(function (section) {\n if (typeof data[section] === 'string') {\n return;\n }\n\n Object.keys(data[section]).forEach(function (key) {\n var field = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[name=\\\"data[whitelabel][color_scheme][\".concat(section, \"][\").concat(key, \"]\\\"], [name=\\\"data[\").concat(section, \"][\").concat(key, \"]\\\"]\"));\n var value = data[section][key];\n setField(field, value);\n });\n });\n});\nbody.on('click', '[data-reset-scss]', function (event) {\n event && event.preventDefault();\n var element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.currentTarget);\n var links = jquery__WEBPACK_IMPORTED_MODULE_0___default()('link[id^=admin-pro-preview-]');\n element.remove();\n links.remove();\n fields.forEach(function (field) {\n var value = FormState.loadState.get(field);\n setField(jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[name=\\\"\".concat(field, \"\\\"]\")), value);\n });\n fields = [];\n}); // Horizontal Scroll Functionality\n\n(jquery__WEBPACK_IMPORTED_MODULE_0___default().fn.hscrollarrows) = function () {\n return this.each(function () {\n var navNext = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<a class=\"nav-next hide\"></a>');\n var navPrev = jquery__WEBPACK_IMPORTED_MODULE_0___default()('<a class=\"nav-prev hide\"></a>');\n var scrollTime = null;\n var resizeTime = null;\n var scrolling = false;\n var elm_w = 0;\n var elem_data_w = 0;\n var max_scroll = 0;\n var inc_scroll = 0;\n\n var calcData = function calcData() {\n elm_w = elem.width();\n elem_data_w = elem_data.get(0).scrollWidth;\n max_scroll = elem_data_w - elm_w;\n inc_scroll = elm_w * 0.3; // 20%\n };\n\n var revalidate = function revalidate() {\n calcData();\n stateNavs();\n };\n\n var run = function run() {\n calcData();\n setupNavs();\n };\n\n var setupNavs = function setupNavs() {\n elem.parent().prepend(navNext);\n elem.parent().prepend(navPrev);\n navNext.on('click', next);\n navPrev.on('click', prev);\n stateNavs();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(elem).scroll(function () {\n if (!scrolling) {\n clearTimeout(scrollTime);\n scrollTime = setTimeout(function () {\n stateNavs();\n }, 250);\n }\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).resize(function () {\n clearTimeout(resizeTime);\n resizeTime = setTimeout(function () {\n revalidate();\n }, 250);\n });\n };\n\n var stateNavs = function stateNavs() {\n var current_scroll = elem.scrollLeft();\n\n if (current_scroll < max_scroll) {\n navNext.removeClass('hide');\n } else {\n navNext.addClass('hide');\n }\n\n if (current_scroll > 0) {\n navPrev.removeClass('hide');\n } else {\n navPrev.addClass('hide');\n }\n\n scrolling = false;\n };\n\n var next = function next() {\n var current_scroll = elem.scrollLeft();\n\n if (current_scroll < max_scroll) {\n scrolling = true;\n elem.stop().animate({\n scrollLeft: current_scroll + inc_scroll\n }, stateNavs);\n }\n };\n\n var prev = function prev() {\n var current_scroll = elem.scrollLeft();\n\n if (current_scroll > 0) {\n scrolling = true;\n elem.stop().animate({\n scrollLeft: current_scroll - inc_scroll\n }, stateNavs);\n }\n };\n\n var elem = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n var elem_data = jquery__WEBPACK_IMPORTED_MODULE_0___default()(':first-child', elem);\n run();\n });\n};\n\njquery__WEBPACK_IMPORTED_MODULE_0___default()(document).ready(function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('.jquery-horizontal-scroll').hscrollarrows();\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9HcmF2Ly4vYXBwL3doaXRlbGFiZWwvcHJlc2V0cy5qcz8zMjNjIl0sIm5hbWVzIjpbImJvZHkiLCIkIiwiZmllbGRzIiwiRm9ybVN0YXRlIiwiRm9ybXMiLCJzZXRGaWVsZCIsImZpZWxkIiwidmFsdWUiLCJuYW1lIiwicHJvcCIsInRhZyIsInRvTG93ZXJDYXNlIiwidHlwZSIsInB1c2giLCJ2YWwiLCJkYXRhIiwic2V0VmFsdWUiLCJ0cmlnZ2VyIiwic3RyVmFsdWUiLCJmaWx0ZXIiLCJpbmRleCIsInJhZGlvIiwib24iLCJldmVudCIsInRhcmdldCIsImN1cnJlbnRUYXJnZXQiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsInNlY3Rpb24iLCJrZXkiLCJwcmV2ZW50RGVmYXVsdCIsImVsZW1lbnQiLCJsaW5rcyIsInJlbW92ZSIsImxvYWRTdGF0ZSIsImdldCIsImVhY2giLCJuYXZOZXh0IiwibmF2UHJldiIsInNjcm9sbFRpbWUiLCJyZXNpemVUaW1lIiwic2Nyb2xsaW5nIiwiZWxtX3ciLCJlbGVtX2RhdGFfdyIsIm1heF9zY3JvbGwiLCJpbmNfc2Nyb2xsIiwiY2FsY0RhdGEiLCJlbGVtIiwid2lkdGgiLCJlbGVtX2RhdGEiLCJzY3JvbGxXaWR0aCIsInJldmFsaWRhdGUiLCJzdGF0ZU5hdnMiLCJydW4iLCJzZXR1cE5hdnMiLCJwYXJlbnQiLCJwcmVwZW5kIiwibmV4dCIsInByZXYiLCJzY3JvbGwiLCJjbGVhclRpbWVvdXQiLCJzZXRUaW1lb3V0Iiwid2luZG93IiwicmVzaXplIiwiY3VycmVudF9zY3JvbGwiLCJzY3JvbGxMZWZ0IiwicmVtb3ZlQ2xhc3MiLCJhZGRDbGFzcyIsInN0b3AiLCJhbmltYXRlIiwiZG9jdW1lbnQiLCJyZWFkeSIsImhzY3JvbGxhcnJvd3MiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBRUEsSUFBSUEsSUFBSSxHQUFHQyw2Q0FBQyxDQUFDLE1BQUQsQ0FBWjtBQUNBLElBQUlDLE1BQU0s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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCBGb3JtcyBmcm9tICcuLi9mb3Jtcyc7XG5cbmxldCBib2R5ID0gJCgnYm9keScpO1xubGV0IGZpZWxkcyA9IFtdO1xuY29uc3QgRm9ybVN0YXRlID0gRm9ybXMuRm9ybVN0YXRlLkluc3RhbmNlO1xuY29uc3Qgc2V0RmllbGQgPSAoZmllbGQsIHZhbHVlKSA9PiB7XG4gICAgbGV0IG5hbWUgPSBmaWVsZC5wcm9wKCduYW1lJyk7XG4gICAgbGV0IHRhZyA9IGZpZWxkLnByb3AoJ3RhZ05hbWUnKS50b0xvd2VyQ2FzZSgpO1xuICAgIGxldCB0eXBlID0gZmllbGQucHJvcCgndHlwZScpO1xuXG4gICAgZmllbGRzLnB1c2gobmFtZSk7XG4gICAgc3dpdGNoICh0YWcpIHtcbiAgICAgICAgY2FzZSAnc2VsZWN0JzpcbiAgICAgICAgICAgIGZpZWxkLnZhbCh2YWx1ZSk7XG4gICAgICAgICAgICBmaWVsZC5kYXRhKCdzZWxlY3RpemUnKS5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgICAgICBmaWVsZC50cmlnZ2VyKCdjaGFuZ2UnKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdpbnB1dCc6XG4gICAgICAgICAgICBpZiAodHlwZSA9PT0gJ3JhZGlvJykge1xuICAgICAgICAgICAgICAgIGxldCBzdHJWYWx1ZSA9IHZhbHVlID8gJzEnIDogJzAnO1xuICAgICAgICAgICAgICAgIGZpZWxkLmZpbHRlcigoaW5kZXgsIHJhZGlvKSA9PiAkKHJhZGlvKS52YWwoKSA9PT0gc3RyVmFsdWUpLnByb3AoJ2NoZWNrZWQnLCB0cnVlKTtcblxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZSA9PT0gJ2NoZWNrYm94Jykge1xuICAgICAgICAgICAgICAgIGZpZWxkLnByb3AoJ2NoZWNrZWQnLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaWVsZC52YWwodmFsdWUpO1xuICAgICAgICAgICAgZmllbGQudHJpZ2dlcigna2V5dXAnKTtcbiAgICB9XG59O1xuXG5ib2R5Lm9uKCdjbGljaycsICdbZGF0YS1wcmVzZXQtdmFsdWVzXScsIChldmVudCkgPT4ge1xuICAgIGxldCB0YXJnZXQgPSAkKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuICAgIGxldCBkYXRhID0gdGFyZ2V0LmRhdGEoJ3ByZXNldC12YWx1ZXMnKTtcblxuICAgIE9iamVjdC5rZXlzKGRhdGEpLmZvckVhY2goKHNlY3Rpb24pID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBkYXRhW3NlY3Rpb25dID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgT2JqZWN0LmtleXMoZGF0YVtzZWN0aW9uXSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICBsZXQgZmllbGQgPSAkKGBbbmFtZT1cImRhdGFbd2hpdGVsYWJlbF1bY29sb3Jfc2NoZW1lXVske3NlY3Rpb259XVske2tleX1dXCJdLCBbbmFtZT1cImRhdGFbJHtzZWN0aW9ufV1bJHtrZXl9XVwiXWApO1xuICAgICAgICAgICAgbGV0IHZhbHVlID0gZGF0YVtzZWN0aW9uXVtrZXldO1xuICAgICAgICAgICAgc2V0RmllbGQoZmllbGQsIHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59KTtcblxuYm9keS5vbignY2xpY2snLCAnW2RhdGEtcmVzZXQtc2Nzc10nLCAoZXZlbnQpID0+IHtcbiAgICBldmVudCAmJiBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGxldCBlbGVtZW50ID0gJChldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgICBsZXQgbGlua3MgPSAkKCdsaW5rW2lkXj1hZG1pbi1wcm8tcHJldmlldy1dJyk7XG5cbiAgICBlbGVtZW50LnJlbW92ZSgpO1xuICAgIGxpbmtzLnJlbW92ZSgpO1xuXG4gICAgZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICAgIGxldCB2YWx1ZSA9IEZvcm1TdGF0ZS5sb2FkU3RhdGUuZ2V0KGZpZWxkKTtcbiAgICAgICAgc2V0RmllbGQoJChgW25hbWU9XCIke2ZpZWxkfVwiXWApLCB2YWx1ZSk7XG4gICAgfSk7XG4gICAgZmllbGRzID0gW107XG59KTtcblxuLy8gSG9yaXpvbnRhbCBTY3JvbGwgRnVuY3Rpb25hbGl0eVxuJC5mbi5oc2Nyb2xsYXJyb3dzID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHtcblxuICAgICAgICBsZXQgbmF2TmV4dCA9ICQoJzxhIGNsYXNzPVwibmF2LW5leHQgaGlkZVwiPjwvYT4nKTtcbiAgICAgICAgbGV0IG5hdlByZXYgPSAkKCc8YSBjbGFzcz1cIm5hdi1wcmV2IGhpZGVcIj48L2E+Jyk7XG4gICAgICAgIGxldCBzY3JvbGxUaW1lID0gbnVsbDtcbiAgICAgICAgbGV0IHJlc2l6ZVRpbWUgPSBudWxsO1xuICAgICAgICBsZXQgc2Nyb2xsaW5nID0gZmFsc2U7XG5cbiAgICAgICAgbGV0IGVsbV93ID0gMDtcbiAgICAgICAgbGV0IGVsZW1fZGF0YV93ID0gMDtcbiAgICAgICAgbGV0IG1heF9zY3JvbGwgPSAwO1xuICAgICAgICBsZXQgaW5jX3Njcm9sbCA9IDA7XG5cbiAgICAgICAgbGV0IGNhbGNEYXRhID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBlbG1fdyA9IGVsZW0ud2lkdGgoKTtcbiAgICAgICAgICAgIGVsZW1fZGF0YV93ID0gZWxlbV9kYXRhLmdldCgwKS5zY3JvbGxXaWR0aDtcbiAgICAgICAgICAgIG1heF9zY3JvbGwgPSBlbGVtX2RhdGFfdyAtIGVsbV93O1xuICAgICAgICAgICAgaW5jX3Njcm9sbCA9IGVsbV93ICogMC4zOyAvLyAyMCVcbiAgICAgICAgfTtcblxuICAgICAgICBsZXQgcmV2YWxpZGF0ZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgY2FsY0RhdGEoKTtcbiAgICAgICAgICAgIHN0YXRlTmF2cygpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGxldCBydW4gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGNhbGNEYXRhKCk7XG4gICAgICAgICAgICBzZXR1cE5hdnMoKTtcbiAgICAgICAgfTtcblxuICAgICAgICBsZXQgc2V0dXBOYXZzID0gZnVuY3Rpb24oKSB7XG5cbiAgICAgICAgICAgIGVsZW0ucGFyZW50KCkucHJlcGVuZChuYXZOZXh0KTtcbiAgICAgICAgICAgIGVsZW0ucGFyZW50KCkucHJlcGVuZChuYXZQcmV2KTtcbiAgICAgICAgICAgIG5hdk5leHQub24oJ2NsaWNrJywgbmV4dCk7XG4gICAgICAgICAgICBuYXZQcmV2Lm9uKCdjbGljaycsIHByZXYpO1xuICAgICAgICAgICAgc3RhdGVOYXZzKCk7XG5cbiAgICAgICAgICAgICQoZWxlbSkuc2Nyb2xsKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIGlmICghc2Nyb2xsaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dChzY3JvbGxUaW1lKTtcbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVGltZSA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZU5hdnMoKTtcbiAgICAgICAgICAgICAgICAgICAgfSwgMjUwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgJCh3aW5kb3cpLnJlc2l6ZShmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQocmVzaXplVGltZSk7XG4gICAgICAgICAgICAgICAgcmVzaXplVGltZSA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGUoKTtcbiAgICAgICAgICAgICAgICB9LCAyNTApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgbGV0IHN0YXRlTmF2cyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgbGV0IGN1cnJlbnRfc2Nyb2xsID0gZWxlbS5zY3JvbGxMZWZ0KCk7XG4gICAgICAgICAgICBpZiAoY3VycmVudF9zY3JvbGwgPCBtYXhfc2Nyb2xsKSB7XG4gICAgICAgICAgICAgICAgbmF2TmV4dC5yZW1vdmVDbGFzcygnaGlkZScpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuYXZOZXh0LmFkZENsYXNzKCdoaWRlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY3VycmVudF9zY3JvbGwgPiAwKSB7XG4gICAgICAgICAgICAgICAgbmF2UHJldi5yZW1vdmVDbGFzcygnaGlkZScpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuYXZQcmV2LmFkZENsYXNzKCdoaWRlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzY3JvbGxpbmcgPSBmYWxzZTtcbiAgICAgICAgfTtcblxuICAgICAgICBsZXQgbmV4dCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgbGV0IGN1cnJlbnRfc2Nyb2xsID0gZWxlbS5zY3JvbGxMZWZ0KCk7XG4gICAgICAgICAgICBpZiAoY3VycmVudF9zY3JvbGwgPCBtYXhfc2Nyb2xsKSB7XG4gICAgICAgICAgICAgICAgc2Nyb2xsaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBlbGVtLnN0b3AoKS5hbmltYXRlKHtcbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsTGVmdDogKGN1cnJlbnRfc2Nyb2xsICsgaW5jX3Njcm9sbClcbiAgICAgICAgICAgICAgICB9LCBzdGF0ZU5hdnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIGxldCBwcmV2ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBsZXQgY3VycmVudF9zY3JvbGwgPSBlbGVtLnNjcm9sbExlZnQoKTtcbiAgICAgICAgICAgIGlmIChjdXJyZW50X3Njcm9sbCA+IDApIHtcbiAgICAgICAgICAgICAgICBzY3JvbGxpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGVsZW0uc3RvcCgpLmFuaW1hdGUoe1xuICAgICAgICAgICAgICAgICAgICBzY3JvbGxMZWZ0OiAoY3VycmVudF9zY3JvbGwgLSBpbmNfc2Nyb2xsKVxuICAgICAgICAgICAgICAgIH0sIHN0YXRlTmF2cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgbGV0IGVsZW0gPSAkKHRoaXMpO1xuICAgICAgICBsZXQgZWxlbV9kYXRhID0gJCgnOmZpcnN0LWNoaWxkJywgZWxlbSk7XG4gICAgICAgIHJ1bigpO1xuXG4gICAgfSk7XG59O1xuXG4kKGRvY3VtZW50KS5yZWFkeSgoKSA9PiB7XG4gICAgJCgnLmpxdWVyeS1ob3Jpem9udGFsLXNjcm9sbCcpLmhzY3JvbGxhcnJvd3MoKTtcbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/whitelabel/presets.js\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./node_modules/moment/locale sync recursive ^\\.\\/.*$":
|
|
/*!***************************************************!*\
|
|
!*** ./node_modules/moment/locale/ sync ^\.\/.*$ ***!
|
|
\***************************************************/
|
|
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
|
|
|
var map = {
|
|
"./af": "./node_modules/moment/locale/af.js",
|
|
"./af.js": "./node_modules/moment/locale/af.js",
|
|
"./ar": "./node_modules/moment/locale/ar.js",
|
|
"./ar-dz": "./node_modules/moment/locale/ar-dz.js",
|
|
"./ar-dz.js": "./node_modules/moment/locale/ar-dz.js",
|
|
"./ar-kw": "./node_modules/moment/locale/ar-kw.js",
|
|
"./ar-kw.js": "./node_modules/moment/locale/ar-kw.js",
|
|
"./ar-ly": "./node_modules/moment/locale/ar-ly.js",
|
|
"./ar-ly.js": "./node_modules/moment/locale/ar-ly.js",
|
|
"./ar-ma": "./node_modules/moment/locale/ar-ma.js",
|
|
"./ar-ma.js": "./node_modules/moment/locale/ar-ma.js",
|
|
"./ar-sa": "./node_modules/moment/locale/ar-sa.js",
|
|
"./ar-sa.js": "./node_modules/moment/locale/ar-sa.js",
|
|
"./ar-tn": "./node_modules/moment/locale/ar-tn.js",
|
|
"./ar-tn.js": "./node_modules/moment/locale/ar-tn.js",
|
|
"./ar.js": "./node_modules/moment/locale/ar.js",
|
|
"./az": "./node_modules/moment/locale/az.js",
|
|
"./az.js": "./node_modules/moment/locale/az.js",
|
|
"./be": "./node_modules/moment/locale/be.js",
|
|
"./be.js": "./node_modules/moment/locale/be.js",
|
|
"./bg": "./node_modules/moment/locale/bg.js",
|
|
"./bg.js": "./node_modules/moment/locale/bg.js",
|
|
"./bm": "./node_modules/moment/locale/bm.js",
|
|
"./bm.js": "./node_modules/moment/locale/bm.js",
|
|
"./bn": "./node_modules/moment/locale/bn.js",
|
|
"./bn-bd": "./node_modules/moment/locale/bn-bd.js",
|
|
"./bn-bd.js": "./node_modules/moment/locale/bn-bd.js",
|
|
"./bn.js": "./node_modules/moment/locale/bn.js",
|
|
"./bo": "./node_modules/moment/locale/bo.js",
|
|
"./bo.js": "./node_modules/moment/locale/bo.js",
|
|
"./br": "./node_modules/moment/locale/br.js",
|
|
"./br.js": "./node_modules/moment/locale/br.js",
|
|
"./bs": "./node_modules/moment/locale/bs.js",
|
|
"./bs.js": "./node_modules/moment/locale/bs.js",
|
|
"./ca": "./node_modules/moment/locale/ca.js",
|
|
"./ca.js": "./node_modules/moment/locale/ca.js",
|
|
"./cs": "./node_modules/moment/locale/cs.js",
|
|
"./cs.js": "./node_modules/moment/locale/cs.js",
|
|
"./cv": "./node_modules/moment/locale/cv.js",
|
|
"./cv.js": "./node_modules/moment/locale/cv.js",
|
|
"./cy": "./node_modules/moment/locale/cy.js",
|
|
"./cy.js": "./node_modules/moment/locale/cy.js",
|
|
"./da": "./node_modules/moment/locale/da.js",
|
|
"./da.js": "./node_modules/moment/locale/da.js",
|
|
"./de": "./node_modules/moment/locale/de.js",
|
|
"./de-at": "./node_modules/moment/locale/de-at.js",
|
|
"./de-at.js": "./node_modules/moment/locale/de-at.js",
|
|
"./de-ch": "./node_modules/moment/locale/de-ch.js",
|
|
"./de-ch.js": "./node_modules/moment/locale/de-ch.js",
|
|
"./de.js": "./node_modules/moment/locale/de.js",
|
|
"./dv": "./node_modules/moment/locale/dv.js",
|
|
"./dv.js": "./node_modules/moment/locale/dv.js",
|
|
"./el": "./node_modules/moment/locale/el.js",
|
|
"./el.js": "./node_modules/moment/locale/el.js",
|
|
"./en-au": "./node_modules/moment/locale/en-au.js",
|
|
"./en-au.js": "./node_modules/moment/locale/en-au.js",
|
|
"./en-ca": "./node_modules/moment/locale/en-ca.js",
|
|
"./en-ca.js": "./node_modules/moment/locale/en-ca.js",
|
|
"./en-gb": "./node_modules/moment/locale/en-gb.js",
|
|
"./en-gb.js": "./node_modules/moment/locale/en-gb.js",
|
|
"./en-ie": "./node_modules/moment/locale/en-ie.js",
|
|
"./en-ie.js": "./node_modules/moment/locale/en-ie.js",
|
|
"./en-il": "./node_modules/moment/locale/en-il.js",
|
|
"./en-il.js": "./node_modules/moment/locale/en-il.js",
|
|
"./en-in": "./node_modules/moment/locale/en-in.js",
|
|
"./en-in.js": "./node_modules/moment/locale/en-in.js",
|
|
"./en-nz": "./node_modules/moment/locale/en-nz.js",
|
|
"./en-nz.js": "./node_modules/moment/locale/en-nz.js",
|
|
"./en-sg": "./node_modules/moment/locale/en-sg.js",
|
|
"./en-sg.js": "./node_modules/moment/locale/en-sg.js",
|
|
"./eo": "./node_modules/moment/locale/eo.js",
|
|
"./eo.js": "./node_modules/moment/locale/eo.js",
|
|
"./es": "./node_modules/moment/locale/es.js",
|
|
"./es-do": "./node_modules/moment/locale/es-do.js",
|
|
"./es-do.js": "./node_modules/moment/locale/es-do.js",
|
|
"./es-mx": "./node_modules/moment/locale/es-mx.js",
|
|
"./es-mx.js": "./node_modules/moment/locale/es-mx.js",
|
|
"./es-us": "./node_modules/moment/locale/es-us.js",
|
|
"./es-us.js": "./node_modules/moment/locale/es-us.js",
|
|
"./es.js": "./node_modules/moment/locale/es.js",
|
|
"./et": "./node_modules/moment/locale/et.js",
|
|
"./et.js": "./node_modules/moment/locale/et.js",
|
|
"./eu": "./node_modules/moment/locale/eu.js",
|
|
"./eu.js": "./node_modules/moment/locale/eu.js",
|
|
"./fa": "./node_modules/moment/locale/fa.js",
|
|
"./fa.js": "./node_modules/moment/locale/fa.js",
|
|
"./fi": "./node_modules/moment/locale/fi.js",
|
|
"./fi.js": "./node_modules/moment/locale/fi.js",
|
|
"./fil": "./node_modules/moment/locale/fil.js",
|
|
"./fil.js": "./node_modules/moment/locale/fil.js",
|
|
"./fo": "./node_modules/moment/locale/fo.js",
|
|
"./fo.js": "./node_modules/moment/locale/fo.js",
|
|
"./fr": "./node_modules/moment/locale/fr.js",
|
|
"./fr-ca": "./node_modules/moment/locale/fr-ca.js",
|
|
"./fr-ca.js": "./node_modules/moment/locale/fr-ca.js",
|
|
"./fr-ch": "./node_modules/moment/locale/fr-ch.js",
|
|
"./fr-ch.js": "./node_modules/moment/locale/fr-ch.js",
|
|
"./fr.js": "./node_modules/moment/locale/fr.js",
|
|
"./fy": "./node_modules/moment/locale/fy.js",
|
|
"./fy.js": "./node_modules/moment/locale/fy.js",
|
|
"./ga": "./node_modules/moment/locale/ga.js",
|
|
"./ga.js": "./node_modules/moment/locale/ga.js",
|
|
"./gd": "./node_modules/moment/locale/gd.js",
|
|
"./gd.js": "./node_modules/moment/locale/gd.js",
|
|
"./gl": "./node_modules/moment/locale/gl.js",
|
|
"./gl.js": "./node_modules/moment/locale/gl.js",
|
|
"./gom-deva": "./node_modules/moment/locale/gom-deva.js",
|
|
"./gom-deva.js": "./node_modules/moment/locale/gom-deva.js",
|
|
"./gom-latn": "./node_modules/moment/locale/gom-latn.js",
|
|
"./gom-latn.js": "./node_modules/moment/locale/gom-latn.js",
|
|
"./gu": "./node_modules/moment/locale/gu.js",
|
|
"./gu.js": "./node_modules/moment/locale/gu.js",
|
|
"./he": "./node_modules/moment/locale/he.js",
|
|
"./he.js": "./node_modules/moment/locale/he.js",
|
|
"./hi": "./node_modules/moment/locale/hi.js",
|
|
"./hi.js": "./node_modules/moment/locale/hi.js",
|
|
"./hr": "./node_modules/moment/locale/hr.js",
|
|
"./hr.js": "./node_modules/moment/locale/hr.js",
|
|
"./hu": "./node_modules/moment/locale/hu.js",
|
|
"./hu.js": "./node_modules/moment/locale/hu.js",
|
|
"./hy-am": "./node_modules/moment/locale/hy-am.js",
|
|
"./hy-am.js": "./node_modules/moment/locale/hy-am.js",
|
|
"./id": "./node_modules/moment/locale/id.js",
|
|
"./id.js": "./node_modules/moment/locale/id.js",
|
|
"./is": "./node_modules/moment/locale/is.js",
|
|
"./is.js": "./node_modules/moment/locale/is.js",
|
|
"./it": "./node_modules/moment/locale/it.js",
|
|
"./it-ch": "./node_modules/moment/locale/it-ch.js",
|
|
"./it-ch.js": "./node_modules/moment/locale/it-ch.js",
|
|
"./it.js": "./node_modules/moment/locale/it.js",
|
|
"./ja": "./node_modules/moment/locale/ja.js",
|
|
"./ja.js": "./node_modules/moment/locale/ja.js",
|
|
"./jv": "./node_modules/moment/locale/jv.js",
|
|
"./jv.js": "./node_modules/moment/locale/jv.js",
|
|
"./ka": "./node_modules/moment/locale/ka.js",
|
|
"./ka.js": "./node_modules/moment/locale/ka.js",
|
|
"./kk": "./node_modules/moment/locale/kk.js",
|
|
"./kk.js": "./node_modules/moment/locale/kk.js",
|
|
"./km": "./node_modules/moment/locale/km.js",
|
|
"./km.js": "./node_modules/moment/locale/km.js",
|
|
"./kn": "./node_modules/moment/locale/kn.js",
|
|
"./kn.js": "./node_modules/moment/locale/kn.js",
|
|
"./ko": "./node_modules/moment/locale/ko.js",
|
|
"./ko.js": "./node_modules/moment/locale/ko.js",
|
|
"./ku": "./node_modules/moment/locale/ku.js",
|
|
"./ku.js": "./node_modules/moment/locale/ku.js",
|
|
"./ky": "./node_modules/moment/locale/ky.js",
|
|
"./ky.js": "./node_modules/moment/locale/ky.js",
|
|
"./lb": "./node_modules/moment/locale/lb.js",
|
|
"./lb.js": "./node_modules/moment/locale/lb.js",
|
|
"./lo": "./node_modules/moment/locale/lo.js",
|
|
"./lo.js": "./node_modules/moment/locale/lo.js",
|
|
"./lt": "./node_modules/moment/locale/lt.js",
|
|
"./lt.js": "./node_modules/moment/locale/lt.js",
|
|
"./lv": "./node_modules/moment/locale/lv.js",
|
|
"./lv.js": "./node_modules/moment/locale/lv.js",
|
|
"./me": "./node_modules/moment/locale/me.js",
|
|
"./me.js": "./node_modules/moment/locale/me.js",
|
|
"./mi": "./node_modules/moment/locale/mi.js",
|
|
"./mi.js": "./node_modules/moment/locale/mi.js",
|
|
"./mk": "./node_modules/moment/locale/mk.js",
|
|
"./mk.js": "./node_modules/moment/locale/mk.js",
|
|
"./ml": "./node_modules/moment/locale/ml.js",
|
|
"./ml.js": "./node_modules/moment/locale/ml.js",
|
|
"./mn": "./node_modules/moment/locale/mn.js",
|
|
"./mn.js": "./node_modules/moment/locale/mn.js",
|
|
"./mr": "./node_modules/moment/locale/mr.js",
|
|
"./mr.js": "./node_modules/moment/locale/mr.js",
|
|
"./ms": "./node_modules/moment/locale/ms.js",
|
|
"./ms-my": "./node_modules/moment/locale/ms-my.js",
|
|
"./ms-my.js": "./node_modules/moment/locale/ms-my.js",
|
|
"./ms.js": "./node_modules/moment/locale/ms.js",
|
|
"./mt": "./node_modules/moment/locale/mt.js",
|
|
"./mt.js": "./node_modules/moment/locale/mt.js",
|
|
"./my": "./node_modules/moment/locale/my.js",
|
|
"./my.js": "./node_modules/moment/locale/my.js",
|
|
"./nb": "./node_modules/moment/locale/nb.js",
|
|
"./nb.js": "./node_modules/moment/locale/nb.js",
|
|
"./ne": "./node_modules/moment/locale/ne.js",
|
|
"./ne.js": "./node_modules/moment/locale/ne.js",
|
|
"./nl": "./node_modules/moment/locale/nl.js",
|
|
"./nl-be": "./node_modules/moment/locale/nl-be.js",
|
|
"./nl-be.js": "./node_modules/moment/locale/nl-be.js",
|
|
"./nl.js": "./node_modules/moment/locale/nl.js",
|
|
"./nn": "./node_modules/moment/locale/nn.js",
|
|
"./nn.js": "./node_modules/moment/locale/nn.js",
|
|
"./oc-lnc": "./node_modules/moment/locale/oc-lnc.js",
|
|
"./oc-lnc.js": "./node_modules/moment/locale/oc-lnc.js",
|
|
"./pa-in": "./node_modules/moment/locale/pa-in.js",
|
|
"./pa-in.js": "./node_modules/moment/locale/pa-in.js",
|
|
"./pl": "./node_modules/moment/locale/pl.js",
|
|
"./pl.js": "./node_modules/moment/locale/pl.js",
|
|
"./pt": "./node_modules/moment/locale/pt.js",
|
|
"./pt-br": "./node_modules/moment/locale/pt-br.js",
|
|
"./pt-br.js": "./node_modules/moment/locale/pt-br.js",
|
|
"./pt.js": "./node_modules/moment/locale/pt.js",
|
|
"./ro": "./node_modules/moment/locale/ro.js",
|
|
"./ro.js": "./node_modules/moment/locale/ro.js",
|
|
"./ru": "./node_modules/moment/locale/ru.js",
|
|
"./ru.js": "./node_modules/moment/locale/ru.js",
|
|
"./sd": "./node_modules/moment/locale/sd.js",
|
|
"./sd.js": "./node_modules/moment/locale/sd.js",
|
|
"./se": "./node_modules/moment/locale/se.js",
|
|
"./se.js": "./node_modules/moment/locale/se.js",
|
|
"./si": "./node_modules/moment/locale/si.js",
|
|
"./si.js": "./node_modules/moment/locale/si.js",
|
|
"./sk": "./node_modules/moment/locale/sk.js",
|
|
"./sk.js": "./node_modules/moment/locale/sk.js",
|
|
"./sl": "./node_modules/moment/locale/sl.js",
|
|
"./sl.js": "./node_modules/moment/locale/sl.js",
|
|
"./sq": "./node_modules/moment/locale/sq.js",
|
|
"./sq.js": "./node_modules/moment/locale/sq.js",
|
|
"./sr": "./node_modules/moment/locale/sr.js",
|
|
"./sr-cyrl": "./node_modules/moment/locale/sr-cyrl.js",
|
|
"./sr-cyrl.js": "./node_modules/moment/locale/sr-cyrl.js",
|
|
"./sr.js": "./node_modules/moment/locale/sr.js",
|
|
"./ss": "./node_modules/moment/locale/ss.js",
|
|
"./ss.js": "./node_modules/moment/locale/ss.js",
|
|
"./sv": "./node_modules/moment/locale/sv.js",
|
|
"./sv.js": "./node_modules/moment/locale/sv.js",
|
|
"./sw": "./node_modules/moment/locale/sw.js",
|
|
"./sw.js": "./node_modules/moment/locale/sw.js",
|
|
"./ta": "./node_modules/moment/locale/ta.js",
|
|
"./ta.js": "./node_modules/moment/locale/ta.js",
|
|
"./te": "./node_modules/moment/locale/te.js",
|
|
"./te.js": "./node_modules/moment/locale/te.js",
|
|
"./tet": "./node_modules/moment/locale/tet.js",
|
|
"./tet.js": "./node_modules/moment/locale/tet.js",
|
|
"./tg": "./node_modules/moment/locale/tg.js",
|
|
"./tg.js": "./node_modules/moment/locale/tg.js",
|
|
"./th": "./node_modules/moment/locale/th.js",
|
|
"./th.js": "./node_modules/moment/locale/th.js",
|
|
"./tk": "./node_modules/moment/locale/tk.js",
|
|
"./tk.js": "./node_modules/moment/locale/tk.js",
|
|
"./tl-ph": "./node_modules/moment/locale/tl-ph.js",
|
|
"./tl-ph.js": "./node_modules/moment/locale/tl-ph.js",
|
|
"./tlh": "./node_modules/moment/locale/tlh.js",
|
|
"./tlh.js": "./node_modules/moment/locale/tlh.js",
|
|
"./tr": "./node_modules/moment/locale/tr.js",
|
|
"./tr.js": "./node_modules/moment/locale/tr.js",
|
|
"./tzl": "./node_modules/moment/locale/tzl.js",
|
|
"./tzl.js": "./node_modules/moment/locale/tzl.js",
|
|
"./tzm": "./node_modules/moment/locale/tzm.js",
|
|
"./tzm-latn": "./node_modules/moment/locale/tzm-latn.js",
|
|
"./tzm-latn.js": "./node_modules/moment/locale/tzm-latn.js",
|
|
"./tzm.js": "./node_modules/moment/locale/tzm.js",
|
|
"./ug-cn": "./node_modules/moment/locale/ug-cn.js",
|
|
"./ug-cn.js": "./node_modules/moment/locale/ug-cn.js",
|
|
"./uk": "./node_modules/moment/locale/uk.js",
|
|
"./uk.js": "./node_modules/moment/locale/uk.js",
|
|
"./ur": "./node_modules/moment/locale/ur.js",
|
|
"./ur.js": "./node_modules/moment/locale/ur.js",
|
|
"./uz": "./node_modules/moment/locale/uz.js",
|
|
"./uz-latn": "./node_modules/moment/locale/uz-latn.js",
|
|
"./uz-latn.js": "./node_modules/moment/locale/uz-latn.js",
|
|
"./uz.js": "./node_modules/moment/locale/uz.js",
|
|
"./vi": "./node_modules/moment/locale/vi.js",
|
|
"./vi.js": "./node_modules/moment/locale/vi.js",
|
|
"./x-pseudo": "./node_modules/moment/locale/x-pseudo.js",
|
|
"./x-pseudo.js": "./node_modules/moment/locale/x-pseudo.js",
|
|
"./yo": "./node_modules/moment/locale/yo.js",
|
|
"./yo.js": "./node_modules/moment/locale/yo.js",
|
|
"./zh-cn": "./node_modules/moment/locale/zh-cn.js",
|
|
"./zh-cn.js": "./node_modules/moment/locale/zh-cn.js",
|
|
"./zh-hk": "./node_modules/moment/locale/zh-hk.js",
|
|
"./zh-hk.js": "./node_modules/moment/locale/zh-hk.js",
|
|
"./zh-mo": "./node_modules/moment/locale/zh-mo.js",
|
|
"./zh-mo.js": "./node_modules/moment/locale/zh-mo.js",
|
|
"./zh-tw": "./node_modules/moment/locale/zh-tw.js",
|
|
"./zh-tw.js": "./node_modules/moment/locale/zh-tw.js"
|
|
};
|
|
|
|
|
|
function webpackContext(req) {
|
|
var id = webpackContextResolve(req);
|
|
return __webpack_require__(id);
|
|
}
|
|
function webpackContextResolve(req) {
|
|
if(!__webpack_require__.o(map, req)) {
|
|
var e = new Error("Cannot find module '" + req + "'");
|
|
e.code = 'MODULE_NOT_FOUND';
|
|
throw e;
|
|
}
|
|
return map[req];
|
|
}
|
|
webpackContext.keys = function webpackContextKeys() {
|
|
return Object.keys(map);
|
|
};
|
|
webpackContext.resolve = webpackContextResolve;
|
|
module.exports = webpackContext;
|
|
webpackContext.id = "./node_modules/moment/locale sync recursive ^\\.\\/.*$";
|
|
|
|
/***/ }),
|
|
|
|
/***/ "grav-config":
|
|
/*!****************************!*\
|
|
!*** external "GravAdmin" ***!
|
|
\****************************/
|
|
/***/ ((module) => {
|
|
|
|
"use strict";
|
|
module.exports = GravAdmin;
|
|
|
|
/***/ }),
|
|
|
|
/***/ "jquery":
|
|
/*!*************************!*\
|
|
!*** external "jQuery" ***!
|
|
\*************************/
|
|
/***/ ((module) => {
|
|
|
|
"use strict";
|
|
module.exports = jQuery;
|
|
|
|
/***/ })
|
|
|
|
/******/ });
|
|
/************************************************************************/
|
|
/******/ // 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].call(module.exports, module, module.exports, __webpack_require__);
|
|
/******/
|
|
/******/ // Flag the module as loaded
|
|
/******/ module.loaded = true;
|
|
/******/
|
|
/******/ // Return the exports of the module
|
|
/******/ return module.exports;
|
|
/******/ }
|
|
/******/
|
|
/******/ // expose the modules object (__webpack_modules__)
|
|
/******/ __webpack_require__.m = __webpack_modules__;
|
|
/******/
|
|
/************************************************************************/
|
|
/******/ /* webpack/runtime/amd define */
|
|
/******/ (() => {
|
|
/******/ __webpack_require__.amdD = function () {
|
|
/******/ throw new Error('define cannot be used indirect');
|
|
/******/ };
|
|
/******/ })();
|
|
/******/
|
|
/******/ /* webpack/runtime/chunk loaded */
|
|
/******/ (() => {
|
|
/******/ var deferred = [];
|
|
/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => {
|
|
/******/ if(chunkIds) {
|
|
/******/ priority = priority || 0;
|
|
/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];
|
|
/******/ deferred[i] = [chunkIds, fn, priority];
|
|
/******/ return;
|
|
/******/ }
|
|
/******/ var notFulfilled = Infinity;
|
|
/******/ for (var i = 0; i < deferred.length; i++) {
|
|
/******/ var [chunkIds, fn, priority] = deferred[i];
|
|
/******/ var fulfilled = true;
|
|
/******/ for (var j = 0; j < chunkIds.length; j++) {
|
|
/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {
|
|
/******/ chunkIds.splice(j--, 1);
|
|
/******/ } else {
|
|
/******/ fulfilled = false;
|
|
/******/ if(priority < notFulfilled) notFulfilled = priority;
|
|
/******/ }
|
|
/******/ }
|
|
/******/ if(fulfilled) {
|
|
/******/ deferred.splice(i--, 1)
|
|
/******/ result = fn();
|
|
/******/ }
|
|
/******/ }
|
|
/******/ return result;
|
|
/******/ };
|
|
/******/ })();
|
|
/******/
|
|
/******/ /* webpack/runtime/compat get default export */
|
|
/******/ (() => {
|
|
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
|
/******/ __webpack_require__.n = (module) => {
|
|
/******/ var getter = module && module.__esModule ?
|
|
/******/ () => (module['default']) :
|
|
/******/ () => (module);
|
|
/******/ __webpack_require__.d(getter, { a: getter });
|
|
/******/ return getter;
|
|
/******/ };
|
|
/******/ })();
|
|
/******/
|
|
/******/ /* 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/jsonp chunk loading */
|
|
/******/ (() => {
|
|
/******/ // no baseURI
|
|
/******/
|
|
/******/ // object to store loaded and loading chunks
|
|
/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched
|
|
/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded
|
|
/******/ var installedChunks = {
|
|
/******/ "admin": 0
|
|
/******/ };
|
|
/******/
|
|
/******/ // no chunk on demand loading
|
|
/******/
|
|
/******/ // no prefetching
|
|
/******/
|
|
/******/ // no preloaded
|
|
/******/
|
|
/******/ // no HMR
|
|
/******/
|
|
/******/ // no HMR manifest
|
|
/******/
|
|
/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);
|
|
/******/
|
|
/******/ // install a JSONP callback for chunk loading
|
|
/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => {
|
|
/******/ var [chunkIds, moreModules, runtime] = data;
|
|
/******/ // add "moreModules" to the modules object,
|
|
/******/ // then flag all "chunkIds" as loaded and fire callback
|
|
/******/ var moduleId, chunkId, i = 0;
|
|
/******/ for(moduleId in moreModules) {
|
|
/******/ if(__webpack_require__.o(moreModules, moduleId)) {
|
|
/******/ __webpack_require__.m[moduleId] = moreModules[moduleId];
|
|
/******/ }
|
|
/******/ }
|
|
/******/ if(runtime) runtime(__webpack_require__);
|
|
/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data);
|
|
/******/ for(;i < chunkIds.length; i++) {
|
|
/******/ chunkId = chunkIds[i];
|
|
/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {
|
|
/******/ installedChunks[chunkId][0]();
|
|
/******/ }
|
|
/******/ installedChunks[chunkIds[i]] = 0;
|
|
/******/ }
|
|
/******/ __webpack_require__.O();
|
|
/******/ }
|
|
/******/
|
|
/******/ var chunkLoadingGlobal = self["webpackChunkGrav"] = self["webpackChunkGrav"] || [];
|
|
/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));
|
|
/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));
|
|
/******/ })();
|
|
/******/
|
|
/************************************************************************/
|
|
/******/
|
|
/******/ // startup
|
|
/******/ // Load entry module and return exports
|
|
/******/ // This entry module depends on other loaded chunks and execution need to be delayed
|
|
/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["vendor"], () => (__webpack_require__("./app/main.js")))
|
|
/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__);
|
|
/******/ Grav = __webpack_exports__;
|
|
/******/
|
|
/******/ })()
|
|
; |