vsn 0.1.26 → 0.1.29

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 (303) hide show
  1. package/demo/vsn.js +1 -1
  2. package/dist/AST/ArithmeticAssignmentNode.d.ts +23 -0
  3. package/dist/AST/ArithmeticAssignmentNode.js +313 -0
  4. package/dist/AST/ArithmeticAssignmentNode.js.map +1 -0
  5. package/dist/AST/ArithmeticNode.d.ts +15 -0
  6. package/dist/AST/ArithmeticNode.js +114 -0
  7. package/dist/AST/ArithmeticNode.js.map +1 -0
  8. package/dist/AST/ArrayNode.d.ts +14 -0
  9. package/dist/AST/ArrayNode.js +114 -0
  10. package/dist/AST/ArrayNode.js.map +1 -0
  11. package/dist/AST/BlockNode.d.ts +11 -0
  12. package/dist/AST/BlockNode.js +98 -0
  13. package/dist/AST/BlockNode.js.map +1 -0
  14. package/dist/AST/BooleanLiteralNode.d.ts +5 -0
  15. package/dist/AST/BooleanLiteralNode.js +31 -0
  16. package/dist/AST/BooleanLiteralNode.js.map +1 -0
  17. package/dist/AST/ComparisonNode.d.ts +15 -0
  18. package/dist/AST/ComparisonNode.js +120 -0
  19. package/dist/AST/ComparisonNode.js.map +1 -0
  20. package/dist/AST/ConditionalNode.d.ts +13 -0
  21. package/dist/AST/ConditionalNode.js +95 -0
  22. package/dist/AST/ConditionalNode.js.map +1 -0
  23. package/dist/AST/ElementAttributeNode.d.ts +18 -0
  24. package/dist/AST/ElementAttributeNode.js +159 -0
  25. package/dist/AST/ElementAttributeNode.js.map +1 -0
  26. package/dist/AST/ElementQueryNode.d.ts +12 -0
  27. package/dist/AST/ElementQueryNode.js +111 -0
  28. package/dist/AST/ElementQueryNode.js.map +1 -0
  29. package/dist/AST/ElementStyleNode.d.ts +18 -0
  30. package/dist/AST/ElementStyleNode.js +159 -0
  31. package/dist/AST/ElementStyleNode.js.map +1 -0
  32. package/dist/AST/ForStatementNode.d.ts +17 -0
  33. package/dist/AST/ForStatementNode.js +121 -0
  34. package/dist/AST/ForStatementNode.js.map +1 -0
  35. package/dist/AST/FunctionArgumentNode.d.ts +11 -0
  36. package/dist/AST/FunctionArgumentNode.js +100 -0
  37. package/dist/AST/FunctionArgumentNode.js.map +1 -0
  38. package/dist/AST/FunctionCallNode.d.ts +13 -0
  39. package/dist/AST/FunctionCallNode.js +102 -0
  40. package/dist/AST/FunctionCallNode.js.map +1 -0
  41. package/dist/AST/IfStatementNode.d.ts +14 -0
  42. package/dist/AST/IfStatementNode.js +128 -0
  43. package/dist/AST/IfStatementNode.js.map +1 -0
  44. package/dist/AST/InNode.d.ts +15 -0
  45. package/dist/AST/InNode.js +107 -0
  46. package/dist/AST/InNode.js.map +1 -0
  47. package/dist/AST/IndexNode.d.ts +16 -0
  48. package/dist/AST/IndexNode.js +126 -0
  49. package/dist/AST/IndexNode.js.map +1 -0
  50. package/dist/AST/LiteralNode.d.ts +10 -0
  51. package/dist/AST/LiteralNode.js +74 -0
  52. package/dist/AST/LiteralNode.js.map +1 -0
  53. package/dist/AST/Node.d.ts +19 -0
  54. package/dist/AST/Node.js +117 -0
  55. package/dist/AST/Node.js.map +1 -0
  56. package/dist/AST/NotNode.d.ts +12 -0
  57. package/dist/AST/NotNode.js +103 -0
  58. package/dist/AST/NotNode.js.map +1 -0
  59. package/dist/AST/NumberLiteralNode.d.ts +5 -0
  60. package/dist/AST/NumberLiteralNode.js +36 -0
  61. package/dist/AST/NumberLiteralNode.js.map +1 -0
  62. package/dist/AST/ObjectNode.d.ts +14 -0
  63. package/dist/AST/ObjectNode.js +131 -0
  64. package/dist/AST/ObjectNode.js.map +1 -0
  65. package/dist/AST/RootScopeMemberNode.d.ts +11 -0
  66. package/dist/AST/RootScopeMemberNode.js +87 -0
  67. package/dist/AST/RootScopeMemberNode.js.map +1 -0
  68. package/dist/AST/ScopeMemberNode.d.ts +12 -0
  69. package/dist/AST/ScopeMemberNode.js +128 -0
  70. package/dist/AST/ScopeMemberNode.js.map +1 -0
  71. package/dist/AST/UnitLiteralNode.d.ts +15 -0
  72. package/dist/AST/UnitLiteralNode.js +72 -0
  73. package/dist/AST/UnitLiteralNode.js.map +1 -0
  74. package/dist/AST.d.ts +7 -60
  75. package/dist/AST.js +778 -0
  76. package/dist/AST.js.map +1 -0
  77. package/dist/Attribute.d.ts +1 -1
  78. package/dist/Attribute.js +187 -0
  79. package/dist/Attribute.js.map +1 -0
  80. package/dist/Bencmark.js +179 -0
  81. package/dist/Bencmark.js.map +1 -0
  82. package/dist/Configuration.d.ts +1 -1
  83. package/dist/Configuration.js +64 -0
  84. package/dist/Configuration.js.map +1 -0
  85. package/dist/Controller.d.ts +4 -2
  86. package/dist/Controller.js +62 -0
  87. package/dist/Controller.js.map +1 -0
  88. package/dist/DOM/DOMObject.d.ts +1 -1
  89. package/dist/DOM/DOMObject.js +47 -0
  90. package/dist/DOM/DOMObject.js.map +1 -0
  91. package/dist/DOM/WrappedDocument.js +34 -0
  92. package/dist/DOM/WrappedDocument.js.map +1 -0
  93. package/dist/DOM/WrappedWindow.js +45 -0
  94. package/dist/DOM/WrappedWindow.js.map +1 -0
  95. package/dist/DOM.d.ts +1 -1
  96. package/dist/DOM.js +547 -0
  97. package/dist/DOM.js.map +1 -0
  98. package/dist/EventDispatcher.d.ts +29 -0
  99. package/dist/EventDispatcher.js +132 -0
  100. package/dist/EventDispatcher.js.map +1 -0
  101. package/dist/Formats.js +44 -0
  102. package/dist/Formats.js.map +1 -0
  103. package/dist/MessageList.d.ts +15 -0
  104. package/dist/MessageList.js +96 -0
  105. package/dist/MessageList.js.map +1 -0
  106. package/dist/Model/Field.d.ts +8 -0
  107. package/dist/Model/Field.js +38 -0
  108. package/dist/Model/Field.js.map +1 -0
  109. package/dist/Model.d.ts +12 -0
  110. package/dist/Model.js +61 -0
  111. package/dist/Model.js.map +1 -0
  112. package/dist/Query.js +66 -0
  113. package/dist/Query.js.map +1 -0
  114. package/dist/Registry.d.ts +5 -2
  115. package/dist/Registry.js +139 -0
  116. package/dist/Registry.js.map +1 -0
  117. package/dist/Scope/DynamicScopeData.d.ts +6 -0
  118. package/dist/Scope/DynamicScopeData.js +54 -0
  119. package/dist/Scope/DynamicScopeData.js.map +1 -0
  120. package/dist/Scope/QueryReference.d.ts +10 -0
  121. package/dist/Scope/QueryReference.js +103 -0
  122. package/dist/Scope/QueryReference.js.map +1 -0
  123. package/dist/Scope/ScopeData.d.ts +4 -0
  124. package/dist/Scope/ScopeData.js +40 -0
  125. package/dist/Scope/ScopeData.js.map +1 -0
  126. package/dist/Scope/ScopeDataAbstract.d.ts +22 -0
  127. package/dist/Scope/ScopeDataAbstract.js +137 -0
  128. package/dist/Scope/ScopeDataAbstract.js.map +1 -0
  129. package/dist/Scope/ScopeReference.d.ts +10 -0
  130. package/dist/Scope/ScopeReference.js +73 -0
  131. package/dist/Scope/ScopeReference.js.map +1 -0
  132. package/dist/Scope/ScopedVariableType.d.ts +6 -0
  133. package/dist/Scope/ScopedVariableType.js +14 -0
  134. package/dist/Scope/ScopedVariableType.js.map +1 -0
  135. package/dist/Scope/WrappedArray.d.ts +16 -0
  136. package/dist/Scope/WrappedArray.js +121 -0
  137. package/dist/Scope/WrappedArray.js.map +1 -0
  138. package/dist/Scope/properties/Property.d.ts +18 -0
  139. package/dist/Scope/properties/Property.js +93 -0
  140. package/dist/Scope/properties/Property.js.map +1 -0
  141. package/dist/Scope.d.ts +4 -48
  142. package/dist/Scope.js +227 -0
  143. package/dist/Scope.js.map +1 -0
  144. package/dist/SimplePromise.d.ts +42 -0
  145. package/dist/SimplePromise.js +217 -0
  146. package/dist/SimplePromise.js.map +1 -0
  147. package/dist/Tag/List.js +85 -0
  148. package/dist/Tag/List.js.map +1 -0
  149. package/dist/Tag.js +770 -0
  150. package/dist/Tag.js.map +1 -0
  151. package/dist/Types.d.ts +1 -0
  152. package/dist/Types.js +54 -0
  153. package/dist/Types.js.map +1 -0
  154. package/dist/Validators.d.ts +7 -0
  155. package/dist/Validators.js +54 -0
  156. package/dist/Validators.js.map +1 -0
  157. package/dist/attributes/AddClassIf.js +93 -0
  158. package/dist/attributes/AddClassIf.js.map +1 -0
  159. package/dist/attributes/Bind.js +272 -0
  160. package/dist/attributes/Bind.js.map +1 -0
  161. package/dist/attributes/ClassConstructor.d.ts +1 -0
  162. package/dist/attributes/ClassConstructor.js +104 -0
  163. package/dist/attributes/ClassConstructor.js.map +1 -0
  164. package/dist/attributes/ClickRemoveClass.js +114 -0
  165. package/dist/attributes/ClickRemoveClass.js.map +1 -0
  166. package/dist/attributes/ClickToggleClass.js +114 -0
  167. package/dist/attributes/ClickToggleClass.js.map +1 -0
  168. package/dist/attributes/ControllerAttribute.js +28 -0
  169. package/dist/attributes/ControllerAttribute.js.map +1 -0
  170. package/dist/attributes/DisableIf.js +94 -0
  171. package/dist/attributes/DisableIf.js.map +1 -0
  172. package/dist/attributes/Exec.js +108 -0
  173. package/dist/attributes/Exec.js.map +1 -0
  174. package/dist/attributes/Format.js +99 -0
  175. package/dist/attributes/Format.js.map +1 -0
  176. package/dist/attributes/If.js +159 -0
  177. package/dist/attributes/If.js.map +1 -0
  178. package/dist/attributes/JSONAttribute.js +118 -0
  179. package/dist/attributes/JSONAttribute.js.map +1 -0
  180. package/dist/attributes/KeyAbstract.js +117 -0
  181. package/dist/attributes/KeyAbstract.js.map +1 -0
  182. package/dist/attributes/KeyDown.js +88 -0
  183. package/dist/attributes/KeyDown.js.map +1 -0
  184. package/dist/attributes/KeyUp.js +88 -0
  185. package/dist/attributes/KeyUp.js.map +1 -0
  186. package/dist/attributes/List.js +282 -0
  187. package/dist/attributes/List.js.map +1 -0
  188. package/dist/attributes/ListItem.js +138 -0
  189. package/dist/attributes/ListItem.js.map +1 -0
  190. package/dist/attributes/ListItemModel.js +39 -0
  191. package/dist/attributes/ListItemModel.js.map +1 -0
  192. package/dist/attributes/ModelAttribute.js +29 -0
  193. package/dist/attributes/ModelAttribute.js.map +1 -0
  194. package/dist/attributes/Name.js +88 -0
  195. package/dist/attributes/Name.js.map +1 -0
  196. package/dist/attributes/On.js +135 -0
  197. package/dist/attributes/On.js.map +1 -0
  198. package/dist/attributes/Radio.js +174 -0
  199. package/dist/attributes/Radio.js.map +1 -0
  200. package/dist/attributes/Referenced.js +38 -0
  201. package/dist/attributes/Referenced.js.map +1 -0
  202. package/dist/attributes/RootAttribute.js +91 -0
  203. package/dist/attributes/RootAttribute.js.map +1 -0
  204. package/dist/attributes/ScopeAttribute.js +40 -0
  205. package/dist/attributes/ScopeAttribute.js.map +1 -0
  206. package/dist/attributes/ScopeChange.js +130 -0
  207. package/dist/attributes/ScopeChange.js.map +1 -0
  208. package/dist/attributes/SetAttribute.js +133 -0
  209. package/dist/attributes/SetAttribute.js.map +1 -0
  210. package/dist/attributes/StandardAttribute.js +186 -0
  211. package/dist/attributes/StandardAttribute.js.map +1 -0
  212. package/dist/attributes/StyleAttribute.js +183 -0
  213. package/dist/attributes/StyleAttribute.js.map +1 -0
  214. package/dist/attributes/Template.js +39 -0
  215. package/dist/attributes/Template.js.map +1 -0
  216. package/dist/attributes/TypeAttribute.js +104 -0
  217. package/dist/attributes/TypeAttribute.js.map +1 -0
  218. package/dist/attributes/_imports.js +60 -0
  219. package/dist/attributes/_imports.js.map +1 -0
  220. package/dist/helpers/DOMHelper.js +81 -0
  221. package/dist/helpers/DOMHelper.js.map +1 -0
  222. package/dist/helpers/ElementHelper.js +25 -0
  223. package/dist/helpers/ElementHelper.js.map +1 -0
  224. package/dist/helpers/VisionHelper.js +71 -0
  225. package/dist/helpers/VisionHelper.js.map +1 -0
  226. package/dist/helpers/decorators.js +38 -0
  227. package/dist/helpers/decorators.js.map +1 -0
  228. package/dist/vsn.d.ts +11 -2
  229. package/dist/vsn.js +181 -0
  230. package/dist/vsn.js.map +1 -0
  231. package/package.json +2 -6
  232. package/src/AST/ArithmeticAssignmentNode.ts +236 -0
  233. package/src/AST/ArithmeticNode.ts +52 -0
  234. package/src/AST/ArrayNode.ts +39 -0
  235. package/src/AST/BlockNode.ts +25 -0
  236. package/src/AST/BooleanLiteralNode.ts +10 -0
  237. package/src/AST/ComparisonNode.ts +57 -0
  238. package/src/AST/ConditionalNode.ts +36 -0
  239. package/src/AST/ElementAttributeNode.ts +63 -0
  240. package/src/AST/ElementQueryNode.ts +25 -0
  241. package/src/AST/ElementStyleNode.ts +63 -0
  242. package/src/AST/ForStatementNode.ts +59 -0
  243. package/src/AST/FunctionArgumentNode.ts +27 -0
  244. package/src/AST/FunctionCallNode.ts +32 -0
  245. package/src/AST/IfStatementNode.ts +67 -0
  246. package/src/AST/InNode.ts +46 -0
  247. package/src/AST/IndexNode.ts +61 -0
  248. package/src/AST/LiteralNode.ts +17 -0
  249. package/src/AST/Node.ts +71 -0
  250. package/src/AST/NotNode.ts +41 -0
  251. package/src/AST/NumberLiteralNode.ts +14 -0
  252. package/src/AST/ObjectNode.ts +55 -0
  253. package/src/AST/RootScopeMemberNode.ts +25 -0
  254. package/src/AST/ScopeMemberNode.ts +53 -0
  255. package/src/AST/UnitLiteralNode.ts +51 -0
  256. package/src/AST.ts +34 -1094
  257. package/src/Attribute.ts +2 -2
  258. package/src/Configuration.ts +3 -3
  259. package/src/Controller.ts +10 -2
  260. package/src/DOM/DOMObject.ts +1 -1
  261. package/src/DOM.ts +3 -3
  262. package/src/EventDispatcher.ts +134 -0
  263. package/src/Formats.ts +2 -2
  264. package/src/MessageList.ts +85 -0
  265. package/src/Model/Field.ts +20 -0
  266. package/src/Model.ts +43 -0
  267. package/src/Registry.ts +13 -3
  268. package/src/Scope/DynamicScopeData.ts +29 -0
  269. package/src/Scope/QueryReference.ts +29 -0
  270. package/src/Scope/ScopeData.ts +21 -0
  271. package/src/Scope/ScopeDataAbstract.ts +126 -0
  272. package/src/Scope/ScopeReference.ts +30 -0
  273. package/src/Scope/ScopedVariableType.ts +7 -0
  274. package/src/Scope/WrappedArray.ts +88 -0
  275. package/src/Scope/properties/Property.ts +79 -0
  276. package/src/Scope.ts +31 -252
  277. package/src/SimplePromise.ts +219 -0
  278. package/src/Tag.ts +3 -3
  279. package/src/Types.ts +6 -1
  280. package/src/Validators.ts +45 -0
  281. package/src/attributes/Bind.ts +4 -4
  282. package/src/attributes/ClassConstructor.ts +2 -1
  283. package/src/attributes/JSONAttribute.ts +2 -1
  284. package/src/attributes/List.ts +4 -4
  285. package/src/attributes/Radio.ts +3 -2
  286. package/src/attributes/ScopeChange.ts +2 -2
  287. package/src/attributes/SetAttribute.ts +2 -1
  288. package/src/attributes/StandardAttribute.ts +1 -1
  289. package/src/attributes/StyleAttribute.ts +3 -2
  290. package/src/attributes/TypeAttribute.ts +1 -1
  291. package/src/vsn.ts +16 -5
  292. package/test/AST/ArithmeticAssignmentNode.spec.ts +47 -0
  293. package/test/AST.spec.ts +3 -2
  294. package/test/Controller.spec.ts +44 -0
  295. package/test/MessageList.spec.ts +101 -0
  296. package/test/Model/DataModel.spec.ts +0 -0
  297. package/test/Scope/DynamicScopeData.spec.ts +141 -0
  298. package/test/Scope.spec.ts +15 -3
  299. package/test/SimplePromise.spec.ts +271 -0
  300. package/test/Tag/TagList.spec.ts +1 -1
  301. package/test/attributes/Bind.spec.ts +5 -5
  302. package/test/attributes/ListItem.spec.ts +1 -1
  303. package/dist/vsn.min.js +0 -1
