occam-dom 5.0.14 → 5.1.1
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 +576 -3
- package/lib/index.js +5 -1
- package/lib/node.js +74 -3
- package/lib/transform.js +262 -0
- package/lib/utilities/transform.js +195 -0
- package/package.json +1 -1
- package/src/index.js +1 -0
- package/src/node.js +4 -4
- package/src/transform.js +184 -0
- package/src/utilities/transform.js +173 -0
package/lib/index.js
CHANGED
|
@@ -12,11 +12,15 @@ _export(exports, {
|
|
|
12
12
|
Node: function() {
|
|
13
13
|
return _node.default;
|
|
14
14
|
},
|
|
15
|
+
Transform: function() {
|
|
16
|
+
return _transform.default;
|
|
17
|
+
},
|
|
15
18
|
nodeUtilities: function() {
|
|
16
19
|
return _node1.default;
|
|
17
20
|
}
|
|
18
21
|
});
|
|
19
22
|
var _node = /*#__PURE__*/ _interop_require_default(require("./node"));
|
|
23
|
+
var _transform = /*#__PURE__*/ _interop_require_default(require("./transform"));
|
|
20
24
|
var _node1 = /*#__PURE__*/ _interop_require_default(require("./utilities/node"));
|
|
21
25
|
function _interop_require_default(obj) {
|
|
22
26
|
return obj && obj.__esModule ? obj : {
|
|
@@ -24,4 +28,4 @@ function _interop_require_default(obj) {
|
|
|
24
28
|
};
|
|
25
29
|
}
|
|
26
30
|
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBOb2RlIH0gZnJvbSBcIi4vbm9kZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUcmFuc2Zvcm0gfSBmcm9tIFwiLi90cmFuc2Zvcm1cIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgbm9kZVV0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9ub2RlXCI7XG4iXSwibmFtZXMiOlsiTm9kZSIsIlRyYW5zZm9ybSIsIm5vZGVVdGlsaXRpZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQUVvQkEsSUFBSTtlQUFKQSxhQUFJOztJQUNKQyxTQUFTO2VBQVRBLGtCQUFTOztJQUNUQyxhQUFhO2VBQWJBLGNBQWE7OzsyREFGRDtnRUFDSzs0REFDSSJ9
|
package/lib/node.js
CHANGED
|
@@ -11,11 +11,36 @@ Object.defineProperty(exports, "default", {
|
|
|
11
11
|
var _occamparsers = require("occam-parsers");
|
|
12
12
|
var _node = /*#__PURE__*/ _interop_require_default(require("./parseTree/node"));
|
|
13
13
|
var _constants = require("./constants");
|
|
14
|
+
function _array_like_to_array(arr, len) {
|
|
15
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
16
|
+
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
17
|
+
return arr2;
|
|
18
|
+
}
|
|
19
|
+
function _array_without_holes(arr) {
|
|
20
|
+
if (Array.isArray(arr)) return _array_like_to_array(arr);
|
|
21
|
+
}
|
|
14
22
|
function _class_call_check(instance, Constructor) {
|
|
15
23
|
if (!(instance instanceof Constructor)) {
|
|
16
24
|
throw new TypeError("Cannot call a class as a function");
|
|
17
25
|
}
|
|
18
26
|
}
|
|
27
|
+
function _construct(Parent, args, Class) {
|
|
28
|
+
if (_is_native_reflect_construct()) {
|
|
29
|
+
_construct = Reflect.construct;
|
|
30
|
+
} else {
|
|
31
|
+
_construct = function construct(Parent, args, Class) {
|
|
32
|
+
var a = [
|
|
33
|
+
null
|
|
34
|
+
];
|
|
35
|
+
a.push.apply(a, args);
|
|
36
|
+
var Constructor = Function.bind.apply(Parent, a);
|
|
37
|
+
var instance = new Constructor();
|
|
38
|
+
if (Class) _set_prototype_of(instance, Class.prototype);
|
|
39
|
+
return instance;
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
return _construct.apply(null, arguments);
|
|
43
|
+
}
|
|
19
44
|
function _defineProperties(target, props) {
|
|
20
45
|
for(var i = 0; i < props.length; i++){
|
|
21
46
|
var descriptor = props[i];
|
|
@@ -57,6 +82,19 @@ function _interop_require_default(obj) {
|
|
|
57
82
|
default: obj
|
|
58
83
|
};
|
|
59
84
|
}
|
|
85
|
+
function _iterable_to_array(iter) {
|
|
86
|
+
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
87
|
+
}
|
|
88
|
+
function _non_iterable_spread() {
|
|
89
|
+
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
90
|
+
}
|
|
91
|
+
function _set_prototype_of(o, p) {
|
|
92
|
+
_set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
|
|
93
|
+
o.__proto__ = p;
|
|
94
|
+
return o;
|
|
95
|
+
};
|
|
96
|
+
return _set_prototype_of(o, p);
|
|
97
|
+
}
|
|
60
98
|
function _super_prop_base(object, property) {
|
|
61
99
|
while(!Object.prototype.hasOwnProperty.call(object, property)){
|
|
62
100
|
object = _get_prototype_of(object);
|
|
@@ -64,6 +102,25 @@ function _super_prop_base(object, property) {
|
|
|
64
102
|
}
|
|
65
103
|
return object;
|
|
66
104
|
}
|
|
105
|
+
function _to_consumable_array(arr) {
|
|
106
|
+
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
|
107
|
+
}
|
|
108
|
+
function _unsupported_iterable_to_array(o, minLen) {
|
|
109
|
+
if (!o) return;
|
|
110
|
+
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
111
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
112
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
113
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
|
114
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
115
|
+
}
|
|
116
|
+
function _is_native_reflect_construct() {
|
|
117
|
+
try {
|
|
118
|
+
var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
|
|
119
|
+
} catch (_) {}
|
|
120
|
+
return (_is_native_reflect_construct = function() {
|
|
121
|
+
return !!result;
|
|
122
|
+
})();
|
|
123
|
+
}
|
|
67
124
|
var Node = /*#__PURE__*/ function() {
|
|
68
125
|
function Node(outerNode, parentNode, childNodes) {
|
|
69
126
|
_class_call_check(this, Node);
|
|
@@ -144,21 +201,35 @@ var Node = /*#__PURE__*/ function() {
|
|
|
144
201
|
{
|
|
145
202
|
key: "fromNothing",
|
|
146
203
|
value: function fromNothing(Class) {
|
|
204
|
+
for(var _len = arguments.length, remainingArguments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
|
|
205
|
+
remainingArguments[_key - 1] = arguments[_key];
|
|
206
|
+
}
|
|
147
207
|
if (Class === undefined) {
|
|
148
208
|
Class = Node; ///
|
|
149
209
|
}
|
|
150
|
-
var outerNode = null, parentNode = null, childNodes = [], node =
|
|
210
|
+
var outerNode = null, parentNode = null, childNodes = [], node = _construct(Class, [
|
|
211
|
+
outerNode,
|
|
212
|
+
parentNode,
|
|
213
|
+
childNodes
|
|
214
|
+
].concat(_to_consumable_array(remainingArguments)));
|
|
151
215
|
return node;
|
|
152
216
|
}
|
|
153
217
|
},
|
|
154
218
|
{
|
|
155
219
|
key: "fromOuterNode",
|
|
156
220
|
value: function fromOuterNode(Class, outerNode) {
|
|
221
|
+
for(var _len = arguments.length, remainingArguments = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
|
|
222
|
+
remainingArguments[_key - 2] = arguments[_key];
|
|
223
|
+
}
|
|
157
224
|
if (outerNode === undefined) {
|
|
158
225
|
outerNode = Class; ///
|
|
159
226
|
Class = Node; ///
|
|
160
227
|
}
|
|
161
|
-
var parentNode = null, childNodes = [], node =
|
|
228
|
+
var parentNode = null, childNodes = [], node = _construct(Class, [
|
|
229
|
+
outerNode,
|
|
230
|
+
parentNode,
|
|
231
|
+
childNodes
|
|
232
|
+
].concat(_to_consumable_array(remainingArguments)));
|
|
162
233
|
return node;
|
|
163
234
|
}
|
|
164
235
|
}
|
|
@@ -167,4 +238,4 @@ var Node = /*#__PURE__*/ function() {
|
|
|
167
238
|
}();
|
|
168
239
|
Object.assign(Node.prototype, _occamparsers.nodeMixins);
|
|
169
240
|
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
241
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub2RlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBub2RlTWl4aW5zIH0gZnJvbSBcIm9jY2FtLXBhcnNlcnNcIjtcblxuaW1wb3J0IE5vZGVQYXJzZVRyZWUgZnJvbSBcIi4vcGFyc2VUcmVlL25vZGVcIjtcblxuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5vZGUge1xuICBjb25zdHJ1Y3RvcihvdXRlck5vZGUsIHBhcmVudE5vZGUsIGNoaWxkTm9kZXMpIHtcbiAgICB0aGlzLm91dGVyTm9kZSA9IG91dGVyTm9kZTtcbiAgICB0aGlzLnBhcmVudE5vZGUgPSBwYXJlbnROb2RlO1xuICAgIHRoaXMuY2hpbGROb2RlcyA9IGNoaWxkTm9kZXM7XG4gIH1cblxuICBnZXRPdXRlck5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMub3V0ZXJOb2RlO1xuICB9XG5cbiAgZ2V0UGFyZW50Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnROb2RlO1xuICB9XG5cbiAgZ2V0Q2hpbGROb2RlcygpIHtcbiAgICByZXR1cm4gdGhpcy5jaGlsZE5vZGVzO1xuICB9XG5cbiAgc2V0T3V0ZXJOb2RlKG91dGVyTm9kZSkge1xuICAgIHRoaXMub3V0ZXJOb2RlID0gb3V0ZXJOb2RlO1xuICB9XG5cbiAgc2V0UGFyZW50Tm9kZShwYXJlbnROb2RlKSB7XG4gICAgdGhpcy5wYXJlbnROb2RlID0gcGFyZW50Tm9kZTtcbiAgfVxuXG4gIHNldENoaWxkTm9kZXMoY2hpbGROb2Rlcykge1xuICAgIGNvbnN0IHN0YXJ0SW5kZXggPSAwLFxuICAgICAgICAgIGRlbGV0ZUNvdW50ID0gSW5maW5pdHksXG4gICAgICAgICAgYWRkZWRDaGlsZE5vZGVzID0gY2hpbGROb2RlczsgIC8vL1xuXG4gICAgdGhpcy5zcGxpY2VDaGlsZE5vZGVzKHN0YXJ0SW5kZXgsIGRlbGV0ZUNvdW50LCBhZGRlZENoaWxkTm9kZXMpO1xuICB9XG5cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLm91dGVyTm9kZSA9IG51bGw7XG5cbiAgICBzdXBlci5kZXN0cm95KCk7XG4gIH1cblxuICBhc1N0cmluZygpIHtcbiAgICBsZXQgc3RyaW5nID0gRU1QVFlfU1RSSU5HO1xuXG4gICAgaWYgKHRoaXMub3V0ZXJOb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBub2RlVGVybWluYWxOb2RlID0gdGhpcy5vdXRlck5vZGUuaXNUZXJtaW5hbE5vZGUoKTtcblxuICAgICAgaWYgKG5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICAgICAgY29uc3QgdGVybWluYWxOb2RlID0gdGhpcy5vdXRlck5vZGUsXG4gICAgICAgICAgICAgIHR5cGUgPSB0ZXJtaW5hbE5vZGUuZ2V0VHlwZSgpLFxuICAgICAgICAgICAgICBjb250ZW50ID0gdGVybWluYWxOb2RlLmdldENvbnRlbnQoKTtcblxuICAgICAgICBzdHJpbmcgPSBgXCIke2NvbnRlbnR9XCIgWyR7dHlwZX1dYDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IHRoaXMub3V0ZXJOb2RlLFxuICAgICAgICAgICAgICBydWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpO1xuXG4gICAgICAgIHN0cmluZyA9IHJ1bGVOYW1lOyAgLy8vXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIGFzUGFyc2VUcmVlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLCAgLy8vXG4gICAgICAgICAgbm9kZVBhcnNlVHJlZSA9IE5vZGVQYXJzZVRyZWUuZnJvbU5vZGUobm9kZSksXG4gICAgICAgICAgcGFyc2VUcmVlID0gbm9kZVBhcnNlVHJlZTsgIC8vL1xuXG4gICAgcmV0dXJuIHBhcnNlVHJlZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm90aGluZyhDbGFzcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgaWYgKENsYXNzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIENsYXNzID0gTm9kZTsgLy8vXG4gICAgfVxuXG4gICAgY29uc3Qgb3V0ZXJOb2RlID0gbnVsbCxcbiAgICAgICAgICBwYXJlbnROb2RlID0gbnVsbCxcbiAgICAgICAgICBjaGlsZE5vZGVzID0gW10sXG4gICAgICAgICAgbm9kZSA9IG5ldyBDbGFzcyhvdXRlck5vZGUsIHBhcmVudE5vZGUsIGNoaWxkTm9kZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tT3V0ZXJOb2RlKENsYXNzLCBvdXRlck5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGlmIChvdXRlck5vZGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgb3V0ZXJOb2RlID0gQ2xhc3M7ICAvLy9cblxuICAgICAgQ2xhc3MgPSBOb2RlOyAvLy9cbiAgICB9XG5cbiAgICBjb25zdCBwYXJlbnROb2RlID0gbnVsbCxcbiAgICAgICAgICBjaGlsZE5vZGVzID0gW10sXG4gICAgICAgICAgbm9kZSA9IG5ldyBDbGFzcyhvdXRlck5vZGUsIHBhcmVudE5vZGUsIGNoaWxkTm9kZXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxufVxuXG5PYmplY3QuYXNzaWduKE5vZGUucHJvdG90eXBlLCBub2RlTWl4aW5zKTtcbiJdLCJuYW1lcyI6WyJOb2RlIiwib3V0ZXJOb2RlIiwicGFyZW50Tm9kZSIsImNoaWxkTm9kZXMiLCJnZXRPdXRlck5vZGUiLCJnZXRQYXJlbnROb2RlIiwiZ2V0Q2hpbGROb2RlcyIsInNldE91dGVyTm9kZSIsInNldFBhcmVudE5vZGUiLCJzZXRDaGlsZE5vZGVzIiwic3RhcnRJbmRleCIsImRlbGV0ZUNvdW50IiwiSW5maW5pdHkiLCJhZGRlZENoaWxkTm9kZXMiLCJzcGxpY2VDaGlsZE5vZGVzIiwiZGVzdHJveSIsImFzU3RyaW5nIiwic3RyaW5nIiwiRU1QVFlfU1RSSU5HIiwibm9kZVRlcm1pbmFsTm9kZSIsImlzVGVybWluYWxOb2RlIiwidGVybWluYWxOb2RlIiwidHlwZSIsImdldFR5cGUiLCJjb250ZW50IiwiZ2V0Q29udGVudCIsIm5vblRlcm1pbmFsTm9kZSIsInJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJhc1BhcnNlVHJlZSIsIm5vZGUiLCJub2RlUGFyc2VUcmVlIiwiTm9kZVBhcnNlVHJlZSIsImZyb21Ob2RlIiwicGFyc2VUcmVlIiwiZnJvbU5vdGhpbmciLCJDbGFzcyIsInJlbWFpbmluZ0FyZ3VtZW50cyIsInVuZGVmaW5lZCIsImZyb21PdXRlck5vZGUiLCJPYmplY3QiLCJhc3NpZ24iLCJwcm90b3R5cGUiLCJub2RlTWl4aW5zIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQVFxQkE7Ozs0QkFOTTsyREFFRDt5QkFFRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWQsSUFBQSxBQUFNQSxxQkFBTjthQUFNQSxLQUNQQyxTQUFTLEVBQUVDLFVBQVUsRUFBRUMsVUFBVTtnQ0FEMUJIO1FBRWpCLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtRQUNqQixJQUFJLENBQUNDLFVBQVUsR0FBR0E7UUFDbEIsSUFBSSxDQUFDQyxVQUFVLEdBQUdBOztrQkFKREg7O1lBT25CSSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNILFNBQVM7WUFDdkI7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNILFVBQVU7WUFDeEI7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNILFVBQVU7WUFDeEI7OztZQUVBSSxLQUFB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
|
package/lib/transform.js
ADDED
|
@@ -0,0 +1,262 @@
|
|
|
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 Transform;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _necessary = require("necessary");
|
|
12
|
+
var _transform = require("./utilities/transform");
|
|
13
|
+
function _array_like_to_array(arr, len) {
|
|
14
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
15
|
+
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
16
|
+
return arr2;
|
|
17
|
+
}
|
|
18
|
+
function _array_without_holes(arr) {
|
|
19
|
+
if (Array.isArray(arr)) return _array_like_to_array(arr);
|
|
20
|
+
}
|
|
21
|
+
function _class_call_check(instance, Constructor) {
|
|
22
|
+
if (!(instance instanceof Constructor)) {
|
|
23
|
+
throw new TypeError("Cannot call a class as a function");
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function _construct(Parent, args, Class) {
|
|
27
|
+
if (_is_native_reflect_construct()) {
|
|
28
|
+
_construct = Reflect.construct;
|
|
29
|
+
} else {
|
|
30
|
+
_construct = function construct(Parent, args, Class) {
|
|
31
|
+
var a = [
|
|
32
|
+
null
|
|
33
|
+
];
|
|
34
|
+
a.push.apply(a, args);
|
|
35
|
+
var Constructor = Function.bind.apply(Parent, a);
|
|
36
|
+
var instance = new Constructor();
|
|
37
|
+
if (Class) _set_prototype_of(instance, Class.prototype);
|
|
38
|
+
return instance;
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
return _construct.apply(null, arguments);
|
|
42
|
+
}
|
|
43
|
+
function _defineProperties(target, props) {
|
|
44
|
+
for(var i = 0; i < props.length; i++){
|
|
45
|
+
var descriptor = props[i];
|
|
46
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
47
|
+
descriptor.configurable = true;
|
|
48
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
49
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
function _create_class(Constructor, protoProps, staticProps) {
|
|
53
|
+
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
54
|
+
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
55
|
+
return Constructor;
|
|
56
|
+
}
|
|
57
|
+
function _iterable_to_array(iter) {
|
|
58
|
+
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
59
|
+
}
|
|
60
|
+
function _non_iterable_spread() {
|
|
61
|
+
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
62
|
+
}
|
|
63
|
+
function _set_prototype_of(o, p) {
|
|
64
|
+
_set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
|
|
65
|
+
o.__proto__ = p;
|
|
66
|
+
return o;
|
|
67
|
+
};
|
|
68
|
+
return _set_prototype_of(o, p);
|
|
69
|
+
}
|
|
70
|
+
function _to_consumable_array(arr) {
|
|
71
|
+
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
|
72
|
+
}
|
|
73
|
+
function _unsupported_iterable_to_array(o, minLen) {
|
|
74
|
+
if (!o) return;
|
|
75
|
+
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
76
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
77
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
78
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
|
79
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
80
|
+
}
|
|
81
|
+
function _is_native_reflect_construct() {
|
|
82
|
+
try {
|
|
83
|
+
var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
|
|
84
|
+
} catch (_) {}
|
|
85
|
+
return (_is_native_reflect_construct = function() {
|
|
86
|
+
return !!result;
|
|
87
|
+
})();
|
|
88
|
+
}
|
|
89
|
+
var push = _necessary.arrayUtilities.push;
|
|
90
|
+
var Transform = /*#__PURE__*/ function() {
|
|
91
|
+
function Transform(node, tokens) {
|
|
92
|
+
_class_call_check(this, Transform);
|
|
93
|
+
this.node = node;
|
|
94
|
+
this.tokens = tokens;
|
|
95
|
+
}
|
|
96
|
+
_create_class(Transform, [
|
|
97
|
+
{
|
|
98
|
+
key: "getNode",
|
|
99
|
+
value: function getNode() {
|
|
100
|
+
return this.node;
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
key: "getTokens",
|
|
105
|
+
value: function getTokens() {
|
|
106
|
+
var tokens = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
|
|
107
|
+
push(tokens, this.tokens);
|
|
108
|
+
return this.tokens;
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
key: "contract",
|
|
113
|
+
value: function contract(Class, descendentNode) {
|
|
114
|
+
for(var _len = arguments.length, remainingArguments = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
|
|
115
|
+
remainingArguments[_key - 2] = arguments[_key];
|
|
116
|
+
}
|
|
117
|
+
var _Class;
|
|
118
|
+
if (descendentNode === undefined) {
|
|
119
|
+
descendentNode = Class; ///
|
|
120
|
+
Class = Transform; ///
|
|
121
|
+
}
|
|
122
|
+
var node = descendentNode, tokens = this.tokens, context = {
|
|
123
|
+
tokens: tokens
|
|
124
|
+
}, transform = (_Class = Class).fromNode.apply(_Class, [
|
|
125
|
+
node
|
|
126
|
+
].concat(_to_consumable_array(remainingArguments), [
|
|
127
|
+
context
|
|
128
|
+
]));
|
|
129
|
+
return transform;
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
key: "expand",
|
|
134
|
+
value: function expand(Class, ascendantNode) {
|
|
135
|
+
for(var _len = arguments.length, remainingArguments = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
|
|
136
|
+
remainingArguments[_key - 2] = arguments[_key];
|
|
137
|
+
}
|
|
138
|
+
var _Class;
|
|
139
|
+
if (ascendantNode === undefined) {
|
|
140
|
+
ascendantNode = Class;
|
|
141
|
+
Class = Transform; ///
|
|
142
|
+
}
|
|
143
|
+
var node = ascendantNode, tokens = this.tokens, context = {
|
|
144
|
+
tokens: tokens
|
|
145
|
+
}, transform = (_Class = Class).fromNode.apply(_Class, [
|
|
146
|
+
node
|
|
147
|
+
].concat(_to_consumable_array(remainingArguments), [
|
|
148
|
+
context
|
|
149
|
+
]));
|
|
150
|
+
return transform;
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
key: "appendTo",
|
|
155
|
+
value: function appendTo(parentNode, context) {
|
|
156
|
+
var tokens = context.tokens, appendedNode = this.node, appendedTokens = this.tokens; ///
|
|
157
|
+
(0, _transform.appendNode)(appendedNode, parentNode);
|
|
158
|
+
(0, _transform.appendTokens)(appendedTokens, parentNode, tokens);
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
key: "prependTo",
|
|
163
|
+
value: function prependTo(parentNode, context) {
|
|
164
|
+
var tokens = context.tokens, prependedNode = this.node, prependedTokens = this.tokens; ///
|
|
165
|
+
(0, _transform.prependNode)(prependedNode, parentNode);
|
|
166
|
+
(0, _transform.prependTokens)(prependedTokens, parentNode, tokens);
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
key: "addAfter",
|
|
171
|
+
value: function addAfter(existingNode, parentNode, context) {
|
|
172
|
+
var tokens = context.tokens, markdownNode = this.node, removedChildNodes = markdownNode.removeChildNodes(), addedTokens = this.tokens, addedNodes = removedChildNodes; ///
|
|
173
|
+
(0, _transform.addNodesAfter)(existingNode, addedNodes, parentNode);
|
|
174
|
+
(0, _transform.addTokensAfter)(existingNode, addedTokens, tokens);
|
|
175
|
+
}
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
key: "replace",
|
|
179
|
+
value: function replace(replacedNode, parentNode, context) {
|
|
180
|
+
var tokens = context.tokens, replacementNode = this.node, replacementTokens = this.tokens; ///
|
|
181
|
+
(0, _transform.replaceNode)(replacementNode, replacedNode, parentNode);
|
|
182
|
+
(0, _transform.replaceTokens)(replacementTokens, replacedNode, tokens);
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
key: "removeFrom",
|
|
187
|
+
value: function removeFrom(removedNode, parentNode, context) {
|
|
188
|
+
var tokens = context.tokens;
|
|
189
|
+
(0, _transform.removeTokens)(removedNode, tokens);
|
|
190
|
+
(0, _transform.removeNode)(removedNode, parentNode);
|
|
191
|
+
}
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
key: "clone",
|
|
195
|
+
value: function clone() {
|
|
196
|
+
for(var _len = arguments.length, remainingArguments = new Array(_len), _key = 0; _key < _len; _key++){
|
|
197
|
+
remainingArguments[_key] = arguments[_key];
|
|
198
|
+
}
|
|
199
|
+
var clonedNode = this.node.clone(), clonedTokens = (0, _transform.clonedTokensFromNodeAndTokens)(this.node, this.tokens);
|
|
200
|
+
(0, _transform.overwriteClonedNodeTokens)(clonedNode, clonedTokens, this.tokens);
|
|
201
|
+
var Class = this.constructor, node = clonedNode, tokens = clonedTokens, transform = _construct(Class, [
|
|
202
|
+
node,
|
|
203
|
+
tokens
|
|
204
|
+
].concat(_to_consumable_array(remainingArguments)));
|
|
205
|
+
return transform;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
], [
|
|
209
|
+
{
|
|
210
|
+
key: "fromNode",
|
|
211
|
+
value: function fromNode(Class, node) {
|
|
212
|
+
for(var _len = arguments.length, remainingArguments = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
|
|
213
|
+
remainingArguments[_key - 2] = arguments[_key];
|
|
214
|
+
}
|
|
215
|
+
var context = remainingArguments.pop();
|
|
216
|
+
if (context === undefined) {
|
|
217
|
+
context = node; ///
|
|
218
|
+
node = Class; ///
|
|
219
|
+
Class = Transform; ///
|
|
220
|
+
}
|
|
221
|
+
var tokens = context.tokens;
|
|
222
|
+
var firstSignificantTokenIndex = node.getFirstSignificantTokenIndex(tokens), clonedNode = node.clone();
|
|
223
|
+
var clonedTokens;
|
|
224
|
+
if (firstSignificantTokenIndex === null) {
|
|
225
|
+
clonedTokens = [];
|
|
226
|
+
} else {
|
|
227
|
+
var offset = firstSignificantTokenIndex; ///
|
|
228
|
+
clonedTokens = (0, _transform.clonedTokensFromNodeAndTokens)(node, tokens);
|
|
229
|
+
(0, _transform.overwriteClonedNodeTokens)(clonedNode, clonedTokens, tokens, offset);
|
|
230
|
+
}
|
|
231
|
+
node = clonedNode; ///
|
|
232
|
+
tokens = clonedTokens; ///
|
|
233
|
+
var transform = _construct(Class, [
|
|
234
|
+
node,
|
|
235
|
+
tokens
|
|
236
|
+
].concat(_to_consumable_array(remainingArguments)));
|
|
237
|
+
return transform;
|
|
238
|
+
}
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
key: "fromNodeAndTokens",
|
|
242
|
+
value: function fromNodeAndTokens(Class, node, tokens) {
|
|
243
|
+
for(var _len = arguments.length, remainingArguments = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++){
|
|
244
|
+
remainingArguments[_key - 3] = arguments[_key];
|
|
245
|
+
}
|
|
246
|
+
if (tokens === undefined) {
|
|
247
|
+
tokens = node; ///
|
|
248
|
+
node = Class; ///
|
|
249
|
+
Class = Transform; ///
|
|
250
|
+
}
|
|
251
|
+
var transform = _construct(Class, [
|
|
252
|
+
node,
|
|
253
|
+
tokens
|
|
254
|
+
].concat(_to_consumable_array(remainingArguments)));
|
|
255
|
+
return transform;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
]);
|
|
259
|
+
return Transform;
|
|
260
|
+
}();
|
|
261
|
+
|
|
262
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90cmFuc2Zvcm0uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgeyBhcHBlbmROb2RlLFxuICAgICAgICAgcmVtb3ZlTm9kZSxcbiAgICAgICAgIHByZXBlbmROb2RlLFxuICAgICAgICAgcmVwbGFjZU5vZGUsXG4gICAgICAgICBhcHBlbmRUb2tlbnMsXG4gICAgICAgICByZW1vdmVUb2tlbnMsXG4gICAgICAgICByZXBsYWNlVG9rZW5zLFxuICAgICAgICAgYWRkTm9kZXNBZnRlcixcbiAgICAgICAgIHByZXBlbmRUb2tlbnMsXG4gICAgICAgICBhZGRUb2tlbnNBZnRlcixcbiAgICAgICAgIG92ZXJ3cml0ZUNsb25lZE5vZGVUb2tlbnMsXG4gICAgICAgICBjbG9uZWRUb2tlbnNGcm9tTm9kZUFuZFRva2VucywgfSBmcm9tIFwiLi91dGlsaXRpZXMvdHJhbnNmb3JtXCI7XG5cbmNvbnN0IHsgcHVzaCB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRyYW5zZm9ybSB7XG4gIGNvbnN0cnVjdG9yKG5vZGUsIHRva2Vucykge1xuICAgIHRoaXMubm9kZSA9IG5vZGU7XG4gICAgdGhpcy50b2tlbnMgPSB0b2tlbnM7XG4gIH1cblxuICBnZXROb2RlKCkge1xuICAgIHJldHVybiB0aGlzLm5vZGU7XG4gIH1cblxuICBnZXRUb2tlbnModG9rZW5zID0gW10pIHtcbiAgICBwdXNoKHRva2VucywgdGhpcy50b2tlbnMpO1xuXG4gICAgcmV0dXJuIHRoaXMudG9rZW5zO1xuICB9XG5cbiAgY29udHJhY3QoQ2xhc3MsIGRlc2NlbmRlbnROb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBpZiAoZGVzY2VuZGVudE5vZGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgZGVzY2VuZGVudE5vZGUgPSBDbGFzczsgLy8vXG5cbiAgICAgIENsYXNzID0gVHJhbnNmb3JtOyAgLy8vXG4gICAgfVxuXG4gICAgY29uc3Qgbm9kZSA9IGRlc2NlbmRlbnROb2RlLCAgLy8vXG4gICAgICAgICAgdG9rZW5zID0gdGhpcy50b2tlbnMsIC8vL1xuICAgICAgICAgIGNvbnRleHQgPSB7IC8vL1xuICAgICAgICAgICAgdG9rZW5zXG4gICAgICAgICAgfSxcbiAgICAgICAgICB0cmFuc2Zvcm0gPSBDbGFzcy5mcm9tTm9kZShub2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHRyYW5zZm9ybTtcbiAgfVxuXG4gIGV4cGFuZChDbGFzcywgYXNjZW5kYW50Tm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgaWYgKGFzY2VuZGFudE5vZGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgYXNjZW5kYW50Tm9kZSA9IENsYXNzO1xuXG4gICAgICBDbGFzcyA9IFRyYW5zZm9ybTsgIC8vL1xuICAgIH1cblxuICAgIGNvbnN0IG5vZGUgPSBhc2NlbmRhbnROb2RlLCAvLy9cbiAgICAgICAgICB0b2tlbnMgPSB0aGlzLnRva2VucywgLy8vXG4gICAgICAgICAgY29udGV4dCA9IHtcbiAgICAgICAgICAgIHRva2Vuc1xuICAgICAgICAgIH0sXG4gICAgICAgICAgdHJhbnNmb3JtID0gQ2xhc3MuZnJvbU5vZGUobm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250ZXh0KTtcblxuICAgIHJldHVybiB0cmFuc2Zvcm07XG4gIH1cblxuICBhcHBlbmRUbyhwYXJlbnROb2RlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgeyB0b2tlbnMgfSA9IGNvbnRleHQsXG4gICAgICAgICAgYXBwZW5kZWROb2RlID0gdGhpcy5ub2RlLCAgLy8vXG4gICAgICAgICAgYXBwZW5kZWRUb2tlbnMgPSB0aGlzLnRva2VuczsgIC8vL1xuXG4gICAgYXBwZW5kTm9kZShhcHBlbmRlZE5vZGUsIHBhcmVudE5vZGUpO1xuXG4gICAgYXBwZW5kVG9rZW5zKGFwcGVuZGVkVG9rZW5zLCBwYXJlbnROb2RlLCB0b2tlbnMpO1xuICB9XG5cbiAgcHJlcGVuZFRvKHBhcmVudE5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCB7IHRva2VucyB9ID0gY29udGV4dCxcbiAgICAgICAgICBwcmVwZW5kZWROb2RlID0gdGhpcy5ub2RlLCAgLy8vXG4gICAgICAgICAgcHJlcGVuZGVkVG9rZW5zID0gdGhpcy50b2tlbnM7ICAvLy9cblxuICAgIHByZXBlbmROb2RlKHByZXBlbmRlZE5vZGUsIHBhcmVudE5vZGUpO1xuXG4gICAgcHJlcGVuZFRva2VucyhwcmVwZW5kZWRUb2tlbnMsIHBhcmVudE5vZGUsIHRva2Vucyk7XG4gIH1cblxuICBhZGRBZnRlcihleGlzdGluZ05vZGUsIHBhcmVudE5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCB7IHRva2VucyB9ID0gY29udGV4dCxcbiAgICAgICAgICBtYXJrZG93bk5vZGUgPSB0aGlzLm5vZGUsIC8vL1xuICAgICAgICAgIHJlbW92ZWRDaGlsZE5vZGVzID0gbWFya2Rvd25Ob2RlLnJlbW92ZUNoaWxkTm9kZXMoKSxcbiAgICAgICAgICBhZGRlZFRva2VucyA9IHRoaXMudG9rZW5zLCAgLy8vXG4gICAgICAgICAgYWRkZWROb2RlcyA9IHJlbW92ZWRDaGlsZE5vZGVzOyAgLy8vXG5cbiAgICBhZGROb2Rlc0FmdGVyKGV4aXN0aW5nTm9kZSwgYWRkZWROb2RlcywgcGFyZW50Tm9kZSk7XG5cbiAgICBhZGRUb2tlbnNBZnRlcihleGlzdGluZ05vZGUsIGFkZGVkVG9rZW5zLCB0b2tlbnMpO1xuICB9XG5cbiAgcmVwbGFjZShyZXBsYWNlZE5vZGUsIHBhcmVudE5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCB7IHRva2VucyB9ID0gY29udGV4dCxcbiAgICAgICAgICByZXBsYWNlbWVudE5vZGUgPSB0aGlzLm5vZGUsIC8vL1xuICAgICAgICAgIHJlcGxhY2VtZW50VG9rZW5zID0gdGhpcy50b2tlbnM7IC8vL1xuXG4gICAgcmVwbGFjZU5vZGUocmVwbGFjZW1lbnROb2RlLCByZXBsYWNlZE5vZGUsIHBhcmVudE5vZGUpO1xuXG4gICAgcmVwbGFjZVRva2VucyhyZXBsYWNlbWVudFRva2VucywgcmVwbGFjZWROb2RlLCB0b2tlbnMpO1xuICB9XG5cbiAgcmVtb3ZlRnJvbShyZW1vdmVkTm9kZSwgcGFyZW50Tm9kZSwgY29udGV4dCkge1xuICAgIGNvbnN0IHsgdG9rZW5zIH0gPSBjb250ZXh0O1xuXG4gICAgcmVtb3ZlVG9rZW5zKHJlbW92ZWROb2RlLCB0b2tlbnMpO1xuXG4gICAgcmVtb3ZlTm9kZShyZW1vdmVkTm9kZSwgcGFyZW50Tm9kZSk7XG4gIH1cblxuICBjbG9uZSguLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjbG9uZWROb2RlID0gdGhpcy5ub2RlLmNsb25lKCksXG4gICAgICAgICAgY2xvbmVkVG9rZW5zID0gY2xvbmVkVG9rZW5zRnJvbU5vZGVBbmRUb2tlbnModGhpcy5ub2RlLCB0aGlzLnRva2Vucyk7XG5cbiAgICBvdmVyd3JpdGVDbG9uZWROb2RlVG9rZW5zKGNsb25lZE5vZGUsIGNsb25lZFRva2VucywgdGhpcy50b2tlbnMpO1xuXG4gICAgY29uc3QgQ2xhc3MgPSB0aGlzLmNvbnN0cnVjdG9yLCAvLy9cbiAgICAgICAgICBub2RlID0gY2xvbmVkTm9kZSwgIC8vL1xuICAgICAgICAgIHRva2VucyA9IGNsb25lZFRva2VucywgLy8vXG4gICAgICAgICAgdHJhbnNmb3JtID0gbmV3IENsYXNzKG5vZGUsIHRva2VucywgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgIHJldHVybiB0cmFuc2Zvcm1cbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm9kZShDbGFzcywgbm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgbGV0IGNvbnRleHQgPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgICBpZiAoY29udGV4dCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb250ZXh0ID0gbm9kZTsgLy8vXG5cbiAgICAgIG5vZGUgPSBDbGFzczsgLy8vXG5cbiAgICAgIENsYXNzID0gVHJhbnNmb3JtOyAgLy8vXG4gICAgfVxuXG4gICAgbGV0IHsgdG9rZW5zIH0gPSBjb250ZXh0O1xuXG4gICAgY29uc3QgZmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXggPSBub2RlLmdldEZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4KHRva2VucyksXG4gICAgICAgICAgY2xvbmVkTm9kZSA9IG5vZGUuY2xvbmUoKTtcblxuICAgIGxldCBjbG9uZWRUb2tlbnM7XG5cbiAgICBpZiAoZmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXggPT09IG51bGwpIHtcbiAgICAgIGNsb25lZFRva2VucyA9IFtdO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBvZmZzZXQgPSBmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleDsgIC8vL1xuXG4gICAgICBjbG9uZWRUb2tlbnMgPSBjbG9uZWRUb2tlbnNGcm9tTm9kZUFuZFRva2Vucyhub2RlLCB0b2tlbnMpO1xuXG4gICAgICBvdmVyd3JpdGVDbG9uZWROb2RlVG9rZW5zKGNsb25lZE5vZGUsIGNsb25lZFRva2VucywgdG9rZW5zLCBvZmZzZXQpO1xuICAgIH1cblxuICAgIG5vZGUgPSBjbG9uZWROb2RlOyAgLy8vXG5cbiAgICB0b2tlbnMgPSBjbG9uZWRUb2tlbnM7IC8vL1xuXG4gICAgY29uc3QgdHJhbnNmb3JtID0gbmV3IENsYXNzKG5vZGUsIHRva2VucywgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgIHJldHVybiB0cmFuc2Zvcm07XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vZGVBbmRUb2tlbnMoQ2xhc3MsIG5vZGUsIHRva2VucywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgaWYgKHRva2VucyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0b2tlbnMgPSBub2RlOyAgLy8vXG5cbiAgICAgIG5vZGUgPSBDbGFzczsgLy8vXG5cbiAgICAgIENsYXNzID0gVHJhbnNmb3JtOyAgLy8vXG4gICAgfVxuXG4gICAgY29uc3QgdHJhbnNmb3JtID0gbmV3IENsYXNzKG5vZGUsIHRva2VucywgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgIHJldHVybiB0cmFuc2Zvcm07XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJUcmFuc2Zvcm0iLCJwdXNoIiwiYXJyYXlVdGlsaXRpZXMiLCJub2RlIiwidG9rZW5zIiwiZ2V0Tm9kZSIsImdldFRva2VucyIsImNvbnRyYWN0IiwiQ2xhc3MiLCJkZXNjZW5kZW50Tm9kZSIsInJlbWFpbmluZ0FyZ3VtZW50cyIsInVuZGVmaW5lZCIsImNvbnRleHQiLCJ0cmFuc2Zvcm0iLCJmcm9tTm9kZSIsImV4cGFuZCIsImFzY2VuZGFudE5vZGUiLCJhcHBlbmRUbyIsInBhcmVudE5vZGUiLCJhcHBlbmRlZE5vZGUiLCJhcHBlbmRlZFRva2VucyIsImFwcGVuZE5vZGUiLCJhcHBlbmRUb2tlbnMiLCJwcmVwZW5kVG8iLCJwcmVwZW5kZWROb2RlIiwicHJlcGVuZGVkVG9rZW5zIiwicHJlcGVuZE5vZGUiLCJwcmVwZW5kVG9rZW5zIiwiYWRkQWZ0ZXIiLCJleGlzdGluZ05vZGUiLCJtYXJrZG93bk5vZGUiLCJyZW1vdmVkQ2hpbGROb2RlcyIsInJlbW92ZUNoaWxkTm9kZXMiLCJhZGRlZFRva2VucyIsImFkZGVkTm9kZXMiLCJhZGROb2Rlc0FmdGVyIiwiYWRkVG9rZW5zQWZ0ZXIiLCJyZXBsYWNlIiwicmVwbGFjZWROb2RlIiwicmVwbGFjZW1lbnROb2RlIiwicmVwbGFjZW1lbnRUb2tlbnMiLCJyZXBsYWNlTm9kZSIsInJlcGxhY2VUb2tlbnMiLCJyZW1vdmVGcm9tIiwicmVtb3ZlZE5vZGUiLCJyZW1vdmVUb2tlbnMiLCJyZW1vdmVOb2RlIiwiY2xvbmUiLCJjbG9uZWROb2RlIiwiY2xvbmVkVG9rZW5zIiwiY2xvbmVkVG9rZW5zRnJvbU5vZGVBbmRUb2tlbnMiLCJvdmVyd3JpdGVDbG9uZWROb2RlVG9rZW5zIiwiY29uc3RydWN0b3IiLCJwb3AiLCJmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsImdldEZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4Iiwib2Zmc2V0IiwiZnJvbU5vZGVBbmRUb2tlbnMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBbUJxQkE7Ozt5QkFqQlU7eUJBYWdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUvQyxJQUFNLEFBQUVDLE9BQVNDLHlCQUFjLENBQXZCRDtBQUVPLElBQUEsQUFBTUQsMEJBQU47YUFBTUEsVUFDUEcsSUFBSSxFQUFFQyxNQUFNO2dDQURMSjtRQUVqQixJQUFJLENBQUNHLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLE1BQU0sR0FBR0E7O2tCQUhHSjs7WUFNbkJLLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0YsSUFBSTtZQUNsQjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQTtvQkFBVUYsU0FBQUEsaUVBQVMsRUFBRTtnQkFDbkJILEtBQUtHLFFBQVEsSUFBSSxDQUFDQSxNQUFNO2dCQUV4QixPQUFPLElBQUksQ0FBQ0EsTUFBTTtZQUNwQjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQSxTQUFTQyxLQUFLLEVBQUVDLGNBQWM7Z0JBQUUsSUFBQSxJQUFBLE9BQUEsVUFBQSxRQUFBLEFBQUdDLHFCQUFILFVBQUEsT0FBQSxJQUFBLE9BQUEsUUFBQSxPQUFBLEdBQUEsT0FBQSxNQUFBO29CQUFHQSxtQkFBSCxPQUFBLEtBQUEsU0FBQSxDQUFBLEtBQXFCOztvQkFZakNGO2dCQVhsQixJQUFJQyxtQkFBbUJFLFdBQVc7b0JBQ2hDRixpQkFBaUJELE9BQU8sR0FBRztvQkFFM0JBLFFBcEJlUixXQW9CSyxHQUFHO2dCQUN6QjtnQkFFQSxJQUFNRyxPQUFPTSxnQkFDUEws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
|