vsn 0.1.149 → 1.0.1

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 (587) hide show
  1. package/README.md +7 -6
  2. package/dist/index.cjs +5181 -0
  3. package/dist/index.cjs.map +1 -0
  4. package/dist/index.d.cts +650 -0
  5. package/dist/index.d.ts +650 -0
  6. package/dist/index.js +5112 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/index.min.js +9 -0
  9. package/dist/index.min.js.map +1 -0
  10. package/package.json +31 -35
  11. package/.gitattributes +0 -2
  12. package/.travis.yml +0 -28
  13. package/demo/demo.html +0 -237
  14. package/demo/examples/cascading-function-sheets.html +0 -39
  15. package/demo/examples/component-slots.html +0 -29
  16. package/demo/examples/events.html +0 -21
  17. package/demo/examples/item-filtering.html +0 -45
  18. package/demo/examples/loop.html +0 -21
  19. package/demo/examples/persist.html +0 -17
  20. package/demo/examples/replace-html.html +0 -19
  21. package/demo/markup-default.html +0 -2
  22. package/demo/markup.html +0 -2
  23. package/demo/memory-leak-test.html +0 -82
  24. package/demo/named-stack.html +0 -34
  25. package/demo/resources/xhr-animations.html +0 -24
  26. package/demo/resources/xhr-cfs.html +0 -1
  27. package/demo/resources/xhr-html.html +0 -1
  28. package/demo/resources/xhr-lazy.html +0 -60
  29. package/demo/resources/xhr-memory-leak-test.html +0 -14
  30. package/demo/resources/xhr-persist.html +0 -40
  31. package/demo/resources/xhr-test-component.html +0 -4
  32. package/demo/service.html +0 -22
  33. package/demo/silly-animations.html +0 -27
  34. package/demo/vsn.js +0 -3
  35. package/demo/xhr-response.html +0 -1
  36. package/demo/xhr-test.html +0 -32
  37. package/dist/AST/ArithmeticNode.d.ts +0 -15
  38. package/dist/AST/ArithmeticNode.js +0 -114
  39. package/dist/AST/ArithmeticNode.js.map +0 -1
  40. package/dist/AST/ArrayNode.d.ts +0 -14
  41. package/dist/AST/ArrayNode.js +0 -166
  42. package/dist/AST/ArrayNode.js.map +0 -1
  43. package/dist/AST/AsNode.d.ts +0 -13
  44. package/dist/AST/AsNode.js +0 -92
  45. package/dist/AST/AsNode.js.map +0 -1
  46. package/dist/AST/AssignmentNode.d.ts +0 -24
  47. package/dist/AST/AssignmentNode.js +0 -392
  48. package/dist/AST/AssignmentNode.js.map +0 -1
  49. package/dist/AST/BlockNode.d.ts +0 -11
  50. package/dist/AST/BlockNode.js +0 -114
  51. package/dist/AST/BlockNode.js.map +0 -1
  52. package/dist/AST/BooleanLiteralNode.d.ts +0 -5
  53. package/dist/AST/BooleanLiteralNode.js +0 -31
  54. package/dist/AST/BooleanLiteralNode.js.map +0 -1
  55. package/dist/AST/ClassNode.d.ts +0 -47
  56. package/dist/AST/ClassNode.js +0 -593
  57. package/dist/AST/ClassNode.js.map +0 -1
  58. package/dist/AST/ComparisonNode.d.ts +0 -15
  59. package/dist/AST/ComparisonNode.js +0 -120
  60. package/dist/AST/ComparisonNode.js.map +0 -1
  61. package/dist/AST/ConditionalNode.d.ts +0 -13
  62. package/dist/AST/ConditionalNode.js +0 -95
  63. package/dist/AST/ConditionalNode.js.map +0 -1
  64. package/dist/AST/DispatchEventNode.d.ts +0 -17
  65. package/dist/AST/DispatchEventNode.js +0 -152
  66. package/dist/AST/DispatchEventNode.js.map +0 -1
  67. package/dist/AST/ElementAttributeNode.d.ts +0 -20
  68. package/dist/AST/ElementAttributeNode.js +0 -242
  69. package/dist/AST/ElementAttributeNode.js.map +0 -1
  70. package/dist/AST/ElementQueryNode.d.ts +0 -17
  71. package/dist/AST/ElementQueryNode.js +0 -148
  72. package/dist/AST/ElementQueryNode.js.map +0 -1
  73. package/dist/AST/ElementStyleNode.d.ts +0 -20
  74. package/dist/AST/ElementStyleNode.js +0 -205
  75. package/dist/AST/ElementStyleNode.js.map +0 -1
  76. package/dist/AST/ForStatementNode.d.ts +0 -17
  77. package/dist/AST/ForStatementNode.js +0 -121
  78. package/dist/AST/ForStatementNode.js.map +0 -1
  79. package/dist/AST/FunctionArgumentNode.d.ts +0 -11
  80. package/dist/AST/FunctionArgumentNode.js +0 -142
  81. package/dist/AST/FunctionArgumentNode.js.map +0 -1
  82. package/dist/AST/FunctionCallNode.d.ts +0 -14
  83. package/dist/AST/FunctionCallNode.js +0 -241
  84. package/dist/AST/FunctionCallNode.js.map +0 -1
  85. package/dist/AST/FunctionNode.d.ts +0 -20
  86. package/dist/AST/FunctionNode.js +0 -220
  87. package/dist/AST/FunctionNode.js.map +0 -1
  88. package/dist/AST/IfStatementNode.d.ts +0 -14
  89. package/dist/AST/IfStatementNode.js +0 -168
  90. package/dist/AST/IfStatementNode.js.map +0 -1
  91. package/dist/AST/InNode.d.ts +0 -15
  92. package/dist/AST/InNode.js +0 -107
  93. package/dist/AST/InNode.js.map +0 -1
  94. package/dist/AST/IndexNode.d.ts +0 -16
  95. package/dist/AST/IndexNode.js +0 -152
  96. package/dist/AST/IndexNode.js.map +0 -1
  97. package/dist/AST/LiteralNode.d.ts +0 -10
  98. package/dist/AST/LiteralNode.js +0 -74
  99. package/dist/AST/LiteralNode.js.map +0 -1
  100. package/dist/AST/LoopNode.d.ts +0 -12
  101. package/dist/AST/LoopNode.js +0 -121
  102. package/dist/AST/LoopNode.js.map +0 -1
  103. package/dist/AST/ModifierNode.d.ts +0 -14
  104. package/dist/AST/ModifierNode.js +0 -90
  105. package/dist/AST/ModifierNode.js.map +0 -1
  106. package/dist/AST/NamedStackNode.d.ts +0 -28
  107. package/dist/AST/NamedStackNode.js +0 -142
  108. package/dist/AST/NamedStackNode.js.map +0 -1
  109. package/dist/AST/Node.d.ts +0 -28
  110. package/dist/AST/Node.js +0 -263
  111. package/dist/AST/Node.js.map +0 -1
  112. package/dist/AST/NotNode.d.ts +0 -12
  113. package/dist/AST/NotNode.js +0 -103
  114. package/dist/AST/NotNode.js.map +0 -1
  115. package/dist/AST/NumberLiteralNode.d.ts +0 -5
  116. package/dist/AST/NumberLiteralNode.js +0 -36
  117. package/dist/AST/NumberLiteralNode.js.map +0 -1
  118. package/dist/AST/ObjectNode.d.ts +0 -14
  119. package/dist/AST/ObjectNode.js +0 -147
  120. package/dist/AST/ObjectNode.js.map +0 -1
  121. package/dist/AST/OnNode.d.ts +0 -9
  122. package/dist/AST/OnNode.js +0 -129
  123. package/dist/AST/OnNode.js.map +0 -1
  124. package/dist/AST/RootScopeMemberNode.d.ts +0 -12
  125. package/dist/AST/RootScopeMemberNode.js +0 -90
  126. package/dist/AST/RootScopeMemberNode.js.map +0 -1
  127. package/dist/AST/ScopeMemberNode.d.ts +0 -13
  128. package/dist/AST/ScopeMemberNode.js +0 -165
  129. package/dist/AST/ScopeMemberNode.js.map +0 -1
  130. package/dist/AST/ScopeNodeAbstract.d.ts +0 -8
  131. package/dist/AST/ScopeNodeAbstract.js +0 -105
  132. package/dist/AST/ScopeNodeAbstract.js.map +0 -1
  133. package/dist/AST/StringFormatNode.d.ts +0 -18
  134. package/dist/AST/StringFormatNode.js +0 -151
  135. package/dist/AST/StringFormatNode.js.map +0 -1
  136. package/dist/AST/UnitLiteralNode.d.ts +0 -15
  137. package/dist/AST/UnitLiteralNode.js +0 -72
  138. package/dist/AST/UnitLiteralNode.js.map +0 -1
  139. package/dist/AST/WASM/Context.d.ts +0 -4
  140. package/dist/AST/WASM/Context.js +0 -18
  141. package/dist/AST/WASM/Context.js.map +0 -1
  142. package/dist/AST/WASM/Function.d.ts +0 -22
  143. package/dist/AST/WASM/Function.js +0 -126
  144. package/dist/AST/WASM/Function.js.map +0 -1
  145. package/dist/AST/WASM/Memory.d.ts +0 -12
  146. package/dist/AST/WASM/Memory.js +0 -22
  147. package/dist/AST/WASM/Memory.js.map +0 -1
  148. package/dist/AST/WASM/Section.d.ts +0 -5
  149. package/dist/AST/WASM/Section.js +0 -11
  150. package/dist/AST/WASM/Section.js.map +0 -1
  151. package/dist/AST/WASM.d.ts +0 -58
  152. package/dist/AST/WASM.js +0 -293
  153. package/dist/AST/WASM.js.map +0 -1
  154. package/dist/AST/WithNode.d.ts +0 -15
  155. package/dist/AST/WithNode.js +0 -197
  156. package/dist/AST/WithNode.js.map +0 -1
  157. package/dist/AST/XHRNode.d.ts +0 -15
  158. package/dist/AST/XHRNode.js +0 -151
  159. package/dist/AST/XHRNode.js.map +0 -1
  160. package/dist/AST.d.ts +0 -160
  161. package/dist/AST.js +0 -1156
  162. package/dist/AST.js.map +0 -1
  163. package/dist/Attribute.d.ts +0 -46
  164. package/dist/Attribute.js +0 -262
  165. package/dist/Attribute.js.map +0 -1
  166. package/dist/Bencmark.d.ts +0 -14
  167. package/dist/Bencmark.js +0 -236
  168. package/dist/Bencmark.js.map +0 -1
  169. package/dist/Component.d.ts +0 -7
  170. package/dist/Component.js +0 -179
  171. package/dist/Component.js.map +0 -1
  172. package/dist/Configuration.d.ts +0 -12
  173. package/dist/Configuration.js +0 -64
  174. package/dist/Configuration.js.map +0 -1
  175. package/dist/Controller.d.ts +0 -13
  176. package/dist/Controller.js +0 -60
  177. package/dist/Controller.js.map +0 -1
  178. package/dist/DOM/AbstractDOM.d.ts +0 -56
  179. package/dist/DOM/AbstractDOM.js +0 -1078
  180. package/dist/DOM/AbstractDOM.js.map +0 -1
  181. package/dist/DOM/DOMObject.d.ts +0 -33
  182. package/dist/DOM/DOMObject.js +0 -152
  183. package/dist/DOM/DOMObject.js.map +0 -1
  184. package/dist/DOM/ShadowDOM.d.ts +0 -5
  185. package/dist/DOM/ShadowDOM.js +0 -32
  186. package/dist/DOM/ShadowDOM.js.map +0 -1
  187. package/dist/DOM/WrappedDocument.d.ts +0 -5
  188. package/dist/DOM/WrappedDocument.js +0 -34
  189. package/dist/DOM/WrappedDocument.js.map +0 -1
  190. package/dist/DOM/WrappedWindow.d.ts +0 -6
  191. package/dist/DOM/WrappedWindow.js +0 -45
  192. package/dist/DOM/WrappedWindow.js.map +0 -1
  193. package/dist/DOM.d.ts +0 -5
  194. package/dist/DOM.js +0 -37
  195. package/dist/DOM.js.map +0 -1
  196. package/dist/EventDispatcher.d.ts +0 -36
  197. package/dist/EventDispatcher.js +0 -393
  198. package/dist/EventDispatcher.js.map +0 -1
  199. package/dist/Formats.d.ts +0 -5
  200. package/dist/Formats.js +0 -47
  201. package/dist/Formats.js.map +0 -1
  202. package/dist/MessageList.d.ts +0 -15
  203. package/dist/MessageList.js +0 -127
  204. package/dist/MessageList.js.map +0 -1
  205. package/dist/Model.d.ts +0 -12
  206. package/dist/Model.js +0 -92
  207. package/dist/Model.js.map +0 -1
  208. package/dist/Modifiers.d.ts +0 -17
  209. package/dist/Modifiers.js +0 -100
  210. package/dist/Modifiers.js.map +0 -1
  211. package/dist/Query.d.ts +0 -4
  212. package/dist/Query.js +0 -66
  213. package/dist/Query.js.map +0 -1
  214. package/dist/Registry.d.ts +0 -41
  215. package/dist/Registry.js +0 -165
  216. package/dist/Registry.js.map +0 -1
  217. package/dist/Scope/DynamicScopeData.d.ts +0 -6
  218. package/dist/Scope/DynamicScopeData.js +0 -83
  219. package/dist/Scope/DynamicScopeData.js.map +0 -1
  220. package/dist/Scope/ObjectAccessor.d.ts +0 -7
  221. package/dist/Scope/ObjectAccessor.js +0 -40
  222. package/dist/Scope/ObjectAccessor.js.map +0 -1
  223. package/dist/Scope/QueryReference.d.ts +0 -10
  224. package/dist/Scope/QueryReference.js +0 -103
  225. package/dist/Scope/QueryReference.js.map +0 -1
  226. package/dist/Scope/ScopeAbstract.d.ts +0 -9
  227. package/dist/Scope/ScopeAbstract.js +0 -28
  228. package/dist/Scope/ScopeAbstract.js.map +0 -1
  229. package/dist/Scope/ScopeData.d.ts +0 -4
  230. package/dist/Scope/ScopeData.js +0 -60
  231. package/dist/Scope/ScopeData.js.map +0 -1
  232. package/dist/Scope/ScopeDataAbstract.d.ts +0 -30
  233. package/dist/Scope/ScopeDataAbstract.js +0 -303
  234. package/dist/Scope/ScopeDataAbstract.js.map +0 -1
  235. package/dist/Scope/ScopeObject.d.ts +0 -3
  236. package/dist/Scope/ScopeObject.js +0 -28
  237. package/dist/Scope/ScopeObject.js.map +0 -1
  238. package/dist/Scope/ScopeReference.d.ts +0 -10
  239. package/dist/Scope/ScopeReference.js +0 -73
  240. package/dist/Scope/ScopeReference.js.map +0 -1
  241. package/dist/Scope/ScopedVariableType.d.ts +0 -6
  242. package/dist/Scope/ScopedVariableType.js +0 -14
  243. package/dist/Scope/ScopedVariableType.js.map +0 -1
  244. package/dist/Scope/WrappedArray.d.ts +0 -21
  245. package/dist/Scope/WrappedArray.js +0 -252
  246. package/dist/Scope/WrappedArray.js.map +0 -1
  247. package/dist/Scope/properties/ArrayProperty.d.ts +0 -12
  248. package/dist/Scope/properties/ArrayProperty.js +0 -88
  249. package/dist/Scope/properties/ArrayProperty.js.map +0 -1
  250. package/dist/Scope/properties/FloatProperty.d.ts +0 -4
  251. package/dist/Scope/properties/FloatProperty.js +0 -30
  252. package/dist/Scope/properties/FloatProperty.js.map +0 -1
  253. package/dist/Scope/properties/IntegerProperty.d.ts +0 -4
  254. package/dist/Scope/properties/IntegerProperty.js +0 -30
  255. package/dist/Scope/properties/IntegerProperty.js.map +0 -1
  256. package/dist/Scope/properties/Property.d.ts +0 -30
  257. package/dist/Scope/properties/Property.js +0 -205
  258. package/dist/Scope/properties/Property.js.map +0 -1
  259. package/dist/Scope/properties/_imports.d.ts +0 -4
  260. package/dist/Scope/properties/_imports.js +0 -13
  261. package/dist/Scope/properties/_imports.js.map +0 -1
  262. package/dist/Scope.d.ts +0 -39
  263. package/dist/Scope.js +0 -434
  264. package/dist/Scope.js.map +0 -1
  265. package/dist/Service.d.ts +0 -9
  266. package/dist/Service.js +0 -49
  267. package/dist/Service.js.map +0 -1
  268. package/dist/Tag/ShadowRootTag.d.ts +0 -3
  269. package/dist/Tag/ShadowRootTag.js +0 -28
  270. package/dist/Tag/ShadowRootTag.js.map +0 -1
  271. package/dist/Tag/SlotTag.d.ts +0 -3
  272. package/dist/Tag/SlotTag.js +0 -28
  273. package/dist/Tag/SlotTag.js.map +0 -1
  274. package/dist/Tag/SlottedTag.d.ts +0 -7
  275. package/dist/Tag/SlottedTag.js +0 -78
  276. package/dist/Tag/SlottedTag.js.map +0 -1
  277. package/dist/Tag/TagList.d.ts +0 -13
  278. package/dist/Tag/TagList.js +0 -104
  279. package/dist/Tag/TagList.js.map +0 -1
  280. package/dist/Tag.d.ts +0 -117
  281. package/dist/Tag.js +0 -1471
  282. package/dist/Tag.js.map +0 -1
  283. package/dist/Types.d.ts +0 -8
  284. package/dist/Types.js +0 -54
  285. package/dist/Types.js.map +0 -1
  286. package/dist/Validators.d.ts +0 -7
  287. package/dist/Validators.js +0 -54
  288. package/dist/Validators.js.map +0 -1
  289. package/dist/attributes/AddClassIf.d.ts +0 -4
  290. package/dist/attributes/AddClassIf.js +0 -93
  291. package/dist/attributes/AddClassIf.js.map +0 -1
  292. package/dist/attributes/Bind.d.ts +0 -24
  293. package/dist/attributes/Bind.js +0 -273
  294. package/dist/attributes/Bind.js.map +0 -1
  295. package/dist/attributes/ComponentAttribute.d.ts +0 -5
  296. package/dist/attributes/ComponentAttribute.js +0 -110
  297. package/dist/attributes/ComponentAttribute.js.map +0 -1
  298. package/dist/attributes/ControllerAttribute.d.ts +0 -11
  299. package/dist/attributes/ControllerAttribute.js +0 -127
  300. package/dist/attributes/ControllerAttribute.js.map +0 -1
  301. package/dist/attributes/DisableIf.d.ts +0 -5
  302. package/dist/attributes/DisableIf.js +0 -94
  303. package/dist/attributes/DisableIf.js.map +0 -1
  304. package/dist/attributes/Exec.d.ts +0 -10
  305. package/dist/attributes/Exec.js +0 -133
  306. package/dist/attributes/Exec.js.map +0 -1
  307. package/dist/attributes/Format.d.ts +0 -5
  308. package/dist/attributes/Format.js +0 -99
  309. package/dist/attributes/Format.js.map +0 -1
  310. package/dist/attributes/If.d.ts +0 -11
  311. package/dist/attributes/If.js +0 -159
  312. package/dist/attributes/If.js.map +0 -1
  313. package/dist/attributes/JSONAttribute.d.ts +0 -5
  314. package/dist/attributes/JSONAttribute.js +0 -119
  315. package/dist/attributes/JSONAttribute.js.map +0 -1
  316. package/dist/attributes/KeyAbstract.d.ts +0 -7
  317. package/dist/attributes/KeyAbstract.js +0 -117
  318. package/dist/attributes/KeyAbstract.js.map +0 -1
  319. package/dist/attributes/KeyDown.d.ts +0 -4
  320. package/dist/attributes/KeyDown.js +0 -88
  321. package/dist/attributes/KeyDown.js.map +0 -1
  322. package/dist/attributes/KeyUp.d.ts +0 -4
  323. package/dist/attributes/KeyUp.js +0 -88
  324. package/dist/attributes/KeyUp.js.map +0 -1
  325. package/dist/attributes/LazyAttribute.d.ts +0 -8
  326. package/dist/attributes/LazyAttribute.js +0 -122
  327. package/dist/attributes/LazyAttribute.js.map +0 -1
  328. package/dist/attributes/List.d.ts +0 -18
  329. package/dist/attributes/List.js +0 -396
  330. package/dist/attributes/List.js.map +0 -1
  331. package/dist/attributes/ListItem.d.ts +0 -12
  332. package/dist/attributes/ListItem.js +0 -119
  333. package/dist/attributes/ListItem.js.map +0 -1
  334. package/dist/attributes/ListItemModel.d.ts +0 -4
  335. package/dist/attributes/ListItemModel.js +0 -39
  336. package/dist/attributes/ListItemModel.js.map +0 -1
  337. package/dist/attributes/ModelAttribute.d.ts +0 -5
  338. package/dist/attributes/ModelAttribute.js +0 -41
  339. package/dist/attributes/ModelAttribute.js.map +0 -1
  340. package/dist/attributes/Name.d.ts +0 -6
  341. package/dist/attributes/Name.js +0 -88
  342. package/dist/attributes/Name.js.map +0 -1
  343. package/dist/attributes/On.d.ts +0 -9
  344. package/dist/attributes/On.js +0 -135
  345. package/dist/attributes/On.js.map +0 -1
  346. package/dist/attributes/PersistAttribute.d.ts +0 -15
  347. package/dist/attributes/PersistAttribute.js +0 -215
  348. package/dist/attributes/PersistAttribute.js.map +0 -1
  349. package/dist/attributes/Referenced.d.ts +0 -3
  350. package/dist/attributes/Referenced.js +0 -38
  351. package/dist/attributes/Referenced.js.map +0 -1
  352. package/dist/attributes/RootAttribute.d.ts +0 -7
  353. package/dist/attributes/RootAttribute.js +0 -141
  354. package/dist/attributes/RootAttribute.js.map +0 -1
  355. package/dist/attributes/ScopeAttribute.d.ts +0 -9
  356. package/dist/attributes/ScopeAttribute.js +0 -152
  357. package/dist/attributes/ScopeAttribute.js.map +0 -1
  358. package/dist/attributes/ScopeChange.d.ts +0 -10
  359. package/dist/attributes/ScopeChange.js +0 -153
  360. package/dist/attributes/ScopeChange.js.map +0 -1
  361. package/dist/attributes/ScriptAttribute.d.ts +0 -4
  362. package/dist/attributes/ScriptAttribute.js +0 -45
  363. package/dist/attributes/ScriptAttribute.js.map +0 -1
  364. package/dist/attributes/ServiceAttribute.d.ts +0 -7
  365. package/dist/attributes/ServiceAttribute.js +0 -45
  366. package/dist/attributes/ServiceAttribute.js.map +0 -1
  367. package/dist/attributes/SetAttribute.d.ts +0 -11
  368. package/dist/attributes/SetAttribute.js +0 -146
  369. package/dist/attributes/SetAttribute.js.map +0 -1
  370. package/dist/attributes/StandardAttribute.d.ts +0 -15
  371. package/dist/attributes/StandardAttribute.js +0 -170
  372. package/dist/attributes/StandardAttribute.js.map +0 -1
  373. package/dist/attributes/StyleAttribute.d.ts +0 -14
  374. package/dist/attributes/StyleAttribute.js +0 -218
  375. package/dist/attributes/StyleAttribute.js.map +0 -1
  376. package/dist/attributes/StyleVarAttribute.d.ts +0 -11
  377. package/dist/attributes/StyleVarAttribute.js +0 -124
  378. package/dist/attributes/StyleVarAttribute.js.map +0 -1
  379. package/dist/attributes/TemplateAttribute.d.ts +0 -5
  380. package/dist/attributes/TemplateAttribute.js +0 -89
  381. package/dist/attributes/TemplateAttribute.js.map +0 -1
  382. package/dist/attributes/TypeAttribute.d.ts +0 -5
  383. package/dist/attributes/TypeAttribute.js +0 -104
  384. package/dist/attributes/TypeAttribute.js.map +0 -1
  385. package/dist/attributes/XHRAttribute.d.ts +0 -14
  386. package/dist/attributes/XHRAttribute.js +0 -242
  387. package/dist/attributes/XHRAttribute.js.map +0 -1
  388. package/dist/attributes/_imports.d.ts +0 -32
  389. package/dist/attributes/_imports.js +0 -68
  390. package/dist/attributes/_imports.js.map +0 -1
  391. package/dist/contrib/XHR.d.ts +0 -21
  392. package/dist/contrib/XHR.js +0 -78
  393. package/dist/contrib/XHR.js.map +0 -1
  394. package/dist/contrib/_imports.d.ts +0 -1
  395. package/dist/contrib/_imports.js +0 -6
  396. package/dist/contrib/_imports.js.map +0 -1
  397. package/dist/custom-elements.d.ts +0 -9
  398. package/dist/custom-elements.js +0 -44
  399. package/dist/custom-elements.js.map +0 -1
  400. package/dist/demo/ServiceDemo.d.ts +0 -5
  401. package/dist/demo/ServiceDemo.js +0 -87
  402. package/dist/demo/ServiceDemo.js.map +0 -1
  403. package/dist/demo.d.ts +0 -2
  404. package/dist/demo.js +0 -17
  405. package/dist/demo.js.map +0 -1
  406. package/dist/helpers/DOMHelper.d.ts +0 -3
  407. package/dist/helpers/DOMHelper.js +0 -81
  408. package/dist/helpers/DOMHelper.js.map +0 -1
  409. package/dist/helpers/ElementHelper.d.ts +0 -4
  410. package/dist/helpers/ElementHelper.js +0 -53
  411. package/dist/helpers/ElementHelper.js.map +0 -1
  412. package/dist/helpers/VisionHelper.d.ts +0 -13
  413. package/dist/helpers/VisionHelper.js +0 -148
  414. package/dist/helpers/VisionHelper.js.map +0 -1
  415. package/dist/helpers/decorators.d.ts +0 -5
  416. package/dist/helpers/decorators.js +0 -59
  417. package/dist/helpers/decorators.js.map +0 -1
  418. package/dist/version.d.ts +0 -1
  419. package/dist/version.js +0 -5
  420. package/dist/version.js.map +0 -1
  421. package/dist/vsn.d.ts +0 -36
  422. package/dist/vsn.js +0 -201
  423. package/dist/vsn.js.map +0 -1
  424. package/karma.conf.js +0 -34
  425. package/src/AST/ArithmeticNode.ts +0 -52
  426. package/src/AST/ArrayNode.ts +0 -39
  427. package/src/AST/AsNode.ts +0 -32
  428. package/src/AST/AssignmentNode.ts +0 -256
  429. package/src/AST/BlockNode.ts +0 -25
  430. package/src/AST/BooleanLiteralNode.ts +0 -10
  431. package/src/AST/ClassNode.ts +0 -267
  432. package/src/AST/ComparisonNode.ts +0 -57
  433. package/src/AST/ConditionalNode.ts +0 -36
  434. package/src/AST/DispatchEventNode.ts +0 -58
  435. package/src/AST/ElementAttributeNode.ts +0 -97
  436. package/src/AST/ElementQueryNode.ts +0 -48
  437. package/src/AST/ElementStyleNode.ts +0 -74
  438. package/src/AST/ForStatementNode.ts +0 -59
  439. package/src/AST/FunctionArgumentNode.ts +0 -27
  440. package/src/AST/FunctionCallNode.ts +0 -93
  441. package/src/AST/FunctionNode.ts +0 -82
  442. package/src/AST/IfStatementNode.ts +0 -67
  443. package/src/AST/InNode.ts +0 -46
  444. package/src/AST/IndexNode.ts +0 -64
  445. package/src/AST/LiteralNode.ts +0 -17
  446. package/src/AST/LoopNode.ts +0 -35
  447. package/src/AST/ModifierNode.ts +0 -32
  448. package/src/AST/NamedStackNode.ts +0 -83
  449. package/src/AST/Node.ts +0 -104
  450. package/src/AST/NotNode.ts +0 -41
  451. package/src/AST/NumberLiteralNode.ts +0 -14
  452. package/src/AST/ObjectNode.ts +0 -55
  453. package/src/AST/OnNode.ts +0 -23
  454. package/src/AST/RootScopeMemberNode.ts +0 -27
  455. package/src/AST/ScopeMemberNode.ts +0 -63
  456. package/src/AST/ScopeNodeAbstract.ts +0 -21
  457. package/src/AST/StringFormatNode.ts +0 -43
  458. package/src/AST/UnitLiteralNode.ts +0 -51
  459. package/src/AST/WASM/Context.ts +0 -12
  460. package/src/AST/WASM/Function.ts +0 -67
  461. package/src/AST/WASM/Memory.ts +0 -21
  462. package/src/AST/WASM/Section.ts +0 -6
  463. package/src/AST/WASM.ts +0 -244
  464. package/src/AST/WithNode.ts +0 -68
  465. package/src/AST/XHRNode.ts +0 -85
  466. package/src/AST.ts +0 -969
  467. package/src/Attribute.ts +0 -130
  468. package/src/Bencmark.ts +0 -184
  469. package/src/Component.ts +0 -63
  470. package/src/Configuration.ts +0 -47
  471. package/src/Controller.ts +0 -36
  472. package/src/DOM/AbstractDOM.ts +0 -465
  473. package/src/DOM/DOMObject.ts +0 -77
  474. package/src/DOM/ShadowDOM.ts +0 -15
  475. package/src/DOM/WrappedDocument.ts +0 -9
  476. package/src/DOM/WrappedWindow.ts +0 -21
  477. package/src/DOM.ts +0 -13
  478. package/src/EventDispatcher.ts +0 -234
  479. package/src/Formats.ts +0 -33
  480. package/src/MessageList.ts +0 -85
  481. package/src/Model.ts +0 -44
  482. package/src/Modifiers.ts +0 -54
  483. package/src/Query.ts +0 -17
  484. package/src/Registry.ts +0 -141
  485. package/src/Scope/DynamicScopeData.ts +0 -27
  486. package/src/Scope/ObjectAccessor.ts +0 -21
  487. package/src/Scope/QueryReference.ts +0 -29
  488. package/src/Scope/ScopeAbstract.ts +0 -11
  489. package/src/Scope/ScopeData.ts +0 -20
  490. package/src/Scope/ScopeDataAbstract.ts +0 -200
  491. package/src/Scope/ScopeObject.ts +0 -3
  492. package/src/Scope/ScopeReference.ts +0 -30
  493. package/src/Scope/ScopedVariableType.ts +0 -7
  494. package/src/Scope/WrappedArray.ts +0 -134
  495. package/src/Scope/properties/ArrayProperty.ts +0 -46
  496. package/src/Scope/properties/FloatProperty.ts +0 -5
  497. package/src/Scope/properties/IntegerProperty.ts +0 -5
  498. package/src/Scope/properties/Property.ts +0 -173
  499. package/src/Scope/properties/_imports.ts +0 -4
  500. package/src/Scope.ts +0 -333
  501. package/src/Service.ts +0 -24
  502. package/src/Tag/ShadowRootTag.ts +0 -5
  503. package/src/Tag/SlotTag.ts +0 -5
  504. package/src/Tag/SlottedTag.ts +0 -17
  505. package/src/Tag/TagList.ts +0 -52
  506. package/src/Tag.ts +0 -838
  507. package/src/Types.ts +0 -34
  508. package/src/Validators.ts +0 -45
  509. package/src/attributes/AddClassIf.ts +0 -14
  510. package/src/attributes/Bind.ts +0 -144
  511. package/src/attributes/ComponentAttribute.ts +0 -23
  512. package/src/attributes/ControllerAttribute.ts +0 -50
  513. package/src/attributes/DisableIf.ts +0 -16
  514. package/src/attributes/Exec.ts +0 -32
  515. package/src/attributes/Format.ts +0 -18
  516. package/src/attributes/If.ts +0 -40
  517. package/src/attributes/JSONAttribute.ts +0 -40
  518. package/src/attributes/KeyAbstract.ts +0 -28
  519. package/src/attributes/KeyDown.ts +0 -10
  520. package/src/attributes/KeyUp.ts +0 -10
  521. package/src/attributes/LazyAttribute.ts +0 -30
  522. package/src/attributes/List.ts +0 -210
  523. package/src/attributes/ListItem.ts +0 -30
  524. package/src/attributes/ListItemModel.ts +0 -7
  525. package/src/attributes/ModelAttribute.ts +0 -8
  526. package/src/attributes/Name.ts +0 -16
  527. package/src/attributes/On.ts +0 -39
  528. package/src/attributes/PersistAttribute.ts +0 -83
  529. package/src/attributes/Referenced.ts +0 -5
  530. package/src/attributes/RootAttribute.ts +0 -24
  531. package/src/attributes/ScopeAttribute.ts +0 -40
  532. package/src/attributes/ScopeChange.ts +0 -35
  533. package/src/attributes/ScriptAttribute.ts +0 -9
  534. package/src/attributes/ServiceAttribute.ts +0 -13
  535. package/src/attributes/SetAttribute.ts +0 -44
  536. package/src/attributes/StandardAttribute.ts +0 -72
  537. package/src/attributes/StyleAttribute.ts +0 -90
  538. package/src/attributes/StyleVarAttribute.ts +0 -40
  539. package/src/attributes/TemplateAttribute.ts +0 -12
  540. package/src/attributes/TypeAttribute.ts +0 -23
  541. package/src/attributes/XHRAttribute.ts +0 -109
  542. package/src/attributes/_imports.ts +0 -32
  543. package/src/contrib/XHR.ts +0 -46
  544. package/src/contrib/_imports.ts +0 -1
  545. package/src/custom-elements.ts +0 -46
  546. package/src/demo/ServiceDemo.ts +0 -12
  547. package/src/demo.ts +0 -2
  548. package/src/helpers/DOMHelper.ts +0 -17
  549. package/src/helpers/ElementHelper.ts +0 -26
  550. package/src/helpers/VisionHelper.ts +0 -88
  551. package/src/helpers/decorators.ts +0 -11
  552. package/src/version.ts +0 -2
  553. package/src/vsn.ts +0 -106
  554. package/test/AST/ArithmeticAssignmentNode.spec.ts +0 -45
  555. package/test/AST/ClassNode.spec.ts +0 -175
  556. package/test/AST/FunctionNode.spec.ts +0 -51
  557. package/test/AST/StringFormatNode.spec.ts +0 -12
  558. package/test/AST/WASM.spec.ts +0 -63
  559. package/test/AST/XHRNode.spec.ts +0 -10
  560. package/test/AST.spec.ts +0 -353
  561. package/test/Controller.spec.ts +0 -42
  562. package/test/DOM.spec.ts +0 -63
  563. package/test/EventDispatcher.spec.ts +0 -191
  564. package/test/MessageList.spec.ts +0 -101
  565. package/test/Model/DataModel.spec.ts +0 -0
  566. package/test/Scope/DynamicScopeData.spec.ts +0 -141
  567. package/test/Scope/ScopeData.spec.ts +0 -58
  568. package/test/Scope/WrappedArray.spec.ts +0 -11
  569. package/test/Scope/properties/ArrayProperty.spec.ts +0 -23
  570. package/test/Scope.spec.ts +0 -69
  571. package/test/Tag/TagList.spec.ts +0 -21
  572. package/test/Tag.spec.ts +0 -4
  573. package/test/attributes/Bind.spec.ts +0 -174
  574. package/test/attributes/JSONAttribute.spec.ts +0 -91
  575. package/test/attributes/ListItem.spec.ts +0 -118
  576. package/test/attributes/ScopeAttribute.spec.ts +0 -35
  577. package/test/attributes/ServiceAttribute.spec.ts +0 -41
  578. package/test/attributes/SetAttribute.spec.ts +0 -55
  579. package/test/attributes/Styles.spec.ts +0 -43
  580. package/test/globals.js +0 -2
  581. package/tsconfig.base.json +0 -17
  582. package/tsconfig.json +0 -6
  583. package/tsconfig.test.json +0 -7
  584. package/types/vsn-component.d.ts +0 -5
  585. package/webpack.config.js +0 -48
  586. package/webpack.development.js +0 -6
  587. package/webpack.production.js +0 -5