@@ -0,0 +1,29 @@
1
+ export interface EventCallbackList {
2
+ [index: string]: EventCallback[];
3
+ }
4
+ export declare class EventCallback {
5
+ readonly fnc: any;
6
+ readonly key: number;
7
+ readonly once: boolean;
8
+ readonly context?: any;
9
+ calls: number;
10
+ constructor(fnc: any, key: number, once: boolean, context?: any);
11
+ call(...args: any[]): boolean;
12
+ }
13
+ export declare type EventDispatcherCallback = (...args: any[]) => any;
14
+ export declare class EventDispatcher {
15
+ private static sources;
16
+ private readonly _listeners;
17
+ private readonly _relays;
18
+ private _lastKey;
19
+ constructor();
20
+ deconstruct(): void;
21
+ addRelay(relay: EventDispatcher): void;
22
+ removeRelay(relay: EventDispatcher): void;
23
+ on(event: string, fct: EventDispatcherCallback, context?: any, once?: boolean): number;
24
+ once(event: string, fct: EventDispatcherCallback, context?: any): number;
25
+ off(event: string, key?: number): boolean;
26
+ offWithContext(event: string, context: any): number;
27
+ getListener(event: string, key: number): EventCallback | undefined;
28
+ dispatch(event: string, ...args: any[]): void;
29
+ }
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ var __spreadArray = (this && this.__spreadArray) || function (to, from) {
3
+ for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
4
+ to[j] = from[i];
5
+ return to;
6
+ };
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.EventDispatcher = exports.EventCallback = void 0;
9
+ var EventCallback = /** @class */ (function () {
10
+ function EventCallback(fnc, key, once, context) {
11
+ this.fnc = fnc;
12
+ this.key = key;
13
+ this.once = once;
14
+ this.context = context;
15
+ this.calls = 0;
16
+ }
17
+ EventCallback.prototype.call = function () {
18
+ var _a;
19
+ var args = [];
20
+ for (var _i = 0; _i < arguments.length; _i++) {
21
+ args[_i] = arguments[_i];
22
+ }
23
+ if (this.once && this.calls > 0)
24
+ return false;
25
+ (_a = this.fnc).apply.apply(_a, __spreadArray([this.context], args));
26
+ this.calls += 1;
27
+ return true;
28
+ };
29
+ return EventCallback;
30
+ }());
31
+ exports.EventCallback = EventCallback;
32
+ var EventDispatcher = /** @class */ (function () {
33
+ function EventDispatcher() {
34
+ this._relays = [];
35
+ this._lastKey = 0;
36
+ this._listeners = {};
37
+ EventDispatcher.sources.push(this);
38
+ }
39
+ EventDispatcher.prototype.deconstruct = function () {
40
+ this.dispatch('deconstruct', this);
41
+ EventDispatcher.sources.splice(EventDispatcher.sources.indexOf(this), 1);
42
+ for (var k in this._listeners) {
43
+ delete this._listeners[k];
44
+ }
45
+ };
46
+ EventDispatcher.prototype.addRelay = function (relay) {
47
+ this._relays.push(relay);
48
+ };
49
+ EventDispatcher.prototype.removeRelay = function (relay) {
50
+ if (this._relays.indexOf(relay) > -1)
51
+ this._relays.splice(this._relays.indexOf(relay), 1);
52
+ };
53
+ EventDispatcher.prototype.on = function (event, fct, context, once) {
54
+ once = once || false;
55
+ this._lastKey++;
56
+ this._listeners[event] = this._listeners[event] || [];
57
+ this._listeners[event].push(new EventCallback(fct, this._lastKey, once, context));
58
+ return this._lastKey;
59
+ };
60
+ EventDispatcher.prototype.once = function (event, fct, context) {
61
+ return this.on(event, fct, context, true);
62
+ };
63
+ EventDispatcher.prototype.off = function (event, key) {
64
+ if (event in this._listeners === false)
65
+ return false;
66
+ if (key) {
67
+ for (var _i = 0, _a = this._listeners[event]; _i < _a.length; _i++) {
68
+ var cb = _a[_i];
69
+ if (key == cb.key) {
70
+ this._listeners[event].splice(this._listeners[event].indexOf(cb), 1);
71
+ return true;
72
+ }
73
+ }
74
+ }
75
+ else {
76
+ this._listeners[event] = [];
77
+ return true;
78
+ }
79
+ return false;
80
+ };
81
+ EventDispatcher.prototype.offWithContext = function (event, context) {
82
+ if (!(event in this._listeners))
83
+ return 0;
84
+ var toRemove = [], cnt = 0;
85
+ for (var _i = 0, _a = this._listeners[event]; _i < _a.length; _i++) {
86
+ var cb = _a[_i];
87
+ if (context == cb.context) {
88
+ toRemove.push(cb);
89
+ }
90
+ }
91
+ for (var _b = 0, toRemove_1 = toRemove; _b < toRemove_1.length; _b++) {
92
+ var cb = toRemove_1[_b];
93
+ this._listeners[event].splice(this._listeners[event].indexOf(cb), 1);
94
+ cnt++;
95
+ }
96
+ return cnt;
97
+ };
98
+ EventDispatcher.prototype.getListener = function (event, key) {
99
+ for (var _i = 0, _a = this._listeners[event]; _i < _a.length; _i++) {
100
+ var cb = _a[_i];
101
+ if (key == cb.key)
102
+ return cb;
103
+ }
104
+ };
105
+ EventDispatcher.prototype.dispatch = function (event) {
106
+ var args = [];
107
+ for (var _i = 1; _i < arguments.length; _i++) {
108
+ args[_i - 1] = arguments[_i];
109
+ }
110
+ if (event in this._listeners) {
111
+ for (var i = 0; i < this._listeners[event].length; i++) {
112
+ var cb = this._listeners[event][i];
113
+ // We need to unbind callbacks before they're called to prevent
114
+ // infinite loops if the event is somehow triggered within the
115
+ // callback
116
+ if (cb.once) {
117
+ this.off(event, cb.key);
118
+ i--;
119
+ }
120
+ cb.call(args);
121
+ }
122
+ }
123
+ for (var _a = 0, _b = this._relays; _a < _b.length; _a++) {
124
+ var relay = _b[_a];
125
+ relay.dispatch.apply(relay, __spreadArray([event], args));
126
+ }
127
+ };
128
+ EventDispatcher.sources = [];
129
+ return EventDispatcher;
130
+ }());
131
+ exports.EventDispatcher = EventDispatcher;
132
+ //# sourceMappingURL=EventDispatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventDispatcher.js","sourceRoot":"","sources":["../src/EventDispatcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.Formats = void 0;
10
+ var Registry_1 = require("./Registry");
11
+ var Configuration_1 = require("./Configuration");
12
+ var Formats = /** @class */ (function () {
13
+ function Formats() {
14
+ }
15
+ Formats.currency = function (value) {
16
+ if (!Formats.CurrencyFormatter) {
17
+ var setup = function () {
18
+ var locale = Configuration_1.Configuration.get('locale', 'en-US');
19
+ var currency = Configuration_1.Configuration.get('currency', 'USD');
20
+ Formats.CurrencyFormatter = new Intl.NumberFormat(locale, {
21
+ style: 'currency',
22
+ currency: currency
23
+ });
24
+ };
25
+ Configuration_1.Configuration.instance.on('change:locale', setup);
26
+ Configuration_1.Configuration.instance.on('change:currency', setup);
27
+ setup();
28
+ }
29
+ value = ("" + value).replace(/[^0-9.]+/, '');
30
+ return Formats.CurrencyFormatter.format(parseFloat(value));
31
+ };
32
+ Formats.date = function (value) {
33
+ return value ? value.toLocaleString() : '';
34
+ };
35
+ __decorate([
36
+ Registry_1.Registry.format('currency')
37
+ ], Formats, "currency", null);
38
+ __decorate([
39
+ Registry_1.Registry.format('date')
40
+ ], Formats, "date", null);
41
+ return Formats;
42
+ }());
43
+ exports.Formats = Formats;
44
+ //# sourceMappingURL=Formats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Formats.js","sourceRoot":"","sources":["../src/Formats.ts"],"names":[],"mappings":";;;;;;;;;AAAA,uCAAoC;AACpC,iDAA8C;AAE9C;IAAA;IA0BA,CAAC;IAtBiB,gBAAQ,GAAtB,UAAuB,KAAsB;QACzC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;YAC5B,IAAM,KAAK,GAAG;gBACV,IAAM,MAAM,GAAW,6BAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAW,CAAC;gBACtE,IAAM,QAAQ,GAAW,6BAAa,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAW,CAAC;gBACxE,OAAO,CAAC,iBAAiB,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;oBACxD,KAAK,EAAE,UAAU;oBACjB,QAAQ,EAAE,QAAQ;iBACnB,CAAC,CAAC;YACP,CAAC,CAAC;YACF,6BAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;YAClD,6BAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;YACpD,KAAK,EAAE,CAAC;SACX;QACD,KAAK,GAAG,CAAA,KAAG,KAAO,CAAA,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC3C,OAAO,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/D,CAAC;IAGa,YAAI,GAAlB,UAAmB,KAA6B;QAC5C,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/C,CAAC;IArBD;QADC,mBAAQ,CAAC,MAAM,CAAC,UAAU,CAAC;iCAiB3B;IAGD;QADC,mBAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;6BAGvB;IACL,cAAC;CAAA,AA1BD,IA0BC;AA1BY,0BAAO"}
@@ -0,0 +1,15 @@
1
+ export interface IMessageHash {
2
+ [key: string]: string[] | null | undefined;
3
+ }
4
+ export declare class MessageList {
5
+ [key: string]: any;
6
+ private _cachedList;
7
+ constructor(messages?: IMessageHash);
8
+ reset(): void;
9
+ add(field: string, errors: string[] | string, replace?: boolean): void;
10
+ merge(messages: IMessageHash | null | undefined, replace?: boolean): void;
11
+ get list(): IMessageHash;
12
+ get keys(): string[];
13
+ get length(): number;
14
+ get isEmpty(): boolean;
15
+ }
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MessageList = void 0;
4
+ var MessageList = /** @class */ (function () {
5
+ function MessageList(messages) {
6
+ this.reset();
7
+ if (messages)
8
+ this.merge(messages);
9
+ }
10
+ MessageList.prototype.reset = function () {
11
+ // Reset the object
12
+ var keys = this.keys;
13
+ this._cachedList = undefined;
14
+ if (keys.length > 0) {
15
+ for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
16
+ var field = keys_1[_i];
17
+ delete this[field];
18
+ }
19
+ }
20
+ };
21
+ MessageList.prototype.add = function (field, errors, replace) {
22
+ var _a;
23
+ if (replace === void 0) { replace = false; }
24
+ this.merge((_a = {},
25
+ _a[field] = typeof errors == 'string' ? [errors] : errors,
26
+ _a), replace);
27
+ };
28
+ MessageList.prototype.merge = function (messages, replace) {
29
+ var _this = this;
30
+ if (replace === void 0) { replace = false; }
31
+ if (!messages)
32
+ return;
33
+ this._cachedList = undefined;
34
+ var keys = this.keys;
35
+ var _loop_1 = function (field) {
36
+ if (!messages.hasOwnProperty(field))
37
+ return "continue";
38
+ var message = messages[field];
39
+ if (message instanceof Array) {
40
+ if (!replace && keys.indexOf(field) > -1) {
41
+ message.map(function (x) {
42
+ _this[field].push(x);
43
+ });
44
+ }
45
+ else if (message.length > 0) {
46
+ this_1[field] = message;
47
+ }
48
+ }
49
+ };
50
+ var this_1 = this;
51
+ for (var field in messages) {
52
+ _loop_1(field);
53
+ }
54
+ };
55
+ Object.defineProperty(MessageList.prototype, "list", {
56
+ get: function () {
57
+ if (this._cachedList)
58
+ return this._cachedList;
59
+ var list = {}, keys = this.keys;
60
+ for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {
61
+ var field = keys_2[_i];
62
+ list[field] = this[field];
63
+ }
64
+ this._cachedList = list;
65
+ return list;
66
+ },
67
+ enumerable: false,
68
+ configurable: true
69
+ });
70
+ Object.defineProperty(MessageList.prototype, "keys", {
71
+ get: function () {
72
+ var keys = Object.keys(this);
73
+ keys.splice(keys.indexOf('_cachedList'), 1);
74
+ return keys;
75
+ },
76
+ enumerable: false,
77
+ configurable: true
78
+ });
79
+ Object.defineProperty(MessageList.prototype, "length", {
80
+ get: function () {
81
+ return this.keys.length;
82
+ },
83
+ enumerable: false,
84
+ configurable: true
85
+ });
86
+ Object.defineProperty(MessageList.prototype, "isEmpty", {
87
+ get: function () {
88
+ return this.length === 0;
89
+ },
90
+ enumerable: false,
91
+ configurable: true
92
+ });
93
+ return MessageList;
94
+ }());
95
+ exports.MessageList = MessageList;
96
+ //# sourceMappingURL=MessageList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageList.js","sourceRoot":"","sources":["../src/MessageList.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { IPropertyConfig, Property } from "../Scope/properties/Property";
2
+ export interface IFieldConfig extends IPropertyConfig {
3
+ validators?: string[];
4
+ }
5
+ export declare class Field extends Property {
6
+ config: IFieldConfig;
7
+ validate(): any[];
8
+ }
@@ -0,0 +1,38 @@
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.Field = void 0;
19
+ var Property_1 = require("../Scope/properties/Property");
20
+ var Registry_1 = require("../Registry");
21
+ var Field = /** @class */ (function (_super) {
22
+ __extends(Field, _super);
23
+ function Field() {
24
+ return _super !== null && _super.apply(this, arguments) || this;
25
+ }
26
+ Field.prototype.validate = function () {
27
+ var errors = [];
28
+ for (var _i = 0, _a = this.config.validators || []; _i < _a.length; _i++) {
29
+ var validatorName = _a[_i];
30
+ var validator = Registry_1.Registry.instance.validators.getSynchronous(validatorName);
31
+ errors.concat(validator(this.value));
32
+ }
33
+ return errors;
34
+ };
35
+ return Field;
36
+ }(Property_1.Property));
37
+ exports.Field = Field;
38
+ //# sourceMappingURL=Field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Field.js","sourceRoot":"","sources":["../../src/Model/Field.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,yDAAuE;AACvE,wCAAqC;AAMrC;IAA2B,yBAAQ;IAAnC;;IAYA,CAAC;IATG,wBAAQ,GAAR;QACI,IAAM,MAAM,GAAG,EAAE,CAAC;QAClB,KAA2B,UAA4B,EAA5B,KAAA,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,EAA5B,cAA4B,EAA5B,IAA4B,EAAE;YAArD,IAAM,aAAa,SAAA;YACnB,IAAM,SAAS,GAAG,mBAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YAC7E,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;SACxC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IACL,YAAC;AAAD,CAAC,AAZD,CAA2B,mBAAQ,GAYlC;AAZY,sBAAK"}
package/dist/Model.d.ts CHANGED
@@ -0,0 +1,12 @@
1
+ import { MessageList } from "./MessageList";
2
+ import { ScopeData } from "./Scope/ScopeData";
3
+ import { IScopeData } from "./Scope/ScopeDataAbstract";
4
+ export declare class Model extends ScopeData {
5
+ _errors: MessageList;
6
+ _hasErrors: boolean;
7
+ constructor(data?: IScopeData | null | undefined);
8
+ _constructor(): void;
9
+ validate(): MessageList;
10
+ hasErrors(): boolean;
11
+ get errors(): MessageList;
12
+ }
package/dist/Model.js ADDED
@@ -0,0 +1,61 @@
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.Model = void 0;
19
+ var MessageList_1 = require("./MessageList");
20
+ var ScopeData_1 = require("./Scope/ScopeData");
21
+ var Model = /** @class */ (function (_super) {
22
+ __extends(Model, _super);
23
+ function Model(data) {
24
+ if (data === void 0) { data = null; }
25
+ var _this = _super.call(this) || this;
26
+ _this._hasErrors = false;
27
+ if (data)
28
+ _this.setData(data);
29
+ _this._lastData = _this.getData();
30
+ _this._constructor();
31
+ return _this;
32
+ }
33
+ Model.prototype._constructor = function () { };
34
+ Model.prototype.validate = function () {
35
+ this._hasErrors = false;
36
+ this._errors = new MessageList_1.MessageList;
37
+ for (var _i = 0, _a = this.getProperties(); _i < _a.length; _i++) {
38
+ var property = _a[_i];
39
+ var errors = this['__' + property].validate();
40
+ if (errors.length > 0) {
41
+ this._errors.add(property, errors, true);
42
+ this._hasErrors = true;
43
+ }
44
+ }
45
+ return this._errors;
46
+ };
47
+ Model.prototype.hasErrors = function () {
48
+ this.validate();
49
+ return this._hasErrors;
50
+ };
51
+ Object.defineProperty(Model.prototype, "errors", {
52
+ get: function () {
53
+ return this._errors;
54
+ },
55
+ enumerable: false,
56
+ configurable: true
57
+ });
58
+ return Model;
59
+ }(ScopeData_1.ScopeData));
60
+ exports.Model = Model;
61
+ //# sourceMappingURL=Model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Model.js","sourceRoot":"","sources":["../src/Model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,6CAA0C;AAC1C,+CAA4C;AAI5C;IAA2B,yBAAS;IAIhC,eAAY,IAA0C;QAA1C,qBAAA,EAAA,WAA0C;QAAtD,YACI,iBAAO,SAOV;QALG,KAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,IAAI;YACJ,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvB,KAAI,CAAC,SAAS,GAAG,KAAI,CAAC,OAAO,EAAE,CAAC;QAChC,KAAI,CAAC,YAAY,EAAE,CAAC;;IACxB,CAAC;IAED,4BAAY,GAAZ,cAAgB,CAAC;IAEjB,wBAAQ,GAAR;QACI,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,IAAI,yBAAW,CAAC;QAC/B,KAAsB,UAAoB,EAApB,KAAA,IAAI,CAAC,aAAa,EAAE,EAApB,cAAoB,EAApB,IAAoB,EAAE;YAAxC,IAAM,QAAQ,SAAA;YACd,IAAM,MAAM,GAAG,IAAI,CAAC,IAAI,GAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC9C,IAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;gBACzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aAC1B;SACJ;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,yBAAS,GAAT;QACI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,sBAAI,yBAAM;aAAV;YACI,OAAO,IAAI,CAAC,OAAO,CAAC;QACxB,CAAC;;;OAAA;IACL,YAAC;AAAD,CAAC,AArCD,CAA2B,qBAAS,GAqCnC;AArCY,sBAAK"}
package/dist/Query.js ADDED
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.Query = void 0;
40
+ var List_1 = require("./Tag/List");
41
+ var VisionHelper_1 = require("./helpers/VisionHelper");
42
+ var DOM_1 = require("./DOM");
43
+ var WrappedWindow_1 = require("./DOM/WrappedWindow");
44
+ var WrappedDocument_1 = require("./DOM/WrappedDocument");
45
+ function Query(selector, dom) {
46
+ if (dom === void 0) { dom = null; }
47
+ return __awaiter(this, void 0, void 0, function () {
48
+ var tagList;
49
+ return __generator(this, function (_a) {
50
+ switch (_a.label) {
51
+ case 0:
52
+ if (!VisionHelper_1.VisionHelper.document) return [3 /*break*/, 2];
53
+ dom = dom || DOM_1.DOM.instance;
54
+ return [4 /*yield*/, dom.get(selector, true)];
55
+ case 1:
56
+ tagList = _a.sent();
57
+ if (tagList.length == 1 || tagList.length == 1 && (tagList[0] instanceof WrappedWindow_1.WrappedWindow || tagList[0] instanceof WrappedDocument_1.WrappedDocument))
58
+ return [2 /*return*/, tagList[0]];
59
+ return [2 /*return*/, tagList];
60
+ case 2: return [2 /*return*/, new List_1.TagList()];
61
+ }
62
+ });
63
+ });
64
+ }
65
+ exports.Query = Query;
66
+ //# sourceMappingURL=Query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Query.js","sourceRoot":"","sources":["../src/Query.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAAmC;AACnC,uDAAoD;AACpD,6BAA0B;AAC1B,qDAAkD;AAClD,yDAAsD;AAGtD,SAAsB,KAAK,CAAC,QAAgB,EAAE,GAAe;IAAf,oBAAA,EAAA,UAAe;;;;;;yBACrD,2BAAY,CAAC,QAAQ,EAArB,wBAAqB;oBACrB,GAAG,GAAG,GAAG,IAAI,SAAG,CAAC,QAAQ,CAAC;oBACV,qBAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAA;;oBAAvC,OAAO,GAAG,SAA6B;oBAC7C,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,6BAAa,IAAI,OAAO,CAAC,CAAC,CAAC,YAAY,iCAAe,CAAC;wBAC5H,sBAAO,OAAO,CAAC,CAAC,CAAC,EAAC;oBACtB,sBAAO,OAAO,EAAC;wBAEnB,sBAAO,IAAI,cAAO,EAAE,EAAC;;;;CACxB;AATD,sBASC"}
@@ -1,5 +1,5 @@
1
- import { EventDispatcher } from "simple-ts-event-dispatcher";
2
- import { IPromise } from "simple-ts-promise";
1
+ import { EventDispatcher } from "./EventDispatcher";
2
+ import { IPromise } from "./SimplePromise";
3
3
  export declare function register(store: string, key?: string, setup?: () => void): (target: any, _key?: string) => void;
4
4
  export declare class RegistryStore extends EventDispatcher {
5
5
  private timeouts;
@@ -15,13 +15,16 @@ export declare class Registry extends EventDispatcher {
15
15
  readonly models: RegistryStore;
16
16
  readonly templates: RegistryStore;
17
17
  readonly types: RegistryStore;
18
+ readonly validators: RegistryStore;
18
19
  readonly formats: RegistryStore;
19
20
  readonly attributes: RegistryStore;
20
21
  constructor();
21
22
  static class(key?: string, setup?: any): (target: any, _key?: string) => void;
23
+ static controller(key?: string, setup?: any): (target: any, _key?: string) => void;
22
24
  static model(key?: string, setup?: any): (target: any, _key?: string) => void;
23
25
  static template(key?: string, setup?: any): (target: any, _key?: string) => void;
24
26
  static type(key?: string, setup?: any): (target: any, _key?: string) => void;
27
+ static validator(key?: string, setup?: any): (target: any, _key?: string) => void;
25
28
  static format(key?: string, setup?: any): (target: any, _key?: string) => void;
26
29
  static attribute(attributeName?: string, setup?: any): (target: any, _key?: string) => void;
27
30
  static get instance(): Registry;