vsn 0.1.122 → 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 (150) hide show
  1. package/demo/demo.html +5 -2
  2. package/demo/examples/replace-html.html +19 -0
  3. package/demo/resources/xhr-animations.html +24 -0
  4. package/demo/resources/xhr-html.html +1 -0
  5. package/demo/{xhr.html → resources/xhr-lazy.html} +28 -2
  6. package/demo/silly-animations.html +12 -24
  7. package/demo/vsn.js +2 -2
  8. package/demo/xhr-test.html +4 -0
  9. package/dist/AST/ArrayNode.js +70 -18
  10. package/dist/AST/ArrayNode.js.map +1 -1
  11. package/dist/AST/AssignmentNode.js +93 -37
  12. package/dist/AST/AssignmentNode.js.map +1 -1
  13. package/dist/AST/BlockNode.js +17 -1
  14. package/dist/AST/BlockNode.js.map +1 -1
  15. package/dist/AST/ClassNode.js +225 -87
  16. package/dist/AST/ClassNode.js.map +1 -1
  17. package/dist/AST/ElementAttributeNode.js +55 -29
  18. package/dist/AST/ElementAttributeNode.js.map +1 -1
  19. package/dist/AST/ElementStyleNode.js +55 -31
  20. package/dist/AST/ElementStyleNode.js.map +1 -1
  21. package/dist/AST/FunctionArgumentNode.js +57 -15
  22. package/dist/AST/FunctionArgumentNode.js.map +1 -1
  23. package/dist/AST/FunctionCallNode.js +120 -52
  24. package/dist/AST/FunctionCallNode.js.map +1 -1
  25. package/dist/AST/FunctionNode.js +57 -14
  26. package/dist/AST/FunctionNode.js.map +1 -1
  27. package/dist/AST/IfStatementNode.js +52 -12
  28. package/dist/AST/IfStatementNode.js.map +1 -1
  29. package/dist/AST/IndexNode.js +24 -3
  30. package/dist/AST/IndexNode.js.map +1 -1
  31. package/dist/AST/ModifierNode.js +1 -1
  32. package/dist/AST/ModifierNode.js.map +1 -1
  33. package/dist/AST/NamedStackNode.js +6 -1
  34. package/dist/AST/NamedStackNode.js.map +1 -1
  35. package/dist/AST/Node.d.ts +3 -2
  36. package/dist/AST/Node.js +132 -39
  37. package/dist/AST/Node.js.map +1 -1
  38. package/dist/AST/ObjectNode.js +17 -1
  39. package/dist/AST/ObjectNode.js.map +1 -1
  40. package/dist/AST/OnNode.js +23 -2
  41. package/dist/AST/OnNode.js.map +1 -1
  42. package/dist/AST/ScopeMemberNode.js +40 -16
  43. package/dist/AST/ScopeMemberNode.js.map +1 -1
  44. package/dist/AST/ScopeNodeAbstract.js +29 -8
  45. package/dist/AST/ScopeNodeAbstract.js.map +1 -1
  46. package/dist/AST/StringFormatNode.js +42 -5
  47. package/dist/AST/StringFormatNode.js.map +1 -1
  48. package/dist/AST/WASM/Function.js +20 -4
  49. package/dist/AST/WASM/Function.js.map +1 -1
  50. package/dist/AST/WASM.js +26 -10
  51. package/dist/AST/WASM.js.map +1 -1
  52. package/dist/AST/WithNode.js +81 -41
  53. package/dist/AST/WithNode.js.map +1 -1
  54. package/dist/AST.d.ts +8 -0
  55. package/dist/AST.js +119 -39
  56. package/dist/AST.js.map +1 -1
  57. package/dist/Attribute.d.ts +3 -0
  58. package/dist/Attribute.js +43 -19
  59. package/dist/Attribute.js.map +1 -1
  60. package/dist/Bencmark.js +77 -20
  61. package/dist/Bencmark.js.map +1 -1
  62. package/dist/Component.js +49 -15
  63. package/dist/Component.js.map +1 -1
  64. package/dist/DOM/DOMObject.d.ts +6 -1
  65. package/dist/DOM/DOMObject.js +22 -1
  66. package/dist/DOM/DOMObject.js.map +1 -1
  67. package/dist/DOM.js +451 -194
  68. package/dist/DOM.js.map +1 -1
  69. package/dist/EventDispatcher.js +153 -39
  70. package/dist/EventDispatcher.js.map +1 -1
  71. package/dist/MessageList.js +37 -6
  72. package/dist/MessageList.js.map +1 -1
  73. package/dist/Model.js +27 -6
  74. package/dist/Model.js.map +1 -1
  75. package/dist/Modifiers.d.ts +17 -0
  76. package/dist/Modifiers.js +100 -0
  77. package/dist/Modifiers.js.map +1 -0
  78. package/dist/Scope/DynamicScopeData.js +38 -7
  79. package/dist/Scope/DynamicScopeData.js.map +1 -1
  80. package/dist/Scope/ScopeData.js +29 -8
  81. package/dist/Scope/ScopeData.js.map +1 -1
  82. package/dist/Scope/ScopeDataAbstract.js +103 -27
  83. package/dist/Scope/ScopeDataAbstract.js.map +1 -1
  84. package/dist/Scope/WrappedArray.js +112 -26
  85. package/dist/Scope/WrappedArray.js.map +1 -1
  86. package/dist/Scope/properties/ArrayProperty.js +17 -1
  87. package/dist/Scope/properties/ArrayProperty.js.map +1 -1
  88. package/dist/Scope/properties/Property.js +38 -7
  89. package/dist/Scope/properties/Property.js.map +1 -1
  90. package/dist/Scope.js +70 -13
  91. package/dist/Scope.js.map +1 -1
  92. package/dist/SimplePromise.js +71 -30
  93. package/dist/SimplePromise.js.map +1 -1
  94. package/dist/Tag/TagList.js +22 -1
  95. package/dist/Tag/TagList.js.map +1 -1
  96. package/dist/Tag.d.ts +5 -9
  97. package/dist/Tag.js +515 -196
  98. package/dist/Tag.js.map +1 -1
  99. package/dist/attributes/KeyAbstract.js +1 -1
  100. package/dist/attributes/KeyAbstract.js.map +1 -1
  101. package/dist/attributes/KeyDown.js +1 -1
  102. package/dist/attributes/KeyDown.js.map +1 -1
  103. package/dist/attributes/KeyUp.js +1 -1
  104. package/dist/attributes/KeyUp.js.map +1 -1
  105. package/dist/attributes/LazyAttribute.js +4 -2
  106. package/dist/attributes/LazyAttribute.js.map +1 -1
  107. package/dist/attributes/List.js +77 -30
  108. package/dist/attributes/List.js.map +1 -1
  109. package/dist/attributes/On.d.ts +1 -1
  110. package/dist/attributes/On.js +10 -10
  111. package/dist/attributes/On.js.map +1 -1
  112. package/dist/attributes/RootAttribute.js +29 -8
  113. package/dist/attributes/RootAttribute.js.map +1 -1
  114. package/dist/attributes/ScopeAttribute.js +30 -9
  115. package/dist/attributes/ScopeAttribute.js.map +1 -1
  116. package/dist/attributes/SetAttribute.js +32 -11
  117. package/dist/attributes/SetAttribute.js.map +1 -1
  118. package/dist/attributes/StyleAttribute.js +27 -6
  119. package/dist/attributes/StyleAttribute.js.map +1 -1
  120. package/dist/attributes/XHRAttribute.js +28 -7
  121. package/dist/attributes/XHRAttribute.js.map +1 -1
  122. package/dist/helpers/ElementHelper.js +25 -4
  123. package/dist/helpers/ElementHelper.js.map +1 -1
  124. package/dist/helpers/decorators.js +22 -1
  125. package/dist/helpers/decorators.js.map +1 -1
  126. package/dist/version.d.ts +1 -1
  127. package/dist/version.js +1 -1
  128. package/package.json +1 -1
  129. package/src/AST/AssignmentNode.ts +2 -4
  130. package/src/AST/ElementStyleNode.ts +0 -1
  131. package/src/AST/FunctionNode.ts +2 -0
  132. package/src/AST/ModifierNode.ts +1 -1
  133. package/src/AST/NamedStackNode.ts +4 -1
  134. package/src/AST/Node.ts +10 -5
  135. package/src/AST/OnNode.ts +1 -1
  136. package/src/AST/ScopeNodeAbstract.ts +3 -3
  137. package/src/AST.ts +26 -2
  138. package/src/Attribute.ts +19 -8
  139. package/src/DOM/DOMObject.ts +4 -1
  140. package/src/DOM.ts +2 -2
  141. package/src/Modifiers.ts +54 -0
  142. package/src/Tag.ts +69 -38
  143. package/src/attributes/KeyAbstract.ts +1 -1
  144. package/src/attributes/KeyDown.ts +1 -1
  145. package/src/attributes/KeyUp.ts +1 -1
  146. package/src/attributes/LazyAttribute.ts +6 -2
  147. package/src/attributes/On.ts +10 -9
  148. package/src/attributes/XHRAttribute.ts +2 -2
  149. package/src/version.ts +1 -1
  150. package/tsconfig.base.json +2 -1
