easy-richtextarea 4.0.1 → 4.0.4
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/README.md +0 -8
- package/example.js +1012 -595
- package/lib/browser.js +9 -9
- package/lib/constants.js +13 -4
- package/lib/contentCompare.js +34 -0
- package/lib/example/richTextarea.js +2 -2
- package/lib/example/view.js +18 -9
- package/lib/keyCodes.js +13 -0
- package/lib/main.js +1 -1
- package/lib/operation/delete.js +101 -52
- package/lib/operation/empty.js +21 -6
- package/lib/operation/insert.js +78 -31
- package/lib/operations/fromJSON.js +4 -4
- package/lib/operations/generate.js +11 -11
- package/lib/operations/transform.js +3 -7
- package/lib/richTextarea.js +244 -156
- package/lib/selection.js +55 -13
- package/lib/types.js +13 -13
- package/lib/undoBuffer.js +105 -0
- package/package.json +3 -2
- package/src/browser.js +3 -3
- package/src/constants.js +1 -0
- package/src/contentCompare.js +34 -0
- package/src/example/richTextarea.js +11 -9
- package/src/example/view.js +28 -10
- package/src/keyCodes.js +3 -0
- package/src/main.js +1 -0
- package/src/operation/delete.js +135 -58
- package/src/operation/empty.js +19 -14
- package/src/operation/insert.js +97 -39
- package/src/operations/fromJSON.js +4 -4
- package/src/operations/generate.js +17 -13
- package/src/operations/transform.js +3 -3
- package/src/richTextarea.js +316 -185
- package/src/selection.js +53 -9
- package/src/types.js +6 -6
- package/src/undoBuffer.js +73 -0
- package/test/content/transform.js +15 -17
- package/test/helpers.js +27 -21
- package/test/operation/delete.js +187 -147
- package/test/operation/empty.js +3 -5
- package/test/operation/insert.js +134 -118
- package/test/operations/generate.js +25 -29
- package/test/operations/transform.js +37 -98
- package/lib/stringCompare.js +0 -33
- package/src/stringCompare.js +0 -33
package/lib/browser.js
CHANGED
|
@@ -9,6 +9,12 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
+
Selection: function() {
|
|
13
|
+
return _selection.default;
|
|
14
|
+
},
|
|
15
|
+
RichTextarea: function() {
|
|
16
|
+
return _richTextarea.default;
|
|
17
|
+
},
|
|
12
18
|
EmptyOperation: function() {
|
|
13
19
|
return _empty.default;
|
|
14
20
|
},
|
|
@@ -32,14 +38,10 @@ _export(exports, {
|
|
|
32
38
|
},
|
|
33
39
|
transformOperations: function() {
|
|
34
40
|
return _transform1.default;
|
|
35
|
-
},
|
|
36
|
-
Selection: function() {
|
|
37
|
-
return _selection.default;
|
|
38
|
-
},
|
|
39
|
-
RichTextarea: function() {
|
|
40
|
-
return _richTextarea.default;
|
|
41
41
|
}
|
|
42
42
|
});
|
|
43
|
+
var _selection = /*#__PURE__*/ _interopRequireDefault(require("./selection"));
|
|
44
|
+
var _richTextarea = /*#__PURE__*/ _interopRequireDefault(require("./richTextarea"));
|
|
43
45
|
var _empty = /*#__PURE__*/ _interopRequireDefault(require("./operation/empty"));
|
|
44
46
|
var _insert = /*#__PURE__*/ _interopRequireDefault(require("./operation/insert"));
|
|
45
47
|
var _delete = /*#__PURE__*/ _interopRequireDefault(require("./operation/delete"));
|
|
@@ -48,12 +50,10 @@ var _toJSON = /*#__PURE__*/ _interopRequireDefault(require("./operations/toJSON"
|
|
|
48
50
|
var _fromJSON = /*#__PURE__*/ _interopRequireDefault(require("./operations/fromJSON"));
|
|
49
51
|
var _generate = /*#__PURE__*/ _interopRequireDefault(require("./operations/generate"));
|
|
50
52
|
var _transform1 = /*#__PURE__*/ _interopRequireDefault(require("./operations/transform"));
|
|
51
|
-
var _selection = /*#__PURE__*/ _interopRequireDefault(require("./selection"));
|
|
52
|
-
var _richTextarea = /*#__PURE__*/ _interopRequireDefault(require("./richTextarea"));
|
|
53
53
|
function _interopRequireDefault(obj) {
|
|
54
54
|
return obj && obj.__esModule ? obj : {
|
|
55
55
|
default: obj
|
|
56
56
|
};
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9icm93c2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2VsZWN0aW9uIH0gZnJvbSBcIi4vc2VsZWN0aW9uXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJpY2hUZXh0YXJlYSB9IGZyb20gXCIuL3JpY2hUZXh0YXJlYVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBFbXB0eU9wZXJhdGlvbiB9IGZyb20gXCIuL29wZXJhdGlvbi9lbXB0eVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBJbnNlcnRPcGVyYXRpb24gfSBmcm9tIFwiLi9vcGVyYXRpb24vaW5zZXJ0XCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIERlbGV0ZU9wZXJhdGlvbiB9IGZyb20gXCIuL29wZXJhdGlvbi9kZWxldGVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdHJhbnNmb3JtQ29udGVudCB9IGZyb20gXCIuL2NvbnRlbnQvdHJhbnNmb3JtXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIG9wZXJhdGlvbnNUb0pTT04gfSBmcm9tIFwiLi9vcGVyYXRpb25zL3RvSlNPTlwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBvcGVyYXRpb25zRnJvbUpTT04gfSBmcm9tIFwiLi9vcGVyYXRpb25zL2Zyb21KU09OXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGdlbmVyYXRlT3BlcmF0aW9ucyB9IGZyb20gXCIuL29wZXJhdGlvbnMvZ2VuZXJhdGVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdHJhbnNmb3JtT3BlcmF0aW9ucyB9IGZyb20gXCIuL29wZXJhdGlvbnMvdHJhbnNmb3JtXCI7XG5cbiJdLCJuYW1lcyI6WyJTZWxlY3Rpb24iLCJSaWNoVGV4dGFyZWEiLCJFbXB0eU9wZXJhdGlvbiIsIkluc2VydE9wZXJhdGlvbiIsIkRlbGV0ZU9wZXJhdGlvbiIsInRyYW5zZm9ybUNvbnRlbnQiLCJvcGVyYXRpb25zVG9KU09OIiwib3BlcmF0aW9uc0Zyb21KU09OIiwiZ2VuZXJhdGVPcGVyYXRpb25zIiwidHJhbnNmb3JtT3BlcmF0aW9ucyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBR29CQSxTQUFTO2VBQVRBLGtCQUFTOztJQUNUQyxZQUFZO2VBQVpBLHFCQUFZOztJQUNaQyxjQUFjO2VBQWRBLGNBQWM7O0lBQ2RDLGVBQWU7ZUFBZkEsZUFBZTs7SUFDZkMsZUFBZTtlQUFmQSxlQUFlOztJQUNmQyxnQkFBZ0I7ZUFBaEJBLGtCQUFnQjs7SUFDaEJDLGdCQUFnQjtlQUFoQkEsZUFBZ0I7O0lBQ2hCQyxrQkFBa0I7ZUFBbEJBLGlCQUFrQjs7SUFDbEJDLGtCQUFrQjtlQUFsQkEsaUJBQWtCOztJQUNsQkMsbUJBQW1CO2VBQW5CQSxtQkFBbUI7Ozs4REFURjtpRUFDRzswREFDRTsyREFDQzsyREFDQTs4REFDQzsyREFDQTs2REFDRTs2REFDQTsrREFDQyJ9
|
package/lib/constants.js
CHANGED
|
@@ -2,12 +2,21 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
TEXT: function() {
|
|
13
|
+
return TEXT;
|
|
14
|
+
},
|
|
15
|
+
EMPTY_STRING: function() {
|
|
8
16
|
return EMPTY_STRING;
|
|
9
17
|
}
|
|
10
18
|
});
|
|
19
|
+
var TEXT = "text";
|
|
11
20
|
var EMPTY_STRING = "";
|
|
12
21
|
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25zdGFudHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBURVhUID0gXCJ0ZXh0XCI7XG5leHBvcnQgY29uc3QgRU1QVFlfU1RSSU5HID0gXCJcIjtcbiJdLCJuYW1lcyI6WyJURVhUIiwiRU1QVFlfU1RSSU5HIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFFYUEsSUFBSTtlQUFKQTs7SUFDQUMsWUFBWTtlQUFaQTs7O0FBRE4sSUFBTUQsT0FBTztBQUNiLElBQU1DLGVBQWUifQ==
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return contentCompare;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _constants = require("./constants");
|
|
12
|
+
function contentCompare(contentA, contentB) {
|
|
13
|
+
if (contentA === _constants.EMPTY_STRING && contentB === _constants.EMPTY_STRING) {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
if (contentA === _constants.EMPTY_STRING) {
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
if (contentB === _constants.EMPTY_STRING) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
var codePointA = contentA.codePointAt(0), codePointB = contentB.codePointAt(0);
|
|
23
|
+
if (codePointA < codePointB) {
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
if (codePointA > codePointB) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
contentA = contentA.slice(1); ///
|
|
30
|
+
contentB = contentB.slice(1); ///
|
|
31
|
+
return contentCompare(contentA, contentB);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb250ZW50Q29tcGFyZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNvbnRlbnRDb21wYXJlKGNvbnRlbnRBLCBjb250ZW50Qikge1xuICBpZiAoKGNvbnRlbnRBID09PSBFTVBUWV9TVFJJTkcpICYmIChjb250ZW50QiA9PT0gRU1QVFlfU1RSSU5HKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChjb250ZW50QSA9PT0gRU1QVFlfU1RSSU5HKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAoY29udGVudEIgPT09IEVNUFRZX1NUUklORykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGNvZGVQb2ludEEgPSBjb250ZW50QS5jb2RlUG9pbnRBdCgwKSxcbiAgICAgICAgY29kZVBvaW50QiA9IGNvbnRlbnRCLmNvZGVQb2ludEF0KDApO1xuXG4gIGlmIChjb2RlUG9pbnRBIDwgY29kZVBvaW50Qikge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKGNvZGVQb2ludEEgPiBjb2RlUG9pbnRCKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29udGVudEEgPSBjb250ZW50QS5zbGljZSgxKTsgLy8vXG5cbiAgY29udGVudEIgPSBjb250ZW50Qi5zbGljZSgxKTsgLy8vXG5cbiAgcmV0dXJuIGNvbnRlbnRDb21wYXJlKGNvbnRlbnRBLCBjb250ZW50Qik7XG59XG4iXSwibmFtZXMiOlsiY29udGVudENvbXBhcmUiLCJjb250ZW50QSIsImNvbnRlbnRCIiwiRU1QVFlfU1RSSU5HIiwiY29kZVBvaW50QSIsImNvZGVQb2ludEF0IiwiY29kZVBvaW50QiIsInNsaWNlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFJQTs7O2VBQXdCQTs7O3lCQUZLO0FBRWQsU0FBU0EsZUFBZUMsUUFBUSxFQUFFQyxRQUFRLEVBQUU7SUFDekQsSUFBSSxBQUFDRCxhQUFhRSx1QkFBWSxJQUFNRCxhQUFhQyx1QkFBWSxFQUFHO1FBQzlELE9BQU8sS0FBSztJQUNkLENBQUM7SUFFRCxJQUFJRixhQUFhRSx1QkFBWSxFQUFFO1FBQzdCLE9BQU8sSUFBSTtJQUNiLENBQUM7SUFFRCxJQUFJRCxhQUFhQyx1QkFBWSxFQUFFO1FBQzdCLE9BQU8sS0FBSztJQUNkLENBQUM7SUFFRCxJQUFNQyxhQUFhSCxTQUFTSSxXQUFXLENBQUMsSUFDbENDLGFBQWFKLFNBQVNHLFdBQVcsQ0FBQztJQUV4QyxJQUFJRCxhQUFhRSxZQUFZO1FBQzNCLE9BQU8sSUFBSTtJQUNiLENBQUM7SUFFRCxJQUFJRixhQUFhRSxZQUFZO1FBQzNCLE9BQU8sS0FBSztJQUNkLENBQUM7SUFFREwsV0FBV0EsU0FBU00sS0FBSyxDQUFDLElBQUksR0FBRztJQUVqQ0wsV0FBV0EsU0FBU0ssS0FBSyxDQUFDLElBQUksR0FBRztJQUVqQyxPQUFPUCxlQUFlQyxVQUFVQztBQUNsQyJ9
|
|
@@ -27,7 +27,7 @@ function _taggedTemplateLiteral(strings, raw) {
|
|
|
27
27
|
}
|
|
28
28
|
function _templateObject() {
|
|
29
29
|
var data = _taggedTemplateLiteral([
|
|
30
|
-
"\n\n
|
|
30
|
+
"\n\n color: #eee;\n width: 64rem;\n resize: none;\n height: 64rem;\n padding: 0.25rem;\n font-size: 1.6rem;\n font-family: monospace;\n margin-right: 2rem;\n background-color: #222;\n \n ::selection {\n color: #fff;\n background-color: #c80;\n }\n\n"
|
|
31
31
|
]);
|
|
32
32
|
_templateObject = function _templateObject() {
|
|
33
33
|
return data;
|
|
@@ -36,4 +36,4 @@ function _templateObject() {
|
|
|
36
36
|
}
|
|
37
37
|
var _default = (0, _easyWithStyle.default)(_browser.RichTextarea)(_templateObject());
|
|
38
38
|
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGFtcGxlL3JpY2hUZXh0YXJlYS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHdpdGhTdHlsZSBmcm9tIFwiZWFzeS13aXRoLXN0eWxlXCI7XG5cbmltcG9ydCB7IFJpY2hUZXh0YXJlYSB9IGZyb20gXCIuLi9icm93c2VyXCI7ICAvLy9cblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlKFJpY2hUZXh0YXJlYSlgXG5cbiAgY29sb3I6ICNlZWU7XG4gIHdpZHRoOiA2NHJlbTtcbiAgcmVzaXplOiBub25lO1xuICBoZWlnaHQ6IDY0cmVtO1xuICBwYWRkaW5nOiAwLjI1cmVtO1xuICBmb250LXNpemU6IDEuNnJlbTtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcbiAgbWFyZ2luLXJpZ2h0OiAycmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyO1xuICAgIFxuICA6OnNlbGVjdGlvbiB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2M4MDtcbiAgfVxuXG5gO1xuIl0sIm5hbWVzIjpbIndpdGhTdHlsZSIsIlJpY2hUZXh0YXJlYSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBTUE7OztlQUFBOzs7a0VBSnNCO3VCQUVPOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBRTdCLFdBQWVBLElBQUFBLHNCQUFTLEVBQUNDLHFCQUFZIn0=
|
package/lib/example/view.js
CHANGED
|
@@ -14,27 +14,36 @@ function _interopRequireDefault(obj) {
|
|
|
14
14
|
default: obj
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
|
-
var content = "",
|
|
17
|
+
var content = "", activeRichTextarea = /*#__PURE__*/ React.createElement(_richTextarea.default, {
|
|
18
18
|
onChange: changeHandler,
|
|
19
19
|
onScroll: scrollHandler,
|
|
20
20
|
onFocus: focusHandler,
|
|
21
21
|
onBlur: blurHandler
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
}), inactiveRichTextarea = /*#__PURE__*/ React.createElement(_richTextarea.default, null);
|
|
23
|
+
activeRichTextarea.setContent(content);
|
|
24
|
+
activeRichTextarea.activate();
|
|
25
25
|
var View = function(properties) {
|
|
26
26
|
return /*#__PURE__*/ React.createElement("div", {
|
|
27
27
|
className: "view"
|
|
28
|
-
},
|
|
28
|
+
}, activeRichTextarea, inactiveRichTextarea);
|
|
29
29
|
};
|
|
30
30
|
var _default = View;
|
|
31
31
|
function changeHandler(event, element) {
|
|
32
|
-
var
|
|
32
|
+
var contentChanged = activeRichTextarea.hasContentChanged(), selectionChanged = activeRichTextarea.hasSelectionChanged();
|
|
33
33
|
console.log(contentChanged, selectionChanged);
|
|
34
|
+
if (contentChanged) {
|
|
35
|
+
var content = activeRichTextarea.getContent();
|
|
36
|
+
inactiveRichTextarea.setContent(content);
|
|
37
|
+
}
|
|
38
|
+
if (selectionChanged) {
|
|
39
|
+
var selection = activeRichTextarea.getSelection();
|
|
40
|
+
inactiveRichTextarea.setSelection(selection);
|
|
41
|
+
}
|
|
34
42
|
}
|
|
35
43
|
function scrollHandler(event, element) {
|
|
36
|
-
var scrollTop =
|
|
37
|
-
|
|
44
|
+
var scrollTop = activeRichTextarea.getScrollTop(), scrollLeft = activeRichTextarea.getScrollLeft();
|
|
45
|
+
inactiveRichTextarea.setScrollTop(scrollTop);
|
|
46
|
+
inactiveRichTextarea.setScrollLeft(scrollLeft);
|
|
38
47
|
}
|
|
39
48
|
function focusHandler(event, element) {
|
|
40
49
|
console.log("focus");
|
|
@@ -43,4 +52,4 @@ function blurHandler(event, element) {
|
|
|
43
52
|
console.log("blur");
|
|
44
53
|
}
|
|
45
54
|
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGFtcGxlL3ZpZXcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBSaWNoVGV4dGFyZWEgZnJvbSBcIi4vcmljaFRleHRhcmVhXCI7XG5cbmNvbnN0IGNvbnRlbnQgPSBcIlwiLFxuICAgICAgYWN0aXZlUmljaFRleHRhcmVhID1cblxuICAgICAgICA8UmljaFRleHRhcmVhIG9uQ2hhbmdlPXtjaGFuZ2VIYW5kbGVyfSBvblNjcm9sbD17c2Nyb2xsSGFuZGxlcn0gb25Gb2N1cz17Zm9jdXNIYW5kbGVyfSBvbkJsdXI9e2JsdXJIYW5kbGVyfSAvPlxuXG4gICAgICAsXG4gICAgICBpbmFjdGl2ZVJpY2hUZXh0YXJlYSA9XG5cbiAgICAgICAgPFJpY2hUZXh0YXJlYSAvPlxuXG4gICAgICA7XG5cbmFjdGl2ZVJpY2hUZXh0YXJlYS5zZXRDb250ZW50KGNvbnRlbnQpO1xuXG5hY3RpdmVSaWNoVGV4dGFyZWEuYWN0aXZhdGUoKTtcblxuY29uc3QgVmlldyA9IChwcm9wZXJ0aWVzKSA9PlxuXG4gIDxkaXYgY2xhc3NOYW1lPVwidmlld1wiPlxuICAgIHthY3RpdmVSaWNoVGV4dGFyZWF9XG4gICAge2luYWN0aXZlUmljaFRleHRhcmVhfVxuICA8L2Rpdj5cblxuO1xuXG5leHBvcnQgZGVmYXVsdCBWaWV3O1xuXG5mdW5jdGlvbiBjaGFuZ2VIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XG4gIGNvbnN0IGNvbnRlbnRDaGFuZ2VkID0gYWN0aXZlUmljaFRleHRhcmVhLmhhc0NvbnRlbnRDaGFuZ2VkKCksXG4gICAgICAgIHNlbGVjdGlvbkNoYW5nZWQgPSBhY3RpdmVSaWNoVGV4dGFyZWEuaGFzU2VsZWN0aW9uQ2hhbmdlZCgpO1xuXG4gIGNvbnNvbGUubG9nKGNvbnRlbnRDaGFuZ2VkLCBzZWxlY3Rpb25DaGFuZ2VkKVxuXG4gIGlmIChjb250ZW50Q2hhbmdlZCkge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBhY3RpdmVSaWNoVGV4dGFyZWEuZ2V0Q29udGVudCgpO1xuXG4gICAgaW5hY3RpdmVSaWNoVGV4dGFyZWEuc2V0Q29udGVudChjb250ZW50KTtcbiAgfVxuXG4gIGlmIChzZWxlY3Rpb25DaGFuZ2VkKSB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gYWN0aXZlUmljaFRleHRhcmVhLmdldFNlbGVjdGlvbigpO1xuXG4gICAgaW5hY3RpdmVSaWNoVGV4dGFyZWEuc2V0U2VsZWN0aW9uKHNlbGVjdGlvbik7XG4gIH1cbn1cblxuZnVuY3Rpb24gc2Nyb2xsSGFuZGxlcihldmVudCwgZWxlbWVudCkge1xuICBjb25zdCBzY3JvbGxUb3AgPSBhY3RpdmVSaWNoVGV4dGFyZWEuZ2V0U2Nyb2xsVG9wKCksXG4gICAgICAgIHNjcm9sbExlZnQgPSBhY3RpdmVSaWNoVGV4dGFyZWEuZ2V0U2Nyb2xsTGVmdCgpO1xuXG4gIGluYWN0aXZlUmljaFRleHRhcmVhLnNldFNjcm9sbFRvcChzY3JvbGxUb3ApO1xuICBpbmFjdGl2ZVJpY2hUZXh0YXJlYS5zZXRTY3JvbGxMZWZ0KHNjcm9sbExlZnQpO1xufVxuXG5mdW5jdGlvbiBmb2N1c0hhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcbiAgY29uc29sZS5sb2coXCJmb2N1c1wiKVxufVxuXG5mdW5jdGlvbiBibHVySGFuZGxlcihldmVudCwgZWxlbWVudCkge1xuICBjb25zb2xlLmxvZyhcImJsdXJcIilcbn1cbiJdLCJuYW1lcyI6WyJjb250ZW50IiwiYWN0aXZlUmljaFRleHRhcmVhIiwiUmljaFRleHRhcmVhIiwib25DaGFuZ2UiLCJjaGFuZ2VIYW5kbGVyIiwib25TY3JvbGwiLCJzY3JvbGxIYW5kbGVyIiwib25Gb2N1cyIsImZvY3VzSGFuZGxlciIsIm9uQmx1ciIsImJsdXJIYW5kbGVyIiwiaW5hY3RpdmVSaWNoVGV4dGFyZWEiLCJzZXRDb250ZW50IiwiYWN0aXZhdGUiLCJWaWV3IiwicHJvcGVydGllcyIsImRpdiIsImNsYXNzTmFtZSIsImV2ZW50IiwiZWxlbWVudCIsImNvbnRlbnRDaGFuZ2VkIiwiaGFzQ29udGVudENoYW5nZWQiLCJzZWxlY3Rpb25DaGFuZ2VkIiwiaGFzU2VsZWN0aW9uQ2hhbmdlZCIsImNvbnNvbGUiLCJsb2ciLCJnZXRDb250ZW50Iiwic2VsZWN0aW9uIiwiZ2V0U2VsZWN0aW9uIiwic2V0U2VsZWN0aW9uIiwic2Nyb2xsVG9wIiwiZ2V0U2Nyb2xsVG9wIiwic2Nyb2xsTGVmdCIsImdldFNjcm9sbExlZnQiLCJzZXRTY3JvbGxUb3AiLCJzZXRTY3JvbGxMZWZ0Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkE2QkE7OztlQUFBOzs7aUVBM0J5Qjs7Ozs7O0FBRXpCLElBQU1BLFVBQVUsSUFDVkMsbUNBRUUsb0JBQUNDLHFCQUFZO0lBQUNDLFVBQVVDO0lBQWVDLFVBQVVDO0lBQWVDLFNBQVNDO0lBQWNDLFFBQVFDO0lBR2pHQyxxQ0FFRSxvQkFBQ1QscUJBQVk7QUFJckJELG1CQUFtQlcsVUFBVSxDQUFDWjtBQUU5QkMsbUJBQW1CWSxRQUFRO0FBRTNCLElBQU1DLE9BQU8sU0FBQ0M7eUJBRVosb0JBQUNDO1FBQUlDLFdBQVU7T0FDWmhCLG9CQUNBVTs7SUFLTCxXQUFlRztBQUVmLFNBQVNWLGNBQWNjLEtBQUssRUFBRUMsT0FBTyxFQUFFO0lBQ3JDLElBQU1DLGlCQUFpQm5CLG1CQUFtQm9CLGlCQUFpQixJQUNyREMsbUJBQW1CckIsbUJBQW1Cc0IsbUJBQW1CO0lBRS9EQyxRQUFRQyxHQUFHLENBQUNMLGdCQUFnQkU7SUFFNUIsSUFBSUYsZ0JBQWdCO1FBQ2xCLElBQU1wQixVQUFVQyxtQkFBbUJ5QixVQUFVO1FBRTdDZixxQkFBcUJDLFVBQVUsQ0FBQ1o7SUFDbEMsQ0FBQztJQUVELElBQUlzQixrQkFBa0I7UUFDcEIsSUFBTUssWUFBWTFCLG1CQUFtQjJCLFlBQVk7UUFFakRqQixxQkFBcUJrQixZQUFZLENBQUNGO0lBQ3BDLENBQUM7QUFDSDtBQUVBLFNBQVNyQixjQUFjWSxLQUFLLEVBQUVDLE9BQU8sRUFBRTtJQUNyQyxJQUFNVyxZQUFZN0IsbUJBQW1COEIsWUFBWSxJQUMzQ0MsYUFBYS9CLG1CQUFtQmdDLGFBQWE7SUFFbkR0QixxQkFBcUJ1QixZQUFZLENBQUNKO0lBQ2xDbkIscUJBQXFCd0IsYUFBYSxDQUFDSDtBQUNyQztBQUVBLFNBQVN4QixhQUFhVSxLQUFLLEVBQUVDLE9BQU8sRUFBRTtJQUNwQ0ssUUFBUUMsR0FBRyxDQUFDO0FBQ2Q7QUFFQSxTQUFTZixZQUFZUSxLQUFLLEVBQUVDLE9BQU8sRUFBRTtJQUNuQ0ssUUFBUUMsR0FBRyxDQUFDO0FBQ2QifQ==
|
package/lib/keyCodes.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "Z_KEY_CODE", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return Z_KEY_CODE;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var Z_KEY_CODE = 90;
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9rZXlDb2Rlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IGNvbnN0IFpfS0VZX0NPREUgPSA5MDtcbiJdLCJuYW1lcyI6WyJaX0tFWV9DT0RFIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFFYUE7OztlQUFBQTs7O0FBQU4sSUFBTUEsYUFBYSJ9
|
package/lib/main.js
CHANGED
|
@@ -56,4 +56,4 @@ function _interopRequireDefault(obj) {
|
|
|
56
56
|
};
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWluLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIHR5cGVzIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2VsZWN0aW9uIH0gZnJvbSBcIi4vc2VsZWN0aW9uXCI7XG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgRW1wdHlPcGVyYXRpb24gfSBmcm9tIFwiLi9vcGVyYXRpb24vZW1wdHlcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSW5zZXJ0T3BlcmF0aW9uIH0gZnJvbSBcIi4vb3BlcmF0aW9uL2luc2VydFwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBEZWxldGVPcGVyYXRpb24gfSBmcm9tIFwiLi9vcGVyYXRpb24vZGVsZXRlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHRyYW5zZm9ybUNvbnRlbnQgfSBmcm9tIFwiLi9jb250ZW50L3RyYW5zZm9ybVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBvcGVyYXRpb25zVG9KU09OIH0gZnJvbSBcIi4vb3BlcmF0aW9ucy90b0pTT05cIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgb3BlcmF0aW9uc0Zyb21KU09OIH0gZnJvbSBcIi4vb3BlcmF0aW9ucy9mcm9tSlNPTlwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBnZW5lcmF0ZU9wZXJhdGlvbnMgfSBmcm9tIFwiLi9vcGVyYXRpb25zL2dlbmVyYXRlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHRyYW5zZm9ybU9wZXJhdGlvbnMgfSBmcm9tIFwiLi9vcGVyYXRpb25zL3RyYW5zZm9ybVwiO1xuIl0sIm5hbWVzIjpbInR5cGVzIiwiU2VsZWN0aW9uIiwiRW1wdHlPcGVyYXRpb24iLCJJbnNlcnRPcGVyYXRpb24iLCJEZWxldGVPcGVyYXRpb24iLCJ0cmFuc2Zvcm1Db250ZW50Iiwib3BlcmF0aW9uc1RvSlNPTiIsIm9wZXJhdGlvbnNGcm9tSlNPTiIsImdlbmVyYXRlT3BlcmF0aW9ucyIsInRyYW5zZm9ybU9wZXJhdGlvbnMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQUVvQkEsS0FBSztlQUFMQSxjQUFLOztJQUNMQyxTQUFTO2VBQVRBLGtCQUFTOztJQUVUQyxjQUFjO2VBQWRBLGNBQWM7O0lBQ2RDLGVBQWU7ZUFBZkEsZUFBZTs7SUFDZkMsZUFBZTtlQUFmQSxlQUFlOztJQUNmQyxnQkFBZ0I7ZUFBaEJBLGtCQUFnQjs7SUFDaEJDLGdCQUFnQjtlQUFoQkEsZUFBZ0I7O0lBQ2hCQyxrQkFBa0I7ZUFBbEJBLGlCQUFrQjs7SUFDbEJDLGtCQUFrQjtlQUFsQkEsaUJBQWtCOztJQUNsQkMsbUJBQW1CO2VBQW5CQSxtQkFBbUI7OzswREFWTjs4REFDSTswREFFSzsyREFDQzsyREFDQTs4REFDQzsyREFDQTs2REFDRTs2REFDQTsrREFDQyJ9
|
package/lib/operation/delete.js
CHANGED
|
@@ -35,24 +35,37 @@ function _interopRequireDefault(obj) {
|
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
37
|
var DeleteOperation = /*#__PURE__*/ function() {
|
|
38
|
-
function DeleteOperation(type,
|
|
38
|
+
function DeleteOperation(type, content, position) {
|
|
39
39
|
_classCallCheck(this, DeleteOperation);
|
|
40
40
|
this.type = type;
|
|
41
|
-
this.
|
|
41
|
+
this.content = content;
|
|
42
42
|
this.position = position;
|
|
43
43
|
}
|
|
44
44
|
_createClass(DeleteOperation, [
|
|
45
45
|
{
|
|
46
|
-
key: "
|
|
47
|
-
value: function
|
|
48
|
-
return
|
|
46
|
+
key: "getType",
|
|
47
|
+
value: function getType() {
|
|
48
|
+
return this.type;
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
key: "getContent",
|
|
53
|
+
value: function getContent() {
|
|
54
|
+
return this.content;
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
key: "getPosition",
|
|
59
|
+
value: function getPosition() {
|
|
60
|
+
return this.position;
|
|
49
61
|
}
|
|
50
62
|
},
|
|
51
63
|
{
|
|
52
64
|
key: "transformOperation",
|
|
53
65
|
value: function transformOperation(operation) {
|
|
54
|
-
|
|
55
|
-
|
|
66
|
+
var type = operation.getType();
|
|
67
|
+
switch(type){
|
|
68
|
+
case _types.INSERT_TYPE:
|
|
56
69
|
return function(tau, rho) {
|
|
57
70
|
if (tau.position <= rho.position) {
|
|
58
71
|
return [
|
|
@@ -60,68 +73,68 @@ var DeleteOperation = /*#__PURE__*/ function() {
|
|
|
60
73
|
];
|
|
61
74
|
}
|
|
62
75
|
if (tau.position > rho.position) {
|
|
63
|
-
if (tau.position < rho.length + rho.position) {
|
|
76
|
+
if (tau.position < rho.content.length + rho.position) {
|
|
64
77
|
return [
|
|
65
78
|
tau.left(rho).shift(tau)
|
|
66
79
|
];
|
|
67
80
|
}
|
|
68
|
-
if (tau.position >= rho.length + rho.position) {
|
|
81
|
+
if (tau.position >= rho.content.length + rho.position) {
|
|
69
82
|
return [
|
|
70
83
|
rho.shift(tau)
|
|
71
84
|
];
|
|
72
85
|
}
|
|
73
86
|
}
|
|
74
87
|
}(operation, this);
|
|
75
|
-
case _types.
|
|
88
|
+
case _types.DELETE_TYPE:
|
|
76
89
|
return function(tau, rho) {
|
|
77
90
|
if (tau.position < rho.position) {
|
|
78
|
-
if (tau.length + tau.position <= rho.position) {
|
|
91
|
+
if (tau.content.length + tau.position <= rho.position) {
|
|
79
92
|
return [
|
|
80
93
|
tau.clone()
|
|
81
94
|
];
|
|
82
95
|
}
|
|
83
|
-
if (tau.length + tau.position <= rho.length + rho.position) {
|
|
96
|
+
if (tau.content.length + tau.position <= rho.content.length + rho.position) {
|
|
84
97
|
return [
|
|
85
98
|
rho.takenFrom(tau)
|
|
86
99
|
];
|
|
87
100
|
}
|
|
88
|
-
if (tau.length + tau.position > rho.length + rho.position) {
|
|
101
|
+
if (tau.content.length + tau.position > rho.content.length + rho.position) {
|
|
89
102
|
return [
|
|
90
103
|
rho.split(tau)
|
|
91
104
|
];
|
|
92
105
|
}
|
|
93
106
|
}
|
|
94
107
|
if (tau.position === rho.position) {
|
|
95
|
-
if (tau.length + tau.position <= rho.length + rho.position) {
|
|
108
|
+
if (tau.content.length + tau.position <= rho.content.length + rho.position) {
|
|
96
109
|
return [
|
|
97
110
|
_empty.default.fromNothing()
|
|
98
111
|
];
|
|
99
112
|
}
|
|
100
|
-
if (tau.length + tau.position > rho.length + rho.position) {
|
|
113
|
+
if (tau.content.length + tau.position > rho.content.length + rho.position) {
|
|
101
114
|
return [
|
|
102
115
|
rho.shift(rho.takenFrom(tau))
|
|
103
116
|
];
|
|
104
117
|
}
|
|
105
118
|
}
|
|
106
|
-
if (tau.position >= rho.length + rho.position) {
|
|
119
|
+
if (tau.position >= rho.content.length + rho.position) {
|
|
107
120
|
return [
|
|
108
121
|
rho.shift(tau)
|
|
109
122
|
];
|
|
110
123
|
}
|
|
111
124
|
if (tau.position > rho.position) {
|
|
112
|
-
if (tau.length + tau.position <= rho.length + rho.position) {
|
|
125
|
+
if (tau.content.length + tau.position <= rho.content.length + rho.position) {
|
|
113
126
|
return [
|
|
114
127
|
_empty.default.fromNothing()
|
|
115
128
|
];
|
|
116
129
|
}
|
|
117
|
-
if (tau.length + tau.position > rho.length + rho.position) {
|
|
130
|
+
if (tau.content.length + tau.position > rho.content.length + rho.position) {
|
|
118
131
|
return [
|
|
119
132
|
rho.shift(rho.takenFrom(tau))
|
|
120
133
|
];
|
|
121
134
|
}
|
|
122
135
|
}
|
|
123
136
|
}(operation, this);
|
|
124
|
-
case _types.
|
|
137
|
+
case _types.EMPTY_TYPE:
|
|
125
138
|
return function(tau, rho) {
|
|
126
139
|
return [
|
|
127
140
|
tau.clone()
|
|
@@ -133,35 +146,38 @@ var DeleteOperation = /*#__PURE__*/ function() {
|
|
|
133
146
|
{
|
|
134
147
|
key: "transformContent",
|
|
135
148
|
value: function transformContent(content) {
|
|
136
|
-
|
|
149
|
+
var start, end;
|
|
150
|
+
start = 0;
|
|
151
|
+
end = this.position;
|
|
152
|
+
var leftContent = content.substring(start, end), contentLength = this.content.length;
|
|
153
|
+
start = this.position + contentLength;
|
|
154
|
+
var rightContent = content.substring(start), transformedContent = leftContent + rightContent;
|
|
155
|
+
return transformedContent;
|
|
137
156
|
}
|
|
138
157
|
},
|
|
139
158
|
{
|
|
140
159
|
key: "transformSelection",
|
|
141
160
|
value: function transformSelection(selection) {
|
|
142
161
|
var transformedSelection;
|
|
143
|
-
var
|
|
144
|
-
var offset, endOffset;
|
|
162
|
+
var selectionStartPosition = selection.getStartPosition(), selectionEndPosition = selection.getEndPosition(), contentLength = this.content.length, startPosition = this.position, endPosition = startPosition + contentLength;
|
|
145
163
|
if (false) {
|
|
146
164
|
///
|
|
147
165
|
} else if (selectionStartPosition >= endPosition) {
|
|
148
|
-
offset = -
|
|
166
|
+
var offset = -contentLength;
|
|
149
167
|
transformedSelection = selection.shifted(offset);
|
|
150
168
|
} else if (selectionStartPosition >= startPosition) {
|
|
151
169
|
if (selectionEndPosition > endPosition) {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
transformedSelection = selection.shifted(offset).endPositionShifted(endOffset);
|
|
170
|
+
var offset1 = startPosition - selectionStartPosition, endOffset = selectionStartPosition - endPosition;
|
|
171
|
+
transformedSelection = selection.shifted(offset1).endPositionShifted(endOffset);
|
|
155
172
|
} else {
|
|
156
|
-
|
|
157
|
-
transformedSelection = new Selection(startPosition, startPosition);
|
|
173
|
+
transformedSelection = selection.emptied();
|
|
158
174
|
}
|
|
159
175
|
} else if (selectionEndPosition > endPosition) {
|
|
160
|
-
|
|
161
|
-
transformedSelection = selection.endPositionShifted(
|
|
176
|
+
var endOffset1 = -contentLength;
|
|
177
|
+
transformedSelection = selection.endPositionShifted(endOffset1);
|
|
162
178
|
} else if (selectionEndPosition > startPosition) {
|
|
163
|
-
|
|
164
|
-
transformedSelection = selection.endPositionShifted(
|
|
179
|
+
var endOffset2 = startPosition - selectionEndPosition;
|
|
180
|
+
transformedSelection = selection.endPositionShifted(endOffset2);
|
|
165
181
|
} else {
|
|
166
182
|
transformedSelection = selection.clone();
|
|
167
183
|
}
|
|
@@ -171,29 +187,33 @@ var DeleteOperation = /*#__PURE__*/ function() {
|
|
|
171
187
|
{
|
|
172
188
|
key: "shifted",
|
|
173
189
|
value: function shifted(offset) {
|
|
174
|
-
var
|
|
190
|
+
var content = this.content, position = this.position + offset, deleteOperation = DeleteOperation.fromContentAndPosition(content, position);
|
|
175
191
|
return deleteOperation;
|
|
176
192
|
}
|
|
177
193
|
},
|
|
178
194
|
{
|
|
179
195
|
key: "shift",
|
|
180
196
|
value: function shift(operation) {
|
|
181
|
-
var
|
|
197
|
+
var contentLength = this.content.length, offset = -contentLength, shiftedOperation = operation.shifted(offset);
|
|
182
198
|
return shiftedOperation;
|
|
183
199
|
}
|
|
184
200
|
},
|
|
185
201
|
{
|
|
186
202
|
key: "takenFrom",
|
|
187
203
|
value: function takenFrom(deleteOperation) {
|
|
188
|
-
var
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
204
|
+
var content = deleteOperation.getContent(), position = deleteOperation.getPosition();
|
|
205
|
+
var contentLength = content.length;
|
|
206
|
+
if (this.position > position && this.position + this.content.length >= position + contentLength) {
|
|
207
|
+
var contentLength1 = this.position - position, start = 0, end = start + contentLength1; ///
|
|
208
|
+
content = content.substring(start, end);
|
|
209
|
+
deleteOperation = DeleteOperation.fromContentAndPosition(content, position);
|
|
192
210
|
}
|
|
193
|
-
if (this.position <= position && this.
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
211
|
+
if (this.position <= position && this.position + this.content.length < position + contentLength) {
|
|
212
|
+
contentLength = position + contentLength - (this.position + this.content.length);
|
|
213
|
+
var start1 = this.position + this.content.length - position, end1 = start1 + contentLength; ///
|
|
214
|
+
position = this.position + this.content.length;
|
|
215
|
+
content = content.substring(start1, end1);
|
|
216
|
+
deleteOperation = DeleteOperation.fromContentAndPosition(content, position);
|
|
197
217
|
}
|
|
198
218
|
return deleteOperation;
|
|
199
219
|
}
|
|
@@ -201,18 +221,38 @@ var DeleteOperation = /*#__PURE__*/ function() {
|
|
|
201
221
|
{
|
|
202
222
|
key: "split",
|
|
203
223
|
value: function split(deleteOperation) {
|
|
204
|
-
var
|
|
205
|
-
|
|
206
|
-
|
|
224
|
+
var content = deleteOperation.getContent(), position = deleteOperation.getPosition();
|
|
225
|
+
var start, end;
|
|
226
|
+
start = 0;
|
|
227
|
+
end = this.position - position;
|
|
228
|
+
var leftContent = content.substring(start, end);
|
|
229
|
+
start = this.position - position + this.content.length;
|
|
230
|
+
var rightContent = content.substring(start);
|
|
231
|
+
content = leftContent + rightContent;
|
|
232
|
+
deleteOperation = DeleteOperation.fromContentAndPosition(content, position);
|
|
233
|
+
return deleteOperation;
|
|
234
|
+
}
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
key: "invert",
|
|
238
|
+
value: function invert(InsertOperation, DeleteOperation) {
|
|
239
|
+
var insertOperation = InsertOperation.fromContentAndPosition(this.content, this.position);
|
|
240
|
+
return insertOperation;
|
|
241
|
+
}
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
key: "clone",
|
|
245
|
+
value: function clone() {
|
|
246
|
+
var deleteOperation = DeleteOperation.fromContentAndPosition(this.content, this.position);
|
|
207
247
|
return deleteOperation;
|
|
208
248
|
}
|
|
209
249
|
},
|
|
210
250
|
{
|
|
211
251
|
key: "toJSON",
|
|
212
252
|
value: function toJSON() {
|
|
213
|
-
var type = this.type,
|
|
253
|
+
var type = this.type, content = this.content, position = this.position, json = {
|
|
214
254
|
type: type,
|
|
215
|
-
|
|
255
|
+
content: content,
|
|
216
256
|
position: position
|
|
217
257
|
};
|
|
218
258
|
return json;
|
|
@@ -222,14 +262,23 @@ var DeleteOperation = /*#__PURE__*/ function() {
|
|
|
222
262
|
{
|
|
223
263
|
key: "fromJSON",
|
|
224
264
|
value: function fromJSON(json) {
|
|
225
|
-
var type = json.type,
|
|
265
|
+
var type = json.type, content = json.content, position = json.position, deleteOperation = new DeleteOperation(type, content, position);
|
|
266
|
+
return deleteOperation;
|
|
267
|
+
}
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
key: "fromContentAndPosition",
|
|
271
|
+
value: function fromContentAndPosition(content, position) {
|
|
272
|
+
var type = _types.DELETE_TYPE, deleteOperation = new DeleteOperation(type, content, position);
|
|
226
273
|
return deleteOperation;
|
|
227
274
|
}
|
|
228
275
|
},
|
|
229
276
|
{
|
|
230
|
-
key: "
|
|
231
|
-
value: function
|
|
232
|
-
var
|
|
277
|
+
key: "fromContentAndSelection",
|
|
278
|
+
value: function fromContentAndSelection(content, selection) {
|
|
279
|
+
var startPosition = selection.getStartPosition(), endPosition = selection.getEndPosition(), begin = startPosition, end = endPosition; ///
|
|
280
|
+
content = content.slice(begin, end); ///
|
|
281
|
+
var type = _types.DELETE_TYPE, position = startPosition, deleteOperation = new DeleteOperation(type, content, position);
|
|
233
282
|
return deleteOperation;
|
|
234
283
|
}
|
|
235
284
|
}
|
|
@@ -237,4 +286,4 @@ var DeleteOperation = /*#__PURE__*/ function() {
|
|
|
237
286
|
return DeleteOperation;
|
|
238
287
|
}();
|
|
239
288
|
|
|
240
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcGVyYXRpb24vZGVsZXRlLmpzIiwiPDxqc3gtY29uZmlnLXByYWdtYS5qcz4+Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5cclxuaW1wb3J0IEVtcHR5T3BlcmF0aW9uIGZyb20gXCIuLi9vcGVyYXRpb24vZW1wdHlcIjtcclxuXHJcbmltcG9ydCB7IGluc2VydFR5cGUsIGRlbGV0ZVR5cGUsIGVtcHR5VHlwZSB9IGZyb20gXCIuLi90eXBlc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGVsZXRlT3BlcmF0aW9uIHtcclxuICBjb25zdHJ1Y3Rvcih0eXBlLCBsZW5ndGgsIHBvc2l0aW9uKSB7XHJcblx0ICB0aGlzLnR5cGUgPSB0eXBlO1xyXG4gICAgdGhpcy5sZW5ndGggPSBsZW5ndGg7XHJcbiAgICB0aGlzLnBvc2l0aW9uID0gcG9zaXRpb247XHJcbiAgfVxyXG5cclxuICBjbG9uZSgpIHtcclxuICAgIHJldHVybiBEZWxldGVPcGVyYXRpb24uZnJvbUxlbmd0aEFuZFBvc2l0aW9uKHRoaXMubGVuZ3RoLCB0aGlzLnBvc2l0aW9uKTtcclxuICB9XHJcblxyXG4gIHRyYW5zZm9ybU9wZXJhdGlvbihvcGVyYXRpb24pIHtcclxuICAgIHN3aXRjaCAob3BlcmF0aW9uLnR5cGUpIHtcclxuICAgICAgY2FzZSBpbnNlcnRUeXBlOlxyXG4gICAgICAgIHJldHVybiAoKHRhdSwgcmhvKSA9PiB7XHJcblxyXG4gICAgICAgICAgaWYgKHRhdS5wb3NpdGlvbiA8PSByaG8ucG9zaXRpb24pIHtcclxuICAgICAgICAgICAgcmV0dXJuIFt0YXUuY2xvbmUoKV07XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHRhdS5wb3NpdGlvbiA+IHJoby5wb3NpdGlvbikge1xyXG4gICAgICAgICAgICBpZiAodGF1LnBvc2l0aW9uIDwgcmhvLmxlbmd0aCArIHJoby5wb3NpdGlvbikge1xyXG4gICAgICAgICAgICAgIHJldHVybiBbdGF1LmxlZnQocmhvKS5zaGlmdCh0YXUpXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodGF1LnBvc2l0aW9uID49IHJoby5sZW5ndGggKyByaG8ucG9zaXRpb24pIHtcclxuICAgICAgICAgICAgICByZXR1cm4gW3Joby5zaGlmdCh0YXUpXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9KShvcGVyYXRpb24sIHRoaXMpO1xyXG5cclxuICAgICAgY2FzZSBkZWxldGVUeXBlOlxyXG4gICAgICAgIHJldHVybiAoKHRhdSwgcmhvKSA9PiB7XHJcblxyXG4gICAgICAgICAgaWYgKHRhdS5wb3NpdGlvbiA8IHJoby5wb3NpdGlvbikge1xyXG4gICAgICAgICAgICBpZiAodGF1Lmxlbmd0aCArIHRhdS5wb3NpdGlvbiA8PSByaG8ucG9zaXRpb24pIHtcclxuICAgICAgICAgICAgICByZXR1cm4gW3RhdS5jbG9uZSgpXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodGF1Lmxlbmd0aCArIHRhdS5wb3NpdGlvbiA8PSByaG8ubGVuZ3RoICsgcmhvLnBvc2l0aW9uKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIFtyaG8udGFrZW5Gcm9tKHRhdSldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0YXUubGVuZ3RoICsgdGF1LnBvc2l0aW9uID4gcmhvLmxlbmd0aCArIHJoby5wb3NpdGlvbikge1xyXG4gICAgICAgICAgICAgIHJldHVybiBbcmhvLnNwbGl0KHRhdSldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHRhdS5wb3NpdGlvbiA9PT0gcmhvLnBvc2l0aW9uKSB7XHJcbiAgICAgICAgICAgIGlmICh0YXUubGVuZ3RoICsgdGF1LnBvc2l0aW9uIDw9IHJoby5sZW5ndGggKyByaG8ucG9zaXRpb24pIHtcclxuICAgICAgICAgICAgICByZXR1cm4gW0VtcHR5T3BlcmF0aW9uLmZyb21Ob3RoaW5nKCldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0YXUubGVuZ3RoICsgdGF1LnBvc2l0aW9uID4gcmhvLmxlbmd0aCArIHJoby5wb3NpdGlvbikge1xyXG4gICAgICAgICAgICAgIHJldHVybiBbcmhvLnNoaWZ0KHJoby50YWtlbkZyb20odGF1KSldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHRhdS5wb3NpdGlvbiA+PSByaG8ubGVuZ3RoICsgcmhvLnBvc2l0aW9uKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBbcmhvLnNoaWZ0KHRhdSldO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmICh0YXUucG9zaXRpb24gPiByaG8ucG9zaXRpb24pIHtcclxuICAgICAgICAgICAgaWYgKHRhdS5sZW5ndGggKyB0YXUucG9zaXRpb24gPD0gcmhvLmxlbmd0aCArIHJoby5wb3NpdGlvbikge1xyXG4gICAgICAgICAgICAgIHJldHVybiBbRW1wdHlPcGVyYXRpb24uZnJvbU5vdGhpbmcoKV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHRhdS5sZW5ndGggKyB0YXUucG9zaXRpb24gPiByaG8ubGVuZ3RoICsgcmhvLnBvc2l0aW9uKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIFtyaG8uc2hpZnQocmhvLnRha2VuRnJvbSh0YXUpKV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSkob3BlcmF0aW9uLCB0aGlzKTtcclxuXHJcbiAgICAgIGNhc2UgZW1wdHlUeXBlOlxyXG4gICAgICAgIHJldHVybiAoKHRhdSwgcmhvKSA9PiB7XHJcblxyXG4gICAgICAgICAgcmV0dXJuIFt0YXUuY2xvbmUoKV07XHJcblxyXG4gICAgICAgIH0pKG9wZXJhdGlvbiwgdGhpcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0cmFuc2Zvcm1Db250ZW50KGNvbnRlbnQpIHtcclxuICAgIHJldHVybiBjb250ZW50LnN1YnN0cmluZygwLCB0aGlzLnBvc2l0aW9uKSArIGNvbnRlbnQuc3Vic3RyaW5nKHRoaXMubGVuZ3RoICsgdGhpcy5wb3NpdGlvbik7XHJcbiAgfVxyXG5cclxuICB0cmFuc2Zvcm1TZWxlY3Rpb24oc2VsZWN0aW9uKSB7XHJcbiAgICBsZXQgdHJhbnNmb3JtZWRTZWxlY3Rpb247XHJcblxyXG4gICAgY29uc3QgbGVuZ3RoID0gdGhpcy5sZW5ndGgsICAvLy9cclxuICAgICAgICAgIHN0YXJ0UG9zaXRpb24gPSB0aGlzLnBvc2l0aW9uLCAvLy9cclxuICAgICAgICAgIGVuZFBvc2l0aW9uID0gc3RhcnRQb3NpdGlvbiArIGxlbmd0aCxcclxuICAgICAgICAgIHNlbGVjdGlvblN0YXJ0UG9zaXRpb24gPSBzZWxlY3Rpb24uZ2V0U3RhcnRQb3NpdGlvbigpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uRW5kUG9zaXRpb24gPSBzZWxlY3Rpb24uZ2V0RW5kUG9zaXRpb24oKTtcclxuXHJcbiAgICBsZXQgb2Zmc2V0LFxyXG4gICAgICAgIGVuZE9mZnNldDtcclxuXHJcbiAgICBpZiAoZmFsc2UpIHtcclxuICAgICAgLy8vXHJcbiAgICB9IGVsc2UgaWYgKHNlbGVjdGlvblN0YXJ0UG9zaXRpb24gPj0gZW5kUG9zaXRpb24pIHtcclxuICAgICAgb2Zmc2V0ID0gLWxlbmd0aDtcclxuXHJcbiAgICAgIHRyYW5zZm9ybWVkU2VsZWN0aW9uID0gc2VsZWN0aW9uLnNoaWZ0ZWQob2Zmc2V0KTtcclxuICAgIH0gZWxzZSBpZiAoc2VsZWN0aW9uU3RhcnRQb3NpdGlvbiA+PSBzdGFydFBvc2l0aW9uKSB7XHJcbiAgICAgIGlmIChzZWxlY3Rpb25FbmRQb3NpdGlvbiA+IGVuZFBvc2l0aW9uKSB7XHJcbiAgICAgICAgb2Zmc2V0ID0gc3RhcnRQb3NpdGlvbiAtIHNlbGVjdGlvblN0YXJ0UG9zaXRpb247XHJcbiAgICAgICAgZW5kT2Zmc2V0ID0gc2VsZWN0aW9uU3RhcnRQb3NpdGlvbiAtIGVuZFBvc2l0aW9uO1xyXG5cclxuICAgICAgICB0cmFuc2Zvcm1lZFNlbGVjdGlvbiA9IHNlbGVjdGlvbi5zaGlmdGVkKG9mZnNldCkuZW5kUG9zaXRpb25TaGlmdGVkKGVuZE9mZnNldCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgU2VsZWN0aW9uID0gc2VsZWN0aW9uLmNvbnN0cnVjdG9yOyAgLy8vXHJcblxyXG4gICAgICAgIHRyYW5zZm9ybWVkU2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbihzdGFydFBvc2l0aW9uLCBzdGFydFBvc2l0aW9uKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChzZWxlY3Rpb25FbmRQb3NpdGlvbiA+IGVuZFBvc2l0aW9uKSB7XHJcbiAgICAgIGVuZE9mZnNldCA9IC1sZW5ndGg7XHJcblxyXG4gICAgICB0cmFuc2Zvcm1lZFNlbGVjdGlvbiA9IHNlbGVjdGlvbi5lbmRQb3NpdGlvblNoaWZ0ZWQoZW5kT2Zmc2V0KTtcclxuICAgIH0gZWxzZSBpZiAoc2VsZWN0aW9uRW5kUG9zaXRpb24gPiBzdGFydFBvc2l0aW9uKSB7XHJcbiAgICAgIGVuZE9mZnNldCA9IHN0YXJ0UG9zaXRpb24gLSBzZWxlY3Rpb25FbmRQb3NpdGlvbjtcclxuXHJcbiAgICAgIHRyYW5zZm9ybWVkU2VsZWN0aW9uID0gc2VsZWN0aW9uLmVuZFBvc2l0aW9uU2hpZnRlZChlbmRPZmZzZXQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdHJhbnNmb3JtZWRTZWxlY3Rpb24gPSBzZWxlY3Rpb24uY2xvbmUoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJhbnNmb3JtZWRTZWxlY3Rpb247XHJcbiAgfVxyXG5cclxuICBzaGlmdGVkKG9mZnNldCkge1xyXG4gICAgY29uc3QgbGVuZ3RoID0gdGhpcy5sZW5ndGgsXHJcbiAgICAgICAgICBwb3NpdGlvbiA9IHRoaXMucG9zaXRpb24gKyBvZmZzZXQsXHJcbiAgICAgICAgICBkZWxldGVPcGVyYXRpb24gPSBEZWxldGVPcGVyYXRpb24uZnJvbUxlbmd0aEFuZFBvc2l0aW9uKGxlbmd0aCwgcG9zaXRpb24pO1xyXG5cclxuICAgIHJldHVybiBkZWxldGVPcGVyYXRpb247XHJcbiAgfVxyXG5cclxuICBzaGlmdChvcGVyYXRpb24pIHtcclxuICAgIGNvbnN0IG9mZnNldCA9IC10aGlzLmxlbmd0aCxcclxuICAgICAgICAgIHNoaWZ0ZWRPcGVyYXRpb24gPSBvcGVyYXRpb24uc2hpZnRlZChvZmZzZXQpO1xyXG5cclxuICAgIHJldHVybiBzaGlmdGVkT3BlcmF0aW9uXHJcbiAgfVxyXG5cclxuICB0YWtlbkZyb20oZGVsZXRlT3BlcmF0aW9uKSB7XHJcbiAgICBsZXQgbGVuZ3RoID0gZGVsZXRlT3BlcmF0aW9uLmxlbmd0aCxcclxuICAgICAgICBwb3NpdGlvbiA9IGRlbGV0ZU9wZXJhdGlvbi5wb3NpdGlvbjtcclxuXHJcbiAgICBpZiAodGhpcy5wb3NpdGlvbiA+IHBvc2l0aW9uICYmIHRoaXMubGVuZ3RoICsgdGhpcy5wb3NpdGlvbiA+PSBsZW5ndGggKyBwb3NpdGlvbikge1xyXG4gICAgICBsZW5ndGggPSB0aGlzLnBvc2l0aW9uIC0gcG9zaXRpb247XHJcblxyXG4gICAgICBkZWxldGVPcGVyYXRpb24gPSBEZWxldGVPcGVyYXRpb24uZnJvbUxlbmd0aEFuZFBvc2l0aW9uKGxlbmd0aCwgcG9zaXRpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnBvc2l0aW9uIDw9IHBvc2l0aW9uICYmIHRoaXMubGVuZ3RoICsgdGhpcy5wb3NpdGlvbiA8IGxlbmd0aCArIHBvc2l0aW9uKSB7XHJcbiAgICAgIGxlbmd0aCA9IGxlbmd0aCArIHBvc2l0aW9uIC0gdGhpcy5wb3NpdGlvbiAtIHRoaXMubGVuZ3RoO1xyXG4gICAgICBwb3NpdGlvbiA9IHRoaXMubGVuZ3RoICsgdGhpcy5wb3NpdGlvbjtcclxuXHJcbiAgICAgIGRlbGV0ZU9wZXJhdGlvbiA9IERlbGV0ZU9wZXJhdGlvbi5mcm9tTGVuZ3RoQW5kUG9zaXRpb24obGVuZ3RoLCBwb3NpdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGRlbGV0ZU9wZXJhdGlvbjtcclxuICB9XHJcblxyXG4gIHNwbGl0KGRlbGV0ZU9wZXJhdGlvbikge1xyXG4gICAgbGV0IGxlbmd0aCA9IGRlbGV0ZU9wZXJhdGlvbi5sZW5ndGgsXHJcbiAgICAgICAgcG9zaXRpb24gPSBkZWxldGVPcGVyYXRpb24ucG9zaXRpb247XHJcblxyXG4gICAgbGVuZ3RoID0gbGVuZ3RoIC0gdGhpcy5sZW5ndGg7XHJcblxyXG4gICAgZGVsZXRlT3BlcmF0aW9uID0gRGVsZXRlT3BlcmF0aW9uLmZyb21MZW5ndGhBbmRQb3NpdGlvbihsZW5ndGgsIHBvc2l0aW9uKTtcclxuXHJcbiAgICByZXR1cm4gZGVsZXRlT3BlcmF0aW9uO1xyXG4gIH1cclxuXHJcbiAgdG9KU09OKCkge1xyXG4gICAgY29uc3QgdHlwZSA9IHRoaXMudHlwZSxcclxuICAgICAgICAgIGxlbmd0aCA9IHRoaXMubGVuZ3RoLFxyXG4gICAgICAgICAgcG9zaXRpb24gPSB0aGlzLnBvc2l0aW9uLFxyXG4gICAgICAgICAganNvbiA9IHtcclxuICAgICAgICAgICAgdHlwZSxcclxuICAgICAgICAgICAgbGVuZ3RoLFxyXG4gICAgICAgICAgICBwb3NpdGlvbixcclxuICAgICAgICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGpzb247XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZnJvbUpTT04oanNvbikge1xyXG4gICAgY29uc3QgeyB0eXBlLCBsZW5ndGgsIHBvc2l0aW9uIH0gPSBqc29uLFxyXG4gICAgICAgICAgZGVsZXRlT3BlcmF0aW9uID0gbmV3IERlbGV0ZU9wZXJhdGlvbih0eXBlLCBsZW5ndGgsIHBvc2l0aW9uKTtcclxuXHJcbiAgICByZXR1cm4gZGVsZXRlT3BlcmF0aW9uO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGZyb21MZW5ndGhBbmRQb3NpdGlvbihsZW5ndGgsIHBvc2l0aW9uKSB7XHJcbiAgICBjb25zdCB0eXBlID0gZGVsZXRlVHlwZSwgLy8vXHJcbiAgICAgICAgICBkZWxldGVPcGVyYXRpb24gPSBuZXcgRGVsZXRlT3BlcmF0aW9uKHR5cGUsIGxlbmd0aCwgcG9zaXRpb24pO1xyXG5cclxuICAgIHJldHVybiBkZWxldGVPcGVyYXRpb247XHJcbiAgfVxyXG59XHJcbiIsIlJlYWN0LmNyZWF0ZUVsZW1lbnQiXSwibmFtZXMiOlsiRGVsZXRlT3BlcmF0aW9uIiwidHlwZSIsImxlbmd0aCIsInBvc2l0aW9uIiwiY2xvbmUiLCJmcm9tTGVuZ3RoQW5kUG9zaXRpb24iLCJ0cmFuc2Zvcm1PcGVyYXRpb24iLCJvcGVyYXRpb24iLCJpbnNlcnRUeXBlIiwidGF1IiwicmhvIiwibGVmdCIsInNoaWZ0IiwiZGVsZXRlVHlwZSIsInRha2VuRnJvbSIsInNwbGl0IiwiRW1wdHlPcGVyYXRpb24iLCJmcm9tTm90aGluZyIsImVtcHR5VHlwZSIsInRyYW5zZm9ybUNvbnRlbnQiLCJjb250ZW50Iiwic3Vic3RyaW5nIiwidHJhbnNmb3JtU2VsZWN0aW9uIiwic2VsZWN0aW9uIiwidHJhbnNmb3JtZWRTZWxlY3Rpb24iLCJzdGFydFBvc2l0aW9uIiwiZW5kUG9zaXRpb24iLCJzZWxlY3Rpb25TdGFydFBvc2l0aW9uIiwiZ2V0U3RhcnRQb3NpdGlvbiIsInNlbGVjdGlvbkVuZFBvc2l0aW9uIiwiZ2V0RW5kUG9zaXRpb24iLCJvZmZzZXQiLCJlbmRPZmZzZXQiLCJzaGlmdGVkIiwiZW5kUG9zaXRpb25TaGlmdGVkIiwiU2VsZWN0aW9uIiwiY29uc3RydWN0b3IiLCJkZWxldGVPcGVyYXRpb24iLCJzaGlmdGVkT3BlcmF0aW9uIiwidG9KU09OIiwianNvbiIsImZyb21KU09OIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQU1xQkE7OzswREFKTTtxQkFFdUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbkMs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
|
|
289
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcGVyYXRpb24vZGVsZXRlLmpzIiwiPDxqc3gtY29uZmlnLXByYWdtYS5qcz4+Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5cclxuaW1wb3J0IEVtcHR5T3BlcmF0aW9uIGZyb20gXCIuLi9vcGVyYXRpb24vZW1wdHlcIjtcclxuXHJcbmltcG9ydCB7IElOU0VSVF9UWVBFLCBERUxFVEVfVFlQRSwgRU1QVFlfVFlQRSB9IGZyb20gXCIuLi90eXBlc1wiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGVsZXRlT3BlcmF0aW9uIHtcclxuICBjb25zdHJ1Y3Rvcih0eXBlLCBjb250ZW50LCBwb3NpdGlvbikge1xyXG5cdCAgdGhpcy50eXBlID0gdHlwZTtcclxuICAgIHRoaXMuY29udGVudCA9IGNvbnRlbnQ7XHJcbiAgICB0aGlzLnBvc2l0aW9uID0gcG9zaXRpb247XHJcbiAgfVxyXG5cclxuICBnZXRUeXBlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudHlwZTtcclxuICB9XHJcblxyXG4gIGdldENvbnRlbnQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250ZW50O1xyXG4gIH1cclxuXHJcbiAgZ2V0UG9zaXRpb24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wb3NpdGlvbjtcclxuICB9XHJcblxyXG4gIHRyYW5zZm9ybU9wZXJhdGlvbihvcGVyYXRpb24pIHtcclxuICAgIGNvbnN0IHR5cGUgPSBvcGVyYXRpb24uZ2V0VHlwZSgpO1xyXG5cclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlIElOU0VSVF9UWVBFOlxyXG4gICAgICAgIHJldHVybiAoKHRhdSwgcmhvKSA9PiB7XHJcblxyXG4gICAgICAgICAgaWYgKHRhdS5wb3NpdGlvbiA8PSByaG8ucG9zaXRpb24pIHtcclxuICAgICAgICAgICAgcmV0dXJuIFt0YXUuY2xvbmUoKV07XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHRhdS5wb3NpdGlvbiA+IHJoby5wb3NpdGlvbikge1xyXG4gICAgICAgICAgICBpZiAodGF1LnBvc2l0aW9uIDwgcmhvLmNvbnRlbnQubGVuZ3RoICsgcmhvLnBvc2l0aW9uKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIFt0YXUubGVmdChyaG8pLnNoaWZ0KHRhdSldO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodGF1LnBvc2l0aW9uID49IHJoby5jb250ZW50Lmxlbmd0aCArIHJoby5wb3NpdGlvbikge1xyXG4gICAgICAgICAgICAgIHJldHVybiBbcmhvLnNoaWZ0KHRhdSldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH0pKG9wZXJhdGlvbiwgdGhpcyk7XHJcblxyXG4gICAgICBjYXNlIERFTEVURV9UWVBFOlxyXG4gICAgICAgIHJldHVybiAoKHRhdSwgcmhvKSA9PiB7XHJcblxyXG4gICAgICAgICAgaWYgKHRhdS5wb3NpdGlvbiA8IHJoby5wb3NpdGlvbikge1xyXG4gICAgICAgICAgICBpZiAodGF1LmNvbnRlbnQubGVuZ3RoICsgdGF1LnBvc2l0aW9uIDw9IHJoby5wb3NpdGlvbikge1xyXG4gICAgICAgICAgICAgIHJldHVybiBbdGF1LmNsb25lKCldO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodGF1LmNvbnRlbnQubGVuZ3RoICsgdGF1LnBvc2l0aW9uIDw9IHJoby5jb250ZW50Lmxlbmd0aCArIHJoby5wb3NpdGlvbikge1xyXG4gICAgICAgICAgICAgIHJldHVybiBbcmhvLnRha2VuRnJvbSh0YXUpXTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHRhdS5jb250ZW50Lmxlbmd0aCArIHRhdS5wb3NpdGlvbiA+IHJoby5jb250ZW50Lmxlbmd0aCArIHJoby5wb3NpdGlvbikge1xyXG4gICAgICAgICAgICAgIHJldHVybiBbcmhvLnNwbGl0KHRhdSldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHRhdS5wb3NpdGlvbiA9PT0gcmhvLnBvc2l0aW9uKSB7XHJcbiAgICAgICAgICAgIGlmICh0YXUuY29udGVudC5sZW5ndGggKyB0YXUucG9zaXRpb24gPD0gcmhvLmNvbnRlbnQubGVuZ3RoICsgcmhvLnBvc2l0aW9uKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIFtFbXB0eU9wZXJhdGlvbi5mcm9tTm90aGluZygpXTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHRhdS5jb250ZW50Lmxlbmd0aCArIHRhdS5wb3NpdGlvbiA+IHJoby5jb250ZW50Lmxlbmd0aCArIHJoby5wb3NpdGlvbikge1xyXG4gICAgICAgICAgICAgIHJldHVybiBbcmhvLnNoaWZ0KHJoby50YWtlbkZyb20odGF1KSldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHRhdS5wb3NpdGlvbiA+PSByaG8uY29udGVudC5sZW5ndGggKyByaG8ucG9zaXRpb24pIHtcclxuICAgICAgICAgICAgcmV0dXJuIFtyaG8uc2hpZnQodGF1KV07XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHRhdS5wb3NpdGlvbiA+IHJoby5wb3NpdGlvbikge1xyXG4gICAgICAgICAgICBpZiAodGF1LmNvbnRlbnQubGVuZ3RoICsgdGF1LnBvc2l0aW9uIDw9IHJoby5jb250ZW50Lmxlbmd0aCArIHJoby5wb3NpdGlvbikge1xyXG4gICAgICAgICAgICAgIHJldHVybiBbRW1wdHlPcGVyYXRpb24uZnJvbU5vdGhpbmcoKV07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh0YXUuY29udGVudC5sZW5ndGggKyB0YXUucG9zaXRpb24gPiByaG8uY29udGVudC5sZW5ndGggKyByaG8ucG9zaXRpb24pIHtcclxuICAgICAgICAgICAgICByZXR1cm4gW3Joby5zaGlmdChyaG8udGFrZW5Gcm9tKHRhdSkpXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9KShvcGVyYXRpb24sIHRoaXMpO1xyXG5cclxuICAgICAgY2FzZSBFTVBUWV9UWVBFOlxyXG4gICAgICAgIHJldHVybiAoKHRhdSwgcmhvKSA9PiB7XHJcblxyXG4gICAgICAgICAgcmV0dXJuIFt0YXUuY2xvbmUoKV07XHJcblxyXG4gICAgICAgIH0pKG9wZXJhdGlvbiwgdGhpcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0cmFuc2Zvcm1Db250ZW50KGNvbnRlbnQpIHtcclxuICAgIGxldCBzdGFydCwgZW5kO1xyXG5cclxuICAgIHN0YXJ0ID0gMDtcclxuXHJcbiAgICBlbmQgPSB0aGlzLnBvc2l0aW9uO1xyXG5cclxuICAgIGNvbnN0IGxlZnRDb250ZW50ID0gY29udGVudC5zdWJzdHJpbmcoc3RhcnQsIGVuZCksXHJcbiAgICAgICAgICBjb250ZW50TGVuZ3RoID0gdGhpcy5jb250ZW50Lmxlbmd0aDtcclxuXHJcbiAgICBzdGFydCA9IHRoaXMucG9zaXRpb24gKyBjb250ZW50TGVuZ3RoO1xyXG5cclxuICAgIGNvbnN0IHJpZ2h0Q29udGVudCA9IGNvbnRlbnQuc3Vic3RyaW5nKHN0YXJ0KSxcclxuICAgICAgICAgIHRyYW5zZm9ybWVkQ29udGVudCA9IGxlZnRDb250ZW50ICsgcmlnaHRDb250ZW50O1xyXG5cclxuICAgIHJldHVybiB0cmFuc2Zvcm1lZENvbnRlbnQ7XHJcbiAgfVxyXG5cclxuICB0cmFuc2Zvcm1TZWxlY3Rpb24oc2VsZWN0aW9uKSB7XHJcbiAgICBsZXQgdHJhbnNmb3JtZWRTZWxlY3Rpb247XHJcblxyXG4gICAgY29uc3Qgc2VsZWN0aW9uU3RhcnRQb3NpdGlvbiA9IHNlbGVjdGlvbi5nZXRTdGFydFBvc2l0aW9uKCksXHJcbiAgICAgICAgICBzZWxlY3Rpb25FbmRQb3NpdGlvbiA9IHNlbGVjdGlvbi5nZXRFbmRQb3NpdGlvbigpLFxyXG4gICAgICAgICAgY29udGVudExlbmd0aCA9IHRoaXMuY29udGVudC5sZW5ndGgsXHJcbiAgICAgICAgICBzdGFydFBvc2l0aW9uID0gdGhpcy5wb3NpdGlvbiwgLy8vXHJcbiAgICAgICAgICBlbmRQb3NpdGlvbiA9IHN0YXJ0UG9zaXRpb24gKyBjb250ZW50TGVuZ3RoO1xyXG5cclxuICAgIGlmIChmYWxzZSkge1xyXG4gICAgICAvLy9cclxuICAgIH0gZWxzZSBpZiAoc2VsZWN0aW9uU3RhcnRQb3NpdGlvbiA+PSBlbmRQb3NpdGlvbikge1xyXG4gICAgICBjb25zdCBvZmZzZXQgPSAtY29udGVudExlbmd0aDtcclxuXHJcbiAgICAgIHRyYW5zZm9ybWVkU2VsZWN0aW9uID0gc2VsZWN0aW9uLnNoaWZ0ZWQob2Zmc2V0KTtcclxuICAgIH0gZWxzZSBpZiAoc2VsZWN0aW9uU3RhcnRQb3NpdGlvbiA+PSBzdGFydFBvc2l0aW9uKSB7XHJcbiAgICAgIGlmIChzZWxlY3Rpb25FbmRQb3NpdGlvbiA+IGVuZFBvc2l0aW9uKSB7XHJcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gc3RhcnRQb3NpdGlvbiAtIHNlbGVjdGlvblN0YXJ0UG9zaXRpb24sXHJcbiAgICAgICAgICAgICAgZW5kT2Zmc2V0ID0gc2VsZWN0aW9uU3RhcnRQb3NpdGlvbiAtIGVuZFBvc2l0aW9uO1xyXG5cclxuICAgICAgICB0cmFuc2Zvcm1lZFNlbGVjdGlvbiA9IHNlbGVjdGlvbi5zaGlmdGVkKG9mZnNldCkuZW5kUG9zaXRpb25TaGlmdGVkKGVuZE9mZnNldCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdHJhbnNmb3JtZWRTZWxlY3Rpb24gPSBzZWxlY3Rpb24uZW1wdGllZCgpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHNlbGVjdGlvbkVuZFBvc2l0aW9uID4gZW5kUG9zaXRpb24pIHtcclxuICAgICAgY29uc3QgZW5kT2Zmc2V0ID0gLWNvbnRlbnRMZW5ndGg7XHJcblxyXG4gICAgICB0cmFuc2Zvcm1lZFNlbGVjdGlvbiA9IHNlbGVjdGlvbi5lbmRQb3NpdGlvblNoaWZ0ZWQoZW5kT2Zmc2V0KTtcclxuICAgIH0gZWxzZSBpZiAoc2VsZWN0aW9uRW5kUG9zaXRpb24gPiBzdGFydFBvc2l0aW9uKSB7XHJcbiAgICAgIGNvbnN0IGVuZE9mZnNldCA9IHN0YXJ0UG9zaXRpb24gLSBzZWxlY3Rpb25FbmRQb3NpdGlvbjtcclxuXHJcbiAgICAgIHRyYW5zZm9ybWVkU2VsZWN0aW9uID0gc2VsZWN0aW9uLmVuZFBvc2l0aW9uU2hpZnRlZChlbmRPZmZzZXQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdHJhbnNmb3JtZWRTZWxlY3Rpb24gPSBzZWxlY3Rpb24uY2xvbmUoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJhbnNmb3JtZWRTZWxlY3Rpb247XHJcbiAgfVxyXG5cclxuICBzaGlmdGVkKG9mZnNldCkge1xyXG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuY29udGVudCxcclxuICAgICAgICAgIHBvc2l0aW9uID0gdGhpcy5wb3NpdGlvbiArIG9mZnNldCxcclxuICAgICAgICAgIGRlbGV0ZU9wZXJhdGlvbiA9IERlbGV0ZU9wZXJhdGlvbi5mcm9tQ29udGVudEFuZFBvc2l0aW9uKGNvbnRlbnQsIHBvc2l0aW9uKTtcclxuXHJcbiAgICByZXR1cm4gZGVsZXRlT3BlcmF0aW9uO1xyXG4gIH1cclxuXHJcbiAgc2hpZnQob3BlcmF0aW9uKSB7XHJcbiAgICBjb25zdCBjb250ZW50TGVuZ3RoID0gdGhpcy5jb250ZW50Lmxlbmd0aCxcclxuICAgICAgICAgIG9mZnNldCA9IC1jb250ZW50TGVuZ3RoLFxyXG4gICAgICAgICAgc2hpZnRlZE9wZXJhdGlvbiA9IG9wZXJhdGlvbi5zaGlmdGVkKG9mZnNldCk7XHJcblxyXG4gICAgcmV0dXJuIHNoaWZ0ZWRPcGVyYXRpb25cclxuICB9XHJcblxyXG4gIHRha2VuRnJvbShkZWxldGVPcGVyYXRpb24pIHtcclxuICAgIGxldCBjb250ZW50ID0gZGVsZXRlT3BlcmF0aW9uLmdldENvbnRlbnQoKSxcclxuICAgICAgICBwb3NpdGlvbiA9IGRlbGV0ZU9wZXJhdGlvbi5nZXRQb3NpdGlvbigpO1xyXG5cclxuICAgIGxldCBjb250ZW50TGVuZ3RoID0gY29udGVudC5sZW5ndGg7XHJcblxyXG4gICAgaWYgKCh0aGlzLnBvc2l0aW9uID4gcG9zaXRpb24pICYmICh0aGlzLnBvc2l0aW9uICsgdGhpcy5jb250ZW50Lmxlbmd0aCA+PSBwb3NpdGlvbiArIGNvbnRlbnRMZW5ndGgpKSB7XHJcbiAgICAgIGNvbnN0IGNvbnRlbnRMZW5ndGggPSB0aGlzLnBvc2l0aW9uIC0gcG9zaXRpb24sXHJcbiAgICAgICAgICAgIHN0YXJ0ID0gMCxcclxuICAgICAgICAgICAgZW5kID0gc3RhcnQgKyBjb250ZW50TGVuZ3RoOyAgLy8vXHJcblxyXG4gICAgICBjb250ZW50ID0gY29udGVudC5zdWJzdHJpbmcoc3RhcnQsIGVuZCk7XHJcblxyXG4gICAgICBkZWxldGVPcGVyYXRpb24gPSBEZWxldGVPcGVyYXRpb24uZnJvbUNvbnRlbnRBbmRQb3NpdGlvbihjb250ZW50LCBwb3NpdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCh0aGlzLnBvc2l0aW9uIDw9IHBvc2l0aW9uKSAmJiAodGhpcy5wb3NpdGlvbiArIHRoaXMuY29udGVudC5sZW5ndGggPCBwb3NpdGlvbiArIGNvbnRlbnRMZW5ndGgpKSB7XHJcbiAgICAgIGNvbnRlbnRMZW5ndGggPSAocG9zaXRpb24gKyBjb250ZW50TGVuZ3RoKSAtICh0aGlzLnBvc2l0aW9uICsgdGhpcy5jb250ZW50Lmxlbmd0aCk7XHJcblxyXG4gICAgICBjb25zdCBzdGFydCA9ICh0aGlzLnBvc2l0aW9uICsgdGhpcy5jb250ZW50Lmxlbmd0aCkgLSBwb3NpdGlvbixcclxuICAgICAgICAgICAgZW5kID0gc3RhcnQgKyBjb250ZW50TGVuZ3RoOyAgLy8vXHJcblxyXG4gICAgICBwb3NpdGlvbiA9IHRoaXMucG9zaXRpb24gKyB0aGlzLmNvbnRlbnQubGVuZ3RoO1xyXG5cclxuICAgICAgY29udGVudCA9IGNvbnRlbnQuc3Vic3RyaW5nKHN0YXJ0LCBlbmQpO1xyXG5cclxuICAgICAgZGVsZXRlT3BlcmF0aW9uID0gRGVsZXRlT3BlcmF0aW9uLmZyb21Db250ZW50QW5kUG9zaXRpb24oY29udGVudCwgcG9zaXRpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBkZWxldGVPcGVyYXRpb247XHJcbiAgfVxyXG5cclxuICBzcGxpdChkZWxldGVPcGVyYXRpb24pIHtcclxuICAgIGxldCBjb250ZW50ID0gZGVsZXRlT3BlcmF0aW9uLmdldENvbnRlbnQoKSxcclxuICAgICAgICBwb3NpdGlvbiA9IGRlbGV0ZU9wZXJhdGlvbi5nZXRQb3NpdGlvbigpO1xyXG5cclxuICAgIGxldCBzdGFydCxcclxuICAgICAgICBlbmQ7XHJcblxyXG4gICAgc3RhcnQgPSAwO1xyXG5cclxuICAgIGVuZCA9IHRoaXMucG9zaXRpb24gLSBwb3NpdGlvbjtcclxuXHJcbiAgICBjb25zdCBsZWZ0Q29udGVudCA9IGNvbnRlbnQuc3Vic3RyaW5nKHN0YXJ0LCBlbmQpO1xyXG5cclxuICAgIHN0YXJ0ID0gdGhpcy5wb3NpdGlvbiAtIHBvc2l0aW9uICsgdGhpcy5jb250ZW50Lmxlbmd0aDtcclxuXHJcbiAgICBjb25zdCByaWdodENvbnRlbnQgPSBjb250ZW50LnN1YnN0cmluZyhzdGFydCk7XHJcblxyXG4gICAgY29udGVudCA9IGxlZnRDb250ZW50ICsgcmlnaHRDb250ZW50O1xyXG5cclxuICAgIGRlbGV0ZU9wZXJhdGlvbiA9IERlbGV0ZU9wZXJhdGlvbi5mcm9tQ29udGVudEFuZFBvc2l0aW9uKGNvbnRlbnQsIHBvc2l0aW9uKTtcclxuXHJcbiAgICByZXR1cm4gZGVsZXRlT3BlcmF0aW9uO1xyXG4gIH1cclxuXHJcbiAgaW52ZXJ0KEluc2VydE9wZXJhdGlvbiwgRGVsZXRlT3BlcmF0aW9uKSB7XHJcbiAgICBjb25zdCBpbnNlcnRPcGVyYXRpb24gPSBJbnNlcnRPcGVyYXRpb24uZnJvbUNvbnRlbnRBbmRQb3NpdGlvbih0aGlzLmNvbnRlbnQsIHRoaXMucG9zaXRpb24pO1xyXG5cclxuICAgIHJldHVybiBpbnNlcnRPcGVyYXRpb247XHJcbiAgfVxyXG5cclxuICBjbG9uZSgpIHtcclxuICAgIGNvbnN0IGRlbGV0ZU9wZXJhdGlvbiA9IERlbGV0ZU9wZXJhdGlvbi5mcm9tQ29udGVudEFuZFBvc2l0aW9uKHRoaXMuY29udGVudCwgdGhpcy5wb3NpdGlvbik7XHJcblxyXG4gICAgcmV0dXJuIGRlbGV0ZU9wZXJhdGlvbjtcclxuICB9XHJcblxyXG4gIHRvSlNPTigpIHtcclxuICAgIGNvbnN0IHR5cGUgPSB0aGlzLnR5cGUsXHJcbiAgICAgICAgICBjb250ZW50ID0gdGhpcy5jb250ZW50LFxyXG4gICAgICAgICAgcG9zaXRpb24gPSB0aGlzLnBvc2l0aW9uLFxyXG4gICAgICAgICAganNvbiA9IHtcclxuICAgICAgICAgICAgdHlwZSxcclxuICAgICAgICAgICAgY29udGVudCxcclxuICAgICAgICAgICAgcG9zaXRpb24sXHJcbiAgICAgICAgICB9O1xyXG5cclxuICAgIHJldHVybiBqc29uO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGZyb21KU09OKGpzb24pIHtcclxuICAgIGNvbnN0IHsgdHlwZSwgY29udGVudCwgcG9zaXRpb24gfSA9IGpzb24sXHJcbiAgICAgICAgICBkZWxldGVPcGVyYXRpb24gPSBuZXcgRGVsZXRlT3BlcmF0aW9uKHR5cGUsIGNvbnRlbnQsIHBvc2l0aW9uKTtcclxuXHJcbiAgICByZXR1cm4gZGVsZXRlT3BlcmF0aW9uO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGZyb21Db250ZW50QW5kUG9zaXRpb24oY29udGVudCwgcG9zaXRpb24pIHtcclxuICAgIGNvbnN0IHR5cGUgPSBERUxFVEVfVFlQRSwgLy8vXHJcbiAgICAgICAgICBkZWxldGVPcGVyYXRpb24gPSBuZXcgRGVsZXRlT3BlcmF0aW9uKHR5cGUsIGNvbnRlbnQsIHBvc2l0aW9uKTtcclxuXHJcbiAgICByZXR1cm4gZGVsZXRlT3BlcmF0aW9uO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGZyb21Db250ZW50QW5kU2VsZWN0aW9uKGNvbnRlbnQsIHNlbGVjdGlvbikge1xyXG4gICAgY29uc3Qgc3RhcnRQb3NpdGlvbiA9IHNlbGVjdGlvbi5nZXRTdGFydFBvc2l0aW9uKCksXHJcbiAgICAgICAgICBlbmRQb3NpdGlvbiA9IHNlbGVjdGlvbi5nZXRFbmRQb3NpdGlvbigpLFxyXG4gICAgICAgICAgYmVnaW4gPSBzdGFydFBvc2l0aW9uLCAgLy8vXHJcbiAgICAgICAgICBlbmQgPSBlbmRQb3NpdGlvbjsgIC8vL1xyXG5cclxuICAgIGNvbnRlbnQgPSBjb250ZW50LnNsaWNlKGJlZ2luLCBlbmQpOyAgLy8vXHJcblxyXG4gICAgY29uc3QgdHlwZSA9IERFTEVURV9UWVBFLCAvLy9cclxuICAgICAgICAgIHBvc2l0aW9uID0gc3RhcnRQb3NpdGlvbiwgLy8vXHJcbiAgICAgICAgICBkZWxldGVPcGVyYXRpb24gPSBuZXcgRGVsZXRlT3BlcmF0aW9uKHR5cGUsIGNvbnRlbnQsIHBvc2l0aW9uKTtcclxuXHJcbiAgICByZXR1cm4gZGVsZXRlT3BlcmF0aW9uO1xyXG4gIH1cclxufVxyXG4iLCJSZWFjdC5jcmVhdGVFbGVtZW50Il0sIm5hbWVzIjpbIkRlbGV0ZU9wZXJhdGlvbiIsInR5cGUiLCJjb250ZW50IiwicG9zaXRpb24iLCJnZXRUeXBlIiwiZ2V0Q29udGVudCIsImdldFBvc2l0aW9uIiwidHJhbnNmb3JtT3BlcmF0aW9uIiwib3BlcmF0aW9uIiwiSU5TRVJUX1RZUEUiLCJ0YXUiLCJyaG8iLCJjbG9uZSIsImxlbmd0aCIsImxlZnQiLCJzaGlmdCIsIkRFTEVURV9UWVBFIiwidGFrZW5Gcm9tIiwic3BsaXQiLCJFbXB0eU9wZXJhdGlvbiIsImZyb21Ob3RoaW5nIiwiRU1QVFlfVFlQRSIsInRyYW5zZm9ybUNvbnRlbnQiLCJzdGFydCIsImVuZCIsImxlZnRDb250ZW50Iiwic3Vic3RyaW5nIiwiY29udGVudExlbmd0aCIsInJpZ2h0Q29udGVudCIsInRyYW5zZm9ybWVkQ29udGVudCIsInRyYW5zZm9ybVNlbGVjdGlvbiIsInNlbGVjdGlvbiIsInRyYW5zZm9ybWVkU2VsZWN0aW9uIiwic2VsZWN0aW9uU3RhcnRQb3NpdGlvbiIsImdldFN0YXJ0UG9zaXRpb24iLCJzZWxlY3Rpb25FbmRQb3NpdGlvbiIsImdldEVuZFBvc2l0aW9uIiwic3RhcnRQb3NpdGlvbiIsImVuZFBvc2l0aW9uIiwib2Zmc2V0Iiwic2hpZnRlZCIsImVuZE9mZnNldCIsImVuZFBvc2l0aW9uU2hpZnRlZCIsImVtcHRpZWQiLCJkZWxldGVPcGVyYXRpb24iLCJmcm9tQ29udGVudEFuZFBvc2l0aW9uIiwic2hpZnRlZE9wZXJhdGlvbiIsImludmVydCIsIkluc2VydE9wZXJhdGlvbiIsImluc2VydE9wZXJhdGlvbiIsInRvSlNPTiIsImpzb24iLCJmcm9tSlNPTiIsImZyb21Db250ZW50QW5kU2VsZWN0aW9uIiwiYmVnaW4iLCJzbGljZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFNcUJBOzs7MERBSk07cUJBRTBCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXRDLElBQUEsQUFBTUEsZ0NBQU47YUFBTUEsZ0JBQ1BDLElBQUksRUFBRUMsT0FBTyxFQUFFQyxRQUFROzhCQURoQkg7UUFFbEIsSUFBSSxDQUFDQyxJQUFJLEdBQUdBO1FBQ1gsSUFBSSxDQUFDQyxPQUFPLEdBQUdBO1FBQ2YsSUFBSSxDQUFDQyxRQUFRLEdBQUdBOztpQkFKQ0g7O1lBT25CSSxLQUFBQTttQkFBQUEsU0FBQUEsVUFBVTtnQkFDUixPQUFPLElBQUksQ0FBQ0gsSUFBSTtZQUNsQjs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQSxhQUFhO2dCQUNYLE9BQU8sSUFBSSxDQUFDSCxPQUFPO1lBQ3JCOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBLGNBQWM7Z0JB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
|