occam-dom 5.0.9 → 5.0.10

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.
Files changed (4) hide show
  1. package/example.js +351 -488
  2. package/lib/node.js +34 -207
  3. package/package.json +3 -3
  4. package/src/node.js +6 -160
package/lib/node.js CHANGED
@@ -10,14 +10,6 @@ Object.defineProperty(exports, "default", {
10
10
  });
11
11
  var _node = /*#__PURE__*/ _interop_require_default(require("./parseTree/node"));
12
12
  var _constants = require("./constants");
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
13
  function _class_call_check(instance, Constructor) {
22
14
  if (!(instance instanceof Constructor)) {
23
15
  throw new TypeError("Cannot call a class as a function");
@@ -37,27 +29,39 @@ function _create_class(Constructor, protoProps, staticProps) {
37
29
  if (staticProps) _defineProperties(Constructor, staticProps);
38
30
  return Constructor;
39
31
  }
32
+ function _get(target, property, receiver) {
33
+ if (typeof Reflect !== "undefined" && Reflect.get) {
34
+ _get = Reflect.get;
35
+ } else {
36
+ _get = function get(target, property, receiver) {
37
+ var base = _super_prop_base(target, property);
38
+ if (!base) return;
39
+ var desc = Object.getOwnPropertyDescriptor(base, property);
40
+ if (desc.get) {
41
+ return desc.get.call(receiver || target);
42
+ }
43
+ return desc.value;
44
+ };
45
+ }
46
+ return _get(target, property, receiver || target);
47
+ }
48
+ function _get_prototype_of(o) {
49
+ _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
50
+ return o.__proto__ || Object.getPrototypeOf(o);
51
+ };
52
+ return _get_prototype_of(o);
53
+ }
40
54
  function _interop_require_default(obj) {
41
55
  return obj && obj.__esModule ? obj : {
42
56
  default: obj
43
57
  };
44
58
  }
45
- function _iterable_to_array(iter) {
46
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
47
- }
48
- function _non_iterable_spread() {
49
- throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
50
- }
51
- function _to_consumable_array(arr) {
52
- return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
53
- }
54
- function _unsupported_iterable_to_array(o, minLen) {
55
- if (!o) return;
56
- if (typeof o === "string") return _array_like_to_array(o, minLen);
57
- var n = Object.prototype.toString.call(o).slice(8, -1);
58
- if (n === "Object" && o.constructor) n = o.constructor.name;
59
- if (n === "Map" || n === "Set") return Array.from(n);
60
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
59
+ function _super_prop_base(object, property) {
60
+ while(!Object.prototype.hasOwnProperty.call(object, property)){
61
+ object = _get_prototype_of(object);
62
+ if (object === null) break;
63
+ }
64
+ return object;
61
65
  }
62
66
  var Node = /*#__PURE__*/ function() {
63
67
  function Node(outerNode, parentNode, childNodes) {
@@ -100,192 +104,15 @@ var Node = /*#__PURE__*/ function() {
100
104
  {
101
105
  key: "setChildNodes",
102
106
  value: function setChildNodes(childNodes) {
103
- this.childNodes = childNodes;
104
- }
105
- },
106
- {
107
- key: "getMultiplicity",
108
- value: function getMultiplicity() {
109
- var childNodesLength = this.childNodes.length, multiplicity = childNodesLength; ///
110
- return multiplicity;
111
- }
112
- },
113
- {
114
- key: "mapChildNode",
115
- value: function mapChildNode(callback) {
116
- return this.childNodes.map(callback);
117
- }
118
- },
119
- {
120
- key: "someChildNode",
121
- value: function someChildNode(callback) {
122
- return this.childNodes.some(callback);
123
- }
124
- },
125
- {
126
- key: "findChildNode",
127
- value: function findChildNode(callback) {
128
- return this.childNodes.find(callback);
129
- }
130
- },
131
- {
132
- key: "everyChildNode",
133
- value: function everyChildNode(callback) {
134
- return this.childNodes.every(callback);
135
- }
136
- },
137
- {
138
- key: "filterChildNode",
139
- value: function filterChildNode(callback) {
140
- return this.childNodes.filter(callback);
141
- }
142
- },
143
- {
144
- key: "reduceChildNode",
145
- value: function reduceChildNode(callback, initialValue) {
146
- return this.childNodes.reduce(callback, initialValue);
147
- }
148
- },
149
- {
150
- key: "forEachChildNode",
151
- value: function forEachChildNode(callback) {
152
- this.childNodes.forEach(callback);
153
- }
154
- },
155
- {
156
- key: "setChildNodesParentNode",
157
- value: function setChildNodesParentNode(childNodes) {
158
- if (childNodes === undefined) {
159
- childNodes = _to_consumable_array(this.childNodes);
160
- }
161
- var parentNode = this;
162
- childNodes.forEach(function(childNode) {
163
- childNode.setParentNode(parentNode);
164
- });
165
- }
166
- },
167
- {
168
- key: "resetChildNodesParentNode",
169
- value: function resetChildNodesParentNode(childNodes) {
170
- if (childNodes === undefined) {
171
- childNodes = _to_consumable_array(this.childNodes);
172
- }
173
- var parentNode = null;
174
- childNodes.forEach(function(childNode) {
175
- childNode.setParentNode(parentNode);
176
- });
177
- }
178
- },
179
- {
180
- key: "addChildNode",
181
- value: function addChildNode(addedChildNode, startIndex) {
182
- var addedChildNodes = [
183
- addedChildNode
184
- ];
185
- this.addChildNodes(addedChildNodes, startIndex);
186
- }
187
- },
188
- {
189
- key: "addChildNodes",
190
- value: function addChildNodes(addedChildNodes, startIndex) {
191
- var deleteCount = 0;
107
+ var startIndex = 0, deleteCount = Infinity, addedChildNodes = childNodes; ///
192
108
  this.spliceChildNodes(startIndex, deleteCount, addedChildNodes);
193
109
  }
194
110
  },
195
111
  {
196
- key: "removeChildNode",
197
- value: function removeChildNode(removedChildNode) {
198
- var removedChildNodes;
199
- removedChildNodes = [
200
- removedChildNode
201
- ];
202
- removedChildNodes = this.removeChildNodes(removedChildNodes);
203
- return removedChildNodes;
204
- }
205
- },
206
- {
207
- key: "removeChildNodes",
208
- value: function removeChildNodes(removedChildNodes) {
209
- if (removedChildNodes === undefined) {
210
- removedChildNodes = _to_consumable_array(this.childNodes);
211
- }
212
- var removedChildNodesLength = removedChildNodes.length;
213
- if (removedChildNodesLength === 0) {
214
- return;
215
- }
216
- var firstReplacedChildNode = first(removedChildNodes), firstIndex = this.childNodes.indexOf(firstReplacedChildNode), startIndex = firstIndex, deleteCount = removedChildNodesLength, addedChildNodes = [];
217
- removedChildNodes = this.spliceChildNodes(startIndex, deleteCount, addedChildNodes);
218
- return removedChildNodes;
219
- }
220
- },
221
- {
222
- key: "replaceChildNode",
223
- value: function replaceChildNode(replacedChildNode, replacementChildNodes) {
224
- var replacedChildNodes = [
225
- replacedChildNode
226
- ];
227
- this.replaceChildNodes(replacedChildNodes, replacementChildNodes);
228
- }
229
- },
230
- {
231
- key: "replaceChildNodes",
232
- value: function replaceChildNodes(replacedChildNodes, replacementChildNodes) {
233
- var replacedChildNodesLength = replacedChildNodes.length, firstReplacedChildNode = first(replacedChildNodes), firstIndex = this.childNodes.indexOf(firstReplacedChildNode), startIndex = firstIndex, deleteCount = replacedChildNodesLength; ///
234
- this.spliceChildNodes(startIndex, deleteCount, replacementChildNodes);
235
- }
236
- },
237
- {
238
- key: "appendChildNode",
239
- value: function appendChildNode(appendedChildNode) {
240
- var appendedChildNodes = [
241
- appendedChildNode
242
- ];
243
- this.appendChildNodes(appendedChildNodes);
244
- }
245
- },
246
- {
247
- key: "appendChildNodes",
248
- value: function appendChildNodes(appendedChildNodes) {
249
- var addedChildNodes = appendedChildNodes, multiplicity = this.getMultiplicity(), startIndex = multiplicity; ///
250
- this.addChildNodes(addedChildNodes, startIndex);
251
- }
252
- },
253
- {
254
- key: "prependChildNode",
255
- value: function prependChildNode(prependedChildNode) {
256
- var prependedChildNodes = [
257
- prependedChildNode
258
- ];
259
- this.prependChildNodes(prependedChildNodes);
260
- }
261
- },
262
- {
263
- key: "prependChildNodes",
264
- value: function prependChildNodes(prependedChildNodes) {
265
- var addedChildNodes = prependedChildNodes, startIndex = 0;
266
- this.addChildNodes(addedChildNodes, startIndex);
267
- }
268
- },
269
- {
270
- key: "spliceChildNodes",
271
- value: function spliceChildNodes(startIndex, deleteCount) {
272
- var addedChildNodes = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : [];
273
- var _this_childNodes;
274
- var removedChildNodes = (_this_childNodes = this.childNodes).splice.apply(_this_childNodes, [
275
- startIndex,
276
- deleteCount
277
- ].concat(_to_consumable_array(addedChildNodes)));
278
- this.resetChildNodesParentNode(removedChildNodes);
279
- this.setChildNodesParentNode(addedChildNodes);
280
- return removedChildNodes;
281
- }
282
- },
283
- {
284
- key: "sliceChildNodes",
285
- value: function sliceChildNodes(startIndex) {
286
- var endIndex = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Infinity;
287
- var childNodes = this.childNodes.slice(startIndex, endIndex);
288
- return childNodes;
112
+ key: "destroy",
113
+ value: function destroy() {
114
+ this.outerNode = null;
115
+ _get(_get_prototype_of(Node.prototype), "destroy", this).call(this);
289
116
  }
290
117
  },
291
118
  {
@@ -338,4 +165,4 @@ var Node = /*#__PURE__*/ function() {
338
165
  return Node;
339
166
  }();
340
167
 
341
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub2RlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTm9kZVBhcnNlVHJlZSBmcm9tIFwiLi9wYXJzZVRyZWUvbm9kZVwiO1xuXG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTm9kZSB7XG4gIGNvbnN0cnVjdG9yKG91dGVyTm9kZSwgcGFyZW50Tm9kZSwgY2hpbGROb2Rlcykge1xuICAgIHRoaXMub3V0ZXJOb2RlID0gb3V0ZXJOb2RlO1xuICAgIHRoaXMucGFyZW50Tm9kZSA9IHBhcmVudE5vZGU7XG4gICAgdGhpcy5jaGlsZE5vZGVzID0gY2hpbGROb2RlcztcbiAgfVxuXG4gIGdldE91dGVyTm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5vdXRlck5vZGU7XG4gIH1cblxuICBnZXRQYXJlbnROb2RlKCkge1xuICAgIHJldHVybiB0aGlzLnBhcmVudE5vZGU7XG4gIH1cblxuICBnZXRDaGlsZE5vZGVzKCkge1xuICAgIHJldHVybiB0aGlzLmNoaWxkTm9kZXM7XG4gIH1cblxuICBzZXRPdXRlck5vZGUob3V0ZXJOb2RlKSB7XG4gICAgdGhpcy5vdXRlck5vZGUgPSBvdXRlck5vZGU7XG4gIH1cblxuICBzZXRQYXJlbnROb2RlKHBhcmVudE5vZGUpIHtcbiAgICB0aGlzLnBhcmVudE5vZGUgPSBwYXJlbnROb2RlO1xuICB9XG5cbiAgc2V0Q2hpbGROb2RlcyhjaGlsZE5vZGVzKSB7XG4gICAgdGhpcy5jaGlsZE5vZGVzID0gY2hpbGROb2RlcztcbiAgfVxuXG4gIGdldE11bHRpcGxpY2l0eSgpIHtcbiAgICBjb25zdCBjaGlsZE5vZGVzTGVuZ3RoID0gdGhpcy5jaGlsZE5vZGVzLmxlbmd0aCxcbiAgICAgICAgbXVsdGlwbGljaXR5ID0gY2hpbGROb2Rlc0xlbmd0aDsgIC8vL1xuXG4gICAgcmV0dXJuIG11bHRpcGxpY2l0eTtcbiAgfVxuXG4gIG1hcENoaWxkTm9kZShjYWxsYmFjaykgeyByZXR1cm4gdGhpcy5jaGlsZE5vZGVzLm1hcChjYWxsYmFjayk7IH1cblxuICBzb21lQ2hpbGROb2RlKGNhbGxiYWNrKSB7IHJldHVybiB0aGlzLmNoaWxkTm9kZXMuc29tZShjYWxsYmFjayk7IH1cblxuICBmaW5kQ2hpbGROb2RlKGNhbGxiYWNrKSB7IHJldHVybiB0aGlzLmNoaWxkTm9kZXMuZmluZChjYWxsYmFjayk7IH1cblxuICBldmVyeUNoaWxkTm9kZShjYWxsYmFjaykgeyByZXR1cm4gdGhpcy5jaGlsZE5vZGVzLmV2ZXJ5KGNhbGxiYWNrKTsgfVxuXG4gIGZpbHRlckNoaWxkTm9kZShjYWxsYmFjaykgeyByZXR1cm4gdGhpcy5jaGlsZE5vZGVzLmZpbHRlcihjYWxsYmFjayk7IH1cblxuICByZWR1Y2VDaGlsZE5vZGUoY2FsbGJhY2ssIGluaXRpYWxWYWx1ZSkgeyByZXR1cm4gdGhpcy5jaGlsZE5vZGVzLnJlZHVjZShjYWxsYmFjaywgaW5pdGlhbFZhbHVlKTsgfVxuXG4gIGZvckVhY2hDaGlsZE5vZGUoY2FsbGJhY2spIHsgdGhpcy5jaGlsZE5vZGVzLmZvckVhY2goY2FsbGJhY2spOyB9XG5cbiAgc2V0Q2hpbGROb2Rlc1BhcmVudE5vZGUoY2hpbGROb2Rlcykge1xuICAgIGlmIChjaGlsZE5vZGVzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNoaWxkTm9kZXMgPSBbXG4gICAgICAgIC4uLnRoaXMuY2hpbGROb2Rlc1xuICAgICAgXTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJlbnROb2RlID0gdGhpcztcblxuICAgIGNoaWxkTm9kZXMuZm9yRWFjaCgoY2hpbGROb2RlKSA9PiB7XG4gICAgICBjaGlsZE5vZGUuc2V0UGFyZW50Tm9kZShwYXJlbnROb2RlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlc2V0Q2hpbGROb2Rlc1BhcmVudE5vZGUoY2hpbGROb2Rlcykge1xuICAgIGlmIChjaGlsZE5vZGVzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNoaWxkTm9kZXMgPSBbXG4gICAgICAgIC4uLnRoaXMuY2hpbGROb2Rlc1xuICAgICAgXTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJlbnROb2RlID0gbnVsbDtcblxuICAgIGNoaWxkTm9kZXMuZm9yRWFjaCgoY2hpbGROb2RlKSA9PiB7XG4gICAgICBjaGlsZE5vZGUuc2V0UGFyZW50Tm9kZShwYXJlbnROb2RlKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFkZENoaWxkTm9kZShhZGRlZENoaWxkTm9kZSwgc3RhcnRJbmRleCkge1xuICAgIGNvbnN0IGFkZGVkQ2hpbGROb2RlcyA9IFtcbiAgICAgIGFkZGVkQ2hpbGROb2RlXG4gICAgXTtcblxuICAgIHRoaXMuYWRkQ2hpbGROb2RlcyhhZGRlZENoaWxkTm9kZXMsIHN0YXJ0SW5kZXgpO1xuICB9XG5cbiAgYWRkQ2hpbGROb2RlcyhhZGRlZENoaWxkTm9kZXMsIHN0YXJ0SW5kZXgpIHtcbiAgICBjb25zdCBkZWxldGVDb3VudCA9IDA7XG5cbiAgICB0aGlzLnNwbGljZUNoaWxkTm9kZXMoc3RhcnRJbmRleCwgZGVsZXRlQ291bnQsIGFkZGVkQ2hpbGROb2Rlcyk7XG4gIH1cblxuICByZW1vdmVDaGlsZE5vZGUocmVtb3ZlZENoaWxkTm9kZSkge1xuICAgIGxldCByZW1vdmVkQ2hpbGROb2RlcztcblxuICAgIHJlbW92ZWRDaGlsZE5vZGVzID0gW1xuICAgICAgcmVtb3ZlZENoaWxkTm9kZVxuICAgIF07XG5cbiAgICByZW1vdmVkQ2hpbGROb2RlcyA9IHRoaXMucmVtb3ZlQ2hpbGROb2RlcyhyZW1vdmVkQ2hpbGROb2Rlcyk7XG5cbiAgICByZXR1cm4gcmVtb3ZlZENoaWxkTm9kZXM7XG4gIH1cblxuICByZW1vdmVDaGlsZE5vZGVzKHJlbW92ZWRDaGlsZE5vZGVzKSB7XG4gICAgaWYgKHJlbW92ZWRDaGlsZE5vZGVzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJlbW92ZWRDaGlsZE5vZGVzID0gW1xuICAgICAgICAuLi50aGlzLmNoaWxkTm9kZXNcbiAgICAgIF07XG4gICAgfVxuXG4gICAgY29uc3QgcmVtb3ZlZENoaWxkTm9kZXNMZW5ndGggPSByZW1vdmVkQ2hpbGROb2Rlcy5sZW5ndGg7XG5cbiAgICBpZiAocmVtb3ZlZENoaWxkTm9kZXNMZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmaXJzdFJlcGxhY2VkQ2hpbGROb2RlID0gZmlyc3QocmVtb3ZlZENoaWxkTm9kZXMpLFxuICAgICAgICAgIGZpcnN0SW5kZXggPSB0aGlzLmNoaWxkTm9kZXMuaW5kZXhPZihmaXJzdFJlcGxhY2VkQ2hpbGROb2RlKSxcbiAgICAgICAgICBzdGFydEluZGV4ID0gZmlyc3RJbmRleCwgLy8vXG4gICAgICAgICAgZGVsZXRlQ291bnQgPSByZW1vdmVkQ2hpbGROb2Rlc0xlbmd0aCwgLy8vXG4gICAgICAgICAgYWRkZWRDaGlsZE5vZGVzID0gW107XG5cbiAgICByZW1vdmVkQ2hpbGROb2RlcyA9IHRoaXMuc3BsaWNlQ2hpbGROb2RlcyhzdGFydEluZGV4LCBkZWxldGVDb3VudCwgYWRkZWRDaGlsZE5vZGVzKTtcblxuICAgIHJldHVybiByZW1vdmVkQ2hpbGROb2RlcztcbiAgfVxuXG4gIHJlcGxhY2VDaGlsZE5vZGUocmVwbGFjZWRDaGlsZE5vZGUsIHJlcGxhY2VtZW50Q2hpbGROb2Rlcykge1xuICAgIGNvbnN0IHJlcGxhY2VkQ2hpbGROb2RlcyA9IFtcbiAgICAgIHJlcGxhY2VkQ2hpbGROb2RlXG4gICAgXTtcblxuICAgIHRoaXMucmVwbGFjZUNoaWxkTm9kZXMocmVwbGFjZWRDaGlsZE5vZGVzLCByZXBsYWNlbWVudENoaWxkTm9kZXMpO1xuICB9XG5cbiAgcmVwbGFjZUNoaWxkTm9kZXMocmVwbGFjZWRDaGlsZE5vZGVzLCByZXBsYWNlbWVudENoaWxkTm9kZXMpIHtcbiAgICBjb25zdCByZXBsYWNlZENoaWxkTm9kZXNMZW5ndGggPSByZXBsYWNlZENoaWxkTm9kZXMubGVuZ3RoLFxuICAgICAgICAgIGZpcnN0UmVwbGFjZWRDaGlsZE5vZGUgPSBmaXJzdChyZXBsYWNlZENoaWxkTm9kZXMpLFxuICAgICAgICAgIGZpcnN0SW5kZXggPSB0aGlzLmNoaWxkTm9kZXMuaW5kZXhPZihmaXJzdFJlcGxhY2VkQ2hpbGROb2RlKSxcbiAgICAgICAgICBzdGFydEluZGV4ID0gZmlyc3RJbmRleCwgLy8vXG4gICAgICAgICAgZGVsZXRlQ291bnQgPSByZXBsYWNlZENoaWxkTm9kZXNMZW5ndGg7IC8vL1xuXG4gICAgdGhpcy5zcGxpY2VDaGlsZE5vZGVzKHN0YXJ0SW5kZXgsIGRlbGV0ZUNvdW50LCByZXBsYWNlbWVudENoaWxkTm9kZXMpO1xuICB9XG5cbiAgYXBwZW5kQ2hpbGROb2RlKGFwcGVuZGVkQ2hpbGROb2RlKSB7XG4gICAgY29uc3QgYXBwZW5kZWRDaGlsZE5vZGVzID0gW1xuICAgICAgYXBwZW5kZWRDaGlsZE5vZGVcbiAgICBdO1xuXG4gICAgdGhpcy5hcHBlbmRDaGlsZE5vZGVzKGFwcGVuZGVkQ2hpbGROb2Rlcyk7XG4gIH1cblxuICBhcHBlbmRDaGlsZE5vZGVzKGFwcGVuZGVkQ2hpbGROb2Rlcykge1xuICAgIGNvbnN0IGFkZGVkQ2hpbGROb2RlcyA9IGFwcGVuZGVkQ2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgbXVsdGlwbGljaXR5ID0gdGhpcy5nZXRNdWx0aXBsaWNpdHkoKSxcbiAgICAgICAgICBzdGFydEluZGV4ID0gbXVsdGlwbGljaXR5OyAgLy8vXG5cbiAgICB0aGlzLmFkZENoaWxkTm9kZXMoYWRkZWRDaGlsZE5vZGVzLCBzdGFydEluZGV4KTtcbiAgfVxuXG4gIHByZXBlbmRDaGlsZE5vZGUocHJlcGVuZGVkQ2hpbGROb2RlKSB7XG4gICAgY29uc3QgcHJlcGVuZGVkQ2hpbGROb2RlcyA9IFtcbiAgICAgIHByZXBlbmRlZENoaWxkTm9kZVxuICAgIF07XG5cbiAgICB0aGlzLnByZXBlbmRDaGlsZE5vZGVzKHByZXBlbmRlZENoaWxkTm9kZXMpO1xuICB9XG5cbiAgcHJlcGVuZENoaWxkTm9kZXMocHJlcGVuZGVkQ2hpbGROb2Rlcykge1xuICAgIGNvbnN0IGFkZGVkQ2hpbGROb2RlcyA9IHByZXBlbmRlZENoaWxkTm9kZXMsICAvLy9cbiAgICAgICAgICBzdGFydEluZGV4ID0gMDtcblxuICAgIHRoaXMuYWRkQ2hpbGROb2RlcyhhZGRlZENoaWxkTm9kZXMsIHN0YXJ0SW5kZXgpO1xuICB9XG5cbiAgc3BsaWNlQ2hpbGROb2RlcyhzdGFydEluZGV4LCBkZWxldGVDb3VudCwgYWRkZWRDaGlsZE5vZGVzID0gW10pIHtcbiAgICBjb25zdCByZW1vdmVkQ2hpbGROb2RlcyA9IHRoaXMuY2hpbGROb2Rlcy5zcGxpY2Uoc3RhcnRJbmRleCwgZGVsZXRlQ291bnQsIC4uLmFkZGVkQ2hpbGROb2Rlcyk7XG5cbiAgICB0aGlzLnJlc2V0Q2hpbGROb2Rlc1BhcmVudE5vZGUocmVtb3ZlZENoaWxkTm9kZXMpO1xuXG4gICAgdGhpcy5zZXRDaGlsZE5vZGVzUGFyZW50Tm9kZShhZGRlZENoaWxkTm9kZXMpO1xuXG4gICAgcmV0dXJuIHJlbW92ZWRDaGlsZE5vZGVzO1xuICB9XG5cbiAgc2xpY2VDaGlsZE5vZGVzKHN0YXJ0SW5kZXgsIGVuZEluZGV4ID0gSW5maW5pdHkpIHtcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gdGhpcy5jaGlsZE5vZGVzLnNsaWNlKHN0YXJ0SW5kZXgsIGVuZEluZGV4KTtcblxuICAgIHJldHVybiBjaGlsZE5vZGVzO1xuICB9XG5cbiAgYXNTdHJpbmcoKSB7XG4gICAgbGV0IHN0cmluZyA9IEVNUFRZX1NUUklORztcblxuICAgIGlmICh0aGlzLm91dGVyTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgbm9kZVRlcm1pbmFsTm9kZSA9IHRoaXMub3V0ZXJOb2RlLmlzVGVybWluYWxOb2RlKCk7XG5cbiAgICAgIGlmIChub2RlVGVybWluYWxOb2RlKSB7XG4gICAgICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IHRoaXMub3V0ZXJOb2RlLFxuICAgICAgICAgICAgICB0eXBlID0gdGVybWluYWxOb2RlLmdldFR5cGUoKSxcbiAgICAgICAgICAgICAgY29udGVudCA9IHRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCk7XG5cbiAgICAgICAgc3RyaW5nID0gYFwiJHtjb250ZW50fVwiIFske3R5cGV9XWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSB0aGlzLm91dGVyTm9kZSxcbiAgICAgICAgICAgICAgcnVsZU5hbWUgPSBub25UZXJtaW5hbE5vZGUuZ2V0UnVsZU5hbWUoKTtcblxuICAgICAgICBzdHJpbmcgPSBydWxlTmFtZTsgIC8vL1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBhc1BhcnNlVHJlZSgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcywgIC8vL1xuICAgICAgICAgIG5vZGVQYXJzZVRyZWUgPSBOb2RlUGFyc2VUcmVlLmZyb21Ob2RlKG5vZGUpLFxuICAgICAgICAgIHBhcnNlVHJlZSA9IG5vZGVQYXJzZVRyZWU7ICAvLy9cblxuICAgIHJldHVybiBwYXJzZVRyZWU7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoQ2xhc3MpIHtcbiAgICBpZiAoQ2xhc3MgPT09IHVuZGVmaW5lZCkge1xuICAgICAgQ2xhc3MgPSBOb2RlOyAvLy9cbiAgICB9XG5cbiAgICBjb25zdCBvdXRlck5vZGUgPSBudWxsLFxuICAgICAgICAgIHBhcmVudE5vZGUgPSBudWxsLFxuICAgICAgICAgIGNoaWxkTm9kZXMgPSBbXSxcbiAgICAgICAgICBub2RlID0gbmV3IENsYXNzKG91dGVyTm9kZSwgcGFyZW50Tm9kZSwgY2hpbGROb2Rlcyk7XG5cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tT3V0ZXJOb2RlKENsYXNzLCBvdXRlck5vZGUpIHtcbiAgICBpZiAob3V0ZXJOb2RlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIG91dGVyTm9kZSA9IENsYXNzOyAgLy8vXG5cbiAgICAgIENsYXNzID0gTm9kZTsgLy8vXG4gICAgfVxuXG4gICAgY29uc3QgcGFyZW50Tm9kZSA9IG51bGwsXG4gICAgICAgICAgY2hpbGROb2RlcyA9IFtdLFxuICAgICAgICAgIG5vZGUgPSBuZXcgQ2xhc3Mob3V0ZXJOb2RlLCBwYXJlbnROb2RlLCBjaGlsZE5vZGVzKTtcblxuICAgIHJldHVybiBub2RlO1xuICB9XG59XG4iXSwibmFtZXMiOlsiTm9kZSIsIm91dGVyTm9kZSIsInBhcmVudE5vZGUiLCJjaGlsZE5vZGVzIiwiZ2V0T3V0ZXJOb2RlIiwiZ2V0UGFyZW50Tm9kZSIsImdldENoaWxkTm9kZXMiLCJzZXRPdXRlck5vZGUiLCJzZXRQYXJlbnROb2RlIiwic2V0Q2hpbGROb2RlcyIsImdldE11bHRpcGxpY2l0eSIsImNoaWxkTm9kZXNMZW5ndGgiLCJsZW5ndGgiLCJtdWx0aXBsaWNpdHkiLCJtYXBDaGlsZE5vZGUiLCJjYWxsYmFjayIsIm1hcCIsInNvbWVDaGlsZE5vZGUiLCJzb21lIiwiZmluZENoaWxkTm9kZSIsImZpbmQiLCJldmVyeUNoaWxkTm9kZSIsImV2ZXJ5IiwiZmlsdGVyQ2hpbGROb2RlIiwiZmlsdGVyIiwicmVkdWNlQ2hpbGROb2RlIiwiaW5pdGlhbFZhbHVlIiwicmVkdWNlIiwiZm9yRWFjaENoaWxkTm9kZSIsImZvckVhY2giLCJzZXRDaGlsZE5vZGVzUGFyZW50Tm9kZSIsInVuZGVmaW5lZCIsImNoaWxkTm9kZSIsInJlc2V0Q2hpbGROb2Rlc1BhcmVudE5vZGUiLCJhZGRDaGlsZE5vZGUiLCJhZGRlZENoaWxkTm9kZSIsInN0YXJ0SW5kZXgiLCJhZGRlZENoaWxkTm9kZXMiLCJhZGRDaGlsZE5vZGVzIiwiZGVsZXRlQ291bnQiLCJzcGxpY2VDaGlsZE5vZGVzIiwicmVtb3ZlQ2hpbGROb2RlIiwicmVtb3ZlZENoaWxkTm9kZSIsInJlbW92ZWRDaGlsZE5vZGVzIiwicmVtb3ZlQ2hpbGROb2RlcyIsInJlbW92ZWRDaGlsZE5vZGVzTGVuZ3RoIiwiZmlyc3RSZXBsYWNlZENoaWxkTm9kZSIsImZpcnN0IiwiZmlyc3RJbmRleCIsImluZGV4T2YiLCJyZXBsYWNlQ2hpbGROb2RlIiwicmVwbGFjZWRDaGlsZE5vZGUiLCJyZXBsYWNlbWVudENoaWxkTm9kZXMiLCJyZXBsYWNlZENoaWxkTm9kZXMiLCJyZXBsYWNlQ2hpbGROb2RlcyIsInJlcGxhY2VkQ2hpbGROb2Rlc0xlbmd0aCIsImFwcGVuZENoaWxkTm9kZSIsImFwcGVuZGVkQ2hpbGROb2RlIiwiYXBwZW5kZWRDaGlsZE5vZGVzIiwiYXBwZW5kQ2hpbGROb2RlcyIsInByZXBlbmRDaGlsZE5vZGUiLCJwcmVwZW5kZWRDaGlsZE5vZGUiLCJwcmVwZW5kZWRDaGlsZE5vZGVzIiwicHJlcGVuZENoaWxkTm9kZXMiLCJzcGxpY2UiLCJzbGljZUNoaWxkTm9kZXMiLCJlbmRJbmRleCIsIkluZmluaXR5Iiwic2xpY2UiLCJhc1N0cmluZyIsInN0cmluZyIsIkVNUFRZX1NUUklORyIsIm5vZGVUZXJtaW5hbE5vZGUiLCJpc1Rlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZSIsInR5cGUiLCJnZXRUeXBlIiwiY29udGVudCIsImdldENvbnRlbnQiLCJub25UZXJtaW5hbE5vZGUiLCJydWxlTmFtZSIsImdldFJ1bGVOYW1lIiwiYXNQYXJzZVRyZWUiLCJub2RlIiwibm9kZVBhcnNlVHJlZSIsIk5vZGVQYXJzZVRyZWUiLCJmcm9tTm9kZSIsInBhcnNlVHJlZSIsImZyb21Ob3RoaW5nIiwiQ2xhc3MiLCJmcm9tT3V0ZXJOb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQU1xQkE7OzsyREFKSzt5QkFFRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFZCxJQUFBLEFBQU1BLHFCQUFOO2FBQU1BLEtBQ1BDLFNBQVMsRUFBRUMsVUFBVSxFQUFFQyxVQUFVO2dDQUQxQkg7UUFFakIsSUFBSSxDQUFDQyxTQUFTLEdBQUdBO1FBQ2pCLElBQUksQ0FB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
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub2RlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTm9kZVBhcnNlVHJlZSBmcm9tIFwiLi9wYXJzZVRyZWUvbm9kZVwiO1xuXG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTm9kZSB7XG4gIGNvbnN0cnVjdG9yKG91dGVyTm9kZSwgcGFyZW50Tm9kZSwgY2hpbGROb2Rlcykge1xuICAgIHRoaXMub3V0ZXJOb2RlID0gb3V0ZXJOb2RlO1xuICAgIHRoaXMucGFyZW50Tm9kZSA9IHBhcmVudE5vZGU7XG4gICAgdGhpcy5jaGlsZE5vZGVzID0gY2hpbGROb2RlcztcbiAgfVxuXG4gIGdldE91dGVyTm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5vdXRlck5vZGU7XG4gIH1cblxuICBnZXRQYXJlbnROb2RlKCkge1xuICAgIHJldHVybiB0aGlzLnBhcmVudE5vZGU7XG4gIH1cblxuICBnZXRDaGlsZE5vZGVzKCkge1xuICAgIHJldHVybiB0aGlzLmNoaWxkTm9kZXM7XG4gIH1cblxuICBzZXRPdXRlck5vZGUob3V0ZXJOb2RlKSB7XG4gICAgdGhpcy5vdXRlck5vZGUgPSBvdXRlck5vZGU7XG4gIH1cblxuICBzZXRQYXJlbnROb2RlKHBhcmVudE5vZGUpIHtcbiAgICB0aGlzLnBhcmVudE5vZGUgPSBwYXJlbnROb2RlO1xuICB9XG5cbiAgc2V0Q2hpbGROb2RlcyhjaGlsZE5vZGVzKSB7XG4gICAgY29uc3Qgc3RhcnRJbmRleCA9IDAsXG4gICAgICAgICAgZGVsZXRlQ291bnQgPSBJbmZpbml0eSxcbiAgICAgICAgICBhZGRlZENoaWxkTm9kZXMgPSBjaGlsZE5vZGVzOyAgLy8vXG5cbiAgICB0aGlzLnNwbGljZUNoaWxkTm9kZXMoc3RhcnRJbmRleCwgZGVsZXRlQ291bnQsIGFkZGVkQ2hpbGROb2Rlcyk7XG4gIH1cblxuICBkZXN0cm95KCkge1xuICAgIHRoaXMub3V0ZXJOb2RlID0gbnVsbDtcblxuICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgfVxuXG4gIGFzU3RyaW5nKCkge1xuICAgIGxldCBzdHJpbmcgPSBFTVBUWV9TVFJJTkc7XG5cbiAgICBpZiAodGhpcy5vdXRlck5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG5vZGVUZXJtaW5hbE5vZGUgPSB0aGlzLm91dGVyTm9kZS5pc1Rlcm1pbmFsTm9kZSgpO1xuXG4gICAgICBpZiAobm9kZVRlcm1pbmFsTm9kZSkge1xuICAgICAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSB0aGlzLm91dGVyTm9kZSxcbiAgICAgICAgICAgICAgdHlwZSA9IHRlcm1pbmFsTm9kZS5nZXRUeXBlKCksXG4gICAgICAgICAgICAgIGNvbnRlbnQgPSB0ZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpO1xuXG4gICAgICAgIHN0cmluZyA9IGBcIiR7Y29udGVudH1cIiBbJHt0eXBlfV1gO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gdGhpcy5vdXRlck5vZGUsXG4gICAgICAgICAgICAgIHJ1bGVOYW1lID0gbm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCk7XG5cbiAgICAgICAgc3RyaW5nID0gcnVsZU5hbWU7ICAvLy9cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgYXNQYXJzZVRyZWUoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMsICAvLy9cbiAgICAgICAgICBub2RlUGFyc2VUcmVlID0gTm9kZVBhcnNlVHJlZS5mcm9tTm9kZShub2RlKSxcbiAgICAgICAgICBwYXJzZVRyZWUgPSBub2RlUGFyc2VUcmVlOyAgLy8vXG5cbiAgICByZXR1cm4gcGFyc2VUcmVlO1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob3RoaW5nKENsYXNzKSB7XG4gICAgaWYgKENsYXNzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIENsYXNzID0gTm9kZTsgLy8vXG4gICAgfVxuXG4gICAgY29uc3Qgb3V0ZXJOb2RlID0gbnVsbCxcbiAgICAgICAgICBwYXJlbnROb2RlID0gbnVsbCxcbiAgICAgICAgICBjaGlsZE5vZGVzID0gW10sXG4gICAgICAgICAgbm9kZSA9IG5ldyBDbGFzcyhvdXRlck5vZGUsIHBhcmVudE5vZGUsIGNoaWxkTm9kZXMpO1xuXG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbU91dGVyTm9kZShDbGFzcywgb3V0ZXJOb2RlKSB7XG4gICAgaWYgKG91dGVyTm9kZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBvdXRlck5vZGUgPSBDbGFzczsgIC8vL1xuXG4gICAgICBDbGFzcyA9IE5vZGU7IC8vL1xuICAgIH1cblxuICAgIGNvbnN0IHBhcmVudE5vZGUgPSBudWxsLFxuICAgICAgICAgIGNoaWxkTm9kZXMgPSBbXSxcbiAgICAgICAgICBub2RlID0gbmV3IENsYXNzKG91dGVyTm9kZSwgcGFyZW50Tm9kZSwgY2hpbGROb2Rlcyk7XG5cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIk5vZGUiLCJvdXRlck5vZGUiLCJwYXJlbnROb2RlIiwiY2hpbGROb2RlcyIsImdldE91dGVyTm9kZSIsImdldFBhcmVudE5vZGUiLCJnZXRDaGlsZE5vZGVzIiwic2V0T3V0ZXJOb2RlIiwic2V0UGFyZW50Tm9kZSIsInNldENoaWxkTm9kZXMiLCJzdGFydEluZGV4IiwiZGVsZXRlQ291bnQiLCJJbmZpbml0eSIsImFkZGVkQ2hpbGROb2RlcyIsInNwbGljZUNoaWxkTm9kZXMiLCJkZXN0cm95IiwiYXNTdHJpbmciLCJzdHJpbmciLCJFTVBUWV9TVFJJTkciLCJub2RlVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJ0ZXJtaW5hbE5vZGUiLCJ0eXBlIiwiZ2V0VHlwZSIsImNvbnRlbnQiLCJnZXRDb250ZW50Iiwibm9uVGVybWluYWxOb2RlIiwicnVsZU5hbWUiLCJnZXRSdWxlTmFtZSIsImFzUGFyc2VUcmVlIiwibm9kZSIsIm5vZGVQYXJzZVRyZWUiLCJOb2RlUGFyc2VUcmVlIiwiZnJvbU5vZGUiLCJwYXJzZVRyZWUiLCJmcm9tTm90aGluZyIsIkNsYXNzIiwidW5kZWZpbmVkIiwiZnJvbU91dGVyTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFNcUJBOzs7MkRBSks7eUJBRUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVkLElBQUEsQUFBTUEscUJBQU47YUFBTUEsS0FDUEMsU0FBUyxFQUFFQyxVQUFVLEVBQUVDLFVBQVU7Z0NBRDFCSDtRQUVqQixJQUFJLENBQUNDLFNBQVMsR0FBR0E7UUFDakIsSUFBSSxDQUFDQyxVQUFVLEdBQUdBO1FBQ2xCLElBQUksQ0FBQ0MsVUFBVSxHQUFHQTs7a0JBSkRIOztZQU9uQkksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSCxTQUFTO1lBQ3ZCOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSCxVQUFVO1lBQ3hCOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSCxVQUFVO1lBQ3hCOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBLGFBQWFOLFNBQVM7Z0JBQ3BCLElBQUksQ0FBQ0EsU0FBUyxHQUFHQTtZQUNuQjs7O1lBRUFPLEtBQUFBO21CQUFBQSxTQUFBQSxjQUFjTixVQUFVO2dCQUN0QixJQUFJLENBQUNBLFVBQVUsR0FBR0E7WUFDcEI7OztZQUVBTyxLQUFBQTttQkFBQUEsU0FBQUEsY0FBY04sVUFBVTtnQkFDdEIsSUFBTU8sYUFBYSxHQUNiQyxjQUFjQyxVQUNkQyxrQkFBa0JWLFlBQWEsR0FBRztnQkFFeEMsSUFBSSxDQUFDVyxnQkFBZ0IsQ0FBQ0osWUFBWUMsYUFBYUU7WUFDakQ7OztZQUVBRSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBSSxDQUFDZCxTQUFTLEdBQUc7Z0JBRWpCLHVCQXRDaUJELGlCQXNDWGUsV0FBTixJQUFLO1lBQ1A7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBSUMsU0FBU0MsdUJBQVk7Z0JBRXpCLElBQUksSUFBSSxDQUFDakIsU0FBUyxLQUFLLE1BQU07b0JBQzNCLElBQU1rQixtQkFBbUIsSUFBSSxDQUFDbEIsU0FBUyxDQUFDbUIsY0FBYztvQkFFdEQsSUFBSUQsa0JBQWtCO3dCQUNwQixJQUFNRSxlQUFlLElBQUksQ0FBQ3BCLFNBQVMsRUFDN0JxQixPQUFPRCxhQUFhRSxPQUFPLElBQzNCQyxVQUFVSCxhQUFhSSxVQUFVO3dCQUV2Q1IsU0FBUyxBQUFDLElBQWdCSyxPQUFiRSxTQUFRLE9BQVUsT0FBTEYsTUFBSztvQkFDakMsT0FBTzt3QkFDTCxJQUFNSSxrQkFBa0IsSUFBSSxDQUFDekIsU0FBUyxFQUNoQzBCLFdBQVdELGdCQUFnQkUsV0FBVzt3QkFFNUNYLFNBQVNVLFVBQVcsR0FBRztvQkFDekI7Z0JBQ0Y7Z0JBRUEsT0FBT1Y7WUFDVDs7O1lBRUFZLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyxPQUFPLElBQUksRUFDWEMsZ0JBQWdCQyxhQUFhLENBQUNDLFFBQVEsQ0FBQ0gsT0FDdkNJLFlBQVlILGVBQWdCLEdBQUc7Z0JBRXJDLE9BQU9HO1lBQ1Q7Ozs7WUFFT0MsS0FBQUE7bUJBQVAsU0FBT0EsWUFBWUMsS0FBSztnQkFDdEIsSUFBSUEsVUFBVUMsV0FBVztvQkFDdkJELFFBMUVlcEMsTUEwRUQsR0FBRztnQkFDbkI7Z0JBRUEsSUFBTUMsWUFBWSxNQUNaQyxhQUFhLE1BQ2JDLGFBQWEsRUFBRSxFQUNmMkIsT0FBTyxJQUFJTSxNQUFNbkMsV0FBV0MsWUFBWUM7Z0JBRTlDLE9BQU8yQjtZQUNUOzs7WUFFT1EsS0FBQUE7bUJBQVAsU0FBT0EsY0FBY0YsS0FBSyxFQUFFbkMsU0FBUztnQkFDbkMsSUFBSUEsY0FBY29DLFdBQVc7b0JBQzNCcEMsWUFBWW1DLE9BQVEsR0FBRztvQkFFdkJBLFFBekZlcEMsTUF5RkQsR0FBRztnQkFDbkI7Z0JBRUEsSUFBTUUsYUFBYSxNQUNiQyxhQUFhLEVBQUUsRUFDZjJCLE9BQU8sSUFBSU0sTUFBTW5DLFdBQVdDLFlBQVlDO2dCQUU5QyxPQUFPMkI7WUFDVDs7O1dBakdtQjlCIn0=
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-dom",
3
3
  "author": "James Smith",
4
- "version": "5.0.9",
4
+ "version": "5.0.10",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-dom",
7
7
  "description": "Occam's DOM related functionality.",
@@ -10,8 +10,8 @@
10
10
  "url": "https://github.com/djalbat/occam-dom"
11
11
  },
12
12
  "dependencies": {
13
- "occam-parsers": "^23.0.114",
14
- "occam-query": "^4.1.73"
13
+ "occam-parsers": "^23.0.117",
14
+ "occam-query": "^4.1.75"
15
15
  },
16
16
  "devDependencies": {
17
17
  "@swc/core": "^1.5.6",
package/src/node.js CHANGED
@@ -32,171 +32,17 @@ export default class Node {
32
32
  }
33
33
 
34
34
  setChildNodes(childNodes) {
35
- this.childNodes = childNodes;
36
- }
37
-
38
- getMultiplicity() {
39
- const childNodesLength = this.childNodes.length,
40
- multiplicity = childNodesLength; ///
41
-
42
- return multiplicity;
43
- }
44
-
45
- mapChildNode(callback) { return this.childNodes.map(callback); }
46
-
47
- someChildNode(callback) { return this.childNodes.some(callback); }
48
-
49
- findChildNode(callback) { return this.childNodes.find(callback); }
50
-
51
- everyChildNode(callback) { return this.childNodes.every(callback); }
52
-
53
- filterChildNode(callback) { return this.childNodes.filter(callback); }
54
-
55
- reduceChildNode(callback, initialValue) { return this.childNodes.reduce(callback, initialValue); }
56
-
57
- forEachChildNode(callback) { this.childNodes.forEach(callback); }
58
-
59
- setChildNodesParentNode(childNodes) {
60
- if (childNodes === undefined) {
61
- childNodes = [
62
- ...this.childNodes
63
- ];
64
- }
65
-
66
- const parentNode = this;
67
-
68
- childNodes.forEach((childNode) => {
69
- childNode.setParentNode(parentNode);
70
- });
71
- }
72
-
73
- resetChildNodesParentNode(childNodes) {
74
- if (childNodes === undefined) {
75
- childNodes = [
76
- ...this.childNodes
77
- ];
78
- }
79
-
80
- const parentNode = null;
81
-
82
- childNodes.forEach((childNode) => {
83
- childNode.setParentNode(parentNode);
84
- });
85
- }
86
-
87
- addChildNode(addedChildNode, startIndex) {
88
- const addedChildNodes = [
89
- addedChildNode
90
- ];
91
-
92
- this.addChildNodes(addedChildNodes, startIndex);
93
- }
94
-
95
- addChildNodes(addedChildNodes, startIndex) {
96
- const deleteCount = 0;
35
+ const startIndex = 0,
36
+ deleteCount = Infinity,
37
+ addedChildNodes = childNodes; ///
97
38
 
98
39
  this.spliceChildNodes(startIndex, deleteCount, addedChildNodes);
99
40
  }
100
41
 
101
- removeChildNode(removedChildNode) {
102
- let removedChildNodes;
103
-
104
- removedChildNodes = [
105
- removedChildNode
106
- ];
107
-
108
- removedChildNodes = this.removeChildNodes(removedChildNodes);
109
-
110
- return removedChildNodes;
111
- }
112
-
113
- removeChildNodes(removedChildNodes) {
114
- if (removedChildNodes === undefined) {
115
- removedChildNodes = [
116
- ...this.childNodes
117
- ];
118
- }
119
-
120
- const removedChildNodesLength = removedChildNodes.length;
121
-
122
- if (removedChildNodesLength === 0) {
123
- return;
124
- }
125
-
126
- const firstReplacedChildNode = first(removedChildNodes),
127
- firstIndex = this.childNodes.indexOf(firstReplacedChildNode),
128
- startIndex = firstIndex, ///
129
- deleteCount = removedChildNodesLength, ///
130
- addedChildNodes = [];
131
-
132
- removedChildNodes = this.spliceChildNodes(startIndex, deleteCount, addedChildNodes);
133
-
134
- return removedChildNodes;
135
- }
136
-
137
- replaceChildNode(replacedChildNode, replacementChildNodes) {
138
- const replacedChildNodes = [
139
- replacedChildNode
140
- ];
141
-
142
- this.replaceChildNodes(replacedChildNodes, replacementChildNodes);
143
- }
144
-
145
- replaceChildNodes(replacedChildNodes, replacementChildNodes) {
146
- const replacedChildNodesLength = replacedChildNodes.length,
147
- firstReplacedChildNode = first(replacedChildNodes),
148
- firstIndex = this.childNodes.indexOf(firstReplacedChildNode),
149
- startIndex = firstIndex, ///
150
- deleteCount = replacedChildNodesLength; ///
151
-
152
- this.spliceChildNodes(startIndex, deleteCount, replacementChildNodes);
153
- }
154
-
155
- appendChildNode(appendedChildNode) {
156
- const appendedChildNodes = [
157
- appendedChildNode
158
- ];
159
-
160
- this.appendChildNodes(appendedChildNodes);
161
- }
162
-
163
- appendChildNodes(appendedChildNodes) {
164
- const addedChildNodes = appendedChildNodes, ///
165
- multiplicity = this.getMultiplicity(),
166
- startIndex = multiplicity; ///
167
-
168
- this.addChildNodes(addedChildNodes, startIndex);
169
- }
170
-
171
- prependChildNode(prependedChildNode) {
172
- const prependedChildNodes = [
173
- prependedChildNode
174
- ];
175
-
176
- this.prependChildNodes(prependedChildNodes);
177
- }
178
-
179
- prependChildNodes(prependedChildNodes) {
180
- const addedChildNodes = prependedChildNodes, ///
181
- startIndex = 0;
182
-
183
- this.addChildNodes(addedChildNodes, startIndex);
184
- }
185
-
186
- spliceChildNodes(startIndex, deleteCount, addedChildNodes = []) {
187
- const removedChildNodes = this.childNodes.splice(startIndex, deleteCount, ...addedChildNodes);
188
-
189
- this.resetChildNodesParentNode(removedChildNodes);
190
-
191
- this.setChildNodesParentNode(addedChildNodes);
192
-
193
- return removedChildNodes;
194
- }
195
-
196
- sliceChildNodes(startIndex, endIndex = Infinity) {
197
- const childNodes = this.childNodes.slice(startIndex, endIndex);
42
+ destroy() {
43
+ this.outerNode = null;
198
44
 
199
- return childNodes;
45
+ super.destroy();
200
46
  }
201
47
 
202
48
  asString() {