vsn 0.1.27 → 0.1.30

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 (244) hide show
  1. package/demo/vsn.js +1 -1
  2. package/dist/AST/ArithmeticAssignmentNode.d.ts +23 -0
  3. package/dist/AST/ArithmeticAssignmentNode.js +324 -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/{Model/Collection.js → AST/BooleanLiteralNode.js} +12 -18
  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 +13 -0
  27. package/dist/AST/ElementQueryNode.js +116 -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/{Model/fields/EmailField.js → AST/NumberLiteralNode.js} +17 -17
  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 +134 -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 +74 -1493
  76. package/dist/AST.js.map +1 -1
  77. package/dist/Controller.d.ts +4 -2
  78. package/dist/Controller.js +10 -2
  79. package/dist/Controller.js.map +1 -1
  80. package/dist/EventDispatcher.d.ts +4 -1
  81. package/dist/EventDispatcher.js +27 -12
  82. package/dist/EventDispatcher.js.map +1 -1
  83. package/dist/MessageList.d.ts +2 -1
  84. package/dist/MessageList.js +9 -1
  85. package/dist/MessageList.js.map +1 -1
  86. package/dist/Model/Field.d.ts +8 -0
  87. package/dist/Model/{fields/StringField.js → Field.js} +19 -24
  88. package/dist/Model/Field.js.map +1 -0
  89. package/dist/Model.d.ts +5 -4
  90. package/dist/Model.js +7 -18
  91. package/dist/Model.js.map +1 -1
  92. package/dist/Registry.d.ts +3 -0
  93. package/dist/Registry.js +11 -0
  94. package/dist/Registry.js.map +1 -1
  95. package/dist/Scope/DynamicScopeData.d.ts +6 -0
  96. package/dist/{Model/DataModel.js → Scope/DynamicScopeData.js} +15 -17
  97. package/dist/Scope/DynamicScopeData.js.map +1 -0
  98. package/dist/Scope/QueryReference.d.ts +10 -0
  99. package/dist/Scope/QueryReference.js +103 -0
  100. package/dist/Scope/QueryReference.js.map +1 -0
  101. package/dist/Scope/ScopeData.d.ts +4 -0
  102. package/dist/Scope/ScopeData.js +40 -0
  103. package/dist/Scope/ScopeData.js.map +1 -0
  104. package/dist/Scope/ScopeDataAbstract.d.ts +22 -0
  105. package/dist/Scope/ScopeDataAbstract.js +138 -0
  106. package/dist/Scope/ScopeDataAbstract.js.map +1 -0
  107. package/dist/Scope/ScopeReference.d.ts +10 -0
  108. package/dist/Scope/ScopeReference.js +73 -0
  109. package/dist/Scope/ScopeReference.js.map +1 -0
  110. package/dist/Scope/ScopedVariableType.d.ts +6 -0
  111. package/dist/Scope/ScopedVariableType.js +14 -0
  112. package/dist/Scope/ScopedVariableType.js.map +1 -0
  113. package/dist/Scope/WrappedArray.d.ts +16 -0
  114. package/dist/Scope/WrappedArray.js +121 -0
  115. package/dist/Scope/WrappedArray.js.map +1 -0
  116. package/dist/Scope/properties/Property.d.ts +18 -0
  117. package/dist/Scope/properties/Property.js +93 -0
  118. package/dist/Scope/properties/Property.js.map +1 -0
  119. package/dist/Scope.d.ts +4 -45
  120. package/dist/Scope.js +31 -266
  121. package/dist/Scope.js.map +1 -1
  122. package/dist/SimplePromise.d.ts +2 -2
  123. package/dist/SimplePromise.js.map +1 -1
  124. package/dist/Tag/List.d.ts +2 -2
  125. package/dist/Tag/List.js +14 -6
  126. package/dist/Tag/List.js.map +1 -1
  127. package/dist/Tag.js +1 -1
  128. package/dist/Tag.js.map +1 -1
  129. package/dist/Types.d.ts +1 -0
  130. package/dist/Types.js +8 -2
  131. package/dist/Types.js.map +1 -1
  132. package/dist/Validators.d.ts +7 -0
  133. package/dist/Validators.js +54 -0
  134. package/dist/Validators.js.map +1 -0
  135. package/dist/attributes/Bind.js +1 -1
  136. package/dist/attributes/Bind.js.map +1 -1
  137. package/dist/attributes/ClassConstructor.d.ts +1 -0
  138. package/dist/attributes/ClassConstructor.js +1 -1
  139. package/dist/attributes/ClassConstructor.js.map +1 -1
  140. package/dist/attributes/JSONAttribute.js.map +1 -1
  141. package/dist/attributes/List.js +4 -4
  142. package/dist/attributes/List.js.map +1 -1
  143. package/dist/attributes/Radio.js.map +1 -1
  144. package/dist/attributes/SetAttribute.js.map +1 -1
  145. package/dist/attributes/StyleAttribute.js.map +1 -1
  146. package/dist/vsn.d.ts +9 -1
  147. package/dist/vsn.js +24 -9
  148. package/dist/vsn.js.map +1 -1
  149. package/package.json +1 -1
  150. package/src/AST/ArithmeticAssignmentNode.ts +243 -0
  151. package/src/AST/ArithmeticNode.ts +52 -0
  152. package/src/AST/ArrayNode.ts +39 -0
  153. package/src/AST/BlockNode.ts +25 -0
  154. package/src/AST/BooleanLiteralNode.ts +10 -0
  155. package/src/AST/ComparisonNode.ts +57 -0
  156. package/src/AST/ConditionalNode.ts +36 -0
  157. package/src/AST/ElementAttributeNode.ts +63 -0
  158. package/src/AST/ElementQueryNode.ts +27 -0
  159. package/src/AST/ElementStyleNode.ts +63 -0
  160. package/src/AST/ForStatementNode.ts +59 -0
  161. package/src/AST/FunctionArgumentNode.ts +27 -0
  162. package/src/AST/FunctionCallNode.ts +32 -0
  163. package/src/AST/IfStatementNode.ts +67 -0
  164. package/src/AST/InNode.ts +46 -0
  165. package/src/AST/IndexNode.ts +61 -0
  166. package/src/AST/LiteralNode.ts +17 -0
  167. package/src/AST/Node.ts +71 -0
  168. package/src/AST/NotNode.ts +41 -0
  169. package/src/AST/NumberLiteralNode.ts +14 -0
  170. package/src/AST/ObjectNode.ts +55 -0
  171. package/src/AST/RootScopeMemberNode.ts +25 -0
  172. package/src/AST/ScopeMemberNode.ts +58 -0
  173. package/src/AST/UnitLiteralNode.ts +51 -0
  174. package/src/AST.ts +34 -1094
  175. package/src/Controller.ts +10 -2
  176. package/src/EventDispatcher.ts +29 -12
  177. package/src/MessageList.ts +5 -1
  178. package/src/Model/Field.ts +20 -0
  179. package/src/Model.ts +8 -22
  180. package/src/Registry.ts +10 -0
  181. package/src/{Model/DataModel.ts → Scope/DynamicScopeData.ts} +8 -10
  182. package/src/Scope/QueryReference.ts +29 -0
  183. package/src/Scope/ScopeData.ts +21 -0
  184. package/src/Scope/ScopeDataAbstract.ts +127 -0
  185. package/src/Scope/ScopeReference.ts +30 -0
  186. package/src/Scope/ScopedVariableType.ts +7 -0
  187. package/src/Scope/WrappedArray.ts +88 -0
  188. package/src/Scope/properties/Property.ts +79 -0
  189. package/src/Scope.ts +28 -194
  190. package/src/SimplePromise.ts +2 -2
  191. package/src/Tag/List.ts +4 -4
  192. package/src/Tag.ts +1 -1
  193. package/src/Types.ts +7 -2
  194. package/src/Validators.ts +45 -0
  195. package/src/attributes/Bind.ts +3 -3
  196. package/src/attributes/ClassConstructor.ts +2 -1
  197. package/src/attributes/JSONAttribute.ts +2 -1
  198. package/src/attributes/List.ts +1 -1
  199. package/src/attributes/Radio.ts +2 -1
  200. package/src/attributes/ScopeChange.ts +1 -1
  201. package/src/attributes/SetAttribute.ts +2 -1
  202. package/src/attributes/StyleAttribute.ts +2 -1
  203. package/src/attributes/TypeAttribute.ts +1 -1
  204. package/src/vsn.ts +14 -4
  205. package/test/AST/ArithmeticAssignmentNode.spec.ts +47 -0
  206. package/test/AST.spec.ts +2 -2
  207. package/test/Controller.spec.ts +44 -0
  208. package/test/MessageList.spec.ts +1 -1
  209. package/test/Model/DataModel.spec.ts +0 -141
  210. package/test/Scope/DynamicScopeData.spec.ts +141 -0
  211. package/test/Scope.spec.ts +13 -1
  212. package/test/Tag/TagList.spec.ts +1 -1
  213. package/dist/Model/Collection.d.ts +0 -5
  214. package/dist/Model/Collection.js.map +0 -1
  215. package/dist/Model/DataModel.d.ts +0 -6
  216. package/dist/Model/DataModel.js.map +0 -1
  217. package/dist/Model/ModelAbstract.d.ts +0 -20
  218. package/dist/Model/ModelAbstract.js +0 -122
  219. package/dist/Model/ModelAbstract.js.map +0 -1
  220. package/dist/Model/fields/BooleanField.d.ts +0 -5
  221. package/dist/Model/fields/BooleanField.js +0 -43
  222. package/dist/Model/fields/BooleanField.js.map +0 -1
  223. package/dist/Model/fields/EmailField.d.ts +0 -5
  224. package/dist/Model/fields/EmailField.js.map +0 -1
  225. package/dist/Model/fields/Field.d.ts +0 -13
  226. package/dist/Model/fields/Field.js +0 -79
  227. package/dist/Model/fields/Field.js.map +0 -1
  228. package/dist/Model/fields/FloatField.d.ts +0 -5
  229. package/dist/Model/fields/FloatField.js +0 -47
  230. package/dist/Model/fields/FloatField.js.map +0 -1
  231. package/dist/Model/fields/PositiveNumberField.d.ts +0 -5
  232. package/dist/Model/fields/PositiveNumberField.js +0 -51
  233. package/dist/Model/fields/PositiveNumberField.js.map +0 -1
  234. package/dist/Model/fields/StringField.d.ts +0 -5
  235. package/dist/Model/fields/StringField.js.map +0 -1
  236. package/src/Model/Collection.ts +0 -13
  237. package/src/Model/ModelAbstract.ts +0 -114
  238. package/src/Model/fields/BooleanField.ts +0 -16
  239. package/src/Model/fields/EmailField.ts +0 -12
  240. package/src/Model/fields/Field.ts +0 -65
  241. package/src/Model/fields/FloatField.ts +0 -22
  242. package/src/Model/fields/PositiveNumberField.ts +0 -24
  243. package/src/Model/fields/StringField.ts +0 -16
  244. package/test/Model.spec.ts +0 -306