@@ -56,6 +56,17 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
56
56
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
57
57
  }
58
58
  };
59
+ var __values = (this && this.__values) || function(o) {
60
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
61
+ if (m) return m.call(o);
62
+ if (o && typeof o.length === "number") return {
63
+ next: function () {
64
+ if (o && i >= o.length) o = void 0;
65
+ return { value: o && o[i++], done: !o };
66
+ }
67
+ };
68
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
69
+ };
59
70
  Object.defineProperty(exports, "__esModule", { value: true });
60
71
  exports.SetAttribute = void 0;
61
72
  var Attribute_1 = require("../Attribute");
@@ -81,9 +92,10 @@ var SetAttribute = /** @class */ (function (_super) {
81
92
  });
82
93
  SetAttribute.prototype.extract = function () {
83
94
  return __awaiter(this, void 0, void 0, function () {
84
- var ref, _a, _b, value, _i, _c, m, t;
85
- return __generator(this, function (_d) {
86
- switch (_d.label) {
95
+ var ref, _a, _b, value, _c, _d, m, t;
96
+ var e_1, _e;
97
+ return __generator(this, function (_f) {
98
+ switch (_f.label) {
87
99
  case 0:
88
100
  this.property = this.getAttributeBinding();
89
101
  try {
@@ -95,19 +107,28 @@ var SetAttribute = /** @class */ (function (_super) {
95
107
  _a = this;
96
108
  return [4 /*yield*/, ref.getKey()];
97
109
  case 1:
98
- _a.key = _d.sent();
110
+ _a.key = _f.sent();
99
111
  _b = this;
100
112
  return [4 /*yield*/, ref.getScope()];
101
113
  case 2:
102
- _b.boundScope = _d.sent();
114
+ _b.boundScope = _f.sent();
103
115
  value = this.getAttributeValue(null);
104
- for (_i = 0, _c = this.getAttributeModifiers(); _i < _c.length; _i++) {
105
- m = _c[_i];
106
- t = Registry_1.Registry.instance.types.getSynchronous(m);
107
- if (t) {
108
- this.boundScope.setType(this.key, m);
109
- break;
116
+ try {
117
+ for (_c = __values(this.getAttributeModifiers()), _d = _c.next(); !_d.done; _d = _c.next()) {
118
+ m = _d.value;
119
+ t = Registry_1.Registry.instance.types.getSynchronous(m);
120
+ if (t) {
121
+ this.boundScope.setType(this.key, m);
122
+ break;
123
+ }
124
+ }
125
+ }
126
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
127
+ finally {
128
+ try {
129
+ if (_d && !_d.done && (_e = _c.return)) _e.call(_c);
110
130
  }
131
+ finally { if (e_1) throw e_1.error; }
111
132
  }
112
133
  this.boundScope.set(this.key, value);
113
134
  return [2 /*return*/];
@@ -1 +1 @@
1
- {"version":3,"file":"SetAttribute.js","sourceRoot":"","sources":["../../src/attributes/SetAttribute.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,0CAAuC;AACvC,wCAAqC;AAIrC;IAAkC,gCAAS;IAA3C;;IAqCA,CAAC;IA/BG,sBAAW,+BAAK;aAMhB;YACI,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO,IAAI,CAAC;YAClC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAChD,CAAC;aATD,UAAiB,CAAM;YACnB,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;aACpC;QACL,CAAC;;;OAAA;IAOY,8BAAO,GAApB;;;;;;wBACI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;wBAE3C,IAAI;4BACA,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;yBACpD;wBAAC,OAAO,CAAC,EAAE;4BACR,sBAAO;yBACV;wBACD,KAAA,IAAI,CAAA;wBAAO,qBAAM,GAAG,CAAC,MAAM,EAAE,EAAA;;wBAA7B,GAAK,GAAG,GAAG,SAAkB,CAAC;wBAC9B,KAAA,IAAI,CAAA;wBAAc,qBAAM,GAAG,CAAC,QAAQ,EAAE,EAAA;;wBAAtC,GAAK,UAAU,GAAG,SAAoB,CAAC;wBACnC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;wBACzC,WAA4C,EAA5B,KAAA,IAAI,CAAC,qBAAqB,EAAE,EAA5B,cAA4B,EAA5B,IAA4B,EAAE;4BAAnC,CAAC;4BACF,CAAC,GAAG,mBAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;4BACpD,IAAI,CAAC,EAAE;gCACH,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gCACrC,MAAM;6BACT;yBACJ;wBACD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;;;;;KACxC;IAnCsB,qBAAQ,GAAY,KAAK,CAAC;IADxC,YAAY;QADxB,mBAAQ,CAAC,SAAS,CAAC,SAAS,CAAC;OACjB,YAAY,CAqCxB;IAAD,mBAAC;CAAA,AArCD,CAAkC,qBAAS,GAqC1C;AArCY,oCAAY"}
1
+ {"version":3,"file":"SetAttribute.js","sourceRoot":"","sources":["../../src/attributes/SetAttribute.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,0CAAuC;AACvC,wCAAqC;AAIrC;IAAkC,gCAAS;IAA3C;;IAqCA,CAAC;IA/BG,sBAAW,+BAAK;aAMhB;YACI,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO,IAAI,CAAC;YAClC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAChD,CAAC;aATD,UAAiB,CAAM;YACnB,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;aACpC;QACL,CAAC;;;OAAA;IAOY,8BAAO,GAApB;;;;;;;wBACI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;wBAE3C,IAAI;4BACA,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;yBACpD;wBAAC,OAAO,CAAC,EAAE;4BACR,sBAAO;yBACV;wBACD,KAAA,IAAI,CAAA;wBAAO,qBAAM,GAAG,CAAC,MAAM,EAAE,EAAA;;wBAA7B,GAAK,GAAG,GAAG,SAAkB,CAAC;wBAC9B,KAAA,IAAI,CAAA;wBAAc,qBAAM,GAAG,CAAC,QAAQ,EAAE,EAAA;;wBAAtC,GAAK,UAAU,GAAG,SAAoB,CAAC;wBACnC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;;4BACzC,KAAgB,KAAA,SAAA,IAAI,CAAC,qBAAqB,EAAE,CAAA,4CAAE;gCAAnC,CAAC;gCACF,CAAC,GAAG,mBAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gCACpD,IAAI,CAAC,EAAE;oCACH,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;oCACrC,MAAM;iCACT;6BACJ;;;;;;;;;wBACD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;;;;;KACxC;IAnCsB,qBAAQ,GAAY,KAAK,CAAC;IADxC,YAAY;QADxB,mBAAQ,CAAC,SAAS,CAAC,SAAS,CAAC;OACjB,YAAY,CAqCxB;IAAD,mBAAC;CAAA,AArCD,CAAkC,qBAAS,GAqC1C;AArCY,oCAAY"}
@@ -56,6 +56,17 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
56
56
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
57
57
  }
58
58
  };
59
+ var __values = (this && this.__values) || function(o) {
60
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
61
+ if (m) return m.call(o);
62
+ if (o && typeof o.length === "number") return {
63
+ next: function () {
64
+ if (o && i >= o.length) o = void 0;
65
+ return { value: o && o[i++], done: !o };
66
+ }
67
+ };
68
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
69
+ };
59
70
  Object.defineProperty(exports, "__esModule", { value: true });
60
71
  exports.StyleAttribute = void 0;
61
72
  var Registry_1 = require("../Registry");
@@ -146,13 +157,23 @@ var StyleAttribute = /** @class */ (function (_super) {
146
157
  }
147
158
  };
148
159
  StyleAttribute.prototype.updateTo = function () {
149
- for (var _i = 0, _a = this.styleScope.keys; _i < _a.length; _i++) {
150
- var k = _a[_i];
151
- var v = this.styleScope.get(k);
152
- if (k.startsWith('$')) {
153
- var key = k.substr(1);
154
- this.tag.element.style[key] = v.value;
160
+ var e_1, _a;
161
+ try {
162
+ for (var _b = __values(this.styleScope.keys), _c = _b.next(); !_c.done; _c = _b.next()) {
163
+ var k = _c.value;
164
+ var v = this.styleScope.get(k);
165
+ if (k.startsWith('$')) {
166
+ var key = k.substr(1);
167
+ this.tag.element.style[key] = v.value;
168
+ }
169
+ }
170
+ }
171
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
172
+ finally {
173
+ try {
174
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
155
175
  }
176
+ finally { if (e_1) throw e_1.error; }
156
177
  }
157
178
  };
158
179
  StyleAttribute.prototype.mutate = function (mutation) {
@@ -1 +1 @@
1
- {"version":3,"file":"StyleAttribute.js","sourceRoot":"","sources":["../../src/attributes/StyleAttribute.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StyleAttribute.js","sourceRoot":"","sources":["../../src/attributes/StyleAttribute.ts"],"names":[],"mappings":"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"}
@@ -56,6 +56,17 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
56
56
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
57
57
  }
58
58
  };
59
+ var __values = (this && this.__values) || function(o) {
60
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
61
+ if (m) return m.call(o);
62
+ if (o && typeof o.length === "number") return {
63
+ next: function () {
64
+ if (o && i >= o.length) o = void 0;
65
+ return { value: o && o[i++], done: !o };
66
+ }
67
+ };
68
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
69
+ };
59
70
  Object.defineProperty(exports, "__esModule", { value: true });
60
71
  exports.XHRAttribute = void 0;
61
72
  var Registry_1 = require("../Registry");
@@ -98,10 +109,10 @@ var XHRAttribute = /** @class */ (function (_super) {
98
109
  switch (_a.label) {
99
110
  case 0:
100
111
  if (this.isForm) {
101
- this.tag.addEventHandler('submit', this.getAttributeModifiers(), this.handleEvent, this);
112
+ this.tag.addEventHandler('submit', this.modifiers, this.handleEvent, this);
102
113
  }
103
114
  else if (this.isAnchor) {
104
- this.tag.addEventHandler('click', this.getAttributeModifiers(), this.handleEvent, this);
115
+ this.tag.addEventHandler('click', this.modifiers, this.handleEvent, this);
105
116
  }
106
117
  return [4 /*yield*/, _super.prototype.connect.call(this)];
107
118
  case 1:
@@ -127,8 +138,9 @@ var XHRAttribute = /** @class */ (function (_super) {
127
138
  });
128
139
  XHRAttribute.prototype.handleEvent = function (e) {
129
140
  return __awaiter(this, void 0, void 0, function () {
130
- var method, url, formData, data, formKeys, _i, formKeys_1, key, siteHeaders, key, siteFormData, key;
131
- return __generator(this, function (_a) {
141
+ var method, url, formData, data, formKeys, formKeys_1, formKeys_1_1, key, siteHeaders, key, siteFormData, key;
142
+ var e_1, _a;
143
+ return __generator(this, function (_b) {
132
144
  e.preventDefault();
133
145
  if (this.request)
134
146
  return [2 /*return*/];
@@ -141,9 +153,18 @@ var XHRAttribute = /** @class */ (function (_super) {
141
153
  if (method == 'GET') {
142
154
  data = {};
143
155
  formKeys = Array.from(formData.keys());
144
- for (_i = 0, formKeys_1 = formKeys; _i < formKeys_1.length; _i++) {
145
- key = formKeys_1[_i];
146
- data[key] = formData.get(key);
156
+ try {
157
+ for (formKeys_1 = __values(formKeys), formKeys_1_1 = formKeys_1.next(); !formKeys_1_1.done; formKeys_1_1 = formKeys_1.next()) {
158
+ key = formKeys_1_1.value;
159
+ data[key] = formData.get(key);
160
+ }
161
+ }
162
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
163
+ finally {
164
+ try {
165
+ if (formKeys_1_1 && !formKeys_1_1.done && (_a = formKeys_1.return)) _a.call(formKeys_1);
166
+ }
167
+ finally { if (e_1) throw e_1.error; }
147
168
  }
148
169
  url = VisionHelper_1.VisionHelper.getUriWithParams(url, data);
149
170
  formData = null;
@@ -1 +1 @@
1
- {"version":3,"file":"XHRAttribute.js","sourceRoot":"","sources":["../../src/attributes/XHRAttribute.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"XHRAttribute.js","sourceRoot":"","sources":["../../src/attributes/XHRAttribute.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,15 @@
1
1
  "use strict";
2
+ var __values = (this && this.__values) || function(o) {
3
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
4
+ if (m) return m.call(o);
5
+ if (o && typeof o.length === "number") return {
6
+ next: function () {
7
+ if (o && i >= o.length) o = void 0;
8
+ return { value: o && o[i++], done: !o };
9
+ }
10
+ };
11
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
12
+ };
2
13
  Object.defineProperty(exports, "__esModule", { value: true });
3
14
  exports.ElementHelper = void 0;
4
15
  var ClassNode_1 = require("../AST/ClassNode");
@@ -6,6 +17,7 @@ var ElementHelper = /** @class */ (function () {
6
17
  function ElementHelper() {
7
18
  }
8
19
  ElementHelper.hasVisionAttribute = function (element, testAttr) {
20
+ var e_1, _a;
9
21
  if (testAttr === void 0) { testAttr = 'vsn-'; }
10
22
  if (!element.attributes || element.attributes.length <= 0)
11
23
  return false;
@@ -15,11 +27,20 @@ var ElementHelper = /** @class */ (function () {
15
27
  return true;
16
28
  }
17
29
  }
18
- for (var _i = 0, _a = Array.from(element.classList); _i < _a.length; _i++) {
19
- var cls = _a[_i];
20
- if (ClassNode_1.ClassNode.isClass(cls)) {
21
- return true;
30
+ try {
31
+ for (var _b = __values(Array.from(element.classList)), _c = _b.next(); !_c.done; _c = _b.next()) {
32
+ var cls = _c.value;
33
+ if (ClassNode_1.ClassNode.isClass(cls)) {
34
+ return true;
35
+ }
36
+ }
37
+ }
38
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
39
+ finally {
40
+ try {
41
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
22
42
  }
43
+ finally { if (e_1) throw e_1.error; }
23
44
  }
24
45
  return false;
25
46
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ElementHelper.js","sourceRoot":"","sources":["../../src/helpers/ElementHelper.ts"],"names":[],"mappings":";;;AAAA,8CAA2C;AAE3C;IAAA;IAuBA,CAAC;IAtBiB,gCAAkB,GAAhC,UAAiC,OAA8B,EAAE,QAAyB;QAAzB,yBAAA,EAAA,iBAAyB;QACtF,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QACxE,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxD,IAAM,IAAI,GAAS,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAClC;gBACI,OAAO,IAAI,CAAC;aACf;SACJ;QAED,KAAkB,UAA6B,EAA7B,KAAA,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAA7B,cAA6B,EAA7B,IAA6B,EAAE;YAA5C,IAAM,GAAG,SAAA;YACV,IAAI,qBAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACxB,OAAO,IAAI,CAAC;aACf;SACJ;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAEa,gCAAkB,GAAhC,UAAiC,EAAU;QACvC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,iBAAiB,EAAE,UAAU,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClG,CAAC;IACL,oBAAC;AAAD,CAAC,AAvBD,IAuBC;AAvBY,sCAAa"}
1
+ {"version":3,"file":"ElementHelper.js","sourceRoot":"","sources":["../../src/helpers/ElementHelper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,8CAA2C;AAE3C;IAAA;IAuBA,CAAC;IAtBiB,gCAAkB,GAAhC,UAAiC,OAA8B,EAAE,QAAyB;;QAAzB,yBAAA,EAAA,iBAAyB;QACtF,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QACxE,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxD,IAAM,IAAI,GAAS,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAClC;gBACI,OAAO,IAAI,CAAC;aACf;SACJ;;YAED,KAAkB,IAAA,KAAA,SAAA,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA,gBAAA,4BAAE;gBAA5C,IAAM,GAAG,WAAA;gBACV,IAAI,qBAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBACxB,OAAO,IAAI,CAAC;iBACf;aACJ;;;;;;;;;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAEa,gCAAkB,GAAhC,UAAiC,EAAU;QACvC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,iBAAiB,EAAE,UAAU,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClG,CAAC;IACL,oBAAC;AAAD,CAAC,AAvBD,IAuBC;AAvBY,sCAAa"}
@@ -14,6 +14,27 @@ var __extends = (this && this.__extends) || (function () {
14
14
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
15
  };
16
16
  })();
17
+ var __read = (this && this.__read) || function (o, n) {
18
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
19
+ if (!m) return o;
20
+ var i = m.call(o), r, ar = [], e;
21
+ try {
22
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
23
+ }
24
+ catch (error) { e = { error: error }; }
25
+ finally {
26
+ try {
27
+ if (r && !r.done && (m = i["return"])) m.call(i);
28
+ }
29
+ finally { if (e) throw e.error; }
30
+ }
31
+ return ar;
32
+ };
33
+ var __spreadArray = (this && this.__spreadArray) || function (to, from) {
34
+ for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
35
+ to[j] = from[i];
36
+ return to;
37
+ };
17
38
  Object.defineProperty(exports, "__esModule", { value: true });
18
39
  exports.extendsarray = void 0;
19
40
  function extendsarray(target) {
@@ -24,7 +45,7 @@ function extendsarray(target) {
24
45
  for (var _i = 0; _i < arguments.length; _i++) {
25
46
  args[_i] = arguments[_i];
26
47
  }
27
- var _this = _super.apply(this, args) || this;
48
+ var _this = _super.apply(this, __spreadArray([], __read(args))) || this;
28
49
  for (var c in target.prototype) {
29
50
  _this[c] = target.prototype[c];
30
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/helpers/decorators.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,SAAgB,YAAY,CAAyC,MAAS;IAC1E;QAAqB,2BAAM;QACvB;YAAY,cAAO;iBAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;gBAAP,yBAAO;;YAAnB,+BACa,IAAI,UAIhB;YAHG,KAAK,IAAM,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE;gBAC9B,KAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aACjC;;QACL,CAAC;QACL,cAAC;IAAD,CAAC,AAPM,CAAc,MAAM,GAOzB;IAAA,CAAC;AACP,CAAC;AATD,oCASC"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/helpers/decorators.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,SAAgB,YAAY,CAAyC,MAAS;IAC1E;QAAqB,2BAAM;QACvB;YAAY,cAAO;iBAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;gBAAP,yBAAO;;YAAnB,wDACa,IAAI,YAIhB;YAHG,KAAK,IAAM,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE;gBAC9B,KAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aACjC;;QACL,CAAC;QACL,cAAC;IAAD,CAAC,AAPM,CAAc,MAAM,GAOzB;IAAA,CAAC;AACP,CAAC;AATD,oCASC"}
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const VERSION = "0.1.122";
1
+ export declare const VERSION = "0.1.124";
package/dist/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
- exports.VERSION = '0.1.122';
4
+ exports.VERSION = '0.1.124';
5
5
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vsn",
3
- "version": "0.1.122",
3
+ "version": "0.1.124",
4
4
  "description": "SEO Friendly Javascript/Typescript Framework",
5
5
  "keywords": [
6
6
  "framework",
@@ -30,11 +30,8 @@ export class AssignmentNode extends Node implements TreeNode {
30
30
 
31
31
  async evaluate(scope: Scope, dom: DOM, tag: Tag = null) {
32
32
  let scopes = [];
33
- if (scope.isGarbage && tag) { // Current garbage collection implementation is naive
34
- scope = tag.scope;
35
- }
36
-
37
33
  const name: string = await this.left.name.evaluate(scope, dom, tag);
34
+
38
35
  if (this.left instanceof ScopeMemberNode) {
39
36
  const inner = await this.left.scope.evaluate(scope, dom, tag);
40
37
  if (this.left.scope instanceof ElementQueryNode) {
@@ -63,6 +60,7 @@ export class AssignmentNode extends Node implements TreeNode {
63
60
 
64
61
  const values = [];
65
62
  for (let localScope of scopes) {
63
+ if (!localScope) continue;
66
64
  if (localScope instanceof DOMObject) {
67
65
  await this.handleDOMObject(name, dom, scope, localScope, tag);
68
66
  } else {
@@ -36,7 +36,6 @@ export class ElementStyleNode extends Node implements TreeNode {
36
36
 
37
37
  async evaluate(scope: Scope, dom: DOM, tag: Tag = null) {
38
38
  let tags: TagList;
39
- await this.prepare(scope, dom, tag);
40
39
  if (this.elementRef) {
41
40
  tags = await this.elementRef.evaluate(scope, dom, tag, true);
42
41
  } else if (tag) {
@@ -60,12 +60,14 @@ export class FunctionNode extends Node implements TreeNode {
60
60
  public static parse<T = FunctionNode>(lastNode, token, tokens: Token[], cls: any = FunctionNode): FunctionNode {
61
61
  tokens.shift(); // skip 'func'
62
62
  const name = tokens.shift();
63
+ const modifiers = this.moveModifiers(tokens);
63
64
  const argTokens = Tree.getBlockTokens(tokens);
64
65
  const funcArgs: string[] = [];
65
66
  for (const t of argTokens) {
66
67
  funcArgs.push(t[0].value);
67
68
  }
68
69
  const block = Tree.processTokens(Tree.getNextStatementTokens(tokens, true, true));
70
+ this.moveModifiers(modifiers, tokens);
69
71
  return new cls(name.value, funcArgs, block);
70
72
  }
71
73
  }
@@ -25,7 +25,7 @@ export class ModifierNode extends Node implements TreeNode {
25
25
  public static parse(lastNode, token, tokens: Token[]): Node {
26
26
  const modifier = tokens.shift().value.substr(1);
27
27
  if (lastNode) {
28
- lastNode.modifiers.push(modifier);
28
+ lastNode.modifiers.add(modifier);
29
29
  }
30
30
  return lastNode;
31
31
  }
@@ -1,4 +1,4 @@
1
- import {Scope} from "../Scope";
1
+ import {FunctionScope, Scope} from "../Scope";
2
2
  import {DOM} from "../DOM";
3
3
  import {Tag} from "../Tag";
4
4
  import {Token, Tree, TreeNode} from "../AST";
@@ -33,6 +33,9 @@ export class NamedStackNode extends Node implements TreeNode {
33
33
  }
34
34
 
35
35
  public async evaluate(scope: Scope, dom: DOM, tag: Tag = null) {
36
+ if (scope instanceof FunctionScope) { // NamedStackNode doesn't work with FunctionScope
37
+ scope = scope.parentScope;
38
+ }
36
39
  const stackName = await this.stackName.evaluate(scope, dom, tag);
37
40
  let execute = false;
38
41
  if (!NamedStackNode.stacks[stackName]) {
package/src/AST/Node.ts CHANGED
@@ -2,6 +2,7 @@ import {Scope} from "../Scope";
2
2
  import {DOM} from "../DOM";
3
3
  import {Tag} from "../Tag";
4
4
  import {Token, TokenType, TreeNode} from "../AST";
5
+ import {Modifiers} from "../Modifiers";
5
6
 
6
7
  export interface INodeMeta {
7
8
  [key: string]: string | number | boolean | null;
@@ -12,7 +13,7 @@ export abstract class Node implements TreeNode {
12
13
  protected _isPreparationRequired: boolean;
13
14
  protected childNodes: Node[];
14
15
  protected nodeCache: {[key: string]: Node[]} = {};
15
- public readonly modifiers: string[] = [];
16
+ public readonly modifiers: Modifiers = new Modifiers();
16
17
  abstract evaluate(scope: Scope, dom: DOM, tag?: Tag);
17
18
 
18
19
  isPreparationRequired(): boolean {
@@ -80,13 +81,17 @@ export abstract class Node implements TreeNode {
80
81
  }
81
82
 
82
83
  hasModifier(modifier: string): boolean {
83
- return this.modifiers.indexOf(modifier) !== -1;
84
+ return this.modifiers.has(modifier);
84
85
  }
85
86
 
86
- public static moveModifiers(from: Token[], to: Token[]) {
87
- while (from[0].type == TokenType.MODIFIER) {
88
- to.unshift(from.shift());
87
+ public static moveModifiers(from: Token[], to: Token[] = null): Token[] {
88
+ to = to || [];
89
+ if (from && from.length) {
90
+ while (from[0] && from[0].type == TokenType.MODIFIER) {
91
+ to.unshift(from.shift());
92
+ }
89
93
  }
94
+ return to;
90
95
  }
91
96
  }
92
97
 
package/src/AST/OnNode.ts CHANGED
@@ -9,7 +9,7 @@ export class OnNode extends FunctionNode implements TreeNode {
9
9
  const classPrep = meta?.ClassNodePrepare; // Don't add event handler if we're in class prep
10
10
  if (tag && !classPrep) {
11
11
  const func = await this.getFunction(scope, dom, tag);
12
- tag.addEventHandler(this.name, [], async (...args) => {
12
+ tag.addEventHandler(this.name, this.modifiers, async (...args) => {
13
13
  await func(...args);
14
14
  await this.collectGarbage();
15
15
  }, this);
@@ -8,10 +8,10 @@ import {Registry} from "../Registry";
8
8
  export abstract class ScopeNodeAbstract extends Node implements TreeNode {
9
9
  async applyModifiers(name: string, scope: Scope, dom: DOM, tag: Tag) {
10
10
  let type: string;
11
- for (const modifier of this.modifiers) {
11
+ for (const modifier of this.modifiers.iter) {
12
12
  // Check for type cast modifier
13
- if (Registry.instance.types.has(modifier)) {
14
- type = modifier;
13
+ if (Registry.instance.types.has(modifier.name)) {
14
+ type = modifier.name;
15
15
  break;
16
16
  }
17
17
  }
package/src/AST.ts CHANGED
@@ -392,7 +392,7 @@ const TOKEN_PATTERNS: TokenPattern[] = [
392
392
  },
393
393
  {
394
394
  type: TokenType.MODIFIER,
395
- pattern: /^\|\S+/
395
+ pattern: /^\|[a-zA-Z0-9,]+/
396
396
  }
397
397
  ];
398
398
 
@@ -415,7 +415,16 @@ export const AttributableNodes = [
415
415
  ElementAttributeNode
416
416
  ];
417
417
 
418
+ export interface ExecutionContext {
419
+ scope: Scope;
420
+ dom: DOM;
421
+ tag: Tag;
422
+ tree: Tree;
423
+
424
+ }
425
+
418
426
  export class Tree {
427
+ protected static executing: Set<ExecutionContext> = new Set<ExecutionContext>();
419
428
  protected static cache: { [key: string]: Node } = {};
420
429
  protected _root: Node;
421
430
 
@@ -438,7 +447,16 @@ export class Tree {
438
447
  }
439
448
 
440
449
  async evaluate(scope: Scope, dom: DOM, tag: Tag = null) {
441
- return await this._root.evaluate(scope, dom, tag);
450
+ const context = {
451
+ scope: scope,
452
+ dom: dom,
453
+ tag: tag,
454
+ tree: this
455
+ };
456
+ Tree.executing.add(context);
457
+ const r = await this._root.evaluate(scope, dom, tag);
458
+ Tree.executing.delete(context);
459
+ return r;
442
460
  }
443
461
 
444
462
  async prepare(scope: Scope, dom: DOM, tag: Tag = null) {
@@ -463,6 +481,12 @@ export class Tree {
463
481
  }
464
482
  }
465
483
 
484
+ public static reprepareExecutingTrees() {
485
+ Tree.executing.forEach(async context => {
486
+ await context.tree.prepare(context.scope, context.dom, context.tag);
487
+ });
488
+ }
489
+
466
490
  public static tokenize(code: string): Token[] {
467
491
  const tokens: Token[] = [];
468
492
  if (!code || code.length === 0)
package/src/Attribute.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import {Tag} from "./Tag";
2
2
  import {VisionHelper} from "./helpers/VisionHelper";
3
3
  import {EventDispatcher} from "./EventDispatcher";
4
+ import {Modifiers} from "./Modifiers";
4
5
 
5
6
  export enum AttributeState {
6
7
  Instantiated,
@@ -14,6 +15,7 @@ export enum AttributeState {
14
15
 
15
16
  export abstract class Attribute extends EventDispatcher {
16
17
  protected _state: AttributeState;
18
+ public readonly modifiers: Modifiers;
17
19
  public static readonly scoped: boolean = false;
18
20
  public static readonly canDefer: boolean = true;
19
21
 
@@ -23,6 +25,7 @@ export abstract class Attribute extends EventDispatcher {
23
25
  public readonly slot?: Tag
24
26
  ) {
25
27
  super();
28
+ this.modifiers = Modifiers.fromAttribute(attributeName)
26
29
  this.configure();
27
30
  }
28
31
 
@@ -37,25 +40,30 @@ export abstract class Attribute extends EventDispatcher {
37
40
  protected async defer() {
38
41
  this.setState(AttributeState.Deferred);
39
42
  }
43
+
40
44
  protected async configure() {
41
45
  this.setState(AttributeState.Instantiated);
42
- };
46
+ }
47
+
43
48
  public async compile() {
44
49
  this.setState(AttributeState.Compiled);
45
- };
50
+ }
51
+
46
52
  public async setup() {
47
53
  this.setState(AttributeState.Setup);
48
- };
54
+ }
49
55
 
50
56
  public async extract() {
51
57
  this.setState(AttributeState.Extracted);
52
- };
58
+ }
59
+
53
60
  public async connect() {
54
61
  this.setState(AttributeState.Connected);
55
62
  }
63
+
56
64
  public async evaluate() {
57
65
  this.setState(AttributeState.Built);
58
- };
66
+ }
59
67
 
60
68
  public getAttributeValue(fallback: any = null) {
61
69
  return this.origin.getRawAttributeValue(this.attributeName, fallback);
@@ -66,12 +74,15 @@ export abstract class Attribute extends EventDispatcher {
66
74
  }
67
75
 
68
76
  public getAttributeModifiers(fallback: any = []): string[] {
69
- const modifiers = this.origin.getAttributeModifiers(this.attributeName);
70
- return modifiers.length && modifiers || fallback;
77
+ return this.modifiers.length && this.modifiers.names || fallback;
78
+ }
79
+
80
+ public getAttributeModifierArguments(modifier: string, fallback: string[] = []): string[] {
81
+ return this.modifiers.has(modifier) ? this.modifiers.get(modifier).arguments : fallback;
71
82
  }
72
83
 
73
84
  public hasModifier(mod: string): boolean {
74
- return this.getAttributeModifiers().indexOf(mod) > -1;
85
+ return this.modifiers.has(mod);
75
86
  }
76
87
 
77
88
  public mutate(mutation: MutationRecord): void {}
@@ -1,10 +1,13 @@
1
1
  import {Scope} from "../Scope";
2
2
  import {EventDispatcher} from "../EventDispatcher";
3
+ import {Modifiers} from "../Modifiers";
3
4
 
4
5
  export interface IEventHandler {
5
6
  event: string;
6
7
  handler: (...args: any[]) => any;
7
- context?: any;
8
+ context: any;
9
+ state: { [key: string]: any };
10
+ modifiers: Modifiers;
8
11
  }
9
12
 
10
13
  export abstract class DOMObject extends EventDispatcher {