easy-richtextarea 3.0.102 → 3.0.105
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 +1 -71
- 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 +1 -1
- 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 +3 -3
- 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGFtcGxlL3ByZWFtYmxlLmpzIiwibGliL2Jyb3dzZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IFJlYWN0LCB3aW5kb3cgfSBmcm9tIFwiZWFzeVwiO1xuXG53aW5kb3cuYXNzaWduKHtcbiAgUmVhY3Rcbn0pO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2VsZWN0aW9uIH0gZnJvbSBcIi4vc2VsZWN0aW9uXCI7XG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmljaFRleHRhcmVhIH0gZnJvbSBcIi4vcmljaFRleHRhcmVhXCI7XG4iXSwibmFtZXMiOlsid2luZG93IiwiYXNzaWduIiwiUmVhY3QiXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQztBQUVpQixJQUFBLEtBQU0sV0FBTixNQUFNLENBQUE7QUFFcENBLEtBQU0sUUFBQ0MsTUFBTSxDQUFDO0lDSmQsQURLRUMsS0FBSyxFQUFMQSxLQUFLLE1BQUxBO0NBQ0QsQ0FBQyxDQUFDIn0=
|
|
@@ -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
|
@@ -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+IHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpKTtcclxuICB9XHJcblxyXG4gIGJsdXJIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBmb3JjZWQgPSB0cnVlLFxyXG4gICAgICAgICAgZXZlbnRUeXBlID0gQkxVUl9FVkVOVF9UWVBFO1xyXG5cclxuICAgIHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpO1xyXG4gIH1cclxuXHJcbiAgaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpIHtcclxuICAgIGNvbnN0IGNoYW5nZWQgPSB0aGlzLmhhc0NoYW5nZWQoKTtcclxuXHJcbiAgICBpZiAoY2hhbmdlZCB8fCBmb3JjZWQpIHtcclxuICAgICAgdGhpcy5jYWxsSGFuZGxlcnMoZXZlbnRUeXBlLCBldmVudCwgZWxlbWVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuZ2V0Q29udGVudCgpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3Rpb24oKSxcclxuICAgICAgICAgIHByZXZpb3VzQ29udGVudCA9IGNvbnRlbnQsICAvLy9cclxuICAgICAgICAgIHByZXZpb3VzU2VsZWN0aW9uID0gc2VsZWN0aW9uOyAgLy8vXHJcblxyXG4gICAgdGhpcy5zZXRQcmV2aW91c0NvbnRlbnQocHJldmlvdXNDb250ZW50KTtcclxuICAgIHRoaXMuc2V0UHJldmlvdXNTZWxlY3Rpb24ocHJldmlvdXNTZWxlY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgY2FsbEhhbmRsZXJzKGV2ZW50VHlwZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XHJcbiAgICBjb25zdCBldmVudExpc3RlbmVycyA9IHRoaXMuZmluZEV2ZW50TGlzdGVuZXJzKGV2ZW50VHlwZSk7XHJcblxyXG4gICAgZXZlbnRMaXN0ZW5lcnMuZm9yRWFjaCgoZXZlbnRMaXN0ZW5lcikgPT4ge1xyXG4gICAgICBjb25zdCB7IGhhbmRsZXIsIGVsZW1lbnQ6IGhhbmRsZXJFbGVtZW50IH0gPSBldmVudExpc3RlbmVyLFxyXG4gICAgICAgICAgICBlbGVtZW50ID0gdGhpczsgLy8vXHJcblxyXG4gICAgICBpZiAoKGhhbmRsZXIgIT09IHRoaXMuYmx1ckhhbmRsZXIpICYmIChoYW5kbGVyICE9PSB0aGlzLmZvY3VzSGFuZGxlcikgJiYgKGhhbmRsZXIgIT09IHRoaXMuc2Nyb2xsSGFuZGxlcikpIHtcclxuICAgICAgICBoYW5kbGVyLmNhbGwoaGFuZGxlckVsZW1lbnQsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgZWxlbWVudCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0UHJldmlvdXNDb250ZW50KCkge1xyXG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLmdldFN0YXRlKCksXHJcbiAgICAgICAgICB7IHByZXZpb3VzQ29udGVudCB9ID0gc3RhdGU7XHJcblxyXG4gICAgcmV0dXJuIHByZXZpb3VzQ29udGVudDtcclxuICB9XHJcblxyXG4gIGdldFByZXZpb3VzU2VsZWN0aW9uKCkge1xyXG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLmdldFN0YXRlKCksXHJcbiAgICAgICAgICB7IHByZXZpb3VzU2VsZWN0aW9uIH0gPSBzdGF0ZTtcclxuXHJcbiAgICByZXR1cm4gcHJldmlvdXNTZWxlY3Rpb247XHJcbiAgfVxyXG5cclxuICBzZXRNb3VzZURvd24obW91c2VEb3duKSB7XHJcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHtcclxuICAgICAgbW91c2VEb3duXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldFByZXZpb3VzQ29udGVudChwcmV2aW91c0NvbnRlbnQpIHtcclxuICAgIHRoaXMudXBkYXRlU3RhdGUoe1xyXG4gICAgICBwcmV2aW91c0NvbnRlbnRcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0UHJldmlvdXNTZWxlY3Rpb24ocHJldmlvdXNTZWxlY3Rpb24pIHtcclxuICAgIHRoaXMudXBkYXRlU3RhdGUoe1xyXG4gICAgICBwcmV2aW91c1NlbGVjdGlvblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRJbml0aWFsU3RhdGUoKSB7XHJcbiAgICBjb25zdCBtb3VzZURvd24gPSBmYWxzZSxcclxuICAgICAgICAgIHByZXZpb3VzQ29udGVudCA9IG51bGwsXHJcbiAgICAgICAgICBwcmV2aW91c1NlbGVjdGlvbiA9IG51bGw7XHJcblxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIG1vdXNlRG93bixcclxuICAgICAgcHJldmlvdXNDb250ZW50LFxyXG4gICAgICBwcmV2aW91c1NlbGVjdGlvblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgYWN0aXZlLCBvbkNoYW5nZSwgb25TY3JvbGwsIG9uRm9jdXMsIG9uQmx1ciB9ID0gdGhpcy5wcm9wZXJ0aWVzLFxyXG4gICAgICAgICAgICBjaGFuZ2VIYW5kbGVyID0gb25DaGFuZ2UsIC8vL1xyXG4gICAgICAgICAgICBzY3JvbGxIYW5kbGVyID0gb25TY3JvbGwsIC8vL1xyXG4gICAgICAgICAgICBmb2N1c0hhbmRsZXIgPSBvbkZvY3VzLCAvLy9cclxuICAgICAgICAgICAgYmx1ckhhbmRsZXIgPSBvbkJsdXI7IC8vL1xyXG5cclxuICAgIGNoYW5nZUhhbmRsZXIgJiYgdGhpcy5vbkNoYW5nZShjaGFuZ2VIYW5kbGVyLCB0aGlzKTtcclxuICAgIHNjcm9sbEhhbmRsZXIgJiYgdGhpcy5vblNjcm9sbChzY3JvbGxIYW5kbGVyLCB0aGlzKTtcclxuICAgIGZvY3VzSGFuZGxlciAmJiB0aGlzLm9uRm9jdXMoZm9jdXNIYW5kbGVyLCB0aGlzKTtcclxuICAgIGJsdXJIYW5kbGVyICYmIHRoaXMub25CbHVyKGJsdXJIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICBpZiAoYWN0aXZlKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZhdGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHdpbGxVbm1vdW50KCkge1xyXG4gICAgY29uc3QgeyBvbkNoYW5nZSwgb25TY3JvbGwsIG9uRm9jdXMsIG9uQmx1ciB9ID0gdGhpcy5wcm9wZXJ0aWVzLFxyXG4gICAgICAgICAgY2hhbmdlSGFuZGxlciA9IG9uQ2hhbmdlLCAvLy9cclxuICAgICAgICAgIHNjcm9sbEhhbmRsZXIgPSBvblNjcm9sbCwgLy8vXHJcbiAgICAgICAgICBmb2N1c0hhbmRsZXIgPSBvbkZvY3VzLCAvLy9cclxuICAgICAgICAgIGJsdXJIYW5kbGVyID0gb25CbHVyOyAvLy9cclxuXHJcbiAgICBjaGFuZ2VIYW5kbGVyICYmIHRoaXMub2ZmQ2hhbmdlKGNoYW5nZUhhbmRsZXIsIHRoaXMpO1xyXG4gICAgc2Nyb2xsSGFuZGxlciAmJiB0aGlzLm9mZlNjcm9sbChzY3JvbGxIYW5kbGVyLCB0aGlzKTtcclxuICAgIGZvY3VzSGFuZGxlciAmJiB0aGlzLm9mZkZvY3VzKGZvY3VzSGFuZGxlciwgdGhpcyk7XHJcbiAgICBibHVySGFuZGxlciAmJiB0aGlzLm9mZkJsdXIoYmx1ckhhbmRsZXIsIHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGlzZSgpIHtcclxuICAgIHRoaXMuc2V0SW5pdGlhbFN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgdGFnTmFtZSA9IFwidGV4dGFyZWFcIjtcclxuXHJcbiAgc3RhdGljIGlnbm9yZWRQcm9wZXJ0aWVzID0gW1xyXG4gICAgXCJvbkNoYW5nZVwiLFxyXG4gICAgXCJvblNjcm9sbFwiLFxyXG4gICAgXCJvbkZvY3VzXCIsXHJcbiAgICBcIm9uQmx1clwiLFxyXG4gICAgXCJhY3RpdmVcIlxyXG4gIF07XHJcblxyXG4gIHN0YXRpYyBkZWZhdWx0UHJvcGVydGllcyA9IHtcclxuICAgIGNsYXNzTmFtZTogXCJyaWNoXCJcclxuICB9O1xyXG59XHJcbiJdLCJuYW1lcyI6WyJCTFVSX0VWRU5UX1RZUEUiLCJldmVudFR5cGVzIiwiSU5QVVRfRVZFTlRfVFlQRSIsIkZPQ1VTX0VWRU5UX1RZUEUiLCJDSEFOR0VfRVZFTlRfVFlQRSIsIlNDUk9MTF9FVkVOVF9UWVBFIiwiS0VZRE9XTl9FVkVOVF9UWVBFIiwiTU9VU0VVUF9FVkVOVF9UWVBFIiwiTU9VU0VET1dOX0VWRU5UX1RZUEUiLCJNT1VTRU1PVkVfRVZFTlRfVFlQRSIsIkNPTlRFWFRNRU5VX0VWRU5UX1RZUEUiLCJkZWZlciIsImZ1bmMiLCJzZXRUaW1lb3V0IiwiUmljaFRleHRhcmVhIiwiaXNBY3RpdmUiLCJhY3RpdmUiLCJoYXNDbGFzcyIsImlzUmVhZE9ubHkiLCJkb21FbGVtZW50IiwiZ2V0RE9NRWxlbWVudCIsInJlYWRPbmx5IiwiZ2V0Q29udGVudCIsInZhbHVlIiwiY29udGVudCIsImdldFNlbGVjdGlvbiIsInNlbGVjdGlvbiIsIlNlbGVjdGlvbiIsImZyb21ET01FbGVtZW50Iiwic2V0UmVhZE9ubHkiLCJPYmplY3QiLCJhc3NpZ24iLCJzZXRDb250ZW50IiwicHJldmlvdXNDb250ZW50Iiwic2V0UHJldmlvdXNDb250ZW50Iiwic2V0U2VsZWN0aW9uIiwic2VsZWN0aW9uU3RhcnRQb3NpdGlvbiIsImdldFN0YXJ0UG9zaXRpb24iLCJzZWxlY3Rpb25FbmRQb3NpdGlvbiIsImdldEVuZFBvc2l0aW9uIiwic2VsZWN0aW9uU3RhcnQiLCJzZWxlY3Rpb25FbmQiLCJwcmV2aW91c1NlbGVjdGlvbiIsInNldFByZXZpb3VzU2VsZWN0aW9uIiwiaXNNb3VzZURvd24iLCJzdGF0ZSIsImdldFN0YXRlIiwibW91c2VEb3duIiwiaGFzQ2hhbmdlZCIsImNvbnRlbnRDaGFuZ2VkIiwiaGFzQ29udGVudENoYW5nZWQiLCJzZWxlY3Rpb25DaGFuZ2VkIiwiaGFzU2VsZWN0aW9uQ2hhbmdlZCIsImNoYW5nZWQiLCJnZXRQcmV2aW91c0NvbnRlbnQiLCJjb250ZW50RGlmZmVyZW50VG9QcmV2aW91c0NvbnRlbnQiLCJnZXRQcmV2aW91c1NlbGVjdGlvbiIsInNlbGVjdGlvbkRpZmZlcmVudFRvUHJldmlvdXNTZWxlY3Rpb24iLCJpc0RpZmZlcmVudFRvIiwiYWN0aXZhdGUiLCJzZXRNb3VzZURvd24iLCJ3aW5kb3ciLCJvbiIsIm1vdXNlVXBIYW5kbGVyIiwibW91c2VEb3duSGFuZGxlciIsIm1vdXNlTW92ZUhhbmRsZXIiLCJrZXlEb3duSGFuZGxlciIsImlucHV0SGFuZGxlciIsInNjcm9sbEhhbmRsZXIiLCJmb2N1c0hhbmRsZXIiLCJibHVySGFuZGxlciIsImFkZENsYXNzIiwiZGVhY3RpdmF0ZSIsIm9mZiIsInJlbW92ZUNsYXNzIiwib25CbHVyIiwiZWxlbWVudCIsImV2ZW50VHlwZSIsImhhbmRsZXIiLCJhZGRFdmVudExpc3RlbmVyIiwib2ZmQmx1ciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJvbkZvY3VzIiwib2ZmRm9jdXMiLCJvblNjcm9sbCIsIm9mZlNjcm9sbCIsIm9uQ2hhbmdlIiwiY2hhbmdlSGFuZGxlciIsIm9mZkNoYW5nZSIsImV2ZW50IiwiZm9yY2VkIiwiaW50ZXJtZWRpYXRlSGFuZGxlciIsImV2ZW50VFlwZSIsImNhbGxIYW5kbGVycyIsInJlbWFpbmluZ0FyZ3VtZW50cyIsImV2ZW50TGlzdGVuZXJzIiwiZmluZEV2ZW50TGlzdGVuZXJzIiwiZm9yRWFjaCIsImV2ZW50TGlzdGVuZXIiLCJoYW5kbGVyRWxlbWVudCIsImNhbGwiLCJ1cGRhdGVTdGF0ZSIsInNldEluaXRpYWxTdGF0ZSIsInNldFN0YXRlIiwiZGlkTW91bnQiLCJwcm9wZXJ0aWVzIiwid2lsbFVubW91bnQiLCJpbml0aWFsaXNlIiwiRWxlbWVudCIsInRhZ05hbWUiLCJpZ25vcmVkUHJvcGVydGllcyIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIl0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZLFdBQUEsQ0FBQzs7O0VBQWI7d0JBQUE7QUFFNEMsR0FBTSxDQUFOLEtBQU07aUJBRmxEO0FBTXNCLEdBQWEsQ0FBYixVQUFhOzt5REFObkM7dUVBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Z0ZBQUE7Ozs7Ozs7O3NDQUFBOzs7Ozs7aUNBQUE7OztpRUFBQTs7U0FBQTs7Ozs7Ozs4REFBQTtzQ0FBQTs2REFBQTtpRUFBQTs7Ozt3RUFBQTtnRUFBQTs7Ozs7Ozs7OztVQUFBOzt3QkFBQTs7Ozs7OztLQUFBOzs7Ozs7Ozs7Ozs7O01BQUE7eURBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozt1QkFBQTs7S0FBQTs7Ozs7OzsyQkFBQTs7Ozs7OzsrREFBQTs7Ozs7Ozs7Ozs7OztzQ0FBQTs7Ozs7Ozs7Ozs7O1VBQUE7O0tBQUE7Ozs7Ozs7O3FGQUFBOzs7Ozs7Ozs7Ozs7bUVBQUE7O2lEQUFBOzs7OztBQVFBLEdBQUssQ0FBR0EsZUFBZSxHQVNhQyxLQUFVLFlBVHRDRCxlQUFlLEVBQ2RFLGdCQUFnQixH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
|
|
574
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yaWNoVGV4dGFyZWEuanMiLCI8PGpzeC1jb25maWctcHJhZ21hLmpzPj4iLCJsaWIvYnJvd3Nlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbmltcG9ydCB7IHdpbmRvdywgRWxlbWVudCwgZXZlbnRUeXBlcyB9IGZyb20gXCJlYXN5XCI7XHJcblxyXG5pbXBvcnQgU2VsZWN0aW9uIGZyb20gXCIuL3NlbGVjdGlvblwiXHJcblxyXG5jb25zdCB7IEJMVVJfRVZFTlRfVFlQRSxcclxuICAgICAgICAgSU5QVVRfRVZFTlRfVFlQRSxcclxuICAgICAgICAgRk9DVVNfRVZFTlRfVFlQRSxcclxuICAgICAgICAgQ0hBTkdFX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIFNDUk9MTF9FVkVOVF9UWVBFLFxyXG4gICAgICAgICBLRVlET1dOX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIE1PVVNFVVBfRVZFTlRfVFlQRSxcclxuICAgICAgICAgTU9VU0VET1dOX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIE1PVVNFTU9WRV9FVkVOVF9UWVBFLFxyXG4gICAgICAgICBDT05URVhUTUVOVV9FVkVOVF9UWVBFIH0gPSBldmVudFR5cGVzO1xyXG5cclxuY29uc3QgZGVmZXIgPSAoZnVuYykgPT4gc2V0VGltZW91dChmdW5jLCAwKTsgLy8vXHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSaWNoVGV4dGFyZWEgZXh0ZW5kcyBFbGVtZW50IHtcclxuICBpc0FjdGl2ZSgpIHtcclxuICAgIGNvbnN0IGFjdGl2ZSA9IHRoaXMuaGFzQ2xhc3MoXCJhY3RpdmVcIik7XHJcblxyXG4gICAgcmV0dXJuIGFjdGl2ZTtcclxuICB9XHJcblxyXG4gIGlzUmVhZE9ubHkoKSB7XHJcbiAgICBjb25zdCBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCksXHJcbiAgICAgICAgICB7IHJlYWRPbmx5IH0gPSBkb21FbGVtZW50O1xyXG4gICAgXHJcbiAgICByZXR1cm4gcmVhZE9ubHk7IFxyXG4gIH1cclxuXHJcbiAgZ2V0Q29udGVudCgpIHtcclxuICAgIGNvbnN0IGRvbUVsZW1lbnQgPSB0aGlzLmdldERPTUVsZW1lbnQoKSxcclxuICAgICAgICAgIHsgdmFsdWUgfSA9IGRvbUVsZW1lbnQsXHJcbiAgICAgICAgICBjb250ZW50ID0gdmFsdWU7ICAvLy9cclxuXHJcbiAgICByZXR1cm4gY29udGVudDtcclxuICB9XHJcblxyXG4gIGdldFNlbGVjdGlvbigpIHtcclxuICAgIGNvbnN0IGRvbUVsZW1lbnQgPSB0aGlzLmdldERPTUVsZW1lbnQoKSxcclxuICAgICAgICAgIHNlbGVjdGlvbiA9IFNlbGVjdGlvbi5mcm9tRE9NRWxlbWVudChkb21FbGVtZW50KTtcclxuXHJcbiAgICByZXR1cm4gc2VsZWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgc2V0UmVhZE9ubHkocmVhZE9ubHkpIHtcclxuICAgIGNvbnN0IGRvbUVsZW1lbnQgPSB0aGlzLmdldERPTUVsZW1lbnQoKTtcclxuXHJcbiAgICBPYmplY3QuYXNzaWduKGRvbUVsZW1lbnQsIHtcclxuICAgICAgcmVhZE9ubHlcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0Q29udGVudChjb250ZW50KSB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IGNvbnRlbnQsICAvLy9cclxuICAgICAgICAgIHByZXZpb3VzQ29udGVudCA9IGNvbnRlbnQsICAvLy9cclxuICAgICAgICAgIGRvbUVsZW1lbnQgPSB0aGlzLmdldERPTUVsZW1lbnQoKTtcclxuXHJcbiAgICBPYmplY3QuYXNzaWduKGRvbUVsZW1lbnQsIHtcclxuICAgICAgdmFsdWVcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuc2V0UHJldmlvdXNDb250ZW50KHByZXZpb3VzQ29udGVudCk7XHJcbiAgfVxyXG5cclxuICBzZXRTZWxlY3Rpb24oc2VsZWN0aW9uKSB7XHJcbiAgICBjb25zdCBzZWxlY3Rpb25TdGFydFBvc2l0aW9uID0gc2VsZWN0aW9uLmdldFN0YXJ0UG9zaXRpb24oKSxcclxuICAgICAgICAgIHNlbGVjdGlvbkVuZFBvc2l0aW9uID0gc2VsZWN0aW9uLmdldEVuZFBvc2l0aW9uKCksXHJcbiAgICAgICAgICBzZWxlY3Rpb25TdGFydCA9IHNlbGVjdGlvblN0YXJ0UG9zaXRpb24sICAvLy9cclxuICAgICAgICAgIHNlbGVjdGlvbkVuZCA9IHNlbGVjdGlvbkVuZFBvc2l0aW9uLCAgLy8vXHJcbiAgICAgICAgICBwcmV2aW91c1NlbGVjdGlvbiA9IHNlbGVjdGlvbiwgIC8vL1xyXG4gICAgICAgICAgZG9tRWxlbWVudCA9IHRoaXMuZ2V0RE9NRWxlbWVudCgpO1xyXG5cclxuICAgIE9iamVjdC5hc3NpZ24oZG9tRWxlbWVudCwge1xyXG4gICAgICBzZWxlY3Rpb25TdGFydCxcclxuICAgICAgc2VsZWN0aW9uRW5kXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnNldFByZXZpb3VzU2VsZWN0aW9uKHByZXZpb3VzU2VsZWN0aW9uKTtcclxuICB9XHJcblxyXG4gIGlzTW91c2VEb3duKCkge1xyXG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLmdldFN0YXRlKCksXHJcbiAgICAgICAgICB7IG1vdXNlRG93biB9ID0gc3RhdGU7XHJcblxyXG4gICAgcmV0dXJuIG1vdXNlRG93bjtcclxuICB9XHJcblxyXG4gIGhhc0NoYW5nZWQoKSB7XHJcbiAgICBjb25zdCBjb250ZW50Q2hhbmdlZCA9IHRoaXMuaGFzQ29udGVudENoYW5nZWQoKSxcclxuICAgICAgICAgIHNlbGVjdGlvbkNoYW5nZWQgPSB0aGlzLmhhc1NlbGVjdGlvbkNoYW5nZWQoKSxcclxuICAgICAgICAgIGNoYW5nZWQgPSAoY29udGVudENoYW5nZWQgfHwgc2VsZWN0aW9uQ2hhbmdlZCk7XHJcblxyXG4gICAgcmV0dXJuIGNoYW5nZWQ7XHJcbiAgfVxyXG5cclxuICBoYXNDb250ZW50Q2hhbmdlZCgpIHtcclxuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmdldENvbnRlbnQoKSxcclxuICAgICAgICAgIHByZXZpb3VzQ29udGVudCA9IHRoaXMuZ2V0UHJldmlvdXNDb250ZW50KCksXHJcbiAgICAgICAgICBjb250ZW50RGlmZmVyZW50VG9QcmV2aW91c0NvbnRlbnQgPSAoY29udGVudCAhPT0gcHJldmlvdXNDb250ZW50KSxcclxuICAgICAgICAgIGNvbnRlbnRDaGFuZ2VkID0gY29udGVudERpZmZlcmVudFRvUHJldmlvdXNDb250ZW50OyAvLy9cclxuXHJcbiAgICByZXR1cm4gY29udGVudENoYW5nZWQ7XHJcbiAgfVxyXG5cclxuICBoYXNTZWxlY3Rpb25DaGFuZ2VkKCkge1xyXG4gICAgY29uc3Qgc2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3Rpb24oKSxcclxuICAgICAgICAgIHByZXZpb3VzU2VsZWN0aW9uID0gdGhpcy5nZXRQcmV2aW91c1NlbGVjdGlvbigpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uRGlmZmVyZW50VG9QcmV2aW91c1NlbGVjdGlvbiA9IHNlbGVjdGlvbi5pc0RpZmZlcmVudFRvKHByZXZpb3VzU2VsZWN0aW9uKSxcclxuICAgICAgICAgIHNlbGVjdGlvbkNoYW5nZWQgPSBzZWxlY3Rpb25EaWZmZXJlbnRUb1ByZXZpb3VzU2VsZWN0aW9uOyAvLy9cclxuXHJcbiAgICByZXR1cm4gc2VsZWN0aW9uQ2hhbmdlZDtcclxuICB9XHJcblxyXG4gIGFjdGl2YXRlKCkge1xyXG4gICAgY29uc3QgbW91c2VEb3duID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5zZXRNb3VzZURvd24obW91c2VEb3duKTtcclxuXHJcbiAgICB3aW5kb3cub24oYCR7QkxVUl9FVkVOVF9UWVBFfSAke01PVVNFVVBfRVZFTlRfVFlQRX0gJHtDT05URVhUTUVOVV9FVkVOVF9UWVBFfWAsIHRoaXMubW91c2VVcEhhbmRsZXIsIHRoaXMpOyAvLy9cclxuXHJcbiAgICB0aGlzLm9uKE1PVVNFRE9XTl9FVkVOVF9UWVBFLCB0aGlzLm1vdXNlRG93bkhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMub24oTU9VU0VNT1ZFX0VWRU5UX1RZUEUsIHRoaXMubW91c2VNb3ZlSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vbihLRVlET1dOX0VWRU5UX1RZUEUsIHRoaXMua2V5RG93bkhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMub24oSU5QVVRfRVZFTlRfVFlQRSwgdGhpcy5pbnB1dEhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMub24oU0NST0xMX0VWRU5UX1RZUEUsIHRoaXMuc2Nyb2xsSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vbihGT0NVU19FVkVOVF9UWVBFLCB0aGlzLmZvY3VzSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vbihCTFVSX0VWRU5UX1RZUEUsIHRoaXMuYmx1ckhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMuYWRkQ2xhc3MoXCJhY3RpdmVcIik7XHJcbiAgfVxyXG5cclxuICBkZWFjdGl2YXRlKCkge1xyXG4gICAgY29uc3QgbW91c2VEb3duID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5zZXRNb3VzZURvd24obW91c2VEb3duKTtcclxuXHJcbiAgICB3aW5kb3cub2ZmKGAke0JMVVJfRVZFTlRfVFlQRX0gJHtNT1VTRVVQX0VWRU5UX1RZUEV9ICR7Q09OVEVYVE1FTlVfRVZFTlRfVFlQRX1gLCB0aGlzLm1vdXNlVXBIYW5kbGVyLCB0aGlzKTsgLy8vXHJcblxyXG4gICAgdGhpcy5vZmYoTU9VU0VET1dOX0VWRU5UX1RZUEUsIHRoaXMubW91c2VEb3duSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vZmYoTU9VU0VNT1ZFX0VWRU5UX1RZUEUsIHRoaXMubW91c2VNb3ZlSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vZmYoS0VZRE9XTl9FVkVOVF9UWVBFLCB0aGlzLmtleURvd25IYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9mZihJTlBVVF9FVkVOVF9UWVBFLCB0aGlzLmlucHV0SGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vZmYoU0NST0xMX0VWRU5UX1RZUEUsIHRoaXMuc2Nyb2xsSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vZmYoRk9DVVNfRVZFTlRfVFlQRSwgdGhpcy5mb2N1c0hhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMub2ZmKEJMVVJfRVZFTlRfVFlQRSwgdGhpcy5ibHVySGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5yZW1vdmVDbGFzcyhcImFjdGl2ZVwiKTtcclxuICB9XHJcblxyXG4gIG9uQmx1cihibHVySGFuZGxlciwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZXZlbnRUeXBlID0gQkxVUl9FVkVOVF9UWVBFLFxyXG4gICAgICAgICAgaGFuZGxlciA9IGJsdXJIYW5kbGVyOyAgLy8vXHJcblxyXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBvZmZCbHVyKGJsdXJIYW5kbGVyLCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBldmVudFR5cGUgPSBCTFVSX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICBoYW5kbGVyID0gYmx1ckhhbmRsZXI7ICAvLy9cclxuXHJcbiAgICB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYW5kbGVyLCBlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIG9uRm9jdXMoYmx1ckhhbmRsZXIsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGV2ZW50VHlwZSA9IEZPQ1VTX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICBoYW5kbGVyID0gYmx1ckhhbmRsZXI7ICAvLy9cclxuXHJcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYW5kbGVyLCBlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIG9mZkZvY3VzKGJsdXJIYW5kbGVyLCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBldmVudFR5cGUgPSBGT0NVU19FVkVOVF9UWVBFLFxyXG4gICAgICAgICAgaGFuZGxlciA9IGJsdXJIYW5kbGVyOyAgLy8vXHJcblxyXG4gICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBvblNjcm9sbChzY3JvbGxIYW5kbGVyLCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBldmVudFR5cGUgPSBTQ1JPTExfRVZFTlRfVFlQRSxcclxuICAgICAgICAgIGhhbmRsZXIgPSBzY3JvbGxIYW5kbGVyOyAgLy8vXHJcblxyXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBvZmZTY3JvbGwoc2Nyb2xsSGFuZGxlciwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZXZlbnRUeXBlID0gU0NST0xMX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICBoYW5kbGVyID0gc2Nyb2xsSGFuZGxlcjsgIC8vL1xyXG5cclxuICAgIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIsIGVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2UoY2hhbmdlSGFuZGxlciwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZXZlbnRUeXBlID0gQ0hBTkdFX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICBoYW5kbGVyID0gY2hhbmdlSGFuZGxlcjsgIC8vL1xyXG5cclxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIsIGVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgb2ZmQ2hhbmdlKGNoYW5nZUhhbmRsZXIsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGV2ZW50VHlwZSA9IENIQU5HRV9FVkVOVF9UWVBFLFxyXG4gICAgICAgICAgaGFuZGxlciA9IGNoYW5nZUhhbmRsZXI7ICAvLy9cclxuXHJcbiAgICB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYW5kbGVyLCBlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIG1vdXNlVXBIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBtb3VzZURvd24gPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLnNldE1vdXNlRG93bihtb3VzZURvd24pO1xyXG4gIH07XHJcblxyXG4gIG1vdXNlRG93bkhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGZvcmNlZCA9IGZhbHNlLFxyXG4gICAgICAgICAgbW91c2VEb3duID0gdHJ1ZSxcclxuICAgICAgICAgIGV2ZW50VHlwZSA9IENIQU5HRV9FVkVOVF9UWVBFO1xyXG5cclxuICAgIHRoaXMuc2V0TW91c2VEb3duKG1vdXNlRG93bik7XHJcblxyXG4gICAgZGVmZXIoKCkgPT4gdGhpcy5pbnRlcm1lZGlhdGVIYW5kbGVyKGV2ZW50LCBlbGVtZW50LCBldmVudFR5cGUsIGZvcmNlZCkpO1xyXG4gIH1cclxuXHJcbiAgbW91c2VNb3ZlSGFuZGxlcihldmVudCwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZm9yY2VkID0gZmFsc2UsXHJcbiAgICAgICAgICBtb3VzZURvd24gPSB0aGlzLmlzTW91c2VEb3duKCksXHJcbiAgICAgICAgICBldmVudFRZcGUgPSBDSEFOR0VfRVZFTlRfVFlQRTtcclxuXHJcbiAgICBpZiAobW91c2VEb3duKSB7XHJcbiAgICAgIHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUWXBlLCBmb3JjZWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAga2V5RG93bkhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGZvcmNlZCA9IGZhbHNlLFxyXG4gICAgICAgICAgZXZlbnRUeXBlID0gQ0hBTkdFX0VWRU5UX1RZUEU7XHJcblxyXG4gICAgZGVmZXIoKCkgPT4gdGhpcy5pbnRlcm1lZGlhdGVIYW5kbGVyKGV2ZW50LCBlbGVtZW50LCBldmVudFR5cGUsIGZvcmNlZCkpO1xyXG4gIH1cclxuXHJcbiAgaW5wdXRIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBmb3JjZWQgPSBmYWxzZSxcclxuICAgICAgICAgIGV2ZW50VHlwZSA9IENIQU5HRV9FVkVOVF9UWVBFO1xyXG5cclxuICAgIHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpO1xyXG4gIH1cclxuXHJcbiAgc2Nyb2xsSGFuZGxlcihldmVudCwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZXZlbnRUeXBlID0gU0NST0xMX0VWRU5UX1RZUEU7XHJcblxyXG4gICAgdGhpcy5jYWxsSGFuZGxlcnMoZXZlbnRUeXBlLCBldmVudCwgZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBmb2N1c0hhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGZvcmNlZCA9IHRydWUsXHJcbiAgICAgICAgICBldmVudFR5cGUgPSBGT0NVU19FVkVOVF9UWVBFO1xyXG5cclxuICAgIGRlZmVyKCgpID0+IHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpKTtcclxuICB9XHJcblxyXG4gIGJsdXJIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBmb3JjZWQgPSB0cnVlLFxyXG4gICAgICAgICAgZXZlbnRUeXBlID0gQkxVUl9FVkVOVF9UWVBFO1xyXG5cclxuICAgIHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpO1xyXG4gIH1cclxuXHJcbiAgaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpIHtcclxuICAgIGNvbnN0IGNoYW5nZWQgPSB0aGlzLmhhc0NoYW5nZWQoKTtcclxuXHJcbiAgICBpZiAoY2hhbmdlZCB8fCBmb3JjZWQpIHtcclxuICAgICAgdGhpcy5jYWxsSGFuZGxlcnMoZXZlbnRUeXBlLCBldmVudCwgZWxlbWVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuZ2V0Q29udGVudCgpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3Rpb24oKSxcclxuICAgICAgICAgIHByZXZpb3VzQ29udGVudCA9IGNvbnRlbnQsICAvLy9cclxuICAgICAgICAgIHByZXZpb3VzU2VsZWN0aW9uID0gc2VsZWN0aW9uOyAgLy8vXHJcblxyXG4gICAgdGhpcy5zZXRQcmV2aW91c0NvbnRlbnQocHJldmlvdXNDb250ZW50KTtcclxuICAgIHRoaXMuc2V0UHJldmlvdXNTZWxlY3Rpb24ocHJldmlvdXNTZWxlY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgY2FsbEhhbmRsZXJzKGV2ZW50VHlwZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XHJcbiAgICBjb25zdCBldmVudExpc3RlbmVycyA9IHRoaXMuZmluZEV2ZW50TGlzdGVuZXJzKGV2ZW50VHlwZSk7XHJcblxyXG4gICAgZXZlbnRMaXN0ZW5lcnMuZm9yRWFjaCgoZXZlbnRMaXN0ZW5lcikgPT4ge1xyXG4gICAgICBjb25zdCB7IGhhbmRsZXIsIGVsZW1lbnQ6IGhhbmRsZXJFbGVtZW50IH0gPSBldmVudExpc3RlbmVyLFxyXG4gICAgICAgICAgICBlbGVtZW50ID0gdGhpczsgLy8vXHJcblxyXG4gICAgICBpZiAoKGhhbmRsZXIgIT09IHRoaXMuYmx1ckhhbmRsZXIpICYmIChoYW5kbGVyICE9PSB0aGlzLmZvY3VzSGFuZGxlcikgJiYgKGhhbmRsZXIgIT09IHRoaXMuc2Nyb2xsSGFuZGxlcikpIHtcclxuICAgICAgICBoYW5kbGVyLmNhbGwoaGFuZGxlckVsZW1lbnQsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgZWxlbWVudCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0UHJldmlvdXNDb250ZW50KCkge1xyXG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLmdldFN0YXRlKCksXHJcbiAgICAgICAgICB7IHByZXZpb3VzQ29udGVudCB9ID0gc3RhdGU7XHJcblxyXG4gICAgcmV0dXJuIHByZXZpb3VzQ29udGVudDtcclxuICB9XHJcblxyXG4gIGdldFByZXZpb3VzU2VsZWN0aW9uKCkge1xyXG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLmdldFN0YXRlKCksXHJcbiAgICAgICAgICB7IHByZXZpb3VzU2VsZWN0aW9uIH0gPSBzdGF0ZTtcclxuXHJcbiAgICByZXR1cm4gcHJldmlvdXNTZWxlY3Rpb247XHJcbiAgfVxyXG5cclxuICBzZXRNb3VzZURvd24obW91c2VEb3duKSB7XHJcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHtcclxuICAgICAgbW91c2VEb3duXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldFByZXZpb3VzQ29udGVudChwcmV2aW91c0NvbnRlbnQpIHtcclxuICAgIHRoaXMudXBkYXRlU3RhdGUoe1xyXG4gICAgICBwcmV2aW91c0NvbnRlbnRcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0UHJldmlvdXNTZWxlY3Rpb24ocHJldmlvdXNTZWxlY3Rpb24pIHtcclxuICAgIHRoaXMudXBkYXRlU3RhdGUoe1xyXG4gICAgICBwcmV2aW91c1NlbGVjdGlvblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRJbml0aWFsU3RhdGUoKSB7XHJcbiAgICBjb25zdCBtb3VzZURvd24gPSBmYWxzZSxcclxuICAgICAgICAgIHByZXZpb3VzQ29udGVudCA9IG51bGwsXHJcbiAgICAgICAgICBwcmV2aW91c1NlbGVjdGlvbiA9IG51bGw7XHJcblxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIG1vdXNlRG93bixcclxuICAgICAgcHJldmlvdXNDb250ZW50LFxyXG4gICAgICBwcmV2aW91c1NlbGVjdGlvblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgYWN0aXZlLCBvbkNoYW5nZSwgb25TY3JvbGwsIG9uRm9jdXMsIG9uQmx1ciB9ID0gdGhpcy5wcm9wZXJ0aWVzLFxyXG4gICAgICAgICAgICBjaGFuZ2VIYW5kbGVyID0gb25DaGFuZ2UsIC8vL1xyXG4gICAgICAgICAgICBzY3JvbGxIYW5kbGVyID0gb25TY3JvbGwsIC8vL1xyXG4gICAgICAgICAgICBmb2N1c0hhbmRsZXIgPSBvbkZvY3VzLCAvLy9cclxuICAgICAgICAgICAgYmx1ckhhbmRsZXIgPSBvbkJsdXI7IC8vL1xyXG5cclxuICAgIGNoYW5nZUhhbmRsZXIgJiYgdGhpcy5vbkNoYW5nZShjaGFuZ2VIYW5kbGVyLCB0aGlzKTtcclxuICAgIHNjcm9sbEhhbmRsZXIgJiYgdGhpcy5vblNjcm9sbChzY3JvbGxIYW5kbGVyLCB0aGlzKTtcclxuICAgIGZvY3VzSGFuZGxlciAmJiB0aGlzLm9uRm9jdXMoZm9jdXNIYW5kbGVyLCB0aGlzKTtcclxuICAgIGJsdXJIYW5kbGVyICYmIHRoaXMub25CbHVyKGJsdXJIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICBpZiAoYWN0aXZlKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZhdGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHdpbGxVbm1vdW50KCkge1xyXG4gICAgY29uc3QgeyBvbkNoYW5nZSwgb25TY3JvbGwsIG9uRm9jdXMsIG9uQmx1ciB9ID0gdGhpcy5wcm9wZXJ0aWVzLFxyXG4gICAgICAgICAgY2hhbmdlSGFuZGxlciA9IG9uQ2hhbmdlLCAvLy9cclxuICAgICAgICAgIHNjcm9sbEhhbmRsZXIgPSBvblNjcm9sbCwgLy8vXHJcbiAgICAgICAgICBmb2N1c0hhbmRsZXIgPSBvbkZvY3VzLCAvLy9cclxuICAgICAgICAgIGJsdXJIYW5kbGVyID0gb25CbHVyOyAvLy9cclxuXHJcbiAgICBjaGFuZ2VIYW5kbGVyICYmIHRoaXMub2ZmQ2hhbmdlKGNoYW5nZUhhbmRsZXIsIHRoaXMpO1xyXG4gICAgc2Nyb2xsSGFuZGxlciAmJiB0aGlzLm9mZlNjcm9sbChzY3JvbGxIYW5kbGVyLCB0aGlzKTtcclxuICAgIGZvY3VzSGFuZGxlciAmJiB0aGlzLm9mZkZvY3VzKGZvY3VzSGFuZGxlciwgdGhpcyk7XHJcbiAgICBibHVySGFuZGxlciAmJiB0aGlzLm9mZkJsdXIoYmx1ckhhbmRsZXIsIHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGlzZSgpIHtcclxuICAgIHRoaXMuc2V0SW5pdGlhbFN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgdGFnTmFtZSA9IFwidGV4dGFyZWFcIjtcclxuXHJcbiAgc3RhdGljIGlnbm9yZWRQcm9wZXJ0aWVzID0gW1xyXG4gICAgXCJvbkNoYW5nZVwiLFxyXG4gICAgXCJvblNjcm9sbFwiLFxyXG4gICAgXCJvbkZvY3VzXCIsXHJcbiAgICBcIm9uQmx1clwiLFxyXG4gICAgXCJhY3RpdmVcIlxyXG4gIF07XHJcblxyXG4gIHN0YXRpYyBkZWZhdWx0UHJvcGVydGllcyA9IHtcclxuICAgIGNsYXNzTmFtZTogXCJyaWNoXCJcclxuICB9O1xyXG59XHJcbiIsIlJlYWN0LmNyZWF0ZUVsZW1lbnQiLCJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBTZWxlY3Rpb24gfSBmcm9tIFwiLi9zZWxlY3Rpb25cIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBSaWNoVGV4dGFyZWEgfSBmcm9tIFwiLi9yaWNoVGV4dGFyZWFcIjtcbiJdLCJuYW1lcyI6WyJCTFVSX0VWRU5UX1RZUEUiLCJldmVudFR5cGVzIiwiSU5QVVRfRVZFTlRfVFlQRSIsIkZPQ1VTX0VWRU5UX1RZUEUiLCJDSEFOR0VfRVZFTlRfVFlQRSIsIlNDUk9MTF9FVkVOVF9UWVBFIiwiS0VZRE9XTl9FVkVOVF9UWVBFIiwiTU9VU0VVUF9FVkVOVF9UWVBFIiwiTU9VU0VET1dOX0VWRU5UX1RZUEUiLCJNT1VTRU1PVkVfRVZFTlRfVFlQRSIsIkNPTlRFWFRNRU5VX0VWRU5UX1RZUEUiLCJkZWZlciIsImZ1bmMiLCJzZXRUaW1lb3V0IiwiUmljaFRleHRhcmVhIiwiaXNBY3RpdmUiLCJhY3RpdmUiLCJoYXNDbGFzcyIsImlzUmVhZE9ubHkiLCJkb21FbGVtZW50IiwiZ2V0RE9NRWxlbWVudCIsInJlYWRPbmx5IiwiZ2V0Q29udGVudCIsInZhbHVlIiwiY29udGVudCIsImdldFNlbGVjdGlvbiIsInNlbGVjdGlvbiIsIlNlbGVjdGlvbiIsImZyb21ET01FbGVtZW50Iiwic2V0UmVhZE9ubHkiLCJPYmplY3QiLCJhc3NpZ24iLCJzZXRDb250ZW50IiwicHJldmlvdXNDb250ZW50Iiwic2V0UHJldmlvdXNDb250ZW50Iiwic2V0U2VsZWN0aW9uIiwic2VsZWN0aW9uU3RhcnRQb3NpdGlvbiIsImdldFN0YXJ0UG9zaXRpb24iLCJzZWxlY3Rpb25FbmRQb3NpdGlvbiIsImdldEVuZFBvc2l0aW9uIiwic2VsZWN0aW9uU3RhcnQiLCJzZWxlY3Rpb25FbmQiLCJwcmV2aW91c1NlbGVjdGlvbiIsInNldFByZXZpb3VzU2VsZWN0aW9uIiwiaXNNb3VzZURvd24iLCJzdGF0ZSIsImdldFN0YXRlIiwibW91c2VEb3duIiwiaGFzQ2hhbmdlZCIsImNvbnRlbnRDaGFuZ2VkIiwiaGFzQ29udGVudENoYW5nZWQiLCJzZWxlY3Rpb25DaGFuZ2VkIiwiaGFzU2VsZWN0aW9uQ2hhbmdlZCIsImNoYW5nZWQiLCJnZXRQcmV2aW91c0NvbnRlbnQiLCJjb250ZW50RGlmZmVyZW50VG9QcmV2aW91c0NvbnRlbnQiLCJnZXRQcmV2aW91c1NlbGVjdGlvbiIsInNlbGVjdGlvbkRpZmZlcmVudFRvUHJldmlvdXNTZWxlY3Rpb24iLCJpc0RpZmZlcmVudFRvIiwiYWN0aXZhdGUiLCJzZXRNb3VzZURvd24iLCJ3aW5kb3ciLCJvbiIsIm1vdXNlVXBIYW5kbGVyIiwibW91c2VEb3duSGFuZGxlciIsIm1vdXNlTW92ZUhhbmRsZXIiLCJrZXlEb3duSGFuZGxlciIsImlucHV0SGFuZGxlciIsInNjcm9sbEhhbmRsZXIiLCJmb2N1c0hhbmRsZXIiLCJibHVySGFuZGxlciIsImFkZENsYXNzIiwiZGVhY3RpdmF0ZSIsIm9mZiIsInJlbW92ZUNsYXNzIiwib25CbHVyIiwiZWxlbWVudCIsImV2ZW50VHlwZSIsImhhbmRsZXIiLCJhZGRFdmVudExpc3RlbmVyIiwib2ZmQmx1ciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJvbkZvY3VzIiwib2ZmRm9jdXMiLCJvblNjcm9sbCIsIm9mZlNjcm9sbCIsIm9uQ2hhbmdlIiwiY2hhbmdlSGFuZGxlciIsIm9mZkNoYW5nZSIsImV2ZW50IiwiZm9yY2VkIiwiaW50ZXJtZWRpYXRlSGFuZGxlciIsImV2ZW50VFlwZSIsImNhbGxIYW5kbGVycyIsInJlbWFpbmluZ0FyZ3VtZW50cyIsImV2ZW50TGlzdGVuZXJzIiwiZmluZEV2ZW50TGlzdGVuZXJzIiwiZm9yRWFjaCIsImV2ZW50TGlzdGVuZXIiLCJoYW5kbGVyRWxlbWVudCIsImNhbGwiLCJ1cGRhdGVTdGF0ZSIsInNldEluaXRpYWxTdGF0ZSIsInNldFN0YXRlIiwiZGlkTW91bnQiLCJwcm9wZXJ0aWVzIiwid2lsbFVubW91bnQiLCJpbml0aWFsaXNlIiwiRWxlbWVudCIsInRhZ05hbWUiLCJpZ25vcmVkUHJvcGVydGllcyIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIl0sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLENBQUM7Ozs7O0FBRStCLElBQUEsS0FBTSxXQUFOLE1BQU0sQ0FBQTtBQUU1QixJQUFBLFVBQWEsa0NBQWIsYUFBYSxFQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbkMsSUFBUUEs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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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zZWxlY3Rpb24uanMiLCI8PGpzeC1jb25maWctcHJhZ21hLmpzPj4iLCJsaWIvYnJvd3Nlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2VsZWN0aW9uIHtcbiAgY29uc3RydWN0b3Ioc3RhcnRQb3NpdGlvbiwgZW5kUG9zaXRpb24pIHtcbiAgICB0aGlzLnN0YXJ0UG9zaXRpb24gPSBzdGFydFBvc2l0aW9uO1xuICAgIHRoaXMuZW5kUG9zaXRpb24gPSBlbmRQb3NpdGlvbjtcbiAgfVxuXG4gIGdldFN0YXJ0UG9zaXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnRQb3NpdGlvbjtcbiAgfVxuXG4gIGdldEVuZFBvc2l0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmVuZFBvc2l0aW9uO1xuICB9XG5cbiAgc2V0U3RhcnRQb3NpdGlvbihzdGFydFBvc2l0aW9uKSB7XG4gICAgdGhpcy5zdGFydFBvc2l0aW9uID0gc3RhcnRQb3NpdGlvbjtcbiAgfVxuXG4gIHNldEVuZFBvc2l0aW9uKGVuZFBvc2l0aW9uKSB7XG4gICAgdGhpcy5lbmRQb3NpdGlvbiA9IGVuZFBvc2l0aW9uO1xuICB9XG5cbiAgaXNFcXVhbFRvKHNlbGVjdGlvbikge1xuICAgIGxldCBlcXVhbFRvID0gZmFsc2U7XG5cbiAgICBpZiAoc2VsZWN0aW9uICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBzZWxlY3Rpb25TdGFydFBvc2l0aW9uID0gc2VsZWN0aW9uLmdldFN0YXJ0UG9zaXRpb24oKSxcbiAgICAgICAgICAgIHNlbGVjdGlvbkVuZFBvc2l0aW9uID0gc2VsZWN0aW9uLmdldEVuZFBvc2l0aW9uKCksXG4gICAgICAgICAgICBzdGFydFBvc2l0aW9uc0VxdWFsID0gKHRoaXMuc3RhcnRQb3NpdGlvbiA9PT0gc2VsZWN0aW9uU3RhcnRQb3NpdGlvbiksXG4gICAgICAgICAgICBlbmRQb3NpdGlvbnNFcXVhbCA9ICh0aGlzLmVuZFBvc2l0aW9uID09PSBzZWxlY3Rpb25FbmRQb3NpdGlvbik7XG5cbiAgICAgIGVxdWFsVG8gPSAoc3RhcnRQb3NpdGlvbnNFcXVhbCAmJiBlbmRQb3NpdGlvbnNFcXVhbCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVxdWFsVG87XG4gIH1cblxuICBpc0RpZmZlcmVudFRvKHNlbGVjdGlvbikge1xuICAgIGNvbnN0IGVxdWFsVG8gPSB0aGlzLmlzRXF1YWxUbyhzZWxlY3Rpb24pLFxuICAgICAgICAgIGRpZmZlcmVudFRvID0gIWVxdWFsVG87XG5cbiAgICByZXR1cm4gZGlmZmVyZW50VG87XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoKSB7XG4gICAgY29uc3Qgc3RhcnRQb3NpdGlvbiA9IDAsXG4gICAgICAgICAgZW5kUG9zaXRpb24gPSAwLFxuICAgICAgICAgIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oc3RhcnRQb3NpdGlvbiwgZW5kUG9zaXRpb24pO1xuXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tRE9NRWxlbWVudChkb21FbGVtZW50KSB7XG4gICAgY29uc3QgeyBzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kIH0gPSBkb21FbGVtZW50LFxuICAgICAgICAgIHN0YXJ0UG9zaXRpb24gPSBzZWxlY3Rpb25TdGFydCwgLy8vXG4gICAgICAgICAgZW5kUG9zaXRpb24gPSBzZWxlY3Rpb25FbmQsIC8vL1xuICAgICAgICAgIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb24oc3RhcnRQb3NpdGlvbiwgZW5kUG9zaXRpb24pO1xuXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcblxuICB9XG5cbiAgc3RhdGljIGZyb21TdGFydFBvc2l0aW9uQW5kRW5kUG9zaXRpb24oc3RhcnRQb3NpdGlvbiwgZW5kUG9zaXRpb24pIHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uKHN0YXJ0UG9zaXRpb24sIGVuZFBvc2l0aW9uKTtcblxuICAgIHJldHVybiBzZWxlY3Rpb247XG4gIH1cbn1cbiIsIlJlYWN0LmNyZWF0ZUVsZW1lbnQiLCJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBTZWxlY3Rpb24gfSBmcm9tIFwiLi9zZWxlY3Rpb25cIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBSaWNoVGV4dGFyZWEgfSBmcm9tIFwiLi9yaWNoVGV4dGFyZWFcIjtcbiJdLCJuYW1lcyI6WyJTZWxlY3Rpb24iLCJzdGFydFBvc2l0aW9uIiwiZW5kUG9zaXRpb24iLCJnZXRTdGFydFBvc2l0aW9uIiwiZ2V0RW5kUG9zaXRpb24iLCJzZXRTdGFydFBvc2l0aW9uIiwic2V0RW5kUG9zaXRpb24iLCJpc0VxdWFsVG8iLCJzZWxlY3Rpb24iLCJlcXVhbFRvIiwic2VsZWN0aW9uU3RhcnRQb3NpdGlvbiIsInNlbGVjdGlvbkVuZFBvc2l0aW9uIiwic3RhcnRQb3NpdGlvbnNFcXVhbCIsImVuZFBvc2l0aW9uc0VxdWFsIiwiaXNEaWZmZXJlbnRUbyIsImRpZmZlcmVudFRvIiwiZnJvbU5vdGhpbmciLCJmcm9tRE9NRWxlbWVudCIsImRvbUVsZW1lbnQiLCJzZWxlY3Rpb25TdGFydCIsInNlbGVjdGlvbkVuZCIsImZyb21TdGFydFBvc2l0aW9uQW5kRW5kUG9zaXRpb24iXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUUsSUFBQSxBQUFNQSxTQUFTLGlCQ0YzQixBREVZO2FBQU1BLFNBQVMsQ0FDaEJDLGFBQWEsRUFBRUMsV0FBVzs7UUFDcEMsSUFBSSxDQUFDRCxhQUFhLEdBQUdBLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUNDLFdBQVcsR0FBR0EsV0FBVyxDQUFDOzs7O1lBR2pDQyxHQUFnQixFQUFoQkEsa0JBQWdCO1lFUmxCLE9GUUVBLFNBQUFBLGdCQUFnQixHQUFHO2dCQUNqQixPQUFPLElBQUksQ0FBQ0YsYUFBYSxDQUFDO2FBQzNCOzs7WUFFREcsR0FB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
|
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.105",
|
|
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.
|
|
16
|
+
"@swc/core": "^1.2.160",
|
|
17
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
|
-
}
|