taggedjs 2.5.24 → 2.6.2

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 (347) hide show
  1. package/bundle.js +1 -1
  2. package/bundle.js.map +1 -1
  3. package/js/RegularValue.type.d.ts +1 -0
  4. package/js/RegularValue.type.js +2 -0
  5. package/js/RegularValue.type.js.map +1 -0
  6. package/js/alterProp.function.d.ts +7 -7
  7. package/js/alterProp.function.js +71 -73
  8. package/js/alterProp.function.js.map +1 -1
  9. package/js/deepFunctions.d.ts +2 -2
  10. package/js/deepFunctions.js +25 -33
  11. package/js/deepFunctions.js.map +1 -1
  12. package/js/index.d.ts +6 -9
  13. package/js/index.js +6 -10
  14. package/js/index.js.map +1 -1
  15. package/js/interpolations/attributes/ElementTargetEvent.interface.d.ts +6 -0
  16. package/js/interpolations/attributes/ElementTargetEvent.interface.js +2 -0
  17. package/js/interpolations/attributes/ElementTargetEvent.interface.js.map +1 -0
  18. package/js/interpolations/attributes/addSupportEventListener.function.d.ts +3 -0
  19. package/js/interpolations/attributes/addSupportEventListener.function.js +42 -0
  20. package/js/interpolations/attributes/addSupportEventListener.function.js.map +1 -0
  21. package/js/interpolations/attributes/bindSubjectCallback.function.d.ts +13 -0
  22. package/js/interpolations/attributes/bindSubjectCallback.function.js +74 -0
  23. package/js/interpolations/attributes/bindSubjectCallback.function.js.map +1 -0
  24. package/js/interpolations/attributes/elementInitCheck.d.ts +2 -0
  25. package/js/interpolations/attributes/elementInitCheck.js +18 -0
  26. package/js/interpolations/attributes/elementInitCheck.js.map +1 -0
  27. package/js/interpolations/attributes/getUpTags.function.d.ts +2 -0
  28. package/js/interpolations/attributes/getUpTags.function.js +35 -0
  29. package/js/interpolations/attributes/getUpTags.function.js.map +1 -0
  30. package/js/interpolations/attributes/howToSetInputValue.function.d.ts +2 -0
  31. package/js/interpolations/attributes/howToSetInputValue.function.js +11 -0
  32. package/js/interpolations/attributes/howToSetInputValue.function.js.map +1 -0
  33. package/js/interpolations/attributes/isSpecialAttribute.function.d.ts +3 -0
  34. package/js/interpolations/attributes/isSpecialAttribute.function.js +26 -0
  35. package/js/interpolations/attributes/isSpecialAttribute.function.js.map +1 -0
  36. package/js/interpolations/attributes/processAttribute.function.d.ts +19 -0
  37. package/js/interpolations/attributes/processAttribute.function.js +175 -0
  38. package/js/interpolations/attributes/processAttribute.function.js.map +1 -0
  39. package/js/interpolations/attributes/processAttributeCallback.function.d.ts +3 -0
  40. package/js/interpolations/attributes/processAttributeCallback.function.js +12 -0
  41. package/js/interpolations/attributes/processAttributeCallback.function.js.map +1 -0
  42. package/js/interpolations/attributes/processNameValueAttribute.function.d.ts +7 -0
  43. package/js/interpolations/attributes/processNameValueAttribute.function.js +24 -0
  44. package/js/interpolations/attributes/processNameValueAttribute.function.js.map +1 -0
  45. package/js/interpolations/attributes/renderTagArray.function.d.ts +2 -0
  46. package/js/interpolations/attributes/renderTagArray.function.js +17 -0
  47. package/js/interpolations/attributes/renderTagArray.function.js.map +1 -0
  48. package/js/interpolations/attributes/specialAttribute.d.ts +2 -0
  49. package/js/interpolations/attributes/specialAttribute.js +44 -0
  50. package/js/interpolations/attributes/specialAttribute.js.map +1 -0
  51. package/js/interpolations/bindSubjectCallback.function.d.ts +8 -7
  52. package/js/interpolations/bindSubjectCallback.function.js +13 -46
  53. package/js/interpolations/bindSubjectCallback.function.js.map +1 -1
  54. package/js/interpolations/index.d.ts +2 -0
  55. package/js/interpolations/index.js +3 -0
  56. package/js/interpolations/index.js.map +1 -0
  57. package/js/interpolations/interpolateAttributes.d.ts +0 -3
  58. package/js/interpolations/interpolateAttributes.js +2 -14
  59. package/js/interpolations/interpolateAttributes.js.map +1 -1
  60. package/js/interpolations/interpolateTemplate.d.ts +1 -4
  61. package/js/interpolations/interpolateTemplate.js +1 -29
  62. package/js/interpolations/interpolateTemplate.js.map +1 -1
  63. package/js/interpolations/optimizers/LikeObjectElement.type.d.ts +15 -0
  64. package/js/interpolations/optimizers/LikeObjectElement.type.js +2 -0
  65. package/js/interpolations/optimizers/LikeObjectElement.type.js.map +1 -0
  66. package/js/interpolations/optimizers/ObjectNode.types.d.ts +21 -14
  67. package/js/interpolations/optimizers/attachDomElements.function.d.ts +13 -0
  68. package/js/interpolations/optimizers/attachDomElements.function.js +107 -0
  69. package/js/interpolations/optimizers/attachDomElements.function.js.map +1 -0
  70. package/js/interpolations/optimizers/exchangeParsedForValues.function.d.ts +15 -0
  71. package/js/interpolations/optimizers/exchangeParsedForValues.function.js +2 -0
  72. package/js/interpolations/optimizers/exchangeParsedForValues.function.js.map +1 -0
  73. package/js/interpolations/optimizers/htmlInterpolationToDomMeta.function.d.ts +4 -3
  74. package/js/interpolations/optimizers/htmlInterpolationToDomMeta.function.js +121 -56
  75. package/js/interpolations/optimizers/htmlInterpolationToDomMeta.function.js.map +1 -1
  76. package/js/interpolations/optimizers/metaAttachDomElements.function.d.ts +9 -3
  77. package/js/interpolations/optimizers/metaAttachDomElements.function.js +82 -36
  78. package/js/interpolations/optimizers/metaAttachDomElements.function.js.map +1 -1
  79. package/js/interpolations/optimizers/replacePlaceholders.function.d.ts +3 -2
  80. package/js/interpolations/optimizers/replacePlaceholders.function.js +38 -59
  81. package/js/interpolations/optimizers/replacePlaceholders.function.js.map +1 -1
  82. package/js/interpolations/optimizers/restorePlaceholders.function.d.ts +1 -1
  83. package/js/interpolations/optimizers/restorePlaceholders.function.js +14 -13
  84. package/js/interpolations/optimizers/restorePlaceholders.function.js.map +1 -1
  85. package/js/interpolations/optimizers/test.function.d.ts +10 -0
  86. package/js/interpolations/optimizers/test.function.js +19 -0
  87. package/js/interpolations/optimizers/test.function.js.map +1 -0
  88. package/js/interpolations/optimizers/types.d.ts +8 -0
  89. package/js/interpolations/optimizers/types.js +2 -0
  90. package/js/interpolations/optimizers/types.js.map +1 -0
  91. package/js/interpolations/processAttribute.function.d.ts +10 -5
  92. package/js/interpolations/processAttribute.function.js +111 -67
  93. package/js/interpolations/processAttribute.function.js.map +1 -1
  94. package/js/interpolations/processSubscriptionUpdate.function.d.ts +4 -0
  95. package/js/interpolations/processSubscriptionUpdate.function.js +14 -0
  96. package/js/interpolations/processSubscriptionUpdate.function.js.map +1 -0
  97. package/js/interpolations/specialAttribute.js +18 -9
  98. package/js/interpolations/specialAttribute.js.map +1 -1
  99. package/js/interpolations/subscribeToTemplate.function.d.ts +10 -2
  100. package/js/interpolations/subscribeToTemplate.function.js +19 -20
  101. package/js/interpolations/subscribeToTemplate.function.js.map +1 -1
  102. package/js/isInstance.d.ts +10 -6
  103. package/js/isInstance.js +33 -25
  104. package/js/isInstance.js.map +1 -1
  105. package/js/state/callbackMaker.function.d.ts +1 -1
  106. package/js/state/callbackMaker.function.js +21 -30
  107. package/js/state/callbackMaker.function.js.map +1 -1
  108. package/js/state/callbackStateUpdate.function.d.ts +1 -1
  109. package/js/state/callbackStateUpdate.function.js +6 -5
  110. package/js/state/callbackStateUpdate.function.js.map +1 -1
  111. package/js/state/getCallbackValue.function.d.ts +4 -0
  112. package/js/state/getCallbackValue.function.js +10 -0
  113. package/js/state/getCallbackValue.function.js.map +1 -0
  114. package/js/state/getStateValue.function.d.ts +2 -0
  115. package/js/state/getStateValue.function.js +24 -0
  116. package/js/state/getStateValue.function.js.map +1 -0
  117. package/js/state/handleProviderChanges.function.d.ts +7 -1
  118. package/js/state/handleProviderChanges.function.js +7 -21
  119. package/js/state/handleProviderChanges.function.js.map +1 -1
  120. package/js/state/index.d.ts +2 -3
  121. package/js/state/index.js +2 -2
  122. package/js/state/index.js.map +1 -1
  123. package/js/state/letState.function.d.ts +2 -0
  124. package/js/state/letState.function.js +28 -28
  125. package/js/state/letState.function.js.map +1 -1
  126. package/js/state/onDestroy.js +3 -2
  127. package/js/state/onDestroy.js.map +1 -1
  128. package/js/state/providers.d.ts +0 -1
  129. package/js/state/providers.js +20 -15
  130. package/js/state/providers.js.map +1 -1
  131. package/js/state/providersChangeCheck.function.d.ts +2 -2
  132. package/js/state/providersChangeCheck.function.js +9 -10
  133. package/js/state/providersChangeCheck.function.js.map +1 -1
  134. package/js/state/setUse.function.d.ts +1 -11
  135. package/js/state/setUse.function.js +12 -13
  136. package/js/state/setUse.function.js.map +1 -1
  137. package/js/state/state.function.js +2 -47
  138. package/js/state/state.function.js.map +1 -1
  139. package/js/state/state.types.d.ts +8 -0
  140. package/js/state/state.types.js +2 -0
  141. package/js/state/state.types.js.map +1 -0
  142. package/js/state/state.utils.d.ts +11 -10
  143. package/js/state/state.utils.js +35 -65
  144. package/js/state/state.utils.js.map +1 -1
  145. package/js/state/stateHandlers.d.ts +2 -0
  146. package/js/state/stateHandlers.js +36 -0
  147. package/js/state/stateHandlers.js.map +1 -0
  148. package/js/state/subject.function.js +10 -6
  149. package/js/state/subject.function.js.map +1 -1
  150. package/js/state/syncStates.function.d.ts +1 -1
  151. package/js/state/syncStates.function.js +8 -5
  152. package/js/state/syncStates.function.js.map +1 -1
  153. package/js/state/watch.function.js +6 -6
  154. package/js/state/watch.function.js.map +1 -1
  155. package/js/subject/Subject.class.d.ts +9 -2
  156. package/js/subject/Subject.class.js +36 -11
  157. package/js/subject/Subject.class.js.map +1 -1
  158. package/js/subject/ValueSubject.d.ts +6 -1
  159. package/js/subject/ValueSubject.js +15 -1
  160. package/js/subject/ValueSubject.js.map +1 -1
  161. package/js/subject/combineLatest.function.js +2 -2
  162. package/js/subject/combineLatest.function.js.map +1 -1
  163. package/js/subject/subject.utils.js +5 -4
  164. package/js/subject/subject.utils.js.map +1 -1
  165. package/js/subject.types.d.ts +2 -10
  166. package/js/tag/Context.types.d.ts +21 -0
  167. package/js/tag/Context.types.js +2 -0
  168. package/js/tag/Context.types.js.map +1 -0
  169. package/js/tag/Support.class.d.ts +31 -66
  170. package/js/tag/Support.class.js +36 -285
  171. package/js/tag/Support.class.js.map +1 -1
  172. package/js/tag/Tag.class.d.ts +29 -28
  173. package/js/tag/Tag.class.js +34 -46
  174. package/js/tag/Tag.class.js.map +1 -1
  175. package/js/tag/TemplaterResult.class.d.ts +32 -38
  176. package/js/tag/TemplaterResult.class.js +11 -34
  177. package/js/tag/TemplaterResult.class.js.map +1 -1
  178. package/js/tag/ValueTypes.enum.d.ts +23 -13
  179. package/js/tag/ValueTypes.enum.js +28 -19
  180. package/js/tag/ValueTypes.enum.js.map +1 -1
  181. package/js/tag/buildBeforeElement.function.d.ts +10 -0
  182. package/js/tag/buildBeforeElement.function.js +47 -0
  183. package/js/tag/buildBeforeElement.function.js.map +1 -0
  184. package/js/tag/buildSupportContext.function.d.ts +3 -0
  185. package/js/tag/buildSupportContext.function.js +15 -0
  186. package/js/tag/buildSupportContext.function.js.map +1 -0
  187. package/js/tag/checkDestroyPrevious.function.d.ts +5 -8
  188. package/js/tag/checkDestroyPrevious.function.js +53 -71
  189. package/js/tag/checkDestroyPrevious.function.js.map +1 -1
  190. package/js/tag/clonePropsBy.function.d.ts +6 -0
  191. package/js/tag/clonePropsBy.function.js +27 -0
  192. package/js/tag/clonePropsBy.function.js.map +1 -0
  193. package/js/tag/cloneValueArray.function.d.ts +4 -3
  194. package/js/tag/cloneValueArray.function.js +17 -13
  195. package/js/tag/cloneValueArray.function.js.map +1 -1
  196. package/js/tag/destroy.support.d.ts +7 -5
  197. package/js/tag/destroy.support.js +44 -6
  198. package/js/tag/destroy.support.js.map +1 -1
  199. package/js/tag/destroySupport.function.d.ts +2 -0
  200. package/js/tag/destroySupport.function.js +21 -0
  201. package/js/tag/destroySupport.function.js.map +1 -0
  202. package/js/tag/destroyTag.function.js +4 -4
  203. package/js/tag/destroyTag.function.js.map +1 -1
  204. package/js/tag/domMetaCollector.d.ts +2 -2
  205. package/js/tag/domMetaCollector.js +12 -8
  206. package/js/tag/domMetaCollector.js.map +1 -1
  207. package/js/tag/elementDestroyCheck.function.js +4 -7
  208. package/js/tag/elementDestroyCheck.function.js.map +1 -1
  209. package/js/tag/executeWrap.function.d.ts +5 -0
  210. package/js/tag/executeWrap.function.js +23 -0
  211. package/js/tag/executeWrap.function.js.map +1 -0
  212. package/js/tag/getChildTagsToDestroy.function.d.ts +8 -0
  213. package/js/tag/getChildTagsToDestroy.function.js +47 -0
  214. package/js/tag/getChildTagsToDestroy.function.js.map +1 -0
  215. package/js/tag/getStringsId.function.d.ts +1 -1
  216. package/js/tag/getStringsId.function.js +1 -2
  217. package/js/tag/getStringsId.function.js.map +1 -1
  218. package/js/tag/getSupportInCycle.function.js +2 -2
  219. package/js/tag/getSupportInCycle.function.js.map +1 -1
  220. package/js/tag/getTagWrap.function.d.ts +2 -0
  221. package/js/tag/getTagWrap.function.js +24 -68
  222. package/js/tag/getTagWrap.function.js.map +1 -1
  223. package/js/tag/getValueType.function.d.ts +3 -2
  224. package/js/tag/getValueType.function.js +17 -30
  225. package/js/tag/getValueType.function.js.map +1 -1
  226. package/js/tag/hasPropChanges.function.js +4 -10
  227. package/js/tag/hasPropChanges.function.js.map +1 -1
  228. package/js/tag/hasSupportChanged.function.d.ts +6 -2
  229. package/js/tag/hasSupportChanged.function.js +143 -24
  230. package/js/tag/hasSupportChanged.function.js.map +1 -1
  231. package/js/tag/html.d.ts +5 -6
  232. package/js/tag/html.js +9 -3
  233. package/js/tag/html.js.map +1 -1
  234. package/js/tag/index.d.ts +11 -1
  235. package/js/tag/index.js +11 -1
  236. package/js/tag/index.js.map +1 -1
  237. package/js/tag/isLikeTags.function.d.ts +4 -3
  238. package/js/tag/isLikeTags.function.js +18 -31
  239. package/js/tag/isLikeTags.function.js.map +1 -1
  240. package/js/tag/key.d.ts +6 -0
  241. package/js/tag/key.js +9 -0
  242. package/js/tag/key.js.map +1 -0
  243. package/js/tag/kidsToTagArraySubject.function.d.ts +2 -2
  244. package/js/tag/kidsToTagArraySubject.function.js +2 -1
  245. package/js/tag/kidsToTagArraySubject.function.js.map +1 -1
  246. package/js/tag/paint.function.d.ts +15 -0
  247. package/js/tag/paint.function.js +42 -0
  248. package/js/tag/paint.function.js.map +1 -0
  249. package/js/tag/processUpdateAttrContext.function.d.ts +3 -0
  250. package/js/tag/processUpdateAttrContext.function.js +14 -0
  251. package/js/tag/processUpdateAttrContext.function.js.map +1 -0
  252. package/js/tag/processUpdateContext.function.d.ts +5 -0
  253. package/js/tag/processUpdateContext.function.js +35 -0
  254. package/js/tag/processUpdateContext.function.js.map +1 -0
  255. package/js/tag/render/destroyUnlikeTags.function.d.ts +3 -5
  256. package/js/tag/render/destroyUnlikeTags.function.js +1 -3
  257. package/js/tag/render/destroyUnlikeTags.function.js.map +1 -1
  258. package/js/tag/render/renderExistingTag.function.d.ts +4 -6
  259. package/js/tag/render/renderExistingTag.function.js +11 -27
  260. package/js/tag/render/renderExistingTag.function.js.map +1 -1
  261. package/js/tag/render/renderSubjectComponent.function.js +14 -5
  262. package/js/tag/render/renderSubjectComponent.function.js.map +1 -1
  263. package/js/tag/render/renderSupport.function.d.ts +8 -3
  264. package/js/tag/render/renderSupport.function.js +68 -32
  265. package/js/tag/render/renderSupport.function.js.map +1 -1
  266. package/js/tag/render/renderTagOnly.function.d.ts +4 -3
  267. package/js/tag/render/renderTagOnly.function.js +33 -24
  268. package/js/tag/render/renderTagOnly.function.js.map +1 -1
  269. package/js/tag/render/renderWithSupport.function.d.ts +8 -4
  270. package/js/tag/render/renderWithSupport.function.js +12 -10
  271. package/js/tag/render/renderWithSupport.function.js.map +1 -1
  272. package/js/tag/render/softDestroySupport.function.d.ts +1 -2
  273. package/js/tag/render/softDestroySupport.function.js +22 -18
  274. package/js/tag/render/softDestroySupport.function.js.map +1 -1
  275. package/js/tag/smartRemoveKids.function.d.ts +3 -0
  276. package/js/tag/smartRemoveKids.function.js +80 -0
  277. package/js/tag/smartRemoveKids.function.js.map +1 -0
  278. package/js/tag/tag.d.ts +16 -3
  279. package/js/tag/tag.js +48 -16
  280. package/js/tag/tag.js.map +1 -1
  281. package/js/tag/tag.types.d.ts +6 -4
  282. package/js/tag/tag.utils.d.ts +15 -12
  283. package/js/tag/tag.utils.js.map +1 -1
  284. package/js/tag/tagElement.d.ts +11 -5
  285. package/js/tag/tagElement.js +114 -41
  286. package/js/tag/tagElement.js.map +1 -1
  287. package/js/tag/tagRunner.d.ts +2 -4
  288. package/js/tag/tagRunner.js +17 -39
  289. package/js/tag/tagRunner.js.map +1 -1
  290. package/js/tag/textNode.js +1 -1
  291. package/js/tag/textNode.js.map +1 -1
  292. package/js/tag/update/TagJsSubject.class.d.ts +0 -6
  293. package/js/tag/update/TagJsSubject.class.js +1 -8
  294. package/js/tag/update/TagJsSubject.class.js.map +1 -1
  295. package/js/tag/update/afterChildrenBuilt.function.d.ts +6 -0
  296. package/js/tag/update/afterChildrenBuilt.function.js +25 -0
  297. package/js/tag/update/afterChildrenBuilt.function.js.map +1 -0
  298. package/js/tag/update/getNewGlobal.function.d.ts +2 -0
  299. package/js/tag/update/getNewGlobal.function.js +7 -0
  300. package/js/tag/update/getNewGlobal.function.js.map +1 -0
  301. package/js/tag/update/oneRenderToSupport.function.d.ts +2 -2
  302. package/js/tag/update/oneRenderToSupport.function.js +7 -7
  303. package/js/tag/update/oneRenderToSupport.function.js.map +1 -1
  304. package/js/tag/update/processFirstSubject.utils.d.ts +4 -11
  305. package/js/tag/update/processFirstSubjectComponent.function.d.ts +6 -0
  306. package/js/tag/update/processFirstSubjectComponent.function.js +36 -0
  307. package/js/tag/update/processFirstSubjectComponent.function.js.map +1 -0
  308. package/js/tag/update/processFirstSubjectValue.function.d.ts +8 -8
  309. package/js/tag/update/processFirstSubjectValue.function.js +75 -39
  310. package/js/tag/update/processFirstSubjectValue.function.js.map +1 -1
  311. package/js/tag/update/processNewValue.function.d.ts +4 -3
  312. package/js/tag/update/processNewValue.function.js +27 -27
  313. package/js/tag/update/processNewValue.function.js.map +1 -1
  314. package/js/tag/update/processRegularValue.function.d.ts +4 -6
  315. package/js/tag/update/processRegularValue.function.js +10 -23
  316. package/js/tag/update/processRegularValue.function.js.map +1 -1
  317. package/js/tag/update/processSubjectComponent.function.d.ts +3 -5
  318. package/js/tag/update/processSubjectComponent.function.js +18 -22
  319. package/js/tag/update/processSubjectComponent.function.js.map +1 -1
  320. package/js/tag/update/processTag.function.d.ts +13 -10
  321. package/js/tag/update/processTag.function.js +51 -37
  322. package/js/tag/update/processTag.function.js.map +1 -1
  323. package/js/tag/update/processTagArray.d.ts +7 -26
  324. package/js/tag/update/processTagArray.js +118 -141
  325. package/js/tag/update/processTagArray.js.map +1 -1
  326. package/js/tag/update/processTagResult.function.d.ts +4 -8
  327. package/js/tag/update/processTagResult.function.js +31 -30
  328. package/js/tag/update/processTagResult.function.js.map +1 -1
  329. package/js/tag/update/updateContextItem.function.d.ts +6 -2
  330. package/js/tag/update/updateContextItem.function.js +11 -9
  331. package/js/tag/update/updateContextItem.function.js.map +1 -1
  332. package/js/tag/update/updateExistingTagComponent.function.d.ts +7 -8
  333. package/js/tag/update/updateExistingTagComponent.function.js +76 -98
  334. package/js/tag/update/updateExistingTagComponent.function.js.map +1 -1
  335. package/js/tag/update/updateExistingValue.function.d.ts +4 -4
  336. package/js/tag/update/updateExistingValue.function.js +81 -101
  337. package/js/tag/update/updateExistingValue.function.js.map +1 -1
  338. package/js/tag/update/validateTemplater.function.d.ts +2 -0
  339. package/js/tag/update/validateTemplater.function.js +17 -0
  340. package/js/tag/update/validateTemplater.function.js.map +1 -0
  341. package/js/tag/updateSupportBy.function.d.ts +3 -0
  342. package/js/tag/updateSupportBy.function.js +18 -0
  343. package/js/tag/updateSupportBy.function.js.map +1 -0
  344. package/js/updateBeforeTemplate.function.d.ts +2 -3
  345. package/js/updateBeforeTemplate.function.js +10 -8
  346. package/js/updateBeforeTemplate.function.js.map +1 -1
  347. package/package.json +1 -1