@@ -1,20 +0,0 @@
1
- import {ScopeDataAbstract} from "./ScopeDataAbstract";
2
-
3
- export class ScopeData extends ScopeDataAbstract {
4
- constructor() {
5
- super();
6
- const properties = this.__properties__.splice(0, this.__properties__.length);
7
- for(const property of properties) {
8
- (function(_self, name) {
9
- if(!_self['__'+name+'__'])
10
- return;
11
-
12
- const _property = _self['__'+name+'__'],
13
- propertyType = _property[0],
14
- config = _property[1] || {};
15
-
16
- _self.createProperty(name, propertyType, config);
17
- })(this, property);
18
- }
19
- }
20
- }
@@ -1,200 +0,0 @@
1
- import {IPropertyConfig, Property} from "./properties/Property";
2
- import {EventDispatcher} from "../EventDispatcher";
3
-
4
- export interface IScopeData {
5
- [key: string]: any;
6
- }
7
-
8
- export class ScopeDataAbstract extends EventDispatcher {
9
- [key: string]: any;
10
- __properties__: string[];
11
- __methods__: string[];
12
- protected _lastData: any;
13
-
14
- constructor() {
15
- super();
16
-
17
- // Objects may have __properties__ from prototype
18
- if(!this['__properties__'])
19
- this.__properties__ = [];
20
-
21
- if(!this['__methods__'])
22
- this.__methods__ = [];
23
- }
24
-
25
- deconstruct() {
26
- super.deconstruct();
27
- this._lastData = null;
28
- for (const prop of Array.from(this.__properties__)) {
29
- this.removeProperty(prop);
30
- }
31
- this.__properties__.length = 0;
32
-
33
- for (const prop of Array.from(this.__methods__)) {
34
- this.removeMethod(prop);
35
- }
36
- this.__methods__.length = 0;
37
- }
38
-
39
- createMethod(name: string, method: (...args: any[]) => any) {
40
-
41
- }
42
-
43
- createProperty(name: string, propertyType: any = Property, config?: IPropertyConfig): any {
44
- if (this.hasProperty(name)) {
45
- return this.getProperty(name);
46
- }
47
-
48
- config = config || {};
49
- const instance = new propertyType(config.default, config);
50
- const propDesc = Object.getOwnPropertyDescriptor(this, name);
51
- this['__'+name] = instance;
52
- this.__properties__.push(name);
53
-
54
- // property getter
55
- const propertyGetter = function() {
56
- return instance.value;
57
- };
58
- const getter = propDesc ? propDesc.get : propertyGetter,
59
- propertySetter = function(newVal: any) {
60
- instance.value = newVal;
61
- },
62
- setter = propDesc ? propDesc.set : propertySetter;
63
-
64
- // Delete the original property
65
- delete this[name];
66
-
67
- // Create new property with getter and setter
68
- Object.defineProperty(this, name, {
69
- get: getter,
70
- set: setter,
71
- enumerable: true,
72
- configurable: true
73
- });
74
-
75
- instance.on('change', (...args: any[]) => {
76
- this.dispatch('change', name, ...args);
77
- this.dispatch('change:' + name, ...args);
78
- });
79
- return instance;
80
- }
81
-
82
- removeProperty(key: string) {
83
- const index = this.__properties__.indexOf(key);
84
- if (index > -1)
85
- this.__properties__.splice(index, 1);
86
-
87
- const prop = this['__'+key];
88
- if (prop) {
89
- prop.deconstruct();
90
- delete this['__' + key];
91
- }
92
-
93
- delete this[key];
94
- }
95
-
96
- removeMethod(key: string) {
97
- const index = this.__methods__.indexOf(key);
98
- if (index > -1)
99
- this.__methods__.splice(index, 1);
100
-
101
- delete this['__' + key];
102
- delete this[key];
103
- }
104
-
105
- hasProperty(name: string): boolean {
106
- return this.__properties__.indexOf(name) !== -1;
107
- }
108
-
109
- get keys(): string[] {
110
- return [...this.__properties__];
111
- }
112
-
113
- getKeys(...tags: string[]): string[] {
114
- const keys = [];
115
- for (const key of this.keys) {
116
- const property = this.getProperty(key);
117
- if (property.hasLabels(tags)) {
118
- keys.push(key);
119
- }
120
- }
121
- return keys;
122
- }
123
-
124
- setData(data: IScopeData) {
125
- const properties = this.getProperties();
126
- for (const key in data) {
127
- if (properties.indexOf(key) > -1) {
128
- this[key] = data[key];
129
- }
130
- }
131
- }
132
-
133
- getData(...tags: string[]): IScopeData {
134
- const data: IScopeData = {};
135
- propLoop: for (const key of this.getProperties()) {
136
- const property = this['__'+key];
137
- for (const tag of tags) {
138
- if (!property.hasLabel(tag))
139
- continue propLoop;
140
- }
141
-
142
- if(this[key] == null || !property)
143
- continue;
144
-
145
- data[key] = property.clean();
146
- }
147
- return data;
148
- }
149
-
150
- public get(key: string) {
151
- return this[key];
152
- }
153
-
154
- public set(key: string, value: any) {
155
- this[key] = value;
156
- }
157
-
158
- getProperties(): string[] {
159
- return this.__properties__;
160
- }
161
-
162
- getProperty(name: string, create: boolean = false): Property {
163
- let property = this['__'+name];
164
- if (create && !property) {
165
- property = this.createProperty(name);
166
- }
167
- return property;
168
- }
169
-
170
- bindToProperties(event:string, properties:string[], callback: (...args: any[]) => any) {
171
- for(const name of properties) {
172
- const _property = this['__'+ name];
173
- if(_property)
174
- _property.on(event, callback);
175
-
176
- }
177
- }
178
-
179
- setLastData() {
180
- this._lastData = this.getData();
181
- }
182
-
183
- /*
184
- * Revert data to the last setData() call. Useful for forms that edit a
185
- * list of items and then hit cancel rather than saving the list.
186
- */
187
- revert() {
188
- this.setData(this._lastData);
189
- }
190
-
191
- isModified() {
192
- const oData = this._lastData,
193
- nData = this.getData();
194
- for(const key of this.getProperties()) {
195
- if(nData[key] != oData[key])
196
- return true;
197
- }
198
- return false;
199
- }
200
- }
@@ -1,3 +0,0 @@
1
- import {ScopeData} from "./ScopeData";
2
-
3
- export class ScopeObject extends ScopeData {}
@@ -1,30 +0,0 @@
1
- import {Scope} from "../Scope";
2
-
3
-
4
- export class ScopeReference {
5
- private _scope: Scope;
6
- private _key: string;
7
- private _value: any;
8
-
9
- constructor(
10
- scope: Scope = null,
11
- key: string = null,
12
- value: any = null
13
- ) {
14
- this._scope = scope;
15
- this._key = key;
16
- this._value = value;
17
- }
18
-
19
- public async getScope() {
20
- return this._scope;
21
- }
22
-
23
- public async getKey() {
24
- return this._key;
25
- }
26
-
27
- public async getValue() {
28
- return this._value;
29
- }
30
- }
@@ -1,7 +0,0 @@
1
-
2
- export class ScopeVariableType {
3
- public static readonly Integer: string = 'integer';
4
- public static readonly Float: string = 'float';
5
- public static readonly Boolean: string = 'boolean';
6
- public static readonly String: string = 'string';
7
- }
@@ -1,134 +0,0 @@
1
- import {EventDispatcher, EventDispatcherCallback} from "../EventDispatcher";
2
-
3
- export class WrappedArray<T> extends Array<T> {
4
- public readonly dispatcher: EventDispatcher;
5
- public readonly $wrapped: boolean = true;
6
-
7
- constructor(...items: T[]) {
8
- super(...items);
9
- Object.setPrototypeOf(this, WrappedArray.prototype);
10
- this.dispatcher = new EventDispatcher();
11
- }
12
-
13
- dispatch(event: string, ...args: any[]) {
14
- this.dispatcher.dispatch(event, ...args);
15
- }
16
-
17
- on(event: string, callback: EventDispatcherCallback, ctx?: any) {
18
- this.dispatcher.on(event, callback, ctx);
19
- }
20
-
21
- off(event: string, key?: number) {
22
- this.dispatcher.off(event, key);
23
- }
24
-
25
- once(event: string, callback: EventDispatcherCallback) {
26
- this.dispatcher.once(event, callback);
27
- }
28
-
29
- push(...items: T[]): number {
30
- const num: number = super.push(...items);
31
-
32
- this.dispatch('push', ...items);
33
- this.dispatch('change', {
34
- 'added': items
35
- });
36
- for (const item of items) {
37
- this.dispatch('add', item);
38
- }
39
- return num;
40
- }
41
-
42
- remove(item: T): boolean {
43
- const index: number = this.indexOf(item);
44
- if (index === -1) {
45
- return false;
46
- }
47
- this.splice(index, 1);
48
- return true;
49
- }
50
-
51
- pop(): T {
52
- const item: T = super.pop();
53
- this.dispatch('pop', item);
54
- this.dispatch('change', {
55
- 'removed': [item]
56
- });
57
- this.dispatch('remove', item);
58
- return item;
59
- }
60
-
61
- shift(): T {
62
- const item: T = super.shift();
63
- this.dispatch('shift', item);
64
- this.dispatch('change', {
65
- 'removed': [item]
66
- });
67
- this.dispatch('remove', item);
68
- return item;
69
- }
70
-
71
- splice(start: number, deleteCount?: number): T[] {
72
- const removed: T[] = super.splice(start, deleteCount);
73
-
74
- this.dispatch('change', {
75
- 'removed': removed
76
- });
77
- for (const item of removed) {
78
- this.dispatch('remove', item);
79
- }
80
-
81
- return removed;
82
- }
83
-
84
- concat(...items: any[]): T[] {
85
- const concat: T[] = super.concat(...items);
86
-
87
- this.dispatch('change', {
88
- 'added': concat
89
- });
90
- for (const item of concat) {
91
- this.dispatch('add', item);
92
- }
93
- return concat;
94
- }
95
-
96
- filter(callback: (value: T, index: number, array: T[]) => boolean, thisArg?: any): T[] {
97
- const filtered: T[] = super.filter(callback, thisArg);
98
- return new WrappedArray(...filtered);
99
- }
100
-
101
- get(key: string) {
102
- const keys: string[] = [
103
- 'length'
104
- ];
105
- return keys.indexOf(key) > -1 ? this[key] : undefined;
106
- }
107
-
108
- get length(): number {
109
- let c: number = 0;
110
- for (const item of this) {
111
- c += 1;
112
- }
113
- return c;
114
- }
115
-
116
- set length(num: number) {
117
- this.setLength(num);
118
- }
119
-
120
- setLength(num: number) {
121
- let c: number = 0;
122
- const toRemove: T[] = [];
123
- for (const item of this) {
124
- c += 1;
125
- if (c >= num) {
126
- toRemove.push(item);
127
- }
128
- }
129
-
130
- for (const item of toRemove) {
131
- this.splice(this.indexOf(item), 1);
132
- }
133
- }
134
- }
@@ -1,46 +0,0 @@
1
- import {IPropertyConfig, Property} from "./Property";
2
- import {WrappedArray} from "../WrappedArray";
3
-
4
- export class ArrayProperty<T = any> extends Property<WrappedArray<T>> {
5
- _value: WrappedArray<T>;
6
- allKey: number;
7
-
8
- constructor(value?: any, config?: IPropertyConfig) {
9
- super(new WrappedArray<any>(), config);
10
- this.allKey = this._value.dispatcher.all(this.relayEvent.bind(this), this);
11
- if (value !== undefined) {
12
- this.value = value;
13
- }
14
- }
15
-
16
- deconstruct() {
17
- this._value.dispatcher.none(this.allKey);
18
- super.deconstruct();
19
- }
20
-
21
- relayEvent(event, ...args) {
22
- this.dispatch('change', ...args);
23
- }
24
-
25
- set value(v: any) {
26
- if (!(v instanceof Array))
27
- v = [v];
28
-
29
- if (this._value instanceof WrappedArray) {
30
- this._value.splice(0, this._value.length);
31
-
32
- for (let i = 0; i < v.length; i++)
33
- this._value.push(v[i]);
34
- } else if (v instanceof WrappedArray) {
35
- this._value = v;
36
- }
37
- }
38
-
39
- get value() {
40
- return this._value;
41
- }
42
-
43
- clean() {
44
- return Array.from(this._value);
45
- }
46
- }
@@ -1,5 +0,0 @@
1
- import {Property} from "./Property";
2
-
3
- export class FloatProperty extends Property {
4
- _type: string = 'float';
5
- }
@@ -1,5 +0,0 @@
1
- import {Property} from "./Property";
2
-
3
- export class IntegerProperty extends Property {
4
- _type: string = 'integer';
5
- }
@@ -1,173 +0,0 @@
1
- import {EventDispatcher} from "../../EventDispatcher";
2
- import {Registry} from "../../Registry";
3
-
4
- export function property(propertyType = Property, config: {} | null = {}) {
5
- return function(target: any, key: string) {
6
- if(target.__properties__ == undefined) {
7
- target.__properties__ = [];
8
- }
9
-
10
- // Abstract/extended classes share __properties__
11
- if(target.__properties__.indexOf(key) == -1)
12
- target.__properties__.push(key);
13
-
14
- const getter = function() {
15
- return [propertyType, config];
16
- };
17
-
18
- Object.defineProperty(target, '__'+key+'__', {
19
- get: getter,
20
- set: v => {},
21
- enumerable:false,
22
- configurable: true
23
- });
24
- }
25
- }
26
-
27
- export function method(config: {} | null = {}) {
28
- return function(target: any, key: string) {
29
- if(target.__methods__ == undefined) {
30
- target.__methods__ = [];
31
- }
32
-
33
- // Abstract/extended classes share __properties__
34
- if(target.__methods__.indexOf(key) == -1)
35
- target.__methods__.push(key);
36
-
37
- const getter = function() {
38
- return config;
39
- };
40
-
41
- Object.defineProperty(target, '__'+key+'__', {
42
- get: getter,
43
- set: v => {},
44
- enumerable:false,
45
- configurable: true
46
- });
47
- }
48
- }
49
-
50
- export type TValidator = (value: any) => string[];
51
-
52
- export interface IPropertyConfig {
53
- type?: string;
54
- default?: any;
55
- validators?: TValidator[];
56
- labels?: string[];
57
- }
58
-
59
- export class Property<T = any> extends EventDispatcher {
60
- _type: string = 'any';
61
- _value: T;
62
- config: IPropertyConfig;
63
-
64
- constructor(value?: T, config?: IPropertyConfig) {
65
- super();
66
- this.config = config;
67
- if (!this.config.labels)
68
- this.config.labels = [];
69
- if (!this.config.validators)
70
- this.config.validators = [];
71
- this.type = config.type || 'any';
72
- this.value = value;
73
- }
74
-
75
- deconstruct() {
76
- super.deconstruct();
77
- delete this._type;
78
- delete this._value;
79
- this.config = {};
80
- }
81
-
82
- castType(value) {
83
- const caster = Registry.instance.types.getSynchronous(this.type);
84
- return caster ? caster(value) : value;
85
- }
86
-
87
- set value(v:any) {
88
- const oldValue = this._value;
89
- this._value = this.castType(v);
90
- if (this._value !== oldValue) {
91
- this.dispatch('change', {
92
- oldValue:oldValue,
93
- value:v
94
- });
95
- }
96
- }
97
-
98
- get value() {
99
- return this._value;
100
- }
101
-
102
- clean() {
103
- return this.value;
104
- }
105
-
106
- set type(type: string) {
107
- if (this._type != type) {
108
- this._type = type;
109
- this.value = this.value; // Need to reset value to have it cast to the new type
110
- }
111
- }
112
-
113
- get type(): string {
114
- return this._type;
115
- }
116
-
117
- validate() {
118
- const errors = [];
119
- for(const validator of this.config.validators || []) {
120
- errors.concat(validator(this.value));
121
- }
122
-
123
- return errors;
124
- }
125
-
126
- getValidator(id: string) {
127
- const validator = Registry.instance.validators.getSynchronous(id) as TValidator;
128
- if (!validator)
129
- throw new Error(`Invalid validator ${id}`);
130
- return validator;
131
- }
132
-
133
- addValidator(validator: TValidator | string) {
134
- if (typeof validator == 'string') {
135
- validator = this.getValidator(validator);
136
- }
137
-
138
- if (this.config.validators.indexOf(validator) == -1)
139
- this.config.validators.push(validator);
140
- }
141
-
142
- addLabel(label: string) {
143
- if(this.config.labels == undefined) {
144
- this.config.labels = [];
145
- }
146
- if(this.config.labels.indexOf(label) == -1) {
147
- this.config.labels.push(label);
148
- }
149
- }
150
-
151
- removeLabel(label: string) {
152
- if(this.config.labels == undefined) {
153
- return;
154
- }
155
- const index = this.config.labels.indexOf(label);
156
- if(index != -1) {
157
- this.config.labels.splice(index, 1);
158
- }
159
- }
160
-
161
- hasLabel(label: string) {
162
- return this.config.labels.indexOf(label) !== -1;
163
- }
164
-
165
- hasLabels(labels: string[]) {
166
- for(const label of labels) {
167
- if(!this.hasLabel(label)) {
168
- return false;
169
- }
170
- }
171
- return true;
172
- }
173
- }
@@ -1,4 +0,0 @@
1
- export {Property, property, IPropertyConfig} from './Property';
2
- export {ArrayProperty} from './ArrayProperty';
3
- export {IntegerProperty} from './IntegerProperty';
4
- export {FloatProperty} from './FloatProperty';