/* * 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 \".concat(grav_config__WEBPACK_IMPORTED_MODULE_1__.translations.PLUGIN_ADMIN.DAYS.toLowerCase(), \"\"));\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() ? \"\") : \"\");\n\n if (this.isValueOnly()) {\n tpl += \"\\n
\\n \\n \".concat(value, \"\\n \");\n } else {\n tpl += \"\\n
\\n \\n \\n \").concat(value, \"\\n \");\n }\n\n tpl += \"\\n \\n \\n
\";\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()('
');\n this.slider = jquery__WEBPACK_IMPORTED_MODULE_0___default()('
').appendTo(this.wrapper).append(jquery__WEBPACK_IMPORTED_MODULE_0___default()('
'));\n this.opacitySlider = jquery__WEBPACK_IMPORTED_MODULE_0___default()('
').appendTo(this.wrapper).append(jquery__WEBPACK_IMPORTED_MODULE_0___default()('
'));\n this.grid = jquery__WEBPACK_IMPORTED_MODULE_0___default()('
').appendTo(this.wrapper).append(jquery__WEBPACK_IMPORTED_MODULE_0___default()('
')).append(jquery__WEBPACK_IMPORTED_MODULE_0___default()('
'));\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('
').appendTo(this.grid.find('.cp-picker'));\n var tabs = jquery__WEBPACK_IMPORTED_MODULE_0___default()('
').appendTo(this.wrapper);\n this.tabs = {\n hue: jquery__WEBPACK_IMPORTED_MODULE_0___default()('
').text('HUE').appendTo(tabs),\n brightness: jquery__WEBPACK_IMPORTED_MODULE_0___default()('
').text('BRI').appendTo(tabs),\n saturation: jquery__WEBPACK_IMPORTED_MODULE_0___default()('
').text('SAT').appendTo(tabs),\n wheel: jquery__WEBPACK_IMPORTED_MODULE_0___default()('
').text('WHEEL').appendTo(tabs),\n transparent: jquery__WEBPACK_IMPORTED_MODULE_0___default()('
').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($('').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('