package/js/tag/tag.js CHANGED
@@ -1,59 +1,91 @@
1
1
  // taggedjs-no-compile
2
- import { setUse } from '../state/index.js';
3
- import { TemplaterResult } from './TemplaterResult.class.js';
2
+ import { setUseMemory } from '../state/index.js';
3
+ import { getTemplaterResult } from './TemplaterResult.class.js';
4
4
  import { tags } from './tag.utils.js';
5
5
  import { getTagWrap } from './getTagWrap.function.js';
6
6
  import { ValueTypes } from './ValueTypes.enum.js';
7
+ import { key } from './key.js';
7
8
  let tagCount = 0;
9
+ export var PropWatches;
10
+ (function (PropWatches) {
11
+ PropWatches["DEEP"] = "deep";
12
+ PropWatches["SHALLOW"] = "shallow";
13
+ PropWatches["NONE"] = "none";
14
+ PropWatches["IMMUTABLE"] = "immutable";
15
+ })(PropWatches || (PropWatches = {}));
8
16
  /** Wraps a function tag in a state manager and calls wrapped function on event cycles
9
17
  * For single rendering, no event cycles, use: tag.renderOnce = (props) => html``
10
18
  */
11
- export function tag(tagComponent) {
19
+ export function tag(tagComponent, propWatch = PropWatches.SHALLOW) {
12
20
  /** function developer triggers */
13
21
  const parentWrap = (function tagWrapper(...props) {
14
- const templater = new TemplaterResult(props);
22
+ const templater = getTemplaterResult(propWatch, props);
15
23
  templater.tagJsType = ValueTypes.tagComponent;
16
24
  // attach memory back to original function that contains developer display logic
17
25
  const innerTagWrap = getTagWrap(templater, parentWrap);
18
26
  if (!innerTagWrap.parentWrap) {
19
27
  innerTagWrap.parentWrap = parentWrap;
20
28
  }
21
- templater.tagged = true;
22
29
  templater.wrapper = innerTagWrap;
23
30
  return templater;
24
31
  }) // we override the function provided and pretend original is what's returned
25
32
  ;
26
33
  parentWrap.original = tagComponent;
27
- parentWrap.compareTo = tagComponent.toString();
34
+ // parentWrap.compareTo = (tagComponent as any).toString()
28
35
  const tag = tagComponent;
29
- parentWrap.isTag = true;
30
36
  parentWrap.original = tag;
31
37
  // group tags together and have hmr pickup
32
38
  tag.tags = tags;
33
- tag.setUse = setUse;
39
+ tag.setUse = setUseMemory;
40
+ tag.ValueTypes = ValueTypes;
34
41
  tag.tagIndex = tagCount++; // needed for things like HMR
35
42
  tags.push(parentWrap);
36
43
  return parentWrap;
37
44
  }
38
45
  /** Used to create a tag component that renders once and has no addition rendering cycles */
39
- tag.oneRender = (...props) => {
40
- throw new Error('Do not call function tag.oneRender but instead set it as: `(props) => tag.oneRender = (state) => html`` `');
46
+ tag.renderOnce = function () {
47
+ throw new Error('Do not call tag.renderOnce as a function but instead set it as: `(props) => tag.renderOnce = () => html`` `');
41
48
  };
49
+ /** Used to create variable scoping when calling a function that lives within a prop container function */
50
+ tag.state = function () {
51
+ throw new Error('Do not call tag.state as a function but instead set it as: `(props) => tag.state = (state) => html`` `');
52
+ };
53
+ // TODO???: Is tag.route and tag.app in use?
42
54
  /** Use to structure and define a browser tag route handler
43
55
  * Example: export default tag.route = (routeProps: RouteProps) => (state) => html``
44
56
  */
45
- tag.route = (routeProps) => {
46
- throw new Error('Do not call function tag.route but instead set it as: `tag.route = (routeProps: RouteProps) => (state) => html`` `');
57
+ tag.route = function (routeProps) {
58
+ throw new Error('Do not call tag.route as a function but instead set it as: `tag.route = (routeProps: RouteProps) => (state) => html`` `');
47
59
  };
60
+ tag.key = key;
48
61
  /** Use to structure and define a browser tag route handler
49
62
  * Example: export default tag.route = (routeProps: RouteProps) => (state) => html``
50
63
  */
51
- tag.app = (routeTag) => {
52
- throw new Error('Do not call function tag.route but instead set it as: `tag.route = (routeProps: RouteProps) => (state) => html`` `');
64
+ tag.app = function (routeTag) {
65
+ throw new Error('Do not call tag.route as a function but instead set it as: `tag.route = (routeProps: RouteProps) => (state) => html`` `');
66
+ };
67
+ tag.deepPropWatch = tag;
68
+ tag.immutableProps = function immutableProps(tagComponent) {
69
+ return tag(tagComponent, PropWatches.IMMUTABLE);
70
+ };
71
+ tag.watchProps = function watchProps(tagComponent) {
72
+ return tag(tagComponent, PropWatches.SHALLOW);
53
73
  };
54
- Object.defineProperty(tag, 'oneRender', {
74
+ Object.defineProperty(tag, 'renderOnce', {
55
75
  set(oneRenderFunction) {
56
- oneRenderFunction.oneRender = true;
76
+ oneRenderFunction.tagJsType = ValueTypes.renderOnce;
77
+ },
78
+ });
79
+ Object.defineProperty(tag, 'state', {
80
+ set(renderFunction) {
81
+ ;
82
+ renderFunction.parentWrap = {
83
+ original: {
84
+ setUse: setUseMemory,
85
+ tags,
86
+ }
87
+ };
88
+ renderFunction.tagJsType = ValueTypes.stateRender;
57
89
  },
58
90
  });
59
91
  //# sourceMappingURL=tag.js.map
package/js/tag/tag.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tag.js","sourceRoot":"","sources":["../../ts/tag/tag.ts"],"names":[],"mappings":"AAAA,sBAAsB;AAGtB,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,eAAe,EAAW,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAA4B,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,IAAI,QAAQ,GAAG,CAAC,CAAA;AAIhB;;GAEG;AACH,MAAM,UAAU,GAAG,CACjB,YAAe;IAEf,kCAAkC;IAClC,MAAM,UAAU,GAAG,CAAC,SAAS,UAAU,CACrC,GAAG,KAA0B;QAE7B,MAAM,SAAS,GAAoB,IAAI,eAAe,CAAC,KAAK,CAAC,CAAA;QAC7D,SAAS,CAAC,SAAS,GAAG,UAAU,CAAC,YAAY,CAAA;QAE7C,gFAAgF;QAChF,MAAM,YAAY,GAAY,UAAU,CACtC,SAAS,EACT,UAAU,CACX,CAAA;QAED,IAAG,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;YAC5B,YAAY,CAAC,UAAU,GAAG,UAAU,CAAA;QACtC,CAAC;QAED,SAAS,CAAC,MAAM,GAAG,IAAI,CAAA;QACvB,SAAS,CAAC,OAAO,GAAG,YAAuB,CAAA;QAE3C,OAAO,SAAS,CAAA;IAClB,CAAC,CAAkB,CAAA,4EAA4E;KAE9F;IAAC,UAAkB,CAAC,QAAQ,GAAG,YAAY,CAAA;IAC5C,UAAU,CAAC,SAAS,GAAI,YAAoB,CAAC,QAAQ,EAAE,CAAA;IAEvD,MAAM,GAAG,GAAG,YAAuC,CAAA;IACnD,UAAU,CAAC,KAAK,GAAG,IAAI,CAAA;IACvB,UAAU,CAAC,QAAQ,GAAG,GAAG,CAAA;IAEzB,0CAA0C;IAC1C,GAAG,CAAC,IAAI,GAAG,IAAI,CAAA;IACf,GAAG,CAAC,MAAM,GAAG,MAAM,CAAA;IACnB,GAAG,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAA,CAAC,6BAA6B;IACvD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAErB,OAAO,UAAmD,CAAA;AAC5D,CAAC;AAED,4FAA4F;AAC5F,GAAG,CAAC,SAAS,GAAG,CAAC,GAAG,KAAY,EAA4B,EAAE;IAC5D,MAAM,IAAI,KAAK,CAAC,2GAA2G,CAAC,CAAA;AAC9H,CAAC,CAAA;AAED;;GAEG;AACH,GAAG,CAAC,KAAK,GAAG,CAAC,UAAsB,EAAc,EAAE;IACjD,MAAM,IAAI,KAAK,CAAC,oHAAoH,CAAC,CAAA;AACvI,CAAC,CAAA;AAED;;GAEG;AACH,GAAG,CAAC,GAAG,GAAG,CAAC,QAAkB,EAAc,EAAE;IAC3C,MAAM,IAAI,KAAK,CAAC,oHAAoH,CAAC,CAAA;AACvI,CAAC,CAAA;AAED,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE;IACtC,GAAG,CAAC,iBAA2B;QAC5B,iBAAyB,CAAC,SAAS,GAAG,IAAI,CAAA;IAC7C,CAAC;CACF,CAAC,CAAA"}
1
+ {"version":3,"file":"tag.js","sourceRoot":"","sources":["../../ts/tag/tag.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { ValueSubject } from '../subject/index.js';
2
- import { Dom, Tag } from './Tag.class.js';
2
+ import { DomTag, StringTag } from './Tag.class.js';
3
3
  export declare class RouteQuery {
4
4
  get(name: string): string | undefined;
5
5
  }
@@ -8,6 +8,8 @@ export type RouteProps = {
8
8
  paramSubject: ValueSubject<string>;
9
9
  query: RouteQuery;
10
10
  };
11
- export type ToTag = (...props: any[]) => StateToTag | Tag | Dom | null;
12
- export type StateToTag = () => Tag | Dom | null;
13
- export type RouteTag = (extraProps?: Record<string, any>) => Tag | Dom;
11
+ export type ToTag = ((...props: any[]) => StateToTag | StringTag | DomTag | null) & {
12
+ arrayValue?: unknown;
13
+ };
14
+ export type StateToTag = () => StringTag | DomTag | null;
15
+ export type RouteTag = (extraProps?: Record<string, any>) => StringTag | DomTag;
@@ -1,24 +1,27 @@
1
- import { Dom, Tag, TagTemplate } from './Tag.class.js';
1
+ import { DomTag, StringTag, TagTemplate } from './Tag.class.js';
2
2
  import { TemplaterResult } from './TemplaterResult.class.js';
3
3
  import { ValueSubject } from '../subject/ValueSubject.js';
4
- import { setUse } from '../state/index.js';
5
- export type TagChildren = ValueSubject<(Tag | Dom)[]> & {
6
- lastArray?: (Tag | Dom)[];
4
+ import { setUseMemory } from '../state/index.js';
5
+ import { ValueTypes } from './ValueTypes.enum.js';
6
+ export type TagChildren = ValueSubject<(StringTag | DomTag)[]> & {
7
+ lastArray?: (StringTag | DomTag)[];
7
8
  };
8
- export type TagChildrenInput = (Tag | Dom)[] | Dom | Tag | TagChildren;
9
- export type TagComponent = ((...args: any[]) => (Tag | Dom)) & {
9
+ export type TagChildrenInput = (StringTag | DomTag)[] | DomTag | StringTag | TagChildren;
10
+ export type TagComponent = ((...args: any[]) => (StringTag | DomTag)) & {
10
11
  tags?: TagWrapper<any>[];
11
- setUse?: typeof setUse;
12
12
  tagIndex?: number;
13
+ setUse?: typeof setUseMemory;
14
+ ValueTypes: typeof ValueTypes;
13
15
  };
14
16
  export declare const tags: TagWrapper<any>[];
17
+ export type Original = ((...args: any[]) => any) & {
18
+ setUse: any[];
19
+ };
15
20
  export type TagWrapper<T> = ((...props: T[]) => TemplaterResult) & {
16
- original: ((...args: any[]) => any);
17
- compareTo: string;
18
- isTag: boolean;
19
- oneRender?: true;
21
+ original: Original;
22
+ tagJsType?: typeof ValueTypes.renderOnce | typeof ValueTypes.stateRender;
20
23
  lastRuns?: {
21
24
  [index: number]: TagTemplate;
22
25
  };
23
26
  };
24
- export type TagMaker = ((...args: any[]) => (Tag | Dom)) | ((...args: any[]) => (...args: any[]) => (Tag | Dom));
27
+ export type TagMaker = ((...args: any[]) => (StringTag | DomTag)) | ((...args: any[]) => (...args: any[]) => (StringTag | DomTag));
@@ -1 +1 @@
1
- {"version":3,"file":"tag.utils.js","sourceRoot":"","sources":["../../ts/tag/tag.utils.ts"],"names":[],"mappings":"AAeA,MAAM,CAAC,MAAM,IAAI,GAAsB,EAAE,CAAA"}
1
+ {"version":3,"file":"tag.utils.js","sourceRoot":"","sources":["../../ts/tag/tag.utils.ts"],"names":[],"mappings":"AAmBA,MAAM,CAAC,MAAM,IAAI,GAAsB,EAAE,CAAA"}
@@ -1,6 +1,12 @@
1
- import { Support } from './Support.class.js';
2
1
  import { TemplaterResult } from './TemplaterResult.class.js';
2
+ import { BaseSupport } from './Support.class.js';
3
3
  import { TagComponent, TagMaker } from './tag.utils.js';
4
+ import { ValueTypes } from './ValueTypes.enum.js';
5
+ import { ContextItem } from './Context.types.js';
6
+ export type TagAppElement = Element & {
7
+ ValueTypes: typeof ValueTypes;
8
+ setUse: any;
9
+ };
4
10
  /**
5
11
  *
6
12
  * @param app taggedjs tag
@@ -8,9 +14,9 @@ import { TagComponent, TagMaker } from './tag.utils.js';
8
14
  * @param props object
9
15
  * @returns
10
16
  */
11
- export declare function tagElement(app: TagMaker, // (...args: unknown[]) => TemplaterResult,
12
- element: HTMLElement | Element, props?: unknown): {
13
- support: Support;
17
+ export declare function tagElement(app: TagMaker, element: HTMLElement | Element, props?: unknown): {
18
+ support: BaseSupport;
14
19
  tags: TagComponent[];
20
+ ValueTypes: typeof ValueTypes;
15
21
  };
16
- export declare function runWrapper(templater: TemplaterResult, insertBefore: Element, placeholder: Text): Support;
22
+ export declare function runWrapper(templater: TemplaterResult, placeholder: Text, appElement: Element, subject: ContextItem): import("./Support.class.js").AnySupport;
@@ -1,8 +1,16 @@
1
- import { BaseSupport } from './Support.class.js';
2
- import { runAfterRender, runBeforeRender } from './tagRunner.js';
3
- import { TagJsSubject } from './update/TagJsSubject.class.js';
4
- import { afterChildrenBuilt } from './update/processTag.function.js';
5
- import { textNode } from './textNode.js';
1
+ import { getBaseSupport } from './Support.class.js';
2
+ import { subscribeToTemplate } from '../interpolations/subscribeToTemplate.function.js';
3
+ import { buildBeforeElement } from './buildBeforeElement.function.js';
4
+ import { getNewGlobal } from './update/getNewGlobal.function.js';
5
+ import { BasicTypes, ValueTypes } from './ValueTypes.enum.js';
6
+ import { destroySupport } from './destroySupport.function.js';
7
+ import { checkTagValueChange, PropWatches } from './index.js';
8
+ import { setUseMemory } from '../state/setUse.function.js';
9
+ import { executeWrap } from './executeWrap.function.js';
10
+ import { paint, painting } from './paint.function.js';
11
+ import { initState } from '../state/state.utils.js';
12
+ import { isTagComponent } from '../isInstance.js';
13
+ import { runAfterRender } from './tagRunner.js';
6
14
  const appElements = [];
7
15
  /**
8
16
  *
@@ -11,59 +19,124 @@ const appElements = [];
11
19
  * @param props object
12
20
  * @returns
13
21
  */
14
- export function tagElement(app, // (...args: unknown[]) => TemplaterResult,
15
- element, props) {
22
+ export function tagElement(app, element, props) {
16
23
  const appElmIndex = appElements.findIndex(appElm => appElm.element === element);
17
24
  if (appElmIndex >= 0) {
18
- appElements[appElmIndex].support.destroy();
25
+ destroySupport(appElements[appElmIndex].support, 0);
19
26
  appElements.splice(appElmIndex, 1);
20
27
  // an element already had an app on it
21
28
  console.warn('Found and destroyed app element already rendered to element', { element });
22
29
  }
23
30
  // Create the app which returns [props, runOneTimeFunction]
24
- const wrapper = app(props);
25
- // const fragment = document.createDocumentFragment()
26
- const template = document.createElement('template');
27
- const placeholder = textNode.cloneNode(false);
28
- const support = runWrapper(wrapper, template, placeholder);
29
- const global = support.subject.global;
30
- support.appElement = element;
31
- support.isApp = true;
31
+ let templater = (() => templater2(props));
32
+ templater.propWatch = PropWatches.NONE;
33
+ templater.tagJsType = ValueTypes.stateRender;
34
+ // todo: props should be an array
35
+ templater.props = [props];
36
+ const subject = getNewSubject(templater, element);
37
+ const global = subject.global;
38
+ initState(global.newest, setUseMemory.stateConfig);
39
+ let templater2 = app(props);
40
+ if (typeof templater2 !== BasicTypes.function) {
41
+ if (!isTagComponent(templater2)) {
42
+ templater2 = app;
43
+ }
44
+ else {
45
+ global.newest.propsConfig = {
46
+ latest: [props],
47
+ castProps: [props],
48
+ };
49
+ templater.propWatch = templater2.propWatch;
50
+ templater.tagJsType = templater2.tagJsType;
51
+ templater.wrapper = templater2.wrapper;
52
+ templater = templater2;
53
+ }
54
+ }
55
+ const placeholder = document.createTextNode('');
56
+ const support = runWrapper(templater, placeholder, element, subject);
32
57
  global.isApp = true;
33
- element.destroy = () => {
34
- support.destroy(); // never return anything here
58
+ element.destroy = function () {
59
+ const events = global.events;
60
+ for (const eventName in events) {
61
+ const callback = events[eventName];
62
+ element.removeEventListener(eventName, callback);
63
+ }
64
+ global.events = {};
65
+ destroySupport(support, 0); // never return anything here
66
+ paint();
35
67
  };
36
- global.insertBefore = placeholder // template
68
+ let tags = [];
69
+ ++painting.locks;
70
+ const result = buildBeforeElement(support, element);
71
+ global.oldest = support;
72
+ global.newest = support;
73
+ let setUse = templater.setUse;
74
+ if (templater.tagJsType !== ValueTypes.stateRender) {
75
+ const wrap = app;
76
+ const parentWrap = wrap.parentWrap;
77
+ const original = wrap.original || parentWrap.original;
78
+ setUse = original.setUse;
79
+ tags = app.original.tags;
80
+ }
37
81
  ;
38
- global.placeholder = placeholder;
39
- const newFragment = support.buildBeforeElement(undefined);
40
- const children = [...newFragment.children];
41
- support.subject.global.oldest = support;
42
- support.subject.global.newest = support;
43
- element.setUse = app.original.setUse;
82
+ element.setUse = setUse;
83
+ element.ValueTypes = ValueTypes;
44
84
  appElements.push({ element, support });
85
+ const newFragment = document.createDocumentFragment();
86
+ newFragment.appendChild(placeholder);
87
+ for (const domItem of result.dom) {
88
+ putOneDomDown(domItem, newFragment);
89
+ }
90
+ for (const sub of result.subs) {
91
+ subscribeToTemplate(sub);
92
+ }
93
+ --painting.locks;
94
+ paint();
45
95
  element.appendChild(newFragment);
46
- afterChildrenBuilt(children, support.subject, support);
96
+ ++global.renderCount;
47
97
  return {
48
98
  support,
49
- tags: app.original.tags,
99
+ tags,
100
+ ValueTypes,
101
+ };
102
+ }
103
+ function getNewSubject(templater, appElement) {
104
+ const global = getNewGlobal();
105
+ global.events = {};
106
+ const subject = {
107
+ value: templater,
108
+ global,
109
+ checkValueChange: checkTagValueChange,
110
+ withinOwnerElement: false, // i am the highest owner
50
111
  };
112
+ const newSupport = getBaseSupport(templater, subject);
113
+ newSupport.appElement = appElement;
114
+ global.oldest = global.oldest || newSupport;
115
+ global.newest = newSupport;
116
+ return subject;
51
117
  }
52
- export function runWrapper(templater, insertBefore, placeholder) {
53
- let newSupport = {};
54
- // TODO: A fake subject may become a problem
55
- const subject = new TagJsSubject(newSupport);
56
- newSupport = new BaseSupport(templater, subject);
57
- subject.global.insertBefore = insertBefore;
58
- subject.global.placeholder = placeholder;
59
- subject.global.oldest = subject.global.oldest || newSupport;
60
- subject.next(templater);
61
- subject.support = newSupport;
62
- runBeforeRender(newSupport, undefined);
118
+ export function runWrapper(templater, placeholder, appElement, subject) {
119
+ subject.placeholder = placeholder;
120
+ const global = subject.global;
121
+ const newSupport = global.newest;
122
+ if (templater.tagJsType === ValueTypes.stateRender) {
123
+ const result = templater.wrapper || { original: templater };
124
+ const nowSupport = executeWrap(templater, result, newSupport);
125
+ runAfterRender(newSupport, nowSupport);
126
+ return nowSupport;
127
+ }
63
128
  // Call the apps function for our tag templater
64
129
  const wrapper = templater.wrapper;
65
- const support = wrapper(newSupport, subject);
66
- runAfterRender(newSupport, support);
67
- return support;
130
+ const nowSupport = wrapper(newSupport, subject);
131
+ runAfterRender(newSupport, nowSupport);
132
+ return nowSupport;
133
+ }
134
+ function putOneDomDown(dom, newFragment) {
135
+ if (dom.domElement) {
136
+ newFragment.appendChild(dom.domElement);
137
+ }
138
+ if (dom.marker) {
139
+ newFragment.appendChild(dom.marker);
140
+ }
68
141
  }
69
142
  //# sourceMappingURL=tagElement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tagElement.js","sourceRoot":"","sources":["../../ts/tag/tagElement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tagElement.js","sourceRoot":"","sources":["../../ts/tag/tagElement.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,3 @@
1
- import { AnySupport, BaseSupport, Support } from './Support.class.js';
2
- export declare function runBeforeRender(support: AnySupport, ownerSupport?: AnySupport): void;
1
+ import { BaseSupport, Support } from './Support.class.js';
3
2
  export declare function runAfterRender(support: BaseSupport | Support, ownerSupport?: Support | BaseSupport): void;
4
- export declare function runBeforeRedraw(support: BaseSupport | Support, ownerSupport: Support | BaseSupport): void;
5
- export declare function runBeforeDestroy(support: Support | BaseSupport, ownerSupport: Support | BaseSupport): void;
3
+ export declare function runBeforeDestroy(support: Support | BaseSupport): void;
@@ -1,55 +1,33 @@
1
- import { setUse } from '../state/index.js';
1
+ import { setUseMemory } from '../state/index.js';
2
2
  import { Subject } from '../subject/index.js';
3
3
  import { getSupportInCycle } from './getSupportInCycle.function.js';
4
+ import { afterRender } from '../state/state.utils.js';
4
5
  // Emits event at the end of a tag being rendered. Use tagClosed$.toPromise() to render a tag after a current tag is done rendering
5
- setUse.memory.tagClosed$ = new Subject(undefined, subscription => {
6
+ setUseMemory.tagClosed$ = new Subject(undefined, function tagCloser(subscription) {
6
7
  if (!getSupportInCycle()) {
7
8
  subscription.next(); // we are not currently processing so process now
8
9
  }
9
10
  });
10
- // Life cycle 1
11
- export function runBeforeRender(support, ownerSupport) {
12
- const tagUse = setUse.tagUse;
13
- const length = tagUse.length;
14
- for (let index = 0; index < length; ++index) {
15
- tagUse[index].beforeRender(support, ownerSupport);
16
- }
17
- }
18
11
  // Life cycle 2
19
12
  export function runAfterRender(support, ownerSupport) {
20
- const tagUse = setUse.tagUse;
21
- const length = tagUse.length;
22
- for (let index = 0; index < length; ++index) {
23
- tagUse[index].afterRender(support, ownerSupport);
24
- }
25
- setUse.memory.tagClosed$.next(ownerSupport);
26
- }
27
- // Life cycle 3
28
- export function runBeforeRedraw(support, ownerSupport) {
29
- const tagUse = setUse.tagUse;
30
- const length = tagUse.length;
31
- for (let index = 0; index < length; ++index) {
32
- tagUse[index].beforeRedraw(support, ownerSupport);
33
- }
13
+ afterRender(support);
14
+ setUseMemory.tagClosed$.next(ownerSupport);
34
15
  }
35
16
  // Life cycle 4 - end of life
36
- export function runBeforeDestroy(support, ownerSupport) {
37
- const tagUse = setUse.tagUse;
38
- const length = tagUse.length;
39
- for (let index = 0; index < length; ++index) {
40
- tagUse[index].beforeDestroy(support, ownerSupport);
41
- }
42
- support.subject.global.deleted = true;
43
- support.hasLiveElements = false;
17
+ export function runBeforeDestroy(support) {
18
+ // TODO: We don't need to remove from parents if parent is being destroyed
44
19
  // remove me from my parents
45
- if (ownerSupport) {
46
- ownerSupport.subject.global.childTags = ownerSupport.subject.global.childTags.filter(child => child !== support.subject.global.oldest);
47
- const global = support.subject.global;
48
- global.providers.forEach(provider => provider.children.forEach((child, index) => {
49
- if (child.subject.global === global) {
50
- provider.children.splice(index, 1);
20
+ const global = support.subject.global;
21
+ const providers = global.providers;
22
+ if (providers) {
23
+ for (const provider of providers) {
24
+ for (let index = provider.children.length - 1; index >= 0; --index) {
25
+ const child = provider.children[index];
26
+ if (child.subject.global === global) {
27
+ provider.children.splice(index, 1);
28
+ }
51
29
  }
52
- }));
30
+ }
53
31
  }
54
32
  }
55
33
  //# sourceMappingURL=tagRunner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tagRunner.js","sourceRoot":"","sources":["../../ts/tag/tagRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tagRunner.js","sourceRoot":"","sources":["../../ts/tag/tagRunner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAK,mBAAmB,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAK,qBAAqB,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAK,iCAAiC,CAAA;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAErD,mIAAmI;AACnI,YAAY,CAAC,UAAU,GAAG,IAAI,OAAO,CAAU,SAAS,EAAE,SAAS,SAAS,CAAC,YAAY;IACvF,IAAI,CAAC,iBAAiB,EAAE,EAAG,CAAC;QAC1B,YAAY,CAAC,IAAI,EAAE,CAAA,CAAC,iDAAiD;IACvE,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,eAAe;AACf,MAAM,UAAU,cAAc,CAC5B,OAA8B,EAC9B,YAAoC;IAEpC,WAAW,CAAC,OAAO,CAAC,CAAA;IACpB,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;AAC5C,CAAC;AAED,6BAA6B;AAC7B,MAAM,UAAU,gBAAgB,CAC9B,OAA8B;IAE9B,0EAA0E;IAC1E,4BAA4B;IAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAA0B,CAAA;IACzD,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;IAClC,IAAG,SAAS,EAAE,CAAC;QACb,KAAI,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YAChC,KAAK,IAAI,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;gBACnE,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;gBACtC,IAAG,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBACnC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;gBACpC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { empty } from "./ValueTypes.enum.js";
2
- export const textNode = typeof document === 'undefined' ? getTestTextNode() : document.createTextNode(empty);
2
+ export const textNode = document === undefined ? getTestTextNode() : document.createTextNode(empty);
3
3
  function getTestTextNode() {
4
4
  return {
5
5
  textContent: empty,
@@ -1 +1 @@
1
- {"version":3,"file":"textNode.js","sourceRoot":"","sources":["../../ts/tag/textNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;AAE5G,SAAS,eAAe;IACtB,OAAO;QACL,WAAW,EAAE,KAAK;QAClB,SAAS,EAAE,CAAC,SAAkB,EAAE,EAAE,CAAC,eAAe,EAAE;KACrD,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"textNode.js","sourceRoot":"","sources":["../../ts/tag/textNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C,MAAM,CAAC,MAAM,QAAQ,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;AAEnG,SAAS,eAAe;IACtB,OAAO;QACL,WAAW,EAAE,KAAK;QAClB,SAAS,EAAE,CAAC,SAAkB,EAAE,EAAE,CAAC,eAAe,EAAE;KACrD,CAAA;AACH,CAAC"}
@@ -1,8 +1,2 @@
1
1
  import { TagGlobal } from '../TemplaterResult.class.js';
2
- import { ValueSubject } from '../../subject/ValueSubject.js';
3
- import { ValueTypes } from '../ValueTypes.enum.js';
4
- export declare class TagJsSubject<T> extends ValueSubject<T> {
5
- tagJsType: ValueTypes;
6
- global: TagGlobal;
7
- }
8
2
  export declare function getNewGlobal(): TagGlobal;
@@ -1,11 +1,4 @@
1
1
  import { Subject } from '../../subject/Subject.class.js';
2
- import { ValueSubject } from '../../subject/ValueSubject.js';
3
- import { ValueTypes } from '../ValueTypes.enum.js';
4
- export class TagJsSubject extends ValueSubject {
5
- tagJsType = ValueTypes.tagJsSubject;
6
- // travels with all renderings
7
- global = getNewGlobal();
8
- }
9
2
  export function getNewGlobal() {
10
3
  return {
11
4
  destroy$: new Subject(),
@@ -17,7 +10,7 @@ export function getNewGlobal() {
17
10
  oldest: undefined, // TODO: This needs to addressed
18
11
  blocked: [], // renders that did not occur because an event was processing
19
12
  childTags: [], // tags on me
20
- clones: [], // elements on document. Needed at destroy process to know what to destroy
13
+ // htmlDomMeta: [],
21
14
  };
22
15
  }
23
16
  //# sourceMappingURL=TagJsSubject.class.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TagJsSubject.class.js","sourceRoot":"","sources":["../../../ts/tag/update/TagJsSubject.class.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAElD,MAAM,OAAO,YAAgB,SAAQ,YAAe;IAClD,SAAS,GAAG,UAAU,CAAC,YAAY,CAAA;IACnC,8BAA8B;IAC9B,MAAM,GAAc,YAAY,EAAE,CAAA;CACnC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO;QACL,QAAQ,EAAE,IAAI,OAAO,EAAyB;QAC9C,OAAO,EAAE,EAAE,EAAE,mGAAmG;QAChH,SAAS,EAAE,EAAE;QACb,oFAAoF;QACpF,WAAW,EAAE,CAAC;QACd,aAAa,EAAE,EAAE;QACjB,MAAM,EAAE,SAAgB,EAAE,gCAAgC;QAC1D,OAAO,EAAE,EAAE,EAAE,6DAA6D;QAC1E,SAAS,EAAE,EAAE,EAAE,aAAa;QAC5B,MAAM,EAAE,EAAE,EAAE,0EAA0E;KACvF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"TagJsSubject.class.js","sourceRoot":"","sources":["../../../ts/tag/update/TagJsSubject.class.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAExD,MAAM,UAAU,YAAY;IAC1B,OAAO;QACL,QAAQ,EAAE,IAAI,OAAO,EAAyB;QAC9C,OAAO,EAAE,EAAE,EAAE,mGAAmG;QAChH,SAAS,EAAE,EAAE;QACb,oFAAoF;QACpF,WAAW,EAAE,CAAC;QACd,aAAa,EAAE,EAAE;QACjB,MAAM,EAAE,SAAgB,EAAE,gCAAgC;QAE1D,OAAO,EAAE,EAAE,EAAE,6DAA6D;QAC1E,SAAS,EAAE,EAAE,EAAE,aAAa;QAC5B,mBAAmB;KACpB,CAAA;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { DomObjectChildren } from '../../interpolations/optimizers/ObjectNode.types.js';
2
+ import { AnySupport } from '../Support.class.js';
3
+ import { ContextItem } from '../Tag.class.js';
4
+ /** This is the function that enhances elements such as [class.something] and [style.color] OR it fixes elements that alter innerHTML */
5
+ export declare function afterChildrenBuilt(children: DomObjectChildren, // HTMLCollection // Element[],
6
+ subject: ContextItem, ownerSupport: AnySupport): void;
@@ -0,0 +1,25 @@
1
+ /** This is the function that enhances elements such as [class.something] and [style.color] OR it fixes elements that alter innerHTML */
2
+ export function afterChildrenBuilt(children, // HTMLCollection // Element[],
3
+ subject, ownerSupport) {
4
+ const kids = children;
5
+ const len = kids.length;
6
+ let index = 0;
7
+ while (index < len) {
8
+ const elmMeta = kids[index];
9
+ const attributes = elmMeta.at;
10
+ if (!attributes) {
11
+ ++index;
12
+ continue;
13
+ }
14
+ const domElm = elmMeta.domElement;
15
+ attributes.forEach(attribute => {
16
+ const name = attribute[0];
17
+ });
18
+ const children = elmMeta.ch; // children
19
+ if (children) {
20
+ afterChildrenBuilt(children, subject, ownerSupport);
21
+ }
22
+ ++index;
23
+ }
24
+ }
25
+ //# sourceMappingURL=afterChildrenBuilt.function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"afterChildrenBuilt.function.js","sourceRoot":"","sources":["../../../ts/tag/update/afterChildrenBuilt.function.ts"],"names":[],"mappings":"AAKA,wIAAwI;AACxI,MAAM,UAAU,kBAAkB,CAChC,QAA2B,EAAE,+BAA+B;AAC5D,OAAoB,EACpB,YAAwB;IAExB,MAAM,IAAI,GAAG,QAAQ,CAAA;IACrB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAA;IACvB,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,OAAO,KAAK,GAAG,GAAG,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAqB,CAAA;QAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,EAAE,CAAA;QAE7B,IAAG,CAAC,UAAU,EAAE,CAAC;YACf,EAAE,KAAK,CAAA;YACP,SAAQ;QACV,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAA;QACjC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YAC7B,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QAE3B,CAAC,CAAC,CAAA;QAEF,MAAM,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAA,CAAC,WAAW;QACvC,IAAG,QAAQ,EAAE,CAAC;YACZ,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,CAAC,CAAA;QACrD,CAAC;QAED,EAAE,KAAK,CAAA;IACT,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { TagGlobal } from '../TemplaterResult.class.js';
2
+ export declare function getNewGlobal(): TagGlobal;
@@ -0,0 +1,7 @@
1
+ export function getNewGlobal() {
2
+ return {
3
+ /** Indicator of re-rending. Saves from double rending something already rendered */
4
+ renderCount: 0,
5
+ };
6
+ }
7
+ //# sourceMappingURL=getNewGlobal.function.js.map