vsn 0.1.23 → 0.1.27

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 (172) hide show
  1. package/demo/demo.html +16 -7
  2. package/demo/vsn.js +1 -0
  3. package/dist/AST.d.ts +2 -1
  4. package/dist/AST.js +94 -4
  5. package/dist/AST.js.map +1 -1
  6. package/dist/Attribute.d.ts +1 -1
  7. package/dist/Attribute.js +3 -3
  8. package/dist/Attribute.js.map +1 -1
  9. package/dist/Configuration.d.ts +1 -1
  10. package/dist/Configuration.js +4 -4
  11. package/dist/Configuration.js.map +1 -1
  12. package/dist/Controller.d.ts +10 -5
  13. package/dist/Controller.js +21 -6
  14. package/dist/Controller.js.map +1 -1
  15. package/dist/DOM/DOMObject.d.ts +1 -1
  16. package/dist/DOM/DOMObject.js +2 -2
  17. package/dist/DOM/DOMObject.js.map +1 -1
  18. package/dist/DOM.d.ts +1 -1
  19. package/dist/DOM.js +4 -4
  20. package/dist/DOM.js.map +1 -1
  21. package/dist/EventDispatcher.d.ts +26 -0
  22. package/dist/EventDispatcher.js +117 -0
  23. package/dist/EventDispatcher.js.map +1 -0
  24. package/dist/Formats.js +2 -2
  25. package/dist/Formats.js.map +1 -1
  26. package/dist/MessageList.d.ts +14 -0
  27. package/dist/MessageList.js +88 -0
  28. package/dist/MessageList.js.map +1 -0
  29. package/dist/Model/Collection.d.ts +5 -0
  30. package/dist/Model/Collection.js +37 -0
  31. package/dist/Model/Collection.js.map +1 -0
  32. package/dist/Model/DataModel.d.ts +6 -0
  33. package/dist/Model/DataModel.js +54 -0
  34. package/dist/Model/DataModel.js.map +1 -0
  35. package/dist/Model/ModelAbstract.d.ts +20 -0
  36. package/dist/Model/ModelAbstract.js +122 -0
  37. package/dist/Model/ModelAbstract.js.map +1 -0
  38. package/dist/Model/fields/BooleanField.d.ts +5 -0
  39. package/dist/Model/fields/BooleanField.js +43 -0
  40. package/dist/Model/fields/BooleanField.js.map +1 -0
  41. package/dist/Model/fields/EmailField.d.ts +5 -0
  42. package/dist/Model/fields/EmailField.js +36 -0
  43. package/dist/Model/fields/EmailField.js.map +1 -0
  44. package/dist/Model/fields/Field.d.ts +13 -0
  45. package/dist/Model/fields/Field.js +79 -0
  46. package/dist/Model/fields/Field.js.map +1 -0
  47. package/dist/Model/fields/FloatField.d.ts +5 -0
  48. package/dist/Model/fields/FloatField.js +47 -0
  49. package/dist/Model/fields/FloatField.js.map +1 -0
  50. package/dist/Model/fields/PositiveNumberField.d.ts +5 -0
  51. package/dist/Model/fields/PositiveNumberField.js +51 -0
  52. package/dist/Model/fields/PositiveNumberField.js.map +1 -0
  53. package/dist/Model/fields/StringField.d.ts +5 -0
  54. package/dist/Model/fields/StringField.js +43 -0
  55. package/dist/Model/fields/StringField.js.map +1 -0
  56. package/dist/Model.d.ts +11 -0
  57. package/dist/Model.js +72 -0
  58. package/dist/Model.js.map +1 -0
  59. package/dist/Registry.d.ts +2 -2
  60. package/dist/Registry.js +6 -16
  61. package/dist/Registry.js.map +1 -1
  62. package/dist/Scope.d.ts +7 -10
  63. package/dist/Scope.js +40 -90
  64. package/dist/Scope.js.map +1 -1
  65. package/dist/SimplePromise.d.ts +42 -0
  66. package/dist/SimplePromise.js +217 -0
  67. package/dist/SimplePromise.js.map +1 -0
  68. package/dist/Tag.js +12 -6
  69. package/dist/Tag.js.map +1 -1
  70. package/dist/attributes/Bind.js +1 -1
  71. package/dist/attributes/Bind.js.map +1 -1
  72. package/dist/attributes/ClickRemoveClass.js +17 -5
  73. package/dist/attributes/ClickRemoveClass.js.map +1 -1
  74. package/dist/attributes/ClickToggleClass.js +17 -5
  75. package/dist/attributes/ClickToggleClass.js.map +1 -1
  76. package/dist/attributes/Exec.js +6 -0
  77. package/dist/attributes/Exec.js.map +1 -1
  78. package/dist/attributes/Format.js +3 -0
  79. package/dist/attributes/Format.js.map +1 -1
  80. package/dist/attributes/If.js +12 -0
  81. package/dist/attributes/If.js.map +1 -1
  82. package/dist/attributes/JSONAttribute.js +3 -0
  83. package/dist/attributes/JSONAttribute.js.map +1 -1
  84. package/dist/attributes/KeyAbstract.js +11 -4
  85. package/dist/attributes/KeyAbstract.js.map +1 -1
  86. package/dist/attributes/KeyDown.js +8 -2
  87. package/dist/attributes/KeyDown.js.map +1 -1
  88. package/dist/attributes/KeyUp.js +8 -2
  89. package/dist/attributes/KeyUp.js.map +1 -1
  90. package/dist/attributes/List.js +14 -5
  91. package/dist/attributes/List.js.map +1 -1
  92. package/dist/attributes/ListItem.js +3 -0
  93. package/dist/attributes/ListItem.js.map +1 -1
  94. package/dist/attributes/On.js +15 -3
  95. package/dist/attributes/On.js.map +1 -1
  96. package/dist/attributes/Radio.d.ts +2 -0
  97. package/dist/attributes/Radio.js +52 -5
  98. package/dist/attributes/Radio.js.map +1 -1
  99. package/dist/attributes/RootAttribute.js +8 -2
  100. package/dist/attributes/RootAttribute.js.map +1 -1
  101. package/dist/attributes/ScopeChange.js +7 -1
  102. package/dist/attributes/ScopeChange.js.map +1 -1
  103. package/dist/attributes/SetAttribute.js +3 -0
  104. package/dist/attributes/SetAttribute.js.map +1 -1
  105. package/dist/attributes/StandardAttribute.js +25 -7
  106. package/dist/attributes/StandardAttribute.js.map +1 -1
  107. package/dist/attributes/StyleAttribute.js +1 -1
  108. package/dist/attributes/StyleAttribute.js.map +1 -1
  109. package/dist/attributes/TypeAttribute.js +3 -0
  110. package/dist/attributes/TypeAttribute.js.map +1 -1
  111. package/dist/{Vision.d.ts → vsn.d.ts} +3 -1
  112. package/dist/{Vision.js → vsn.js} +10 -6
  113. package/dist/vsn.js.map +1 -0
  114. package/package.json +9 -13
  115. package/src/AST.ts +96 -5
  116. package/src/Attribute.ts +2 -2
  117. package/src/Configuration.ts +3 -3
  118. package/src/Controller.ts +16 -7
  119. package/src/DOM/DOMObject.ts +1 -1
  120. package/src/DOM.ts +4 -4
  121. package/src/EventDispatcher.ts +117 -0
  122. package/src/Formats.ts +2 -2
  123. package/src/MessageList.ts +81 -0
  124. package/src/Model/Collection.ts +13 -0
  125. package/src/Model/DataModel.ts +29 -0
  126. package/src/Model/ModelAbstract.ts +114 -0
  127. package/src/Model/fields/BooleanField.ts +16 -0
  128. package/src/Model/fields/EmailField.ts +12 -0
  129. package/src/Model/fields/Field.ts +65 -0
  130. package/src/Model/fields/FloatField.ts +22 -0
  131. package/src/Model/fields/PositiveNumberField.ts +24 -0
  132. package/src/Model/fields/StringField.ts +16 -0
  133. package/src/Model.ts +57 -0
  134. package/src/Registry.ts +3 -5
  135. package/src/Scope.ts +39 -90
  136. package/src/SimplePromise.ts +219 -0
  137. package/src/Tag.ts +12 -9
  138. package/src/attributes/Bind.ts +1 -1
  139. package/src/attributes/ClickRemoveClass.ts +2 -0
  140. package/src/attributes/ClickToggleClass.ts +2 -0
  141. package/src/attributes/Exec.ts +2 -0
  142. package/src/attributes/Format.ts +1 -0
  143. package/src/attributes/If.ts +4 -0
  144. package/src/attributes/JSONAttribute.ts +1 -0
  145. package/src/attributes/KeyAbstract.ts +2 -1
  146. package/src/attributes/KeyDown.ts +1 -0
  147. package/src/attributes/KeyUp.ts +1 -0
  148. package/src/attributes/List.ts +6 -3
  149. package/src/attributes/ListItem.ts +1 -0
  150. package/src/attributes/On.ts +4 -0
  151. package/src/attributes/Radio.ts +18 -3
  152. package/src/attributes/RootAttribute.ts +1 -0
  153. package/src/attributes/ScopeChange.ts +3 -1
  154. package/src/attributes/SetAttribute.ts +1 -0
  155. package/src/attributes/StandardAttribute.ts +4 -1
  156. package/src/attributes/StyleAttribute.ts +1 -1
  157. package/src/attributes/TypeAttribute.ts +1 -0
  158. package/src/{Vision.ts → vsn.ts} +4 -2
  159. package/test/AST.spec.ts +2 -1
  160. package/test/DOM.spec.ts +1 -1
  161. package/test/MessageList.spec.ts +101 -0
  162. package/test/Model/DataModel.spec.ts +141 -0
  163. package/test/Model.spec.ts +306 -0
  164. package/test/Scope.spec.ts +2 -2
  165. package/test/SimplePromise.spec.ts +271 -0
  166. package/test/attributes/Bind.spec.ts +5 -5
  167. package/test/attributes/JSONAttribute.spec.ts +1 -1
  168. package/test/attributes/ListItem.spec.ts +1 -1
  169. package/webpack.config.js +2 -2
  170. package/demo/vision.js +0 -1
  171. package/dist/Vision.js.map +0 -1
  172. package/main.py +0 -16
