taggedjs 2.5.24 → 2.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (344) 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 +1 -0
  55. package/js/interpolations/index.js +2 -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 +10 -2
  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/processAttribute.function.d.ts +10 -5
  89. package/js/interpolations/processAttribute.function.js +111 -67
  90. package/js/interpolations/processAttribute.function.js.map +1 -1
  91. package/js/interpolations/processSubscriptionUpdate.function.d.ts +4 -0
  92. package/js/interpolations/processSubscriptionUpdate.function.js +14 -0
  93. package/js/interpolations/processSubscriptionUpdate.function.js.map +1 -0
  94. package/js/interpolations/specialAttribute.js +18 -9
  95. package/js/interpolations/specialAttribute.js.map +1 -1
  96. package/js/interpolations/subscribeToTemplate.function.d.ts +10 -2
  97. package/js/interpolations/subscribeToTemplate.function.js +19 -20
  98. package/js/interpolations/subscribeToTemplate.function.js.map +1 -1
  99. package/js/isInstance.d.ts +10 -6
  100. package/js/isInstance.js +33 -25
  101. package/js/isInstance.js.map +1 -1
  102. package/js/state/callbackMaker.function.d.ts +1 -1
  103. package/js/state/callbackMaker.function.js +21 -30
  104. package/js/state/callbackMaker.function.js.map +1 -1
  105. package/js/state/callbackStateUpdate.function.d.ts +1 -1
  106. package/js/state/callbackStateUpdate.function.js +6 -5
  107. package/js/state/callbackStateUpdate.function.js.map +1 -1
  108. package/js/state/getCallbackValue.function.d.ts +4 -0
  109. package/js/state/getCallbackValue.function.js +10 -0
  110. package/js/state/getCallbackValue.function.js.map +1 -0
  111. package/js/state/getStateValue.function.d.ts +2 -0
  112. package/js/state/getStateValue.function.js +24 -0
  113. package/js/state/getStateValue.function.js.map +1 -0
  114. package/js/state/handleProviderChanges.function.d.ts +7 -1
  115. package/js/state/handleProviderChanges.function.js +7 -21
  116. package/js/state/handleProviderChanges.function.js.map +1 -1
  117. package/js/state/index.d.ts +2 -3
  118. package/js/state/index.js +2 -2
  119. package/js/state/index.js.map +1 -1
  120. package/js/state/letState.function.d.ts +2 -0
  121. package/js/state/letState.function.js +28 -28
  122. package/js/state/letState.function.js.map +1 -1
  123. package/js/state/onDestroy.js +3 -2
  124. package/js/state/onDestroy.js.map +1 -1
  125. package/js/state/providers.d.ts +0 -1
  126. package/js/state/providers.js +20 -15
  127. package/js/state/providers.js.map +1 -1
  128. package/js/state/providersChangeCheck.function.d.ts +2 -2
  129. package/js/state/providersChangeCheck.function.js +9 -10
  130. package/js/state/providersChangeCheck.function.js.map +1 -1
  131. package/js/state/setUse.function.d.ts +1 -11
  132. package/js/state/setUse.function.js +12 -13
  133. package/js/state/setUse.function.js.map +1 -1
  134. package/js/state/state.function.js +2 -47
  135. package/js/state/state.function.js.map +1 -1
  136. package/js/state/state.types.d.ts +8 -0
  137. package/js/state/state.types.js +2 -0
  138. package/js/state/state.types.js.map +1 -0
  139. package/js/state/state.utils.d.ts +11 -10
  140. package/js/state/state.utils.js +35 -65
  141. package/js/state/state.utils.js.map +1 -1
  142. package/js/state/stateHandlers.d.ts +2 -0
  143. package/js/state/stateHandlers.js +36 -0
  144. package/js/state/stateHandlers.js.map +1 -0
  145. package/js/state/subject.function.js +10 -6
  146. package/js/state/subject.function.js.map +1 -1
  147. package/js/state/syncStates.function.d.ts +1 -1
  148. package/js/state/syncStates.function.js +8 -5
  149. package/js/state/syncStates.function.js.map +1 -1
  150. package/js/state/watch.function.js +6 -6
  151. package/js/state/watch.function.js.map +1 -1
  152. package/js/subject/Subject.class.d.ts +9 -2
  153. package/js/subject/Subject.class.js +36 -11
  154. package/js/subject/Subject.class.js.map +1 -1
  155. package/js/subject/ValueSubject.d.ts +6 -1
  156. package/js/subject/ValueSubject.js +15 -1
  157. package/js/subject/ValueSubject.js.map +1 -1
  158. package/js/subject/combineLatest.function.js +2 -2
  159. package/js/subject/combineLatest.function.js.map +1 -1
  160. package/js/subject/subject.utils.js +5 -4
  161. package/js/subject/subject.utils.js.map +1 -1
  162. package/js/subject.types.d.ts +2 -10
  163. package/js/tag/Context.types.d.ts +21 -0
  164. package/js/tag/Context.types.js +2 -0
  165. package/js/tag/Context.types.js.map +1 -0
  166. package/js/tag/Support.class.d.ts +31 -66
  167. package/js/tag/Support.class.js +36 -285
  168. package/js/tag/Support.class.js.map +1 -1
  169. package/js/tag/Tag.class.d.ts +29 -28
  170. package/js/tag/Tag.class.js +34 -46
  171. package/js/tag/Tag.class.js.map +1 -1
  172. package/js/tag/TemplaterResult.class.d.ts +32 -38
  173. package/js/tag/TemplaterResult.class.js +11 -34
  174. package/js/tag/TemplaterResult.class.js.map +1 -1
  175. package/js/tag/ValueTypes.enum.d.ts +23 -13
  176. package/js/tag/ValueTypes.enum.js +28 -19
  177. package/js/tag/ValueTypes.enum.js.map +1 -1
  178. package/js/tag/buildBeforeElement.function.d.ts +10 -0
  179. package/js/tag/buildBeforeElement.function.js +47 -0
  180. package/js/tag/buildBeforeElement.function.js.map +1 -0
  181. package/js/tag/buildSupportContext.function.d.ts +3 -0
  182. package/js/tag/buildSupportContext.function.js +15 -0
  183. package/js/tag/buildSupportContext.function.js.map +1 -0
  184. package/js/tag/checkDestroyPrevious.function.d.ts +5 -8
  185. package/js/tag/checkDestroyPrevious.function.js +53 -71
  186. package/js/tag/checkDestroyPrevious.function.js.map +1 -1
  187. package/js/tag/clonePropsBy.function.d.ts +6 -0
  188. package/js/tag/clonePropsBy.function.js +27 -0
  189. package/js/tag/clonePropsBy.function.js.map +1 -0
  190. package/js/tag/cloneValueArray.function.d.ts +4 -3
  191. package/js/tag/cloneValueArray.function.js +17 -13
  192. package/js/tag/cloneValueArray.function.js.map +1 -1
  193. package/js/tag/destroy.support.d.ts +7 -5
  194. package/js/tag/destroy.support.js +44 -6
  195. package/js/tag/destroy.support.js.map +1 -1
  196. package/js/tag/destroySupport.function.d.ts +2 -0
  197. package/js/tag/destroySupport.function.js +21 -0
  198. package/js/tag/destroySupport.function.js.map +1 -0
  199. package/js/tag/destroyTag.function.js +4 -4
  200. package/js/tag/destroyTag.function.js.map +1 -1
  201. package/js/tag/domMetaCollector.d.ts +2 -2
  202. package/js/tag/domMetaCollector.js +11 -7
  203. package/js/tag/domMetaCollector.js.map +1 -1
  204. package/js/tag/elementDestroyCheck.function.js +4 -7
  205. package/js/tag/elementDestroyCheck.function.js.map +1 -1
  206. package/js/tag/executeWrap.function.d.ts +5 -0
  207. package/js/tag/executeWrap.function.js +23 -0
  208. package/js/tag/executeWrap.function.js.map +1 -0
  209. package/js/tag/getChildTagsToDestroy.function.d.ts +8 -0
  210. package/js/tag/getChildTagsToDestroy.function.js +47 -0
  211. package/js/tag/getChildTagsToDestroy.function.js.map +1 -0
  212. package/js/tag/getStringsId.function.d.ts +1 -1
  213. package/js/tag/getStringsId.function.js +1 -2
  214. package/js/tag/getStringsId.function.js.map +1 -1
  215. package/js/tag/getSupportInCycle.function.js +2 -2
  216. package/js/tag/getSupportInCycle.function.js.map +1 -1
  217. package/js/tag/getTagWrap.function.d.ts +2 -0
  218. package/js/tag/getTagWrap.function.js +24 -68
  219. package/js/tag/getTagWrap.function.js.map +1 -1
  220. package/js/tag/getValueType.function.d.ts +3 -2
  221. package/js/tag/getValueType.function.js +17 -30
  222. package/js/tag/getValueType.function.js.map +1 -1
  223. package/js/tag/hasPropChanges.function.js +4 -10
  224. package/js/tag/hasPropChanges.function.js.map +1 -1
  225. package/js/tag/hasSupportChanged.function.d.ts +6 -2
  226. package/js/tag/hasSupportChanged.function.js +143 -24
  227. package/js/tag/hasSupportChanged.function.js.map +1 -1
  228. package/js/tag/html.d.ts +5 -6
  229. package/js/tag/html.js +9 -3
  230. package/js/tag/html.js.map +1 -1
  231. package/js/tag/index.d.ts +11 -1
  232. package/js/tag/index.js +11 -1
  233. package/js/tag/index.js.map +1 -1
  234. package/js/tag/isLikeTags.function.d.ts +4 -3
  235. package/js/tag/isLikeTags.function.js +18 -31
  236. package/js/tag/isLikeTags.function.js.map +1 -1
  237. package/js/tag/key.d.ts +6 -0
  238. package/js/tag/key.js +9 -0
  239. package/js/tag/key.js.map +1 -0
  240. package/js/tag/kidsToTagArraySubject.function.d.ts +2 -2
  241. package/js/tag/kidsToTagArraySubject.function.js +2 -1
  242. package/js/tag/kidsToTagArraySubject.function.js.map +1 -1
  243. package/js/tag/paint.function.d.ts +15 -0
  244. package/js/tag/paint.function.js +42 -0
  245. package/js/tag/paint.function.js.map +1 -0
  246. package/js/tag/processUpdateAttrContext.function.d.ts +3 -0
  247. package/js/tag/processUpdateAttrContext.function.js +14 -0
  248. package/js/tag/processUpdateAttrContext.function.js.map +1 -0
  249. package/js/tag/processUpdateContext.function.d.ts +5 -0
  250. package/js/tag/processUpdateContext.function.js +35 -0
  251. package/js/tag/processUpdateContext.function.js.map +1 -0
  252. package/js/tag/render/destroyUnlikeTags.function.d.ts +3 -5
  253. package/js/tag/render/destroyUnlikeTags.function.js +1 -3
  254. package/js/tag/render/destroyUnlikeTags.function.js.map +1 -1
  255. package/js/tag/render/renderExistingTag.function.d.ts +4 -6
  256. package/js/tag/render/renderExistingTag.function.js +11 -27
  257. package/js/tag/render/renderExistingTag.function.js.map +1 -1
  258. package/js/tag/render/renderSubjectComponent.function.js +14 -5
  259. package/js/tag/render/renderSubjectComponent.function.js.map +1 -1
  260. package/js/tag/render/renderSupport.function.d.ts +8 -3
  261. package/js/tag/render/renderSupport.function.js +68 -32
  262. package/js/tag/render/renderSupport.function.js.map +1 -1
  263. package/js/tag/render/renderTagOnly.function.d.ts +4 -3
  264. package/js/tag/render/renderTagOnly.function.js +33 -24
  265. package/js/tag/render/renderTagOnly.function.js.map +1 -1
  266. package/js/tag/render/renderWithSupport.function.d.ts +8 -4
  267. package/js/tag/render/renderWithSupport.function.js +12 -10
  268. package/js/tag/render/renderWithSupport.function.js.map +1 -1
  269. package/js/tag/render/softDestroySupport.function.d.ts +1 -2
  270. package/js/tag/render/softDestroySupport.function.js +22 -18
  271. package/js/tag/render/softDestroySupport.function.js.map +1 -1
  272. package/js/tag/smartRemoveKids.function.d.ts +3 -0
  273. package/js/tag/smartRemoveKids.function.js +80 -0
  274. package/js/tag/smartRemoveKids.function.js.map +1 -0
  275. package/js/tag/tag.d.ts +16 -3
  276. package/js/tag/tag.js +48 -16
  277. package/js/tag/tag.js.map +1 -1
  278. package/js/tag/tag.types.d.ts +6 -4
  279. package/js/tag/tag.utils.d.ts +15 -12
  280. package/js/tag/tag.utils.js.map +1 -1
  281. package/js/tag/tagElement.d.ts +11 -5
  282. package/js/tag/tagElement.js +114 -41
  283. package/js/tag/tagElement.js.map +1 -1
  284. package/js/tag/tagRunner.d.ts +2 -4
  285. package/js/tag/tagRunner.js +17 -39
  286. package/js/tag/tagRunner.js.map +1 -1
  287. package/js/tag/textNode.js +1 -1
  288. package/js/tag/textNode.js.map +1 -1
  289. package/js/tag/update/TagJsSubject.class.d.ts +0 -6
  290. package/js/tag/update/TagJsSubject.class.js +1 -8
  291. package/js/tag/update/TagJsSubject.class.js.map +1 -1
  292. package/js/tag/update/afterChildrenBuilt.function.d.ts +6 -0
  293. package/js/tag/update/afterChildrenBuilt.function.js +25 -0
  294. package/js/tag/update/afterChildrenBuilt.function.js.map +1 -0
  295. package/js/tag/update/getNewGlobal.function.d.ts +2 -0
  296. package/js/tag/update/getNewGlobal.function.js +7 -0
  297. package/js/tag/update/getNewGlobal.function.js.map +1 -0
  298. package/js/tag/update/oneRenderToSupport.function.d.ts +2 -2
  299. package/js/tag/update/oneRenderToSupport.function.js +7 -7
  300. package/js/tag/update/oneRenderToSupport.function.js.map +1 -1
  301. package/js/tag/update/processFirstSubject.utils.d.ts +4 -11
  302. package/js/tag/update/processFirstSubjectComponent.function.d.ts +6 -0
  303. package/js/tag/update/processFirstSubjectComponent.function.js +36 -0
  304. package/js/tag/update/processFirstSubjectComponent.function.js.map +1 -0
  305. package/js/tag/update/processFirstSubjectValue.function.d.ts +8 -8
  306. package/js/tag/update/processFirstSubjectValue.function.js +75 -39
  307. package/js/tag/update/processFirstSubjectValue.function.js.map +1 -1
  308. package/js/tag/update/processNewValue.function.d.ts +4 -3
  309. package/js/tag/update/processNewValue.function.js +27 -27
  310. package/js/tag/update/processNewValue.function.js.map +1 -1
  311. package/js/tag/update/processRegularValue.function.d.ts +4 -6
  312. package/js/tag/update/processRegularValue.function.js +10 -23
  313. package/js/tag/update/processRegularValue.function.js.map +1 -1
  314. package/js/tag/update/processSubjectComponent.function.d.ts +3 -5
  315. package/js/tag/update/processSubjectComponent.function.js +18 -22
  316. package/js/tag/update/processSubjectComponent.function.js.map +1 -1
  317. package/js/tag/update/processTag.function.d.ts +13 -10
  318. package/js/tag/update/processTag.function.js +51 -37
  319. package/js/tag/update/processTag.function.js.map +1 -1
  320. package/js/tag/update/processTagArray.d.ts +7 -26
  321. package/js/tag/update/processTagArray.js +118 -141
  322. package/js/tag/update/processTagArray.js.map +1 -1
  323. package/js/tag/update/processTagResult.function.d.ts +4 -8
  324. package/js/tag/update/processTagResult.function.js +31 -30
  325. package/js/tag/update/processTagResult.function.js.map +1 -1
  326. package/js/tag/update/updateContextItem.function.d.ts +6 -2
  327. package/js/tag/update/updateContextItem.function.js +11 -9
  328. package/js/tag/update/updateContextItem.function.js.map +1 -1
  329. package/js/tag/update/updateExistingTagComponent.function.d.ts +7 -8
  330. package/js/tag/update/updateExistingTagComponent.function.js +76 -98
  331. package/js/tag/update/updateExistingTagComponent.function.js.map +1 -1
  332. package/js/tag/update/updateExistingValue.function.d.ts +4 -4
  333. package/js/tag/update/updateExistingValue.function.js +81 -101
  334. package/js/tag/update/updateExistingValue.function.js.map +1 -1
  335. package/js/tag/update/validateTemplater.function.d.ts +2 -0
  336. package/js/tag/update/validateTemplater.function.js +17 -0
  337. package/js/tag/update/validateTemplater.function.js.map +1 -0
  338. package/js/tag/updateSupportBy.function.d.ts +3 -0
  339. package/js/tag/updateSupportBy.function.js +18 -0
  340. package/js/tag/updateSupportBy.function.js.map +1 -0
  341. package/js/updateBeforeTemplate.function.d.ts +2 -3
  342. package/js/updateBeforeTemplate.function.js +10 -8
  343. package/js/updateBeforeTemplate.function.js.map +1 -1
  344. package/package.json +1 -1
