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
@@ -1,37 +1,14 @@
1
- import { Tag, Dom } from './Tag.class.js';
2
- import { ValueSubject } from '../subject/index.js';
3
- import { kidsToTagArraySubject } from './kidsToTagArraySubject.function.js';
4
1
  import { ValueTypes } from './ValueTypes.enum.js';
5
- export class TemplaterResult {
6
- props;
7
- tagJsType = ValueTypes.templater;
8
- tagged;
9
- wrapper;
10
- madeChildIntoSubject;
11
- tag;
12
- children = new ValueSubject([]);
13
- arrayValue; // used for tag components used in arrays
14
- constructor(props) {
15
- this.props = props;
16
- this.html.dom = this.dom.bind(this);
17
- }
18
- key(arrayValue) {
19
- this.arrayValue = arrayValue;
20
- return this;
21
- }
22
- /** children */
23
- html(strings, ...values) {
24
- const children = new Tag(strings, values);
25
- const childSubject = kidsToTagArraySubject(children, this);
26
- this.children = childSubject;
27
- return this;
28
- }
29
- /** children */
30
- dom(strings, ...values) {
31
- const children = new Dom(strings, values);
32
- const childSubject = kidsToTagArraySubject(children, this);
33
- this.children = childSubject;
34
- return this;
35
- }
2
+ export function getTemplaterResult(propWatch, props) {
3
+ const templater = {
4
+ propWatch,
5
+ props,
6
+ tagJsType: ValueTypes.templater,
7
+ key: function keyTemplate(arrayValue) {
8
+ templater.arrayValue = arrayValue;
9
+ return templater;
10
+ }
11
+ };
12
+ return templater;
36
13
  }
37
14
  //# sourceMappingURL=TemplaterResult.class.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TemplaterResult.class.js","sourceRoot":"","sources":["../../ts/tag/TemplaterResult.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,GAAG,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAWlD,OAAO,EAAW,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAA;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AA4CjD,MAAM,OAAO,eAAe;IAWP;IAVnB,SAAS,GAAG,UAAU,CAAC,SAAS,CAAA;IAChC,MAAM,CAAU;IAChB,OAAO,CAAU;IAEjB,oBAAoB,CAAU;IAE9B,GAAG,CAAY;IACf,QAAQ,GAAgB,IAAI,YAAY,CAAgB,EAAE,CAAC,CAAA;IAC3D,UAAU,CAAU,CAAC,yCAAyC;IAE9D,YAAmB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;QAC5B,IAAI,CAAC,IAAY,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9C,CAAC;IAED,GAAG,CAAE,UAAmB;QACtB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,eAAe;IACf,IAAI,CACF,OAAwC,EACxC,GAAG,MAAiB;QAEpB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAmB,EAAE,MAAM,CAAC,CAAA;QACrD,MAAM,YAAY,GAAG,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QAC1D,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAA;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,eAAe;IACf,GAAG,CACD,OAAuB,EACvB,GAAG,MAAiB;QAEpB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QACzC,MAAM,YAAY,GAAG,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QAC1D,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAA;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
1
+ {"version":3,"file":"TemplaterResult.class.js","sourceRoot":"","sources":["../../ts/tag/TemplaterResult.class.ts"],"names":[],"mappings":"AAUA,OAAO,EAAa,UAAU,EAAE,MAAM,sBAAsB,CAAA;AA8D5D,MAAM,UAAU,kBAAkB,CAChC,SAAsB,EACtB,KAAa;IAEb,MAAM,SAAS,GAAoB;QACjC,SAAS;QACT,KAAK;QACL,SAAS,EAAE,UAAU,CAAC,SAAS;QAC/B,GAAG,EAAE,SAAS,WAAW,CAAC,UAAmB;YAC3C,SAAS,CAAC,UAAU,GAAG,UAAU,CAAA;YACjC,OAAO,SAAS,CAAA;QAClB,CAAC;KACF,CAAA;IAED,OAAO,SAAS,CAAA;AAClB,CAAC"}
@@ -1,19 +1,29 @@
1
1
  export declare const empty = "";
2
- export declare enum ValueTypes {
3
- unknown = "unknown",
4
- tag = "tag",// html''
5
- dom = "dom",// compiled version of html''
6
- templater = "templater",
7
- tagComponent = "tag-component",
8
- object = "object",
9
- tagArray = "tag-array",
10
- subject = "subject",
11
- tagJsSubject = "tagJsSubject",
12
- oneRender = "oneRender",
13
- date = "date",
2
+ export declare enum ImmutableTypes {
14
3
  string = "string",
15
4
  number = "number",
16
5
  boolean = "boolean",
17
- function = "function",
18
6
  undefined = "undefined"
19
7
  }
8
+ export declare enum BasicTypes {
9
+ function = "function",
10
+ date = "date",
11
+ unknown = "unknown",
12
+ object = "object"
13
+ }
14
+ export type ValueType = [string];
15
+ type ValueTypeObject = {
16
+ tag: ValueType;
17
+ dom: ValueType;
18
+ templater: ValueType;
19
+ tagComponent: ValueType;
20
+ tagArray: ValueType;
21
+ subject: ValueType;
22
+ tagJsSubject: ValueType;
23
+ renderOnce: ValueType;
24
+ stateRender: ValueType;
25
+ version: number;
26
+ };
27
+ /** Used as direct memory comparisons, the strings are never compared, just the array */
28
+ export declare const ValueTypes: ValueTypeObject;
29
+ export {};
@@ -1,21 +1,30 @@
1
1
  export const empty = '';
2
- export var ValueTypes;
3
- (function (ValueTypes) {
4
- ValueTypes["unknown"] = "unknown";
5
- ValueTypes["tag"] = "tag";
6
- ValueTypes["dom"] = "dom";
7
- ValueTypes["templater"] = "templater";
8
- ValueTypes["tagComponent"] = "tag-component";
9
- ValueTypes["object"] = "object";
10
- ValueTypes["tagArray"] = "tag-array";
11
- ValueTypes["subject"] = "subject";
12
- ValueTypes["tagJsSubject"] = "tagJsSubject";
13
- ValueTypes["oneRender"] = "oneRender";
14
- ValueTypes["date"] = "date";
15
- ValueTypes["string"] = "string";
16
- ValueTypes["number"] = "number";
17
- ValueTypes["boolean"] = "boolean";
18
- ValueTypes["function"] = "function";
19
- ValueTypes["undefined"] = "undefined";
20
- })(ValueTypes || (ValueTypes = {}));
2
+ export var ImmutableTypes;
3
+ (function (ImmutableTypes) {
4
+ ImmutableTypes["string"] = "string";
5
+ ImmutableTypes["number"] = "number";
6
+ ImmutableTypes["boolean"] = "boolean";
7
+ ImmutableTypes["undefined"] = "undefined";
8
+ })(ImmutableTypes || (ImmutableTypes = {}));
9
+ export var BasicTypes;
10
+ (function (BasicTypes) {
11
+ BasicTypes["function"] = "function";
12
+ BasicTypes["date"] = "date";
13
+ BasicTypes["unknown"] = "unknown";
14
+ BasicTypes["object"] = "object";
15
+ })(BasicTypes || (BasicTypes = {}));
16
+ const version = Date.now();
17
+ /** Used as direct memory comparisons, the strings are never compared, just the array */
18
+ export const ValueTypes = {
19
+ tag: ['html'], // html'' aka StringTag | DomTag
20
+ dom: ['dom'], // compiled version of html''
21
+ templater: ['templater'],
22
+ tagComponent: ['tagComponent'],
23
+ tagArray: ['tagArray'],
24
+ subject: ['subject'],
25
+ tagJsSubject: ['tagJsSubject'],
26
+ renderOnce: ['renderOnce'],
27
+ stateRender: ['stateRender'],
28
+ version,
29
+ };
21
30
  //# sourceMappingURL=ValueTypes.enum.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ValueTypes.enum.js","sourceRoot":"","sources":["../../ts/tag/ValueTypes.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,CAAA;AAEvB,MAAM,CAAN,IAAY,UAqBX;AArBD,WAAY,UAAU;IACpB,iCAAmB,CAAA;IAEnB,yBAAW,CAAA;IACX,yBAAW,CAAA;IAEX,qCAAuB,CAAA;IACvB,4CAA8B,CAAA;IAC9B,+BAAiB,CAAA;IAEjB,oCAAsB,CAAA;IACtB,iCAAmB,CAAA;IACnB,2CAA6B,CAAA;IAC7B,qCAAuB,CAAA;IAEvB,2BAAa,CAAA;IACb,+BAAiB,CAAA;IACjB,+BAAiB,CAAA;IACjB,iCAAmB,CAAA;IACnB,mCAAqB,CAAA;IACrB,qCAAuB,CAAA;AACzB,CAAC,EArBW,UAAU,KAAV,UAAU,QAqBrB"}
1
+ {"version":3,"file":"ValueTypes.enum.js","sourceRoot":"","sources":["../../ts/tag/ValueTypes.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,CAAA;AAEvB,MAAM,CAAN,IAAY,cAKX;AALD,WAAY,cAAc;IACxB,mCAAiB,CAAA;IACjB,mCAAiB,CAAA;IACjB,qCAAmB,CAAA;IACnB,yCAAuB,CAAA;AACzB,CAAC,EALW,cAAc,KAAd,cAAc,QAKzB;AAED,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,mCAAqB,CAAA;IACrB,2BAAa,CAAA;IACb,iCAAmB,CAAA;IACnB,+BAAiB,CAAA;AACnB,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB;AAkBD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;AAE1B,wFAAwF;AACxF,MAAM,CAAC,MAAM,UAAU,GAAoB;IACzC,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,gCAAgC;IAC/C,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,6BAA6B;IAE3C,SAAS,EAAE,CAAC,WAAW,CAAC;IACxB,YAAY,EAAE,CAAC,cAAc,CAAC;IAC9B,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,OAAO,EAAE,CAAC,SAAS,CAAC;IACpB,YAAY,EAAE,CAAC,cAAc,CAAC;IAE9B,UAAU,EAAE,CAAC,YAAY,CAAC;IAC1B,WAAW,EAAE,CAAC,aAAa,CAAC;IAE5B,OAAO;CACR,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { ElementBuildOptions } from '../interpolations/interpolateTemplate.js';
2
+ import { AnySupport } from './Support.class.js';
3
+ import { ContextItem, Context } from './Context.types.js';
4
+ /** Function that kicks off actually putting tags down as HTML elements */
5
+ export declare function buildBeforeElement(support: AnySupport, element?: Element, insertBefore?: Text, options?: ElementBuildOptions): {
6
+ context: Context;
7
+ subs: import("../interpolations/subscribeToTemplate.function.js").SubToTemplateOptions[];
8
+ dom: import("../interpolations/optimizers/ObjectNode.types.js").DomObjectChildren;
9
+ };
10
+ export declare function addOneContext(value: unknown, context: Context, withinOwnerElement: boolean): ContextItem;
@@ -0,0 +1,47 @@
1
+ import { attachDomElements } from '../interpolations/optimizers/attachDomElements.function.js';
2
+ import { checkSimpleValueChange } from './index.js';
3
+ import { getDomMeta } from './domMetaCollector.js';
4
+ import { ValueTypes } from './ValueTypes.enum.js';
5
+ import { painting } from './paint.function.js';
6
+ /** Function that kicks off actually putting tags down as HTML elements */
7
+ export function buildBeforeElement(support, element, insertBefore, options) {
8
+ const global = support.subject.global;
9
+ global.oldest = support;
10
+ global.newest = support;
11
+ ++painting.locks;
12
+ const result = getHtmlDomMeta(support, options, element, insertBefore);
13
+ global.htmlDomMeta = result.dom;
14
+ --painting.locks;
15
+ // return fragment
16
+ return result;
17
+ }
18
+ function getHtmlDomMeta(support, options = {
19
+ counts: { added: 0, removed: 0 },
20
+ }, appendTo, insertBefore) {
21
+ const domMeta = loadDomMeta(support);
22
+ const thisTag = support.templater.tag;
23
+ const values = thisTag.values;
24
+ const context = [];
25
+ const global = support.subject.global;
26
+ global.context = context;
27
+ const result = attachDomElements(domMeta, values, support, options.counts, context, 0, appendTo, insertBefore);
28
+ return result;
29
+ }
30
+ function loadDomMeta(support) {
31
+ const templater = support.templater;
32
+ const thisTag = templater.tag; // || templater
33
+ if (thisTag.tagJsType === ValueTypes.dom) {
34
+ return thisTag.dom;
35
+ }
36
+ return getDomMeta(thisTag.strings, thisTag.values);
37
+ }
38
+ export function addOneContext(value, context, withinOwnerElement) {
39
+ const contextItem = {
40
+ value,
41
+ checkValueChange: checkSimpleValueChange,
42
+ withinOwnerElement,
43
+ };
44
+ context.push(contextItem);
45
+ return contextItem;
46
+ }
47
+ //# sourceMappingURL=buildBeforeElement.function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildBeforeElement.function.js","sourceRoot":"","sources":["../../ts/tag/buildBeforeElement.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4DAA4D,CAAA;AAO9F,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE9C,0EAA0E;AAC1E,MAAM,UAAU,kBAAkB,CAChC,OAAmB,EACnB,OAAiB,EACjB,YAAmB,EACnB,OAA6B;IAE7B,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAA0B,CAAA;IAEzD,MAAM,CAAC,MAAM,GAAG,OAAO,CAAA;IACvB,MAAM,CAAC,MAAM,GAAG,OAAO,CAAA;IAEvB,EAAE,QAAQ,CAAC,KAAK,CAAA;IAChB,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAA;IACtE,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,GAAG,CAAA;IAC/B,EAAE,QAAQ,CAAC,KAAK,CAAA;IAEhB,kBAAkB;IAClB,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,cAAc,CACrB,OAAmB,EACnB,UAA+B;IAC7B,MAAM,EAAE,EAAC,KAAK,EAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAC;CAC9B,EACD,QAAkB,EAClB,YAAmB;IAEnB,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;IACpC,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,GAAyB,CAAA;IAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAC7B,MAAM,OAAO,GAAyB,EAAE,CAAA;IAExC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAA0B,CAAA;IACzD,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;IAExB,MAAM,MAAM,GAAG,iBAAiB,CAC9B,OAAO,EACP,MAAM,EACN,OAAO,EACP,OAAO,CAAC,MAAM,EACd,OAAO,EACP,CAAC,EACD,QAAQ,EACR,YAAY,CACb,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,WAAW,CAAC,OAAmB;IACtC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;IACnC,MAAM,OAAO,GAAI,SAAS,CAAC,GAA0B,CAAA,CAAC,eAAe;IAErE,IAAG,OAAO,CAAC,SAAS,KAAK,UAAU,CAAC,GAAG,EAAE,CAAC;QACxC,OAAQ,OAAkB,CAAC,GAAiB,CAAA;IAC9C,CAAC;IAED,OAAO,UAAU,CAAE,OAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;AACnE,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,KAAc,EACd,OAAgB,EAChB,kBAA2B;IAE3B,MAAM,WAAW,GAAgB;QAC/B,KAAK;QACL,gBAAgB,EAAE,sBAAsB;QACxC,kBAAkB;KACnB,CAAA;IAED,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAGzB,OAAO,WAAW,CAAA;AACpB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { AnySupport } from './Support.class.js';
2
+ import { ContextItem } from './Tag.class.js';
3
+ export declare function buildSupportContext(support: AnySupport): ContextItem[];
@@ -0,0 +1,15 @@
1
+ export function buildSupportContext(support) {
2
+ const global = support.subject.global;
3
+ const context = global.context = [];
4
+ const thisTag = support.templater.tag;
5
+ const values = thisTag.values; // this.values || thisTag.values
6
+ for (const value of values) {
7
+ // 🆕 First time values below
8
+ context.push({
9
+ value,
10
+ global,
11
+ });
12
+ }
13
+ return context;
14
+ }
15
+ //# sourceMappingURL=buildSupportContext.function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildSupportContext.function.js","sourceRoot":"","sources":["../../ts/tag/buildSupportContext.function.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,mBAAmB,CACjC,OAAmB;IAEnB,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAA0B,CAAA;IACzD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,GAAG,EAAmB,CAAA;IACpD,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,GAAyB,CAAA;IAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA,CAAC,gCAAgC;IAE9D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,6BAA6B;QAC7B,OAAO,CAAC,IAAI,CAAC;YACX,KAAK;YACL,MAAM;SACP,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -1,8 +1,5 @@
1
- import { InterpolateSubject } from './update/processFirstSubject.utils.js';
2
- import { Counts } from '../interpolations/interpolateTemplate.js';
3
- import { Support } from './Support.class.js';
4
- import { ValueTypes } from './ValueTypes.enum.js';
5
- export declare function checkDestroyPrevious(subject: InterpolateSubject, // existing.value is the old value
6
- newValue: unknown, valueType: ValueTypes): false | "changed-simple-value" | "array" | 2 | "different-tag";
7
- export declare function isSimpleType(value: any): boolean;
8
- export declare function destroyArrayTag(support: Support, counts: Counts): void;
1
+ import { ContextItem } from './Context.types.js';
2
+ export declare function checkArrayValueChange(newValue: unknown, subject: ContextItem): false | 9;
3
+ export declare function destroyArray(subject: ContextItem, lastArray: any[]): void;
4
+ export declare function checkSimpleValueChange(newValue: unknown, subject: ContextItem): -1 | 6;
5
+ export declare function checkTagValueChange(newValue: unknown, subject: ContextItem): false | 7 | 8;
@@ -1,79 +1,61 @@
1
- import { isStaticTag } from '../isInstance.js';
1
+ import { isArray, isStaticTag } from '../isInstance.js';
2
+ import { destroyArrayItem } from './update/processTagArray.js';
2
3
  import { isLikeTags } from './isLikeTags.function.js';
3
- import { destroyTagMemory } from './destroyTag.function.js';
4
- import { ValueTypes } from './ValueTypes.enum.js';
5
- export function checkDestroyPrevious(subject, // existing.value is the old value
6
- newValue, valueType) {
7
- const displaySubject = subject;
8
- const hasLastValue = 'lastValue' in displaySubject;
9
- const lastValue = displaySubject.lastValue; // TODO: we maybe able to use displaySubject.value and remove concept of lastValue
10
- // was simple value but now something bigger
11
- if (hasLastValue && lastValue !== newValue) {
12
- // below is faster than using getValueType
13
- const newType = typeof (newValue);
14
- if (isSimpleType(newType) && typeof (lastValue) === newType) {
15
- return false;
16
- }
17
- if (newValue instanceof Function && lastValue instanceof Function) {
18
- return false;
19
- }
20
- destroySimpleValue(displaySubject);
21
- return 'changed-simple-value';
22
- }
23
- const arraySubject = subject;
24
- const wasArray = arraySubject.lastArray;
25
- // no longer an array
26
- if (wasArray && valueType !== ValueTypes.tagArray) {
27
- delete arraySubject.lastArray;
28
- for (let index = wasArray.array.length - 1; index >= 0; --index) {
29
- const { support } = wasArray.array[index];
30
- destroyArrayTag(support, { added: 0, removed: 0 });
31
- }
32
- return 'array';
33
- }
34
- const tagSubject = subject;
35
- const lastSupport = tagSubject.support;
36
- // no longer tag or component?
37
- if (lastSupport) {
38
- const isValueTag = isStaticTag(newValue);
39
- const isSubjectTag = isStaticTag(subject._value);
40
- const newTag = newValue;
41
- if (isSubjectTag && isValueTag) {
42
- // its a different tag now
43
- const likeTags = isLikeTags(newTag, lastSupport);
44
- if (!likeTags) {
45
- // put template back down
46
- destroyTagMemory(lastSupport);
47
- return 2;
48
- }
49
- return false;
50
- }
51
- if (valueType === ValueTypes.tagComponent) {
52
- return false; // its still a tag component
53
- }
54
- if (newValue && newValue.oneRender) {
55
- return false;
56
- }
57
- // destroy old component, value is not a component
58
- destroyTagMemory(lastSupport);
59
- // delete lastSupport.global.deleted // ???
60
- return 'different-tag';
4
+ import { paintRemoves } from './paint.function.js';
5
+ import { getNewGlobal } from './update/getNewGlobal.function.js';
6
+ import { destroySupport } from './destroySupport.function.js';
7
+ import { processUpdateRegularValue } from './update/processRegularValue.function.js';
8
+ import { BasicTypes } from './ValueTypes.enum.js';
9
+ export function checkArrayValueChange(newValue, subject) {
10
+ // no longer an array?
11
+ if (!isArray(newValue)) {
12
+ const lastArray = subject.lastArray;
13
+ destroyArray(subject, lastArray);
14
+ return 9; // 'array'
61
15
  }
62
16
  return false;
63
17
  }
64
- export function isSimpleType(value) {
65
- return [
66
- ValueTypes.string,
67
- ValueTypes.number,
68
- ValueTypes.boolean,
69
- ].includes(value);
18
+ export function destroyArray(subject, lastArray) {
19
+ const counts = { added: 0, removed: 0 };
20
+ delete subject.lastArray;
21
+ for (let index = 0; index < lastArray.length; ++index) {
22
+ destroyArrayItem(lastArray[index], counts);
23
+ }
70
24
  }
71
- export function destroyArrayTag(support, counts) {
72
- support.destroy({
73
- stagger: counts.removed++,
74
- });
25
+ export function checkSimpleValueChange(newValue, subject) {
26
+ const isBadValue = newValue === null || newValue === undefined;
27
+ if (isBadValue || !(typeof (newValue) === BasicTypes.object)) {
28
+ // This will cause all other values to render
29
+ processUpdateRegularValue(newValue, subject);
30
+ return -1; // no need to destroy, just update display
31
+ }
32
+ const elm = subject.simpleValueElm;
33
+ delete subject.simpleValueElm;
34
+ paintRemoves.push(elm);
35
+ return 6; // 'changed-simple-value'
75
36
  }
76
- function destroySimpleValue(subject) {
77
- delete subject.lastValue;
37
+ export function checkTagValueChange(newValue, subject) {
38
+ const global = subject.global;
39
+ const lastSupport = global?.newest;
40
+ const isValueTag = isStaticTag(newValue);
41
+ const newTag = newValue;
42
+ if (isValueTag) {
43
+ // its a different tag now
44
+ const likeTags = isLikeTags(newTag, lastSupport);
45
+ if (!likeTags) {
46
+ destroySupport(lastSupport, 0);
47
+ subject.global = getNewGlobal();
48
+ return 7; // 'tag-swap'
49
+ }
50
+ return false;
51
+ }
52
+ const isTag = newValue?.tagJsType;
53
+ if (isTag) {
54
+ return false; // its still a tag component
55
+ }
56
+ // destroy old component, value is not a component
57
+ destroySupport(lastSupport, 0);
58
+ delete subject.global;
59
+ return 8; // 'no-longer-tag'
78
60
  }
79
61
  //# sourceMappingURL=checkDestroyPrevious.function.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkDestroyPrevious.function.js","sourceRoot":"","sources":["../../ts/tag/checkDestroyPrevious.function.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkDestroyPrevious.function.js","sourceRoot":"","sources":["../../ts/tag/checkDestroyPrevious.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAK,kBAAkB,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAK,6BAA6B,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAK,0BAA0B,CAAA;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,OAAO,EAAE,yBAAyB,EAAgB,MAAM,0CAA0C,CAAA;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,MAAM,UAAU,qBAAqB,CACnC,QAAiB,EACjB,OAAoB;IAEpB,sBAAsB;IACtB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,OAAO,CAAC,SAAsB,CAAA;QAChD,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QAEhC,OAAO,CAAC,CAAA,CAAC,UAAU;IACrB,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,OAAoB,EACpB,SAAgB;IAEhB,MAAM,MAAM,GAAG,EAAC,KAAK,EAAC,CAAC,EAAE,OAAO,EAAC,CAAC,EAAC,CAAA;IACnC,OAAO,OAAO,CAAC,SAAS,CAAA;IAExB,KAAK,IAAI,KAAK,GAAC,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC;QACpD,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAA;IAC5C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,QAAiB,EACjB,OAAoB;IAEpB,MAAM,UAAU,GAAG,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,CAAA;IAC9D,IAAG,UAAU,IAAI,CAAC,CAAC,OAAM,CAAC,QAAQ,CAAC,KAAK,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3D,6CAA6C;QAC7C,yBAAyB,CACvB,QAAwB,EACxB,OAAO,CACR,CAAA;QAED,OAAO,CAAC,CAAC,CAAA,CAAE,0CAA0C;IACvD,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,cAAyB,CAAA;IAC7C,OAAO,OAAO,CAAC,cAAc,CAAA;IAC7B,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEtB,OAAO,CAAC,CAAA,CAAC,yBAAyB;AACpC,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,QAAiB,EACjB,OAAoB;IAEpB,MAAM,MAAM,GAAG,OAAO,CAAC,MAA0B,CAAA;IACjD,MAAM,WAAW,GAAG,MAAM,EAAE,MAAM,CAAA;IAClC,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAA;IACxC,MAAM,MAAM,GAAG,QAAmB,CAAA;IAElC,IAAG,UAAU,EAAE,CAAC;QACd,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;QAChD,IAAG,CAAC,QAAQ,EAAE,CAAC;YACb,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;YAC9B,OAAO,CAAC,MAAM,GAAG,YAAY,EAAE,CAAA;YAC/B,OAAO,CAAC,CAAA,CAAC,aAAa;QACxB,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,KAAK,GAAI,QAAgB,EAAE,SAAS,CAAA;IAC1C,IAAG,KAAK,EAAE,CAAC;QACT,OAAO,KAAK,CAAA,CAAC,4BAA4B;IAC3C,CAAC;IAED,kDAAkD;IAClD,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;IAC9B,OAAO,OAAO,CAAC,MAAM,CAAA;IAErB,OAAO,CAAC,CAAA,CAAC,kBAAkB;AAC7B,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { Props } from '../Props.js';
2
+ import { AnySupport } from './Support.class.js';
3
+ export declare function clonePropsBy(support: AnySupport, props: Props, castProps?: Props): {
4
+ latest: Props;
5
+ castProps: Props | undefined;
6
+ } | undefined;
@@ -0,0 +1,27 @@
1
+ import { ValueTypes } from './ValueTypes.enum.js';
2
+ import { cloneTagJsValue } from './cloneValueArray.function.js';
3
+ import { deepCompareDepth, shallowCompareDepth } from './hasSupportChanged.function.js';
4
+ import { PropWatches } from './tag.js';
5
+ export function clonePropsBy(support, props, castProps) {
6
+ const templater = support.templater;
7
+ if (templater.tagJsType === ValueTypes.stateRender) {
8
+ return;
9
+ }
10
+ switch (templater.propWatch) {
11
+ case PropWatches.IMMUTABLE:
12
+ return support.propsConfig = {
13
+ latest: props,
14
+ castProps,
15
+ };
16
+ case PropWatches.SHALLOW:
17
+ return support.propsConfig = {
18
+ latest: props.map(x => cloneTagJsValue(x, shallowCompareDepth)),
19
+ castProps,
20
+ };
21
+ }
22
+ return support.propsConfig = {
23
+ latest: props.map(props => cloneTagJsValue(props, deepCompareDepth)),
24
+ castProps,
25
+ };
26
+ }
27
+ //# sourceMappingURL=clonePropsBy.function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clonePropsBy.function.js","sourceRoot":"","sources":["../../ts/tag/clonePropsBy.function.ts"],"names":[],"mappings":"AAEA,OAAO,EAAG,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAA;AACvF,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAEtC,MAAM,UAAU,YAAY,CAC1B,OAAmB,EACnB,KAAY,EACZ,SAAiB;IAEjB,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;IACnC,IAAG,SAAS,CAAC,SAAS,KAAK,UAAU,CAAC,WAAW,EAAE,CAAC;QAClD,OAAM;IACR,CAAC;IAED,QAAQ,SAAS,CAAC,SAAS,EAAE,CAAC;QAC5B,KAAK,WAAW,CAAC,SAAS;YACxB,OAAO,OAAO,CAAC,WAAW,GAAG;gBAC3B,MAAM,EAAE,KAAK;gBACb,SAAS;aACV,CAAA;QAEH,KAAK,WAAW,CAAC,OAAO;YACtB,OAAO,OAAO,CAAC,WAAW,GAAG;gBAC3B,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;gBAC/D,SAAS;aACV,CAAA;IACL,CAAC;IAED,OAAO,OAAO,CAAC,WAAW,GAAG;QAC3B,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QACpE,SAAS;KACV,CAAA;AACH,CAAC"}
@@ -1,3 +1,4 @@
1
- import { Tag } from './Tag.class.js';
2
- export declare function cloneValueArray<T>(values: (T | Tag | Tag[])[]): T[];
3
- export declare function cloneTagJsValue<T>(value: T | Tag | Tag[]): T;
1
+ import { StringTag } from './Tag.class.js';
2
+ export declare function cloneValueArray<T>(values: (T | StringTag | StringTag[])[]): T[];
3
+ /** clones only what is needed to compare differences later */
4
+ export declare function cloneTagJsValue<T>(value: T, maxDepth: number): T;
@@ -1,22 +1,26 @@
1
1
  import { deepClone } from '../deepFunctions.js';
2
2
  import { ValueTypes } from './ValueTypes.enum.js';
3
- import { getValueType } from './getValueType.function.js';
3
+ import { isArray } from '../isInstance.js';
4
4
  export function cloneValueArray(values) {
5
5
  return values.map(cloneTagJsValue);
6
6
  }
7
- export function cloneTagJsValue(value) {
7
+ /** clones only what is needed to compare differences later */
8
+ export function cloneTagJsValue(value, maxDepth) {
8
9
  const tag = value;
9
- switch (getValueType(value)) {
10
- case ValueTypes.tagComponent:
11
- const tagComponent = value;
12
- return deepClone(tagComponent.props);
13
- case ValueTypes.dom:
14
- case ValueTypes.tag:
15
- case ValueTypes.templater:
16
- return cloneValueArray(tag.values);
17
- case ValueTypes.tagArray:
18
- return cloneValueArray(tag);
10
+ const tagJsType = value?.tagJsType;
11
+ if (tagJsType) {
12
+ switch (tagJsType) {
13
+ case ValueTypes.stateRender:
14
+ return undefined;
15
+ case ValueTypes.dom:
16
+ case ValueTypes.tag:
17
+ case ValueTypes.templater:
18
+ return cloneValueArray(tag.values);
19
+ }
19
20
  }
20
- return deepClone(value);
21
+ if (isArray(value)) {
22
+ return cloneValueArray(tag);
23
+ }
24
+ return deepClone(value, maxDepth);
21
25
  }
22
26
  //# sourceMappingURL=cloneValueArray.function.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cloneValueArray.function.js","sourceRoot":"","sources":["../../ts/tag/cloneValueArray.function.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEzD,MAAM,UAAU,eAAe,CAAI,MAA2B;IAC5D,OAAO,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;AACpC,CAAC;AAED,MAAM,UAAU,eAAe,CAAI,KAAsB;IACvD,MAAM,GAAG,GAAG,KAAY,CAAA;IAExB,QAAQ,YAAY,CAAC,KAAK,CAAC,EAAG,CAAC;QAC7B,KAAK,UAAU,CAAC,YAAY;YAC1B,MAAM,YAAY,GAAG,KAAwB,CAAA;YAC7C,OAAO,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;QAEtC,KAAK,UAAU,CAAC,GAAG,CAAC;QACpB,KAAK,UAAU,CAAC,GAAG,CAAC;QACpB,KAAK,UAAU,CAAC,SAAS;YACvB,OAAO,eAAe,CAAC,GAAG,CAAC,MAAM,CAAM,CAAA;QAEzC,KAAK,UAAU,CAAC,QAAQ;YACtB,OAAO,eAAe,CAAC,GAAuB,CAAM,CAAA;IACxD,CAAC;IAED,OAAO,SAAS,CAAC,KAAK,CAAC,CAAA;AACzB,CAAC"}
1
+ {"version":3,"file":"cloneValueArray.function.js","sourceRoot":"","sources":["../../ts/tag/cloneValueArray.function.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAa,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAE1C,MAAM,UAAU,eAAe,CAC7B,MAAuC;IAEvC,OAAO,MAAM,CAAC,GAAG,CAAC,eAAsB,CAAC,CAAA;AAC3C,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,eAAe,CAC7B,KAAQ,EACR,QAAgB;IAEhB,MAAM,GAAG,GAAG,KAAkB,CAAA;IAE9B,MAAM,SAAS,GAAI,KAAa,EAAE,SAAsB,CAAA;IACxD,IAAG,SAAS,EAAE,CAAC;QACb,QAAQ,SAAS,EAAG,CAAC;YACnB,KAAK,UAAU,CAAC,WAAW;gBACzB,OAAO,SAAgB,CAAA;YAEzB,KAAK,UAAU,CAAC,GAAG,CAAC;YACpB,KAAK,UAAU,CAAC,GAAG,CAAC;YACpB,KAAK,UAAU,CAAC,SAAS;gBACvB,OAAO,eAAe,CAAC,GAAG,CAAC,MAAM,CAAM,CAAA;QAC3C,CAAC;IACH,CAAC;IAED,IAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAClB,OAAO,eAAe,CAAC,GAA6B,CAAM,CAAA;IAC5D,CAAC;IAED,OAAO,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;AACnC,CAAC"}
@@ -1,6 +1,8 @@
1
- import { Support } from './Support.class.js';
2
- export type DestroyOptions = {
3
- stagger: number;
4
- byParent?: boolean;
1
+ import { Subscription } from '../subject/subject.utils.js';
2
+ import { AnySupport } from './Support.class.js';
3
+ import { Context } from './Context.types.js';
4
+ export declare function getChildTagsToDestroy(childTags: Context): void;
5
+ export declare function getChildTagsToSoftDestroy(childTags: Context, tags?: AnySupport[], subs?: Subscription<any>[]): {
6
+ subs: Subscription<any>[];
7
+ tags: AnySupport[];
5
8
  };
6
- export declare function getChildTagsToDestroy(childTags: Support[], allTags?: Support[]): Support[];
@@ -1,9 +1,47 @@
1
- export function getChildTagsToDestroy(childTags, allTags = []) {
2
- for (let index = childTags.length - 1; index >= 0; --index) {
3
- const cTag = childTags[index];
4
- allTags.push(cTag);
5
- getChildTagsToDestroy(cTag.subject.global.childTags, allTags);
1
+ import { isTagComponent } from '../isInstance.js';
2
+ import { runBeforeDestroy } from './tagRunner.js';
3
+ export function getChildTagsToDestroy(childTags) {
4
+ for (const child of childTags) {
5
+ const lastArray = child.lastArray;
6
+ if (lastArray) {
7
+ getChildTagsToDestroy(lastArray);
8
+ continue;
9
+ }
10
+ const global = child.global;
11
+ if (!global) {
12
+ continue; // not a support contextItem
13
+ }
14
+ const support = global.newest;
15
+ const iSubs = global.subscriptions;
16
+ if (iSubs) {
17
+ iSubs.forEach(iSub => iSub.unsubscribe());
18
+ }
19
+ if (isTagComponent(support.templater)) {
20
+ runBeforeDestroy(support);
21
+ }
22
+ const subTags = global.context;
23
+ getChildTagsToDestroy(subTags);
6
24
  }
7
- return allTags;
25
+ }
26
+ export function getChildTagsToSoftDestroy(childTags, tags = [], subs = []) {
27
+ for (const child of childTags) {
28
+ const global = child.global;
29
+ if (!global) {
30
+ continue;
31
+ }
32
+ const support = global.newest;
33
+ if (support) {
34
+ tags.push(support);
35
+ const iSubs = global.subscriptions;
36
+ if (iSubs) {
37
+ subs.push(...iSubs);
38
+ }
39
+ }
40
+ const subTags = global.context;
41
+ if (subTags) {
42
+ getChildTagsToSoftDestroy(subTags, tags, subs);
43
+ }
44
+ }
45
+ return { tags, subs };
8
46
  }
9
47
  //# sourceMappingURL=destroy.support.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"destroy.support.js","sourceRoot":"","sources":["../../ts/tag/destroy.support.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,qBAAqB,CACnC,SAAoB,EACpB,UAAqB,EAAE;IAEvB,KAAK,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;QAC3D,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;QAE7B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClB,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAC/D,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
1
+ {"version":3,"file":"destroy.support.js","sourceRoot":"","sources":["../../ts/tag/destroy.support.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAIjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAGjD,MAAM,UAAU,qBAAqB,CACnC,SAAkB;IAElB,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;QACjC,IAAG,SAAS,EAAE,CAAC;YACb,qBAAqB,CAAC,SAAS,CAAC,CAAA;YAChC,SAAQ;QACV,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAA0B,CAAA;QAC/C,IAAG,CAAC,MAAM,EAAE,CAAC;YACX,SAAQ,CAAC,4BAA4B;QACvC,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAA;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa,CAAA;QAClC,IAAG,KAAK,EAAE,CAAC;YACT,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;QAC3C,CAAC;QAED,IAAG,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YACrC,gBAAgB,CAAC,OAAO,CAAC,CAAA;QAC3B,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAkB,CAAA;QACzC,qBAAqB,CAAC,OAAO,CAAC,CAAA;IAChC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,SAAkB,EAClB,OAAqB,EAAE,EACvB,OAA4B,EAAE;IAE9B,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,MAA0B,CAAA;QAE/C,IAAG,CAAC,MAAM,EAAE,CAAC;YACX,SAAQ;QACV,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAA;QAC7B,IAAG,OAAO,EAAE,CAAC;YACX,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAClB,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa,CAAA;YAClC,IAAG,KAAK,EAAE,CAAC;gBACT,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAA;YACrB,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAkB,CAAA;QACzC,IAAG,OAAO,EAAE,CAAC;YACX,yBAAyB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAChD,CAAC;IACH,CAAC;IAED,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,CAAA;AACrB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { AnySupport } from './Support.class.js';
2
+ export declare function destroySupport(support: AnySupport, stagger: number): number | Promise<number>;
@@ -0,0 +1,21 @@
1
+ import { runBeforeDestroy } from './tagRunner.js';
2
+ import { getChildTagsToDestroy } from './getChildTagsToDestroy.function.js';
3
+ import { smartRemoveKids } from './smartRemoveKids.function.js';
4
+ export function destroySupport(support, stagger) {
5
+ const global = support.subject.global;
6
+ global.deleted = true;
7
+ const context = global.context;
8
+ getChildTagsToDestroy(context);
9
+ if (global.destroy$) {
10
+ global.destroy$.next();
11
+ runBeforeDestroy(support);
12
+ }
13
+ // first paint
14
+ const promises = [];
15
+ stagger = smartRemoveKids(support, promises, stagger);
16
+ if (promises.length) {
17
+ return Promise.all(promises).then(() => stagger);
18
+ }
19
+ return stagger;
20
+ }
21
+ //# sourceMappingURL=destroySupport.function.js.map