package/dist/Scope.js CHANGED
@@ -57,10 +57,11 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from) {
57
57
  };
58
58
  Object.defineProperty(exports, "__esModule", { value: true });
59
59
  exports.Scope = exports.WrappedArray = exports.ScopeVariableType = exports.QueryReference = exports.ScopeReference = void 0;
60
- var simple_ts_models_1 = require("simple-ts-models");
61
- var simple_ts_event_dispatcher_1 = require("simple-ts-event-dispatcher");
62
60
  var Registry_1 = require("./Registry");
63
61
  var DOM_1 = require("./DOM");
62
+ var EventDispatcher_1 = require("./EventDispatcher");
63
+ var DataModel_1 = require("./Model/DataModel");
64
+ var Model_1 = require("./Model");
64
65
  var ScopeReference = /** @class */ (function () {
65
66
  function ScopeReference(scope, key, value) {
66
67
  if (scope === void 0) { scope = null; }
@@ -160,34 +161,50 @@ var WrappedArray = /** @class */ (function (_super) {
160
161
  var _this = _super.apply(this, items) || this;
161
162
  _this.$wrapped = true;
162
163
  Object.setPrototypeOf(_this, WrappedArray.prototype);
163
- _this._lastKey = 0;
164
- _this._listeners = {};
164
+ _this.dispatcher = new EventDispatcher_1.EventDispatcher();
165
165
  return _this;
166
166
  }
167
+ WrappedArray.prototype.dispatch = function (event) {
168
+ var _a;
169
+ var args = [];
170
+ for (var _i = 1; _i < arguments.length; _i++) {
171
+ args[_i - 1] = arguments[_i];
172
+ }
173
+ (_a = this.dispatcher).dispatch.apply(_a, __spreadArray([event], args));
174
+ };
175
+ WrappedArray.prototype.on = function (event, callback) {
176
+ this.dispatcher.on(event, callback);
177
+ };
178
+ WrappedArray.prototype.off = function (event, key) {
179
+ this.dispatcher.off(event, key);
180
+ };
181
+ WrappedArray.prototype.once = function (event, callback) {
182
+ this.dispatcher.once(event, callback);
183
+ };
167
184
  WrappedArray.prototype.push = function () {
168
185
  var items = [];
169
186
  for (var _i = 0; _i < arguments.length; _i++) {
170
187
  items[_i] = arguments[_i];
171
188
  }
172
189
  var num = _super.prototype.push.apply(this, items);
173
- this.trigger.apply(this, __spreadArray(['push'], items));
174
- this.trigger('change', {
190
+ this.dispatch.apply(this, __spreadArray(['push'], items));
191
+ this.dispatch('change', {
175
192
  'added': items
176
193
  });
177
194
  for (var _a = 0, items_1 = items; _a < items_1.length; _a++) {
178
195
  var item = items_1[_a];
179
- this.trigger('add', item);
196
+ this.dispatch('add', item);
180
197
  }
181
198
  return num;
182
199
  };
183
200
  WrappedArray.prototype.splice = function (start, deleteCount) {
184
201
  var removed = _super.prototype.splice.call(this, start, deleteCount);
185
- this.trigger('change', {
202
+ this.dispatch('change', {
186
203
  'removed': removed
187
204
  });
188
205
  for (var _i = 0, removed_1 = removed; _i < removed_1.length; _i++) {
189
206
  var item = removed_1[_i];
190
- this.trigger('remove', item);
207
+ this.dispatch('remove', item);
191
208
  }
192
209
  return removed;
193
210
  };
@@ -227,77 +244,6 @@ var WrappedArray = /** @class */ (function (_super) {
227
244
  this.splice(this.indexOf(item), 1);
228
245
  }
229
246
  };
230
- WrappedArray.prototype.bind = function (event, fct, context, once) {
231
- once = once || false;
232
- this._lastKey++;
233
- this._listeners[event] = this._listeners[event] || [];
234
- this._listeners[event].push(new simple_ts_event_dispatcher_1.EventCallback(fct, this._lastKey, once, context));
235
- return this._lastKey;
236
- };
237
- WrappedArray.prototype.once = function (event, fct, context) {
238
- return this.bind(event, fct, context, true);
239
- };
240
- WrappedArray.prototype.unbind = function (event, key) {
241
- if (!(event in this._listeners))
242
- return false;
243
- if (key) {
244
- for (var _i = 0, _a = this._listeners[event]; _i < _a.length; _i++) {
245
- var cb = _a[_i];
246
- if (key == cb.key) {
247
- this._listeners[event].splice(this._listeners[event].indexOf(cb), 1);
248
- return true;
249
- }
250
- }
251
- }
252
- else {
253
- this._listeners[event] = [];
254
- return true;
255
- }
256
- return false;
257
- };
258
- WrappedArray.prototype.unbindWithContext = function (event, context) {
259
- if (!(event in this._listeners))
260
- return 0;
261
- var toRemove = [], cnt = 0;
262
- for (var _i = 0, _a = this._listeners[event]; _i < _a.length; _i++) {
263
- var cb = _a[_i];
264
- if (context == cb.context) {
265
- toRemove.push(cb);
266
- }
267
- }
268
- for (var _b = 0, toRemove_2 = toRemove; _b < toRemove_2.length; _b++) {
269
- var cb = toRemove_2[_b];
270
- this._listeners[event].splice(this._listeners[event].indexOf(cb), 1);
271
- cnt++;
272
- }
273
- return cnt;
274
- };
275
- WrappedArray.prototype.getListener = function (event, key) {
276
- for (var _i = 0, _a = this._listeners[event]; _i < _a.length; _i++) {
277
- var cb = _a[_i];
278
- if (key == cb.key)
279
- return cb;
280
- }
281
- };
282
- WrappedArray.prototype.trigger = function (event) {
283
- var args = [];
284
- for (var _i = 1; _i < arguments.length; _i++) {
285
- args[_i - 1] = arguments[_i];
286
- }
287
- if (!(event in this._listeners))
288
- return;
289
- for (var i = 0; i < this._listeners[event].length; i++) {
290
- var cb = this._listeners[event][i];
291
- // We need to unbind callbacks before they're called to prevent
292
- // infinite loops if the event is somehow triggered within the
293
- // callback
294
- if (cb.once) {
295
- this.unbind(event, cb.key);
296
- i--;
297
- }
298
- cb.call(args);
299
- }
300
- };
301
247
  return WrappedArray;
302
248
  }(Array));
303
249
  exports.WrappedArray = WrappedArray;
@@ -309,7 +255,7 @@ var Scope = /** @class */ (function (_super) {
309
255
  if (parent)
310
256
  _this.parentScope = parent;
311
257
  _this.children = [];
312
- _this.data = new simple_ts_models_1.DataModel({});
258
+ _this.data = new DataModel_1.DataModel({});
313
259
  _this._keys = [];
314
260
  return _this;
315
261
  }
@@ -360,7 +306,7 @@ var Scope = /** @class */ (function (_super) {
360
306
  if (value === undefined) {
361
307
  if (searchParents && this.parentScope)
362
308
  return this.parentScope.get(key, searchParents);
363
- return this._keys.indexOf(key) > -1 ? '' : undefined;
309
+ return '';
364
310
  }
365
311
  return value;
366
312
  };
@@ -385,8 +331,8 @@ var Scope = /** @class */ (function (_super) {
385
331
  previousValue: previousValue,
386
332
  key: key
387
333
  };
388
- this.trigger("change:" + key, event_1);
389
- this.trigger('change', key, event_1);
334
+ this.dispatch("change:" + key, event_1);
335
+ this.dispatch('change', key, event_1);
390
336
  }
391
337
  if (this._keys.indexOf(key) === -1)
392
338
  this._keys.push(key);
@@ -431,6 +377,10 @@ var Scope = /** @class */ (function (_super) {
431
377
  var _this = this;
432
378
  if (triggerUpdates === void 0) { triggerUpdates = false; }
433
379
  if (updateFromWrapped === void 0) { updateFromWrapped = true; }
380
+ if (toWrap instanceof Model_1.Model) {
381
+ this.data = toWrap;
382
+ return;
383
+ }
434
384
  if (toWrap instanceof Scope)
435
385
  toWrap = toWrap.data;
436
386
  if ([null, undefined].indexOf(this.wrapped) === -1)
@@ -454,12 +404,12 @@ var Scope = /** @class */ (function (_super) {
454
404
  if (!(this_1.wrapped[field] instanceof WrappedArray)) {
455
405
  this_1.wrapped[field] = new (WrappedArray.bind.apply(WrappedArray, __spreadArray([void 0], toWrap[field])))();
456
406
  }
457
- this_1.wrapped[field].bind('change', function () {
407
+ this_1.wrapped[field].on('change', function () {
458
408
  var args = [];
459
409
  for (var _i = 0; _i < arguments.length; _i++) {
460
410
  args[_i] = arguments[_i];
461
411
  }
462
- _this.trigger.apply(_this, __spreadArray(["change:" + field], args));
412
+ _this.dispatch.apply(_this, __spreadArray(["change:" + field], args));
463
413
  });
464
414
  }
465
415
  if (typeof this_1.wrapped[field] == 'object' && this_1.wrapped[field] && this_1.wrapped[field].constructor === Object) {
@@ -484,7 +434,7 @@ var Scope = /** @class */ (function (_super) {
484
434
  configurable: true
485
435
  });
486
436
  if (triggerUpdates)
487
- this_1.trigger("change:" + field);
437
+ this_1.dispatch("change:" + field);
488
438
  };
489
439
  var this_1 = this;
490
440
  for (var field in toWrap) {
@@ -492,9 +442,9 @@ var Scope = /** @class */ (function (_super) {
492
442
  }
493
443
  this.wrapped.get = this.get.bind(this);
494
444
  this.wrapped.set = this.set.bind(this);
495
- this.wrapped.bind = this.bind.bind(this);
445
+ this.wrapped.bind = this.on.bind(this);
496
446
  this.wrapped.once = this.once.bind(this);
497
- this.wrapped.unbind = this.unbind.bind(this);
447
+ this.wrapped.unbind = this.off.bind(this);
498
448
  };
499
449
  Scope.prototype.unwrap = function () {
500
450
  if (!this.wrapped)
@@ -507,6 +457,6 @@ var Scope = /** @class */ (function (_super) {
507
457
  }
508
458
  };
509
459
  return Scope;
510
- }(simple_ts_event_dispatcher_1.EventDispatcher));
460
+ }(EventDispatcher_1.EventDispatcher));
511
461
  exports.Scope = Scope;
512
462
  //# sourceMappingURL=Scope.js.map
package/dist/Scope.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Scope.js","sourceRoot":"","sources":["../src/Scope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Scope.js","sourceRoot":"","sources":["../src/Scope.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAoC;AACpC,6BAA0B;AAC1B,qDAA2E;AAC3E,+CAA4C;AAC5C,iCAA8B;AAE9B;IAKI,wBACI,KAAmB,EACnB,GAAkB,EAClB,KAAiB;QAFjB,sBAAA,EAAA,YAAmB;QACnB,oBAAA,EAAA,UAAkB;QAClB,sBAAA,EAAA,YAAiB;QAEjB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC;IAEY,iCAAQ,GAArB;;;gBACI,sBAAO,IAAI,CAAC,MAAM,EAAC;;;KACtB;IAEY,+BAAM,GAAnB;;;gBACI,sBAAO,IAAI,CAAC,IAAI,EAAC;;;KACpB;IAEY,iCAAQ,GAArB;;;gBACI,sBAAO,IAAI,CAAC,MAAM,EAAC;;;KACtB;IACL,qBAAC;AAAD,CAAC,AA1BD,IA0BC;AA1BY,wCAAc;AA4B3B;IAAoC,kCAAc;IAC9C,wBACoB,IAAY,EACZ,KAAY;QAFhC,YAII,iBAAO,SACV;QAJmB,UAAI,GAAJ,IAAI,CAAQ;QACZ,WAAK,GAAL,KAAK,CAAO;;IAGhC,CAAC;IAEY,iCAAQ,GAArB;;;;;;wBACQ,KAAK,GAAa,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBAC3C,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBAC1B,qBAAM,SAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAA;;wBAAlD,OAAO,GAAG,SAAwC;wBACxD,sBAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,KAAK,EAAV,CAAU,CAAC,EAAC;;;;KACtF;IAEY,+BAAM,GAAnB;;;;gBACU,KAAK,GAAa,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC7C,sBAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAC;;;KAClC;IAEY,iCAAQ,GAArB;;;;4BACW,qBAAM,SAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAA;4BAAzC,sBAAO,SAAkC,EAAC;;;;KAC7C;IACL,qBAAC;AAAD,CAAC,AAvBD,CAAoC,cAAc,GAuBjD;AAvBY,wCAAc;AAyB3B;IAAA;IAKA,CAAC;IAJ0B,yBAAO,GAAW,SAAS,CAAC;IAC5B,uBAAK,GAAW,OAAO,CAAC;IACxB,yBAAO,GAAW,SAAS,CAAC;IAC5B,wBAAM,GAAW,QAAQ,CAAC;IACrD,wBAAC;CAAA,AALD,IAKC;AALY,8CAAiB;AAO9B;IAAqC,gCAAQ;IAIzC;QAAY,eAAa;aAAb,UAAa,EAAb,qBAAa,EAAb,IAAa;YAAb,0BAAa;;QAAzB,+BACa,KAAK,UAGjB;QANe,cAAQ,GAAY,IAAI,CAAC;QAIrC,MAAM,CAAC,cAAc,CAAC,KAAI,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QACpD,KAAI,CAAC,UAAU,GAAG,IAAI,iCAAe,EAAE,CAAC;;IAC5C,CAAC;IAED,+BAAQ,GAAR,UAAS,KAAa;;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QAClC,CAAA,KAAA,IAAI,CAAC,UAAU,CAAA,CAAC,QAAQ,0BAAC,KAAK,GAAK,IAAI,GAAE;IAC7C,CAAC;IAED,yBAAE,GAAF,UAAG,KAAa,EAAE,QAAiC;QAC/C,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,0BAAG,GAAH,UAAI,KAAa,EAAE,GAAY;QAC3B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,2BAAI,GAAJ,UAAK,KAAa,EAAE,QAAiC;QACjD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,2BAAI,GAAJ;QAAK,eAAa;aAAb,UAAa,EAAb,qBAAa,EAAb,IAAa;YAAb,0BAAa;;QACd,IAAM,GAAG,GAAW,iBAAM,IAAI,aAAI,KAAK,CAAC,CAAC;QAEzC,IAAI,CAAC,QAAQ,OAAb,IAAI,iBAAU,MAAM,GAAK,KAAK,GAAE;QAChC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACpB,OAAO,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,KAAmB,UAAK,EAAL,eAAK,EAAL,mBAAK,EAAL,IAAK,EAAE;YAArB,IAAM,IAAI,cAAA;YACX,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;SAC9B;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAED,6BAAM,GAAN,UAAO,KAAa,EAAE,WAAoB;QACtC,IAAM,OAAO,GAAQ,iBAAM,MAAM,YAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAEtD,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACpB,SAAS,EAAE,OAAO;SACrB,CAAC,CAAC;QACH,KAAmB,UAAO,EAAP,mBAAO,EAAP,qBAAO,EAAP,IAAO,EAAE;YAAvB,IAAM,IAAI,gBAAA;YACX,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;SACjC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,0BAAG,GAAH,UAAI,GAAW;QACX,IAAM,IAAI,GAAa;YACnB,QAAQ;SACX,CAAC;QACF,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1D,CAAC;IAED,sBAAI,gCAAM;aAAV;YACI,IAAI,CAAC,GAAW,CAAC,CAAC;YAClB,KAAmB,UAAI,EAAJ,SAAI,EAAJ,cAAI,EAAJ,IAAI,EAAE;gBAApB,IAAM,IAAI,SAAA;gBACX,CAAC,IAAI,CAAC,CAAC;aACV;YACD,OAAO,CAAC,CAAC;QACb,CAAC;aAED,UAAW,GAAW;YAClB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;;;OAJA;IAMD,gCAAS,GAAT,UAAU,GAAW;QACjB,IAAI,CAAC,GAAW,CAAC,CAAC;QAClB,IAAM,QAAQ,GAAQ,EAAE,CAAC;QACzB,KAAmB,UAAI,EAAJ,SAAI,EAAJ,cAAI,EAAJ,IAAI,EAAE;YAApB,IAAM,IAAI,SAAA;YACX,CAAC,IAAI,CAAC,CAAC;YACP,IAAI,CAAC,IAAI,GAAG,EAAE;gBACV,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACvB;SACJ;QAED,KAAmB,UAAQ,EAAR,qBAAQ,EAAR,sBAAQ,EAAR,IAAQ,EAAE;YAAxB,IAAM,IAAI,iBAAA;YACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;SACtC;IACL,CAAC;IACL,mBAAC;AAAD,CAAC,AArFD,CAAqC,KAAK,GAqFzC;AArFY,oCAAY;AAuFzB;IAA2B,yBAAe;IAQtC,eACI,MAAc;QADlB,YAGI,iBAAO,SAMV;QAdS,WAAK,GAA6B,EAAE,CAAC;QAS3C,IAAI,MAAM;YACN,KAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC9B,KAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,KAAI,CAAC,IAAI,GAAG,IAAI,qBAAS,CAAC,EAAE,CAAC,CAAC;QAC9B,KAAI,CAAC,KAAK,GAAG,EAAE,CAAC;;IACpB,CAAC;IAED,sBAAW,8BAAW;aAAtB;YACI,OAAO,IAAI,CAAC,YAAY,CAAC;QAC7B,CAAC;aAED,UAAuB,KAAY;YAC/B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;;;OALA;IAOM,wBAAQ,GAAf,UAAgB,KAAY;QACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,4BAAY,GAAZ,UAAa,IAAY,EAAE,gBAAgC;QAAhC,iCAAA,EAAA,uBAAgC;QACvD,IAAM,SAAS,GAAa,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,GAAG,GAAW,SAAS,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,KAAK,GAAU,IAAI,CAAC;QACxB,IAAI,GAAG,GAAQ,IAAI,CAAC;QACpB,IAAI,GAAG,GAAW,SAAS,CAAC,MAAM,CAAC;QAEnC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YACtB,OAAO,IAAI,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SAC1C;QAED,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAClC,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAEnB,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;YAC9B,IAAM,MAAM,GAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5D,IAAI,gBAAgB,IAAI,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE;gBAC3C,GAAG,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;gBACvB,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;aACvB;iBAAM,IAAI,CAAC,gBAAgB,IAAI,MAAM,EAAE;gBACpC,OAAO,IAAI,CAAC;aACf;YAED,IAAI,GAAG,IAAI,GAAG,YAAY,KAAK,EAAE;gBAC7B,KAAK,GAAG,GAAG,CAAC;aACf;SACJ;QAED,OAAO,IAAI,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED,mBAAG,GAAH,UAAI,GAAW,EAAE,aAA6B;QAA7B,8BAAA,EAAA,oBAA6B;QAC1C,IAAM,KAAK,GAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,KAAK,KAAK,SAAS,EAAE;YACrB,IAAI,aAAa,IAAI,IAAI,CAAC,WAAW;gBACjC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;YAEpD,OAAO,EAAE,CAAC;SACb;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,mBAAG,GAAH,UAAI,GAAW,EAAE,KAAU;QACvB,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS;YAC5B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAE/B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,IAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACpC,IAAM,MAAM,GAAG,mBAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YACjE,IAAI,MAAM,EAAE;gBACR,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;aACzB;YAED,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;gBAC9F,KAAK,GAAG,IAAI,CAAC;aAChB;SACJ;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE;YAC1B,IAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACvB,IAAM,OAAK,GAAG;gBACV,KAAK,EAAE,KAAK;gBACZ,aAAa,EAAE,aAAa;gBAC5B,GAAG,EAAE,GAAG;aACX,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,YAAU,GAAK,EAAE,OAAK,CAAC,CAAC;YACtC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAK,CAAC,CAAC;SACvC;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,sBAAI,uBAAI;aAAR;YACI,yBAAW,IAAI,CAAC,KAAK,EAAE;QAC3B,CAAC;;;OAAA;IAED,mBAAG,GAAH,UAAI,GAAW;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,uBAAO,GAAP,UAAQ,GAAW,EAAE,IAAY;QAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACvB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,uBAAO,GAAP,UAAQ,GAAW;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,iBAAiB,CAAC,MAAM,CAAC;IACvD,CAAC;IAED,sBAAM,GAAN,UAAO,IAAI;QACP,KAAkB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE;YAAnB,IAAM,GAAG,aAAA;YACV,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;SAC5B;IACL,CAAC;IAED,qBAAK,GAAL;QACI,KAAkB,UAAU,EAAV,KAAA,IAAI,CAAC,KAAK,EAAV,cAAU,EAAV,IAAU,EAAE;YAAzB,IAAM,GAAG,SAAA;YACV,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;gBAAE,SAAS;YACxE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;SACvB;IACL,CAAC;IAED,uBAAO,GAAP;QACI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC5B,CAAC;IAEM,oBAAI,GAAX,UAAY,MAAW,EAAE,cAA+B,EAAE,iBAAiC;QAA3F,iBA2EC;QA3EwB,+BAAA,EAAA,sBAA+B;QAAE,kCAAA,EAAA,wBAAiC;QACvF,IAAI,MAAM,YAAY,aAAK,EAAE;YACzB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;YACnB,OAAO;SACV;QAED,IAAI,MAAM,YAAY,KAAK;YACvB,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;QAEzB,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC9C,MAAM,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAEzD,IAAI,CAAC,MAAM,EAAE;YACT,MAAM,KAAK,CAAC,wBAAwB,CAAC,CAAC;SACzC;QAED,IAAI,MAAM,CAAC,UAAU,CAAC,EAAE;YACpB,MAAM,KAAK,CAAC,wCAAwC,CAAC,CAAC;SACzD;QAED,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;gCACrB,KAAK;YACZ,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;kCACnD;YAEb,IAAI,OAAK,OAAO,CAAC,KAAK,CAAC,YAAY,QAAQ,EAAE;gBACzC,OAAK,GAAG,CAAC,KAAK,EAAE,OAAK,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;;aAExC;YAED,IAAI,OAAK,OAAO,CAAC,KAAK,CAAC,YAAY,KAAK,EAAE;gBACtC,IAAI,CAAC,CAAC,OAAK,OAAO,CAAC,KAAK,CAAC,YAAY,YAAY,CAAC,EAAE;oBAChD,OAAK,OAAO,CAAC,KAAK,CAAC,QAAO,YAAY,YAAZ,YAAY,0BAAI,MAAM,CAAC,KAAK,CAAC,KAAC,CAAC;iBAC5D;gBACD,OAAK,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE;oBAAC,cAAO;yBAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;wBAAP,yBAAO;;oBACrC,KAAI,CAAC,QAAQ,OAAb,KAAI,iBAAU,YAAU,KAAO,GAAK,IAAI,GAAE;gBAC9C,CAAC,CAAC,CAAA;aACL;YAED,IAAI,OAAO,OAAK,OAAO,CAAC,KAAK,CAAC,IAAI,QAAQ,IAAI,OAAK,OAAO,CAAC,KAAK,CAAC,IAAI,OAAK,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,KAAK,MAAM,EAAE;gBAC7G,IAAM,WAAW,GAAG,IAAI,KAAK,QAAM,CAAC;gBACpC,WAAW,CAAC,IAAI,CAAC,OAAK,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtC,OAAK,OAAO,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC;aACrC;YAED,sEAAsE;YACtE,IAAI,iBAAiB,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,OAAK,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC5E,OAAK,GAAG,CAAC,KAAK,EAAE,OAAK,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;aACxC;YAED,IAAM,MAAM,GAAG;gBACX,OAAO,KAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC,CAAC;YAEF,IAAM,MAAM,GAAG,UAAC,KAAU;gBACtB,KAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC3B,CAAC,CAAC;YAEF,MAAM,CAAC,cAAc,CAAC,OAAK,OAAO,EAAE,KAAK,EAAE;gBACvC,GAAG,EAAE,MAAM;gBACX,GAAG,EAAE,MAAM;gBACX,UAAU,EAAE,IAAI;gBAChB,YAAY,EAAE,IAAI;aACrB,CAAC,CAAC;YAEH,IAAI,cAAc;gBACd,OAAK,QAAQ,CAAC,YAAU,KAAO,CAAC,CAAC;;;QA7CzC,KAAK,IAAM,KAAK,IAAI,MAAM;oBAAf,KAAK;SA8Cf;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAEM,sBAAM,GAAb;QACI,IAAI,CAAC,IAAI,CAAC,OAAO;YACb,OAAO;QACX,IAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC1B,KAAK,IAAM,KAAK,IAAI,QAAQ,EAAE;YAC1B,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;SAC1B;IACL,CAAC;IACL,YAAC;AAAD,CAAC,AAvOD,CAA2B,iCAAe,GAuOzC;AAvOY,sBAAK"}
@@ -0,0 +1,42 @@
1
+ import { EventDispatcher } from "./EventDispatcher";
2
+ export interface IDeferred<T> {
3
+ [key: string]: any;
4
+ promise: SimplePromise<T>;
5
+ resolve(result: T): void;
6
+ reject(reason: string): void;
7
+ }
8
+ export declare type TResolve<T> = (result: T) => void;
9
+ export declare type TReject = (reason: string) => void;
10
+ export declare type TResult<T> = T | string | null;
11
+ export declare enum EPromiseStates {
12
+ PENDING = 0,
13
+ FULFILLED = 1,
14
+ REJECTED = 2
15
+ }
16
+ export interface IPromise<T> extends EventDispatcher {
17
+ state: EPromiseStates;
18
+ result: TResult<T>;
19
+ then<X = T>(success?: (result?: T) => X, error?: (reason?: string) => string): IPromise<X>;
20
+ catch(onRejected: (reason: string) => string): IPromise<string>;
21
+ finally<X = T>(finallyCallback: (result: T | string) => X | string): IPromise<X>;
22
+ }
23
+ export declare function noop<T = any>(result?: T): T;
24
+ export declare class SimplePromise<T> extends EventDispatcher implements IPromise<T> {
25
+ protected _state: EPromiseStates;
26
+ protected _result: TResult<T>;
27
+ private promiseClass;
28
+ constructor(executor: (resolve: TResolve<T>, reject: TReject) => void);
29
+ get state(): EPromiseStates;
30
+ get result(): TResult<T>;
31
+ static defer<T>(): IDeferred<T>;
32
+ static resolve<T>(result: T): IPromise<T>;
33
+ static reject(reason: string): IPromise<void>;
34
+ static all<T>(iter: IPromise<T>[]): IPromise<T[]>;
35
+ static poolResults<T>(iter: IPromise<T>[], deferred: IDeferred<T[]>): void;
36
+ static race<T>(iter: IPromise<T>[]): IPromise<T>;
37
+ then<X = T>(success?: (result: T) => X, error?: (reason: string) => string): IPromise<X>;
38
+ catch(onRejected: (reason: string) => string): IPromise<string>;
39
+ finally<X = T>(finallyCallback: (result: T | string) => X | string): IPromise<X>;
40
+ protected _resolve(result: T): void;
41
+ protected _reject(reason: string): void;
42
+ }
@@ -0,0 +1,217 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.SimplePromise = exports.noop = exports.EPromiseStates = void 0;
19
+ var EventDispatcher_1 = require("./EventDispatcher");
20
+ var EPromiseStates;
21
+ (function (EPromiseStates) {
22
+ EPromiseStates[EPromiseStates["PENDING"] = 0] = "PENDING";
23
+ EPromiseStates[EPromiseStates["FULFILLED"] = 1] = "FULFILLED";
24
+ EPromiseStates[EPromiseStates["REJECTED"] = 2] = "REJECTED";
25
+ })(EPromiseStates = exports.EPromiseStates || (exports.EPromiseStates = {}));
26
+ function noop(result) { return result; }
27
+ exports.noop = noop;
28
+ var SimplePromise = /** @class */ (function (_super) {
29
+ __extends(SimplePromise, _super);
30
+ function SimplePromise(executor) {
31
+ var _this = _super.call(this) || this;
32
+ _this._result = null;
33
+ _this._state = EPromiseStates.PENDING;
34
+ _this.promiseClass = (Object.getPrototypeOf(_this).constructor);
35
+ try {
36
+ executor(_this._resolve.bind(_this), _this._reject.bind(_this));
37
+ }
38
+ catch (e) {
39
+ _this._reject(e);
40
+ }
41
+ return _this;
42
+ }
43
+ Object.defineProperty(SimplePromise.prototype, "state", {
44
+ get: function () {
45
+ return this._state;
46
+ },
47
+ enumerable: false,
48
+ configurable: true
49
+ });
50
+ Object.defineProperty(SimplePromise.prototype, "result", {
51
+ get: function () {
52
+ return this._result;
53
+ },
54
+ enumerable: false,
55
+ configurable: true
56
+ });
57
+ SimplePromise.defer = function () {
58
+ var promise = new SimplePromise(function (res, rej) { });
59
+ return {
60
+ promise: promise,
61
+ resolve: promise._resolve.bind(promise),
62
+ reject: promise._reject.bind(promise)
63
+ };
64
+ };
65
+ /*
66
+ * Returns a Promise object that is resolved with the given value. If the value is a thenable (i.e. has a then
67
+ * method), the returned promise will "follow" that thenable, adopting its eventual state; otherwise the returned
68
+ * promise will be fulfilled with the value. Generally, if you don't know if a value is a promise or not,
69
+ * Promise.resolve(value) it instead and work with the return value as a promise.
70
+ */
71
+ SimplePromise.resolve = function (result) {
72
+ return new SimplePromise(function (resolve) {
73
+ if (result instanceof SimplePromise) {
74
+ result.then(function (innerResult) {
75
+ resolve(innerResult);
76
+ });
77
+ }
78
+ else {
79
+ resolve(result);
80
+ }
81
+ });
82
+ };
83
+ /*
84
+ * Returns a Promise object that is rejected with the given reason.
85
+ */
86
+ SimplePromise.reject = function (reason) {
87
+ return new SimplePromise(function (resolve, reject) {
88
+ reject(reason);
89
+ });
90
+ };
91
+ /*
92
+ * Returns a promise that either fulfills when all of the promises in the iterable argument have fulfilled or
93
+ * rejects as soon as one of the promises in the iterable argument rejects. If the returned promise fulfills, it is
94
+ * fulfilled with an array of the values from the fulfilled promises in the same order as defined in the iterable.
95
+ * If the returned promise rejects, it is rejected with the reason from the first promise in the iterable that
96
+ * rejected. This method can be useful for aggregating results of multiple promises.
97
+ */
98
+ SimplePromise.all = function (iter) {
99
+ var deferred = SimplePromise.defer();
100
+ var done = true;
101
+ for (var _i = 0, iter_1 = iter; _i < iter_1.length; _i++) {
102
+ var promise = iter_1[_i];
103
+ if (promise.state == EPromiseStates.PENDING) {
104
+ done = false;
105
+ promise.once('fulfilled', function (result) {
106
+ SimplePromise.poolResults(iter, deferred);
107
+ });
108
+ promise.once('rejected', function (reason) {
109
+ deferred.reject(reason);
110
+ });
111
+ }
112
+ else if (promise.state == EPromiseStates.REJECTED) {
113
+ deferred.reject(promise.result);
114
+ done = false;
115
+ break;
116
+ }
117
+ }
118
+ if (done)
119
+ SimplePromise.poolResults(iter, deferred);
120
+ return deferred.promise;
121
+ };
122
+ SimplePromise.poolResults = function (iter, deferred) {
123
+ var done = true;
124
+ var results = [];
125
+ for (var _i = 0, iter_2 = iter; _i < iter_2.length; _i++) {
126
+ var p = iter_2[_i];
127
+ if (p.state === EPromiseStates.REJECTED) {
128
+ deferred.reject(p.result);
129
+ break;
130
+ }
131
+ else if (p.state === EPromiseStates.PENDING) {
132
+ done = false;
133
+ }
134
+ results.push(p.result);
135
+ }
136
+ if (done)
137
+ deferred.resolve(results);
138
+ };
139
+ /*
140
+ * Returns a promise that fulfills or rejects as soon as one of the promises in the iterable fulfills or rejects,
141
+ * with the value or reason from that promise.
142
+ */
143
+ SimplePromise.race = function (iter) {
144
+ var deferred = SimplePromise.defer();
145
+ for (var _i = 0, iter_3 = iter; _i < iter_3.length; _i++) {
146
+ var promise = iter_3[_i];
147
+ promise.once('fulfilled', function (result) {
148
+ deferred.resolve(result);
149
+ });
150
+ promise.once('rejected', function (reason) {
151
+ deferred.reject(reason);
152
+ });
153
+ }
154
+ return deferred.promise;
155
+ };
156
+ /*
157
+ * Appends fulfillment and rejection handlers to the promise, and returns a new promise resolving to the return
158
+ * value of the called handler, or to its original settled value if the promise was not handled (i.e. if the
159
+ * relevant handler onFulfilled or onRejected is not a function).
160
+ */
161
+ SimplePromise.prototype.then = function (success, error) {
162
+ var _this = this;
163
+ return new this.promiseClass(function (resolve, reject) {
164
+ if (_this.state === EPromiseStates.FULFILLED) {
165
+ if (success)
166
+ resolve(success(_this.result));
167
+ }
168
+ else if (_this.state === EPromiseStates.REJECTED) {
169
+ if (error)
170
+ reject(error(_this.result));
171
+ }
172
+ else {
173
+ _this.once('fulfilled', function (result) {
174
+ if (success)
175
+ resolve(success(result));
176
+ });
177
+ _this.once('rejected', function (reason) {
178
+ if (error)
179
+ reject(error(reason));
180
+ });
181
+ }
182
+ });
183
+ };
184
+ /*
185
+ * Appends a rejection handler callback to the promise, and returns a new promise resolving to the return value of
186
+ * the callback if it is called, or to its original fulfillment value if the promise is instead fulfilled.
187
+ */
188
+ SimplePromise.prototype.catch = function (onRejected) {
189
+ return this.then(undefined, onRejected);
190
+ };
191
+ /*
192
+ * Appends a handler to the promise, and returns a new promise which is resolved when the original promise is
193
+ * resolved. The handler is called when the promise is settled, whether fulfilled or rejected.
194
+ */
195
+ SimplePromise.prototype.finally = function (finallyCallback) {
196
+ var success = function (result) { return finallyCallback(result); };
197
+ var error = function (reason) { return finallyCallback(reason); };
198
+ return this.then(success, error);
199
+ };
200
+ SimplePromise.prototype._resolve = function (result) {
201
+ if (this.state !== EPromiseStates.PENDING)
202
+ return;
203
+ this._state = EPromiseStates.FULFILLED;
204
+ this._result = result;
205
+ this.dispatch('fulfilled', result);
206
+ };
207
+ SimplePromise.prototype._reject = function (reason) {
208
+ if (this.state !== EPromiseStates.PENDING)
209
+ return;
210
+ this._state = EPromiseStates.REJECTED;
211
+ this._result = reason;
212
+ this.dispatch('rejected', reason);
213
+ };
214
+ return SimplePromise;
215
+ }(EventDispatcher_1.EventDispatcher));
216
+ exports.SimplePromise = SimplePromise;
217
+ //# sourceMappingURL=SimplePromise.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimplePromise.js","sourceRoot":"","sources":["../src/SimplePromise.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,qDAAkD;AAalD,IAAY,cAIX;AAJD,WAAY,cAAc;IACtB,yDAAO,CAAA;IACP,6DAAS,CAAA;IACT,2DAAQ,CAAA;AACZ,CAAC,EAJW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAIzB;AAUD,SAAgB,IAAI,CAAU,MAAU,IAAO,OAAO,MAAW,CAAC,CAAC,CAAC;AAApE,oBAAoE;AAEpE;IAAsC,iCAAe;IAKjD,uBAAY,QAAyD;QAArE,YACI,iBAAO,SAQV;QAZS,aAAO,GAAgB,IAAI,CAAC;QAKlC,KAAI,CAAC,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC;QACrC,KAAI,CAAC,YAAY,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,KAAI,CAAC,CAAC,WAAW,CAAC,CAAC;QAC9D,IAAI;YACA,QAAQ,CAAC,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAI,CAAC,EAAE,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC,CAAC;SAC/D;QAAC,OAAO,CAAC,EAAE;YACR,KAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;SACnB;;IACL,CAAC;IAED,sBAAW,gCAAK;aAAhB;YACI,OAAO,IAAI,CAAC,MAAM,CAAC;QACvB,CAAC;;;OAAA;IAED,sBAAW,iCAAM;aAAjB;YACI,OAAO,IAAI,CAAC,OAAO,CAAC;QACxB,CAAC;;;OAAA;IAEa,mBAAK,GAAnB;QACI,IAAM,OAAO,GAAqB,IAAI,aAAa,CAAI,UAAC,GAAG,EAAE,GAAG,IAAM,CAAC,CAAC,CAAC;QAEzE,OAAO;YACH,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;YACvC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;SACxC,CAAC;IACN,CAAC;IAED;;;;;OAKG;IACW,qBAAO,GAArB,UAAyB,MAAS;QAC9B,OAAO,IAAI,aAAa,CAAI,UAAC,OAAoB;YAC7C,IAAI,MAAM,YAAY,aAAa,EAAE;gBACjC,MAAM,CAAC,IAAI,CAAC,UAAC,WAAc;oBACvB,OAAO,CAAC,WAAW,CAAC,CAAC;gBACzB,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,OAAO,CAAC,MAAM,CAAC,CAAC;aACnB;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACW,oBAAM,GAApB,UAAqB,MAAc;QAC/B,OAAO,IAAI,aAAa,CAAO,UAAC,OAAuB,EAAE,MAAe;YACpE,MAAM,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;OAMG;IACW,iBAAG,GAAjB,UAAqB,IAAmB;QACpC,IAAM,QAAQ,GAAmB,aAAa,CAAC,KAAK,EAAO,CAAC;QAC5D,IAAI,IAAI,GAAY,IAAI,CAAC;QACzB,KAAsB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE;YAAvB,IAAM,OAAO,aAAA;YACd,IAAI,OAAO,CAAC,KAAK,IAAI,cAAc,CAAC,OAAO,EAAE;gBACzC,IAAI,GAAG,KAAK,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,UAAC,MAAS;oBAChC,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAC9C,CAAC,CAAC,CAAC;gBAEH,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,UAAC,MAAc;oBACpC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC5B,CAAC,CAAC,CAAC;aACN;iBAAM,IAAG,OAAO,CAAC,KAAK,IAAI,cAAc,CAAC,QAAQ,EAAE;gBAChD,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,MAAgB,CAAC,CAAC;gBAC1C,IAAI,GAAG,KAAK,CAAC;gBACb,MAAM;aACT;SACJ;QAED,IAAI,IAAI;YACJ,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAE9C,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC5B,CAAC;IAEa,yBAAW,GAAzB,UAA6B,IAAmB,EAAE,QAAwB;QACtE,IAAI,IAAI,GAAY,IAAI,CAAC;QACzB,IAAM,OAAO,GAAQ,EAAE,CAAC;QACxB,KAAgB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE;YAAjB,IAAM,CAAC,aAAA;YACR,IAAI,CAAC,CAAC,KAAK,KAAK,cAAc,CAAC,QAAQ,EAAE;gBACrC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAgB,CAAC,CAAC;gBACpC,MAAM;aACT;iBAAM,IAAI,CAAC,CAAC,KAAK,KAAK,cAAc,CAAC,OAAO,EAAE;gBAC3C,IAAI,GAAG,KAAK,CAAC;aAChB;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAW,CAAC,CAAC;SAC/B;QACD,IAAI,IAAI;YACJ,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED;;;OAGG;IACW,kBAAI,GAAlB,UAAsB,IAAmB;QACrC,IAAM,QAAQ,GAAiB,aAAa,CAAC,KAAK,EAAK,CAAC;QAExD,KAAsB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE;YAAvB,IAAM,OAAO,aAAA;YACd,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,UAAC,MAAS;gBAChC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,UAAC,MAAc;gBACpC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;SACN;QAED,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACI,4BAAI,GAAX,UAAmB,OAA0B,EAAE,KAAkC;QAAjF,iBAoBC;QAnBG,OAAO,IAAI,IAAI,CAAC,YAAY,CAAI,UAAC,OAAoB,EAAE,MAAe;YAClE,IAAI,KAAI,CAAC,KAAK,KAAK,cAAc,CAAC,SAAS,EAAE;gBACzC,IAAI,OAAO;oBACP,OAAO,CAAC,OAAO,CAAC,KAAI,CAAC,MAAW,CAAC,CAAC,CAAC;aAC1C;iBAAM,IAAI,KAAI,CAAC,KAAK,KAAK,cAAc,CAAC,QAAQ,EAAE;gBAC/C,IAAI,KAAK;oBACL,MAAM,CAAC,KAAK,CAAC,KAAI,CAAC,MAAgB,CAAC,CAAC,CAAC;aAC5C;iBAAM;gBACH,KAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAC,MAAS;oBAC7B,IAAI,OAAO;wBACP,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;gBACjC,CAAC,CAAC,CAAC;gBAEH,KAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAC,MAAc;oBACjC,IAAI,KAAK;wBACL,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC9B,CAAC,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;OAGG;IACI,6BAAK,GAAZ,UAAa,UAAsC;QAC/C,OAAO,IAAI,CAAC,IAAI,CAAS,SAAS,EAAE,UAAU,CAAC,CAAC;IACpD,CAAC;IAED;;;OAGG;IACI,+BAAO,GAAd,UAAsB,eAAmD;QACrE,IAAM,OAAO,GAAgB,UAAC,MAAS,IAAQ,OAAA,eAAe,CAAC,MAAM,CAAM,EAA5B,CAA4B,CAAC;QAC5E,IAAM,KAAK,GAA0B,UAAC,MAAc,IAAa,OAAA,eAAe,CAAC,MAAM,CAAW,EAAjC,CAAiC,CAAC;QAEnG,OAAO,IAAI,CAAC,IAAI,CAAI,OAAO,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IAES,gCAAQ,GAAlB,UAAmB,MAAS;QACxB,IAAI,IAAI,CAAC,KAAK,KAAK,cAAc,CAAC,OAAO;YAAE,OAAO;QAClD,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAES,+BAAO,GAAjB,UAAkB,MAAc;QAC5B,IAAI,IAAI,CAAC,KAAK,KAAK,cAAc,CAAC,OAAO;YAAE,OAAO;QAClD,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;IACL,oBAAC;AAAD,CAAC,AA7LD,CAAsC,iCAAe,GA6LpD;AA7LY,sCAAa"}
package/dist/Tag.js CHANGED
@@ -59,6 +59,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
59
59
  exports.Tag = exports.TagState = void 0;
60
60
  var Scope_1 = require("./Scope");
61
61
  var Attribute_1 = require("./Attribute");
62
+ var Controller_1 = require("./Controller");
62
63
  var VisionHelper_1 = require("./helpers/VisionHelper");
63
64
  var StandardAttribute_1 = require("./attributes/StandardAttribute");
64
65
  var On_1 = require("./attributes/On");
@@ -213,7 +214,7 @@ var Tag = /** @class */ (function (_super) {
213
214
  var attr = _a[_i];
214
215
  attr.mutate(mutation);
215
216
  }
216
- this.trigger('mutate', mutation);
217
+ this.dispatch('mutate', mutation);
217
218
  };
218
219
  Tag.prototype.get = function (attr) {
219
220
  this.element.getAttribute(attr);
@@ -354,10 +355,15 @@ var Tag = /** @class */ (function (_super) {
354
355
  if (VisionHelper_1.VisionHelper.isConstructor(obj)) {
355
356
  obj = new obj();
356
357
  }
357
- this.scope.wrap(obj, triggerUpdates, updateFromWrapped);
358
- obj['$scope'] = this.scope;
359
- obj['$tag'] = this;
360
- obj['$el'] = this.element;
358
+ if (obj instanceof Controller_1.Controller) {
359
+ obj.init(this.scope, this, this.element);
360
+ }
361
+ else {
362
+ this.scope.wrap(obj, triggerUpdates, updateFromWrapped);
363
+ obj['$scope'] = this.scope;
364
+ obj['$tag'] = this;
365
+ obj['$el'] = this.element;
366
+ }
361
367
  return obj;
362
368
  };
363
369
  Tag.prototype.unwrap = function () {
@@ -461,7 +467,7 @@ var Tag = /** @class */ (function (_super) {
461
467
  case 3:
462
468
  _c.sent();
463
469
  this.deferredAttributes.push(attrObj);
464
- attrObj.bind('state', this.onAttributeStateChange.bind(this));
470
+ attrObj.on('state', this.onAttributeStateChange.bind(this));
465
471
  _c.label = 4;
466
472
  case 4:
467
473
  _i++;