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
package/src/Types.ts DELETED
@@ -1,34 +0,0 @@
1
- import {Registry} from "./Registry";
2
-
3
- export class Types {
4
- @Registry.type('any')
5
- public static any(value: any): any {
6
- return value as any;
7
- }
8
-
9
- @Registry.type('string')
10
- public static string(value: string) {
11
- return `${value}`;
12
- }
13
-
14
- @Registry.type('integer')
15
- public static integer(value: string) {
16
- return parseInt(value);
17
- }
18
-
19
- @Registry.type('float')
20
- public static float(value: string) {
21
- value = `${value}`.replace(/[^\d.]+/, '');
22
- return parseFloat(value);
23
- }
24
-
25
- @Registry.type('boolean')
26
- public static boolean(value: string) {
27
- return [0, '0', false, 'false', ''].indexOf(value) === -1;
28
- }
29
-
30
- @Registry.type('date')
31
- public static date(value: string) {
32
- return new Date(Date.parse(value));
33
- }
34
- }
package/src/Validators.ts DELETED
@@ -1,45 +0,0 @@
1
- import {Registry} from "./Registry";
2
-
3
- export class Validators {
4
- public static readonly _emailRegex = /^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i;
5
-
6
- @Registry.validator('email')
7
- public static email(value: any): string[] {
8
- const errors: string[] = [];
9
-
10
- if(value != null && !this._emailRegex.test(value))
11
- errors.push('Please enter a valid email address');
12
-
13
- return errors;
14
- }
15
-
16
- @Registry.validator('required')
17
- public static required(value: any): string[] {
18
- const errors: string[] = [];
19
-
20
- if(value == null || value.length == 0)
21
- errors.push('This field is required');
22
-
23
- return errors;
24
- }
25
-
26
- @Registry.validator('positive')
27
- public static positive(value: any): string[] {
28
- const errors: string[] = [];
29
-
30
- if(value != null && value < 0)
31
- errors.push('Please enter a positive number');
32
-
33
- return errors;
34
- }
35
-
36
- @Registry.validator('negative')
37
- public static negative(value: any): string[] {
38
- const errors: string[] = [];
39
-
40
- if(value != null && value > 0)
41
- errors.push('Please enter a negative number');
42
-
43
- return errors;
44
- }
45
- }
@@ -1,14 +0,0 @@
1
- import {If} from "./If";
2
- import {Registry} from "../Registry";
3
-
4
- @Registry.attribute('vsn-add-class-if')
5
- export class AddClassIf extends If {
6
- async onChange() {
7
- const result: boolean = await this.tree.evaluate(this.tag.scope, this.tag.dom, this.tag);
8
- if (result) {
9
- this.tag.element.classList.add(this.getAttributeBinding());
10
- } else {
11
- this.tag.element.classList.remove(this.getAttributeBinding());
12
- }
13
- }
14
- }
@@ -1,144 +0,0 @@
1
- import {Scope} from "../Scope";
2
- import {Attribute} from "../Attribute";
3
- import {Tree} from "../AST";
4
- import {Registry} from "../Registry";
5
- import {ScopeReference} from "../Scope/ScopeReference";
6
-
7
- @Registry.attribute('vsn-bind')
8
- export class Bind extends Attribute {
9
- public static readonly canDefer: boolean = false;
10
- protected key?: string;
11
- protected property?: string;
12
- protected direction: string = 'both';
13
- protected boundScope?: Scope;
14
- protected formatter: (v: string) => string = (v) => v;
15
-
16
- public async compile() {
17
- const tree: Tree = new Tree(this.getAttributeValue());
18
- await tree.prepare(this.tag.scope, this.tag.dom, this.tag);
19
-
20
- await super.compile();
21
- }
22
-
23
- public async setup() {
24
- this.property = this.getAttributeBinding(this.property);
25
- const mods = this.getAttributeModifiers();
26
- if (mods.length) {
27
- if (mods.indexOf('from') > -1) {
28
- this.direction = 'from';
29
- } else if (mods.indexOf('to') > -1) {
30
- this.direction = 'to';
31
- }
32
- }
33
- await super.setup();
34
- }
35
-
36
- public async connect() {
37
- let scopeKey: string = this.getAttributeValue();
38
- let ref: ScopeReference;
39
- try {
40
- ref = this.tag.scope.getReference(scopeKey);
41
- } catch (e) {
42
- console.error('error', e);
43
- return;
44
- }
45
-
46
- this.key = await ref.getKey();
47
- this.boundScope = await ref.getScope();
48
- if (!!this.valueFromElement)
49
- this.updateFrom();
50
-
51
- if (this.doUpdateTo) {
52
- this.updateTo();
53
- this.boundScope.on(`change:${this.key}`, this.updateTo, this);
54
- }
55
- await super.connect();
56
- }
57
-
58
- public async disconnect() {
59
- this.boundScope.offWithContext(`change:${this.key}`, this);
60
- await super.disconnect();
61
- }
62
-
63
- public async evaluate() {
64
- const elementValue = this.valueFromElement;
65
- if (!!elementValue)
66
- this.updateFrom();
67
- this.updateTo();
68
- await super.evaluate();
69
- }
70
-
71
- public set value(v: any) {
72
- if (this.boundScope) {
73
- this.boundScope.set(this.key, v);
74
- }
75
- }
76
-
77
- public get value(): any {
78
- if (!this.boundScope) return null;
79
- return this.boundScope.get(this.key, false);
80
- }
81
-
82
- get valueFromElement(): string {
83
- let value;
84
-
85
- if (this.property) {
86
- value = this.tag.getElementAttribute(this.property);
87
- } else {
88
- value = this.tag.value;
89
- }
90
- return value;
91
- }
92
-
93
- public mutate(mutation: MutationRecord) {
94
- super.mutate(mutation);
95
- if (!this.doUpdateFrom) return;
96
-
97
- // Element innerText binding
98
- if (!this.property && [
99
- 'characterData',
100
- 'childList'
101
- ].indexOf(mutation.type) > -1)
102
- this.updateFrom();
103
- // Input value binding
104
- else if (!this.property && mutation.type == 'attributes' && mutation.attributeName === 'value')
105
- this.updateFrom();
106
- // Attribute binding
107
- else if (mutation.type === 'attributes' && mutation.attributeName == this.property)
108
- this.updateFrom();
109
- }
110
-
111
- public get doUpdateFrom(): boolean {
112
- return ['both', 'to'].indexOf(this.direction) > -1;
113
- }
114
-
115
- updateFrom() {
116
- if (!this.doUpdateFrom) return;
117
- let valueFromElement = this.valueFromElement;
118
- valueFromElement = typeof valueFromElement === 'string' && valueFromElement.trim() || valueFromElement;
119
- let valueFromScope = this.value;
120
- valueFromScope = typeof valueFromScope === 'string' && valueFromScope.trim() || valueFromScope;
121
- valueFromScope = this.formatter(valueFromScope); // Apply format for comparison
122
-
123
- if (!valueFromScope || valueFromElement != valueFromScope)
124
- this.value = valueFromElement;
125
- }
126
-
127
- public get doUpdateTo(): boolean {
128
- return ['both', 'from'].indexOf(this.direction) > -1;
129
- }
130
-
131
- updateTo() {
132
- if (!this.doUpdateTo) return;
133
- const value = this.formatter(this.value);
134
- if (this.property) {
135
- this.tag.setElementAttribute(this.property, value);
136
- } else {
137
- this.tag.value = value;
138
- }
139
- }
140
-
141
- setFormatter(formatter) {
142
- this.formatter = formatter;
143
- }
144
- }
@@ -1,23 +0,0 @@
1
- import {Registry} from "../Registry";
2
- import {TemplateAttribute} from "./TemplateAttribute";
3
- import {Component} from "../Component";
4
-
5
- @Registry.attribute('vsn-component')
6
- export class ComponentAttribute extends TemplateAttribute {
7
- public static readonly scoped: boolean = true;
8
-
9
- public async extract() {
10
- const name = this.getAttributeBinding();
11
- if (!Registry.instance.tags.has(name)) {
12
- await super.extract();
13
- const clsName = this.getAttributeValue();
14
- let cls;
15
- if (clsName) {
16
- cls = await Registry.instance.components.get(clsName);
17
- }
18
- if (!cls)
19
- cls = class extends Component {};
20
- Registry.instance.tags.register(name, cls);
21
- }
22
- }
23
- }
@@ -1,50 +0,0 @@
1
- import {Scope} from "../Scope";
2
- import {Attribute} from "../Attribute";
3
- import {Registry} from "../Registry";
4
- import {Controller} from "../Controller";
5
- import {Service} from "../Service";
6
-
7
- @Registry.attribute('vsn-controller')
8
- export class ControllerAttribute extends Attribute {
9
- public static readonly canDefer: boolean = false;
10
- public static readonly scoped: boolean = true;
11
- public readonly registryName: string = 'controllers'
12
- protected attributeKey: string;
13
- protected className: string;
14
- protected defaultClassName: string;
15
-
16
- public async setup() {
17
- this.attributeKey = this.getAttributeBinding();
18
- this.className = this.getAttributeValue(this.defaultClassName);
19
- const cls = await Registry.instance[this.registryName].get(this.className);
20
-
21
- if (this.attributeKey) {
22
- let clsScope: Scope;
23
- // Singleton?
24
- if (cls['instance'] instanceof cls) {
25
- clsScope = cls['instance'].scope;
26
- if (cls['instance'] instanceof Service) {
27
- this.tag.dom.root.scope.addChild(clsScope);
28
- this.tag.dom.root.scope.set(this.attributeKey, clsScope);
29
- }
30
- } else {
31
- clsScope = new Scope(this.tag.scope);
32
- const obj = new cls();
33
- if (obj instanceof Controller) {
34
- obj.init(this.tag.scope, this.tag, this.tag.element);
35
- }
36
- clsScope.wrap(obj);
37
- }
38
-
39
- this.tag.scope.set(this.attributeKey, clsScope);
40
- } else {
41
- this.instantiateClass(cls);
42
- }
43
- await super.setup();
44
- }
45
-
46
- protected instantiateClass(cls): any {
47
- this.tag.wrap(cls);
48
- return this.tag.scope;
49
- }
50
- }
@@ -1,16 +0,0 @@
1
- import {If} from "./If";
2
- import {Registry} from "../Registry";
3
-
4
- @Registry.attribute('vsn-disable-if')
5
- export class DisableIf extends If {
6
- public static readonly canDefer: boolean = false;
7
-
8
- async onChange() {
9
- const result: boolean = await this.tree.evaluate(this.tag.scope, this.tag.dom, this.tag);
10
- if (result) {
11
- this.tag.element.setAttribute('disabled', 'disabled');
12
- } else {
13
- this.tag.element.removeAttribute('disabled')
14
- }
15
- }
16
- }
@@ -1,32 +0,0 @@
1
- import {Attribute} from "../Attribute";
2
- import {Tree} from "../AST";
3
- import {Registry} from "../Registry";
4
-
5
- @Registry.attribute('vsn-exec')
6
- export class Exec extends Attribute {
7
- public static readonly canDefer: boolean = false;
8
- protected tree: Tree;
9
-
10
- public get code() {
11
- return this.getAttributeValue();
12
- }
13
-
14
- public async compile() {
15
- this.tree = new Tree(this.code);
16
- await this.tree.prepare(this.tag.scope, this.tag.dom, this.tag);
17
- await super.compile();
18
- }
19
-
20
- public async extract() {
21
- if (this.hasModifier('defer')) {
22
- this.tag.dom.once('built', () => this.execute());
23
- } else {
24
- await this.execute();
25
- }
26
- await super.extract();
27
- }
28
-
29
- public async execute() {
30
- await this.tree.evaluate(this.tag.scope, this.tag.dom, this.tag);
31
- }
32
- }
@@ -1,18 +0,0 @@
1
- import {Attribute} from "../Attribute";
2
- import {Registry} from "../Registry";
3
- import {Bind} from "./Bind";
4
-
5
- @Registry.attribute('vsn-format')
6
- export class Format extends Attribute {
7
- public static readonly canDefer: boolean = false;
8
-
9
- public async extract() {
10
- const value = this.getAttributeValue(null);
11
- const attribute = this.getAttributeBinding(null);
12
- const formatter = await Registry.instance.formats.get(value);
13
- const bindingKey = attribute ? `vsn-bind:${attribute}` : 'vsn-bind';
14
- const binding: Bind = await this.tag.getAttribute<Bind>(bindingKey);
15
- binding.setFormatter(formatter);
16
- await super.extract();
17
- }
18
- }
@@ -1,40 +0,0 @@
1
- import {Attribute} from "../Attribute";
2
- import {Tree} from "../AST";
3
- import {Registry} from "../Registry";
4
-
5
- @Registry.attribute('vsn-if')
6
- export class If extends Attribute {
7
- public static readonly canDefer: boolean = false;
8
- protected tree: Tree;
9
-
10
- public async compile() {
11
- const statement: string = this.getAttributeValue();
12
- this.tree = new Tree(statement);
13
- await this.tree.prepare(this.tag.scope, this.tag.dom, this.tag);
14
- await super.compile();
15
- }
16
-
17
- public async extract() {
18
- await this.evaluate();
19
- await super.extract();
20
- }
21
-
22
- public async connect() {
23
- await this.tree.bindToScopeChanges(this.tag.scope, this.onChange.bind(this), this.tag.dom, this.tag);
24
- await super.connect();
25
- }
26
-
27
- public async evaluate() {
28
- await this.onChange();
29
- await super.evaluate();
30
- }
31
-
32
- async onChange() {
33
- const result: boolean = await this.tree.evaluate(this.tag.scope, this.tag.dom, this.tag);
34
- if (result) {
35
- this.tag.show();
36
- } else {
37
- this.tag.hide();
38
- }
39
- }
40
- }
@@ -1,40 +0,0 @@
1
- import {Registry} from "../Registry";
2
- import {Attribute} from "../Attribute";
3
- import {Scope} from "../Scope";
4
- import {ScopeReference} from "../Scope/ScopeReference";
5
-
6
- @Registry.attribute('vsn-json')
7
- export class JSONAttribute extends Attribute {
8
- public static readonly canDefer: boolean = false;
9
-
10
- public async extract() {
11
- let scopeKey: string = this.getAttributeBinding();
12
- let ref: ScopeReference;
13
- try {
14
- ref = this.tag.scope.getReference(scopeKey);
15
- } catch (e) {
16
- console.error('error', e);
17
- return;
18
- }
19
-
20
- const key = await ref.getKey();
21
- const scope = await ref.getScope();
22
-
23
- let json;
24
- if (this.tag.element.tagName.toLowerCase() === 'script') {
25
- json = this.tag.element.innerText;
26
- } else {
27
- json = unescape(this.getAttributeValue());
28
- }
29
- const data = JSON.parse(json);
30
-
31
- if (data && typeof data === 'object' && data.constructor === Object) {
32
- const newScope = new Scope(scope);
33
- newScope.wrap(data);
34
- scope.set(key, newScope);
35
- } else {
36
- scope.set(key, data);
37
- }
38
- await super.extract();
39
- }
40
- }
@@ -1,28 +0,0 @@
1
- import {On} from "./On";
2
-
3
- export abstract class KeyAbstract extends On {
4
- protected specificKey: string = null;
5
-
6
- public async compile() {
7
- this.specificKey = this.getAttributeBinding();
8
- await super.compile();
9
- }
10
-
11
- public async connect() {
12
- this.tag.addEventHandler('keydown', this.modifiers, this.handleEvent, this);
13
- await super.connect();
14
- }
15
-
16
- public async handleEvent(e) {
17
- let triggerEvent: boolean = false;
18
-
19
- if ([undefined, null, ''].indexOf(this.specificKey) === -1) {
20
- if (e.key.toLowerCase() === this.specificKey || e.code.toLowerCase() === this.specificKey)
21
- triggerEvent = true;
22
- } else
23
- triggerEvent = true;
24
-
25
- if (triggerEvent)
26
- await super.handleEvent(e);
27
- }
28
- }
@@ -1,10 +0,0 @@
1
- import {KeyAbstract} from "./KeyAbstract";
2
- import {Registry} from "../Registry";
3
-
4
- @Registry.attribute('vsn-key-down')
5
- export class KeyDown extends KeyAbstract {
6
- public async connect() {
7
- this.tag.addEventHandler('keydown', this.modifiers, this.handleEvent, this);
8
- await super.connect();
9
- }
10
- }
@@ -1,10 +0,0 @@
1
- import {KeyAbstract} from "./KeyAbstract";
2
- import {Registry} from "../Registry";
3
-
4
- @Registry.attribute('vsn-key-up')
5
- export class KeyUp extends KeyAbstract {
6
- public async connect() {
7
- this.tag.addEventHandler('keyup', this.modifiers, this.handleEvent, this);
8
- await super.connect();
9
- }
10
- }
@@ -1,30 +0,0 @@
1
- import {Registry} from "../Registry";
2
- import {On} from "./On";
3
- import {Modifiers} from "../Modifiers";
4
-
5
- @Registry.attribute('vsn-lazy')
6
- export class LazyAttribute extends On {
7
- private loaded: boolean = false;
8
- private eleTop: number;
9
-
10
- public async setup() {
11
- await super.setup();
12
- this.eleTop = this.tag.element.getBoundingClientRect().top;
13
- }
14
-
15
- public async connect() {
16
- if (!this.modifiers.has('active'))
17
- this.modifiers.add('passive');
18
-
19
- this.tag.addEventHandler('scroll', this.modifiers, this.handleEvent, this);
20
- await this.handleEvent();
21
- }
22
-
23
- async handleEvent(e?: Event) {
24
- if (!this.loaded && window.scrollY + window.outerHeight >= this.eleTop) {
25
- this.loaded = true;
26
- await super.handleEvent(e);
27
- this.tag.removeEventHandler('scroll', this.handleEvent, this);
28
- }
29
- }
30
- }