vsn 0.1.123 → 0.1.124

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 (140) hide show
  1. package/demo/demo.html +4 -1
  2. package/demo/resources/xhr-animations.html +24 -0
  3. package/demo/resources/xhr-lazy.html +10 -1
  4. package/demo/silly-animations.html +12 -24
  5. package/demo/vsn.js +2 -2
  6. package/dist/AST/ArrayNode.js +70 -18
  7. package/dist/AST/ArrayNode.js.map +1 -1
  8. package/dist/AST/AssignmentNode.js +92 -35
  9. package/dist/AST/AssignmentNode.js.map +1 -1
  10. package/dist/AST/BlockNode.js +17 -1
  11. package/dist/AST/BlockNode.js.map +1 -1
  12. package/dist/AST/ClassNode.js +225 -87
  13. package/dist/AST/ClassNode.js.map +1 -1
  14. package/dist/AST/ElementAttributeNode.js +55 -29
  15. package/dist/AST/ElementAttributeNode.js.map +1 -1
  16. package/dist/AST/ElementStyleNode.js +48 -22
  17. package/dist/AST/ElementStyleNode.js.map +1 -1
  18. package/dist/AST/FunctionArgumentNode.js +57 -15
  19. package/dist/AST/FunctionArgumentNode.js.map +1 -1
  20. package/dist/AST/FunctionCallNode.js +120 -52
  21. package/dist/AST/FunctionCallNode.js.map +1 -1
  22. package/dist/AST/FunctionNode.js +57 -14
  23. package/dist/AST/FunctionNode.js.map +1 -1
  24. package/dist/AST/IfStatementNode.js +52 -12
  25. package/dist/AST/IfStatementNode.js.map +1 -1
  26. package/dist/AST/IndexNode.js +24 -3
  27. package/dist/AST/IndexNode.js.map +1 -1
  28. package/dist/AST/ModifierNode.js +1 -1
  29. package/dist/AST/ModifierNode.js.map +1 -1
  30. package/dist/AST/Node.d.ts +3 -2
  31. package/dist/AST/Node.js +132 -39
  32. package/dist/AST/Node.js.map +1 -1
  33. package/dist/AST/ObjectNode.js +17 -1
  34. package/dist/AST/ObjectNode.js.map +1 -1
  35. package/dist/AST/OnNode.js +23 -2
  36. package/dist/AST/OnNode.js.map +1 -1
  37. package/dist/AST/ScopeMemberNode.js +40 -16
  38. package/dist/AST/ScopeMemberNode.js.map +1 -1
  39. package/dist/AST/ScopeNodeAbstract.js +29 -8
  40. package/dist/AST/ScopeNodeAbstract.js.map +1 -1
  41. package/dist/AST/StringFormatNode.js +42 -5
  42. package/dist/AST/StringFormatNode.js.map +1 -1
  43. package/dist/AST/WASM/Function.js +20 -4
  44. package/dist/AST/WASM/Function.js.map +1 -1
  45. package/dist/AST/WASM.js +26 -10
  46. package/dist/AST/WASM.js.map +1 -1
  47. package/dist/AST/WithNode.js +81 -41
  48. package/dist/AST/WithNode.js.map +1 -1
  49. package/dist/AST.js +91 -37
  50. package/dist/AST.js.map +1 -1
  51. package/dist/Attribute.d.ts +3 -0
  52. package/dist/Attribute.js +43 -19
  53. package/dist/Attribute.js.map +1 -1
  54. package/dist/Bencmark.js +77 -20
  55. package/dist/Bencmark.js.map +1 -1
  56. package/dist/Component.js +49 -15
  57. package/dist/Component.js.map +1 -1
  58. package/dist/DOM/DOMObject.d.ts +6 -1
  59. package/dist/DOM/DOMObject.js +22 -1
  60. package/dist/DOM/DOMObject.js.map +1 -1
  61. package/dist/DOM.js +450 -193
  62. package/dist/DOM.js.map +1 -1
  63. package/dist/EventDispatcher.js +153 -39
  64. package/dist/EventDispatcher.js.map +1 -1
  65. package/dist/MessageList.js +37 -6
  66. package/dist/MessageList.js.map +1 -1
  67. package/dist/Model.js +27 -6
  68. package/dist/Model.js.map +1 -1
  69. package/dist/Modifiers.d.ts +17 -0
  70. package/dist/Modifiers.js +100 -0
  71. package/dist/Modifiers.js.map +1 -0
  72. package/dist/Scope/DynamicScopeData.js +38 -7
  73. package/dist/Scope/DynamicScopeData.js.map +1 -1
  74. package/dist/Scope/ScopeData.js +29 -8
  75. package/dist/Scope/ScopeData.js.map +1 -1
  76. package/dist/Scope/ScopeDataAbstract.js +103 -27
  77. package/dist/Scope/ScopeDataAbstract.js.map +1 -1
  78. package/dist/Scope/WrappedArray.js +112 -26
  79. package/dist/Scope/WrappedArray.js.map +1 -1
  80. package/dist/Scope/properties/ArrayProperty.js +17 -1
  81. package/dist/Scope/properties/ArrayProperty.js.map +1 -1
  82. package/dist/Scope/properties/Property.js +38 -7
  83. package/dist/Scope/properties/Property.js.map +1 -1
  84. package/dist/Scope.js +70 -13
  85. package/dist/Scope.js.map +1 -1
  86. package/dist/SimplePromise.js +71 -30
  87. package/dist/SimplePromise.js.map +1 -1
  88. package/dist/Tag/TagList.js +22 -1
  89. package/dist/Tag/TagList.js.map +1 -1
  90. package/dist/Tag.d.ts +5 -9
  91. package/dist/Tag.js +512 -195
  92. package/dist/Tag.js.map +1 -1
  93. package/dist/attributes/KeyAbstract.js +1 -1
  94. package/dist/attributes/KeyAbstract.js.map +1 -1
  95. package/dist/attributes/KeyDown.js +1 -1
  96. package/dist/attributes/KeyDown.js.map +1 -1
  97. package/dist/attributes/KeyUp.js +1 -1
  98. package/dist/attributes/KeyUp.js.map +1 -1
  99. package/dist/attributes/LazyAttribute.js +4 -2
  100. package/dist/attributes/LazyAttribute.js.map +1 -1
  101. package/dist/attributes/List.js +77 -30
  102. package/dist/attributes/List.js.map +1 -1
  103. package/dist/attributes/On.d.ts +1 -1
  104. package/dist/attributes/On.js +10 -10
  105. package/dist/attributes/On.js.map +1 -1
  106. package/dist/attributes/RootAttribute.js +29 -8
  107. package/dist/attributes/RootAttribute.js.map +1 -1
  108. package/dist/attributes/ScopeAttribute.js +30 -9
  109. package/dist/attributes/ScopeAttribute.js.map +1 -1
  110. package/dist/attributes/SetAttribute.js +32 -11
  111. package/dist/attributes/SetAttribute.js.map +1 -1
  112. package/dist/attributes/StyleAttribute.js +27 -6
  113. package/dist/attributes/StyleAttribute.js.map +1 -1
  114. package/dist/attributes/XHRAttribute.js +28 -7
  115. package/dist/attributes/XHRAttribute.js.map +1 -1
  116. package/dist/helpers/ElementHelper.js +25 -4
  117. package/dist/helpers/ElementHelper.js.map +1 -1
  118. package/dist/helpers/decorators.js +22 -1
  119. package/dist/helpers/decorators.js.map +1 -1
  120. package/dist/version.d.ts +1 -1
  121. package/dist/version.js +1 -1
  122. package/package.json +1 -1
  123. package/src/AST/FunctionNode.ts +2 -0
  124. package/src/AST/ModifierNode.ts +1 -1
  125. package/src/AST/Node.ts +10 -5
  126. package/src/AST/OnNode.ts +1 -1
  127. package/src/AST/ScopeNodeAbstract.ts +3 -3
  128. package/src/AST.ts +1 -1
  129. package/src/Attribute.ts +19 -8
  130. package/src/DOM/DOMObject.ts +4 -1
  131. package/src/Modifiers.ts +54 -0
  132. package/src/Tag.ts +66 -37
  133. package/src/attributes/KeyAbstract.ts +1 -1
  134. package/src/attributes/KeyDown.ts +1 -1
  135. package/src/attributes/KeyUp.ts +1 -1
  136. package/src/attributes/LazyAttribute.ts +6 -2
  137. package/src/attributes/On.ts +10 -9
  138. package/src/attributes/XHRAttribute.ts +2 -2
  139. package/src/version.ts +1 -1
  140. package/tsconfig.base.json +2 -1
