easy-richtextarea 3.0.101 → 3.0.104
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/example.js +6 -102
- package/lib/browser.js +1 -1
- package/lib/example/preamble.js +1 -1
- package/lib/example/richTextarea.js +1 -1
- package/lib/example/view.js +2 -2
- package/lib/example.js +1 -1
- package/lib/main.js +1 -1
- package/lib/richTextarea.js +1 -2
- package/lib/selection.js +1 -1
- package/package.json +4 -4
- package/src/richTextarea.js +0 -2
- package/lib/keys.js +0 -67
- package/src/keys.js +0 -87
package/lib/browser.js
CHANGED
|
@@ -22,4 +22,4 @@ function _interopRequireDefault(obj) {
|
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
//# sourceMappingURL=data:application/json;
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9icm93c2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIFNlbGVjdGlvbiB9IGZyb20gXCIuL3NlbGVjdGlvblwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIFJpY2hUZXh0YXJlYSB9IGZyb20gXCIuL3JpY2hUZXh0YXJlYVwiO1xuIl0sIm5hbWVzIjpbIlNlbGVjdGlvbiIsImRlZmF1bHQiLCJSaWNoVGV4dGFyZWEiXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7OzsrQkFFT0EsV0FBUzs7OzBCQUFwQkMsT0FBTzs7OytCQUVJQyxjQUFZOzs7NkJBQXZCRCxPQUFPOzs7Z0RBRnFCLGFBQWE7bURBRVYsZ0JBQWdCIn0=
|
package/lib/example/preamble.js
CHANGED
|
@@ -4,4 +4,4 @@ _easy.window.assign({
|
|
|
4
4
|
React: _easy.React
|
|
5
5
|
});
|
|
6
6
|
|
|
7
|
-
//# sourceMappingURL=data:application/json;
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGFtcGxlL3ByZWFtYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBSZWFjdCwgd2luZG93IH0gZnJvbSBcImVhc3lcIjtcblxud2luZG93LmFzc2lnbih7XG4gIFJlYWN0XG59KTtcbiJdLCJuYW1lcyI6WyJ3aW5kb3ciLCJhc3NpZ24iLCJSZWFjdCJdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDO0FBRWlCLElBQUEsS0FBTSxXQUFOLE1BQU0sQ0FBQTtBQUVwQ0EsS0FBTSxRQUFDQyxNQUFNLENBQUM7SUNKZCxBREtFQyxLQUFLLEVBQUxBLEtBQUssTUFBTEE7Q0FDRCxDQUFDLENBQUMifQ==
|
|
@@ -32,4 +32,4 @@ function _templateObject() {
|
|
|
32
32
|
var _default = (0, _easyWithStyle).default(_browser.RichTextarea)(_templateObject());
|
|
33
33
|
exports.default = _default;
|
|
34
34
|
|
|
35
|
-
//# sourceMappingURL=data:application/json;
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGFtcGxlL3JpY2hUZXh0YXJlYS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHdpdGhTdHlsZSBmcm9tIFwiZWFzeS13aXRoLXN0eWxlXCI7XG5cbmltcG9ydCB7IFJpY2hUZXh0YXJlYSB9IGZyb20gXCIuLi9icm93c2VyXCI7ICAvLy9cblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlKFJpY2hUZXh0YXJlYSlgXG5cbiAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG4gIHdpZHRoOiAzMnJlbTtcbiAgaGVpZ2h0OiAzMnJlbTtcbiAgcGFkZGluZzogMC4yNXJlbTtcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG5cbmA7XG4iXSwibmFtZXMiOlsid2l0aFN0eWxlIiwiUmljaFRleHRhcmVhIl0sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLENBQUM7Ozs7O0FBRVMsSUFBQSxjQUFpQixrQ0FBakIsaUJBQWlCLEVBQUE7QUFFVixJQUFBLFFBQVksV0FBWixZQUFZLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7ZUFFMUJBLENBQUFBLEdBQUFBLGNBQVMsQUFBYyxDQUFBLFNBQWJDLFFBQVksY0FBQyJ9
|
package/lib/example/view.js
CHANGED
|
@@ -10,7 +10,7 @@ function _interopRequireDefault(obj) {
|
|
|
10
10
|
};
|
|
11
11
|
}
|
|
12
12
|
var View = function(properties) {
|
|
13
|
-
/*#__PURE__*/
|
|
13
|
+
return /*#__PURE__*/ React.createElement("div", {
|
|
14
14
|
className: "view"
|
|
15
15
|
}, /*#__PURE__*/ React.createElement(_richTextarea.default, {
|
|
16
16
|
onChange: changeHandler,
|
|
@@ -37,4 +37,4 @@ function blurHandler(event, element) {
|
|
|
37
37
|
console.log("blur");
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
//# sourceMappingURL=data:application/json;
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGFtcGxlL3ZpZXcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBSaWNoVGV4dGFyZWEgZnJvbSBcIi4vcmljaFRleHRhcmVhXCI7XG5cbmNvbnN0IFZpZXcgPSAocHJvcGVydGllcykgPT5cblxuICA8ZGl2IGNsYXNzTmFtZT1cInZpZXdcIj5cbiAgICA8UmljaFRleHRhcmVhIG9uQ2hhbmdlPXtjaGFuZ2VIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgb25TY3JvbGw9e3Njcm9sbEhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICBvbkZvY3VzPXtmb2N1c0hhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICBvbkJsdXI9e2JsdXJIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgYWN0aXZlXG4gICAgLz5cbiAgPC9kaXY+XG5cbjtcblxuZXhwb3J0IGRlZmF1bHQgVmlldztcblxuZnVuY3Rpb24gY2hhbmdlSGFuZGxlcihldmVudCwgZWxlbWVudCkge1xuICBjb25zdCBjb250ZW50Q2hhbmdlZCA9IGVsZW1lbnQuaGFzQ29udGVudENoYW5nZWQoKSxcbiAgICAgICAgc2VsZWN0aW9uQ2hhbmdlZCA9IGVsZW1lbnQuaGFzU2VsZWN0aW9uQ2hhbmdlZCgpO1xuXG4gIGNvbnNvbGUubG9nKGNvbnRlbnRDaGFuZ2VkLCBzZWxlY3Rpb25DaGFuZ2VkKVxufVxuXG5mdW5jdGlvbiBzY3JvbGxIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XG4gIGNvbnN0IHNjcm9sbFRvcCA9IGVsZW1lbnQuZ2V0U2Nyb2xsVG9wKCksXG4gICAgICAgIHNjcm9sbExlZnQgPSBlbGVtZW50LmdldFNjcm9sbExlZnQoKTtcblxuICBjb25zb2xlLmxvZyhzY3JvbGxUb3AsIHNjcm9sbExlZnQpXG59XG5cbmZ1bmN0aW9uIGZvY3VzSGFuZGxlcihldmVudCwgZWxlbWVudCkge1xuICBjb25zb2xlLmxvZyhcImZvY3VzXCIpXG59XG5cbmZ1bmN0aW9uIGJsdXJIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XG4gIGNvbnNvbGUubG9nKFwiYmx1clwiKVxufVxuIl0sIm5hbWVzIjpbIlZpZXciLCJwcm9wZXJ0aWVzIiwiZGl2IiwiY2xhc3NOYW1lIiwiUmljaFRleHRhcmVhIiwib25DaGFuZ2UiLCJjaGFuZ2VIYW5kbGVyIiwib25TY3JvbGwiLCJzY3JvbGxIYW5kbGVyIiwib25Gb2N1cyIsImZvY3VzSGFuZGxlciIsIm9uQmx1ciIsImJsdXJIYW5kbGVyIiwiYWN0aXZlIiwiZXZlbnQiLCJlbGVtZW50IiwiY29udGVudENoYW5nZWQiLCJoYXNDb250ZW50Q2hhbmdlZCIsInNlbGVjdGlvbkNoYW5nZWQiLCJoYXNTZWxlY3Rpb25DaGFuZ2VkIiwiY29uc29sZSIsImxvZyIsInNjcm9sbFRvcCIsImdldFNjcm9sbFRvcCIsInNjcm9sbExlZnQiLCJnZXRTY3JvbGxMZWZ0Il0sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLENBQUM7Ozs7O0FBRVksSUFBQSxhQUFnQixrQ0FBaEIsZ0JBQWdCLEVBQUE7Ozs7OztBQUV6QyxJQUFNQSxJQUFJLEdBQUcsU0FBQ0MsVUFBVTt5QkFFdEIsb0JBQUNDLEtBQUc7UUFBQ0MsU0FBUyxFQUFDLE1BQU07cUJBQ25CLG9CQUFDQyxhQUFZO1FBQUNDLFFBQVEsRUFBRUMsYUFBYTtRQUN2QkMsUUFBUSxFQUFFQyxhQUFhO1FBQ3ZCQyxPQUFPLEVBQUVDLFlBQVk7UUFDckJDLE1BQU0sRUFBRUMsV0FBVztRQUNuQkMsTUFBTSxFQUFOQSxJQUFNO01BQ2xCLENBQ0U7Q0FBQSxBQUVQO2VBRWNiLElBQUk7O0FBRW5CLFNBQVNNLGFBQWEsQ0FBQ1EsS0FBSyxFQUFFQyxPQUFPLEVBQUU7SUFDckMsSUFBTUMsY0FBYyxHQUFHRCxPQUFPLENBQUNFLGlCQUFpQixFQUFFLEVBQzVDQyxnQkFBZ0IsR0FBR0gsT0FBTyxDQUFDSSxtQkFBbUIsRUFBRSxBQUFDO0lBRXZEQyxPQUFPLENBQUNDLEdBQUcsQ0FBQ0wsY0FBYyxFQUFFRSxnQkFBZ0IsQ0FBQztDQUM5QztBQUVELFNBQVNWLGFBQWEsQ0FBQ00sS0FBSyxFQUFFQyxPQUFPLEVBQUU7SUFDckMsSUFBTU8sU0FBUyxHQUFHUCxPQUFPLENBQUNRLFlBQVksRUFBRSxFQUNsQ0MsVUFBVSxHQUFHVCxPQUFPLENBQUNVLGFBQWEsRUFBRSxBQUFDO0lBRTNDTCxPQUFPLENBQUNDLEdBQUcsQ0FBQ0MsU0FBUyxFQUFFRSxVQUFVLENBQUM7Q0FDbkM7QUFFRCxTQUFTZCxZQUFZLENBQUNJLEtBQUssRUFBRUMsT0FBTyxFQUFFO0lBQ3BDSyxPQUFPLENBQUNDLEdBQUcsQ0FBQyxPQUFPLENBQUM7Q0FDckI7QUFFRCxTQUFTVCxXQUFXLENBQUNFLEtBQUssRUFBRUMsT0FBTyxFQUFFO0lBQ25DSyxPQUFPLENBQUNDLEdBQUcsQ0FBQyxNQUFNLENBQUM7Q0FDcEIifQ==
|
package/lib/example.js
CHANGED
|
@@ -13,4 +13,4 @@ var body = new _easy.Body();
|
|
|
13
13
|
renderStyles();
|
|
14
14
|
body.mount(/*#__PURE__*/ React.createElement(_view.default, null));
|
|
15
15
|
|
|
16
|
-
//# sourceMappingURL=data:application/json;
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9leGFtcGxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgXCIuL2V4YW1wbGUvcHJlYW1ibGVcIjtcblxuaW1wb3J0IHdpdGhTdHlsZSBmcm9tIFwiZWFzeS13aXRoLXN0eWxlXCI7ICAvLy9cblxuaW1wb3J0IHsgQm9keSB9IGZyb20gXCJlYXN5XCI7XG5cbmltcG9ydCBWaWV3IGZyb20gXCIuL2V4YW1wbGUvdmlld1wiO1xuXG5jb25zdCB7IHJlbmRlclN0eWxlcyB9ID0gd2l0aFN0eWxlO1xuXG5jb25zdCBib2R5ID0gbmV3IEJvZHkoKTtcblxucmVuZGVyU3R5bGVzKCk7XG5cbmJvZHkubW91bnQoXG5cbiAgPFZpZXcgLz5cblxuKTtcbiJdLCJuYW1lcyI6WyJyZW5kZXJTdHlsZXMiLCJ3aXRoU3R5bGUiLCJib2R5IiwiQm9keSIsIm1vdW50IiwiVmlldyJdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDO1FBRU4sb0JBQW9CO0FBRUwsSUFBQSxjQUFpQixrQ0FBakIsaUJBQWlCLEVBQUE7QUFFbEIsSUFBQSxLQUFNLFdBQU4sTUFBTSxDQUFBO0FBRVYsSUFBQSxLQUFnQixrQ0FBaEIsZ0JBQWdCLEVBQUE7Ozs7OztBQUVqQyxJQUFNLEFBQUVBLFlBQVksR0FBS0MsY0FBUyxTQUExQkQsWUFBWSxBQUFjLEFBQUM7QUFFbkMsSUFBTUUsSUFBSSxHQUFHLElBQUlDLEtBQUksT0FBRSxBQUFDO0FBRXhCSCxZQUFZLEVBQUUsQ0FBQztBQUVmRSxJQUFJLENBQUNFLEtBQUssZUFFUixvQkFBQ0MsS0FBSSxlQUFHLENBRVQsQ0FBQyJ9
|
package/lib/main.js
CHANGED
|
@@ -15,4 +15,4 @@ function _interopRequireDefault(obj) {
|
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
//# sourceMappingURL=data:application/json;
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWluLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIFNlbGVjdGlvbiB9IGZyb20gXCIuL3NlbGVjdGlvblwiO1xuIl0sIm5hbWVzIjpbIlNlbGVjdGlvbiIsImRlZmF1bHQiXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7OzsrQkFFT0EsV0FBUzs7OzBCQUFwQkMsT0FBTzs7O2dEQUFxQixhQUFhIn0=
|
package/lib/richTextarea.js
CHANGED
|
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
});
|
|
5
5
|
exports.default = void 0;
|
|
6
6
|
var _easy = require("easy");
|
|
7
|
-
require("./keys");
|
|
8
7
|
var _selection = _interopRequireDefault(require("./selection"));
|
|
9
8
|
function _arrayLikeToArray(arr, len) {
|
|
10
9
|
if (len == null || len > arr.length) len = arr.length;
|
|
@@ -572,4 +571,4 @@ _defineProperty(RichTextarea, "defaultProperties", {
|
|
|
572
571
|
className: "rich"
|
|
573
572
|
});
|
|
574
573
|
|
|
575
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yaWNoVGV4dGFyZWEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG5pbXBvcnQgeyB3aW5kb3csIEVsZW1lbnQsIGV2ZW50VHlwZXMgfSBmcm9tIFwiZWFzeVwiO1xyXG5cclxuaW1wb3J0IFwiLi9rZXlzXCI7XHJcblxyXG5pbXBvcnQgU2VsZWN0aW9uIGZyb20gXCIuL3NlbGVjdGlvblwiXHJcblxyXG5jb25zdCB7IEJMVVJfRVZFTlRfVFlQRSxcclxuICAgICAgICAgSU5QVVRfRVZFTlRfVFlQRSxcclxuICAgICAgICAgRk9DVVNfRVZFTlRfVFlQRSxcclxuICAgICAgICAgQ0hBTkdFX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIFNDUk9MTF9FVkVOVF9UWVBFLFxyXG4gICAgICAgICBLRVlET1dOX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIE1PVVNFVVBfRVZFTlRfVFlQRSxcclxuICAgICAgICAgTU9VU0VET1dOX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIE1PVVNFTU9WRV9FVkVOVF9UWVBFLFxyXG4gICAgICAgICBDT05URVhUTUVOVV9FVkVOVF9UWVBFIH0gPSBldmVudFR5cGVzO1xyXG5cclxuY29uc3QgZGVmZXIgPSAoZnVuYykgPT4gc2V0VGltZW91dChmdW5jLCAwKTsgLy8vXHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSaWNoVGV4dGFyZWEgZXh0ZW5kcyBFbGVtZW50IHtcclxuICBpc0FjdGl2ZSgpIHtcclxuICAgIGNvbnN0IGFjdGl2ZSA9IHRoaXMuaGFzQ2xhc3MoXCJhY3RpdmVcIik7XHJcblxyXG4gICAgcmV0dXJuIGFjdGl2ZTtcclxuICB9XHJcblxyXG4gIGlzUmVhZE9ubHkoKSB7XHJcbiAgICBjb25zdCBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCksXHJcbiAgICAgICAgICB7IHJlYWRPbmx5IH0gPSBkb21FbGVtZW50O1xyXG4gICAgXHJcbiAgICByZXR1cm4gcmVhZE9ubHk7IFxyXG4gIH1cclxuXHJcbiAgZ2V0Q29udGVudCgpIHtcclxuICAgIGNvbnN0IGRvbUVsZW1lbnQgPSB0aGlzLmdldERPTUVsZW1lbnQoKSxcclxuICAgICAgICAgIHsgdmFsdWUgfSA9IGRvbUVsZW1lbnQsXHJcbiAgICAgICAgICBjb250ZW50ID0gdmFsdWU7ICAvLy9cclxuXHJcbiAgICByZXR1cm4gY29udGVudDtcclxuICB9XHJcblxyXG4gIGdldFNlbGVjdGlvbigpIHtcclxuICAgIGNvbnN0IGRvbUVsZW1lbnQgPSB0aGlzLmdldERPTUVsZW1lbnQoKSxcclxuICAgICAgICAgIHNlbGVjdGlvbiA9IFNlbGVjdGlvbi5mcm9tRE9NRWxlbWVudChkb21FbGVtZW50KTtcclxuXHJcbiAgICByZXR1cm4gc2VsZWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgc2V0UmVhZE9ubHkocmVhZE9ubHkpIHtcclxuICAgIGNvbnN0IGRvbUVsZW1lbnQgPSB0aGlzLmdldERPTUVsZW1lbnQoKTtcclxuXHJcbiAgICBPYmplY3QuYXNzaWduKGRvbUVsZW1lbnQsIHtcclxuICAgICAgcmVhZE9ubHlcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0Q29udGVudChjb250ZW50KSB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IGNvbnRlbnQsICAvLy9cclxuICAgICAgICAgIHByZXZpb3VzQ29udGVudCA9IGNvbnRlbnQsICAvLy9cclxuICAgICAgICAgIGRvbUVsZW1lbnQgPSB0aGlzLmdldERPTUVsZW1lbnQoKTtcclxuXHJcbiAgICBPYmplY3QuYXNzaWduKGRvbUVsZW1lbnQsIHtcclxuICAgICAgdmFsdWVcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuc2V0UHJldmlvdXNDb250ZW50KHByZXZpb3VzQ29udGVudCk7XHJcbiAgfVxyXG5cclxuICBzZXRTZWxlY3Rpb24oc2VsZWN0aW9uKSB7XHJcbiAgICBjb25zdCBzZWxlY3Rpb25TdGFydFBvc2l0aW9uID0gc2VsZWN0aW9uLmdldFN0YXJ0UG9zaXRpb24oKSxcclxuICAgICAgICAgIHNlbGVjdGlvbkVuZFBvc2l0aW9uID0gc2VsZWN0aW9uLmdldEVuZFBvc2l0aW9uKCksXHJcbiAgICAgICAgICBzZWxlY3Rpb25TdGFydCA9IHNlbGVjdGlvblN0YXJ0UG9zaXRpb24sICAvLy9cclxuICAgICAgICAgIHNlbGVjdGlvbkVuZCA9IHNlbGVjdGlvbkVuZFBvc2l0aW9uLCAgLy8vXHJcbiAgICAgICAgICBwcmV2aW91c1NlbGVjdGlvbiA9IHNlbGVjdGlvbiwgIC8vL1xyXG4gICAgICAgICAgZG9tRWxlbWVudCA9IHRoaXMuZ2V0RE9NRWxlbWVudCgpO1xyXG5cclxuICAgIE9iamVjdC5hc3NpZ24oZG9tRWxlbWVudCwge1xyXG4gICAgICBzZWxlY3Rpb25TdGFydCxcclxuICAgICAgc2VsZWN0aW9uRW5kXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnNldFByZXZpb3VzU2VsZWN0aW9uKHByZXZpb3VzU2VsZWN0aW9uKTtcclxuICB9XHJcblxyXG4gIGlzTW91c2VEb3duKCkge1xyXG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLmdldFN0YXRlKCksXHJcbiAgICAgICAgICB7IG1vdXNlRG93biB9ID0gc3RhdGU7XHJcblxyXG4gICAgcmV0dXJuIG1vdXNlRG93bjtcclxuICB9XHJcblxyXG4gIGhhc0NoYW5nZWQoKSB7XHJcbiAgICBjb25zdCBjb250ZW50Q2hhbmdlZCA9IHRoaXMuaGFzQ29udGVudENoYW5nZWQoKSxcclxuICAgICAgICAgIHNlbGVjdGlvbkNoYW5nZWQgPSB0aGlzLmhhc1NlbGVjdGlvbkNoYW5nZWQoKSxcclxuICAgICAgICAgIGNoYW5nZWQgPSAoY29udGVudENoYW5nZWQgfHwgc2VsZWN0aW9uQ2hhbmdlZCk7XHJcblxyXG4gICAgcmV0dXJuIGNoYW5nZWQ7XHJcbiAgfVxyXG5cclxuICBoYXNDb250ZW50Q2hhbmdlZCgpIHtcclxuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmdldENvbnRlbnQoKSxcclxuICAgICAgICAgIHByZXZpb3VzQ29udGVudCA9IHRoaXMuZ2V0UHJldmlvdXNDb250ZW50KCksXHJcbiAgICAgICAgICBjb250ZW50RGlmZmVyZW50VG9QcmV2aW91c0NvbnRlbnQgPSAoY29udGVudCAhPT0gcHJldmlvdXNDb250ZW50KSxcclxuICAgICAgICAgIGNvbnRlbnRDaGFuZ2VkID0gY29udGVudERpZmZlcmVudFRvUHJldmlvdXNDb250ZW50OyAvLy9cclxuXHJcbiAgICByZXR1cm4gY29udGVudENoYW5nZWQ7XHJcbiAgfVxyXG5cclxuICBoYXNTZWxlY3Rpb25DaGFuZ2VkKCkge1xyXG4gICAgY29uc3Qgc2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3Rpb24oKSxcclxuICAgICAgICAgIHByZXZpb3VzU2VsZWN0aW9uID0gdGhpcy5nZXRQcmV2aW91c1NlbGVjdGlvbigpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uRGlmZmVyZW50VG9QcmV2aW91c1NlbGVjdGlvbiA9IHNlbGVjdGlvbi5pc0RpZmZlcmVudFRvKHByZXZpb3VzU2VsZWN0aW9uKSxcclxuICAgICAgICAgIHNlbGVjdGlvbkNoYW5nZWQgPSBzZWxlY3Rpb25EaWZmZXJlbnRUb1ByZXZpb3VzU2VsZWN0aW9uOyAvLy9cclxuXHJcbiAgICByZXR1cm4gc2VsZWN0aW9uQ2hhbmdlZDtcclxuICB9XHJcblxyXG4gIGFjdGl2YXRlKCkge1xyXG4gICAgY29uc3QgbW91c2VEb3duID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5zZXRNb3VzZURvd24obW91c2VEb3duKTtcclxuXHJcbiAgICB3aW5kb3cub24oYCR7QkxVUl9FVkVOVF9UWVBFfSAke01PVVNFVVBfRVZFTlRfVFlQRX0gJHtDT05URVhUTUVOVV9FVkVOVF9UWVBFfWAsIHRoaXMubW91c2VVcEhhbmRsZXIsIHRoaXMpOyAvLy9cclxuXHJcbiAgICB0aGlzLm9uKE1PVVNFRE9XTl9FVkVOVF9UWVBFLCB0aGlzLm1vdXNlRG93bkhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMub24oTU9VU0VNT1ZFX0VWRU5UX1RZUEUsIHRoaXMubW91c2VNb3ZlSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vbihLRVlET1dOX0VWRU5UX1RZUEUsIHRoaXMua2V5RG93bkhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMub24oSU5QVVRfRVZFTlRfVFlQRSwgdGhpcy5pbnB1dEhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMub24oU0NST0xMX0VWRU5UX1RZUEUsIHRoaXMuc2Nyb2xsSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vbihGT0NVU19FVkVOVF9UWVBFLCB0aGlzLmZvY3VzSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vbihCTFVSX0VWRU5UX1RZUEUsIHRoaXMuYmx1ckhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMuYWRkQ2xhc3MoXCJhY3RpdmVcIik7XHJcbiAgfVxyXG5cclxuICBkZWFjdGl2YXRlKCkge1xyXG4gICAgY29uc3QgbW91c2VEb3duID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5zZXRNb3VzZURvd24obW91c2VEb3duKTtcclxuXHJcbiAgICB3aW5kb3cub2ZmKGAke0JMVVJfRVZFTlRfVFlQRX0gJHtNT1VTRVVQX0VWRU5UX1RZUEV9ICR7Q09OVEVYVE1FTlVfRVZFTlRfVFlQRX1gLCB0aGlzLm1vdXNlVXBIYW5kbGVyLCB0aGlzKTsgLy8vXHJcblxyXG4gICAgdGhpcy5vZmYoTU9VU0VET1dOX0VWRU5UX1RZUEUsIHRoaXMubW91c2VEb3duSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vZmYoTU9VU0VNT1ZFX0VWRU5UX1RZUEUsIHRoaXMubW91c2VNb3ZlSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vZmYoS0VZRE9XTl9FVkVOVF9UWVBFLCB0aGlzLmtleURvd25IYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9mZihJTlBVVF9FVkVOVF9UWVBFLCB0aGlzLmlucHV0SGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vZmYoU0NST0xMX0VWRU5UX1RZUEUsIHRoaXMuc2Nyb2xsSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vZmYoRk9DVVNfRVZFTlRfVFlQRSwgdGhpcy5mb2N1c0hhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMub2ZmKEJMVVJfRVZFTlRfVFlQRSwgdGhpcy5ibHVySGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5yZW1vdmVDbGFzcyhcImFjdGl2ZVwiKTtcclxuICB9XHJcblxyXG4gIG9uQmx1cihibHVySGFuZGxlciwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZXZlbnRUeXBlID0gQkxVUl9FVkVOVF9UWVBFLFxyXG4gICAgICAgICAgaGFuZGxlciA9IGJsdXJIYW5kbGVyOyAgLy8vXHJcblxyXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBvZmZCbHVyKGJsdXJIYW5kbGVyLCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBldmVudFR5cGUgPSBCTFVSX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICBoYW5kbGVyID0gYmx1ckhhbmRsZXI7ICAvLy9cclxuXHJcbiAgICB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYW5kbGVyLCBlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIG9uRm9jdXMoYmx1ckhhbmRsZXIsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGV2ZW50VHlwZSA9IEZPQ1VTX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICBoYW5kbGVyID0gYmx1ckhhbmRsZXI7ICAvLy9cclxuXHJcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYW5kbGVyLCBlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIG9mZkZvY3VzKGJsdXJIYW5kbGVyLCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBldmVudFR5cGUgPSBGT0NVU19FVkVOVF9UWVBFLFxyXG4gICAgICAgICAgaGFuZGxlciA9IGJsdXJIYW5kbGVyOyAgLy8vXHJcblxyXG4gICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBvblNjcm9sbChzY3JvbGxIYW5kbGVyLCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBldmVudFR5cGUgPSBTQ1JPTExfRVZFTlRfVFlQRSxcclxuICAgICAgICAgIGhhbmRsZXIgPSBzY3JvbGxIYW5kbGVyOyAgLy8vXHJcblxyXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBvZmZTY3JvbGwoc2Nyb2xsSGFuZGxlciwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZXZlbnRUeXBlID0gU0NST0xMX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICBoYW5kbGVyID0gc2Nyb2xsSGFuZGxlcjsgIC8vL1xyXG5cclxuICAgIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIsIGVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2UoY2hhbmdlSGFuZGxlciwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZXZlbnRUeXBlID0gQ0hBTkdFX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICBoYW5kbGVyID0gY2hhbmdlSGFuZGxlcjsgIC8vL1xyXG5cclxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIsIGVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgb2ZmQ2hhbmdlKGNoYW5nZUhhbmRsZXIsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGV2ZW50VHlwZSA9IENIQU5HRV9FVkVOVF9UWVBFLFxyXG4gICAgICAgICAgaGFuZGxlciA9IGNoYW5nZUhhbmRsZXI7ICAvLy9cclxuXHJcbiAgICB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYW5kbGVyLCBlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIG1vdXNlVXBIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBtb3VzZURvd24gPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLnNldE1vdXNlRG93bihtb3VzZURvd24pO1xyXG4gIH07XHJcblxyXG4gIG1vdXNlRG93bkhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGZvcmNlZCA9IGZhbHNlLFxyXG4gICAgICAgICAgbW91c2VEb3duID0gdHJ1ZSxcclxuICAgICAgICAgIGV2ZW50VHlwZSA9IENIQU5HRV9FVkVOVF9UWVBFO1xyXG5cclxuICAgIHRoaXMuc2V0TW91c2VEb3duKG1vdXNlRG93bik7XHJcblxyXG4gICAgZGVmZXIoKCkgPT4gdGhpcy5pbnRlcm1lZGlhdGVIYW5kbGVyKGV2ZW50LCBlbGVtZW50LCBldmVudFR5cGUsIGZvcmNlZCkpO1xyXG4gIH1cclxuXHJcbiAgbW91c2VNb3ZlSGFuZGxlcihldmVudCwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZm9yY2VkID0gZmFsc2UsXHJcbiAgICAgICAgICBtb3VzZURvd24gPSB0aGlzLmlzTW91c2VEb3duKCksXHJcbiAgICAgICAgICBldmVudFRZcGUgPSBDSEFOR0VfRVZFTlRfVFlQRTtcclxuXHJcbiAgICBpZiAobW91c2VEb3duKSB7XHJcbiAgICAgIHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUWXBlLCBmb3JjZWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAga2V5RG93bkhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGZvcmNlZCA9IGZhbHNlLFxyXG4gICAgICAgICAgZXZlbnRUeXBlID0gQ0hBTkdFX0VWRU5UX1RZUEU7XHJcblxyXG4gICAgZGVmZXIoKCkgPT4gdGhpcy5pbnRlcm1lZGlhdGVIYW5kbGVyKGV2ZW50LCBlbGVtZW50LCBldmVudFR5cGUsIGZvcmNlZCkpO1xyXG4gIH1cclxuXHJcbiAgaW5wdXRIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBmb3JjZWQgPSBmYWxzZSxcclxuICAgICAgICAgIGV2ZW50VHlwZSA9IENIQU5HRV9FVkVOVF9UWVBFO1xyXG5cclxuICAgIHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpO1xyXG4gIH1cclxuXHJcbiAgc2Nyb2xsSGFuZGxlcihldmVudCwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZXZlbnRUeXBlID0gU0NST0xMX0VWRU5UX1RZUEU7XHJcblxyXG4gICAgdGhpcy5jYWxsSGFuZGxlcnMoZXZlbnRUeXBlLCBldmVudCwgZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBmb2N1c0hhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGZvcmNlZCA9IHRydWUsXHJcbiAgICAgICAgICBldmVudFR5cGUgPSBGT0NVU19FVkVOVF9UWVBFO1xyXG5cclxuICAgIGRlZmVyKCgpID0+IHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpKTtcclxuICB9XHJcblxyXG4gIGJsdXJIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBmb3JjZWQgPSB0cnVlLFxyXG4gICAgICAgICAgZXZlbnRUeXBlID0gQkxVUl9FVkVOVF9UWVBFO1xyXG5cclxuICAgIHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpO1xyXG4gIH1cclxuXHJcbiAgaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpIHtcclxuICAgIGNvbnN0IGNoYW5nZWQgPSB0aGlzLmhhc0NoYW5nZWQoKTtcclxuXHJcbiAgICBpZiAoY2hhbmdlZCB8fCBmb3JjZWQpIHtcclxuICAgICAgdGhpcy5jYWxsSGFuZGxlcnMoZXZlbnRUeXBlLCBldmVudCwgZWxlbWVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuZ2V0Q29udGVudCgpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3Rpb24oKSxcclxuICAgICAgICAgIHByZXZpb3VzQ29udGVudCA9IGNvbnRlbnQsICAvLy9cclxuICAgICAgICAgIHByZXZpb3VzU2VsZWN0aW9uID0gc2VsZWN0aW9uOyAgLy8vXHJcblxyXG4gICAgdGhpcy5zZXRQcmV2aW91c0NvbnRlbnQocHJldmlvdXNDb250ZW50KTtcclxuICAgIHRoaXMuc2V0UHJldmlvdXNTZWxlY3Rpb24ocHJldmlvdXNTZWxlY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgY2FsbEhhbmRsZXJzKGV2ZW50VHlwZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XHJcbiAgICBjb25zdCBldmVudExpc3RlbmVycyA9IHRoaXMuZmluZEV2ZW50TGlzdGVuZXJzKGV2ZW50VHlwZSk7XHJcblxyXG4gICAgZXZlbnRMaXN0ZW5lcnMuZm9yRWFjaCgoZXZlbnRMaXN0ZW5lcikgPT4ge1xyXG4gICAgICBjb25zdCB7IGhhbmRsZXIsIGVsZW1lbnQ6IGhhbmRsZXJFbGVtZW50IH0gPSBldmVudExpc3RlbmVyLFxyXG4gICAgICAgICAgICBlbGVtZW50ID0gdGhpczsgLy8vXHJcblxyXG4gICAgICBpZiAoKGhhbmRsZXIgIT09IHRoaXMuYmx1ckhhbmRsZXIpICYmIChoYW5kbGVyICE9PSB0aGlzLmZvY3VzSGFuZGxlcikgJiYgKGhhbmRsZXIgIT09IHRoaXMuc2Nyb2xsSGFuZGxlcikpIHtcclxuICAgICAgICBoYW5kbGVyLmNhbGwoaGFuZGxlckVsZW1lbnQsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgZWxlbWVudCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0UHJldmlvdXNDb250ZW50KCkge1xyXG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLmdldFN0YXRlKCksXHJcbiAgICAgICAgICB7IHByZXZpb3VzQ29udGVudCB9ID0gc3RhdGU7XHJcblxyXG4gICAgcmV0dXJuIHByZXZpb3VzQ29udGVudDtcclxuICB9XHJcblxyXG4gIGdldFByZXZpb3VzU2VsZWN0aW9uKCkge1xyXG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLmdldFN0YXRlKCksXHJcbiAgICAgICAgICB7IHByZXZpb3VzU2VsZWN0aW9uIH0gPSBzdGF0ZTtcclxuXHJcbiAgICByZXR1cm4gcHJldmlvdXNTZWxlY3Rpb247XHJcbiAgfVxyXG5cclxuICBzZXRNb3VzZURvd24obW91c2VEb3duKSB7XHJcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHtcclxuICAgICAgbW91c2VEb3duXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldFByZXZpb3VzQ29udGVudChwcmV2aW91c0NvbnRlbnQpIHtcclxuICAgIHRoaXMudXBkYXRlU3RhdGUoe1xyXG4gICAgICBwcmV2aW91c0NvbnRlbnRcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0UHJldmlvdXNTZWxlY3Rpb24ocHJldmlvdXNTZWxlY3Rpb24pIHtcclxuICAgIHRoaXMudXBkYXRlU3RhdGUoe1xyXG4gICAgICBwcmV2aW91c1NlbGVjdGlvblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRJbml0aWFsU3RhdGUoKSB7XHJcbiAgICBjb25zdCBtb3VzZURvd24gPSBmYWxzZSxcclxuICAgICAgICAgIHByZXZpb3VzQ29udGVudCA9IG51bGwsXHJcbiAgICAgICAgICBwcmV2aW91c1NlbGVjdGlvbiA9IG51bGw7XHJcblxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIG1vdXNlRG93bixcclxuICAgICAgcHJldmlvdXNDb250ZW50LFxyXG4gICAgICBwcmV2aW91c1NlbGVjdGlvblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgYWN0aXZlLCBvbkNoYW5nZSwgb25TY3JvbGwsIG9uRm9jdXMsIG9uQmx1ciB9ID0gdGhpcy5wcm9wZXJ0aWVzLFxyXG4gICAgICAgICAgICBjaGFuZ2VIYW5kbGVyID0gb25DaGFuZ2UsIC8vL1xyXG4gICAgICAgICAgICBzY3JvbGxIYW5kbGVyID0gb25TY3JvbGwsIC8vL1xyXG4gICAgICAgICAgICBmb2N1c0hhbmRsZXIgPSBvbkZvY3VzLCAvLy9cclxuICAgICAgICAgICAgYmx1ckhhbmRsZXIgPSBvbkJsdXI7IC8vL1xyXG5cclxuICAgIGNoYW5nZUhhbmRsZXIgJiYgdGhpcy5vbkNoYW5nZShjaGFuZ2VIYW5kbGVyLCB0aGlzKTtcclxuICAgIHNjcm9sbEhhbmRsZXIgJiYgdGhpcy5vblNjcm9sbChzY3JvbGxIYW5kbGVyLCB0aGlzKTtcclxuICAgIGZvY3VzSGFuZGxlciAmJiB0aGlzLm9uRm9jdXMoZm9jdXNIYW5kbGVyLCB0aGlzKTtcclxuICAgIGJsdXJIYW5kbGVyICYmIHRoaXMub25CbHVyKGJsdXJIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICBpZiAoYWN0aXZlKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZhdGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHdpbGxVbm1vdW50KCkge1xyXG4gICAgY29uc3QgeyBvbkNoYW5nZSwgb25TY3JvbGwsIG9uRm9jdXMsIG9uQmx1ciB9ID0gdGhpcy5wcm9wZXJ0aWVzLFxyXG4gICAgICAgICAgY2hhbmdlSGFuZGxlciA9IG9uQ2hhbmdlLCAvLy9cclxuICAgICAgICAgIHNjcm9sbEhhbmRsZXIgPSBvblNjcm9sbCwgLy8vXHJcbiAgICAgICAgICBmb2N1c0hhbmRsZXIgPSBvbkZvY3VzLCAvLy9cclxuICAgICAgICAgIGJsdXJIYW5kbGVyID0gb25CbHVyOyAvLy9cclxuXHJcbiAgICBjaGFuZ2VIYW5kbGVyICYmIHRoaXMub2ZmQ2hhbmdlKGNoYW5nZUhhbmRsZXIsIHRoaXMpO1xyXG4gICAgc2Nyb2xsSGFuZGxlciAmJiB0aGlzLm9mZlNjcm9sbChzY3JvbGxIYW5kbGVyLCB0aGlzKTtcclxuICAgIGZvY3VzSGFuZGxlciAmJiB0aGlzLm9mZkZvY3VzKGZvY3VzSGFuZGxlciwgdGhpcyk7XHJcbiAgICBibHVySGFuZGxlciAmJiB0aGlzLm9mZkJsdXIoYmx1ckhhbmRsZXIsIHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGlzZSgpIHtcclxuICAgIHRoaXMuc2V0SW5pdGlhbFN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgdGFnTmFtZSA9IFwidGV4dGFyZWFcIjtcclxuXHJcbiAgc3RhdGljIGlnbm9yZWRQcm9wZXJ0aWVzID0gW1xyXG4gICAgXCJvbkNoYW5nZVwiLFxyXG4gICAgXCJvblNjcm9sbFwiLFxyXG4gICAgXCJvbkZvY3VzXCIsXHJcbiAgICBcIm9uQmx1clwiLFxyXG4gICAgXCJhY3RpdmVcIlxyXG4gIF07XHJcblxyXG4gIHN0YXRpYyBkZWZhdWx0UHJvcGVydGllcyA9IHtcclxuICAgIGNsYXNzTmFtZTogXCJyaWNoXCJcclxuICB9O1xyXG59XHJcbiJdLCJuYW1lcyI6WyJCTFVSX0VWRU5UX1RZUEUiLCJldmVudFR5cGVzIiwiSU5QVVRfRVZFTlRfVFlQRSIsIkZPQ1VTX0VWRU5UX1RZUEUiLCJDSEFOR0VfRVZFTlRfVFlQRSIsIlNDUk9MTF9FVkVOVF9UWVBFIiwiS0VZRE9XTl9FVkVOVF9UWVBFIiwiTU9VU0VVUF9FVkVOVF9UWVBFIiwiTU9VU0VET1dOX0VWRU5UX1RZUEUiLCJNT1VTRU1PVkVfRVZFTlRfVFlQRSIsIkNPTlRFWFRNRU5VX0VWRU5UX1RZUEUiLCJkZWZlciIsImZ1bmMiLCJzZXRUaW1lb3V0IiwiUmljaFRleHRhcmVhIiwiaXNBY3RpdmUiLCJhY3RpdmUiLCJoYXNDbGFzcyIsImlzUmVhZE9ubHkiLCJkb21FbGVtZW50IiwiZ2V0RE9NRWxlbWVudCIsInJlYWRPbmx5IiwiZ2V0Q29udGVudCIsInZhbHVlIiwiY29udGVudCIsImdldFNlbGVjdGlvbiIsInNlbGVjdGlvbiIsIlNlbGVjdGlvbiIsImZyb21ET01FbGVtZW50Iiwic2V0UmVhZE9ubHkiLCJPYmplY3QiLCJhc3NpZ24iLCJzZXRDb250ZW50IiwicHJldmlvdXNDb250ZW50Iiwic2V0UHJldmlvdXNDb250ZW50Iiwic2V0U2VsZWN0aW9uIiwic2VsZWN0aW9uU3RhcnRQb3NpdGlvbiIsImdldFN0YXJ0UG9zaXRpb24iLCJzZWxlY3Rpb25FbmRQb3NpdGlvbiIsImdldEVuZFBvc2l0aW9uIiwic2VsZWN0aW9uU3RhcnQiLCJzZWxlY3Rpb25FbmQiLCJwcmV2aW91c1NlbGVjdGlvbiIsInNldFByZXZpb3VzU2VsZWN0aW9uIiwiaXNNb3VzZURvd24iLCJzdGF0ZSIsImdldFN0YXRlIiwibW91c2VEb3duIiwiaGFzQ2hhbmdlZCIsImNvbnRlbnRDaGFuZ2VkIiwiaGFzQ29udGVudENoYW5nZWQiLCJzZWxlY3Rpb25DaGFuZ2VkIiwiaGFzU2VsZWN0aW9uQ2hhbmdlZCIsImNoYW5nZWQiLCJnZXRQcmV2aW91c0NvbnRlbnQiLCJjb250ZW50RGlmZmVyZW50VG9QcmV2aW91c0NvbnRlbnQiLCJnZXRQcmV2aW91c1NlbGVjdGlvbiIsInNlbGVjdGlvbkRpZmZlcmVudFRvUHJldmlvdXNTZWxlY3Rpb24iLCJpc0RpZmZlcmVudFRvIiwiYWN0aXZhdGUiLCJzZXRNb3VzZURvd24iLCJ3aW5kb3ciLCJvbiIsIm1vdXNlVXBIYW5kbGVyIiwibW91c2VEb3duSGFuZGxlciIsIm1vdXNlTW92ZUhhbmRsZXIiLCJrZXlEb3duSGFuZGxlciIsImlucHV0SGFuZGxlciIsInNjcm9sbEhhbmRsZXIiLCJmb2N1c0hhbmRsZXIiLCJibHVySGFuZGxlciIsImFkZENsYXNzIiwiZGVhY3RpdmF0ZSIsIm9mZiIsInJlbW92ZUNsYXNzIiwib25CbHVyIiwiZWxlbWVudCIsImV2ZW50VHlwZSIsImhhbmRsZXIiLCJhZGRFdmVudExpc3RlbmVyIiwib2ZmQmx1ciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJvbkZvY3VzIiwib2ZmRm9jdXMiLCJvblNjcm9sbCIsIm9mZlNjcm9sbCIsIm9uQ2hhbmdlIiwiY2hhbmdlSGFuZGxlciIsIm9mZkNoYW5nZSIsImV2ZW50IiwiZm9yY2VkIiwiaW50ZXJtZWRpYXRlSGFuZGxlciIsImV2ZW50VFlwZSIsImNhbGxIYW5kbGVycyIsInJlbWFpbmluZ0FyZ3VtZW50cyIsImV2ZW50TGlzdGVuZXJzIiwiZmluZEV2ZW50TGlzdGVuZXJzIiwiZm9yRWFjaCIsImV2ZW50TGlzdGVuZXIiLCJoYW5kbGVyRWxlbWVudCIsImNhbGwiLCJ1cGRhdGVTdGF0ZSIsInNldEluaXRpYWxTdGF0ZSIsInNldFN0YXRlIiwiZGlkTW91bnQiLCJwcm9wZXJ0aWVzIiwid2lsbFVubW91bnQiLCJpbml0aWFsaXNlIiwiRWxlbWVudCIsInRhZ05hbWUiLCJpZ25vcmVkUHJvcGVydGllcyIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIl0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZLFdBQUEsQ0FBQzs7O0U7d0I7QUFFK0IsR0FBTSxDQUFOLEtBQU07aUI7QUFJNUIsR0FBYSxDQUFiLFVBQWE7O3lEO3VFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2dGOzs7Ozs7OztzQzs7Ozs7O2lDOzs7aUU7O1M7Ozs7Ozs7OEQ7c0M7NkQ7aUU7Ozs7d0U7Z0U7Ozs7Ozs7Ozs7VTs7d0I7Ozs7Ozs7Szs7Ozs7Ozs7Ozs7OztNO3lEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7dUI7O0s7Ozs7Ozs7MkI7Ozs7Ozs7K0Q7Ozs7Ozs7Ozs7Ozs7c0M7Ozs7Ozs7Ozs7OztVOztLOzs7Ozs7OztxRjs7Ozs7Ozs7Ozs7O21FOztpRDs7Ozs7QUFFbkMsR0FBSyxDQUFHQSxlQUFlLEdBU2FDLEtBQVUsWUFUdENELGVBQWUsRUFDZEUsZ0JBQWdCLEdBUVdELEtBQVUsWUFSckNDLGdCQUFnQixFQUNoQkMsZ0JBQWdCLEdBT1dGLEtBQVUsWUFQckNFLGdCQUFnQixFQUNoQkMsaUJBQWlCLEdBTVVILEtBQVUsWUFOckNH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
|
|
574
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yaWNoVGV4dGFyZWEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG5pbXBvcnQgeyB3aW5kb3csIEVsZW1lbnQsIGV2ZW50VHlwZXMgfSBmcm9tIFwiZWFzeVwiO1xyXG5cclxuaW1wb3J0IFNlbGVjdGlvbiBmcm9tIFwiLi9zZWxlY3Rpb25cIlxyXG5cclxuY29uc3QgeyBCTFVSX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIElOUFVUX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIEZPQ1VTX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIENIQU5HRV9FVkVOVF9UWVBFLFxyXG4gICAgICAgICBTQ1JPTExfRVZFTlRfVFlQRSxcclxuICAgICAgICAgS0VZRE9XTl9FVkVOVF9UWVBFLFxyXG4gICAgICAgICBNT1VTRVVQX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIE1PVVNFRE9XTl9FVkVOVF9UWVBFLFxyXG4gICAgICAgICBNT1VTRU1PVkVfRVZFTlRfVFlQRSxcclxuICAgICAgICAgQ09OVEVYVE1FTlVfRVZFTlRfVFlQRSB9ID0gZXZlbnRUeXBlcztcclxuXHJcbmNvbnN0IGRlZmVyID0gKGZ1bmMpID0+IHNldFRpbWVvdXQoZnVuYywgMCk7IC8vL1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmljaFRleHRhcmVhIGV4dGVuZHMgRWxlbWVudCB7XHJcbiAgaXNBY3RpdmUoKSB7XHJcbiAgICBjb25zdCBhY3RpdmUgPSB0aGlzLmhhc0NsYXNzKFwiYWN0aXZlXCIpO1xyXG5cclxuICAgIHJldHVybiBhY3RpdmU7XHJcbiAgfVxyXG5cclxuICBpc1JlYWRPbmx5KCkge1xyXG4gICAgY29uc3QgZG9tRWxlbWVudCA9IHRoaXMuZ2V0RE9NRWxlbWVudCgpLFxyXG4gICAgICAgICAgeyByZWFkT25seSB9ID0gZG9tRWxlbWVudDtcclxuICAgIFxyXG4gICAgcmV0dXJuIHJlYWRPbmx5OyBcclxuICB9XHJcblxyXG4gIGdldENvbnRlbnQoKSB7XHJcbiAgICBjb25zdCBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCksXHJcbiAgICAgICAgICB7IHZhbHVlIH0gPSBkb21FbGVtZW50LFxyXG4gICAgICAgICAgY29udGVudCA9IHZhbHVlOyAgLy8vXHJcblxyXG4gICAgcmV0dXJuIGNvbnRlbnQ7XHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3Rpb24oKSB7XHJcbiAgICBjb25zdCBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCksXHJcbiAgICAgICAgICBzZWxlY3Rpb24gPSBTZWxlY3Rpb24uZnJvbURPTUVsZW1lbnQoZG9tRWxlbWVudCk7XHJcblxyXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcclxuICB9XHJcblxyXG4gIHNldFJlYWRPbmx5KHJlYWRPbmx5KSB7XHJcbiAgICBjb25zdCBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCk7XHJcblxyXG4gICAgT2JqZWN0LmFzc2lnbihkb21FbGVtZW50LCB7XHJcbiAgICAgIHJlYWRPbmx5XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldENvbnRlbnQoY29udGVudCkge1xyXG4gICAgY29uc3QgdmFsdWUgPSBjb250ZW50LCAgLy8vXHJcbiAgICAgICAgICBwcmV2aW91c0NvbnRlbnQgPSBjb250ZW50LCAgLy8vXHJcbiAgICAgICAgICBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCk7XHJcblxyXG4gICAgT2JqZWN0LmFzc2lnbihkb21FbGVtZW50LCB7XHJcbiAgICAgIHZhbHVlXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnNldFByZXZpb3VzQ29udGVudChwcmV2aW91c0NvbnRlbnQpO1xyXG4gIH1cclxuXHJcbiAgc2V0U2VsZWN0aW9uKHNlbGVjdGlvbikge1xyXG4gICAgY29uc3Qgc2VsZWN0aW9uU3RhcnRQb3NpdGlvbiA9IHNlbGVjdGlvbi5nZXRTdGFydFBvc2l0aW9uKCksXHJcbiAgICAgICAgICBzZWxlY3Rpb25FbmRQb3NpdGlvbiA9IHNlbGVjdGlvbi5nZXRFbmRQb3NpdGlvbigpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uU3RhcnQgPSBzZWxlY3Rpb25TdGFydFBvc2l0aW9uLCAgLy8vXHJcbiAgICAgICAgICBzZWxlY3Rpb25FbmQgPSBzZWxlY3Rpb25FbmRQb3NpdGlvbiwgIC8vL1xyXG4gICAgICAgICAgcHJldmlvdXNTZWxlY3Rpb24gPSBzZWxlY3Rpb24sICAvLy9cclxuICAgICAgICAgIGRvbUVsZW1lbnQgPSB0aGlzLmdldERPTUVsZW1lbnQoKTtcclxuXHJcbiAgICBPYmplY3QuYXNzaWduKGRvbUVsZW1lbnQsIHtcclxuICAgICAgc2VsZWN0aW9uU3RhcnQsXHJcbiAgICAgIHNlbGVjdGlvbkVuZFxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5zZXRQcmV2aW91c1NlbGVjdGlvbihwcmV2aW91c1NlbGVjdGlvbik7XHJcbiAgfVxyXG5cclxuICBpc01vdXNlRG93bigpIHtcclxuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5nZXRTdGF0ZSgpLFxyXG4gICAgICAgICAgeyBtb3VzZURvd24gfSA9IHN0YXRlO1xyXG5cclxuICAgIHJldHVybiBtb3VzZURvd247XHJcbiAgfVxyXG5cclxuICBoYXNDaGFuZ2VkKCkge1xyXG4gICAgY29uc3QgY29udGVudENoYW5nZWQgPSB0aGlzLmhhc0NvbnRlbnRDaGFuZ2VkKCksXHJcbiAgICAgICAgICBzZWxlY3Rpb25DaGFuZ2VkID0gdGhpcy5oYXNTZWxlY3Rpb25DaGFuZ2VkKCksXHJcbiAgICAgICAgICBjaGFuZ2VkID0gKGNvbnRlbnRDaGFuZ2VkIHx8IHNlbGVjdGlvbkNoYW5nZWQpO1xyXG5cclxuICAgIHJldHVybiBjaGFuZ2VkO1xyXG4gIH1cclxuXHJcbiAgaGFzQ29udGVudENoYW5nZWQoKSB7XHJcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5nZXRDb250ZW50KCksXHJcbiAgICAgICAgICBwcmV2aW91c0NvbnRlbnQgPSB0aGlzLmdldFByZXZpb3VzQ29udGVudCgpLFxyXG4gICAgICAgICAgY29udGVudERpZmZlcmVudFRvUHJldmlvdXNDb250ZW50ID0gKGNvbnRlbnQgIT09IHByZXZpb3VzQ29udGVudCksXHJcbiAgICAgICAgICBjb250ZW50Q2hhbmdlZCA9IGNvbnRlbnREaWZmZXJlbnRUb1ByZXZpb3VzQ29udGVudDsgLy8vXHJcblxyXG4gICAgcmV0dXJuIGNvbnRlbnRDaGFuZ2VkO1xyXG4gIH1cclxuXHJcbiAgaGFzU2VsZWN0aW9uQ2hhbmdlZCgpIHtcclxuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHRoaXMuZ2V0U2VsZWN0aW9uKCksXHJcbiAgICAgICAgICBwcmV2aW91c1NlbGVjdGlvbiA9IHRoaXMuZ2V0UHJldmlvdXNTZWxlY3Rpb24oKSxcclxuICAgICAgICAgIHNlbGVjdGlvbkRpZmZlcmVudFRvUHJldmlvdXNTZWxlY3Rpb24gPSBzZWxlY3Rpb24uaXNEaWZmZXJlbnRUbyhwcmV2aW91c1NlbGVjdGlvbiksXHJcbiAgICAgICAgICBzZWxlY3Rpb25DaGFuZ2VkID0gc2VsZWN0aW9uRGlmZmVyZW50VG9QcmV2aW91c1NlbGVjdGlvbjsgLy8vXHJcblxyXG4gICAgcmV0dXJuIHNlbGVjdGlvbkNoYW5nZWQ7XHJcbiAgfVxyXG5cclxuICBhY3RpdmF0ZSgpIHtcclxuICAgIGNvbnN0IG1vdXNlRG93biA9IGZhbHNlO1xyXG5cclxuICAgIHRoaXMuc2V0TW91c2VEb3duKG1vdXNlRG93bik7XHJcblxyXG4gICAgd2luZG93Lm9uKGAke0JMVVJfRVZFTlRfVFlQRX0gJHtNT1VTRVVQX0VWRU5UX1RZUEV9ICR7Q09OVEVYVE1FTlVfRVZFTlRfVFlQRX1gLCB0aGlzLm1vdXNlVXBIYW5kbGVyLCB0aGlzKTsgLy8vXHJcblxyXG4gICAgdGhpcy5vbihNT1VTRURPV05fRVZFTlRfVFlQRSwgdGhpcy5tb3VzZURvd25IYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9uKE1PVVNFTU9WRV9FVkVOVF9UWVBFLCB0aGlzLm1vdXNlTW92ZUhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMub24oS0VZRE9XTl9FVkVOVF9UWVBFLCB0aGlzLmtleURvd25IYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9uKElOUFVUX0VWRU5UX1RZUEUsIHRoaXMuaW5wdXRIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9uKFNDUk9MTF9FVkVOVF9UWVBFLCB0aGlzLnNjcm9sbEhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMub24oRk9DVVNfRVZFTlRfVFlQRSwgdGhpcy5mb2N1c0hhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMub24oQkxVUl9FVkVOVF9UWVBFLCB0aGlzLmJsdXJIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLmFkZENsYXNzKFwiYWN0aXZlXCIpO1xyXG4gIH1cclxuXHJcbiAgZGVhY3RpdmF0ZSgpIHtcclxuICAgIGNvbnN0IG1vdXNlRG93biA9IGZhbHNlO1xyXG5cclxuICAgIHRoaXMuc2V0TW91c2VEb3duKG1vdXNlRG93bik7XHJcblxyXG4gICAgd2luZG93Lm9mZihgJHtCTFVSX0VWRU5UX1RZUEV9ICR7TU9VU0VVUF9FVkVOVF9UWVBFfSAke0NPTlRFWFRNRU5VX0VWRU5UX1RZUEV9YCwgdGhpcy5tb3VzZVVwSGFuZGxlciwgdGhpcyk7IC8vL1xyXG5cclxuICAgIHRoaXMub2ZmKE1PVVNFRE9XTl9FVkVOVF9UWVBFLCB0aGlzLm1vdXNlRG93bkhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMub2ZmKE1PVVNFTU9WRV9FVkVOVF9UWVBFLCB0aGlzLm1vdXNlTW92ZUhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMub2ZmKEtFWURPV05fRVZFTlRfVFlQRSwgdGhpcy5rZXlEb3duSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vZmYoSU5QVVRfRVZFTlRfVFlQRSwgdGhpcy5pbnB1dEhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMub2ZmKFNDUk9MTF9FVkVOVF9UWVBFLCB0aGlzLnNjcm9sbEhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMub2ZmKEZPQ1VTX0VWRU5UX1RZUEUsIHRoaXMuZm9jdXNIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9mZihCTFVSX0VWRU5UX1RZUEUsIHRoaXMuYmx1ckhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMucmVtb3ZlQ2xhc3MoXCJhY3RpdmVcIik7XHJcbiAgfVxyXG5cclxuICBvbkJsdXIoYmx1ckhhbmRsZXIsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGV2ZW50VHlwZSA9IEJMVVJfRVZFTlRfVFlQRSxcclxuICAgICAgICAgIGhhbmRsZXIgPSBibHVySGFuZGxlcjsgIC8vL1xyXG5cclxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIsIGVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgb2ZmQmx1cihibHVySGFuZGxlciwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZXZlbnRUeXBlID0gQkxVUl9FVkVOVF9UWVBFLFxyXG4gICAgICAgICAgaGFuZGxlciA9IGJsdXJIYW5kbGVyOyAgLy8vXHJcblxyXG4gICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBvbkZvY3VzKGJsdXJIYW5kbGVyLCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBldmVudFR5cGUgPSBGT0NVU19FVkVOVF9UWVBFLFxyXG4gICAgICAgICAgaGFuZGxlciA9IGJsdXJIYW5kbGVyOyAgLy8vXHJcblxyXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBvZmZGb2N1cyhibHVySGFuZGxlciwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZXZlbnRUeXBlID0gRk9DVVNfRVZFTlRfVFlQRSxcclxuICAgICAgICAgIGhhbmRsZXIgPSBibHVySGFuZGxlcjsgIC8vL1xyXG5cclxuICAgIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIsIGVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgb25TY3JvbGwoc2Nyb2xsSGFuZGxlciwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZXZlbnRUeXBlID0gU0NST0xMX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICBoYW5kbGVyID0gc2Nyb2xsSGFuZGxlcjsgIC8vL1xyXG5cclxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIsIGVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgb2ZmU2Nyb2xsKHNjcm9sbEhhbmRsZXIsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGV2ZW50VHlwZSA9IFNDUk9MTF9FVkVOVF9UWVBFLFxyXG4gICAgICAgICAgaGFuZGxlciA9IHNjcm9sbEhhbmRsZXI7ICAvLy9cclxuXHJcbiAgICB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYW5kbGVyLCBlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlKGNoYW5nZUhhbmRsZXIsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGV2ZW50VHlwZSA9IENIQU5HRV9FVkVOVF9UWVBFLFxyXG4gICAgICAgICAgaGFuZGxlciA9IGNoYW5nZUhhbmRsZXI7ICAvLy9cclxuXHJcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYW5kbGVyLCBlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIG9mZkNoYW5nZShjaGFuZ2VIYW5kbGVyLCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBldmVudFR5cGUgPSBDSEFOR0VfRVZFTlRfVFlQRSxcclxuICAgICAgICAgIGhhbmRsZXIgPSBjaGFuZ2VIYW5kbGVyOyAgLy8vXHJcblxyXG4gICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBtb3VzZVVwSGFuZGxlcihldmVudCwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgbW91c2VEb3duID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5zZXRNb3VzZURvd24obW91c2VEb3duKTtcclxuICB9O1xyXG5cclxuICBtb3VzZURvd25IYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBmb3JjZWQgPSBmYWxzZSxcclxuICAgICAgICAgIG1vdXNlRG93biA9IHRydWUsXHJcbiAgICAgICAgICBldmVudFR5cGUgPSBDSEFOR0VfRVZFTlRfVFlQRTtcclxuXHJcbiAgICB0aGlzLnNldE1vdXNlRG93bihtb3VzZURvd24pO1xyXG5cclxuICAgIGRlZmVyKCgpID0+IHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpKTtcclxuICB9XHJcblxyXG4gIG1vdXNlTW92ZUhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGZvcmNlZCA9IGZhbHNlLFxyXG4gICAgICAgICAgbW91c2VEb3duID0gdGhpcy5pc01vdXNlRG93bigpLFxyXG4gICAgICAgICAgZXZlbnRUWXBlID0gQ0hBTkdFX0VWRU5UX1RZUEU7XHJcblxyXG4gICAgaWYgKG1vdXNlRG93bikge1xyXG4gICAgICB0aGlzLmludGVybWVkaWF0ZUhhbmRsZXIoZXZlbnQsIGVsZW1lbnQsIGV2ZW50VFlwZSwgZm9yY2VkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGtleURvd25IYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBmb3JjZWQgPSBmYWxzZSxcclxuICAgICAgICAgIGV2ZW50VHlwZSA9IENIQU5HRV9FVkVOVF9UWVBFO1xyXG5cclxuICAgIGRlZmVyKCgpID0+IHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpKTtcclxuICB9XHJcblxyXG4gIGlucHV0SGFuZGxlcihldmVudCwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZm9yY2VkID0gZmFsc2UsXHJcbiAgICAgICAgICBldmVudFR5cGUgPSBDSEFOR0VfRVZFTlRfVFlQRTtcclxuXHJcbiAgICB0aGlzLmludGVybWVkaWF0ZUhhbmRsZXIoZXZlbnQsIGVsZW1lbnQsIGV2ZW50VHlwZSwgZm9yY2VkKTtcclxuICB9XHJcblxyXG4gIHNjcm9sbEhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGV2ZW50VHlwZSA9IFNDUk9MTF9FVkVOVF9UWVBFO1xyXG5cclxuICAgIHRoaXMuY2FsbEhhbmRsZXJzKGV2ZW50VHlwZSwgZXZlbnQsIGVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgZm9jdXNIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBmb3JjZWQgPSB0cnVlLFxyXG4gICAgICAgICAgZXZlbnRUeXBlID0gRk9DVVNfRVZFTlRfVFlQRTtcclxuXHJcbiAgICBkZWZlcigoKSA9PiB0aGlzLmludGVybWVkaWF0ZUhhbmRsZXIoZXZlbnQsIGVsZW1lbnQsIGV2ZW50VHlwZSwgZm9yY2VkKSk7XHJcbiAgfVxyXG5cclxuICBibHVySGFuZGxlcihldmVudCwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZm9yY2VkID0gdHJ1ZSxcclxuICAgICAgICAgIGV2ZW50VHlwZSA9IEJMVVJfRVZFTlRfVFlQRTtcclxuXHJcbiAgICB0aGlzLmludGVybWVkaWF0ZUhhbmRsZXIoZXZlbnQsIGVsZW1lbnQsIGV2ZW50VHlwZSwgZm9yY2VkKTtcclxuICB9XHJcblxyXG4gIGludGVybWVkaWF0ZUhhbmRsZXIoZXZlbnQsIGVsZW1lbnQsIGV2ZW50VHlwZSwgZm9yY2VkKSB7XHJcbiAgICBjb25zdCBjaGFuZ2VkID0gdGhpcy5oYXNDaGFuZ2VkKCk7XHJcblxyXG4gICAgaWYgKGNoYW5nZWQgfHwgZm9yY2VkKSB7XHJcbiAgICAgIHRoaXMuY2FsbEhhbmRsZXJzKGV2ZW50VHlwZSwgZXZlbnQsIGVsZW1lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmdldENvbnRlbnQoKSxcclxuICAgICAgICAgIHNlbGVjdGlvbiA9IHRoaXMuZ2V0U2VsZWN0aW9uKCksXHJcbiAgICAgICAgICBwcmV2aW91c0NvbnRlbnQgPSBjb250ZW50LCAgLy8vXHJcbiAgICAgICAgICBwcmV2aW91c1NlbGVjdGlvbiA9IHNlbGVjdGlvbjsgIC8vL1xyXG5cclxuICAgIHRoaXMuc2V0UHJldmlvdXNDb250ZW50KHByZXZpb3VzQ29udGVudCk7XHJcbiAgICB0aGlzLnNldFByZXZpb3VzU2VsZWN0aW9uKHByZXZpb3VzU2VsZWN0aW9uKTtcclxuICB9XHJcblxyXG4gIGNhbGxIYW5kbGVycyhldmVudFR5cGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xyXG4gICAgY29uc3QgZXZlbnRMaXN0ZW5lcnMgPSB0aGlzLmZpbmRFdmVudExpc3RlbmVycyhldmVudFR5cGUpO1xyXG5cclxuICAgIGV2ZW50TGlzdGVuZXJzLmZvckVhY2goKGV2ZW50TGlzdGVuZXIpID0+IHtcclxuICAgICAgY29uc3QgeyBoYW5kbGVyLCBlbGVtZW50OiBoYW5kbGVyRWxlbWVudCB9ID0gZXZlbnRMaXN0ZW5lcixcclxuICAgICAgICAgICAgZWxlbWVudCA9IHRoaXM7IC8vL1xyXG5cclxuICAgICAgaWYgKChoYW5kbGVyICE9PSB0aGlzLmJsdXJIYW5kbGVyKSAmJiAoaGFuZGxlciAhPT0gdGhpcy5mb2N1c0hhbmRsZXIpICYmIChoYW5kbGVyICE9PSB0aGlzLnNjcm9sbEhhbmRsZXIpKSB7XHJcbiAgICAgICAgaGFuZGxlci5jYWxsKGhhbmRsZXJFbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGVsZW1lbnQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFByZXZpb3VzQ29udGVudCgpIHtcclxuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5nZXRTdGF0ZSgpLFxyXG4gICAgICAgICAgeyBwcmV2aW91c0NvbnRlbnQgfSA9IHN0YXRlO1xyXG5cclxuICAgIHJldHVybiBwcmV2aW91c0NvbnRlbnQ7XHJcbiAgfVxyXG5cclxuICBnZXRQcmV2aW91c1NlbGVjdGlvbigpIHtcclxuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5nZXRTdGF0ZSgpLFxyXG4gICAgICAgICAgeyBwcmV2aW91c1NlbGVjdGlvbiB9ID0gc3RhdGU7XHJcblxyXG4gICAgcmV0dXJuIHByZXZpb3VzU2VsZWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgc2V0TW91c2VEb3duKG1vdXNlRG93bikge1xyXG4gICAgdGhpcy51cGRhdGVTdGF0ZSh7XHJcbiAgICAgIG1vdXNlRG93blxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRQcmV2aW91c0NvbnRlbnQocHJldmlvdXNDb250ZW50KSB7XHJcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHtcclxuICAgICAgcHJldmlvdXNDb250ZW50XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldFByZXZpb3VzU2VsZWN0aW9uKHByZXZpb3VzU2VsZWN0aW9uKSB7XHJcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHtcclxuICAgICAgcHJldmlvdXNTZWxlY3Rpb25cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0SW5pdGlhbFN0YXRlKCkge1xyXG4gICAgY29uc3QgbW91c2VEb3duID0gZmFsc2UsXHJcbiAgICAgICAgICBwcmV2aW91c0NvbnRlbnQgPSBudWxsLFxyXG4gICAgICAgICAgcHJldmlvdXNTZWxlY3Rpb24gPSBudWxsO1xyXG5cclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBtb3VzZURvd24sXHJcbiAgICAgIHByZXZpb3VzQ29udGVudCxcclxuICAgICAgcHJldmlvdXNTZWxlY3Rpb25cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZGlkTW91bnQoKSB7XHJcbiAgICBjb25zdCB7IGFjdGl2ZSwgb25DaGFuZ2UsIG9uU2Nyb2xsLCBvbkZvY3VzLCBvbkJsdXIgfSA9IHRoaXMucHJvcGVydGllcyxcclxuICAgICAgICAgICAgY2hhbmdlSGFuZGxlciA9IG9uQ2hhbmdlLCAvLy9cclxuICAgICAgICAgICAgc2Nyb2xsSGFuZGxlciA9IG9uU2Nyb2xsLCAvLy9cclxuICAgICAgICAgICAgZm9jdXNIYW5kbGVyID0gb25Gb2N1cywgLy8vXHJcbiAgICAgICAgICAgIGJsdXJIYW5kbGVyID0gb25CbHVyOyAvLy9cclxuXHJcbiAgICBjaGFuZ2VIYW5kbGVyICYmIHRoaXMub25DaGFuZ2UoY2hhbmdlSGFuZGxlciwgdGhpcyk7XHJcbiAgICBzY3JvbGxIYW5kbGVyICYmIHRoaXMub25TY3JvbGwoc2Nyb2xsSGFuZGxlciwgdGhpcyk7XHJcbiAgICBmb2N1c0hhbmRsZXIgJiYgdGhpcy5vbkZvY3VzKGZvY3VzSGFuZGxlciwgdGhpcyk7XHJcbiAgICBibHVySGFuZGxlciAmJiB0aGlzLm9uQmx1cihibHVySGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgaWYgKGFjdGl2ZSkge1xyXG4gICAgICB0aGlzLmFjdGl2YXRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB3aWxsVW5tb3VudCgpIHtcclxuICAgIGNvbnN0IHsgb25DaGFuZ2UsIG9uU2Nyb2xsLCBvbkZvY3VzLCBvbkJsdXIgfSA9IHRoaXMucHJvcGVydGllcyxcclxuICAgICAgICAgIGNoYW5nZUhhbmRsZXIgPSBvbkNoYW5nZSwgLy8vXHJcbiAgICAgICAgICBzY3JvbGxIYW5kbGVyID0gb25TY3JvbGwsIC8vL1xyXG4gICAgICAgICAgZm9jdXNIYW5kbGVyID0gb25Gb2N1cywgLy8vXHJcbiAgICAgICAgICBibHVySGFuZGxlciA9IG9uQmx1cjsgLy8vXHJcblxyXG4gICAgY2hhbmdlSGFuZGxlciAmJiB0aGlzLm9mZkNoYW5nZShjaGFuZ2VIYW5kbGVyLCB0aGlzKTtcclxuICAgIHNjcm9sbEhhbmRsZXIgJiYgdGhpcy5vZmZTY3JvbGwoc2Nyb2xsSGFuZGxlciwgdGhpcyk7XHJcbiAgICBmb2N1c0hhbmRsZXIgJiYgdGhpcy5vZmZGb2N1cyhmb2N1c0hhbmRsZXIsIHRoaXMpO1xyXG4gICAgYmx1ckhhbmRsZXIgJiYgdGhpcy5vZmZCbHVyKGJsdXJIYW5kbGVyLCB0aGlzKTtcclxuICB9XHJcblxyXG4gIGluaXRpYWxpc2UoKSB7XHJcbiAgICB0aGlzLnNldEluaXRpYWxTdGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIHRhZ05hbWUgPSBcInRleHRhcmVhXCI7XHJcblxyXG4gIHN0YXRpYyBpZ25vcmVkUHJvcGVydGllcyA9IFtcclxuICAgIFwib25DaGFuZ2VcIixcclxuICAgIFwib25TY3JvbGxcIixcclxuICAgIFwib25Gb2N1c1wiLFxyXG4gICAgXCJvbkJsdXJcIixcclxuICAgIFwiYWN0aXZlXCJcclxuICBdO1xyXG5cclxuICBzdGF0aWMgZGVmYXVsdFByb3BlcnRpZXMgPSB7XHJcbiAgICBjbGFzc05hbWU6IFwicmljaFwiXHJcbiAgfTtcclxufVxyXG4iXSwibmFtZXMiOlsiQkxVUl9FVkVOVF9UWVBFIiwiZXZlbnRUeXBlcyIsIklOUFVUX0VWRU5UX1RZUEUiLCJGT0NVU19FVkVOVF9UWVBFIiwiQ0hBTkdFX0VWRU5UX1RZUEUiLCJTQ1JPTExfRVZFTlRfVFlQRSIsIktFWURPV05fRVZFTlRfVFlQRSIsIk1PVVNFVVBfRVZFTlRfVFlQRSIsIk1PVVNFRE9XTl9FVkVOVF9UWVBFIiwiTU9VU0VNT1ZFX0VWRU5UX1RZUEUiLCJDT05URVhUTUVOVV9FVkVOVF9UWVBFIiwiZGVmZXIiLCJmdW5jIiwic2V0VGltZW91dCIsIlJpY2hUZXh0YXJlYSIsImlzQWN0aXZlIiwiYWN0aXZlIiwiaGFzQ2xhc3MiLCJpc1JlYWRPbmx5IiwiZG9tRWxlbWVudCIsImdldERPTUVsZW1lbnQiLCJyZWFkT25seSIsImdldENvbnRlbnQiLCJ2YWx1ZSIsImNvbnRlbnQiLCJnZXRTZWxlY3Rpb24iLCJzZWxlY3Rpb24iLCJTZWxlY3Rpb24iLCJmcm9tRE9NRWxlbWVudCIsInNldFJlYWRPbmx5IiwiT2JqZWN0IiwiYXNzaWduIiwic2V0Q29udGVudCIsInByZXZpb3VzQ29udGVudCIsInNldFByZXZpb3VzQ29udGVudCIsInNldFNlbGVjdGlvbiIsInNlbGVjdGlvblN0YXJ0UG9zaXRpb24iLCJnZXRTdGFydFBvc2l0aW9uIiwic2VsZWN0aW9uRW5kUG9zaXRpb24iLCJnZXRFbmRQb3NpdGlvbiIsInNlbGVjdGlvblN0YXJ0Iiwic2VsZWN0aW9uRW5kIiwicHJldmlvdXNTZWxlY3Rpb24iLCJzZXRQcmV2aW91c1NlbGVjdGlvbiIsImlzTW91c2VEb3duIiwic3RhdGUiLCJnZXRTdGF0ZSIsIm1vdXNlRG93biIsImhhc0NoYW5nZWQiLCJjb250ZW50Q2hhbmdlZCIsImhhc0NvbnRlbnRDaGFuZ2VkIiwic2VsZWN0aW9uQ2hhbmdlZCIsImhhc1NlbGVjdGlvbkNoYW5nZWQiLCJjaGFuZ2VkIiwiZ2V0UHJldmlvdXNDb250ZW50IiwiY29udGVudERpZmZlcmVudFRvUHJldmlvdXNDb250ZW50IiwiZ2V0UHJldmlvdXNTZWxlY3Rpb24iLCJzZWxlY3Rpb25EaWZmZXJlbnRUb1ByZXZpb3VzU2VsZWN0aW9uIiwiaXNEaWZmZXJlbnRUbyIsImFjdGl2YXRlIiwic2V0TW91c2VEb3duIiwid2luZG93Iiwib24iLCJtb3VzZVVwSGFuZGxlciIsIm1vdXNlRG93bkhhbmRsZXIiLCJtb3VzZU1vdmVIYW5kbGVyIiwia2V5RG93bkhhbmRsZXIiLCJpbnB1dEhhbmRsZXIiLCJzY3JvbGxIYW5kbGVyIiwiZm9jdXNIYW5kbGVyIiwiYmx1ckhhbmRsZXIiLCJhZGRDbGFzcyIsImRlYWN0aXZhdGUiLCJvZmYiLCJyZW1vdmVDbGFzcyIsIm9uQmx1ciIsImVsZW1lbnQiLCJldmVudFR5cGUiLCJoYW5kbGVyIiwiYWRkRXZlbnRMaXN0ZW5lciIsIm9mZkJsdXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwib25Gb2N1cyIsIm9mZkZvY3VzIiwib25TY3JvbGwiLCJvZmZTY3JvbGwiLCJvbkNoYW5nZSIsImNoYW5nZUhhbmRsZXIiLCJvZmZDaGFuZ2UiLCJldmVudCIsImZvcmNlZCIsImludGVybWVkaWF0ZUhhbmRsZXIiLCJldmVudFRZcGUiLCJjYWxsSGFuZGxlcnMiLCJyZW1haW5pbmdBcmd1bWVudHMiLCJldmVudExpc3RlbmVycyIsImZpbmRFdmVudExpc3RlbmVycyIsImZvckVhY2giLCJldmVudExpc3RlbmVyIiwiaGFuZGxlckVsZW1lbnQiLCJjYWxsIiwidXBkYXRlU3RhdGUiLCJzZXRJbml0aWFsU3RhdGUiLCJzZXRTdGF0ZSIsImRpZE1vdW50IiwicHJvcGVydGllcyIsIndpbGxVbm1vdW50IiwiaW5pdGlhbGlzZSIsIkVsZW1lbnQiLCJ0YWdOYW1lIiwiaWdub3JlZFByb3BlcnRpZXMiLCJkZWZhdWx0UHJvcGVydGllcyIsImNsYXNzTmFtZSJdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOzs7OztBQUUrQixJQUFBLEtBQU0sV0FBTixNQUFNLENBQUE7QUFFNUIsSUFBQSxVQUFhLGtDQUFiLGFBQWEsRUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRW5DLElBQVFBLGVBQWUsR0FTYUMsS0FBVSxZQVR0Q0QsZUFBZSxFQUNkRSxnQkFBZ0IsR0FRV0QsS0FBVSxZQVJyQ0MsZ0JBQWdCLEVBQ2hCQyxnQkFBZ0IsR0FPV0YsS0FBVSxZQVByQ0UsZ0JBQWdCLEVBQ2hCQyxpQkFBaUIsR0FNVUgsS0FBVSxZQU5yQ0csaUJBQWlCLEVBQ2pCQyxpQkFBaUIsR0FLVUosS0FBVSxZQUxyQ0ksaUJBQWlCLEVBQ2pCQyxrQkFBa0IsR0FJU0wsS0FB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
|
package/lib/selection.js
CHANGED
|
@@ -98,4 +98,4 @@ var Selection = /*#__PURE__*/ function() {
|
|
|
98
98
|
}();
|
|
99
99
|
exports.default = Selection;
|
|
100
100
|
|
|
101
|
-
//# sourceMappingURL=data:application/json;
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zZWxlY3Rpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNlbGVjdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKSB7XG4gICAgdGhpcy5zdGFydFBvc2l0aW9uID0gc3RhcnRQb3NpdGlvbjtcbiAgICB0aGlzLmVuZFBvc2l0aW9uID0gZW5kUG9zaXRpb247XG4gIH1cblxuICBnZXRTdGFydFBvc2l0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXJ0UG9zaXRpb247XG4gIH1cblxuICBnZXRFbmRQb3NpdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5lbmRQb3NpdGlvbjtcbiAgfVxuXG4gIHNldFN0YXJ0UG9zaXRpb24oc3RhcnRQb3NpdGlvbikge1xuICAgIHRoaXMuc3RhcnRQb3NpdGlvbiA9IHN0YXJ0UG9zaXRpb247XG4gIH1cblxuICBzZXRFbmRQb3NpdGlvbihlbmRQb3NpdGlvbikge1xuICAgIHRoaXMuZW5kUG9zaXRpb24gPSBlbmRQb3NpdGlvbjtcbiAgfVxuXG4gIGlzRXF1YWxUbyhzZWxlY3Rpb24pIHtcbiAgICBsZXQgZXF1YWxUbyA9IGZhbHNlO1xuXG4gICAgaWYgKHNlbGVjdGlvbiAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc2VsZWN0aW9uU3RhcnRQb3NpdGlvbiA9IHNlbGVjdGlvbi5nZXRTdGFydFBvc2l0aW9uKCksXG4gICAgICAgICAgICBzZWxlY3Rpb25FbmRQb3NpdGlvbiA9IHNlbGVjdGlvbi5nZXRFbmRQb3NpdGlvbigpLFxuICAgICAgICAgICAgc3RhcnRQb3NpdGlvbnNFcXVhbCA9ICh0aGlzLnN0YXJ0UG9zaXRpb24gPT09IHNlbGVjdGlvblN0YXJ0UG9zaXRpb24pLFxuICAgICAgICAgICAgZW5kUG9zaXRpb25zRXF1YWwgPSAodGhpcy5lbmRQb3NpdGlvbiA9PT0gc2VsZWN0aW9uRW5kUG9zaXRpb24pO1xuXG4gICAgICBlcXVhbFRvID0gKHN0YXJ0UG9zaXRpb25zRXF1YWwgJiYgZW5kUG9zaXRpb25zRXF1YWwpO1xuICAgIH1cblxuICAgIHJldHVybiBlcXVhbFRvO1xuICB9XG5cbiAgaXNEaWZmZXJlbnRUbyhzZWxlY3Rpb24pIHtcbiAgICBjb25zdCBlcXVhbFRvID0gdGhpcy5pc0VxdWFsVG8oc2VsZWN0aW9uKSxcbiAgICAgICAgICBkaWZmZXJlbnRUbyA9ICFlcXVhbFRvO1xuXG4gICAgcmV0dXJuIGRpZmZlcmVudFRvO1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob3RoaW5nKCkge1xuICAgIGNvbnN0IHN0YXJ0UG9zaXRpb24gPSAwLFxuICAgICAgICAgIGVuZFBvc2l0aW9uID0gMCxcbiAgICAgICAgICBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKTtcblxuICAgIHJldHVybiBzZWxlY3Rpb247XG4gIH1cblxuICBzdGF0aWMgZnJvbURPTUVsZW1lbnQoZG9tRWxlbWVudCkge1xuICAgIGNvbnN0IHsgc2VsZWN0aW9uU3RhcnQsIHNlbGVjdGlvbkVuZCB9ID0gZG9tRWxlbWVudCxcbiAgICAgICAgICBzdGFydFBvc2l0aW9uID0gc2VsZWN0aW9uU3RhcnQsIC8vL1xuICAgICAgICAgIGVuZFBvc2l0aW9uID0gc2VsZWN0aW9uRW5kLCAvLy9cbiAgICAgICAgICBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKTtcblxuICAgIHJldHVybiBzZWxlY3Rpb247XG5cbiAgfVxuXG4gIHN0YXRpYyBmcm9tU3RhcnRQb3NpdGlvbkFuZEVuZFBvc2l0aW9uKHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKSB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbihzdGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbik7XG5cbiAgICByZXR1cm4gc2VsZWN0aW9uO1xuICB9XG59XG4iXSwibmFtZXMiOlsiU2VsZWN0aW9uIiwic3RhcnRQb3NpdGlvbiIsImVuZFBvc2l0aW9uIiwiZ2V0U3RhcnRQb3NpdGlvbiIsImdldEVuZFBvc2l0aW9uIiwic2V0U3RhcnRQb3NpdGlvbiIsInNldEVuZFBvc2l0aW9uIiwiaXNFcXVhbFRvIiwic2VsZWN0aW9uIiwiZXF1YWxUbyIsInNlbGVjdGlvblN0YXJ0UG9zaXRpb24iLCJzZWxlY3Rpb25FbmRQb3NpdGlvbiIsInN0YXJ0UG9zaXRpb25zRXF1YWwiLCJlbmRQb3NpdGlvbnNFcXVhbCIsImlzRGlmZmVyZW50VG8iLCJkaWZmZXJlbnRUbyIsImZyb21Ob3RoaW5nIiwiZnJvbURPTUVsZW1lbnQiLCJkb21FbGVtZW50Iiwic2VsZWN0aW9uU3RhcnQiLCJzZWxlY3Rpb25FbmQiLCJmcm9tU3RhcnRQb3NpdGlvbkFuZEVuZFBvc2l0aW9uIl0sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVFLElBQUEsQUFBTUEsU0FBUyxpQkNGM0IsQURFWTthQUFNQSxTQUFTLENBQ2hCQyxhQUFhLEVBQUVDLFdBQVc7O1FBQ3BDLElBQUksQ0FBQ0QsYUFBYSxHQUFHQSxhQUFhLENBQUM7UUFDbkMsSUFBSSxDQUFDQyxXQUFXLEdBQUdBLFdBQVcsQ0FBQzs7OztZQUdqQ0MsR0FBZ0IsRUFBaEJBLGtCQUFnQjtZRVJsQixPRlFFQSxTQUFBQSxnQkFBZ0IsR0FBRztnQkFDakIsT0FBTyxJQUFJLENBQUNGLGFBQWEsQ0FBQzthQUMzQjs7O1lBRURHLEdBQWMsRUFBZEEsZ0JBQWM7WUVaaEIsT0ZZRUEsU0FBQUEsY0FBYyxHQUFHO2dCQUNmLE9BQU8sSUFBSSxDQUFDRixXQUFXLENBQUM7YUFDekI7OztZQUVERyxHQUFnQixFQUFoQkEsa0JBQWdCO1lFaEJsQixPRmdCRUEsU0FBQUEsZ0JBQWdCLENBQUNKLGFBQWEsRUFBRTtnQkFDOUIsSUFBSSxDQUFDQSxhQUFhLEdBQUdBLGFBQWEsQ0FBQzthQUNwQzs7O1lBRURLLEdBQWMsRUFBZEEsZ0JBQWM7WUVwQmhCLE9Gb0JFQSxTQUFBQSxjQUFjLENBQUNKLFdBQVcsRUFBRTtnQkFDMUIsSUFBSSxDQUFDQSxXQUFXLEdBQUdBLFdBQVcsQ0FBQzthQUNoQzs7O1lBRURLLEdBQVMsRUFBVEEsV0FBUztZRXhCWCxPRndCRUEsU0FBQUEsU0FBUyxDQUFDQyxTQUFTLEVBQUU7Z0JBQ25CLElBQUlDLE9BQU8sR0FBRyxLQUFLLEFBQUM7Z0JBRXBCLElBQUlELFNBQVMsS0FBSyxJQUFJLEVBQUU7b0JBQ3RCLElBQU1FLHNCQUFzQixHQUFHRixTQUFTLENBQUNMLGdCQUFnQixFQUFFLEVBQ3JEUSxvQkFBb0IsR0FBR0gsU0FBUyxDQUFDSixjQUFjLEVBQUUsRUFDakRRLG1CQUFtQixHQUFJLElBQUksQ0FBQ1gsYUFBYSxLQUFLUyxzQkFBc0IsQUFBQyxFQUNyRUcsaUJBQWlCLEdBQUksSUFBSSxDQUFDWCxXQUFXLEtBQUtTLG9CQUFvQixBQUFDLEFBQUM7b0JBRXRFRixPQUFPLEdBQUlHLG1CQUFtQixJQUFJQyxpQkFBaUIsQUFBQyxDQUFDO2lCQUN0RDtnQkFFRCxPQUFPSixPQUFPLENBQUM7YUFDaEI7OztZQUVESyxHQUFhLEVBQWJBLGVBQWE7WUV2Q2YsT0Z1Q0VBLFNBQUFBLGFBQWEsQ0FBQ04sU0FBUyxFQUFFO2dCQUN2QixJQUFNQyxPQUFPLEdBQUcsSUFBSSxDQUFDRixTQUFTLENBQUNDLFNBQVMsQ0FBQyxFQUNuQ08sV0FBVyxHQUFHLENBQUNOLE9BQU8sQUFBQztnQkFFN0IsT0FBT00sV0FBVyxDQUFDO2FBQ3BCOzs7O1lBRU1DLEdBQVcsRUFBWEEsYUFBVztZRTlDcEIsT0Y4Q0UsU0FBT0EsV0FBVyxHQUFHO2dCQUNuQixJQUFNZixhQUFhLEdBQUcsQ0FBQyxFQUNqQkMsV0FBVyxHQUFHLENBQUMsRUFDZk0sU0FBUyxHQUFHLElBQUlSLFNBQVMsQ0FBQ0MsYUFBYSxFQUFFQyxXQUFXLENBQUMsQUFBQztnQkFFNUQsT0FBT00sU0FBUyxDQUFDO2FBQ2xCOzs7WUFFTVMsR0FBYyxFQUFkQSxnQkFBYztZRXREdkIsT0ZzREUsU0FBT0EsY0FBYyxDQUFDQyxVQUFVLEVBQUU7Z0JBQ2hDLElBQVFDLGNBQWMsR0FBbUJELFVBQVUsQ0FBM0NDLGNBQWMsRUFBRUMsWUFBWSxHQUFLRixVQUFVLENBQTNCRSxZQUFZLEVBQzlCbkIsYUFBYSxHQUFHa0IsY0FBYyxFQUM5QmpCLFdBQVcsR0FBR2tCLFlBQVksRUFDMUJaLFNBQVMsR0FBRyxJQUFJUixTQUFTLENBQUNDLGFBQWEsRUFBRUMsV0FBVyxDQUFDLEFBQUM7Z0JBRTVELE9BQU9NLFNBQVMsQ0FBQzthQUVsQjs7O1lBRU1hLEdBQStCLEVBQS9CQSxpQ0FBK0I7WUVoRXhDLE9GZ0VFLFNBQU9BLCtCQUErQixDQUFDcEIsYUFBYSxFQUFFQyxXQUFXLEVBQUU7Z0JBQ2pFLElBQU1NLFNBQVMsR0FBRyxJQUFJUixTQUFTLENBQUNDLGFBQWEsRUFBRUMsV0FBVyxDQUFDLEFBQUM7Z0JBRTVELE9BQU9NLFNBQVMsQ0FBQzthQUNsQjs7OztDQUNGLEVBQUE7a0JBbkVvQlIsU0FBUyJ9
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "easy-richtextarea",
|
|
3
3
|
"author": "James Smith",
|
|
4
|
-
"version": "3.0.
|
|
4
|
+
"version": "3.0.104",
|
|
5
5
|
"license": "MIT, Anti-996",
|
|
6
6
|
"homepage": "https://github.com/djalbat/easy-richtextarea",
|
|
7
7
|
"description": "A textarea element that handles and hands off events well.",
|
|
@@ -13,12 +13,12 @@
|
|
|
13
13
|
"easy": "^13.0.33"
|
|
14
14
|
},
|
|
15
15
|
"devDependencies": {
|
|
16
|
-
"@swc/core": "^1.2.
|
|
17
|
-
"easy-with-style": "^3.0.
|
|
16
|
+
"@swc/core": "^1.2.160",
|
|
17
|
+
"easy-with-style": "^3.0.122",
|
|
18
18
|
"esbuild": "^0.9.2",
|
|
19
19
|
"express": "^4.17.1",
|
|
20
20
|
"lively-cli": "^2.0.34",
|
|
21
|
-
"watchful-cli": "^1.7.
|
|
21
|
+
"watchful-cli": "^1.7.21"
|
|
22
22
|
},
|
|
23
23
|
"scripts": {
|
|
24
24
|
"start": "node ./bin/main.js",
|
package/src/richTextarea.js
CHANGED
package/lib/keys.js
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var _easy = require("easy");
|
|
3
|
-
var SHIFT_KEY = "Shift";
|
|
4
|
-
var CONTROL_KEY = "Control";
|
|
5
|
-
var shiftKeyDown = false, controlKeyDown = false;
|
|
6
|
-
_easy.document.onKeyUp(keyUpHandler);
|
|
7
|
-
_easy.document.onKeyDown(keyDownHandler);
|
|
8
|
-
var callback = function(event, element) {
|
|
9
|
-
event.preventDefault();
|
|
10
|
-
}, capturedKeys = [
|
|
11
|
-
SHIFT_KEY,
|
|
12
|
-
CONTROL_KEY,
|
|
13
|
-
"s"
|
|
14
|
-
];
|
|
15
|
-
function keyUpHandler(event, element) {
|
|
16
|
-
var key = event.key;
|
|
17
|
-
switch(key){
|
|
18
|
-
case SHIFT_KEY:
|
|
19
|
-
shiftKeyDown = false;
|
|
20
|
-
break;
|
|
21
|
-
case CONTROL_KEY:
|
|
22
|
-
controlKeyDown = false;
|
|
23
|
-
break;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
function keyDownHandler(event, element) {
|
|
27
|
-
var key = event.key;
|
|
28
|
-
switch(key){
|
|
29
|
-
case SHIFT_KEY:
|
|
30
|
-
shiftKeyDown = true;
|
|
31
|
-
break;
|
|
32
|
-
case CONTROL_KEY:
|
|
33
|
-
controlKeyDown = true;
|
|
34
|
-
break;
|
|
35
|
-
default:
|
|
36
|
-
{
|
|
37
|
-
var lowerCaseKey = key.toLowerCase(), captured1 = capturedKeys.every(function(capturedKey) {
|
|
38
|
-
var captured = false;
|
|
39
|
-
switch(capturedKey){
|
|
40
|
-
case SHIFT_KEY:
|
|
41
|
-
if (shiftKeyDown) {
|
|
42
|
-
captured = true;
|
|
43
|
-
}
|
|
44
|
-
break;
|
|
45
|
-
case CONTROL_KEY:
|
|
46
|
-
if (controlKeyDown) {
|
|
47
|
-
captured = true;
|
|
48
|
-
}
|
|
49
|
-
break;
|
|
50
|
-
default:
|
|
51
|
-
{
|
|
52
|
-
var lowerCaseCapturedKey = capturedKey.toLowerCase();
|
|
53
|
-
if (lowerCaseCapturedKey === lowerCaseKey) {
|
|
54
|
-
captured = true;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
return captured;
|
|
59
|
-
});
|
|
60
|
-
if (captured1) {
|
|
61
|
-
callback(event, element);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9rZXlzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBkb2N1bWVudCB9IGZyb20gXCJlYXN5XCI7XG5cbmNvbnN0IFNISUZUX0tFWSA9IFwiU2hpZnRcIjtcbmNvbnN0IENPTlRST0xfS0VZID0gXCJDb250cm9sXCI7XG5cbmxldCBzaGlmdEtleURvd24gPSBmYWxzZSxcbiAgICBjb250cm9sS2V5RG93biA9IGZhbHNlO1xuXG5kb2N1bWVudC5vbktleVVwKGtleVVwSGFuZGxlcik7XG5cbmRvY3VtZW50Lm9uS2V5RG93bihrZXlEb3duSGFuZGxlcik7XG5cbmNvbnN0IGNhbGxiYWNrID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9LFxuICAgICAgY2FwdHVyZWRLZXlzID0gWyBTSElGVF9LRVksIENPTlRST0xfS0VZLCBcInNcIiBdO1xuXG5mdW5jdGlvbiBrZXlVcEhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcbiAgY29uc3QgeyBrZXkgfSA9IGV2ZW50O1xuXG4gIHN3aXRjaCAoa2V5KSB7XG4gICAgY2FzZSBTSElGVF9LRVk6XG4gICAgICBzaGlmdEtleURvd24gPSBmYWxzZTtcblxuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIENPTlRST0xfS0VZOlxuICAgICAgY29udHJvbEtleURvd24gPSBmYWxzZTtcblxuICAgICAgYnJlYWs7XG4gIH1cbn1cblxuZnVuY3Rpb24ga2V5RG93bkhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcbiAgY29uc3QgeyBrZXkgfSA9IGV2ZW50O1xuXG4gIHN3aXRjaCAoa2V5KSB7XG4gICAgY2FzZSBTSElGVF9LRVk6XG4gICAgICBzaGlmdEtleURvd24gPSB0cnVlO1xuXG4gICAgICBicmVhaztcblxuICAgIGNhc2UgQ09OVFJPTF9LRVk6XG4gICAgICBjb250cm9sS2V5RG93biA9IHRydWU7XG5cbiAgICAgIGJyZWFrO1xuXG4gICAgZGVmYXVsdDoge1xuICAgICAgY29uc3QgbG93ZXJDYXNlS2V5ID0ga2V5LnRvTG93ZXJDYXNlKCksXG4gICAgICAgICAgICBjYXB0dXJlZCA9IGNhcHR1cmVkS2V5cy5ldmVyeSgoY2FwdHVyZWRLZXkpID0+IHtcbiAgICAgICAgICAgICAgbGV0IGNhcHR1cmVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgc3dpdGNoIChjYXB0dXJlZEtleSkge1xuICAgICAgICAgICAgICAgIGNhc2UgU0hJRlRfS0VZOlxuICAgICAgICAgICAgICAgICAgaWYgKHNoaWZ0S2V5RG93bikge1xuICAgICAgICAgICAgICAgICAgICBjYXB0dXJlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBDT05UUk9MX0tFWTpcbiAgICAgICAgICAgICAgICAgIGlmIChjb250cm9sS2V5RG93bikge1xuICAgICAgICAgICAgICAgICAgICBjYXB0dXJlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgICAgY29uc3QgbG93ZXJDYXNlQ2FwdHVyZWRLZXkgPSBjYXB0dXJlZEtleS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICAgICAgICAgICAgICBpZiAobG93ZXJDYXNlQ2FwdHVyZWRLZXkgPT09IGxvd2VyQ2FzZUtleSkge1xuICAgICAgICAgICAgICAgICAgICBjYXB0dXJlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcmV0dXJuIGNhcHR1cmVkO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgIGlmIChjYXB0dXJlZCkge1xuICAgICAgICBjYWxsYmFjayhldmVudCwgZWxlbWVudCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOlsiU0hJRlRfS0VZIiwiQ09OVFJPTF9LRVkiLCJzaGlmdEtleURvd24iLCJjb250cm9sS2V5RG93biIsImRvY3VtZW50Iiwib25LZXlVcCIsImtleVVwSGFuZGxlciIsIm9uS2V5RG93biIsImtleURvd25IYW5kbGVyIiwiY2FsbGJhY2siLCJlbGVtZW50IiwiZXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsImNhcHR1cmVkS2V5cyIsImtleSIsImxvd2VyQ2FzZUtleSIsInRvTG93ZXJDYXNlIiwiY2FwdHVyZWQiLCJldmVyeSIsImNhcHR1cmVkS2V5IiwibG93ZXJDYXNlQ2FwdHVyZWRLZXkiXSwibWFwcGluZ3MiOiJBQUFBLENBQVksV0FBQSxDQUFDO0FBRVksR0FBTSxDQUFOLEtBQU07QUFFL0IsR0FBSyxDQUFDQSxTQUFTLEdBQUcsQ0FBTztBQUN6QixHQUFLLENBQUNDLFdBQVcsR0FBRyxDQUFTO0FBRTdCLEdBQUcsQ0FBQ0MsWUFBWSxHQUFHLEtBQUssRUFDcEJDLGNBQWMsR0FBRyxLQUFLO0FBRTFCQyxLQUFRLFVBQUNDLE9BQU8sQ0FBQ0MsWUFBWSxDQUFDLENBQUM7QUFFL0JGLEtBQVEsVUFBQ0csU0FBUyxDQUFDQyxjQUFjLENBQUMsQ0FBQztBQUVuQyxHQUFLLENBQUNDLFFBQVEsR0FBRyxRQUFRQyxDQUFQQyxLQUFLLEVBQUVELE9BQU8sRUFBSyxDQUFDO0lBQzlCQyxLQUFLLENBQUNDLGNBQWMsRUFBRSxDQUFDO0FBQ3pCLENBQUMsRUFDREMsWUFBWSxHQUFHLENBQUM7SUFBQ2IsU0FBUztJQUFFQyxXQUFXO0lBQUUsQ0FBRztBQUFDLENBQUM7U0FFM0NLLFlBQVksQ0FBQ0ssS0FBSyxFQUFFRCxPQUFPLEVBQUUsQ0FBQztJQUNyQyxHQUFLLENBQUdJLEdBQUcsR0FBS0gsS0FBSyxDQUFiRyxHQUFHO0lBRVgsTUFBTSxDQUFFQSxHQUFHO1FBQ1QsSUFBSSxDQUFDZCxTQUFTO1lBQ1pFLFlBQVksR0FBRyxLQUFLLENBQUM7WUFFckIsS0FBSztRQUVQLElBQUksQ0FBQ0QsV0FBVztZQUNkRSxjQUFjLEdBQUcsS0FBSyxDQUFDO1lBRXZCLEtBQUs7O0FBRVgsQ0FBQztTQUVRSyxjQUFjLENBQUNHLEtBQUssRUFBRUQsT0FBTyxFQUFFLENBQUM7SUFDdkMsR0FBSyxDQUFHSSxHQUFHLEdBQUtILEtBQUssQ0FBYkcsR0FBRztJQUVYLE1BQU0sQ0FBRUEsR0FBRztRQUNULElBQUksQ0FBQ2QsU0FBUztZQUNaRSxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBRXBCLEtBQUs7UUFFUCxJQUFJLENBQUNELFdBQVc7WUFDZEUsY0FBYyxHQUFHLElBQUksQ0FBQztZQUV0QixLQUFLOztZQUVFLENBQUM7Z0JBQ1IsR0FBSyxDQUFDWSxZQUFZLEdBQUdELEdBQUcsQ0FBQ0UsV0FBVyxJQUM5QkMsU0FBUSxHQUFHSixZQUFZLENBQUNLLEtBQUssQ0FBQyxRQUFRLENBQVBDLFdBQVcsRUFBSyxDQUFDO29CQUM5QyxHQUFHLENBQUNGLFFBQVEsR0FBRyxLQUFLO29CQUVwQixNQUFNLENBQUVFLFdBQVc7d0JBQ2pCLElBQUksQ0FBQ25CLFNBQVM7NEJBQ1osRUFBRSxFQUFFRSxZQUFZLEVBQUUsQ0FBQztnQ0FDakJlLFFBQVEsR0FBRyxJQUFJLENBQUM7NEJBQ2xCLENBQUM7NEJBRUQsS0FBSzt3QkFFUCxJQUFJLENBQUNoQixXQUFXOzRCQUNkLEVBQUUsRUFBRUUsY0FBYyxFQUFFLENBQUM7Z0NBQ25CYyxRQUFRLEdBQUcsSUFBSSxDQUFDOzRCQUNsQixDQUFDOzRCQUVELEtBQUs7OzRCQUVFLENBQUM7Z0NBQ1IsR0FBSyxDQUFDRyxvQkFBb0IsR0FBR0QsV0FBVyxDQUFDSCxXQUFXO2dDQUVwRCxFQUFFLEVBQUVJLG9CQUFvQixLQUFLTCxZQUFZLEVBQUUsQ0FBQztvQ0FDMUNFLFFBQVEsR0FBRyxJQUFJLENBQUM7Z0NBQ2xCLENBQUM7NEJBQ0gsQ0FBQzs7b0JBR0gsTUFBTSxDQUFDQSxRQUFRO2dCQUNqQixDQUFDO2dCQUVQLEVBQUUsRUFBRUEsU0FBUSxFQUFFLENBQUM7b0JBQ2JSLFFBQVEsQ0FBQ0UsS0FBSyxFQUFFRCxPQUFPLENBQUMsQ0FBQztnQkFDM0IsQ0FBQztZQUNILENBQUM7O0FBRUwsQ0FBQyJ9
|
package/src/keys.js
DELETED
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { document } from "easy";
|
|
4
|
-
|
|
5
|
-
const SHIFT_KEY = "Shift";
|
|
6
|
-
const CONTROL_KEY = "Control";
|
|
7
|
-
|
|
8
|
-
let shiftKeyDown = false,
|
|
9
|
-
controlKeyDown = false;
|
|
10
|
-
|
|
11
|
-
document.onKeyUp(keyUpHandler);
|
|
12
|
-
|
|
13
|
-
document.onKeyDown(keyDownHandler);
|
|
14
|
-
|
|
15
|
-
const callback = (event, element) => {
|
|
16
|
-
event.preventDefault();
|
|
17
|
-
},
|
|
18
|
-
capturedKeys = [ SHIFT_KEY, CONTROL_KEY, "s" ];
|
|
19
|
-
|
|
20
|
-
function keyUpHandler(event, element) {
|
|
21
|
-
const { key } = event;
|
|
22
|
-
|
|
23
|
-
switch (key) {
|
|
24
|
-
case SHIFT_KEY:
|
|
25
|
-
shiftKeyDown = false;
|
|
26
|
-
|
|
27
|
-
break;
|
|
28
|
-
|
|
29
|
-
case CONTROL_KEY:
|
|
30
|
-
controlKeyDown = false;
|
|
31
|
-
|
|
32
|
-
break;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
function keyDownHandler(event, element) {
|
|
37
|
-
const { key } = event;
|
|
38
|
-
|
|
39
|
-
switch (key) {
|
|
40
|
-
case SHIFT_KEY:
|
|
41
|
-
shiftKeyDown = true;
|
|
42
|
-
|
|
43
|
-
break;
|
|
44
|
-
|
|
45
|
-
case CONTROL_KEY:
|
|
46
|
-
controlKeyDown = true;
|
|
47
|
-
|
|
48
|
-
break;
|
|
49
|
-
|
|
50
|
-
default: {
|
|
51
|
-
const lowerCaseKey = key.toLowerCase(),
|
|
52
|
-
captured = capturedKeys.every((capturedKey) => {
|
|
53
|
-
let captured = false;
|
|
54
|
-
|
|
55
|
-
switch (capturedKey) {
|
|
56
|
-
case SHIFT_KEY:
|
|
57
|
-
if (shiftKeyDown) {
|
|
58
|
-
captured = true;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
break;
|
|
62
|
-
|
|
63
|
-
case CONTROL_KEY:
|
|
64
|
-
if (controlKeyDown) {
|
|
65
|
-
captured = true;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
break;
|
|
69
|
-
|
|
70
|
-
default: {
|
|
71
|
-
const lowerCaseCapturedKey = capturedKey.toLowerCase();
|
|
72
|
-
|
|
73
|
-
if (lowerCaseCapturedKey === lowerCaseKey) {
|
|
74
|
-
captured = true;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
return captured;
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
if (captured) {
|
|
83
|
-
callback(event, element);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|