@@ -1,141 +0,0 @@
1
- import {DataModel} from "../../src/Model/DataModel";
2
-
3
-
4
- describe('Model', () => {
5
- it("Should trigger a change event when any field is changed", () => {
6
- const m = new DataModel(['foo']);
7
- let value = null,
8
- field = null;
9
-
10
- m.on('change', (_field, values) => {
11
- field = _field;
12
- value = values.value;
13
- });
14
-
15
- m.foo = 'testing';
16
-
17
- expect<string | null>(field).toBe('foo');
18
- expect(value).toBe(m.foo);
19
- });
20
-
21
- it("Should create the given fields from an object", () => {
22
- const m = new DataModel({
23
- field_1: 1,
24
- field_2: 'yes',
25
- field_3: true
26
- });
27
- expect(m.getFields().length).toBe(3);
28
-
29
- m.setData({field_4: 4, field_5: 5});
30
- expect(m.getFields().length).toBe(5);
31
- const data = m.getData();
32
- expect(data['field_1']).toBe(1);
33
- expect(data['field_2']).toBe('yes');
34
- expect(data['field_3']).toBe(true);
35
- expect(data['field_4']).toBe(4);
36
- expect(data['field_5']).toBe(5);
37
- });
38
-
39
- it("Should create the given fields from an array", () => {
40
- const m = new DataModel([
41
- 'field_1',
42
- 'field_2',
43
- 'field_3'
44
- ]);
45
- expect(m.getFields().length).toBe(3);
46
- });
47
-
48
- it("Should trigger a change event when a field is changed", () => {
49
- const m = new DataModel({
50
- field_1: 1,
51
- field_2: 'yes',
52
- field_3: true
53
- });
54
-
55
- let oldValue = null,
56
- oldValueCheck = null,
57
- value = null;
58
-
59
- m.bindToFields('change', [
60
- 'field_2',
61
- 'field_1'
62
- ], (values) => {
63
- oldValue = values.oldValue;
64
- value = values.value;
65
- });
66
-
67
- // Test to make sure field_1 change event is being called
68
- oldValueCheck = m.field_1;
69
- m.field_1 = 2;
70
- expect(value).toBe(m.field_1);
71
- expect(oldValue).toBe(oldValueCheck);
72
-
73
- // Test to make sure field_2 change event is being called
74
- oldValueCheck = m.field_2;
75
- m.field_2 = 'no';
76
- expect(value).toBe(m.field_2);
77
- expect(oldValue).toBe(oldValueCheck);
78
-
79
- // Test to make sure fields that aren't being listened to aren't
80
- // triggering the event
81
- oldValueCheck = m.foo;
82
- m.foo = false;
83
- expect(value).not.toBe(m.foo);
84
- expect(oldValue).not.toBe(oldValueCheck);
85
- });
86
-
87
- it("Should trigger a change:field event when any field is changed", () => {
88
- const m = new DataModel(['field_1']);
89
- let value = null;
90
-
91
- m.on('change:field_1', (values) => {
92
- value = values.value;
93
- });
94
-
95
- m.field_1 = 'testing';
96
-
97
- expect(value).toBe(m.field_1);
98
- });
99
-
100
- it("should save last data and return true with is modfied if something is modified", () => {
101
- const m = new DataModel({
102
- field_1: 1,
103
- field_2: 'foo'
104
- });
105
- m.setLastData();
106
- expect(m.isModified()).toBe(false);
107
- m.field_1 = 2;
108
- m.field_2 = null;
109
- expect(m.isModified()).toBe(true);
110
- m.setLastData();
111
- expect(m.isModified()).toBe(false);
112
- m.field_2 = 'bar';
113
- expect(m.isModified()).toBe(true);
114
- });
115
-
116
- it("should revert to last data correctly", () => {
117
- const m = new DataModel({
118
- field_1: 1,
119
- field_2: 'bar'
120
- });
121
- m.setLastData();
122
- expect(m.isModified()).toBe(false);
123
- m.field_1 = 2;
124
- m.field_2 = null;
125
- expect(m.isModified()).toBe(true);
126
- m.revert();
127
- expect(m.isModified()).toBe(false);
128
- expect(m.field_1).toBe(1);
129
- expect(m.field_2).toBe('bar');
130
- });
131
-
132
- it("should return the field object", () => {
133
- const m = new DataModel({
134
- field_1: 1,
135
- field_2: 'string field!'
136
- }),
137
- field = m.getField('field_2');
138
- expect(field.value).toBe('string field!');
139
-
140
- });
141
- });
@@ -0,0 +1,141 @@
1
+ import {DynamicScopeData} from "../../src/Scope/DynamicScopeData";
2
+
3
+
4
+ describe('DynamicScopeData', () => {
5
+ it("Should trigger a change event when any field is changed", () => {
6
+ const m = new DynamicScopeData(['foo']);
7
+ let value = null,
8
+ field = null;
9
+
10
+ m.on('change', (_field, values) => {
11
+ field = _field;
12
+ value = values.value;
13
+ });
14
+
15
+ m.foo = 'testing';
16
+
17
+ expect<string | null>(field).toBe('foo');
18
+ expect(value).toBe(m.foo);
19
+ });
20
+
21
+ it("Should create the given fields from an object", () => {
22
+ const m = new DynamicScopeData({
23
+ field_1: 1,
24
+ field_2: 'yes',
25
+ field_3: true
26
+ });
27
+ expect(m.getProperties().length).toBe(3);
28
+
29
+ m.setData({field_4: 4, field_5: 5});
30
+ expect(m.getProperties().length).toBe(5);
31
+ const data = m.getData();
32
+ expect(data['field_1']).toBe(1);
33
+ expect(data['field_2']).toBe('yes');
34
+ expect(data['field_3']).toBe(true);
35
+ expect(data['field_4']).toBe(4);
36
+ expect(data['field_5']).toBe(5);
37
+ });
38
+
39
+ it("Should create the given fields from an array", () => {
40
+ const m = new DynamicScopeData([
41
+ 'field_1',
42
+ 'field_2',
43
+ 'field_3'
44
+ ]);
45
+ expect(m.getProperties().length).toBe(3);
46
+ });
47
+
48
+ it("Should trigger a change event when a field is changed", () => {
49
+ const m = new DynamicScopeData({
50
+ field_1: 1,
51
+ field_2: 'yes',
52
+ field_3: true
53
+ });
54
+
55
+ let oldValue = null,
56
+ oldValueCheck = null,
57
+ value = null;
58
+
59
+ m.bindToProperties('change', [
60
+ 'field_2',
61
+ 'field_1'
62
+ ], (values) => {
63
+ oldValue = values.oldValue;
64
+ value = values.value;
65
+ });
66
+
67
+ // Test to make sure field_1 change event is being called
68
+ oldValueCheck = m.field_1;
69
+ m.field_1 = 2;
70
+ expect(value).toBe(m.field_1);
71
+ expect(oldValue).toBe(oldValueCheck);
72
+
73
+ // Test to make sure field_2 change event is being called
74
+ oldValueCheck = m.field_2;
75
+ m.field_2 = 'no';
76
+ expect(value).toBe(m.field_2);
77
+ expect(oldValue).toBe(oldValueCheck);
78
+
79
+ // Test to make sure fields that aren't being listened to aren't
80
+ // triggering the event
81
+ oldValueCheck = m.foo;
82
+ m.foo = false;
83
+ expect(value).not.toBe(m.foo);
84
+ expect(oldValue).not.toBe(oldValueCheck);
85
+ });
86
+
87
+ it("Should trigger a change:field event when any field is changed", () => {
88
+ const m = new DynamicScopeData(['field_1']);
89
+ let value = null;
90
+
91
+ m.on('change:field_1', (values) => {
92
+ value = values.value;
93
+ });
94
+
95
+ m.field_1 = 'testing';
96
+
97
+ expect(value).toBe(m.field_1);
98
+ });
99
+
100
+ it("should save last data and return true with is modfied if something is modified", () => {
101
+ const m = new DynamicScopeData({
102
+ field_1: 1,
103
+ field_2: 'foo'
104
+ });
105
+ m.setLastData();
106
+ expect(m.isModified()).toBe(false);
107
+ m.field_1 = 2;
108
+ m.field_2 = null;
109
+ expect(m.isModified()).toBe(true);
110
+ m.setLastData();
111
+ expect(m.isModified()).toBe(false);
112
+ m.field_2 = 'bar';
113
+ expect(m.isModified()).toBe(true);
114
+ });
115
+
116
+ it("should revert to last data correctly", () => {
117
+ const m = new DynamicScopeData({
118
+ field_1: 1,
119
+ field_2: 'bar'
120
+ });
121
+ m.setLastData();
122
+ expect(m.isModified()).toBe(false);
123
+ m.field_1 = 2;
124
+ m.field_2 = null;
125
+ expect(m.isModified()).toBe(true);
126
+ m.revert();
127
+ expect(m.isModified()).toBe(false);
128
+ expect(m.field_1).toBe(1);
129
+ expect(m.field_2).toBe('bar');
130
+ });
131
+
132
+ it("should return the field object", () => {
133
+ const m = new DynamicScopeData({
134
+ field_1: 1,
135
+ field_2: 'string field!'
136
+ }),
137
+ field = m.getProperty('field_2');
138
+ expect(field.value).toBe('string field!');
139
+
140
+ });
141
+ });
@@ -1,4 +1,5 @@
1
- import {Scope, WrappedArray} from "../src/Scope";
1
+ import {Scope} from "../src/Scope";
2
+ import {WrappedArray} from "../src/Scope/WrappedArray";
2
3
 
