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,465 +0,0 @@
1
- import {Tag, TagState} from "../Tag";
2
- import {WrappedWindow} from "./WrappedWindow";
3
- import {WrappedDocument} from "./WrappedDocument";
4
- import {Configuration} from "../Configuration";
5
- import {TagList} from "../Tag/TagList";
6
- import {Tree} from "../AST";
7
- import {ClassNode} from "../AST/ClassNode";
8
- import {Registry} from "../Registry";
9
- import {ElementHelper} from "../helpers/ElementHelper";
10
- import {SlotTag} from "../Tag/SlotTag";
11
- import {SlottedTag} from "../Tag/SlottedTag";
12
- import {Scope} from "../Scope";
13
- import {EventDispatcher} from "../EventDispatcher";
14
- import {VisionHelper} from "../helpers/VisionHelper";
15
-
16
- export enum EQuerySelectDirection {
17
- ALL,
18
- UP,
19
- DOWN
20
- }
21
-
22
- export abstract class AbstractDOM extends EventDispatcher {
23
- protected _root: Tag;
24
- protected _ready: Promise<boolean>;
25
- protected tags: Tag[];
26
- protected tagsToDeconstruct: Tag[];
27
- protected scopesToDeconstruct: Scope[];
28
- protected observer: MutationObserver;
29
- protected evaluateTimeout: any;
30
- protected queued: HTMLElement[] = [];
31
- protected window: WrappedWindow;
32
- protected document: WrappedDocument;
33
- protected _built: boolean = false;
34
-
35
- constructor(
36
- protected rootElement: HTMLElement,
37
- build: boolean = true,
38
- protected debug: boolean = false
39
- ) {
40
- super();
41
- this._ready = new Promise((resolve) => {
42
- this.once('built', () => {
43
- resolve(true);
44
- });
45
- });
46
-
47
- this.observer = new MutationObserver(this.mutation.bind(this));
48
- this.tags = [];
49
- this.tagsToDeconstruct = [];
50
- this.scopesToDeconstruct = [];
51
-
52
- this.window = new WrappedWindow(window);
53
- this.document = new WrappedDocument(window.document);
54
-
55
- if (build) {
56
- this.buildFrom(rootElement, true);
57
- }
58
- this.evaluate();
59
- Configuration.instance.on('change', this.evaluate.bind(this));
60
- }
61
-
62
- public get built(): boolean {
63
- return this._built;
64
- }
65
-
66
- public get root(): Tag {
67
- return this._root;
68
- }
69
-
70
- public get ready(): Promise<boolean> {
71
- return this.promise('builtRoot');
72
- }
73
-
74
- public async get(selector: string, create: boolean = false, tag: Tag = null, direction: EQuerySelectDirection = EQuerySelectDirection.DOWN): Promise<TagList> {
75
- switch (selector) {
76
- case 'window':
77
- return new TagList(this.window);
78
- case 'document':
79
- return new TagList(this.document);
80
- case 'body':
81
- return new TagList(this.root);
82
- default:
83
- let nodes;
84
- if (direction === EQuerySelectDirection.DOWN) {
85
- nodes = this.querySelectorAll(selector, tag);
86
- } else if (direction === EQuerySelectDirection.UP) {
87
- nodes = [this.querySelectorClosest(selector, tag)];
88
- } else {
89
- nodes = this.querySelectorAll(selector);
90
- }
91
- return await this.getTagsForElements(Array.from(nodes) as Element[], create);
92
- }
93
- }
94
-
95
- public async getFromTag(tag: Tag, selector: string, create: boolean = false) {
96
- const nodes = this.querySelectorElement(tag.element, selector);
97
- return await this.getTagsForElements(Array.from(nodes) as Element[], create);
98
- }
99
-
100
- public registerElementInRoot(tag: Tag): void {
101
- const id: string = tag.element.getAttribute('id');
102
- if (!!id)
103
- this.root.scope.set(`#${id}`, tag.scope);
104
- }
105
-
106
- public deregisterElementInRoot(tag: Tag) {
107
- if (!tag.element || !this.root) return;
108
- const id: string = tag.element.getAttribute('id');
109
- if (!!id)
110
- this.root.scope.remove(`#${id}`);
111
- }
112
-
113
- public querySelectorClosest(q: string, tag: Tag = null): HTMLElement {
114
- return tag.element.closest(q);
115
- }
116
-
117
- public querySelectPath(path: string[], element: HTMLElement = null): HTMLElement[] {
118
- const current = path.shift();
119
- if (!current) return [];
120
- const elements = Array.from(element ? this.querySelectorElement(element, current) : this.querySelectorAll(current));
121
- if (path.length > 0) {
122
- const result = [];
123
- for (const _element of elements) {
124
- result.push(...this.querySelectPath([...path], _element as HTMLElement));
125
- }
126
- return result;
127
- }
128
-
129
- return elements as HTMLElement[];
130
- }
131
-
132
- public querySelectorAll(q: string, tag: Tag = null): NodeList | HTMLElement[] {
133
- const element: HTMLElement | Document = tag && !q.startsWith('#') ? tag.element : this.rootElement;
134
- return this.querySelectorElement(element, q);
135
- }
136
-
137
- public querySelectorElement(element: HTMLElement | Document, q: string): NodeList | HTMLElement[] {
138
- const parentIndex: number = q.indexOf(':parent');
139
- if (parentIndex > -1) {
140
- const _q = q.substring(0, parentIndex);
141
- const rest = q.substring(parentIndex + 7);
142
- if (_q.length > 0) {
143
- const nodeList = [];
144
- for (const _element of Array.from(this.querySelectorElement(element, _q))) {
145
- if (rest.length > 0) {
146
- nodeList.push(...Array.from(this.querySelectorElement(AbstractDOM.getParentElement(_element as HTMLElement), rest)));
147
- } else {
148
- nodeList.push(AbstractDOM.getParentElement(_element as HTMLElement));
149
- }
150
- }
151
- return nodeList;
152
- } else if (rest.length === 0) {
153
- return [AbstractDOM.getParentElement(element as HTMLElement)];
154
- } else {
155
- return this.querySelectorElement(AbstractDOM.getParentElement(element as HTMLElement), rest);
156
- }
157
- }
158
- let matches = element.querySelectorAll(q);
159
-
160
- if (matches.length === 0 && (element as HTMLElement).shadowRoot) {
161
- matches = (element as HTMLElement).shadowRoot.querySelectorAll(q);
162
- }
163
- return matches;
164
- }
165
-
166
- public querySelector(q: string): Element {
167
- return this.rootElement.querySelector(q);
168
- }
169
-
170
- public async exec(code: string, data: object = null, cleanupScope: boolean = false) {
171
- let scope = this.root.scope;
172
- if (data !== null) {
173
- if (data instanceof Scope) {
174
- scope = data
175
- } else {
176
- scope = new Scope();
177
- scope.wrap(data);
178
- cleanupScope = true;
179
- }
180
- }
181
- const tree = new Tree(code);
182
- await tree.prepare(scope, this);
183
- if (cleanupScope)
184
- this.scopesToDeconstruct.push(scope);
185
- return await tree.evaluate(scope, this);
186
- }
187
-
188
- public async evaluate() {
189
- clearTimeout(this.evaluateTimeout);
190
- for (const tag of this.tags) {
191
- await tag.evaluate();
192
- }
193
- }
194
-
195
- public getTagsFromParent(parent: Node, includeParent: boolean = true) {
196
- const tags: Tag[] = [];
197
- if (includeParent && parent[Tag.TaggedVariable]) {
198
- tags.push(parent[Tag.TaggedVariable]);
199
- }
200
-
201
- for (const ele of Array.from(parent.childNodes)) {
202
- tags.push(...this.getTagsFromParent(ele, true));
203
- }
204
-
205
- return tags;
206
- }
207
-
208
- public async mutation(mutations: MutationRecord[]) {
209
- for (const mutation of mutations) {
210
- let tag: Tag = await this.getTagForElement(mutation.target as HTMLElement);
211
- if (tag) {
212
- tag.mutate(mutation);
213
- }
214
-
215
- // Check for class changes
216
- if (mutation.type === 'attributes' && mutation.attributeName === 'class') {
217
- await ClassNode.checkForClassChanges(mutation.target as HTMLElement, this, tag);
218
- }
219
-
220
- for (const ele of Array.from(mutation.removedNodes)) {
221
- for (const tag of this.getTagsFromParent(ele)) {
222
- if (tag.hasAttribute('vsn-template')) continue;
223
- this.tagsToDeconstruct.push(tag);
224
- }
225
- }
226
- }
227
- }
228
-
229
- async discover(ele: HTMLElement, forComponent: boolean = false): Promise<HTMLElement[]> {
230
- const discovered: HTMLElement[] = [];
231
- const checkElement = (e: HTMLElement): boolean => {
232
- if (!forComponent && e?.tagName?.includes('-')) {
233
- return false;
234
- }
235
-
236
- if (Registry.instance.tags.has(e?.tagName?.toLowerCase())) {
237
- return false;
238
- }
239
-
240
- if (ElementHelper.hasVisionAttribute(e)) {
241
- if (
242
- (!forComponent && e.hasAttribute('slot'))
243
- ) return false;
244
- if (this.queued.indexOf(e) > -1) return false;
245
- this.queued.push(e);
246
- discovered.push(e);
247
- }
248
-
249
- return true;
250
- }
251
- const scanChildren = (e: HTMLElement) => {
252
- for (const element of Array.from(e.children) as HTMLElement[]) {
253
- if (!checkElement(element)) continue;
254
- if (element.tagName.toLowerCase() !== 'template')
255
- scanChildren(element);
256
- }
257
- }
258
- checkElement(ele);
259
- scanChildren(ele);
260
-
261
- return discovered;
262
- }
263
-
264
- async buildTag<T extends Tag>(element: HTMLElement, returnExisting: boolean = false, cls: any = Tag): Promise<T> {
265
- if (element[Tag.TaggedVariable]) {
266
- this.removedQueued(element);
267
- return returnExisting ? element[Tag.TaggedVariable] : null;
268
- }
269
- if (element.tagName.toLowerCase() === 'slot')
270
- cls = SlotTag;
271
- else if (element.hasAttribute('slot'))
272
- cls = SlottedTag;
273
-
274
- const tag: T = new cls(element, this);
275
- this.tags.push(tag as any);
276
- tag.once('deconstruct', this.removeTag, this);
277
- return tag;
278
- }
279
-
280
- protected removeTag(tag: Tag) {
281
- const index = this.tags.indexOf(tag);
282
- if (index > -1)
283
- this.tags.splice(index, 1);
284
- }
285
-
286
- async setupTags(tags: Tag[]) {
287
- // Configure, setup & execute attributes
288
- for (const tag of tags)
289
- await tag.buildAttributes();
290
-
291
- for (const tag of tags)
292
- await tag.compileAttributes();
293
-
294
- for (const tag of tags)
295
- await tag.setupAttributes();
296
-
297
- for (const tag of tags)
298
- await tag.extractAttributes();
299
-
300
- for (const tag of tags)
301
- await tag.connectAttributes();
302
-
303
- for (const tag of tags) {
304
- await tag.finalize();
305
- this.removedQueued(tag.element)
306
- }
307
-
308
- for (const tag of tags) {
309
- this.observer.observe(tag.element, {
310
- attributes: true,
311
- characterData: true,
312
- childList: true,
313
- subtree: true
314
- });
315
- }
316
- }
317
-
318
- removedQueued(element: HTMLElement) {
319
- const index = this.queued.indexOf(element);
320
- if (index > -1)
321
- this.queued.splice(index, 1);
322
- }
323
-
324
- async buildFrom(ele: any, isRoot: boolean = false, forComponent: boolean = false): Promise<Tag[]> {
325
- if (isRoot) {
326
- this.rootElement.setAttribute('vsn-root', '');
327
- this._root = await this.buildTag(this.rootElement, true);
328
- this._root.createScope(true);
329
- await this.setupTags([this._root]);
330
- }
331
-
332
- // Setup components first
333
- const templateNodes = this.querySelectorElement(ele, 'template');
334
- const components: Tag[] = [];
335
- for (const n of Array.from(templateNodes) as HTMLElement[]) {
336
- if (!ElementHelper.hasVisionAttribute(n))
337
- continue;
338
-
339
- const tag = await this.buildTag(n);
340
- if (tag)
341
- components.push(tag);
342
- }
343
- if (components.length)
344
- await this.setupTags(components);
345
-
346
- // Create tags for each html element with a vsn-attribute
347
- const newTags: Tag[] = [];
348
- const toBuild: HTMLElement[] = await this.discover(ele, forComponent);
349
-
350
- for (const element of toBuild) {
351
- const tag = await this.buildTag(element);
352
- if (tag)
353
- newTags.push(tag);
354
- }
355
-
356
- await this.setupTags(newTags);
357
-
358
- if (isRoot) {
359
- this._built = true;
360
- this.dispatch('builtRoot')
361
- }
362
- this.dispatch('built', newTags);
363
- return newTags;
364
- }
365
-
366
- addGarbage(garbage: Scope | Tag) {
367
- if (garbage instanceof Scope) {
368
- this.scopesToDeconstruct.push(garbage);
369
- } else if (garbage instanceof Tag) {
370
- this.tagsToDeconstruct.push(garbage);
371
- }
372
- }
373
-
374
- async cleanup() {
375
- for (const tag of this.tagsToDeconstruct) {
376
- if (tag.state !== TagState.Deconstructed)
377
- await VisionHelper.wait(0.01);
378
- tag.deconstruct();
379
- }
380
- this.tagsToDeconstruct.length = 0;
381
-
382
- for (const scope of this.scopesToDeconstruct) {
383
- scope.deconstruct();
384
- await VisionHelper.wait(0.01);
385
- }
386
- this.tagsToDeconstruct.length = 0;
387
- }
388
-
389
- async getTagsForElements(elements: Element[], create: boolean = false) {
390
- const tags: TagList = new TagList();
391
- const found: Element[] = [];
392
-
393
- for (const element of elements) {
394
- if (element && element[Tag.TaggedVariable]) {
395
- tags.push(element[Tag.TaggedVariable]);
396
- found.push(element);
397
- }
398
- }
399
-
400
- if (create) {
401
- const notFound: Element[] = [...elements];
402
- for (let i = notFound.length; i >= 0; i--) {
403
- const element: Element = notFound[i];
404
- if (found.indexOf(element) > -1) {
405
- notFound.splice(i, 1);
406
- }
407
- }
408
-
409
- for (const element of notFound) {
410
- tags.push(await this.getTagForElement(element, create));
411
- }
412
- }
413
-
414
- return tags;
415
- }
416
-
417
- async getTagForElement(element: Element, create: boolean = false, forComponent: boolean = false) {
418
- if (element && element[Tag.TaggedVariable])
419
- return element[Tag.TaggedVariable];
420
-
421
- if (element && create) {
422
- if (element instanceof HTMLElement)
423
- element.setAttribute('vsn-ref', '');
424
- await this.buildFrom(element.parentElement || element, false, forComponent);
425
- return await this.getTagForElement(element, false);
426
- }
427
-
428
- return null;
429
- }
430
-
431
- async getTagForScope(scope: Scope) {
432
- for (const tag of this.tags) {
433
- if (tag.uniqueScope && tag.scope === scope)
434
- return tag;
435
- }
436
-
437
- return null;
438
- }
439
-
440
- public async resetBranch(e: Tag | HTMLElement) {
441
- if (e instanceof Tag)
442
- e = e.element;
443
-
444
- const tag: Tag = e[Tag.TaggedVariable];
445
- if (tag) {
446
- tag.findParentTag();
447
- }
448
-
449
- const children = Array.from(e.children) as HTMLElement[]
450
- for (const t of children) {
451
- await this.resetBranch(t);
452
- }
453
- }
454
-
455
- public static getParentElement(element: HTMLElement): HTMLElement {
456
- if (element.parentElement) {
457
- return element.parentElement as HTMLElement;
458
- } else if (element.assignedSlot) {
459
- return element.assignedSlot.parentElement as HTMLElement;
460
- } else if (element['shadowParent']) {
461
- return element['shadowParent'];
462
- }
463
- return null;
464
- }
465
- }
@@ -1,77 +0,0 @@
1
- import {Scope} from "../Scope";
2
- import {EventDispatcher} from "../EventDispatcher";
3
- import {Modifiers} from "../Modifiers";
4
- import {ClassNode} from "../AST/ClassNode";
5
- import {Tag} from "../Tag";
6
-
7
- export interface IEventHandler {
8
- event: string;
9
- handler: (...args: any[]) => any;
10
- context: any;
11
- state: { [key: string]: any };
12
- modifiers: Modifiers;
13
- //binding: (...args: any[]) => any;
14
- }
15
-
16
- export abstract class DOMObject extends EventDispatcher {
17
- protected _scope: Scope;
18
- protected onEventHandlers: {[key:string]: IEventHandler[]};
19
- protected onEventBindings: {[key: string]: (...args: any[]) => any};
20
- protected _uniqueScope: boolean = false;
21
- protected slot: HTMLSlotElement;
22
- public readonly delegates: HTMLElement[] = [];
23
-
24
- constructor(
25
- public readonly element: HTMLElement,
26
- props
27
- ) {
28
- super();
29
- if (this.isSlot) {
30
- this.delegates.push(...(element as HTMLSlotElement).assignedNodes() as HTMLElement[]);
31
- }
32
- if (element.assignedSlot) {
33
- this.slot = element.assignedSlot;
34
- }
35
- }
36
-
37
- public get isSlot(): boolean {
38
- return this.element instanceof HTMLSlotElement;
39
- }
40
-
41
- public get isSlotted(): boolean {
42
- return this.element.hasAttribute('slot');
43
- }
44
-
45
- public get scope(): Scope {
46
- if (!!this._scope)
47
- return this._scope;
48
-
49
- return null;
50
- }
51
-
52
- public set scope(scope: Scope) {
53
- this._scope = scope;
54
- }
55
-
56
- public async watchAttribute(attr: string): Promise<any> {
57
-
58
- }
59
-
60
- public async watchStyle(style: string): Promise<any> {
61
-
62
- }
63
-
64
- public deconstruct() {
65
- if (this._uniqueScope)
66
- this.scope?.deconstruct();
67
- this.onEventHandlers = {};
68
- this.onEventBindings = {};
69
- this.slot = null;
70
- this.delegates.length = 0;
71
- if (this.element) {
72
- this.element[Tag.TaggedVariable] = null;
73
- this.element[ClassNode.ClassesVariable] = null;
74
- }
75
- super.deconstruct();
76
- }
77
- }
@@ -1,15 +0,0 @@
1
- import {AbstractDOM} from "./AbstractDOM";
2
-
3
- export class ShadowDOM extends AbstractDOM {
4
- protected _parent: AbstractDOM;
5
-
6
- constructor(
7
- parent: AbstractDOM,
8
- rootElement: HTMLElement,
9
- build: boolean = true,
10
- debug: boolean = false
11
- ) {
12
- super(rootElement, build, debug);
13
- this._parent = parent;
14
- }
15
- }
@@ -1,9 +0,0 @@
1
- import {DOMObject} from "./DOMObject";
2
-
3
- export class WrappedDocument extends DOMObject {
4
- constructor(
5
- protected _document: Document, ...props) {
6
- super(_document as any, props);
7
-
8
- }
9
- }
@@ -1,21 +0,0 @@
1
- import {DOMObject} from "./DOMObject";
2
- import {Scope} from "../Scope";
3
-
4
- export class WrappedWindow extends DOMObject {
5
- constructor(
6
- protected _window: Window, ...props) {
7
- super(_window as any, props);
8
- this._scope = new Scope();
9
-
10
- this.scope.set('@scrollY', this._window.scrollY);
11
- this.scope.set('@scrollX', this._window.scrollX);
12
- _window.addEventListener('scroll', this.onScroll.bind(this), {
13
- passive: true
14
- });
15
- }
16
-
17
- onScroll(e) {
18
- this.scope.set('@scrollY', this._window.scrollY);
19
- this.scope.set('@scrollX', this._window.scrollX);
20
- }
21
- }
package/src/DOM.ts DELETED
@@ -1,13 +0,0 @@
1
-
2
- import {AbstractDOM} from "./DOM/AbstractDOM";
3
-
4
- export class DOM extends AbstractDOM {
5
- protected static _instance: AbstractDOM;
6
-
7
- public static get instance(): DOM {
8
- if (!DOM._instance)
9
- DOM._instance = new DOM(document.body ,false, false);
10
-
11
- return DOM._instance;
12
- }
13
- }