@@ -1,7 +1,5 @@
1
- import { BaseSupport, Support } from '../Support.class.js';
2
- import { TagSubject } from '../../subject.types.js';
3
- /** Returns true when rendering owner is not needed. Returns false when rendering owner should occur */
4
- export declare function renderExistingTag(oldestSupport: Support | BaseSupport, // oldest with elements on html
5
- newSupport: Support | BaseSupport, // new to be rendered
1
+ import { AnySupport, BaseSupport, Support } from '../Support.class.js';
2
+ import { ContextItem } from '../Context.types.js';
3
+ export declare function renderExistingReadyTag(lastSupport: AnySupport, newSupport: AnySupport, // new to be rendered
6
4
  ownerSupport: BaseSupport | Support, // ownerSupport
7
- subject: TagSubject): Support;
5
+ subject: ContextItem): AnySupport;
@@ -1,34 +1,18 @@
1
- import { isLikeTags } from '../isLikeTags.function.js';
2
1
  import { renderWithSupport } from './renderWithSupport.function.js';
3
- import { providersChangeCheck } from '../../state/providersChangeCheck.function.js';
4
- /** Returns true when rendering owner is not needed. Returns false when rendering owner should occur */
5
- export function renderExistingTag(oldestSupport, // oldest with elements on html
6
- newSupport, // new to be rendered
2
+ import { processTag } from '../update/processTag.function.js';
3
+ import { updateSupportBy } from '../updateSupportBy.function.js';
4
+ export function renderExistingReadyTag(lastSupport, newSupport, // new to be rendered
7
5
  ownerSupport, // ownerSupport
8
6
  subject) {
9
- const lastSupport = subject.support; // todo maybe not needed?
10
7
  const global = subject.global;
11
- // share point between renders
12
- newSupport.subject.global = global;
13
- const preRenderCount = global.renderCount;
14
- providersChangeCheck(oldestSupport);
15
- // When the providers were checked, a render to myself occurred and I do not need to re-render again
16
- const prevSupport = global.newest;
17
- const justUpdate = preRenderCount !== global.renderCount;
18
- if (justUpdate) {
19
- oldestSupport.subject.global.oldest.updateBy(prevSupport);
20
- return prevSupport; // already rendered during triggered events
8
+ const { support, wasLikeTags } = renderWithSupport(newSupport, lastSupport, subject, ownerSupport);
9
+ if (wasLikeTags) {
10
+ updateSupportBy(global.oldest, support);
11
+ // updateSupportValuesBy(oldest, support)
12
+ // paint()
13
+ return support;
21
14
  }
22
- const toRedrawTag = prevSupport || lastSupport || global.oldest;
23
- const reSupport = renderWithSupport(newSupport, toRedrawTag, subject, ownerSupport);
24
- const oldest = global.oldest || oldestSupport;
25
- const isLikeTag = isLikeTags(prevSupport, reSupport);
26
- if (isLikeTag) {
27
- subject.support = reSupport;
28
- oldest.updateBy(reSupport);
29
- }
30
- // ??? new - added but then removed
31
- // global.newest = reSupport
32
- return reSupport;
15
+ processTag(ownerSupport, subject);
16
+ return support;
33
17
  }
34
18
  //# sourceMappingURL=renderExistingTag.function.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderExistingTag.function.js","sourceRoot":"","sources":["../../../ts/tag/render/renderExistingTag.function.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAK,2BAA2B,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAK,iCAAiC,CAAA;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAA;AAEnF,uGAAuG;AACvG,MAAM,UAAU,iBAAiB,CAC/B,aAAoC,EAAE,+BAA+B;AACrE,UAAiC,EAAE,qBAAqB;AACxD,YAAmC,EAAE,eAAe;AACpD,OAAmB;IAEnB,MAAM,WAAW,GAAG,OAAO,CAAC,OAAkB,CAAA,CAAC,yBAAyB;IACxE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAE7B,8BAA8B;IAC9B,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAA;IAElC,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAA;IACzC,oBAAoB,CAAC,aAAa,CAAC,CAAA;IAEnC,oGAAoG;IACpG,MAAM,WAAW,GAAG,MAAM,CAAC,MAAiB,CAAA;IAC5C,MAAM,UAAU,GAAG,cAAc,KAAK,MAAM,CAAC,WAAW,CAAA;IACxD,IAAG,UAAU,EAAE,CAAC;QACd,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;QACzD,OAAO,WAAW,CAAA,CAAC,2CAA2C;IAChE,CAAC;IAED,MAAM,WAAW,GAAG,WAAW,IAAI,WAAW,IAAI,MAAM,CAAC,MAAM,CAAA;IAC/D,MAAM,SAAS,GAAG,iBAAiB,CACjC,UAAU,EACV,WAAW,EACX,OAAO,EACP,YAAuB,CACxB,CAAA;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,aAAa,CAAA;IAC7C,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IACpD,IAAG,SAAS,EAAE,CAAC;QACb,OAAO,CAAC,OAAO,GAAG,SAAS,CAAA;QAC3B,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;IAC5B,CAAC;IAED,mCAAmC;IACnC,4BAA4B;IAE5B,OAAO,SAAS,CAAA;AAClB,CAAC"}
1
+ {"version":3,"file":"renderExistingTag.function.js","sourceRoot":"","sources":["../../../ts/tag/render/renderExistingTag.function.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAK,iCAAiC,CAAA;AAElE,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAGhE,MAAM,UAAU,sBAAsB,CACpC,WAAuB,EACvB,UAAsB,EAAE,qBAAqB;AAC7C,YAAmC,EAAE,eAAe;AACpD,OAAoB;IAEpB,MAAM,MAAM,GAAG,OAAO,CAAC,MAA0B,CAAA;IAEjD,MAAM,EAAC,OAAO,EAAE,WAAW,EAAC,GAAG,iBAAiB,CAC9C,UAAU,EACV,WAAW,EACX,OAAO,EACP,YAAuB,CACxB,CAAA;IAED,IAAI,WAAW,EAAG,CAAC;QACjB,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACvC,yCAAyC;QACzC,UAAU;QACV,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,UAAU,CACR,YAAY,EACZ,OAAO,CACR,CAAA;IAED,OAAO,OAAO,CAAA;AAEhB,CAAC"}
@@ -1,14 +1,23 @@
1
1
  import { renderWithSupport } from './renderWithSupport.function.js';
2
2
  export function renderSubjectComponent(subject, reSupport, ownerSupport) {
3
3
  const ownGlobal = ownerSupport.subject.global;
4
- const preClones = ownGlobal.clones.map(clone => clone);
5
4
  reSupport = renderWithSupport(reSupport, subject.support, // existing tag
6
5
  subject, ownerSupport);
7
- const reGlobal = reSupport.subject.global;
8
- if (ownGlobal.clones.length > preClones.length) {
9
- const myClones = ownGlobal.clones.filter(fClone => !preClones.find(clone => clone === fClone));
10
- reGlobal.clones.push(...myClones);
6
+ /*
7
+ const htmlDomMeta = ownGlobal.htmlDomMeta as DomObjectChildren
8
+ if(!htmlDomMeta) {
9
+ console.log('xxxxx', ownGlobal)
11
10
  }
11
+ if(htmlDomMeta) {
12
+ const reGlobal = reSupport.subject.global
13
+ const preClones = htmlDomMeta.map(clone => clone)
14
+ if(htmlDomMeta.length > preClones.length) {
15
+ const myClones = htmlDomMeta.filter(fClone => !preClones.find(clone => clone === fClone))
16
+ const reHtmlDomMeta = reGlobal.htmlDomMeta as DomObjectChildren
17
+ reHtmlDomMeta.push(...myClones)
18
+ }
19
+ }
20
+ */
12
21
  return reSupport;
13
22
  }
14
23
  //# sourceMappingURL=renderSubjectComponent.function.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderSubjectComponent.function.js","sourceRoot":"","sources":["../../../ts/tag/render/renderSubjectComponent.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAK,iCAAiC,CAAA;AAIlE,MAAM,UAAU,sBAAsB,CACpC,OAAmB,EACnB,SAAgC,EAChC,YAAmC;IAEnC,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAA;IAC7C,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAA;IAEtD,SAAS,GAAG,iBAAiB,CAC3B,SAAS,EACT,OAAO,CAAC,OAAO,EAAE,eAAe;IAChC,OAAO,EACP,YAAY,CACb,CAAA;IAED,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAA;IACzC,IAAG,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAA;QAC9F,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAA;IACnC,CAAC;IAED,OAAO,SAAoB,CAAA;AAC7B,CAAC"}
1
+ {"version":3,"file":"renderSubjectComponent.function.js","sourceRoot":"","sources":["../../../ts/tag/render/renderSubjectComponent.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAK,iCAAiC,CAAA;AAKlE,MAAM,UAAU,sBAAsB,CACpC,OAAmB,EACnB,SAAgC,EAChC,YAAmC;IAEnC,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAA;IAE7C,SAAS,GAAG,iBAAiB,CAC3B,SAAS,EACT,OAAO,CAAC,OAAO,EAAE,eAAe;IAChC,OAAO,EACP,YAAY,CACb,CAAA;IAED;;;;;;;;;;;;;;MAcE;IAEF,OAAO,SAAoB,CAAA;AAC7B,CAAC"}
@@ -1,4 +1,9 @@
1
- import { BaseSupport, Support } from '../Support.class.js';
1
+ import { AnySupport } from '../Support.class.js';
2
+ import { Props } from '../../Props.js';
3
+ import { TemplaterResult } from '../TemplaterResult.class.js';
4
+ export declare function isInlineHtml(templater: TemplaterResult): boolean;
2
5
  /** Main function used by all other callers to render/update display of a tag component */
3
- export declare function renderSupport<T extends Support | BaseSupport>(support: T, // must be latest/newest state render
4
- renderUp: boolean): T;
6
+ export declare function renderSupport<T extends AnySupport>(support: T): T;
7
+ export declare function renderInlineHtml(ownerSupport: AnySupport, support: AnySupport): AnySupport;
8
+ export declare function checkRenderUp(ownerSupport: AnySupport, templater: TemplaterResult, support: AnySupport): boolean;
9
+ export declare function hasPropLengthsChanged(nowProps: Props, latestProps: Props): boolean;
@@ -1,43 +1,79 @@
1
1
  import { deepEqual } from '../../deepFunctions.js';
2
- import { renderExistingTag } from './renderExistingTag.function.js';
2
+ import { renderExistingReadyTag } from './renderExistingTag.function.js';
3
+ import { ValueTypes } from '../ValueTypes.enum.js';
4
+ import { PropWatches } from '../index.js';
5
+ import { deepCompareDepth, immutablePropMatch, shallowPropMatch } from '../hasSupportChanged.function.js';
6
+ export function isInlineHtml(templater) {
7
+ return ValueTypes.templater === templater.tagJsType;
8
+ }
3
9
  /** Main function used by all other callers to render/update display of a tag component */
4
- export function renderSupport(support, // must be latest/newest state render
5
- renderUp) {
10
+ export function renderSupport(support) {
6
11
  const global = support.subject.global;
7
12
  const templater = support.templater;
8
- // is it just a vanilla tag, not component?
9
- if (!templater.wrapper) { // || isTagTemplater(templater)
10
- const ownerTag = support.ownerSupport;
11
- ++global.renderCount;
12
- if (ownerTag.subject.global.deleted) {
13
- return support;
14
- }
15
- return renderSupport(ownerTag.subject.global.newest, true);
16
- }
17
- if (support.subject.global.locked) {
18
- support.subject.global.blocked.push(support);
13
+ const inlineHtml = isInlineHtml(templater);
14
+ const ownerSupport = support.ownerSupport;
15
+ if (global.locked) {
16
+ global.blocked.push(support);
19
17
  return support;
20
18
  }
19
+ // is it just a vanilla tag, not component?
20
+ if (inlineHtml) {
21
+ return renderInlineHtml(ownerSupport, support);
22
+ }
23
+ global.locked = true;
21
24
  const subject = support.subject;
22
- const oldest = support.subject.global.oldest;
23
- let ownerSupport;
24
- let selfPropChange = false;
25
- const shouldRenderUp = renderUp && support;
26
- if (shouldRenderUp) {
27
- ownerSupport = support.ownerSupport;
28
- if (ownerSupport) {
29
- const nowProps = templater.props;
30
- const latestProps = support.propsConfig.latestCloned;
31
- selfPropChange = !deepEqual(nowProps, latestProps);
32
- }
33
- }
34
- const tag = renderExistingTag(oldest, support, ownerSupport, // useSupport,
35
- subject);
36
- if (ownerSupport && selfPropChange) {
37
- const myOwnerSupport = ownerSupport.subject.global.newest;
38
- renderSupport(myOwnerSupport, true);
39
- return tag;
25
+ if (global.blocked.length) {
26
+ support = global.blocked.pop();
27
+ global.blocked = [];
40
28
  }
29
+ delete global.locked;
30
+ const tag = renderExistingReadyTag(global.newest, support, ownerSupport, subject);
41
31
  return tag;
42
32
  }
33
+ export function renderInlineHtml(ownerSupport, support) {
34
+ const ownGlobal = ownerSupport.subject.global;
35
+ if (!ownGlobal || ownGlobal.deleted === true) {
36
+ return support;
37
+ }
38
+ // ??? new change
39
+ const newest = ownGlobal.newest || ownerSupport;
40
+ const result = renderSupport(newest);
41
+ return result;
42
+ }
43
+ export function checkRenderUp(ownerSupport, templater, support) {
44
+ const selfPropChange = hasPropsToOwnerChanged(templater, support);
45
+ // render owner up first and that will cause me to re-render
46
+ if (ownerSupport && selfPropChange) {
47
+ return true;
48
+ }
49
+ return false;
50
+ }
51
+ function hasPropsToOwnerChanged(templater, support) {
52
+ const nowProps = templater.props;
53
+ const propsConfig = support.propsConfig;
54
+ const latestProps = propsConfig.latest;
55
+ const compareLen = hasPropLengthsChanged(nowProps, latestProps);
56
+ if (compareLen) {
57
+ return true;
58
+ }
59
+ switch (templater.propWatch) {
60
+ case PropWatches.IMMUTABLE:
61
+ return immutablePropMatch(nowProps, latestProps);
62
+ case PropWatches.SHALLOW:
63
+ return shallowPropMatch(nowProps, latestProps);
64
+ }
65
+ return !deepEqual(nowProps, latestProps, deepCompareDepth);
66
+ }
67
+ export function hasPropLengthsChanged(nowProps, latestProps) {
68
+ const nowLen = nowProps.length;
69
+ const latestLen = latestProps.length;
70
+ /*
71
+ const noLength = nowProps && nowLen === 0 && latestLen === 0
72
+
73
+ if(noLength) {
74
+ return false
75
+ }
76
+ */
77
+ return nowLen !== latestLen;
78
+ }
43
79
  //# sourceMappingURL=renderSupport.function.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderSupport.function.js","sourceRoot":"","sources":["../../../ts/tag/render/renderSupport.function.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAK,iCAAiC,CAAA;AAGlE,0FAA0F;AAC1F,MAAM,UAAU,aAAa,CAC3B,OAAU,EAAE,qCAAqC;AACjD,QAAiB;IAEjB,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAA;IACrC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;IAEnC,2CAA2C;IAC3C,IAAI,CAAC,SAAS,CAAC,OAAO,EAAG,CAAC,CAAA,gCAAgC;QACxD,MAAM,QAAQ,GAAI,OAAmB,CAAC,YAAY,CAAA;QAClD,EAAE,MAAM,CAAC,WAAW,CAAA;QACpB,IAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACnC,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,OAAO,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAiB,EAAE,IAAI,CAAM,CAAA;IAC5E,CAAC;IAED,IAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACjC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC5C,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;IAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAA;IAE5C,IAAI,YAAoC,CAAA;IACxC,IAAI,cAAc,GAAG,KAAK,CAAA;IAC1B,MAAM,cAAc,GAAG,QAAQ,IAAI,OAAO,CAAA;IAE1C,IAAG,cAAc,EAAE,CAAC;QAClB,YAAY,GAAI,OAAmB,CAAC,YAAY,CAAA;QAChD,IAAG,YAAY,EAAE,CAAC;YAChB,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAc,CAAA;YACzC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,YAAY,CAAA;YACpD,cAAc,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;QACpD,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAG,iBAAiB,CAC3B,MAAM,EACN,OAAO,EACP,YAAuB,EAAE,cAAc;IACvC,OAAO,CACR,CAAA;IAED,IAAG,YAAY,IAAI,cAAc,EAAE,CAAC;QAClC,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,MAAiB,CAAA;QACpE,aAAa,CACX,cAAc,EACd,IAAI,CACL,CAAA;QAED,OAAO,GAAQ,CAAA;IACjB,CAAC;IAED,OAAO,GAAQ,CAAA;AACjB,CAAC"}
1
+ {"version":3,"file":"renderSupport.function.js","sourceRoot":"","sources":["../../../ts/tag/render/renderSupport.function.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
- import { BaseSupport, Support } from '../Support.class.js';
2
- import { TagSubject } from '../../subject.types.js';
3
- export declare function renderTagOnly(newSupport: Support | BaseSupport, prevSupport: Support | BaseSupport | undefined, subject: TagSubject, ownerSupport?: Support | BaseSupport): Support;
1
+ import { AnySupport } from '../Support.class.js';
2
+ import { ContextItem } from '../Context.types.js';
3
+ export declare function renderTagOnly(newSupport: AnySupport, prevSupport: AnySupport | undefined, // causes restate
4
+ subject: ContextItem, ownerSupport?: AnySupport): AnySupport;
@@ -1,38 +1,47 @@
1
- import { runBeforeRedraw, runBeforeRender } from '../tagRunner.js';
1
+ import { getSupport } from '../Support.class.js';
2
2
  import { runAfterRender } from '../tagRunner.js';
3
- export function renderTagOnly(newSupport, prevSupport, subject, ownerSupport) {
4
- const oldRenderCount = subject.global.renderCount;
5
- beforeWithRender(newSupport, ownerSupport, prevSupport);
3
+ import { ValueTypes } from '../ValueTypes.enum.js';
4
+ import { executeWrap } from '../executeWrap.function.js';
5
+ import { initState, reState } from '../../state/state.utils.js';
6
+ import { setUseMemory } from '../../state/setUse.function.js';
7
+ export function renderTagOnly(newSupport, prevSupport, // causes restate
8
+ subject, ownerSupport) {
9
+ const global = subject.global;
10
+ const oldRenderCount = global.renderCount;
11
+ beforeWithRender(newSupport, prevSupport?.state);
6
12
  const templater = newSupport.templater;
13
+ let reSupport;
7
14
  // NEW TAG CREATED HERE
8
- const wrapper = templater.wrapper;
9
- let reSupport = wrapper(newSupport, subject, prevSupport);
15
+ if (templater.tagJsType === ValueTypes.stateRender) {
16
+ const result = templater; // .wrapper as any// || {original: templater} as any
17
+ const useSupport = getSupport(templater, ownerSupport, newSupport.appSupport, // ownerSupport.appSupport as Support,
18
+ subject);
19
+ reSupport = executeWrap(templater, result, useSupport);
20
+ }
21
+ else {
22
+ // functions wrapped in tag()
23
+ const wrapper = templater.wrapper;
24
+ // calls the function returned from getTagWrap()
25
+ reSupport = wrapper(newSupport, subject, prevSupport);
26
+ }
10
27
  /* AFTER */
11
28
  runAfterRender(newSupport, ownerSupport);
12
- subject.global.newest = reSupport;
13
- if (!prevSupport && ownerSupport) {
14
- ownerSupport.subject.global.childTags.push(reSupport);
15
- }
29
+ global.newest = reSupport;
16
30
  // When we rendered, only 1 render should have taken place OTHERWISE rendering caused another render and that is the latest instead
17
- if (subject.global.renderCount > oldRenderCount + 1) {
18
- return subject.global.newest;
31
+ if (global.renderCount > oldRenderCount + 1) {
32
+ return global.newest;
19
33
  }
20
34
  return reSupport;
21
35
  }
22
36
  function beforeWithRender(support, // new
23
- parentSupport, prevSupport) {
24
- const lastOwnerSupport = prevSupport?.ownerSupport;
25
- const runtimeOwnerSupport = lastOwnerSupport || parentSupport;
26
- if (prevSupport) {
27
- if (prevSupport !== support) {
28
- const lastState = prevSupport.state;
29
- support.subject.global = prevSupport.subject.global;
30
- support.state.length = 0;
31
- support.state.push(...lastState);
32
- }
33
- return runBeforeRedraw(support, prevSupport);
37
+ prevState) {
38
+ if (prevState) {
39
+ const lastState = prevState;
40
+ support.state = lastState;
41
+ reState(support, setUseMemory.stateConfig);
42
+ return;
34
43
  }
35
44
  // first time render
36
- return runBeforeRender(support, runtimeOwnerSupport);
45
+ initState(support, setUseMemory.stateConfig);
37
46
  }
38
47
  //# sourceMappingURL=renderTagOnly.function.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderTagOnly.function.js","sourceRoot":"","sources":["../../../ts/tag/render/renderTagOnly.function.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAK,iBAAiB,CAAA;AACjE,OAAO,EAAE,cAAc,EAAE,MAAK,iBAAiB,CAAA;AAI/C,MAAM,UAAU,aAAa,CAC3B,UAAiC,EACjC,WAA8C,EAC9C,OAAmB,EACnB,YAAoC;IAEpC,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAA;IAEjD,gBAAgB,CAAC,UAAU,EAAE,YAAY,EAAE,WAAW,CAAC,CAAA;IAEvD,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAA;IAEtC,uBAAuB;IACvB,MAAM,OAAO,GAAG,SAAS,CAAC,OAAkB,CAAA;IAC5C,IAAI,SAAS,GAAG,OAAO,CACrB,UAAU,EACV,OAAO,EACP,WAAW,CACZ,CAAA;IACD,WAAW;IAEX,cAAc,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;IAExC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAA;IACjC,IAAG,CAAC,WAAW,IAAI,YAAY,EAAE,CAAC;QAChC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACvD,CAAC;IAED,mIAAmI;IACnI,IAAG,OAAO,CAAC,MAAM,CAAC,WAAW,GAAG,cAAc,GAAG,CAAC,EAAE,CAAC;QACnD,OAAO,OAAO,CAAC,MAAM,CAAC,MAAiB,CAAA;IACzC,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,gBAAgB,CACvB,OAA8B,EAAE,MAAM;AACtC,aAAqC,EACrC,WAAmC;IAEnC,MAAM,gBAAgB,GAAI,WAAuB,EAAE,YAAY,CAAA;IAC/D,MAAM,mBAAmB,GAA2B,gBAAgB,IAAI,aAAa,CAAA;IAErF,IAAG,WAAW,EAAE,CAAC;QACf,IAAG,WAAW,KAAK,OAAO,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAA;YACnC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAA;YACnD,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;YACxB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAA;QAClC,CAAC;QAED,OAAO,eAAe,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;IAC9C,CAAC;IAED,oBAAoB;IACpB,OAAO,eAAe,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAA;AACtD,CAAC"}
1
+ {"version":3,"file":"renderTagOnly.function.js","sourceRoot":"","sources":["../../../ts/tag/render/renderTagOnly.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,UAAU,EAAW,MAAM,qBAAqB,CAAA;AAClF,OAAO,EAAE,cAAc,EAAE,MAAK,iBAAiB,CAAA;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAGlD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAG7D,MAAM,UAAU,aAAa,CAC3B,UAAsB,EACtB,WAAmC,EAAE,iBAAiB;AACtD,OAAoB,EACpB,YAAyB;IAEzB,MAAM,MAAM,GAAG,OAAO,CAAC,MAA0B,CAAA;IACjD,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAA;IAEzC,gBAAgB,CAAC,UAAU,EAAE,WAAW,EAAE,KAAK,CAAC,CAAA;IAEhD,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAA;IACtC,IAAI,SAAqB,CAAA;IAEzB,uBAAuB;IACvB,IAAG,SAAS,CAAC,SAAS,KAAK,UAAU,CAAC,WAAW,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,SAAmC,CAAA,CAAC,oDAAoD;QAEvG,MAAM,UAAU,GAAG,UAAU,CAC3B,SAAS,EACT,YAA0B,EAC1B,UAAU,CAAC,UAAU,EAAE,sCAAsC;QAC7D,OAAO,CACR,CAAA;QAED,SAAS,GAAG,WAAW,CACrB,SAAS,EACT,MAAM,EACN,UAAU,CACX,CAAA;IACH,CAAC;SAAM,CAAC;QACN,6BAA6B;QAC7B,MAAM,OAAO,GAAG,SAAS,CAAC,OAAkB,CAAA;QAE5C,gDAAgD;QAChD,SAAS,GAAG,OAAO,CACjB,UAAU,EACV,OAAO,EACP,WAAW,CACZ,CAAA;IACH,CAAC;IAED,WAAW;IAEX,cAAc,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;IAExC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAA;IAEzB,mIAAmI;IACnI,IAAG,MAAM,CAAC,WAAW,GAAG,cAAc,GAAG,CAAC,EAAE,CAAC;QAC3C,OAAO,MAAM,CAAC,MAAiB,CAAA;IACjC,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,gBAAgB,CACvB,OAA8B,EAAE,MAAM;AACtC,SAAiB;IAGjB,IAAG,SAAS,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,SAAS,CAAA;QAC3B,OAAO,CAAC,KAAK,GAAG,SAAS,CAAA;QAEzB,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,CAAA;QAC1C,OAAM;IACR,CAAC;IAED,oBAAoB;IACpB,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,CAAA;AAC9C,CAAC"}
@@ -1,5 +1,9 @@
1
- import { BaseSupport, Support } from '../Support.class.js';
2
- import { TagSubject } from '../../subject.types.js';
1
+ import { AnySupport, BaseSupport, Support } from '../Support.class.js';
2
+ import { ContextItem } from '../Context.types.js';
3
+ /** TODO: This seems to support both new and updates and should be separated? */
3
4
  export declare function renderWithSupport(newSupport: Support | BaseSupport, lastSupport: Support | BaseSupport | undefined, // previous
4
- subject: TagSubject, // events & memory
5
- ownerSupport?: BaseSupport | Support): Support;
5
+ subject: ContextItem, // events & memory
6
+ ownerSupport?: BaseSupport | Support): {
7
+ support: AnySupport;
8
+ wasLikeTags: boolean;
9
+ };
@@ -1,9 +1,9 @@
1
1
  import { isLikeTags } from '../isLikeTags.function.js';
2
2
  import { renderTagOnly } from './renderTagOnly.function.js';
3
- import { destroyUnlikeTags } from './destroyUnlikeTags.function.js';
4
3
  import { softDestroySupport } from './softDestroySupport.function.js';
5
4
  import { ValueTypes } from '../ValueTypes.enum.js';
6
- import { deepEqual } from '../../deepFunctions.js';
5
+ import { moveProviders } from '../update/updateExistingTagComponent.function.js';
6
+ /** TODO: This seems to support both new and updates and should be separated? */
7
7
  export function renderWithSupport(newSupport, lastSupport, // previous
8
8
  subject, // events & memory
9
9
  ownerSupport) {
@@ -12,31 +12,33 @@ ownerSupport) {
12
12
  const reSupport = renderTagOnly(newSupport, lastSupport, subject, ownerSupport);
13
13
  const isLikeTag = !lastSupport || isLikeTags(lastSupport, reSupport);
14
14
  if (!isLikeTag) {
15
- destroyUnlikeTags(lastSupport, reSupport, subject);
15
+ moveProviders(lastSupport, reSupport);
16
+ softDestroySupport(lastSupport);
17
+ const global = reSupport.subject.global;
18
+ global.oldest = reSupport;
19
+ global.newest = reSupport;
16
20
  }
17
21
  else if (lastSupport) {
18
- const tag = reSupport.templater.tag;
19
- if (tag) {
22
+ const tag = lastSupport.templater.tag;
23
+ const global = subject.global;
24
+ if (tag && global.renderCount > 1) {
20
25
  checkTagSoftDestroy(tag, lastSupport, lastTag);
21
26
  }
22
27
  }
23
28
  const lastOwnerSupport = lastSupport?.ownerSupport;
24
29
  reSupport.ownerSupport = (ownerSupport || lastOwnerSupport);
25
- return reSupport;
30
+ return { support: reSupport, wasLikeTags: isLikeTag };
26
31
  }
27
32
  function checkTagSoftDestroy(tag, lastSupport, lastTag) {
28
33
  if (tag.tagJsType === ValueTypes.dom) {
29
34
  const lastDom = lastTag?.dom;
30
35
  const newDom = tag.dom;
31
- if (!deepEqual(lastDom, newDom)) {
36
+ if (lastDom !== newDom) {
32
37
  softDestroySupport(lastSupport);
33
38
  }
34
39
  return;
35
40
  }
36
41
  if (lastTag) {
37
- if (lastTag.tagJsType === ValueTypes.dom) {
38
- throw new Error('check here');
39
- }
40
42
  const lastStrings = lastTag.strings;
41
43
  if (lastStrings) {
42
44
  const oldLength = lastStrings?.length;
@@ -1 +1 @@
1
- {"version":3,"file":"renderWithSupport.function.js","sourceRoot":"","sources":["../../../ts/tag/render/renderWithSupport.function.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAK,2BAA2B,CAAA;AAErD,OAAO,EAAE,aAAa,EAAE,MAAK,6BAA6B,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAK,iCAAiC,CAAA;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAElD,MAAM,UAAU,iBAAiB,CAC/B,UAAiC,EACjC,WAA8C,EAAE,WAAW;AAC3D,OAAmB,EAAE,kBAAkB;AACvC,YAAoC;IAEpC,MAAM,aAAa,GAAG,WAAW,EAAE,SAAS,CAAA;IAC5C,MAAM,OAAO,GAAG,aAAa,EAAE,GAAG,CAAA;IAElC,MAAM,SAAS,GAAG,aAAa,CAC7B,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,CAC/C,CAAA;IAED,MAAM,SAAS,GAAG,CAAC,WAAW,IAAI,UAAU,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IACpE,IAAG,CAAC,SAAS,EAAE,CAAC;QACd,iBAAiB,CACf,WAAW,EACX,SAAS,EACT,OAAO,CACR,CAAA;IACH,CAAC;SAAM,IAAG,WAAW,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,CAAA;QAEnC,IAAG,GAAG,EAAE,CAAC;YACP,mBAAmB,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAA;QAChD,CAAC;IACH,CAAC;IAGD,MAAM,gBAAgB,GAAI,WAAuB,EAAE,YAAY,CAAA;IAC/D,SAAS,CAAC,YAAY,GAAG,CAAC,YAAY,IAAI,gBAAgB,CAAY,CAAA;IAEtE,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,mBAAmB,CAC1B,GAAc,EACd,WAAuB,EACvB,OAAmB;IAEnB,IAAG,GAAG,CAAC,SAAS,KAAG,UAAU,CAAC,GAAG,EAAE,CAAC;QAClC,MAAM,OAAO,GAAI,OAAe,EAAE,GAAG,CAAA;QACrC,MAAM,MAAM,GAAI,GAAW,CAAC,GAAG,CAAA;QAC/B,IAAG,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;YAC/B,kBAAkB,CAAC,WAAW,CAAC,CAAA;QACjC,CAAC;QAED,OAAM;IACR,CAAC;IAED,IAAG,OAAO,EAAE,CAAC;QACX,IAAG,OAAO,CAAC,SAAS,KAAK,UAAU,CAAC,GAAG,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAA;QAC/B,CAAC;QAED,MAAM,WAAW,GAAI,OAAe,CAAC,OAAO,CAAA;QAC5C,IAAG,WAAW,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,WAAW,EAAE,MAAM,CAAA;YACrC,MAAM,SAAS,GAAI,GAAW,CAAC,OAAO,CAAC,MAAM,CAAA;YAC7C,IAAG,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC3B,kBAAkB,CAAC,WAAW,CAAC,CAAA;YACjC,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"renderWithSupport.function.js","sourceRoot":"","sources":["../../../ts/tag/render/renderWithSupport.function.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAK,2BAA2B,CAAA;AACrD,OAAO,EAAE,aAAa,EAAE,MAAK,6BAA6B,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAGlD,OAAO,EAAE,aAAa,EAAE,MAAM,kDAAkD,CAAA;AAGhF,gFAAgF;AAChF,MAAM,UAAU,iBAAiB,CAC/B,UAAiC,EACjC,WAA8C,EAAE,WAAW;AAC3D,OAAoB,EAAE,kBAAkB;AACxC,YAAoC;IAEpC,MAAM,aAAa,GAAG,WAAW,EAAE,SAAS,CAAA;IAC5C,MAAM,OAAO,GAAG,aAAa,EAAE,GAAG,CAAA;IAElC,MAAM,SAAS,GAAG,aAAa,CAC7B,UAAU,EACV,WAAW,EACX,OAAO,EACP,YAAY,CACb,CAAA;IAED,MAAM,SAAS,GAAG,CAAC,WAAW,IAAI,UAAU,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IACpE,IAAG,CAAC,SAAS,EAAE,CAAC;QACd,aAAa,CAAC,WAAsB,EAAE,SAAS,CAAC,CAAA;QAChD,kBAAkB,CAAC,WAAW,CAAC,CAAA;QAC/B,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,MAA0B,CAAA;QAC3D,MAAM,CAAC,MAAM,GAAG,SAAS,CAAA;QACzB,MAAM,CAAC,MAAM,GAAG,SAAS,CAAA;IAC3B,CAAC;SAAM,IAAG,WAAW,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,CAAA;QACrC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAmB,CAAA;QAC1C,IAAG,GAAG,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YACjC,mBAAmB,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAA;QAChD,CAAC;IACH,CAAC;IAED,MAAM,gBAAgB,GAAI,WAAuB,EAAE,YAAY,CAAA;IAC/D,SAAS,CAAC,YAAY,GAAG,CAAC,YAAY,IAAI,gBAAgB,CAAY,CAAA;IAEtE,OAAO,EAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAC,CAAA;AACrD,CAAC;AAED,SAAS,mBAAmB,CAC1B,GAAuB,EACvB,WAAuB,EACvB,OAA4B;IAE5B,IAAG,GAAG,CAAC,SAAS,KAAG,UAAU,CAAC,GAAG,EAAE,CAAC;QAClC,MAAM,OAAO,GAAI,OAAkB,EAAE,GAAG,CAAA;QACxC,MAAM,MAAM,GAAI,GAAc,CAAC,GAAG,CAAA;QAClC,IAAG,OAAO,KAAK,MAAM,EAAE,CAAC;YACtB,kBAAkB,CAAC,WAAW,CAAC,CAAA;QACjC,CAAC;QAED,OAAM;IACR,CAAC;IAED,IAAG,OAAO,EAAE,CAAC;QACX,MAAM,WAAW,GAAI,OAAqB,CAAC,OAAO,CAAA;QAClD,IAAG,WAAW,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,WAAW,EAAE,MAAM,CAAA;YACrC,MAAM,SAAS,GAAI,GAAiB,CAAC,OAAO,CAAC,MAAM,CAAA;YACnD,IAAG,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC3B,kBAAkB,CAAC,WAAW,CAAC,CAAA;YACjC,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1,4 +1,3 @@
1
1
  import { BaseSupport, Support } from '../Support.class.js';
2
- import { DestroyOptions } from '../destroy.support.js';
3
2
  /** used when a tag swaps content returned */
4
- export declare function softDestroySupport(lastSupport: BaseSupport | Support, options?: DestroyOptions): void;
3
+ export declare function softDestroySupport(lastSupport: BaseSupport | Support): void;
@@ -1,22 +1,26 @@
1
- import { resetSupport } from '../Support.class.js';
2
- import { getChildTagsToDestroy } from '../destroy.support.js';
1
+ import { getChildTagsToSoftDestroy } from '../getChildTagsToDestroy.function.js';
2
+ import { smartRemoveKids } from '../smartRemoveKids.function.js';
3
+ import { getNewGlobal } from '../update/getNewGlobal.function.js';
3
4
  /** used when a tag swaps content returned */
4
- export function softDestroySupport(lastSupport, options = { byParent: false, stagger: 0 }) {
5
+ export function softDestroySupport(lastSupport) {
5
6
  const global = lastSupport.subject.global;
6
- global.deleted = true;
7
- // global.context = {}
8
- global.context = [];
9
- const childTags = getChildTagsToDestroy(global.childTags);
10
- lastSupport.destroySubscriptions();
11
- childTags.forEach(child => {
12
- const subGlobal = child.subject.global;
13
- delete subGlobal.newest;
14
- subGlobal.deleted = true;
15
- });
16
- lastSupport.smartRemoveKids();
17
- lastSupport.subject.global.clones.length = 0; // tag maybe used for something else
18
- lastSupport.subject.global.childTags.length = 0; // tag maybe used for something else
19
- resetSupport(lastSupport);
20
- childTags.forEach(child => softDestroySupport(child, { byParent: true, stagger: 0 }));
7
+ const { subs, tags } = getChildTagsToSoftDestroy(global.context);
8
+ softDestroyOne(lastSupport);
9
+ for (const child of tags) {
10
+ softDestroyOne(child);
11
+ }
12
+ const mySubs = global.subscriptions;
13
+ if (mySubs) {
14
+ subs.forEach(sub => sub.unsubscribe());
15
+ }
16
+ lastSupport.subject.global = getNewGlobal();
17
+ }
18
+ function softDestroyOne(child) {
19
+ const global = child.subject.global;
20
+ if (global.deleted === true) {
21
+ return;
22
+ }
23
+ global.deleted = true; // the children are truly destroyed but the main support will be swapped
24
+ smartRemoveKids(child, [], 0);
21
25
  }
22
26
  //# sourceMappingURL=softDestroySupport.function.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"softDestroySupport.function.js","sourceRoot":"","sources":["../../../ts/tag/render/softDestroySupport.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACxE,OAAO,EAAkB,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAE7E,6CAA6C;AAC7C,MAAM,UAAU,kBAAkB,CAChC,WAAkC,EAClC,UAA0B,EAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAC;IAEvD,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAA;IACzC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAA;IACrB,sBAAsB;IACtB,MAAM,CAAC,OAAO,GAAG,EAAE,CAAA;IACnB,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IAEzD,WAAW,CAAC,oBAAoB,EAAE,CAAA;IAElC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAA;QACtC,OAAO,SAAS,CAAC,MAAM,CAAA;QACvB,SAAS,CAAC,OAAO,GAAG,IAAI,CAAA;IAC1B,CAAC,CAAC,CAAA;IAEF,WAAW,CAAC,eAAe,EAAE,CAAA;IAC7B,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA,CAAC,oCAAoC;IACjF,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAA,CAAC,oCAAoC;IAEpF,YAAY,CAAC,WAAW,CAAC,CAAA;IACzB,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAC,CAAC,CAAC,CAAA;AACrF,CAAC"}
1
+ {"version":3,"file":"softDestroySupport.function.js","sourceRoot":"","sources":["../../../ts/tag/render/softDestroySupport.function.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAA;AAEjE,6CAA6C;AAC7C,MAAM,UAAU,kBAAkB,CAChC,WAAkC;IAElC,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,MAA0B,CAAA;IAC7D,MAAM,EAAC,IAAI,EAAE,IAAI,EAAC,GAAG,yBAAyB,CAAC,MAAM,CAAC,OAAkB,CAAC,CAAA;IAEzE,cAAc,CAAC,WAAW,CAAC,CAAA;IAC3B,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;QACzB,cAAc,CAAC,KAAK,CAAC,CAAA;IACvB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAA;IACnC,IAAG,MAAM,EAAE,CAAC;QACV,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAA;IACxC,CAAC;IAED,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,YAAY,EAAiC,CAAA;AAC5E,CAAC;AAED,SAAS,cAAc,CACrB,KAAiB;IAEjB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAmB,CAAA;IAEhD,IAAG,MAAM,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC3B,OAAM;IACR,CAAC;IAED,MAAM,CAAC,OAAO,GAAG,IAAI,CAAA,CAAC,wEAAwE;IAC9F,eAAe,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;AAC/B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { AnySupport } from './Support.class.js';
2
+ /** sets global.deleted on support and all children */
3
+ export declare function smartRemoveKids(support: AnySupport, promises: Promise<any>[], stagger: number): number;
@@ -0,0 +1,80 @@
1
+ import { destroyArray } from './checkDestroyPrevious.function.js';
2
+ import { elementDestroyCheck } from './elementDestroyCheck.function.js';
3
+ import { paint, paintRemoves } from './paint.function.js';
4
+ import { isPromise } from '../isInstance.js';
5
+ /** sets global.deleted on support and all children */
6
+ export function smartRemoveKids(support, promises, stagger) {
7
+ const startStagger = stagger;
8
+ const subject = support.subject;
9
+ const thisGlobal = subject.global;
10
+ const htmlDomMeta = thisGlobal.htmlDomMeta;
11
+ const context = thisGlobal.context;
12
+ thisGlobal.deleted = true;
13
+ for (const subject of context) {
14
+ if (subject.withinOwnerElement) {
15
+ continue; // i live within my owner variable. I will be deleted with owner
16
+ }
17
+ const lastArray = subject.lastArray;
18
+ if (lastArray) {
19
+ destroyArray(subject, lastArray);
20
+ continue;
21
+ }
22
+ // regular values, no placeholders
23
+ const elm = subject.simpleValueElm;
24
+ if (elm) {
25
+ delete subject.simpleValueElm;
26
+ paintRemoves.push(elm);
27
+ continue;
28
+ }
29
+ const global = subject.global;
30
+ if (global === undefined) {
31
+ continue; // subject
32
+ }
33
+ if (global.deleted === true) {
34
+ continue;
35
+ }
36
+ global.deleted = true;
37
+ const oldest = global.oldest;
38
+ if (oldest) {
39
+ // recurse
40
+ stagger = stagger + smartRemoveKids(oldest, promises, stagger);
41
+ continue;
42
+ }
43
+ }
44
+ destroyClones(htmlDomMeta, startStagger, promises);
45
+ return stagger;
46
+ }
47
+ function destroyClones(oldClones, stagger, promises) {
48
+ // check subjects that may have clones attached to them
49
+ const newPromises = oldClones.map(clone => {
50
+ const marker = clone.marker;
51
+ if (marker) {
52
+ paintRemoves.push(marker);
53
+ }
54
+ const dom = clone.domElement;
55
+ if (!dom) {
56
+ return;
57
+ }
58
+ return checkCloneRemoval(dom, stagger);
59
+ }).filter(x => x); // only return promises
60
+ if (newPromises.length) {
61
+ promises.push(Promise.all(newPromises));
62
+ return stagger;
63
+ }
64
+ return stagger;
65
+ }
66
+ /** Reviews elements for the presences of ondestroy */
67
+ function checkCloneRemoval(clone, stagger) {
68
+ const customElm = clone;
69
+ if (customElm.ondestroy) {
70
+ const promise = elementDestroyCheck(customElm, stagger);
71
+ if (isPromise(promise)) {
72
+ return promise.then(() => {
73
+ paintRemoves.push(clone);
74
+ paint();
75
+ });
76
+ }
77
+ }
78
+ paintRemoves.push(clone);
79
+ }
80
+ //# sourceMappingURL=smartRemoveKids.function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smartRemoveKids.function.js","sourceRoot":"","sources":["../../ts/tag/smartRemoveKids.function.ts"],"names":[],"mappings":"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"}
package/js/tag/tag.d.ts CHANGED
@@ -1,14 +1,27 @@
1
- import { Dom, Tag } from './Tag.class.js';
1
+ import { DomTag, StringTag } from './Tag.class.js';
2
2
  import { RouteProps, RouteTag, StateToTag, ToTag } from './tag.types.js';
3
3
  export type TaggedFunction<T> = T & {
4
4
  original: Function;
5
5
  };
6
+ export declare enum PropWatches {
7
+ DEEP = "deep",
8
+ SHALLOW = "shallow",
9
+ NONE = "none",
10
+ IMMUTABLE = "immutable"
11
+ }
6
12
  /** Wraps a function tag in a state manager and calls wrapped function on event cycles
7
13
  * For single rendering, no event cycles, use: tag.renderOnce = (props) => html``
8
14
  */
9
- export declare function tag<T extends ToTag>(tagComponent: T): TaggedFunction<T>;
15
+ export declare function tag<T extends ToTag>(tagComponent: T, propWatch?: PropWatches): TaggedFunction<T>;
10
16
  export declare namespace tag {
11
- var oneRender: (...props: any[]) => Tag | Dom | StateToTag;
17
+ var renderOnce: () => ReturnTag;
18
+ var state: () => ReturnTag;
12
19
  var route: (routeProps: RouteProps) => StateToTag;
20
+ var key: typeof import("./key.js").key;
13
21
  var app: (routeTag: RouteTag) => StateToTag;
22
+ var deepPropWatch: typeof tag;
23
+ var immutableProps: <T extends ToTag>(tagComponent: T) => TaggedFunction<T>;
24
+ var watchProps: <T extends ToTag>(tagComponent: T) => TaggedFunction<T>;
14
25
  }
26
+ type ReturnTag = DomTag | StringTag | StateToTag | null | undefined;
27
+ export {};