3
4
  class Test {
4
5
  public testing: string = 'test';
@@ -54,4 +55,15 @@ describe('WrappedArray', () => {
54
55
  expect(changes).toBe(6);
55
56
  expect(a.length).toBe(0);
56
57
  });
58
+
59
+ it("should set types correctly", async () => {
60
+ const scope = new Scope();
61
+ scope.setType('test', 'integer');
62
+ scope.set('test', '1');
63
+ expect(scope.get('test')).toBe(1);
64
+
65
+ scope.setType('testing', 'string');
66
+ scope.set('testing', 2);
67
+ expect(scope.get('testing')).toBe('2');
68
+ });
57
69
  });
@@ -1,7 +1,7 @@
1
1
  import {DOM} from "../../src/DOM";
2
2
  import {Query} from "../../src/Query";
3
3
  import {TagList} from "../../src/Tag/List";
4
- import {DOMObject} from "../../dist/DOM/DOMObject";
4
+ import {DOMObject} from "../../src/DOM/DOMObject";
5
5
 
6
6
  describe('TagList', () => {
7
7
  it("should be able to fail properly", (done) => {
@@ -1,5 +0,0 @@
1
- import { Model } from "../Model";
2
- import { ModelData } from "./ModelAbstract";
3
- export declare class Collection<T extends Model> extends Array<T> {
4
- getData: () => ModelData[];
5
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"Collection.js","sourceRoot":"","sources":["../../src/Model/Collection.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAGA;IAAiD,8BAAQ;IAAzD;QAAA,qEASC;QARG,aAAO,GAAsB;YACzB,oEAAoE;YACpE,IAAM,IAAI,GAAgB,EAAE,CAAC;YAC7B,KAAkB,UAAI,EAAJ,KAAA,KAAI,EAAJ,cAAI,EAAJ,IAAI,EAAE;gBAApB,IAAM,IAAI,SAAA;gBACV,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;aAC5B;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC;;IACN,CAAC;IAAD,iBAAC;AAAD,CAAC,AATD,CAAiD,KAAK,GASrD;AATY,gCAAU"}
@@ -1,6 +0,0 @@
1
- import { ModelAbstract, ModelData } from "./ModelAbstract";
2
- export declare class DataModel extends ModelAbstract {
3
- constructor(data: ModelData | string[]);
4
- setData(data: ModelData): void;
5
- on(event: string, fct: (...args: any[]) => any, context?: any, once?: boolean): number;
6
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"DataModel.js","sourceRoot":"","sources":["../../src/Model/DataModel.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,iDAAyD;AAEzD;IAA+B,6BAAa;IACxC,mBAAY,IAA0B;QAAtC,YACI,iBAAO,SAQV;QAPG,IAAG,IAAI,YAAY,KAAK,EAAE;YACtB,KAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,KAAoB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI;gBAAnB,IAAM,KAAK,aAAA;gBACZ,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;aAAA;SAC/B;aAAM;YACH,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SACtB;;IACL,CAAC;IAED,2BAAO,GAAP,UAAQ,IAAe;QACnB,KAAmB,UAAiB,EAAjB,KAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAjB,cAAiB,EAAjB,IAAiB;YAAhC,IAAM,KAAK,SAAA;YACX,IAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE;gBACrC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC5B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;aAC3B;SAAA;QACL,iBAAM,OAAO,YAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,sBAAE,GAAF,UAAG,KAAa,EAAE,GAA4B,EAAE,OAAa,EAAE,IAAc;QACzE,IAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;YAC5B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,OAAO,iBAAM,EAAE,YAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IACL,gBAAC;AAAD,CAAC,AA1BD,CAA+B,6BAAa,GA0B3C;AA1BY,8BAAS"}
@@ -1,20 +0,0 @@
1
- import { Field } from "./fields/Field";
2
- import { EventDispatcher } from "../EventDispatcher";
3
- export interface ModelData {
4
- [key: string]: any;
5
- }
6
- export declare abstract class ModelAbstract extends EventDispatcher {
7
- [key: string]: any;
8
- __fields__: string[];
9
- protected _lastData: any;
10
- constructor();
11
- createField(field: string, fieldType?: typeof Field, config?: any): Field;
12
- setData(data: ModelData): void;
13
- getData(): ModelData;
14
- getFields(): string[];
15
- getField(field: string): Field;
16
- bindToFields(event: string, fields: string[], callback: (...args: any[]) => any): void;
17
- setLastData(): void;
18
- revert(): void;
19
- isModified(): boolean;
20
- }
@@ -1,122 +0,0 @@
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
- var __spreadArray = (this && this.__spreadArray) || function (to, from) {
18
- for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
19
- to[j] = from[i];
20
- return to;
21
- };
22
- Object.defineProperty(exports, "__esModule", { value: true });
23
- exports.ModelAbstract = void 0;
24
- var Field_1 = require("./fields/Field");
25
- var EventDispatcher_1 = require("../EventDispatcher");
26
- var ModelAbstract = /** @class */ (function (_super) {
27
- __extends(ModelAbstract, _super);
28
- function ModelAbstract() {
29
- var _this = _super.call(this) || this;
30
- // Models may have __fields__ from prototype
31
- if (!_this['__fields__'])
32
- _this.__fields__ = [];
33
- return _this;
34
- }
35
- ModelAbstract.prototype.createField = function (field, fieldType, config) {
36
- var _this = this;
37
- if (fieldType === void 0) { fieldType = Field_1.Field; }
38
- config = config || {};
39
- var instance = new fieldType(this, config.default, config), propDesc = Object.getOwnPropertyDescriptor(this, field);
40
- this['__' + field] = instance;
41
- // property getter
42
- var fieldGetter = function () {
43
- return instance.value;
44
- };
45
- var getter = propDesc ? propDesc.get : fieldGetter, fieldSetter = function (newVal) {
46
- instance.value = newVal;
47
- }, setter = propDesc ? propDesc.set : fieldSetter;
48
- // Delete the original property
49
- delete this[field];
50
- // Create new property with getter and setter
51
- Object.defineProperty(this, field, {
52
- get: getter,
53
- set: setter,
54
- enumerable: true,
55
- configurable: true
56
- });
57
- instance.on('change', function () {
58
- var args = [];
59
- for (var _i = 0; _i < arguments.length; _i++) {
60
- args[_i] = arguments[_i];
61
- }
62
- _this.dispatch.apply(_this, __spreadArray(['change', field], args));
63
- _this.dispatch.apply(_this, __spreadArray(['change:' + field], args));
64
- });
65
- return instance;
66
- };
67
- ModelAbstract.prototype.setData = function (data) {
68
- var fields = this.getFields();
69
- for (var key in data) {
70
- if (fields.indexOf(key) > -1) {
71
- this[key] = data[key];
72
- }
73
- }
74
- };
75
- ModelAbstract.prototype.getData = function () {
76
- var data = {};
77
- for (var _i = 0, _a = this.getFields(); _i < _a.length; _i++) {
78
- var key = _a[_i];
79
- var field = this['__' + key];
80
- if (this[key] == null || !field)
81
- continue;
82
- data[key] = field.getData();
83
- }
84
- return data;
85
- };
86
- ModelAbstract.prototype.getFields = function () {
87
- return this.__fields__;
88
- };
89
- ModelAbstract.prototype.getField = function (field) {
90
- return this['__' + field];
91
- };
92
- ModelAbstract.prototype.bindToFields = function (event, fields, callback) {
93
- for (var _i = 0, fields_1 = fields; _i < fields_1.length; _i++) {
94
- var field = fields_1[_i];
95
- var _field = this['__' + field];
96
- if (_field)
97
- _field.on(event, callback);
98
- }
99
- };
100
- ModelAbstract.prototype.setLastData = function () {
101
- this._lastData = this.getData();
102
- };
103
- /*
104
- * Revert data to the last setData() call. Useful for forms that edit a
105
- * list of items and then hit cancel rather than saving the list.
106
- */
107
- ModelAbstract.prototype.revert = function () {
108
- this.setData(this._lastData);
109
- };
110
- ModelAbstract.prototype.isModified = function () {
111
- var oData = this._lastData, nData = this.getData();
112
- for (var _i = 0, _a = this.getFields(); _i < _a.length; _i++) {
113
- var key = _a[_i];
114
- if (nData[key] != oData[key])
115
- return true;
116
- }
117
- return false;
118
- };
119
- return ModelAbstract;
120
- }(EventDispatcher_1.EventDispatcher));
121
- exports.ModelAbstract = ModelAbstract;
122
- //# sourceMappingURL=ModelAbstract.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ModelAbstract.js","sourceRoot":"","sources":["../../src/Model/ModelAbstract.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import { Field } from "./Field";
2
- export declare class BooleanField extends Field {
3
- set value(data: any);
4
- get value(): any;
5
- }
@@ -1,43 +0,0 @@
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.BooleanField = void 0;
19
- var Field_1 = require("./Field");
20
- var BooleanField = /** @class */ (function (_super) {
21
- __extends(BooleanField, _super);
22
- function BooleanField() {
23
- return _super !== null && _super.apply(this, arguments) || this;
24
- }
25
- Object.defineProperty(BooleanField.prototype, "value", {
26
- get: function () {
27
- return this._value;
28
- },
29
- set: function (data) {
30
- var oldValue = this.value;
31
- this._value = !!data;
32
- this.dispatch('change', {
33
- oldValue: oldValue,
34
- value: data
35
- });
36
- },
37
- enumerable: false,
38
- configurable: true
39
- });
40
- return BooleanField;
41
- }(Field_1.Field));
42
- exports.BooleanField = BooleanField;
43
- //# sourceMappingURL=BooleanField.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BooleanField.js","sourceRoot":"","sources":["../../../src/Model/fields/BooleanField.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,iCAAgC;AAEhC;IAAkC,gCAAK;IAAvC;;IAaA,CAAC;IAZG,sBAAI,+BAAK;aAST;YACI,OAAO,IAAI,CAAC,MAAM,CAAC;QACvB,CAAC;aAXD,UAAU,IAAQ;YACd,IAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;YAC5B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBACpB,QAAQ,EAAC,QAAQ;gBACjB,KAAK,EAAC,IAAI;aACb,CAAC,CAAC;QACP,CAAC;;;OAAA;IAKL,mBAAC;AAAD,CAAC,AAbD,CAAkC,aAAK,GAatC;AAbY,oCAAY"}
@@ -1,5 +0,0 @@
1
- import { Field } from "./Field";
2
- export declare class EmailField extends Field {
3
- _emailRegex: RegExp;
4
- validate(): String[];
5
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"EmailField.js","sourceRoot":"","sources":["../../../src/Model/fields/EmailField.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,iCAAgC;AAEhC;IAAgC,8BAAK;IAArC;QAAA,qEASC;QARG,iBAAW,GAAG,wHAAwH,CAAC;;IAQ3I,CAAC;IANG,6BAAQ,GAAR;QACI,iBAAM,QAAQ,WAAE,CAAC;QACjB,IAAG,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YACzD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IACL,iBAAC;AAAD,CAAC,AATD,CAAgC,aAAK,GASpC;AATY,gCAAU"}
@@ -1,13 +0,0 @@
1
- import { EventDispatcher } from "../../EventDispatcher";
2
- export declare function field(fieldType?: typeof Field, config?: {} | null): (target: any, key: string) => void;
3
- export declare class Field extends EventDispatcher {
4
- model: any;
5
- _value: any;
6
- _errors: String[];
7
- config: any;
8
- constructor(model: any, value?: any, config?: Object);
9
- set value(v: any);
10
- get value(): any;
11
- getData(): any;
12
- validate(): String[];
13
- }
@@ -1,79 +0,0 @@
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 = exports.field = void 0;
19
- var EventDispatcher_1 = require("../../EventDispatcher");
20
- function field(fieldType, config) {
21
- if (fieldType === void 0) { fieldType = Field; }
22
- if (config === void 0) { config = {}; }
23
- return function (target, key) {
24
- if (target.__fields__ == undefined) {
25
- target.__fields__ = [];
26
- }
27
- // Abstract models share __fields__
28
- if (target.__fields__.indexOf(key) == -1)
29
- target.__fields__.push(key);
30
- var getter = function () {
31
- return [fieldType, config];
32
- };
33
- Object.defineProperty(target, '__' + key + '__', {
34
- get: getter,
35
- set: function (v) { },
36
- enumerable: false,
37
- configurable: true
38
- });
39
- };
40
- }
41
- exports.field = field;
42
- var Field = /** @class */ (function (_super) {
43
- __extends(Field, _super);
44
- function Field(model, value, config) {
45
- var _this = _super.call(this) || this;
46
- _this.model = model;
47
- _this.config = config;
48
- _this.value = value;
49
- _this._errors = [];
50
- return _this;
51
- }
52
- Object.defineProperty(Field.prototype, "value", {
53
- get: function () {
54
- return this._value;
55
- },
56
- set: function (v) {
57
- var oldValue = this._value;
58
- this._value = v;
59
- this.dispatch('change', {
60
- oldValue: oldValue,
61
- value: v
62
- });
63
- },
64
- enumerable: false,
65
- configurable: true
66
- });
67
- Field.prototype.getData = function () {
68
- return this.value;
69
- };
70
- Field.prototype.validate = function () {
71
- this._errors = [];
72
- if (this.config['required'] == true && this._value == null)
73
- this._errors.push('This field is required.');
74
- return this._errors;
75
- };
76
- return Field;
77
- }(EventDispatcher_1.EventDispatcher));
78
- exports.Field = Field;
79
- //# sourceMappingURL=Field.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Field.js","sourceRoot":"","sources":["../../../src/Model/fields/Field.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,yDAAsD;AAEtD,SAAgB,KAAK,CAAC,SAAiB,EAAE,MAAsB;IAAzC,0BAAA,EAAA,iBAAiB;IAAE,uBAAA,EAAA,WAAsB;IAC3D,OAAO,UAAS,MAAW,EAAE,GAAW;QACpC,IAAG,MAAM,CAAC,UAAU,IAAI,SAAS,EAAE;YAC/B,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;SAC1B;QAED,mCAAmC;QACnC,IAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACnC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEhC,IAAM,MAAM,GAAG;YACX,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC/B,CAAC,CAAC;QAEF,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,GAAC,GAAG,GAAC,IAAI,EAAE;YACzC,GAAG,EAAE,MAAM;YACX,GAAG,EAAE,UAAA,CAAC,IAAK,CAAC;YACZ,UAAU,EAAC,KAAK;YAChB,YAAY,EAAE,IAAI;SACrB,CAAC,CAAC;IACP,CAAC,CAAA;AACL,CAAC;AArBD,sBAqBC;AAED;IAA2B,yBAAe;IAMtC,eAAY,KAAS,EAAE,KAAU,EAAE,MAAe;QAAlD,YACI,iBAAO,SAKV;QAJG,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,KAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,KAAI,CAAC,OAAO,GAAG,EAAE,CAAC;;IACtB,CAAC;IAED,sBAAI,wBAAK;aAST;YACI,OAAO,IAAI,CAAC,MAAM,CAAC;QACvB,CAAC;aAXD,UAAU,CAAK;YACX,IAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;YAC7B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAChB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBACpB,QAAQ,EAAC,QAAQ;gBACjB,KAAK,EAAC,CAAC;aACV,CAAC,CAAC;QACP,CAAC;;;OAAA;IAMD,uBAAO,GAAP;QACI,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,wBAAQ,GAAR;QACI,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAElB,IAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI;YACrD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAEjD,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IACL,YAAC;AAAD,CAAC,AAvCD,CAA2B,iCAAe,GAuCzC;AAvCY,sBAAK"}
@@ -1,5 +0,0 @@
1
- import { Field } from "./Field";
2
- export declare class FloatField extends Field {
3
- set value(data: any);
4
- get value(): any;
5
- }