package/dist/DOM.js CHANGED
@@ -50,6 +50,33 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
50
50
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
51
  }
52
52
  };
53
+ var __values = (this && this.__values) || function(o) {
54
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
55
+ if (m) return m.call(o);
56
+ if (o && typeof o.length === "number") return {
57
+ next: function () {
58
+ if (o && i >= o.length) o = void 0;
59
+ return { value: o && o[i++], done: !o };
60
+ }
61
+ };
62
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
63
+ };
64
+ var __read = (this && this.__read) || function (o, n) {
65
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
66
+ if (!m) return o;
67
+ var i = m.call(o), r, ar = [], e;
68
+ try {
69
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
70
+ }
71
+ catch (error) { e = { error: error }; }
72
+ finally {
73
+ try {
74
+ if (r && !r.done && (m = i["return"])) m.call(i);
75
+ }
76
+ finally { if (e) throw e.error; }
77
+ }
78
+ return ar;
79
+ };
53
80
  var __spreadArray = (this && this.__spreadArray) || function (to, from) {
54
81
  for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
55
82
  to[j] = from[i];
@@ -182,6 +209,7 @@ var DOM = /** @class */ (function (_super) {
182
209
  return tag.element.closest(q);
183
210
  };
184
211
  DOM.prototype.querySelectPath = function (path, element) {
212
+ var e_1, _a;
185
213
  if (element === void 0) { element = null; }
186
214
  var current = path.shift();
187
215
  if (!current)
@@ -189,9 +217,18 @@ var DOM = /** @class */ (function (_super) {
189
217
  var elements = Array.from(element ? this.querySelectorElement(element, current) : this.querySelectorAll(current));
190
218
  if (path.length > 0) {
191
219
  var result = [];
192
- for (var _i = 0, elements_1 = elements; _i < elements_1.length; _i++) {
193
- var _element = elements_1[_i];
194
- result.push.apply(result, this.querySelectPath(__spreadArray([], path), _element));
220
+ try {
221
+ for (var elements_1 = __values(elements), elements_1_1 = elements_1.next(); !elements_1_1.done; elements_1_1 = elements_1.next()) {
222
+ var _element = elements_1_1.value;
223
+ result.push.apply(result, __spreadArray([], __read(this.querySelectPath(__spreadArray([], __read(path)), _element))));
224
+ }
225
+ }
226
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
227
+ finally {
228
+ try {
229
+ if (elements_1_1 && !elements_1_1.done && (_a = elements_1.return)) _a.call(elements_1);
230
+ }
231
+ finally { if (e_1) throw e_1.error; }
195
232
  }
196
233
  return result;
197
234
  }
@@ -203,20 +240,30 @@ var DOM = /** @class */ (function (_super) {
203
240
  return this.querySelectorElement(element, q);
204
241
  };
205
242
  DOM.prototype.querySelectorElement = function (element, q) {
243
+ var e_2, _a;
206
244
  var parentIndex = q.indexOf(':parent');
207
245
  if (parentIndex > -1) {
208
246
  var _q = q.substring(0, parentIndex);
209
247
  var rest = q.substring(parentIndex + 7);
210
248
  if (_q.length > 0) {
211
249
  var nodeList = [];
212
- for (var _i = 0, _a = Array.from(this.querySelectorElement(element, _q)); _i < _a.length; _i++) {
213
- var _element = _a[_i];
214
- if (rest.length > 0) {
215
- nodeList.push.apply(nodeList, Array.from(this.querySelectorElement(DOM.getParentElement(_element), rest)));
250
+ try {
251
+ for (var _b = __values(Array.from(this.querySelectorElement(element, _q))), _c = _b.next(); !_c.done; _c = _b.next()) {
252
+ var _element = _c.value;
253
+ if (rest.length > 0) {
254
+ nodeList.push.apply(nodeList, __spreadArray([], __read(Array.from(this.querySelectorElement(DOM.getParentElement(_element), rest)))));
255
+ }
256
+ else {
257
+ nodeList.push(DOM.getParentElement(_element));
258
+ }
216
259
  }
217
- else {
218
- nodeList.push(DOM.getParentElement(_element));
260
+ }
261
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
262
+ finally {
263
+ try {
264
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
219
265
  }
266
+ finally { if (e_2) throw e_2.error; }
220
267
  }
221
268
  return nodeList;
222
269
  }
@@ -254,70 +301,110 @@ var DOM = /** @class */ (function (_super) {
254
301
  };
255
302
  DOM.prototype.evaluate = function () {
256
303
  return __awaiter(this, void 0, void 0, function () {
257
- var _i, _a, tag;
258
- return __generator(this, function (_b) {
259
- switch (_b.label) {
304
+ var _a, _b, tag, e_3_1;
305
+ var e_3, _c;
306
+ return __generator(this, function (_d) {
307
+ switch (_d.label) {
260
308
  case 0:
261
309
  clearTimeout(this.evaluateTimeout);
262
- _i = 0, _a = this.tags;
263
- _b.label = 1;
310
+ _d.label = 1;
264
311
  case 1:
265
- if (!(_i < _a.length)) return [3 /*break*/, 4];
266
- tag = _a[_i];
267
- return [4 /*yield*/, tag.evaluate()];
312
+ _d.trys.push([1, 6, 7, 8]);
313
+ _a = __values(this.tags), _b = _a.next();
314
+ _d.label = 2;
268
315
  case 2:
269
- _b.sent();
270
- _b.label = 3;
316
+ if (!!_b.done) return [3 /*break*/, 5];
317
+ tag = _b.value;
318
+ return [4 /*yield*/, tag.evaluate()];
271
319
  case 3:
272
- _i++;
273
- return [3 /*break*/, 1];
274
- case 4: return [2 /*return*/];
320
+ _d.sent();
321
+ _d.label = 4;
322
+ case 4:
323
+ _b = _a.next();
324
+ return [3 /*break*/, 2];
325
+ case 5: return [3 /*break*/, 8];
326
+ case 6:
327
+ e_3_1 = _d.sent();
328
+ e_3 = { error: e_3_1 };
329
+ return [3 /*break*/, 8];
330
+ case 7:
331
+ try {
332
+ if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
333
+ }
334
+ finally { if (e_3) throw e_3.error; }
335
+ return [7 /*endfinally*/];
336
+ case 8: return [2 /*return*/];
275
337
  }
276
338
  });
277
339
  });
278
340
  };
279
341
  DOM.prototype.mutation = function (mutations) {
280
342
  return __awaiter(this, void 0, void 0, function () {
281
- var _i, mutations_1, mutation, tag, _a, _b, ele, toRemove;
282
- return __generator(this, function (_c) {
283
- switch (_c.label) {
343
+ var mutations_1, mutations_1_1, mutation, tag, _a, _b, ele, toRemove, e_4_1, e_5_1;
344
+ var e_5, _c, e_4, _d;
345
+ return __generator(this, function (_e) {
346
+ switch (_e.label) {
284
347
  case 0:
285
- _i = 0, mutations_1 = mutations;
286
- _c.label = 1;
348
+ _e.trys.push([0, 13, 14, 15]);
349
+ mutations_1 = __values(mutations), mutations_1_1 = mutations_1.next();
350
+ _e.label = 1;
287
351
  case 1:
288
- if (!(_i < mutations_1.length)) return [3 /*break*/, 9];
289
- mutation = mutations_1[_i];
352
+ if (!!mutations_1_1.done) return [3 /*break*/, 12];
353
+ mutation = mutations_1_1.value;
290
354
  return [4 /*yield*/, this.getTagForElement(mutation.target)];
291
355
  case 2:
292
- tag = _c.sent();
356
+ tag = _e.sent();
293
357
  if (tag) {
294
358
  tag.mutate(mutation);
295
359
  }
296
360
  if (!(mutation.type === 'attributes' && mutation.attributeName === 'class')) return [3 /*break*/, 4];
297
361
  return [4 /*yield*/, ClassNode_1.ClassNode.checkForClassChanges(mutation.target, this, tag)];
298
362
  case 3:
299
- _c.sent();
300
- _c.label = 4;
363
+ _e.sent();
364
+ _e.label = 4;
301
365
  case 4:
302
- _a = 0, _b = Array.from(mutation.removedNodes);
303
- _c.label = 5;
366
+ _e.trys.push([4, 9, 10, 11]);
367
+ _a = (e_4 = void 0, __values(Array.from(mutation.removedNodes))), _b = _a.next();
368
+ _e.label = 5;
304
369
  case 5:
305
- if (!(_a < _b.length)) return [3 /*break*/, 8];
306
- ele = _b[_a];
370
+ if (!!_b.done) return [3 /*break*/, 8];
371
+ ele = _b.value;
307
372
  return [4 /*yield*/, this.getTagForElement(ele)];
308
373
  case 6:
309
- toRemove = _c.sent();
374
+ toRemove = _e.sent();
310
375
  if (toRemove) {
311
376
  toRemove.deconstruct();
312
377
  }
313
- _c.label = 7;
378
+ _e.label = 7;
314
379
  case 7:
315
- _a++;
380
+ _b = _a.next();
316
381
  return [3 /*break*/, 5];
317
- case 8:
318
- _i++;
382
+ case 8: return [3 /*break*/, 11];
383
+ case 9:
384
+ e_4_1 = _e.sent();
385
+ e_4 = { error: e_4_1 };
386
+ return [3 /*break*/, 11];
387
+ case 10:
388
+ try {
389
+ if (_b && !_b.done && (_d = _a.return)) _d.call(_a);
390
+ }
391
+ finally { if (e_4) throw e_4.error; }
392
+ return [7 /*endfinally*/];
393
+ case 11:
394
+ mutations_1_1 = mutations_1.next();
319
395
  return [3 /*break*/, 1];
320
- case 9: return [2 /*return*/];
396
+ case 12: return [3 /*break*/, 15];
397
+ case 13:
398
+ e_5_1 = _e.sent();
399
+ e_5 = { error: e_5_1 };
400
+ return [3 /*break*/, 15];
401
+ case 14:
402
+ try {
403
+ if (mutations_1_1 && !mutations_1_1.done && (_c = mutations_1.return)) _c.call(mutations_1);
404
+ }
405
+ finally { if (e_5) throw e_5.error; }
406
+ return [7 /*endfinally*/];
407
+ case 15: return [2 /*return*/];
321
408
  }
322
409
  });
323
410
  });
@@ -345,12 +432,22 @@ var DOM = /** @class */ (function (_super) {
345
432
  return true;
346
433
  };
347
434
  scanChildren = function (e) {
348
- for (var _i = 0, _a = Array.from(e.children); _i < _a.length; _i++) {
349
- var element = _a[_i];
350
- if (!checkElement(element))
351
- continue;
352
- if (element.tagName.toLowerCase() !== 'template')
353
- scanChildren(element);
435
+ var e_6, _a;
436
+ try {
437
+ for (var _b = __values(Array.from(e.children)), _c = _b.next(); !_c.done; _c = _b.next()) {
438
+ var element = _c.value;
439
+ if (!checkElement(element))
440
+ continue;
441
+ if (element.tagName.toLowerCase() !== 'template')
442
+ scanChildren(element);
443
+ }
444
+ }
445
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
446
+ finally {
447
+ try {
448
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
449
+ }
450
+ finally { if (e_6) throw e_6.error; }
354
451
  }
355
452
  };
356
453
  checkElement(ele);
@@ -379,97 +476,179 @@ var DOM = /** @class */ (function (_super) {
379
476
  };
380
477
  DOM.prototype.setupTags = function (tags) {
381
478
  return __awaiter(this, void 0, void 0, function () {
382
- var _i, tags_1, tag, _a, tags_2, tag, _b, tags_3, tag, _c, tags_4, tag, _d, tags_5, tag, _e, tags_6, tag, _f, tags_7, tag;
383
- return __generator(this, function (_g) {
384
- switch (_g.label) {
479
+ var tags_1, tags_1_1, tag, e_7_1, tags_2, tags_2_1, tag, e_8_1, tags_3, tags_3_1, tag, e_9_1, tags_4, tags_4_1, tag, e_10_1, tags_5, tags_5_1, tag, e_11_1, tags_6, tags_6_1, tag, e_12_1, tags_7, tags_7_1, tag;
480
+ var e_7, _a, e_8, _b, e_9, _c, e_10, _d, e_11, _e, e_12, _f, e_13, _g;
481
+ return __generator(this, function (_h) {
482
+ switch (_h.label) {
385
483
  case 0:
386
- _i = 0, tags_1 = tags;
387
- _g.label = 1;
484
+ _h.trys.push([0, 5, 6, 7]);
485
+ tags_1 = __values(tags), tags_1_1 = tags_1.next();
486
+ _h.label = 1;
388
487
  case 1:
389
- if (!(_i < tags_1.length)) return [3 /*break*/, 4];
390
- tag = tags_1[_i];
488
+ if (!!tags_1_1.done) return [3 /*break*/, 4];
489
+ tag = tags_1_1.value;
391
490
  return [4 /*yield*/, tag.buildAttributes()];
392
491
  case 2:
393
- _g.sent();
394
- _g.label = 3;
492
+ _h.sent();
493
+ _h.label = 3;
395
494
  case 3:
396
- _i++;
495
+ tags_1_1 = tags_1.next();
397
496
  return [3 /*break*/, 1];
398
- case 4:
399
- _a = 0, tags_2 = tags;
400
- _g.label = 5;
497
+ case 4: return [3 /*break*/, 7];
401
498
  case 5:
402
- if (!(_a < tags_2.length)) return [3 /*break*/, 8];
403
- tag = tags_2[_a];
404
- return [4 /*yield*/, tag.compileAttributes()];
499
+ e_7_1 = _h.sent();
500
+ e_7 = { error: e_7_1 };
501
+ return [3 /*break*/, 7];
405
502
  case 6:
406
- _g.sent();
407
- _g.label = 7;
503
+ try {
504
+ if (tags_1_1 && !tags_1_1.done && (_a = tags_1.return)) _a.call(tags_1);
505
+ }
506
+ finally { if (e_7) throw e_7.error; }
507
+ return [7 /*endfinally*/];
408
508
  case 7:
409
- _a++;
410
- return [3 /*break*/, 5];
509
+ _h.trys.push([7, 12, 13, 14]);
510
+ tags_2 = __values(tags), tags_2_1 = tags_2.next();
511
+ _h.label = 8;
411
512
  case 8:
412
- _b = 0, tags_3 = tags;
413
- _g.label = 9;
513
+ if (!!tags_2_1.done) return [3 /*break*/, 11];
514
+ tag = tags_2_1.value;
515
+ return [4 /*yield*/, tag.compileAttributes()];
414
516
  case 9:
415
- if (!(_b < tags_3.length)) return [3 /*break*/, 12];
416
- tag = tags_3[_b];
417
- return [4 /*yield*/, tag.setupAttributes()];
517
+ _h.sent();
518
+ _h.label = 10;
418
519
  case 10:
419
- _g.sent();
420
- _g.label = 11;
421
- case 11:
422
- _b++;
423
- return [3 /*break*/, 9];
520
+ tags_2_1 = tags_2.next();
521
+ return [3 /*break*/, 8];
522
+ case 11: return [3 /*break*/, 14];
424
523
  case 12:
425
- _c = 0, tags_4 = tags;
426
- _g.label = 13;
524
+ e_8_1 = _h.sent();
525
+ e_8 = { error: e_8_1 };
526
+ return [3 /*break*/, 14];
427
527
  case 13:
428
- if (!(_c < tags_4.length)) return [3 /*break*/, 16];
429
- tag = tags_4[_c];
430
- return [4 /*yield*/, tag.extractAttributes()];
528
+ try {
529
+ if (tags_2_1 && !tags_2_1.done && (_b = tags_2.return)) _b.call(tags_2);
530
+ }
531
+ finally { if (e_8) throw e_8.error; }
532
+ return [7 /*endfinally*/];
431
533
  case 14:
432
- _g.sent();
433
- _g.label = 15;
534
+ _h.trys.push([14, 19, 20, 21]);
535
+ tags_3 = __values(tags), tags_3_1 = tags_3.next();
536
+ _h.label = 15;
434
537
  case 15:
435
- _c++;
436
- return [3 /*break*/, 13];
538
+ if (!!tags_3_1.done) return [3 /*break*/, 18];
539
+ tag = tags_3_1.value;
540
+ return [4 /*yield*/, tag.setupAttributes()];
437
541
  case 16:
438
- _d = 0, tags_5 = tags;
439
- _g.label = 17;
542
+ _h.sent();
543
+ _h.label = 17;
440
544
  case 17:
441
- if (!(_d < tags_5.length)) return [3 /*break*/, 20];
442
- tag = tags_5[_d];
443
- return [4 /*yield*/, tag.connectAttributes()];
444
- case 18:
445
- _g.sent();
446
- _g.label = 19;
545
+ tags_3_1 = tags_3.next();
546
+ return [3 /*break*/, 15];
547
+ case 18: return [3 /*break*/, 21];
447
548
  case 19:
448
- _d++;
449
- return [3 /*break*/, 17];
549
+ e_9_1 = _h.sent();
550
+ e_9 = { error: e_9_1 };
551
+ return [3 /*break*/, 21];
450
552
  case 20:
451
- _e = 0, tags_6 = tags;
452
- _g.label = 21;
553
+ try {
554
+ if (tags_3_1 && !tags_3_1.done && (_c = tags_3.return)) _c.call(tags_3);
555
+ }
556
+ finally { if (e_9) throw e_9.error; }
557
+ return [7 /*endfinally*/];
453
558
  case 21:
454
- if (!(_e < tags_6.length)) return [3 /*break*/, 24];
455
- tag = tags_6[_e];
456
- return [4 /*yield*/, tag.finalize()];
559
+ _h.trys.push([21, 26, 27, 28]);
560
+ tags_4 = __values(tags), tags_4_1 = tags_4.next();
561
+ _h.label = 22;
457
562
  case 22:
458
- _g.sent();
459
- this.queued.splice(this.queued.indexOf(tag.element), 1);
460
- _g.label = 23;
563
+ if (!!tags_4_1.done) return [3 /*break*/, 25];
564
+ tag = tags_4_1.value;
565
+ return [4 /*yield*/, tag.extractAttributes()];
461
566
  case 23:
462
- _e++;
463
- return [3 /*break*/, 21];
567
+ _h.sent();
568
+ _h.label = 24;
464
569
  case 24:
465
- for (_f = 0, tags_7 = tags; _f < tags_7.length; _f++) {
466
- tag = tags_7[_f];
467
- this.observer.observe(tag.element, {
468
- attributes: true,
469
- characterData: true,
470
- childList: true,
471
- subtree: true
472
- });
570
+ tags_4_1 = tags_4.next();
571
+ return [3 /*break*/, 22];
572
+ case 25: return [3 /*break*/, 28];
573
+ case 26:
574
+ e_10_1 = _h.sent();
575
+ e_10 = { error: e_10_1 };
576
+ return [3 /*break*/, 28];
577
+ case 27:
578
+ try {
579
+ if (tags_4_1 && !tags_4_1.done && (_d = tags_4.return)) _d.call(tags_4);
580
+ }
581
+ finally { if (e_10) throw e_10.error; }
582
+ return [7 /*endfinally*/];
583
+ case 28:
584
+ _h.trys.push([28, 33, 34, 35]);
585
+ tags_5 = __values(tags), tags_5_1 = tags_5.next();
586
+ _h.label = 29;
587
+ case 29:
588
+ if (!!tags_5_1.done) return [3 /*break*/, 32];
589
+ tag = tags_5_1.value;
590
+ return [4 /*yield*/, tag.connectAttributes()];
591
+ case 30:
592
+ _h.sent();
593
+ _h.label = 31;
594
+ case 31:
595
+ tags_5_1 = tags_5.next();
596
+ return [3 /*break*/, 29];
597
+ case 32: return [3 /*break*/, 35];
598
+ case 33:
599
+ e_11_1 = _h.sent();
600
+ e_11 = { error: e_11_1 };
601
+ return [3 /*break*/, 35];
602
+ case 34:
603
+ try {
604
+ if (tags_5_1 && !tags_5_1.done && (_e = tags_5.return)) _e.call(tags_5);
605
+ }
606
+ finally { if (e_11) throw e_11.error; }
607
+ return [7 /*endfinally*/];
608
+ case 35:
609
+ _h.trys.push([35, 40, 41, 42]);
610
+ tags_6 = __values(tags), tags_6_1 = tags_6.next();
611
+ _h.label = 36;
612
+ case 36:
613
+ if (!!tags_6_1.done) return [3 /*break*/, 39];
614
+ tag = tags_6_1.value;
615
+ return [4 /*yield*/, tag.finalize()];
616
+ case 37:
617
+ _h.sent();
618
+ this.queued.splice(this.queued.indexOf(tag.element), 1);
619
+ _h.label = 38;
620
+ case 38:
621
+ tags_6_1 = tags_6.next();
622
+ return [3 /*break*/, 36];
623
+ case 39: return [3 /*break*/, 42];
624
+ case 40:
625
+ e_12_1 = _h.sent();
626
+ e_12 = { error: e_12_1 };
627
+ return [3 /*break*/, 42];
628
+ case 41:
629
+ try {
630
+ if (tags_6_1 && !tags_6_1.done && (_f = tags_6.return)) _f.call(tags_6);
631
+ }
632
+ finally { if (e_12) throw e_12.error; }
633
+ return [7 /*endfinally*/];
634
+ case 42:
635
+ try {
636
+ for (tags_7 = __values(tags), tags_7_1 = tags_7.next(); !tags_7_1.done; tags_7_1 = tags_7.next()) {
637
+ tag = tags_7_1.value;
638
+ this.observer.observe(tag.element, {
639
+ attributes: true,
640
+ characterData: true,
641
+ childList: true,
642
+ subtree: true
643
+ });
644
+ }
645
+ }
646
+ catch (e_13_1) { e_13 = { error: e_13_1 }; }
647
+ finally {
648
+ try {
649
+ if (tags_7_1 && !tags_7_1.done && (_g = tags_7.return)) _g.call(tags_7);
650
+ }
651
+ finally { if (e_13) throw e_13.error; }
473
652
  }
474
653
  return [2 /*return*/];
475
654
  }
@@ -480,9 +659,10 @@ var DOM = /** @class */ (function (_super) {
480
659
  if (isRoot === void 0) { isRoot = false; }
481
660
  if (forComponent === void 0) { forComponent = false; }
482
661
  return __awaiter(this, void 0, void 0, function () {
483
- var _a, templateNodes, components, _i, _b, n, tag, newTags, toBuild, _c, toBuild_1, element, tag;
484
- return __generator(this, function (_d) {
485
- switch (_d.label) {
662
+ var _a, templateNodes, components, _b, _c, n, tag, e_14_1, newTags, toBuild, toBuild_1, toBuild_1_1, element, tag, e_15_1;
663
+ var e_14, _d, e_15, _e;
664
+ return __generator(this, function (_f) {
665
+ switch (_f.label) {
486
666
  case 0:
487
667
  if (!isRoot) return [3 /*break*/, 3];
488
668
  document.body.setAttribute('vsn-root', '');
@@ -490,59 +670,87 @@ var DOM = /** @class */ (function (_super) {
490
670
  _a = this;
491
671
  return [4 /*yield*/, this.buildTag(document.body, true)];
492
672
  case 1:
493
- _a._root = _d.sent();
673
+ _a._root = _f.sent();
494
674
  this._root.createScope(true);
495
675
  return [4 /*yield*/, this.setupTags([this._root])];
496
676
  case 2:
497
- _d.sent();
498
- _d.label = 3;
677
+ _f.sent();
678
+ _f.label = 3;
499
679
  case 3:
500
680
  templateNodes = this.querySelectorElement(ele, 'template');
501
681
  components = [];
502
- _i = 0, _b = Array.from(templateNodes);
503
- _d.label = 4;
682
+ _f.label = 4;
504
683
  case 4:
505
- if (!(_i < _b.length)) return [3 /*break*/, 7];
506
- n = _b[_i];
684
+ _f.trys.push([4, 9, 10, 11]);
685
+ _b = __values(Array.from(templateNodes)), _c = _b.next();
686
+ _f.label = 5;
687
+ case 5:
688
+ if (!!_c.done) return [3 /*break*/, 8];
689
+ n = _c.value;
507
690
  if (!ElementHelper_1.ElementHelper.hasVisionAttribute(n))
508
- return [3 /*break*/, 6];
691
+ return [3 /*break*/, 7];
509
692
  return [4 /*yield*/, this.buildTag(n)];
510
- case 5:
511
- tag = _d.sent();
693
+ case 6:
694
+ tag = _f.sent();
512
695
  if (tag)
513
696
  components.push(tag);
514
- _d.label = 6;
515
- case 6:
516
- _i++;
517
- return [3 /*break*/, 4];
697
+ _f.label = 7;
518
698
  case 7:
519
- if (!components.length) return [3 /*break*/, 9];
520
- return [4 /*yield*/, this.setupTags(components)];
521
- case 8:
522
- _d.sent();
523
- _d.label = 9;
699
+ _c = _b.next();
700
+ return [3 /*break*/, 5];
701
+ case 8: return [3 /*break*/, 11];
524
702
  case 9:
525
- newTags = [];
526
- return [4 /*yield*/, this.discover(ele, forComponent)];
703
+ e_14_1 = _f.sent();
704
+ e_14 = { error: e_14_1 };
705
+ return [3 /*break*/, 11];
527
706
  case 10:
528
- toBuild = _d.sent();
529
- _c = 0, toBuild_1 = toBuild;
530
- _d.label = 11;
707
+ try {
708
+ if (_c && !_c.done && (_d = _b.return)) _d.call(_b);
709
+ }
710
+ finally { if (e_14) throw e_14.error; }
711
+ return [7 /*endfinally*/];
531
712
  case 11:
532
- if (!(_c < toBuild_1.length)) return [3 /*break*/, 14];
533
- element = toBuild_1[_c];
534
- return [4 /*yield*/, this.buildTag(element)];
713
+ if (!components.length) return [3 /*break*/, 13];
714
+ return [4 /*yield*/, this.setupTags(components)];
535
715
  case 12:
536
- tag = _d.sent();
537
- if (tag)
538
- newTags.push(tag);
539
- _d.label = 13;
716
+ _f.sent();
717
+ _f.label = 13;
540
718
  case 13:
541
- _c++;
542
- return [3 /*break*/, 11];
543
- case 14: return [4 /*yield*/, this.setupTags(newTags)];
719
+ newTags = [];
720
+ return [4 /*yield*/, this.discover(ele, forComponent)];
721
+ case 14:
722
+ toBuild = _f.sent();
723
+ _f.label = 15;
544
724
  case 15:
545
- _d.sent();
725
+ _f.trys.push([15, 20, 21, 22]);
726
+ toBuild_1 = __values(toBuild), toBuild_1_1 = toBuild_1.next();
727
+ _f.label = 16;
728
+ case 16:
729
+ if (!!toBuild_1_1.done) return [3 /*break*/, 19];
730
+ element = toBuild_1_1.value;
731
+ return [4 /*yield*/, this.buildTag(element)];
732
+ case 17:
733
+ tag = _f.sent();
734
+ if (tag)
735
+ newTags.push(tag);
736
+ _f.label = 18;
737
+ case 18:
738
+ toBuild_1_1 = toBuild_1.next();
739
+ return [3 /*break*/, 16];
740
+ case 19: return [3 /*break*/, 22];
741
+ case 20:
742
+ e_15_1 = _f.sent();
743
+ e_15 = { error: e_15_1 };
744
+ return [3 /*break*/, 22];
745
+ case 21:
746
+ try {
747
+ if (toBuild_1_1 && !toBuild_1_1.done && (_e = toBuild_1.return)) _e.call(toBuild_1);
748
+ }
749
+ finally { if (e_15) throw e_15.error; }
750
+ return [7 /*endfinally*/];
751
+ case 22: return [4 /*yield*/, this.setupTags(newTags)];
752
+ case 23:
753
+ _f.sent();
546
754
  if (isRoot) {
547
755
  this._built = true;
548
756
  this.dispatch('builtRoot');
@@ -556,41 +764,65 @@ var DOM = /** @class */ (function (_super) {
556
764
  DOM.prototype.getTagsForElements = function (elements, create) {
557
765
  if (create === void 0) { create = false; }
558
766
  return __awaiter(this, void 0, void 0, function () {
559
- var tags, found, _i, elements_2, element, notFound, i, element, _a, notFound_1, element, _b, _c;
560
- return __generator(this, function (_d) {
561
- switch (_d.label) {
767
+ var tags, found, elements_2, elements_2_1, element, notFound, i, element, notFound_1, notFound_1_1, element, _a, _b, e_16_1;
768
+ var e_17, _c, e_16, _d;
769
+ return __generator(this, function (_e) {
770
+ switch (_e.label) {
562
771
  case 0:
563
772
  tags = new TagList_1.TagList();
564
773
  found = [];
565
- for (_i = 0, elements_2 = elements; _i < elements_2.length; _i++) {
566
- element = elements_2[_i];
567
- if (element && element[Tag_1.Tag.TaggedVariable]) {
568
- tags.push(element[Tag_1.Tag.TaggedVariable]);
569
- found.push(element);
774
+ try {
775
+ for (elements_2 = __values(elements), elements_2_1 = elements_2.next(); !elements_2_1.done; elements_2_1 = elements_2.next()) {
776
+ element = elements_2_1.value;
777
+ if (element && element[Tag_1.Tag.TaggedVariable]) {
778
+ tags.push(element[Tag_1.Tag.TaggedVariable]);
779
+ found.push(element);
780
+ }
570
781
  }
571
782
  }
572
- if (!create) return [3 /*break*/, 4];
573
- notFound = __spreadArray([], elements);
783
+ catch (e_17_1) { e_17 = { error: e_17_1 }; }
784
+ finally {
785
+ try {
786
+ if (elements_2_1 && !elements_2_1.done && (_c = elements_2.return)) _c.call(elements_2);
787
+ }
788
+ finally { if (e_17) throw e_17.error; }
789
+ }
790
+ if (!create) return [3 /*break*/, 8];
791
+ notFound = __spreadArray([], __read(elements));
574
792
  for (i = notFound.length; i >= 0; i--) {
575
793
  element = notFound[i];
576
794
  if (found.indexOf(element) > -1) {
577
795
  notFound.splice(i, 1);
578
796
  }
579
797
  }
580
- _a = 0, notFound_1 = notFound;
581
- _d.label = 1;
798
+ _e.label = 1;
582
799
  case 1:
583
- if (!(_a < notFound_1.length)) return [3 /*break*/, 4];
584
- element = notFound_1[_a];
585
- _c = (_b = tags).push;
586
- return [4 /*yield*/, this.getTagForElement(element, create)];
800
+ _e.trys.push([1, 6, 7, 8]);
801
+ notFound_1 = __values(notFound), notFound_1_1 = notFound_1.next();
802
+ _e.label = 2;
587
803
  case 2:
588
- _c.apply(_b, [_d.sent()]);
589
- _d.label = 3;
804
+ if (!!notFound_1_1.done) return [3 /*break*/, 5];
805
+ element = notFound_1_1.value;
806
+ _b = (_a = tags).push;
807
+ return [4 /*yield*/, this.getTagForElement(element, create)];
590
808
  case 3:
591
- _a++;
592
- return [3 /*break*/, 1];
593
- case 4: return [2 /*return*/, tags];
809
+ _b.apply(_a, [_e.sent()]);
810
+ _e.label = 4;
811
+ case 4:
812
+ notFound_1_1 = notFound_1.next();
813
+ return [3 /*break*/, 2];
814
+ case 5: return [3 /*break*/, 8];
815
+ case 6:
816
+ e_16_1 = _e.sent();
817
+ e_16 = { error: e_16_1 };
818
+ return [3 /*break*/, 8];
819
+ case 7:
820
+ try {
821
+ if (notFound_1_1 && !notFound_1_1.done && (_d = notFound_1.return)) _d.call(notFound_1);
822
+ }
823
+ finally { if (e_16) throw e_16.error; }
824
+ return [7 /*endfinally*/];
825
+ case 8: return [2 /*return*/, tags];
594
826
  }
595
827
  });
596
828
  });
@@ -619,12 +851,22 @@ var DOM = /** @class */ (function (_super) {
619
851
  };
620
852
  DOM.prototype.getTagForScope = function (scope) {
621
853
  return __awaiter(this, void 0, void 0, function () {
622
- var _i, _a, tag;
623
- return __generator(this, function (_b) {
624
- for (_i = 0, _a = this.tags; _i < _a.length; _i++) {
625
- tag = _a[_i];
626
- if (tag.uniqueScope && tag.scope === scope)
627
- return [2 /*return*/, tag];
854
+ var _a, _b, tag;
855
+ var e_18, _c;
856
+ return __generator(this, function (_d) {
857
+ try {
858
+ for (_a = __values(this.tags), _b = _a.next(); !_b.done; _b = _a.next()) {
859
+ tag = _b.value;
860
+ if (tag.uniqueScope && tag.scope === scope)
861
+ return [2 /*return*/, tag];
862
+ }
863
+ }
864
+ catch (e_18_1) { e_18 = { error: e_18_1 }; }
865
+ finally {
866
+ try {
867
+ if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
868
+ }
869
+ finally { if (e_18) throw e_18.error; }
628
870
  }
629
871
  return [2 /*return*/, null];
630
872
  });
@@ -632,9 +874,10 @@ var DOM = /** @class */ (function (_super) {
632
874
  };
633
875
  DOM.prototype.resetBranch = function (e) {
634
876
  return __awaiter(this, void 0, void 0, function () {
635
- var tag, children, _i, children_1, t;
636
- return __generator(this, function (_a) {
637
- switch (_a.label) {
877
+ var tag, children, children_1, children_1_1, t, e_19_1;
878
+ var e_19, _a;
879
+ return __generator(this, function (_b) {
880
+ switch (_b.label) {
638
881
  case 0:
639
882
  if (e instanceof Tag_1.Tag)
640
883
  e = e.element;
@@ -643,19 +886,33 @@ var DOM = /** @class */ (function (_super) {
643
886
  tag.findParentTag();
644
887
  }
645
888
  children = Array.from(e.children);
646
- _i = 0, children_1 = children;
647
- _a.label = 1;
889
+ _b.label = 1;
648
890
  case 1:
649
- if (!(_i < children_1.length)) return [3 /*break*/, 4];
650
- t = children_1[_i];
651
- return [4 /*yield*/, this.resetBranch(t)];
891
+ _b.trys.push([1, 6, 7, 8]);
892
+ children_1 = __values(children), children_1_1 = children_1.next();
893
+ _b.label = 2;
652
894
  case 2:
653
- _a.sent();
654
- _a.label = 3;
895
+ if (!!children_1_1.done) return [3 /*break*/, 5];
896
+ t = children_1_1.value;
897
+ return [4 /*yield*/, this.resetBranch(t)];
655
898
  case 3:
656
- _i++;
657
- return [3 /*break*/, 1];
658
- case 4: return [2 /*return*/];
899
+ _b.sent();
900
+ _b.label = 4;
901
+ case 4:
902
+ children_1_1 = children_1.next();
903
+ return [3 /*break*/, 2];
904
+ case 5: return [3 /*break*/, 8];
905
+ case 6:
906
+ e_19_1 = _b.sent();
907
+ e_19 = { error: e_19_1 };
908
+ return [3 /*break*/, 8];
909
+ case 7:
910
+ try {
911
+ if (children_1_1 && !children_1_1.done && (_a = children_1.return)) _a.call(children_1);
912
+ }
913
+ finally { if (e_19) throw e_19.error; }
914
+ return [7 /*endfinally*/];
915
+ case 8: return [2 /*return*/];
659
916
  }
660
917
  });
661
918
  });