vsn 0.1.149 → 1.0.0

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 +5011 -0
  3. package/dist/index.cjs.map +1 -0
  4. package/dist/index.d.cts +630 -0
  5. package/dist/index.d.ts +630 -0
  6. package/dist/index.js +4942 -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 +30 -48
  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/dist/Tag.js DELETED
@@ -1,1471 +0,0 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
- return new (P || (P = Promise))(function (resolve, reject) {
20
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
- step((generator = generator.apply(thisArg, _arguments || [])).next());
24
- });
25
- };
26
- var __generator = (this && this.__generator) || function (thisArg, body) {
27
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
28
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
- function verb(n) { return function (v) { return step([n, v]); }; }
30
- function step(op) {
31
- if (f) throw new TypeError("Generator is already executing.");
32
- while (_) try {
33
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
- if (y = 0, t) op = [op[0] & 2, t.value];
35
- switch (op[0]) {
36
- case 0: case 1: t = op; break;
37
- case 4: _.label++; return { value: op[1], done: false };
38
- case 5: _.label++; y = op[1]; op = [0]; continue;
39
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
- default:
41
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
- if (t[2]) _.ops.pop();
46
- _.trys.pop(); continue;
47
- }
48
- op = body.call(thisArg, _);
49
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
- }
52
- };
53
- var __values = (this && this.__values) || function(o) {
54
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
55
- if (m) return m.call(o);
56
- if (o && typeof o.length === "number") return {
57
- next: function () {
58
- if (o && i >= o.length) o = void 0;
59
- return { value: o && o[i++], done: !o };
60
- }
61
- };
62
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
63
- };
64
- var __read = (this && this.__read) || function (o, n) {
65
- var m = typeof Symbol === "function" && o[Symbol.iterator];
66
- if (!m) return o;
67
- var i = m.call(o), r, ar = [], e;
68
- try {
69
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
70
- }
71
- catch (error) { e = { error: error }; }
72
- finally {
73
- try {
74
- if (r && !r.done && (m = i["return"])) m.call(i);
75
- }
76
- finally { if (e) throw e.error; }
77
- }
78
- return ar;
79
- };
80
- var __spreadArray = (this && this.__spreadArray) || function (to, from) {
81
- for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
82
- to[j] = from[i];
83
- return to;
84
- };
85
- Object.defineProperty(exports, "__esModule", { value: true });
86
- exports.Tag = exports.TagState = void 0;
87
- var Scope_1 = require("./Scope");
88
- var Attribute_1 = require("./Attribute");
89
- var DOM_1 = require("./DOM");
90
- var Controller_1 = require("./Controller");
91
- var VisionHelper_1 = require("./helpers/VisionHelper");
92
- var StandardAttribute_1 = require("./attributes/StandardAttribute");
93
- var On_1 = require("./attributes/On");
94
- var Registry_1 = require("./Registry");
95
- var DOMObject_1 = require("./DOM/DOMObject");
96
- var AST_1 = require("./AST");
97
- var StyleAttribute_1 = require("./attributes/StyleAttribute");
98
- var Modifiers_1 = require("./Modifiers");
99
- var TagState;
100
- (function (TagState) {
101
- TagState[TagState["Instantiated"] = 0] = "Instantiated";
102
- TagState[TagState["AttributesBuilt"] = 1] = "AttributesBuilt";
103
- TagState[TagState["AttributesCompiled"] = 2] = "AttributesCompiled";
104
- TagState[TagState["AttributesSetup"] = 3] = "AttributesSetup";
105
- TagState[TagState["AttributesExtracted"] = 4] = "AttributesExtracted";
106
- TagState[TagState["AttributesConnected"] = 5] = "AttributesConnected";
107
- TagState[TagState["Built"] = 6] = "Built";
108
- TagState[TagState["Deconstructed"] = 7] = "Deconstructed";
109
- })(TagState = exports.TagState || (exports.TagState = {}));
110
- var Tag = /** @class */ (function (_super) {
111
- __extends(Tag, _super);
112
- function Tag(element, dom) {
113
- var props = [];
114
- for (var _i = 2; _i < arguments.length; _i++) {
115
- props[_i - 2] = arguments[_i];
116
- }
117
- var _this = _super.call(this, element, props) || this;
118
- _this.dom = dom;
119
- _this.deferredAttributes = [];
120
- _this.attributes = new Map();
121
- _this._nonDeferredAttributes = [];
122
- _this._children = [];
123
- _this.inputTags = [
124
- 'input',
125
- 'select',
126
- 'textarea'
127
- ];
128
- element[Tag.TaggedVariable] = _this;
129
- _this.rawAttributes = {};
130
- _this.parsedAttributes = {};
131
- _this.onEventHandlers = {};
132
- _this.onEventBindings = {};
133
- _this.analyzeElementAttributes();
134
- _this._state = TagState.Instantiated;
135
- return _this;
136
- }
137
- Object.defineProperty(Tag.prototype, "uniqueScope", {
138
- get: function () {
139
- return this._uniqueScope;
140
- },
141
- enumerable: false,
142
- configurable: true
143
- });
144
- ;
145
- Object.defineProperty(Tag.prototype, "meta", {
146
- get: function () {
147
- if (!this._meta)
148
- this._meta = {};
149
- return this._meta;
150
- },
151
- enumerable: false,
152
- configurable: true
153
- });
154
- Object.defineProperty(Tag.prototype, "state", {
155
- get: function () {
156
- return this._state;
157
- },
158
- enumerable: false,
159
- configurable: true
160
- });
161
- Tag.prototype.onAttributeStateChange = function (event) {
162
- if (event.previouseState === Attribute_1.AttributeState.Deferred) // @todo: what is this?
163
- this._nonDeferredAttributes.length = 0;
164
- };
165
- Tag.prototype.getAttributesWithState = function (state) {
166
- var e_1, _a;
167
- var attrs = [];
168
- try {
169
- for (var _b = __values(this.attributes.values()), _c = _b.next(); !_c.done; _c = _b.next()) {
170
- var attr = _c.value;
171
- if (attr.state === state)
172
- attrs.push(attr);
173
- }
174
- }
175
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
176
- finally {
177
- try {
178
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
179
- }
180
- finally { if (e_1) throw e_1.error; }
181
- }
182
- return attrs;
183
- };
184
- Object.defineProperty(Tag.prototype, "nonDeferredAttributes", {
185
- get: function () {
186
- var e_2, _a;
187
- if (this._nonDeferredAttributes.length > 0)
188
- return this._nonDeferredAttributes;
189
- var attrs = [];
190
- try {
191
- for (var _b = __values(this.attributes.values()), _c = _b.next(); !_c.done; _c = _b.next()) {
192
- var attr = _c.value;
193
- if (attr.state !== Attribute_1.AttributeState.Deferred)
194
- attrs.push(attr);
195
- }
196
- }
197
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
198
- finally {
199
- try {
200
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
201
- }
202
- finally { if (e_2) throw e_2.error; }
203
- }
204
- this._nonDeferredAttributes = attrs;
205
- return attrs;
206
- },
207
- enumerable: false,
208
- configurable: true
209
- });
210
- Object.defineProperty(Tag.prototype, "style", {
211
- get: function () {
212
- return this.element.style;
213
- },
214
- enumerable: false,
215
- configurable: true
216
- });
217
- Object.defineProperty(Tag.prototype, "computedStyle", {
218
- get: function () {
219
- return VisionHelper_1.VisionHelper.window && window.getComputedStyle(this.element) || null;
220
- },
221
- enumerable: false,
222
- configurable: true
223
- });
224
- Tag.prototype.analyzeElementAttributes = function () {
225
- if (!this.element.attributes || this.element.attributes.length <= 0)
226
- return;
227
- for (var i = 0; i < this.element.attributes.length; i++) {
228
- var a = this.element.attributes[i];
229
- this.rawAttributes[a.name] = a.value;
230
- if (a.name.indexOf(':') > -1) {
231
- var nameParts = a.name.split(':');
232
- var values = nameParts.slice(1);
233
- values.push(a.value);
234
- this.parsedAttributes[nameParts[0]] = values;
235
- }
236
- else {
237
- this.parsedAttributes[a.name] = [null, a.value];
238
- }
239
- }
240
- };
241
- Tag.prototype.exec = function (code) {
242
- return __awaiter(this, void 0, void 0, function () {
243
- var tree;
244
- return __generator(this, function (_a) {
245
- switch (_a.label) {
246
- case 0:
247
- tree = new AST_1.Tree(code);
248
- return [4 /*yield*/, tree.prepare(this.scope, this.dom, this)];
249
- case 1:
250
- _a.sent();
251
- return [4 /*yield*/, tree.evaluate(this.scope, this.dom, this)];
252
- case 2: return [2 /*return*/, _a.sent()];
253
- }
254
- });
255
- });
256
- };
257
- Tag.prototype.evaluate = function () {
258
- return __awaiter(this, void 0, void 0, function () {
259
- var _a, _b, attr, e_3_1;
260
- var e_3, _c;
261
- return __generator(this, function (_d) {
262
- switch (_d.label) {
263
- case 0:
264
- _d.trys.push([0, 5, 6, 7]);
265
- _a = __values(this.nonDeferredAttributes), _b = _a.next();
266
- _d.label = 1;
267
- case 1:
268
- if (!!_b.done) return [3 /*break*/, 4];
269
- attr = _b.value;
270
- return [4 /*yield*/, attr.evaluate()];
271
- case 2:
272
- _d.sent();
273
- _d.label = 3;
274
- case 3:
275
- _b = _a.next();
276
- return [3 /*break*/, 1];
277
- case 4: return [3 /*break*/, 7];
278
- case 5:
279
- e_3_1 = _d.sent();
280
- e_3 = { error: e_3_1 };
281
- return [3 /*break*/, 7];
282
- case 6:
283
- try {
284
- if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
285
- }
286
- finally { if (e_3) throw e_3.error; }
287
- return [7 /*endfinally*/];
288
- case 7: return [2 /*return*/];
289
- }
290
- });
291
- });
292
- };
293
- Tag.prototype.mutate = function (mutation) {
294
- this.attributes.forEach(function (attr) { return attr.mutate(mutation); });
295
- this.dispatch('mutate', mutation);
296
- };
297
- Tag.prototype.get = function (attr) {
298
- this.element.getAttribute(attr);
299
- };
300
- Tag.prototype.set = function (attr, value) {
301
- this.element.setAttribute(attr, value);
302
- };
303
- Tag.prototype.getAttributeClass = function (attr) {
304
- return __awaiter(this, void 0, void 0, function () {
305
- return __generator(this, function (_a) {
306
- if (!attr.startsWith('vsn-'))
307
- return [2 /*return*/, null];
308
- attr = this.getAttributeName(attr);
309
- return [2 /*return*/, Registry_1.Registry.instance.attributes.get(attr)];
310
- });
311
- });
312
- };
313
- Tag.prototype.getAttributeName = function (attr) {
314
- attr = attr.split('|')[0];
315
- if (attr.indexOf(':') > -1) {
316
- var parts = attr.split(':');
317
- attr = parts[0];
318
- }
319
- return attr;
320
- };
321
- Tag.prototype.getAttributeBinding = function (attr) {
322
- attr = attr.split('|')[0];
323
- if (attr.indexOf(':') > -1) {
324
- var parts = attr.split(':');
325
- return parts[1];
326
- }
327
- return null;
328
- };
329
- Object.defineProperty(Tag.prototype, "isInput", {
330
- get: function () {
331
- return this.inputTags.indexOf(this.element.tagName.toLowerCase()) > -1;
332
- },
333
- enumerable: false,
334
- configurable: true
335
- });
336
- Object.defineProperty(Tag.prototype, "isSelect", {
337
- get: function () {
338
- return this.element.tagName.toLowerCase() === 'select';
339
- },
340
- enumerable: false,
341
- configurable: true
342
- });
343
- Object.defineProperty(Tag.prototype, "isMultipleSelect", {
344
- get: function () {
345
- return this.isSelect && this.element.hasAttribute('multiple');
346
- },
347
- enumerable: false,
348
- configurable: true
349
- });
350
- Object.defineProperty(Tag.prototype, "value", {
351
- get: function () {
352
- if (this.isInput) {
353
- if (this.isMultipleSelect) {
354
- return Array.from(this.element.options).filter(function (o) { return o.selected; }).map(function (o) { return o.value; });
355
- }
356
- return this.element.value;
357
- }
358
- else {
359
- return this.element.textContent;
360
- }
361
- },
362
- set: function (value) {
363
- var e_4, _a;
364
- if (this.isInput) {
365
- if (this.isMultipleSelect) {
366
- try {
367
- for (var _b = __values(Array.from(this.element.options)), _c = _b.next(); !_c.done; _c = _b.next()) {
368
- var option = _c.value;
369
- option.selected = value.indexOf(option.value) > -1;
370
- }
371
- }
372
- catch (e_4_1) { e_4 = { error: e_4_1 }; }
373
- finally {
374
- try {
375
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
376
- }
377
- finally { if (e_4) throw e_4.error; }
378
- }
379
- }
380
- else {
381
- this.element.setAttribute('value', value);
382
- this.element.value = value;
383
- }
384
- }
385
- else {
386
- this.element.innerText = value;
387
- }
388
- },
389
- enumerable: false,
390
- configurable: true
391
- });
392
- Object.defineProperty(Tag.prototype, "checked", {
393
- get: function () {
394
- if (this.isInput) {
395
- return this.element.checked;
396
- }
397
- else {
398
- return false;
399
- }
400
- },
401
- set: function (value) {
402
- if (this.isInput) {
403
- if (value) {
404
- this.element.setAttribute('checked', '');
405
- this.element.checked = true;
406
- }
407
- else {
408
- this.element.removeAttribute('checked');
409
- this.element.checked = false;
410
- }
411
- }
412
- },
413
- enumerable: false,
414
- configurable: true
415
- });
416
- Tag.prototype.addChild = function (tag) {
417
- this._children.push(tag);
418
- tag.once('deconstruct', this.removeChild, this);
419
- };
420
- Tag.prototype.removeChild = function (tag) {
421
- var index = this._children.indexOf(tag);
422
- if (index > -1)
423
- this._children.splice(index, 1);
424
- };
425
- Object.defineProperty(Tag.prototype, "children", {
426
- get: function () {
427
- return __spreadArray([], __read(this._children));
428
- },
429
- enumerable: false,
430
- configurable: true
431
- });
432
- Tag.prototype.findParentTag = function () {
433
- var foundParent = false;
434
- if (this.element) {
435
- var parentElement = DOM_1.DOM.getParentElement(this.element);
436
- while (parentElement) {
437
- if (parentElement[Tag.TaggedVariable]) {
438
- foundParent = true;
439
- this.parentTag = parentElement[Tag.TaggedVariable];
440
- break;
441
- }
442
- parentElement = DOM_1.DOM.getParentElement(parentElement);
443
- }
444
- }
445
- if (!foundParent && DOM_1.DOM.instance.root !== this)
446
- return DOM_1.DOM.instance.root;
447
- };
448
- Object.defineProperty(Tag.prototype, "parentTag", {
449
- get: function () {
450
- if (!this._parentTag) {
451
- this.findParentTag();
452
- }
453
- return this._parentTag;
454
- },
455
- set: function (tag) {
456
- if (this.element === document.body || tag.element === document.body)
457
- return;
458
- if (this._parentTag && this._parentTag !== tag) {
459
- this._parentTag.removeChild(this);
460
- this.scope.parentScope = null;
461
- }
462
- this._parentTag = tag;
463
- if (tag) {
464
- tag.addChild(this);
465
- if (this.scope !== tag.scope) {
466
- this.scope.parentScope = tag.scope;
467
- }
468
- }
469
- },
470
- enumerable: false,
471
- configurable: true
472
- });
473
- Object.defineProperty(Tag.prototype, "scope", {
474
- get: function () {
475
- if (!!this._scope)
476
- return this._scope;
477
- if (this.uniqueScope)
478
- return this.createScope(true);
479
- if (!!this.parentTag)
480
- return this.parentTag.scope;
481
- return DOM_1.DOM.instance.root.scope;
482
- },
483
- enumerable: false,
484
- configurable: true
485
- });
486
- Object.defineProperty(Tag.prototype, "controller", {
487
- get: function () {
488
- return this._controller;
489
- },
490
- set: function (controller) {
491
- this._controller = controller;
492
- },
493
- enumerable: false,
494
- configurable: true
495
- });
496
- Tag.prototype.wrap = function (obj, triggerUpdates, updateFromWrapped) {
497
- if (triggerUpdates === void 0) { triggerUpdates = false; }
498
- if (updateFromWrapped === void 0) { updateFromWrapped = true; }
499
- if (VisionHelper_1.VisionHelper.isConstructor(obj)) {
500
- obj = new obj();
501
- }
502
- if (obj instanceof Controller_1.Controller) {
503
- obj.init(this.scope, this, this.element);
504
- this.controller = obj;
505
- }
506
- else {
507
- obj['$scope'] = this.scope;
508
- obj['$tag'] = this;
509
- obj['$el'] = this.element;
510
- }
511
- this.scope.wrap(obj, triggerUpdates, updateFromWrapped);
512
- return obj;
513
- };
514
- Tag.prototype.unwrap = function () {
515
- this.scope.unwrap();
516
- };
517
- Tag.prototype.removeFromDOM = function () {
518
- this.element.remove();
519
- };
520
- Tag.prototype.addToParentElement = function () {
521
- this.parentTag.element.appendChild(this.element);
522
- };
523
- Tag.prototype.hide = function () {
524
- this.element.hidden = true;
525
- };
526
- Tag.prototype.show = function () {
527
- this.element.hidden = false;
528
- };
529
- Tag.prototype.findAncestorByAttribute = function (attr, includeSelf) {
530
- if (includeSelf === void 0) { includeSelf = false; }
531
- if (includeSelf && this.hasAttribute(attr))
532
- return this;
533
- return this.parentTag ? this.parentTag.findAncestorByAttribute(attr, true) : null;
534
- };
535
- Tag.prototype.findDescendantsByAttribute = function (attr, includeSelf) {
536
- var e_5, _a;
537
- if (includeSelf === void 0) { includeSelf = false; }
538
- var tags = [];
539
- if (includeSelf && this.hasAttribute(attr))
540
- tags.push(this);
541
- try {
542
- for (var _b = __values(this.children), _c = _b.next(); !_c.done; _c = _b.next()) {
543
- var child = _c.value;
544
- tags.concat(child.findDescendantsByAttribute(attr, true));
545
- }
546
- }
547
- catch (e_5_1) { e_5 = { error: e_5_1 }; }
548
- finally {
549
- try {
550
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
551
- }
552
- finally { if (e_5) throw e_5.error; }
553
- }
554
- return tags;
555
- };
556
- Tag.prototype.findChildrenByAttribute = function (attr) {
557
- return this.children.filter(function (child) { return child.hasAttribute(attr); });
558
- };
559
- Tag.prototype.hasAttribute = function (attr) {
560
- return !!this.parsedAttributes[attr];
561
- };
562
- Tag.prototype.getAttribute = function (key) {
563
- return __awaiter(this, void 0, void 0, function () {
564
- var cls, _a, _b, attr;
565
- var e_6, _c;
566
- return __generator(this, function (_d) {
567
- switch (_d.label) {
568
- case 0: return [4 /*yield*/, Registry_1.Registry.instance.attributes.get(key)];
569
- case 1:
570
- cls = _d.sent();
571
- if (!cls)
572
- return [2 /*return*/];
573
- try {
574
- for (_a = __values(this.attributes.values()), _b = _a.next(); !_b.done; _b = _a.next()) {
575
- attr = _b.value;
576
- if (attr instanceof cls)
577
- return [2 /*return*/, attr];
578
- }
579
- }
580
- catch (e_6_1) { e_6 = { error: e_6_1 }; }
581
- finally {
582
- try {
583
- if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
584
- }
585
- finally { if (e_6) throw e_6.error; }
586
- }
587
- return [2 /*return*/];
588
- }
589
- });
590
- });
591
- };
592
- Tag.prototype.isMagicAttribute = function (key) {
593
- return Tag.magicAttributes.indexOf(key) > -1;
594
- };
595
- Tag.prototype.setElementAttribute = function (key, value) {
596
- var _a, _b;
597
- if (!this.element)
598
- return null;
599
- if (this.isMagicAttribute(key)) {
600
- if (key === '@text')
601
- this.element.innerText = value;
602
- else if (key === '@html') {
603
- this.element.innerHTML = value;
604
- DOM_1.DOM.instance.buildFrom(this.element).then(function (tag) {
605
- AST_1.Tree.reprepareExecutingTrees();
606
- });
607
- }
608
- else if (key === '@value')
609
- this.value = value;
610
- else if (key === '@class' && value) {
611
- (_a = this.element.classList).remove.apply(_a, __spreadArray([], __read(Array.from(this.element.classList))));
612
- var classes = value instanceof Array ? value : [value];
613
- if (classes.length)
614
- (_b = this.element.classList).add.apply(_b, __spreadArray([], __read(classes)));
615
- }
616
- else if (Tag.flagAttributes.indexOf(key) > -1) {
617
- var attrKey = key.replace('@', '');
618
- if (!!value) {
619
- this.element.setAttribute(attrKey, '');
620
- }
621
- else {
622
- this.element.removeAttribute(attrKey);
623
- }
624
- }
625
- }
626
- else {
627
- this.element.setAttribute(key, value);
628
- }
629
- };
630
- Tag.prototype.getElementAttribute = function (key) {
631
- if (!this.element)
632
- return null;
633
- if (this.isMagicAttribute(key)) {
634
- if (key === '@text')
635
- return this.element.innerText;
636
- else if (key === '@html')
637
- return this.element.innerHTML;
638
- else if (key === '@value')
639
- return this.value;
640
- else if (key === '@class') {
641
- return Array.from(this.element.classList);
642
- }
643
- else if (Tag.flagAttributes.indexOf(key) > -1) {
644
- var attrKey = key.replace('@', '');
645
- return this.element.hasAttribute(attrKey);
646
- }
647
- }
648
- return this.element.getAttribute(key);
649
- };
650
- Tag.prototype.getRawAttributeValue = function (key, fallback) {
651
- if (fallback === void 0) { fallback = null; }
652
- return this.rawAttributes[key] ? this.rawAttributes[key] : fallback;
653
- };
654
- Tag.prototype.hasRawAttribute = function (mod) {
655
- return this.getRawAttributeValue(mod, undefined) !== undefined;
656
- };
657
- Tag.prototype.getParsedAttributeValue = function (key, index, fallback) {
658
- if (index === void 0) { index = 0; }
659
- if (fallback === void 0) { fallback = null; }
660
- return this.parsedAttributes[key] && this.parsedAttributes[key][index] || fallback;
661
- };
662
- Tag.prototype.getTagsToBuild = function () {
663
- return __awaiter(this, void 0, void 0, function () {
664
- return __generator(this, function (_a) {
665
- switch (_a.label) {
666
- case 0:
667
- if (!this.isSlot) return [3 /*break*/, 2];
668
- return [4 /*yield*/, DOM_1.DOM.instance.getTagsForElements(this.delegates, true)];
669
- case 1: return [2 /*return*/, _a.sent()];
670
- case 2: return [2 /*return*/, [this]];
671
- }
672
- });
673
- });
674
- };
675
- Tag.prototype.buildAttributes = function () {
676
- return __awaiter(this, void 0, void 0, function () {
677
- var requiresScope, defer, isMobile, tags, slot, tags_1, tags_1_1, tag, _a, _b, _i, attr, attrClass, attrObj, e_7_1;
678
- var e_7, _c;
679
- return __generator(this, function (_d) {
680
- switch (_d.label) {
681
- case 0:
682
- requiresScope = false;
683
- defer = false;
684
- isMobile = VisionHelper_1.VisionHelper.isMobile();
685
- if (this.element.offsetParent === null ||
686
- this.hasAttribute('hidden') ||
687
- this.hasAttribute('vsn-defer')) {
688
- defer = true;
689
- }
690
- return [4 /*yield*/, this.getTagsToBuild()];
691
- case 1:
692
- tags = _d.sent();
693
- slot = this.isSlot ? this : null;
694
- _d.label = 2;
695
- case 2:
696
- _d.trys.push([2, 11, 12, 13]);
697
- tags_1 = __values(tags), tags_1_1 = tags_1.next();
698
- _d.label = 3;
699
- case 3:
700
- if (!!tags_1_1.done) return [3 /*break*/, 10];
701
- tag = tags_1_1.value;
702
- _a = [];
703
- for (_b in this.rawAttributes)
704
- _a.push(_b);
705
- _i = 0;
706
- _d.label = 4;
707
- case 4:
708
- if (!(_i < _a.length)) return [3 /*break*/, 8];
709
- attr = _a[_i];
710
- if (tag.attributes.has(attr))
711
- return [3 /*break*/, 7];
712
- if (this.hasModifier(attr, 'mobile') && !isMobile)
713
- return [3 /*break*/, 7];
714
- if (this.hasModifier(attr, 'desktop') && isMobile)
715
- return [3 /*break*/, 7];
716
- return [4 /*yield*/, this.getAttributeClass(attr)];
717
- case 5:
718
- attrClass = _d.sent();
719
- if (!attrClass) return [3 /*break*/, 7];
720
- if (attrClass.scoped)
721
- requiresScope = true;
722
- attrObj = attrClass.create(tag, attr, attrClass, slot);
723
- tag.attributes.set(attr, attrObj);
724
- if (!(defer && attrClass.canDefer)) return [3 /*break*/, 7];
725
- return [4 /*yield*/, attrObj.defer()];
726
- case 6:
727
- _d.sent();
728
- tag.deferredAttributes.push(attrObj);
729
- attrObj.on('state', tag.onAttributeStateChange, tag);
730
- _d.label = 7;
731
- case 7:
732
- _i++;
733
- return [3 /*break*/, 4];
734
- case 8:
735
- if (tag.element.getAttribute('id'))
736
- requiresScope = true;
737
- if (requiresScope && !tag.uniqueScope) {
738
- tag._uniqueScope = true;
739
- }
740
- _d.label = 9;
741
- case 9:
742
- tags_1_1 = tags_1.next();
743
- return [3 /*break*/, 3];
744
- case 10: return [3 /*break*/, 13];
745
- case 11:
746
- e_7_1 = _d.sent();
747
- e_7 = { error: e_7_1 };
748
- return [3 /*break*/, 13];
749
- case 12:
750
- try {
751
- if (tags_1_1 && !tags_1_1.done && (_c = tags_1.return)) _c.call(tags_1);
752
- }
753
- finally { if (e_7) throw e_7.error; }
754
- return [7 /*endfinally*/];
755
- case 13:
756
- this._state = TagState.AttributesBuilt;
757
- return [2 /*return*/];
758
- }
759
- });
760
- });
761
- };
762
- Tag.prototype.compileAttributes = function () {
763
- return __awaiter(this, void 0, void 0, function () {
764
- var tags, tags_2, tags_2_1, tag, _a, _b, attr, e_8_1, e_9_1;
765
- var e_9, _c, e_8, _d;
766
- return __generator(this, function (_e) {
767
- switch (_e.label) {
768
- case 0: return [4 /*yield*/, this.getTagsToBuild()];
769
- case 1:
770
- tags = _e.sent();
771
- _e.label = 2;
772
- case 2:
773
- _e.trys.push([2, 13, 14, 15]);
774
- tags_2 = __values(tags), tags_2_1 = tags_2.next();
775
- _e.label = 3;
776
- case 3:
777
- if (!!tags_2_1.done) return [3 /*break*/, 12];
778
- tag = tags_2_1.value;
779
- _e.label = 4;
780
- case 4:
781
- _e.trys.push([4, 9, 10, 11]);
782
- _a = (e_8 = void 0, __values(tag.getAttributesWithState(Attribute_1.AttributeState.Instantiated))), _b = _a.next();
783
- _e.label = 5;
784
- case 5:
785
- if (!!_b.done) return [3 /*break*/, 8];
786
- attr = _b.value;
787
- return [4 /*yield*/, attr.compile()];
788
- case 6:
789
- _e.sent();
790
- _e.label = 7;
791
- case 7:
792
- _b = _a.next();
793
- return [3 /*break*/, 5];
794
- case 8: return [3 /*break*/, 11];
795
- case 9:
796
- e_8_1 = _e.sent();
797
- e_8 = { error: e_8_1 };
798
- return [3 /*break*/, 11];
799
- case 10:
800
- try {
801
- if (_b && !_b.done && (_d = _a.return)) _d.call(_a);
802
- }
803
- finally { if (e_8) throw e_8.error; }
804
- return [7 /*endfinally*/];
805
- case 11:
806
- tags_2_1 = tags_2.next();
807
- return [3 /*break*/, 3];
808
- case 12: return [3 /*break*/, 15];
809
- case 13:
810
- e_9_1 = _e.sent();
811
- e_9 = { error: e_9_1 };
812
- return [3 /*break*/, 15];
813
- case 14:
814
- try {
815
- if (tags_2_1 && !tags_2_1.done && (_c = tags_2.return)) _c.call(tags_2);
816
- }
817
- finally { if (e_9) throw e_9.error; }
818
- return [7 /*endfinally*/];
819
- case 15:
820
- this._state = TagState.AttributesCompiled;
821
- return [2 /*return*/];
822
- }
823
- });
824
- });
825
- };
826
- Tag.prototype.setupAttributes = function () {
827
- return __awaiter(this, void 0, void 0, function () {
828
- var tags, tags_3, tags_3_1, tag, _a, _b, attr, e_10_1, e_11_1;
829
- var e_11, _c, e_10, _d;
830
- return __generator(this, function (_e) {
831
- switch (_e.label) {
832
- case 0: return [4 /*yield*/, this.getTagsToBuild()];
833
- case 1:
834
- tags = _e.sent();
835
- _e.label = 2;
836
- case 2:
837
- _e.trys.push([2, 13, 14, 15]);
838
- tags_3 = __values(tags), tags_3_1 = tags_3.next();
839
- _e.label = 3;
840
- case 3:
841
- if (!!tags_3_1.done) return [3 /*break*/, 12];
842
- tag = tags_3_1.value;
843
- _e.label = 4;
844
- case 4:
845
- _e.trys.push([4, 9, 10, 11]);
846
- _a = (e_10 = void 0, __values(tag.getAttributesWithState(Attribute_1.AttributeState.Compiled))), _b = _a.next();
847
- _e.label = 5;
848
- case 5:
849
- if (!!_b.done) return [3 /*break*/, 8];
850
- attr = _b.value;
851
- return [4 /*yield*/, attr.setup()];
852
- case 6:
853
- _e.sent();
854
- _e.label = 7;
855
- case 7:
856
- _b = _a.next();
857
- return [3 /*break*/, 5];
858
- case 8: return [3 /*break*/, 11];
859
- case 9:
860
- e_10_1 = _e.sent();
861
- e_10 = { error: e_10_1 };
862
- return [3 /*break*/, 11];
863
- case 10:
864
- try {
865
- if (_b && !_b.done && (_d = _a.return)) _d.call(_a);
866
- }
867
- finally { if (e_10) throw e_10.error; }
868
- return [7 /*endfinally*/];
869
- case 11:
870
- tags_3_1 = tags_3.next();
871
- return [3 /*break*/, 3];
872
- case 12: return [3 /*break*/, 15];
873
- case 13:
874
- e_11_1 = _e.sent();
875
- e_11 = { error: e_11_1 };
876
- return [3 /*break*/, 15];
877
- case 14:
878
- try {
879
- if (tags_3_1 && !tags_3_1.done && (_c = tags_3.return)) _c.call(tags_3);
880
- }
881
- finally { if (e_11) throw e_11.error; }
882
- return [7 /*endfinally*/];
883
- case 15:
884
- if (!this.isSlot)
885
- this.dom.registerElementInRoot(this);
886
- this._state = TagState.AttributesSetup;
887
- this.callOnWrapped('$setup');
888
- return [2 /*return*/];
889
- }
890
- });
891
- });
892
- };
893
- Tag.prototype.extractAttributes = function () {
894
- return __awaiter(this, void 0, void 0, function () {
895
- var tags, tags_4, tags_4_1, tag, _a, _b, attr, e_12_1, e_13_1;
896
- var e_13, _c, e_12, _d;
897
- return __generator(this, function (_e) {
898
- switch (_e.label) {
899
- case 0: return [4 /*yield*/, this.getTagsToBuild()];
900
- case 1:
901
- tags = _e.sent();
902
- _e.label = 2;
903
- case 2:
904
- _e.trys.push([2, 13, 14, 15]);
905
- tags_4 = __values(tags), tags_4_1 = tags_4.next();
906
- _e.label = 3;
907
- case 3:
908
- if (!!tags_4_1.done) return [3 /*break*/, 12];
909
- tag = tags_4_1.value;
910
- _e.label = 4;
911
- case 4:
912
- _e.trys.push([4, 9, 10, 11]);
913
- _a = (e_12 = void 0, __values(tag.getAttributesWithState(Attribute_1.AttributeState.Setup))), _b = _a.next();
914
- _e.label = 5;
915
- case 5:
916
- if (!!_b.done) return [3 /*break*/, 8];
917
- attr = _b.value;
918
- return [4 /*yield*/, attr.extract()];
919
- case 6:
920
- _e.sent();
921
- _e.label = 7;
922
- case 7:
923
- _b = _a.next();
924
- return [3 /*break*/, 5];
925
- case 8: return [3 /*break*/, 11];
926
- case 9:
927
- e_12_1 = _e.sent();
928
- e_12 = { error: e_12_1 };
929
- return [3 /*break*/, 11];
930
- case 10:
931
- try {
932
- if (_b && !_b.done && (_d = _a.return)) _d.call(_a);
933
- }
934
- finally { if (e_12) throw e_12.error; }
935
- return [7 /*endfinally*/];
936
- case 11:
937
- tags_4_1 = tags_4.next();
938
- return [3 /*break*/, 3];
939
- case 12: return [3 /*break*/, 15];
940
- case 13:
941
- e_13_1 = _e.sent();
942
- e_13 = { error: e_13_1 };
943
- return [3 /*break*/, 15];
944
- case 14:
945
- try {
946
- if (tags_4_1 && !tags_4_1.done && (_c = tags_4.return)) _c.call(tags_4);
947
- }
948
- finally { if (e_13) throw e_13.error; }
949
- return [7 /*endfinally*/];
950
- case 15:
951
- this._state = TagState.AttributesExtracted;
952
- this.callOnWrapped('$extracted');
953
- return [2 /*return*/];
954
- }
955
- });
956
- });
957
- };
958
- Tag.prototype.connectAttributes = function () {
959
- return __awaiter(this, void 0, void 0, function () {
960
- var tags, tags_5, tags_5_1, tag, _a, _b, attr, e_14_1, e_15_1;
961
- var e_15, _c, e_14, _d;
962
- return __generator(this, function (_e) {
963
- switch (_e.label) {
964
- case 0: return [4 /*yield*/, this.getTagsToBuild()];
965
- case 1:
966
- tags = _e.sent();
967
- _e.label = 2;
968
- case 2:
969
- _e.trys.push([2, 13, 14, 15]);
970
- tags_5 = __values(tags), tags_5_1 = tags_5.next();
971
- _e.label = 3;
972
- case 3:
973
- if (!!tags_5_1.done) return [3 /*break*/, 12];
974
- tag = tags_5_1.value;
975
- if (tag.isInput) {
976
- tag.addEventHandler('input', null, tag.inputMutation, tag);
977
- }
978
- _e.label = 4;
979
- case 4:
980
- _e.trys.push([4, 9, 10, 11]);
981
- _a = (e_14 = void 0, __values(tag.getAttributesWithState(Attribute_1.AttributeState.Extracted))), _b = _a.next();
982
- _e.label = 5;
983
- case 5:
984
- if (!!_b.done) return [3 /*break*/, 8];
985
- attr = _b.value;
986
- return [4 /*yield*/, attr.connect()];
987
- case 6:
988
- _e.sent();
989
- _e.label = 7;
990
- case 7:
991
- _b = _a.next();
992
- return [3 /*break*/, 5];
993
- case 8: return [3 /*break*/, 11];
994
- case 9:
995
- e_14_1 = _e.sent();
996
- e_14 = { error: e_14_1 };
997
- return [3 /*break*/, 11];
998
- case 10:
999
- try {
1000
- if (_b && !_b.done && (_d = _a.return)) _d.call(_a);
1001
- }
1002
- finally { if (e_14) throw e_14.error; }
1003
- return [7 /*endfinally*/];
1004
- case 11:
1005
- tags_5_1 = tags_5.next();
1006
- return [3 /*break*/, 3];
1007
- case 12: return [3 /*break*/, 15];
1008
- case 13:
1009
- e_15_1 = _e.sent();
1010
- e_15 = { error: e_15_1 };
1011
- return [3 /*break*/, 15];
1012
- case 14:
1013
- try {
1014
- if (tags_5_1 && !tags_5_1.done && (_c = tags_5.return)) _c.call(tags_5);
1015
- }
1016
- finally { if (e_15) throw e_15.error; }
1017
- return [7 /*endfinally*/];
1018
- case 15:
1019
- this._state = TagState.AttributesConnected;
1020
- this.callOnWrapped('$bound');
1021
- return [2 /*return*/];
1022
- }
1023
- });
1024
- });
1025
- };
1026
- Tag.prototype.inputMutation = function (e) {
1027
- var e_16, _a;
1028
- if (this.isSelect) {
1029
- var selected = this.element.selectedOptions;
1030
- var values = [];
1031
- for (var i = 0; i < selected.length; i++) {
1032
- values.push(selected[i].value);
1033
- }
1034
- try {
1035
- for (var _b = __values(Array.from(this.element.options)), _c = _b.next(); !_c.done; _c = _b.next()) {
1036
- var option = _c.value;
1037
- if (values.indexOf(option.value) > -1) {
1038
- option.setAttribute('selected', '');
1039
- }
1040
- else {
1041
- option.removeAttribute('selected');
1042
- }
1043
- }
1044
- }
1045
- catch (e_16_1) { e_16 = { error: e_16_1 }; }
1046
- finally {
1047
- try {
1048
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
1049
- }
1050
- finally { if (e_16) throw e_16.error; }
1051
- }
1052
- this.value = values.join(',');
1053
- }
1054
- else {
1055
- this.value = e.target.value;
1056
- }
1057
- };
1058
- Tag.prototype.finalize = function () {
1059
- return __awaiter(this, void 0, void 0, function () {
1060
- var tags, tags_6, tags_6_1, tag, _a, _b, attr, e_17_1, e_18_1;
1061
- var e_18, _c, e_17, _d;
1062
- return __generator(this, function (_e) {
1063
- switch (_e.label) {
1064
- case 0: return [4 /*yield*/, this.getTagsToBuild()];
1065
- case 1:
1066
- tags = _e.sent();
1067
- _e.label = 2;
1068
- case 2:
1069
- _e.trys.push([2, 13, 14, 15]);
1070
- tags_6 = __values(tags), tags_6_1 = tags_6.next();
1071
- _e.label = 3;
1072
- case 3:
1073
- if (!!tags_6_1.done) return [3 /*break*/, 12];
1074
- tag = tags_6_1.value;
1075
- _e.label = 4;
1076
- case 4:
1077
- _e.trys.push([4, 9, 10, 11]);
1078
- _a = (e_17 = void 0, __values(tag.getAttributesWithState(Attribute_1.AttributeState.Connected))), _b = _a.next();
1079
- _e.label = 5;
1080
- case 5:
1081
- if (!!_b.done) return [3 /*break*/, 8];
1082
- attr = _b.value;
1083
- return [4 /*yield*/, attr.finalize()];
1084
- case 6:
1085
- _e.sent();
1086
- _e.label = 7;
1087
- case 7:
1088
- _b = _a.next();
1089
- return [3 /*break*/, 5];
1090
- case 8: return [3 /*break*/, 11];
1091
- case 9:
1092
- e_17_1 = _e.sent();
1093
- e_17 = { error: e_17_1 };
1094
- return [3 /*break*/, 11];
1095
- case 10:
1096
- try {
1097
- if (_b && !_b.done && (_d = _a.return)) _d.call(_a);
1098
- }
1099
- finally { if (e_17) throw e_17.error; }
1100
- return [7 /*endfinally*/];
1101
- case 11:
1102
- tags_6_1 = tags_6.next();
1103
- return [3 /*break*/, 3];
1104
- case 12: return [3 /*break*/, 15];
1105
- case 13:
1106
- e_18_1 = _e.sent();
1107
- e_18 = { error: e_18_1 };
1108
- return [3 /*break*/, 15];
1109
- case 14:
1110
- try {
1111
- if (tags_6_1 && !tags_6_1.done && (_c = tags_6.return)) _c.call(tags_6);
1112
- }
1113
- finally { if (e_18) throw e_18.error; }
1114
- return [7 /*endfinally*/];
1115
- case 15:
1116
- this._state = TagState.Built;
1117
- this.callOnWrapped('$built', this, this.scope, this.element);
1118
- this.dispatch('$built', this);
1119
- VisionHelper_1.VisionHelper.nice(this.setupDeferredAttributes.bind(this));
1120
- return [2 /*return*/];
1121
- }
1122
- });
1123
- });
1124
- };
1125
- Tag.prototype.callOnWrapped = function (method) {
1126
- var _a;
1127
- var args = [];
1128
- for (var _i = 1; _i < arguments.length; _i++) {
1129
- args[_i - 1] = arguments[_i];
1130
- }
1131
- if (this._uniqueScope && this.scope && this.scope.wrapped && this.scope.wrapped[method]) {
1132
- (_a = this.scope.wrapped)[method].apply(_a, __spreadArray([], __read(args)));
1133
- return true;
1134
- }
1135
- return false;
1136
- };
1137
- Tag.prototype.handleEvent = function (eventType, e) {
1138
- var e_19, _a;
1139
- var _this = this;
1140
- if (this.state === TagState.Deconstructed)
1141
- return;
1142
- if (e)
1143
- e.stopPropagation();
1144
- if (!this.onEventHandlers[eventType])
1145
- return;
1146
- this.scope.set('$event', e);
1147
- this.scope.set('$value', this.value);
1148
- var preventedDefault = false;
1149
- var _loop_1 = function (handler) {
1150
- if (!preventedDefault && handler.modifiers.has('preventdefault') && e.cancelable) {
1151
- e.preventDefault();
1152
- preventedDefault = true;
1153
- }
1154
- if (handler.modifiers.has('once'))
1155
- this_1.removeEventHandler(handler.event, handler.handler, handler.context);
1156
- if (handler.modifiers.has('throttle')) {
1157
- var modifierArguments = handler.modifiers.get('throttle').getArguments(['1000']);
1158
- var throttleTime = parseInt(modifierArguments[0]);
1159
- var now = Math.floor(Date.now());
1160
- if (!handler.state.lastCalled || handler.state.lastCalled + throttleTime < now) {
1161
- handler.state.lastCalled = now;
1162
- }
1163
- else {
1164
- return "continue";
1165
- }
1166
- }
1167
- if (handler.modifiers.has('debounce')) {
1168
- clearTimeout(handler.state.debounceTimeout);
1169
- var modifierArguments = handler.modifiers.get('debounce').getArguments(['1000']);
1170
- var debounceTime = parseInt(modifierArguments[0]);
1171
- handler.state.debounceTimeout = setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {
1172
- return __generator(this, function (_a) {
1173
- switch (_a.label) {
1174
- case 0: return [4 /*yield*/, handler.handler.call(handler.context, e)];
1175
- case 1:
1176
- _a.sent();
1177
- return [2 /*return*/];
1178
- }
1179
- });
1180
- }); }, debounceTime);
1181
- }
1182
- else {
1183
- handler.handler.call(handler.context, e);
1184
- }
1185
- };
1186
- var this_1 = this;
1187
- try {
1188
- for (var _b = __values(this.onEventHandlers[eventType]), _c = _b.next(); !_c.done; _c = _b.next()) {
1189
- var handler = _c.value;
1190
- _loop_1(handler);
1191
- }
1192
- }
1193
- catch (e_19_1) { e_19 = { error: e_19_1 }; }
1194
- finally {
1195
- try {
1196
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
1197
- }
1198
- finally { if (e_19) throw e_19.error; }
1199
- }
1200
- };
1201
- Tag.prototype.hasModifier = function (attribute, modifier) {
1202
- this.attributes;
1203
- return attribute.indexOf("|" + modifier) > -1;
1204
- };
1205
- Tag.prototype.stripModifier = function (attribute, modifier) {
1206
- return attribute.replace("|" + modifier, '');
1207
- };
1208
- Tag.prototype.getElementPath = function (element) {
1209
- var path = [];
1210
- var currentElement = element;
1211
- while (currentElement) {
1212
- var tag = currentElement.tagName;
1213
- if (currentElement.hasAttribute('id'))
1214
- tag += "#" + currentElement.getAttribute('id');
1215
- else if (currentElement.hasAttribute('class'))
1216
- tag += "." + currentElement.getAttribute('class').split(' ').join('.');
1217
- path.push(tag);
1218
- currentElement = currentElement.parentElement;
1219
- }
1220
- return path.reverse().join('>');
1221
- };
1222
- Tag.prototype.addEventHandler = function (eventType, modifiers, handler, context) {
1223
- if (context === void 0) { context = null; }
1224
- var passiveValue = null;
1225
- modifiers = modifiers || new Modifiers_1.Modifiers();
1226
- if (modifiers.has('active')) {
1227
- passiveValue = false;
1228
- }
1229
- else if (modifiers.has('passive')) {
1230
- passiveValue = true;
1231
- }
1232
- if (!this.onEventHandlers[eventType]) {
1233
- this.onEventHandlers[eventType] = [];
1234
- var element = On_1.On.WindowEvents.indexOf(eventType) > -1 && window ? window : this.element;
1235
- var eventListenerOpts = {};
1236
- if (eventType.indexOf('touch') > -1 || passiveValue !== null)
1237
- eventListenerOpts['passive'] = passiveValue === null && true || passiveValue;
1238
- element.addEventListener(eventType, this.getEventBinding(eventType), eventListenerOpts);
1239
- }
1240
- this.onEventHandlers[eventType].push({
1241
- handler: handler,
1242
- event: eventType,
1243
- context: context,
1244
- modifiers: modifiers,
1245
- state: {}
1246
- });
1247
- };
1248
- Tag.prototype.getEventBinding = function (eventType) {
1249
- if (this.onEventBindings[eventType] === undefined)
1250
- this.onEventBindings[eventType] = this.handleEvent.bind(this, eventType);
1251
- return this.onEventBindings[eventType];
1252
- };
1253
- Tag.prototype.removeEventHandler = function (eventType, handler, context) {
1254
- if (context === void 0) { context = null; }
1255
- if (!this.onEventHandlers[eventType])
1256
- return;
1257
- var _handler = this.onEventHandlers[eventType].find(function (h) { return h.handler === handler && h.context === context; });
1258
- if (_handler) {
1259
- this.onEventHandlers[eventType].splice(this.onEventHandlers[eventType].indexOf(_handler), 1);
1260
- if (this.onEventHandlers[eventType].length === 0) {
1261
- this.element.removeEventListener(eventType, this.getEventBinding(eventType));
1262
- }
1263
- }
1264
- };
1265
- Tag.prototype.removeAllEventHandlers = function () {
1266
- var e_20, _a;
1267
- try {
1268
- for (var _b = __values(Object.keys(this.onEventHandlers)), _c = _b.next(); !_c.done; _c = _b.next()) {
1269
- var eventType = _c.value;
1270
- this.element.removeEventListener(eventType, this.getEventBinding(eventType));
1271
- }
1272
- }
1273
- catch (e_20_1) { e_20 = { error: e_20_1 }; }
1274
- finally {
1275
- try {
1276
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
1277
- }
1278
- finally { if (e_20) throw e_20.error; }
1279
- }
1280
- this.onEventHandlers = {};
1281
- };
1282
- Tag.prototype.removeContextEventHandlers = function (context) {
1283
- var e_21, _a, e_22, _b;
1284
- try {
1285
- for (var _c = __values(Object.keys(this.onEventHandlers)), _d = _c.next(); !_d.done; _d = _c.next()) {
1286
- var eventType = _d.value;
1287
- try {
1288
- for (var _e = (e_22 = void 0, __values(this.onEventHandlers[eventType])), _f = _e.next(); !_f.done; _f = _e.next()) {
1289
- var handler = _f.value;
1290
- if (handler.context === context) {
1291
- this.removeEventHandler(eventType, handler.handler, context);
1292
- }
1293
- }
1294
- }
1295
- catch (e_22_1) { e_22 = { error: e_22_1 }; }
1296
- finally {
1297
- try {
1298
- if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
1299
- }
1300
- finally { if (e_22) throw e_22.error; }
1301
- }
1302
- }
1303
- }
1304
- catch (e_21_1) { e_21 = { error: e_21_1 }; }
1305
- finally {
1306
- try {
1307
- if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
1308
- }
1309
- finally { if (e_21) throw e_21.error; }
1310
- }
1311
- };
1312
- Tag.prototype.createScope = function (force) {
1313
- if (force === void 0) { force = false; }
1314
- // Standard attribute requires a unique scope
1315
- // @todo: Does this cause any issues with attribute bindings on the parent scope prior to having its own scope? hmm...
1316
- if (!this._scope && (force || this.uniqueScope)) {
1317
- this._uniqueScope = true;
1318
- this._scope = new Scope_1.Scope();
1319
- if (this.parentTag) {
1320
- this.scope.parentScope = this.parentTag.scope;
1321
- }
1322
- }
1323
- return this._scope;
1324
- };
1325
- Tag.prototype.watchAttribute = function (attributeName) {
1326
- return __awaiter(this, void 0, void 0, function () {
1327
- var standardAttribute;
1328
- return __generator(this, function (_a) {
1329
- switch (_a.label) {
1330
- case 0:
1331
- if (this.attributes.has(attributeName) && this.attributes.get(attributeName) instanceof StandardAttribute_1.StandardAttribute) {
1332
- return [2 /*return*/, this.attributes.get(attributeName)];
1333
- }
1334
- this.createScope(true);
1335
- standardAttribute = new StandardAttribute_1.StandardAttribute(this, attributeName);
1336
- this.attributes.set(attributeName, standardAttribute);
1337
- return [4 /*yield*/, this.setupAttribute(standardAttribute)];
1338
- case 1:
1339
- _a.sent();
1340
- return [2 /*return*/, standardAttribute];
1341
- }
1342
- });
1343
- });
1344
- };
1345
- Tag.prototype.watchStyle = function (styleName) {
1346
- return __awaiter(this, void 0, void 0, function () {
1347
- var styleAttribute;
1348
- return __generator(this, function (_a) {
1349
- switch (_a.label) {
1350
- case 0:
1351
- if (this.attributes.has('style'))
1352
- return [2 /*return*/, this.attributes.get('style')];
1353
- this.createScope(true);
1354
- styleAttribute = new StyleAttribute_1.StyleAttribute(this, 'style');
1355
- this.attributes.set('style', styleAttribute);
1356
- return [4 /*yield*/, this.setupAttribute(styleAttribute)];
1357
- case 1:
1358
- _a.sent();
1359
- return [2 /*return*/, styleAttribute];
1360
- }
1361
- });
1362
- });
1363
- };
1364
- Tag.prototype.setupAttribute = function (attribute) {
1365
- return __awaiter(this, void 0, void 0, function () {
1366
- return __generator(this, function (_a) {
1367
- switch (_a.label) {
1368
- case 0: return [4 /*yield*/, attribute.compile()];
1369
- case 1:
1370
- _a.sent();
1371
- return [4 /*yield*/, attribute.setup()];
1372
- case 2:
1373
- _a.sent();
1374
- return [4 /*yield*/, attribute.extract()];
1375
- case 3:
1376
- _a.sent();
1377
- return [4 /*yield*/, attribute.connect()];
1378
- case 4:
1379
- _a.sent();
1380
- return [2 /*return*/];
1381
- }
1382
- });
1383
- });
1384
- };
1385
- Tag.prototype.setupDeferredAttributes = function () {
1386
- return __awaiter(this, void 0, void 0, function () {
1387
- var _a, _b, attr, e_23_1;
1388
- var e_23, _c;
1389
- return __generator(this, function (_d) {
1390
- switch (_d.label) {
1391
- case 0:
1392
- _d.trys.push([0, 5, 6, 7]);
1393
- _a = __values(this.deferredAttributes), _b = _a.next();
1394
- _d.label = 1;
1395
- case 1:
1396
- if (!!_b.done) return [3 /*break*/, 4];
1397
- attr = _b.value;
1398
- return [4 /*yield*/, this.setupAttribute(attr)];
1399
- case 2:
1400
- _d.sent();
1401
- _d.label = 3;
1402
- case 3:
1403
- _b = _a.next();
1404
- return [3 /*break*/, 1];
1405
- case 4: return [3 /*break*/, 7];
1406
- case 5:
1407
- e_23_1 = _d.sent();
1408
- e_23 = { error: e_23_1 };
1409
- return [3 /*break*/, 7];
1410
- case 6:
1411
- try {
1412
- if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
1413
- }
1414
- finally { if (e_23) throw e_23.error; }
1415
- return [7 /*endfinally*/];
1416
- case 7:
1417
- this.deferredAttributes.length = 0;
1418
- return [2 /*return*/];
1419
- }
1420
- });
1421
- });
1422
- };
1423
- Tag.prototype.deconstruct = function () {
1424
- this._state = TagState.Deconstructed;
1425
- var dom = this.dom || DOM_1.DOM.instance;
1426
- if (dom) {
1427
- dom.removedQueued(this.element);
1428
- dom.deregisterElementInRoot(this);
1429
- }
1430
- this.removeAllEventHandlers();
1431
- this.attributes.forEach(function (attr) { return attr.deconstruct(); });
1432
- this.attributes.clear();
1433
- this.deferredAttributes.length = 0;
1434
- this._children.forEach(function (child) { return child.deconstruct(); });
1435
- this._children.length = 0;
1436
- if (this._controller) {
1437
- this._controller.deconstruct();
1438
- this._controller = null;
1439
- }
1440
- this._parentTag = null;
1441
- this.dom = null;
1442
- _super.prototype.deconstruct.call(this);
1443
- };
1444
- Tag.TaggedVariable = '_vsn_tag';
1445
- Tag.magicAttributes = [
1446
- '@text',
1447
- '@html',
1448
- '@class',
1449
- '@value',
1450
- '@disabled',
1451
- '@hidden',
1452
- '@selected',
1453
- '@readonly',
1454
- '@multiple',
1455
- '@required',
1456
- '@autofocus',
1457
- ];
1458
- Tag.flagAttributes = [
1459
- '@disabled',
1460
- '@hidden',
1461
- '@checked',
1462
- '@selected',
1463
- '@readonly',
1464
- '@multiple',
1465
- '@required',
1466
- '@autofocus',
1467
- ];
1468
- return Tag;
1469
- }(DOMObject_1.DOMObject));
1470
- exports.Tag = Tag;
1471
- //# sourceMappingURL=Tag.js.map