taggedjs 2.5.23 → 2.5.24

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 (245) hide show
  1. package/bundle.js +1 -1
  2. package/bundle.js.gz +0 -0
  3. package/bundle.js.map +1 -1
  4. package/bundle.js.map.gz +0 -0
  5. package/js/alterProp.function.d.ts +7 -7
  6. package/js/alterProp.function.js +78 -43
  7. package/js/alterProp.function.js.map +1 -1
  8. package/js/buildClones.function.d.ts +2 -0
  9. package/js/buildClones.function.js +12 -0
  10. package/js/buildClones.function.js.map +1 -0
  11. package/js/deepFunctions.js +40 -18
  12. package/js/deepFunctions.js.map +1 -1
  13. package/js/index.d.ts +4 -5
  14. package/js/index.js +4 -5
  15. package/js/index.js.map +1 -1
  16. package/js/interpolations/afterInterpolateElement.function.d.ts +3 -3
  17. package/js/interpolations/afterInterpolateElement.function.js +6 -5
  18. package/js/interpolations/afterInterpolateElement.function.js.map +1 -1
  19. package/js/interpolations/bindSubjectCallback.function.d.ts +9 -3
  20. package/js/interpolations/bindSubjectCallback.function.js +76 -35
  21. package/js/interpolations/bindSubjectCallback.function.js.map +1 -1
  22. package/js/interpolations/interpolateAttributes.d.ts +3 -2
  23. package/js/interpolations/interpolateAttributes.js +6 -10
  24. package/js/interpolations/interpolateAttributes.js.map +1 -1
  25. package/js/interpolations/interpolateContentTemplates.d.ts +3 -7
  26. package/js/interpolations/interpolateContentTemplates.js +16 -12
  27. package/js/interpolations/interpolateContentTemplates.js.map +1 -1
  28. package/js/interpolations/interpolateElement.d.ts +4 -6
  29. package/js/interpolations/interpolateElement.js +4 -13
  30. package/js/interpolations/interpolateElement.js.map +1 -1
  31. package/js/interpolations/interpolateTemplate.d.ts +8 -11
  32. package/js/interpolations/interpolateTemplate.js +0 -66
  33. package/js/interpolations/interpolateTemplate.js.map +1 -1
  34. package/js/interpolations/interpolations.d.ts +0 -3
  35. package/js/interpolations/interpolations.js +1 -17
  36. package/js/interpolations/interpolations.js.map +1 -1
  37. package/js/interpolations/optimizers/ObjectNode.types.d.ts +31 -0
  38. package/js/interpolations/optimizers/ObjectNode.types.js +2 -0
  39. package/js/interpolations/optimizers/ObjectNode.types.js.map +1 -0
  40. package/js/interpolations/optimizers/htmlInterpolationToDomMeta.function.d.ts +4 -0
  41. package/js/interpolations/optimizers/htmlInterpolationToDomMeta.function.js +136 -0
  42. package/js/interpolations/optimizers/htmlInterpolationToDomMeta.function.js.map +1 -0
  43. package/js/interpolations/optimizers/metaAttachDomElements.function.d.ts +6 -0
  44. package/js/interpolations/optimizers/metaAttachDomElements.function.js +43 -0
  45. package/js/interpolations/optimizers/metaAttachDomElements.function.js.map +1 -0
  46. package/js/interpolations/optimizers/replacePlaceholders.function.d.ts +2 -0
  47. package/js/interpolations/optimizers/replacePlaceholders.function.js +92 -0
  48. package/js/interpolations/optimizers/replacePlaceholders.function.js.map +1 -0
  49. package/js/interpolations/optimizers/restorePlaceholders.function.d.ts +3 -0
  50. package/js/interpolations/optimizers/restorePlaceholders.function.js +39 -0
  51. package/js/interpolations/optimizers/restorePlaceholders.function.js.map +1 -0
  52. package/js/interpolations/processAttribute.function.d.ts +8 -3
  53. package/js/interpolations/processAttribute.function.js +42 -45
  54. package/js/interpolations/processAttribute.function.js.map +1 -1
  55. package/js/interpolations/scanTextAreaValue.function.d.ts +2 -2
  56. package/js/interpolations/scanTextAreaValue.function.js +11 -6
  57. package/js/interpolations/scanTextAreaValue.function.js.map +1 -1
  58. package/js/interpolations/specialAttribute.js +4 -2
  59. package/js/interpolations/specialAttribute.js.map +1 -1
  60. package/js/interpolations/subscribeToTemplate.function.d.ts +5 -0
  61. package/js/interpolations/subscribeToTemplate.function.js +28 -0
  62. package/js/interpolations/subscribeToTemplate.function.js.map +1 -0
  63. package/js/isInstance.d.ts +2 -2
  64. package/js/isInstance.js +9 -3
  65. package/js/isInstance.js.map +1 -1
  66. package/js/render.js +17 -4
  67. package/js/render.js.map +1 -1
  68. package/js/state/callbackMaker.function.js +13 -14
  69. package/js/state/callbackMaker.function.js.map +1 -1
  70. package/js/state/callbackStateUpdate.function.d.ts +2 -2
  71. package/js/state/callbackStateUpdate.function.js +5 -5
  72. package/js/state/callbackStateUpdate.function.js.map +1 -1
  73. package/js/state/children.js +5 -5
  74. package/js/state/children.js.map +1 -1
  75. package/js/state/handleProviderChanges.function.d.ts +2 -2
  76. package/js/state/handleProviderChanges.function.js +13 -10
  77. package/js/state/handleProviderChanges.function.js.map +1 -1
  78. package/js/state/onDestroy.js +2 -2
  79. package/js/state/onDestroy.js.map +1 -1
  80. package/js/state/providers.d.ts +3 -3
  81. package/js/state/providers.js +11 -11
  82. package/js/state/providers.js.map +1 -1
  83. package/js/state/providersChangeCheck.function.d.ts +2 -2
  84. package/js/state/providersChangeCheck.function.js +7 -3
  85. package/js/state/providersChangeCheck.function.js.map +1 -1
  86. package/js/state/setUse.function.d.ts +10 -10
  87. package/js/state/state.function.js +3 -3
  88. package/js/state/state.function.js.map +1 -1
  89. package/js/state/state.utils.d.ts +2 -2
  90. package/js/state/state.utils.js +15 -16
  91. package/js/state/state.utils.js.map +1 -1
  92. package/js/state/subject.function.js +6 -6
  93. package/js/state/subject.function.js.map +1 -1
  94. package/js/state/watch.function.js +3 -3
  95. package/js/state/watch.function.js.map +1 -1
  96. package/js/subject/Subject.class.d.ts +2 -2
  97. package/js/subject/Subject.class.js +5 -11
  98. package/js/subject/Subject.class.js.map +1 -1
  99. package/js/subject/ValueSubject.d.ts +1 -1
  100. package/js/subject/combineLatest.function.js +3 -1
  101. package/js/subject/combineLatest.function.js.map +1 -1
  102. package/js/subject/subject.utils.js +15 -13
  103. package/js/subject/subject.utils.js.map +1 -1
  104. package/js/subject/will.functions.js.map +1 -1
  105. package/js/subject.types.d.ts +6 -10
  106. package/js/tag/Support.class.d.ts +69 -0
  107. package/js/tag/Support.class.js +290 -0
  108. package/js/tag/Support.class.js.map +1 -0
  109. package/js/tag/Tag.class.d.ts +30 -18
  110. package/js/tag/Tag.class.js +36 -8
  111. package/js/tag/Tag.class.js.map +1 -1
  112. package/js/tag/TagSupport.class.d.ts +1 -0
  113. package/js/tag/TagSupport.class.js +19 -23
  114. package/js/tag/TagSupport.class.js.map +1 -1
  115. package/js/tag/TemplaterResult.class.d.ts +17 -10
  116. package/js/tag/TemplaterResult.class.js +12 -2
  117. package/js/tag/TemplaterResult.class.js.map +1 -1
  118. package/js/tag/ValueTypes.enum.d.ts +7 -1
  119. package/js/tag/ValueTypes.enum.js +6 -0
  120. package/js/tag/ValueTypes.enum.js.map +1 -1
  121. package/js/tag/checkDestroyPrevious.function.d.ts +3 -5
  122. package/js/tag/checkDestroyPrevious.function.js +16 -38
  123. package/js/tag/checkDestroyPrevious.function.js.map +1 -1
  124. package/js/tag/cloneValueArray.function.d.ts +1 -0
  125. package/js/tag/cloneValueArray.function.js +16 -14
  126. package/js/tag/cloneValueArray.function.js.map +1 -1
  127. package/js/tag/destroy.support.d.ts +2 -2
  128. package/js/tag/destroy.support.js +1 -2
  129. package/js/tag/destroy.support.js.map +1 -1
  130. package/js/tag/destroyTag.function.d.ts +2 -2
  131. package/js/tag/destroyTag.function.js +4 -3
  132. package/js/tag/destroyTag.function.js.map +1 -1
  133. package/js/tag/domMetaCollector.d.ts +3 -0
  134. package/js/tag/domMetaCollector.js +26 -0
  135. package/js/tag/domMetaCollector.js.map +1 -0
  136. package/js/tag/getStringsId.function.d.ts +1 -0
  137. package/js/tag/getStringsId.function.js +7 -0
  138. package/js/tag/getStringsId.function.js.map +1 -0
  139. package/js/tag/getSupportInCycle.function.d.ts +1 -1
  140. package/js/tag/getSupportInCycle.function.js +1 -1
  141. package/js/tag/getSupportInCycle.function.js.map +1 -1
  142. package/js/tag/getTagWrap.function.js +66 -57
  143. package/js/tag/getTagWrap.function.js.map +1 -1
  144. package/js/tag/getValueType.function.js +15 -10
  145. package/js/tag/getValueType.function.js.map +1 -1
  146. package/js/tag/hasPropChanges.function.d.ts +1 -1
  147. package/js/tag/hasPropChanges.function.js +8 -11
  148. package/js/tag/hasPropChanges.function.js.map +1 -1
  149. package/js/tag/hasSupportChanged.function.d.ts +4 -0
  150. package/js/tag/hasSupportChanged.function.js +27 -0
  151. package/js/tag/hasSupportChanged.function.js.map +1 -0
  152. package/js/tag/hasTagSupportChanged.function.js +15 -2
  153. package/js/tag/hasTagSupportChanged.function.js.map +1 -1
  154. package/js/tag/html.d.ts +5 -1
  155. package/js/tag/html.js +4 -1
  156. package/js/tag/html.js.map +1 -1
  157. package/js/tag/index.d.ts +3 -1
  158. package/js/tag/index.js +3 -1
  159. package/js/tag/index.js.map +1 -1
  160. package/js/tag/isLastRunMatched.function.d.ts +2 -0
  161. package/js/tag/isLastRunMatched.function.js +14 -0
  162. package/js/tag/isLastRunMatched.function.js.map +1 -0
  163. package/js/tag/isLikeTags.function.d.ts +3 -3
  164. package/js/tag/isLikeTags.function.js +43 -9
  165. package/js/tag/isLikeTags.function.js.map +1 -1
  166. package/js/tag/kidsToTagArraySubject.function.d.ts +2 -2
  167. package/js/tag/kidsToTagArraySubject.function.js +1 -1
  168. package/js/tag/kidsToTagArraySubject.function.js.map +1 -1
  169. package/js/tag/render/destroyUnlikeTags.function.d.ts +3 -3
  170. package/js/tag/render/destroyUnlikeTags.function.js +2 -12
  171. package/js/tag/render/destroyUnlikeTags.function.js.map +1 -1
  172. package/js/tag/render/renderExistingTag.function.d.ts +5 -5
  173. package/js/tag/render/renderExistingTag.function.js +9 -6
  174. package/js/tag/render/renderExistingTag.function.js.map +1 -1
  175. package/js/tag/render/renderSubjectComponent.function.d.ts +2 -2
  176. package/js/tag/render/renderSubjectComponent.function.js +7 -5
  177. package/js/tag/render/renderSubjectComponent.function.js.map +1 -1
  178. package/js/tag/render/renderSupport.function.d.ts +4 -0
  179. package/js/tag/render/renderSupport.function.js +43 -0
  180. package/js/tag/render/renderSupport.function.js.map +1 -0
  181. package/js/tag/render/renderTagOnly.function.d.ts +2 -2
  182. package/js/tag/render/renderTagOnly.function.js +19 -20
  183. package/js/tag/render/renderTagOnly.function.js.map +1 -1
  184. package/js/tag/render/renderWithSupport.function.d.ts +3 -3
  185. package/js/tag/render/renderWithSupport.function.js +38 -5
  186. package/js/tag/render/renderWithSupport.function.js.map +1 -1
  187. package/js/tag/render/softDestroySupport.function.d.ts +2 -2
  188. package/js/tag/render/softDestroySupport.function.js +11 -8
  189. package/js/tag/render/softDestroySupport.function.js.map +1 -1
  190. package/js/tag/setTagPlaceholder.function.js +2 -1
  191. package/js/tag/setTagPlaceholder.function.js.map +1 -1
  192. package/js/tag/tag.d.ts +2 -2
  193. package/js/tag/tag.js +1 -0
  194. package/js/tag/tag.js.map +1 -1
  195. package/js/tag/tag.types.d.ts +4 -4
  196. package/js/tag/tag.utils.d.ts +10 -7
  197. package/js/tag/tag.utils.js.map +1 -1
  198. package/js/tag/tagElement.d.ts +3 -3
  199. package/js/tag/tagElement.js +36 -31
  200. package/js/tag/tagElement.js.map +1 -1
  201. package/js/tag/tagRunner.d.ts +5 -5
  202. package/js/tag/tagRunner.js +15 -15
  203. package/js/tag/tagRunner.js.map +1 -1
  204. package/js/tag/textNode.d.ts +4 -0
  205. package/js/tag/textNode.js +9 -0
  206. package/js/tag/textNode.js.map +1 -0
  207. package/js/tag/update/TagJsSubject.class.d.ts +8 -0
  208. package/js/tag/update/TagJsSubject.class.js +23 -0
  209. package/js/tag/update/TagJsSubject.class.js.map +1 -0
  210. package/js/tag/update/oneRenderToSupport.function.d.ts +4 -0
  211. package/js/tag/update/oneRenderToSupport.function.js +19 -0
  212. package/js/tag/update/oneRenderToSupport.function.js.map +1 -0
  213. package/js/tag/update/processFirstSubject.utils.d.ts +5 -4
  214. package/js/tag/update/processFirstSubjectValue.function.d.ts +4 -3
  215. package/js/tag/update/processFirstSubjectValue.function.js +12 -10
  216. package/js/tag/update/processFirstSubjectValue.function.js.map +1 -1
  217. package/js/tag/update/processNewValue.function.d.ts +3 -2
  218. package/js/tag/update/processNewValue.function.js +11 -8
  219. package/js/tag/update/processNewValue.function.js.map +1 -1
  220. package/js/tag/update/processRegularValue.function.js +5 -5
  221. package/js/tag/update/processRegularValue.function.js.map +1 -1
  222. package/js/tag/update/processSubjectComponent.function.d.ts +3 -3
  223. package/js/tag/update/processSubjectComponent.function.js +13 -11
  224. package/js/tag/update/processSubjectComponent.function.js.map +1 -1
  225. package/js/tag/update/processTag.function.d.ts +10 -9
  226. package/js/tag/update/processTag.function.js +30 -23
  227. package/js/tag/update/processTag.function.js.map +1 -1
  228. package/js/tag/update/processTagArray.d.ts +15 -9
  229. package/js/tag/update/processTagArray.js +56 -52
  230. package/js/tag/update/processTagArray.js.map +1 -1
  231. package/js/tag/update/processTagResult.function.d.ts +4 -6
  232. package/js/tag/update/processTagResult.function.js +22 -16
  233. package/js/tag/update/processTagResult.function.js.map +1 -1
  234. package/js/tag/update/updateContextItem.function.d.ts +1 -1
  235. package/js/tag/update/updateContextItem.function.js +4 -3
  236. package/js/tag/update/updateContextItem.function.js.map +1 -1
  237. package/js/tag/update/updateExistingTagComponent.function.d.ts +7 -4
  238. package/js/tag/update/updateExistingTagComponent.function.js +78 -86
  239. package/js/tag/update/updateExistingTagComponent.function.js.map +1 -1
  240. package/js/tag/update/updateExistingValue.function.d.ts +3 -2
  241. package/js/tag/update/updateExistingValue.function.js +35 -45
  242. package/js/tag/update/updateExistingValue.function.js.map +1 -1
  243. package/js/updateBeforeTemplate.function.js +2 -1
  244. package/js/updateBeforeTemplate.function.js.map +1 -1
  245. package/package.json +1 -1
@@ -1,39 +1,38 @@
1
1
  import { runBeforeRedraw, runBeforeRender } from '../tagRunner.js';
2
2
  import { runAfterRender } from '../tagRunner.js';
3
- export function renderTagOnly(newTagSupport, prevSupport, subject, ownerSupport) {
4
- const oldRenderCount = newTagSupport.global.renderCount;
5
- beforeWithRender(newTagSupport, ownerSupport, prevSupport);
6
- const templater = newTagSupport.templater;
3
+ export function renderTagOnly(newSupport, prevSupport, subject, ownerSupport) {
4
+ const oldRenderCount = subject.global.renderCount;
5
+ beforeWithRender(newSupport, ownerSupport, prevSupport);
6
+ const templater = newSupport.templater;
7
7
  // NEW TAG CREATED HERE
8
8
  const wrapper = templater.wrapper;
9
- let reSupport = wrapper(newTagSupport, subject);
9
+ let reSupport = wrapper(newSupport, subject, prevSupport);
10
10
  /* AFTER */
11
- runAfterRender(newTagSupport, ownerSupport);
12
- newTagSupport.global.newest = reSupport;
11
+ runAfterRender(newSupport, ownerSupport);
12
+ subject.global.newest = reSupport;
13
13
  if (!prevSupport && ownerSupport) {
14
- ownerSupport.global.childTags.push(reSupport);
14
+ ownerSupport.subject.global.childTags.push(reSupport);
15
15
  }
16
16
  // When we rendered, only 1 render should have taken place OTHERWISE rendering caused another render and that is the latest instead
17
- if (reSupport.global.renderCount > oldRenderCount + 1) {
18
- return newTagSupport.global.newest;
17
+ if (subject.global.renderCount > oldRenderCount + 1) {
18
+ return subject.global.newest;
19
19
  }
20
20
  return reSupport;
21
21
  }
22
- function beforeWithRender(tagSupport, // new
22
+ function beforeWithRender(support, // new
23
23
  parentSupport, prevSupport) {
24
- const lastOwnerSupport = prevSupport?.ownerTagSupport;
24
+ const lastOwnerSupport = prevSupport?.ownerSupport;
25
25
  const runtimeOwnerSupport = lastOwnerSupport || parentSupport;
26
26
  if (prevSupport) {
27
- if (prevSupport !== tagSupport) {
28
- const lastState = prevSupport.memory.state;
29
- const memory = tagSupport.memory;
30
- tagSupport.global = prevSupport.global;
31
- memory.state.length = 0;
32
- memory.state.push(...lastState);
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);
33
32
  }
34
- return runBeforeRedraw(tagSupport, prevSupport);
33
+ return runBeforeRedraw(support, prevSupport);
35
34
  }
36
35
  // first time render
37
- return runBeforeRender(tagSupport, runtimeOwnerSupport);
36
+ return runBeforeRender(support, runtimeOwnerSupport);
38
37
  }
39
38
  //# 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,aAA0C,EAC1C,WAAoD,EACpD,OAAmB,EACnB,YAA0C;IAE1C,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,WAAW,CAAA;IAEvD,gBAAgB,CAAC,aAAa,EAAE,YAAY,EAAE,WAAW,CAAC,CAAA;IAE1D,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAA;IAEzC,uBAAuB;IACvB,MAAM,OAAO,GAAG,SAAS,CAAC,OAAkB,CAAA;IAC5C,IAAI,SAAS,GAAG,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;IAC/C,WAAW;IAEX,cAAc,CAAC,aAAa,EAAE,YAAY,CAAC,CAAA;IAE3C,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAA;IACvC,IAAG,CAAC,WAAW,IAAI,YAAY,EAAE,CAAC;QAChC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC/C,CAAC;IAED,mIAAmI;IACnI,IAAG,SAAS,CAAC,MAAM,CAAC,WAAW,GAAG,cAAc,GAAG,CAAC,EAAE,CAAC;QACrD,OAAO,aAAa,CAAC,MAAM,CAAC,MAAoB,CAAA;IAClD,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,gBAAgB,CACvB,UAAuC,EAAE,MAAM;AAC/C,aAA2C,EAC3C,WAAyC;IAEzC,MAAM,gBAAgB,GAAI,WAA0B,EAAE,eAAe,CAAA;IACrE,MAAM,mBAAmB,GAA2B,gBAAgB,IAAI,aAAa,CAAA;IAErF,IAAG,WAAW,EAAE,CAAC;QACf,IAAG,WAAW,KAAK,UAAU,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAA;YAC1C,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;YAChC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAA;YACtC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;YACvB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAA;QACjC,CAAC;QAED,OAAO,eAAe,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;IACjD,CAAC;IAED,oBAAoB;IACpB,OAAO,eAAe,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAA;AACzD,CAAC"}
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,5 +1,5 @@
1
- import { BaseTagSupport, TagSupport } from '../TagSupport.class.js';
1
+ import { BaseSupport, Support } from '../Support.class.js';
2
2
  import { TagSubject } from '../../subject.types.js';
3
- export declare function renderWithSupport(newTagSupport: TagSupport | BaseTagSupport, lastSupport: TagSupport | BaseTagSupport | undefined, // previous
3
+ export declare function renderWithSupport(newSupport: Support | BaseSupport, lastSupport: Support | BaseSupport | undefined, // previous
4
4
  subject: TagSubject, // events & memory
5
- ownerSupport?: TagSupport): TagSupport;
5
+ ownerSupport?: BaseSupport | Support): Support;
@@ -1,17 +1,50 @@
1
1
  import { isLikeTags } from '../isLikeTags.function.js';
2
2
  import { renderTagOnly } from './renderTagOnly.function.js';
3
3
  import { destroyUnlikeTags } from './destroyUnlikeTags.function.js';
4
- export function renderWithSupport(newTagSupport, lastSupport, // previous
4
+ import { softDestroySupport } from './softDestroySupport.function.js';
5
+ import { ValueTypes } from '../ValueTypes.enum.js';
6
+ import { deepEqual } from '../../deepFunctions.js';
7
+ export function renderWithSupport(newSupport, lastSupport, // previous
5
8
  subject, // events & memory
6
9
  ownerSupport) {
7
- const reSupport = renderTagOnly(newTagSupport, lastSupport, subject, ownerSupport);
10
+ const lastTemplater = lastSupport?.templater;
11
+ const lastTag = lastTemplater?.tag;
12
+ const reSupport = renderTagOnly(newSupport, lastSupport, subject, ownerSupport);
8
13
  const isLikeTag = !lastSupport || isLikeTags(lastSupport, reSupport);
9
14
  if (!isLikeTag) {
10
15
  destroyUnlikeTags(lastSupport, reSupport, subject);
11
- reSupport.global.oldest = reSupport;
12
16
  }
13
- const lastOwnerSupport = lastSupport?.ownerTagSupport;
14
- reSupport.ownerTagSupport = (ownerSupport || lastOwnerSupport);
17
+ else if (lastSupport) {
18
+ const tag = reSupport.templater.tag;
19
+ if (tag) {
20
+ checkTagSoftDestroy(tag, lastSupport, lastTag);
21
+ }
22
+ }
23
+ const lastOwnerSupport = lastSupport?.ownerSupport;
24
+ reSupport.ownerSupport = (ownerSupport || lastOwnerSupport);
15
25
  return reSupport;
16
26
  }
27
+ function checkTagSoftDestroy(tag, lastSupport, lastTag) {
28
+ if (tag.tagJsType === ValueTypes.dom) {
29
+ const lastDom = lastTag?.dom;
30
+ const newDom = tag.dom;
31
+ if (!deepEqual(lastDom, newDom)) {
32
+ softDestroySupport(lastSupport);
33
+ }
34
+ return;
35
+ }
36
+ if (lastTag) {
37
+ if (lastTag.tagJsType === ValueTypes.dom) {
38
+ throw new Error('check here');
39
+ }
40
+ const lastStrings = lastTag.strings;
41
+ if (lastStrings) {
42
+ const oldLength = lastStrings?.length;
43
+ const newLength = tag.strings.length;
44
+ if (oldLength !== newLength) {
45
+ softDestroySupport(lastSupport);
46
+ }
47
+ }
48
+ }
49
+ }
17
50
  //# sourceMappingURL=renderWithSupport.function.js.map
@@ -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;AAElE,MAAM,UAAU,iBAAiB,CAC/B,aAA0C,EAC1C,WAAoD,EAAE,WAAW;AACjE,OAAmB,EAAE,kBAAkB;AACvC,YAAyB;IAEzB,MAAM,SAAS,GAAG,aAAa,CAC7B,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,CAClD,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;QACD,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAA;IACrC,CAAC;IAED,MAAM,gBAAgB,GAAI,WAA0B,EAAE,eAAe,CAAA;IACrE,SAAS,CAAC,eAAe,GAAG,CAAC,YAAY,IAAI,gBAAgB,CAAe,CAAA;IAE5E,OAAO,SAAS,CAAA;AAClB,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;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,4 +1,4 @@
1
- import { BaseTagSupport, TagSupport } from '../TagSupport.class.js';
1
+ import { BaseSupport, Support } from '../Support.class.js';
2
2
  import { DestroyOptions } from '../destroy.support.js';
3
3
  /** used when a tag swaps content returned */
4
- export declare function softDestroySupport(lastSupport: BaseTagSupport | TagSupport, options?: DestroyOptions): void;
4
+ export declare function softDestroySupport(lastSupport: BaseSupport | Support, options?: DestroyOptions): void;
@@ -1,19 +1,22 @@
1
- import { checkRestoreTagMarker, resetTagSupport } from '../TagSupport.class.js';
1
+ import { resetSupport } from '../Support.class.js';
2
2
  import { getChildTagsToDestroy } from '../destroy.support.js';
3
3
  /** used when a tag swaps content returned */
4
4
  export function softDestroySupport(lastSupport, options = { byParent: false, stagger: 0 }) {
5
- lastSupport.global.deleted = true;
6
- lastSupport.global.context = {};
7
- const childTags = getChildTagsToDestroy(lastSupport.global.childTags);
5
+ const global = lastSupport.subject.global;
6
+ global.deleted = true;
7
+ // global.context = {}
8
+ global.context = [];
9
+ const childTags = getChildTagsToDestroy(global.childTags);
8
10
  lastSupport.destroySubscriptions();
9
11
  childTags.forEach(child => {
10
- const subGlobal = child.global;
12
+ const subGlobal = child.subject.global;
11
13
  delete subGlobal.newest;
12
14
  subGlobal.deleted = true;
13
15
  });
14
- checkRestoreTagMarker(lastSupport, options);
15
- resetTagSupport(lastSupport);
16
- lastSupport.destroyClones();
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);
17
20
  childTags.forEach(child => softDestroySupport(child, { byParent: true, stagger: 0 }));
18
21
  }
19
22
  //# 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,EAA8B,qBAAqB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC3G,OAAO,EAAkB,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAE7E,6CAA6C;AAC7C,MAAM,UAAU,kBAAkB,CAChC,WAAwC,EACxC,UAA0B,EAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAC;IAEvD,WAAW,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAA;IACjC,WAAW,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAA;IAC/B,MAAM,SAAS,GAAG,qBAAqB,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IAErE,WAAW,CAAC,oBAAoB,EAAE,CAAA;IAElC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAA;QAC9B,OAAO,SAAS,CAAC,MAAM,CAAA;QACvB,SAAS,CAAC,OAAO,GAAG,IAAI,CAAA;IAC1B,CAAC,CAAC,CAAA;IAEF,qBAAqB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IAE3C,eAAe,CAAC,WAAW,CAAC,CAAA;IAE5B,WAAW,CAAC,aAAa,EAAE,CAAA;IAE3B,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":"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,9 +1,10 @@
1
+ import { textNode } from './textNode.js';
1
2
  export function setTagPlaceholder(global) {
2
3
  const insertBefore = global.insertBefore;
3
4
  return global.placeholder = swapInsertBefore(insertBefore);
4
5
  }
5
6
  export function swapInsertBefore(insertBefore) {
6
- const placeholder = document.createTextNode('');
7
+ const placeholder = textNode.cloneNode(false);
7
8
  const parentNode = insertBefore.parentNode;
8
9
  parentNode.insertBefore(placeholder, insertBefore);
9
10
  parentNode.removeChild(insertBefore);
@@ -1 +1 @@
1
- {"version":3,"file":"setTagPlaceholder.function.js","sourceRoot":"","sources":["../../ts/tag/setTagPlaceholder.function.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,iBAAiB,CAC/B,MAAiB;IAEjB,MAAM,YAAY,GAAG,MAAM,CAAC,YAA4B,CAAA;IACxD,OAAO,MAAM,CAAC,WAAW,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAA;AAC5D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,YAA0B;IAE1B,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;IAC/C,MAAM,UAAU,GAAG,YAAY,CAAC,UAAwB,CAAA;IACxD,UAAU,CAAC,YAAY,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;IAClD,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;IACpC,OAAO,WAAW,CAAA;AACpB,CAAC"}
1
+ {"version":3,"file":"setTagPlaceholder.function.js","sourceRoot":"","sources":["../../ts/tag/setTagPlaceholder.function.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,MAAM,UAAU,iBAAiB,CAC/B,MAAiB;IAEjB,MAAM,YAAY,GAAG,MAAM,CAAC,YAA4B,CAAA;IACxD,OAAO,MAAM,CAAC,WAAW,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAA;AAC5D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,YAA0B;IAE1B,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAS,CAAA;IACrD,MAAM,UAAU,GAAG,YAAY,CAAC,UAAwB,CAAA;IACxD,UAAU,CAAC,YAAY,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;IAClD,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;IACpC,OAAO,WAAW,CAAA;AACpB,CAAC"}
package/js/tag/tag.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Tag } from './Tag.class.js';
1
+ import { Dom, Tag } 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;
@@ -8,7 +8,7 @@ export type TaggedFunction<T> = T & {
8
8
  */
9
9
  export declare function tag<T extends ToTag>(tagComponent: T): TaggedFunction<T>;
10
10
  export declare namespace tag {
11
- var oneRender: (...props: any[]) => Tag | StateToTag;
11
+ var oneRender: (...props: any[]) => Tag | Dom | StateToTag;
12
12
  var route: (routeProps: RouteProps) => StateToTag;
13
13
  var app: (routeTag: RouteTag) => StateToTag;
14
14
  }
package/js/tag/tag.js CHANGED
@@ -1,3 +1,4 @@
1
+ // taggedjs-no-compile
1
2
  import { setUse } from '../state/index.js';
2
3
  import { TemplaterResult } from './TemplaterResult.class.js';
3
4
  import { tags } from './tag.utils.js';
package/js/tag/tag.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tag.js","sourceRoot":"","sources":["../../ts/tag/tag.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,eAAe,EAAW,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAA4B,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,IAAI,QAAQ,GAAG,CAAC,CAAA;AAIhB;;GAEG;AACH,MAAM,UAAU,GAAG,CACjB,YAAe;IAEf,kCAAkC;IAClC,MAAM,UAAU,GAAG,CAAC,SAAS,UAAU,CACrC,GAAG,KAA0B;QAE7B,MAAM,SAAS,GAAoB,IAAI,eAAe,CAAC,KAAK,CAAC,CAAA;QAC7D,SAAS,CAAC,SAAS,GAAG,UAAU,CAAC,YAAY,CAAA;QAE7C,gFAAgF;QAChF,MAAM,YAAY,GAAY,UAAU,CACtC,SAAS,EACT,UAAU,CACX,CAAA;QAED,IAAG,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;YAC5B,YAAY,CAAC,UAAU,GAAG,UAAU,CAAA;QACtC,CAAC;QAED,SAAS,CAAC,MAAM,GAAG,IAAI,CAAA;QACvB,SAAS,CAAC,OAAO,GAAG,YAAuB,CAAA;QAE3C,OAAO,SAAS,CAAA;IAClB,CAAC,CAAkB,CAAA,4EAA4E;KAE9F;IAAC,UAAkB,CAAC,QAAQ,GAAG,YAAY,CAAA;IAC5C,UAAU,CAAC,SAAS,GAAI,YAAoB,CAAC,QAAQ,EAAE,CAAA;IAEvD,MAAM,GAAG,GAAG,YAAuC,CAAA;IACnD,UAAU,CAAC,KAAK,GAAG,IAAI,CAAA;IACvB,UAAU,CAAC,QAAQ,GAAG,GAAG,CAAA;IAEzB,0CAA0C;IAC1C,GAAG,CAAC,IAAI,GAAG,IAAI,CAAA;IACf,GAAG,CAAC,MAAM,GAAG,MAAM,CAAA;IACnB,GAAG,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAA,CAAC,6BAA6B;IACvD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAErB,OAAO,UAAmD,CAAA;AAC5D,CAAC;AAED,4FAA4F;AAC5F,GAAG,CAAC,SAAS,GAAG,CAAC,GAAG,KAAY,EAAsB,EAAE;IACtD,MAAM,IAAI,KAAK,CAAC,2GAA2G,CAAC,CAAA;AAC9H,CAAC,CAAA;AAED;;GAEG;AACH,GAAG,CAAC,KAAK,GAAG,CAAC,UAAsB,EAAc,EAAE;IACjD,MAAM,IAAI,KAAK,CAAC,oHAAoH,CAAC,CAAA;AACvI,CAAC,CAAA;AAED;;GAEG;AACH,GAAG,CAAC,GAAG,GAAG,CAAC,QAAkB,EAAc,EAAE;IAC3C,MAAM,IAAI,KAAK,CAAC,oHAAoH,CAAC,CAAA;AACvI,CAAC,CAAA;AAED,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE;IACtC,GAAG,CAAC,iBAA2B;QAC5B,iBAAyB,CAAC,SAAS,GAAG,IAAI,CAAA;IAC7C,CAAC;CACF,CAAC,CAAA"}
1
+ {"version":3,"file":"tag.js","sourceRoot":"","sources":["../../ts/tag/tag.ts"],"names":[],"mappings":"AAAA,sBAAsB;AAGtB,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,eAAe,EAAW,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAA4B,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,IAAI,QAAQ,GAAG,CAAC,CAAA;AAIhB;;GAEG;AACH,MAAM,UAAU,GAAG,CACjB,YAAe;IAEf,kCAAkC;IAClC,MAAM,UAAU,GAAG,CAAC,SAAS,UAAU,CACrC,GAAG,KAA0B;QAE7B,MAAM,SAAS,GAAoB,IAAI,eAAe,CAAC,KAAK,CAAC,CAAA;QAC7D,SAAS,CAAC,SAAS,GAAG,UAAU,CAAC,YAAY,CAAA;QAE7C,gFAAgF;QAChF,MAAM,YAAY,GAAY,UAAU,CACtC,SAAS,EACT,UAAU,CACX,CAAA;QAED,IAAG,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;YAC5B,YAAY,CAAC,UAAU,GAAG,UAAU,CAAA;QACtC,CAAC;QAED,SAAS,CAAC,MAAM,GAAG,IAAI,CAAA;QACvB,SAAS,CAAC,OAAO,GAAG,YAAuB,CAAA;QAE3C,OAAO,SAAS,CAAA;IAClB,CAAC,CAAkB,CAAA,4EAA4E;KAE9F;IAAC,UAAkB,CAAC,QAAQ,GAAG,YAAY,CAAA;IAC5C,UAAU,CAAC,SAAS,GAAI,YAAoB,CAAC,QAAQ,EAAE,CAAA;IAEvD,MAAM,GAAG,GAAG,YAAuC,CAAA;IACnD,UAAU,CAAC,KAAK,GAAG,IAAI,CAAA;IACvB,UAAU,CAAC,QAAQ,GAAG,GAAG,CAAA;IAEzB,0CAA0C;IAC1C,GAAG,CAAC,IAAI,GAAG,IAAI,CAAA;IACf,GAAG,CAAC,MAAM,GAAG,MAAM,CAAA;IACnB,GAAG,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAA,CAAC,6BAA6B;IACvD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAErB,OAAO,UAAmD,CAAA;AAC5D,CAAC;AAED,4FAA4F;AAC5F,GAAG,CAAC,SAAS,GAAG,CAAC,GAAG,KAAY,EAA4B,EAAE;IAC5D,MAAM,IAAI,KAAK,CAAC,2GAA2G,CAAC,CAAA;AAC9H,CAAC,CAAA;AAED;;GAEG;AACH,GAAG,CAAC,KAAK,GAAG,CAAC,UAAsB,EAAc,EAAE;IACjD,MAAM,IAAI,KAAK,CAAC,oHAAoH,CAAC,CAAA;AACvI,CAAC,CAAA;AAED;;GAEG;AACH,GAAG,CAAC,GAAG,GAAG,CAAC,QAAkB,EAAc,EAAE;IAC3C,MAAM,IAAI,KAAK,CAAC,oHAAoH,CAAC,CAAA;AACvI,CAAC,CAAA;AAED,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE;IACtC,GAAG,CAAC,iBAA2B;QAC5B,iBAAyB,CAAC,SAAS,GAAG,IAAI,CAAA;IAC7C,CAAC;CACF,CAAC,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { ValueSubject } from '../subject/index.js';
2
- import { Tag } from './Tag.class.js';
2
+ import { Dom, Tag } from './Tag.class.js';
3
3
  export declare class RouteQuery {
4
4
  get(name: string): string | undefined;
5
5
  }
@@ -8,6 +8,6 @@ export type RouteProps = {
8
8
  paramSubject: ValueSubject<string>;
9
9
  query: RouteQuery;
10
10
  };
11
- export type ToTag = (...props: any[]) => StateToTag | Tag | null;
12
- export type StateToTag = () => Tag | null;
13
- export type RouteTag = (extraProps?: Record<string, any>) => Tag;
11
+ export type ToTag = (...props: any[]) => StateToTag | Tag | Dom | null;
12
+ export type StateToTag = () => Tag | Dom | null;
13
+ export type RouteTag = (extraProps?: Record<string, any>) => Tag | Dom;
@@ -1,21 +1,24 @@
1
- import { Tag } from './Tag.class.js';
1
+ import { Dom, Tag, TagTemplate } from './Tag.class.js';
2
2
  import { TemplaterResult } from './TemplaterResult.class.js';
3
3
  import { ValueSubject } from '../subject/ValueSubject.js';
4
4
  import { setUse } from '../state/index.js';
5
- export type TagChildren = ValueSubject<Tag[]> & {
6
- lastArray?: Tag[];
5
+ export type TagChildren = ValueSubject<(Tag | Dom)[]> & {
6
+ lastArray?: (Tag | Dom)[];
7
7
  };
8
- export type TagChildrenInput = Tag[] | Tag | TagChildren;
9
- export type TagComponent = ((...args: any[]) => Tag) & {
8
+ export type TagChildrenInput = (Tag | Dom)[] | Dom | Tag | TagChildren;
9
+ export type TagComponent = ((...args: any[]) => (Tag | Dom)) & {
10
10
  tags?: TagWrapper<any>[];
11
11
  setUse?: typeof setUse;
12
12
  tagIndex?: number;
13
13
  };
14
14
  export declare const tags: TagWrapper<any>[];
15
15
  export type TagWrapper<T> = ((...props: T[]) => TemplaterResult) & {
16
- original: (...args: any[]) => any;
16
+ original: ((...args: any[]) => any);
17
17
  compareTo: string;
18
18
  isTag: boolean;
19
19
  oneRender?: true;
20
+ lastRuns?: {
21
+ [index: number]: TagTemplate;
22
+ };
20
23
  };
21
- export type TagMaker = ((...args: any[]) => Tag) | ((...args: any[]) => (...args: any[]) => Tag);
24
+ export type TagMaker = ((...args: any[]) => (Tag | Dom)) | ((...args: any[]) => (...args: any[]) => (Tag | Dom));
@@ -1 +1 @@
1
- {"version":3,"file":"tag.utils.js","sourceRoot":"","sources":["../../ts/tag/tag.utils.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,MAAM,IAAI,GAAsB,EAAE,CAAA"}
1
+ {"version":3,"file":"tag.utils.js","sourceRoot":"","sources":["../../ts/tag/tag.utils.ts"],"names":[],"mappings":"AAeA,MAAM,CAAC,MAAM,IAAI,GAAsB,EAAE,CAAA"}
@@ -1,4 +1,4 @@
1
- import { TagSupport } from './TagSupport.class.js';
1
+ import { Support } from './Support.class.js';
2
2
  import { TemplaterResult } from './TemplaterResult.class.js';
3
3
  import { TagComponent, TagMaker } from './tag.utils.js';
4
4
  /**
@@ -10,7 +10,7 @@ import { TagComponent, TagMaker } from './tag.utils.js';
10
10
  */
11
11
  export declare function tagElement(app: TagMaker, // (...args: unknown[]) => TemplaterResult,
12
12
  element: HTMLElement | Element, props?: unknown): {
13
- tagSupport: TagSupport;
13
+ support: Support;
14
14
  tags: TagComponent[];
15
15
  };
16
- export declare function runWrapper(templater: TemplaterResult): TagSupport;
16
+ export declare function runWrapper(templater: TemplaterResult, insertBefore: Element, placeholder: Text): Support;
@@ -1,6 +1,8 @@
1
- import { BaseTagSupport } from './TagSupport.class.js';
1
+ import { BaseSupport } from './Support.class.js';
2
2
  import { runAfterRender, runBeforeRender } from './tagRunner.js';
3
- import { ValueSubject } from '../subject/ValueSubject.js';
3
+ import { TagJsSubject } from './update/TagJsSubject.class.js';
4
+ import { afterChildrenBuilt } from './update/processTag.function.js';
5
+ import { textNode } from './textNode.js';
4
6
  const appElements = [];
5
7
  /**
6
8
  *
@@ -13,52 +15,55 @@ export function tagElement(app, // (...args: unknown[]) => TemplaterResult,
13
15
  element, props) {
14
16
  const appElmIndex = appElements.findIndex(appElm => appElm.element === element);
15
17
  if (appElmIndex >= 0) {
16
- appElements[appElmIndex].tagSupport.destroy();
18
+ appElements[appElmIndex].support.destroy();
17
19
  appElements.splice(appElmIndex, 1);
18
20
  // an element already had an app on it
19
21
  console.warn('Found and destroyed app element already rendered to element', { element });
20
22
  }
21
23
  // Create the app which returns [props, runOneTimeFunction]
22
24
  const wrapper = app(props);
23
- // have a function setup and call the tagWrapper with (props, {update, async, on})
24
- const tagSupport = runWrapper(wrapper);
25
- tagSupport.appElement = element;
26
- tagSupport.isApp = true;
27
- tagSupport.global.isApp = true;
28
- const templateElm = document.createElement('template');
29
- templateElm.setAttribute('id', 'app-tag-' + appElements.length);
30
- templateElm.setAttribute('app-tag-detail', appElements.length.toString());
31
- const fragment = document.createDocumentFragment();
32
- fragment.appendChild(templateElm);
33
- element.destroy = async () => {
34
- await tagSupport.destroy();
35
- const insertBefore = tagSupport.global.insertBefore;
36
- const parentNode = insertBefore.parentNode;
37
- parentNode.removeChild(insertBefore);
25
+ // const fragment = document.createDocumentFragment()
26
+ const template = document.createElement('template');
27
+ const placeholder = textNode.cloneNode(false);
28
+ const support = runWrapper(wrapper, template, placeholder);
29
+ const global = support.subject.global;
30
+ support.appElement = element;
31
+ support.isApp = true;
32
+ global.isApp = true;
33
+ element.destroy = () => {
34
+ support.destroy(); // never return anything here
38
35
  };
39
- tagSupport.buildBeforeElement(templateElm);
40
- tagSupport.global.oldest = tagSupport;
41
- tagSupport.global.newest = tagSupport;
36
+ global.insertBefore = placeholder // template
37
+ ;
38
+ global.placeholder = placeholder;
39
+ const newFragment = support.buildBeforeElement(undefined);
40
+ const children = [...newFragment.children];
41
+ support.subject.global.oldest = support;
42
+ support.subject.global.newest = support;
42
43
  element.setUse = app.original.setUse;
43
- appElements.push({ element, tagSupport });
44
- element.appendChild(fragment);
44
+ appElements.push({ element, support });
45
+ element.appendChild(newFragment);
46
+ afterChildrenBuilt(children, support.subject, support);
45
47
  return {
46
- tagSupport,
48
+ support,
47
49
  tags: app.original.tags,
48
50
  };
49
51
  }
50
- export function runWrapper(templater) {
52
+ export function runWrapper(templater, insertBefore, placeholder) {
51
53
  let newSupport = {};
52
54
  // TODO: A fake subject may become a problem
53
- const subject = new ValueSubject(newSupport);
54
- newSupport = new BaseTagSupport(templater, subject);
55
+ const subject = new TagJsSubject(newSupport);
56
+ newSupport = new BaseSupport(templater, subject);
57
+ subject.global.insertBefore = insertBefore;
58
+ subject.global.placeholder = placeholder;
59
+ subject.global.oldest = subject.global.oldest || newSupport;
55
60
  subject.next(templater);
56
- subject.tagSupport = newSupport;
61
+ subject.support = newSupport;
57
62
  runBeforeRender(newSupport, undefined);
58
63
  // Call the apps function for our tag templater
59
64
  const wrapper = templater.wrapper;
60
- const tagSupport = wrapper(newSupport, subject);
61
- runAfterRender(newSupport, tagSupport);
62
- return tagSupport;
65
+ const support = wrapper(newSupport, subject);
66
+ runAfterRender(newSupport, support);
67
+ return support;
63
68
  }
64
69
  //# sourceMappingURL=tagElement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tagElement.js","sourceRoot":"","sources":["../../ts/tag/tagElement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tagElement.js","sourceRoot":"","sources":["../../ts/tag/tagElement.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { BaseTagSupport, TagSupport } from './TagSupport.class.js';
2
- export declare function runBeforeRender(tagSupport: BaseTagSupport | TagSupport, ownerSupport?: TagSupport): void;
3
- export declare function runAfterRender(tagSupport: BaseTagSupport | TagSupport, ownerTagSupport?: TagSupport | BaseTagSupport): void;
4
- export declare function runBeforeRedraw(tagSupport: BaseTagSupport | TagSupport, ownerTagSupport: TagSupport | BaseTagSupport): void;
5
- export declare function runBeforeDestroy(tagSupport: TagSupport | BaseTagSupport, ownerTagSupport: TagSupport | BaseTagSupport): void;
1
+ import { AnySupport, BaseSupport, Support } from './Support.class.js';
2
+ export declare function runBeforeRender(support: AnySupport, ownerSupport?: AnySupport): void;
3
+ export declare function runAfterRender(support: BaseSupport | Support, ownerSupport?: Support | BaseSupport): void;
4
+ export declare function runBeforeRedraw(support: BaseSupport | Support, ownerSupport: Support | BaseSupport): void;
5
+ export declare function runBeforeDestroy(support: Support | BaseSupport, ownerSupport: Support | BaseSupport): void;
@@ -8,45 +8,45 @@ setUse.memory.tagClosed$ = new Subject(undefined, subscription => {
8
8
  }
9
9
  });
10
10
  // Life cycle 1
11
- export function runBeforeRender(tagSupport, ownerSupport) {
11
+ export function runBeforeRender(support, ownerSupport) {
12
12
  const tagUse = setUse.tagUse;
13
13
  const length = tagUse.length;
14
14
  for (let index = 0; index < length; ++index) {
15
- tagUse[index].beforeRender(tagSupport, ownerSupport);
15
+ tagUse[index].beforeRender(support, ownerSupport);
16
16
  }
17
17
  }
18
18
  // Life cycle 2
19
- export function runAfterRender(tagSupport, ownerTagSupport) {
19
+ export function runAfterRender(support, ownerSupport) {
20
20
  const tagUse = setUse.tagUse;
21
21
  const length = tagUse.length;
22
22
  for (let index = 0; index < length; ++index) {
23
- tagUse[index].afterRender(tagSupport, ownerTagSupport);
23
+ tagUse[index].afterRender(support, ownerSupport);
24
24
  }
25
- setUse.memory.tagClosed$.next(ownerTagSupport);
25
+ setUse.memory.tagClosed$.next(ownerSupport);
26
26
  }
27
27
  // Life cycle 3
28
- export function runBeforeRedraw(tagSupport, ownerTagSupport) {
28
+ export function runBeforeRedraw(support, ownerSupport) {
29
29
  const tagUse = setUse.tagUse;
30
30
  const length = tagUse.length;
31
31
  for (let index = 0; index < length; ++index) {
32
- tagUse[index].beforeRedraw(tagSupport, ownerTagSupport);
32
+ tagUse[index].beforeRedraw(support, ownerSupport);
33
33
  }
34
34
  }
35
35
  // Life cycle 4 - end of life
36
- export function runBeforeDestroy(tagSupport, ownerTagSupport) {
36
+ export function runBeforeDestroy(support, ownerSupport) {
37
37
  const tagUse = setUse.tagUse;
38
38
  const length = tagUse.length;
39
39
  for (let index = 0; index < length; ++index) {
40
- tagUse[index].beforeDestroy(tagSupport, ownerTagSupport);
40
+ tagUse[index].beforeDestroy(support, ownerSupport);
41
41
  }
42
- tagSupport.global.deleted = true;
43
- tagSupport.hasLiveElements = false;
42
+ support.subject.global.deleted = true;
43
+ support.hasLiveElements = false;
44
44
  // remove me from my parents
45
- if (ownerTagSupport) {
46
- ownerTagSupport.global.childTags = ownerTagSupport.global.childTags.filter(child => child !== tagSupport.global.oldest);
47
- const global = tagSupport.global;
45
+ if (ownerSupport) {
46
+ ownerSupport.subject.global.childTags = ownerSupport.subject.global.childTags.filter(child => child !== support.subject.global.oldest);
47
+ const global = support.subject.global;
48
48
  global.providers.forEach(provider => provider.children.forEach((child, index) => {
49
- if (child.global === global) {
49
+ if (child.subject.global === global) {
50
50
  provider.children.splice(index, 1);
51
51
  }
52
52
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"tagRunner.js","sourceRoot":"","sources":["../../ts/tag/tagRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tagRunner.js","sourceRoot":"","sources":["../../ts/tag/tagRunner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const textNode: Text | {
2
+ textContent: string;
3
+ cloneNode: (_children: boolean) => any;
4
+ };
@@ -0,0 +1,9 @@
1
+ import { empty } from "./ValueTypes.enum.js";
2
+ export const textNode = typeof document === 'undefined' ? getTestTextNode() : document.createTextNode(empty);
3
+ function getTestTextNode() {
4
+ return {
5
+ textContent: empty,
6
+ cloneNode: (_children) => getTestTextNode()
7
+ };
8
+ }
9
+ //# sourceMappingURL=textNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textNode.js","sourceRoot":"","sources":["../../ts/tag/textNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;AAE5G,SAAS,eAAe;IACtB,OAAO;QACL,WAAW,EAAE,KAAK;QAClB,SAAS,EAAE,CAAC,SAAkB,EAAE,EAAE,CAAC,eAAe,EAAE;KACrD,CAAA;AACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { TagGlobal } from '../TemplaterResult.class.js';
2
+ import { ValueSubject } from '../../subject/ValueSubject.js';
3
+ import { ValueTypes } from '../ValueTypes.enum.js';
4
+ export declare class TagJsSubject<T> extends ValueSubject<T> {
5
+ tagJsType: ValueTypes;
6
+ global: TagGlobal;
7
+ }
8
+ export declare function getNewGlobal(): TagGlobal;
@@ -0,0 +1,23 @@
1
+ import { Subject } from '../../subject/Subject.class.js';
2
+ import { ValueSubject } from '../../subject/ValueSubject.js';
3
+ import { ValueTypes } from '../ValueTypes.enum.js';
4
+ export class TagJsSubject extends ValueSubject {
5
+ tagJsType = ValueTypes.tagJsSubject;
6
+ // travels with all renderings
7
+ global = getNewGlobal();
8
+ }
9
+ export function getNewGlobal() {
10
+ return {
11
+ destroy$: new Subject(),
12
+ context: [], // populated after reading interpolated.values array converted to an object {variable0, variable:1}
13
+ providers: [],
14
+ /** Indicator of re-rending. Saves from double rending something already rendered */
15
+ renderCount: 0,
16
+ subscriptions: [],
17
+ oldest: undefined, // TODO: This needs to addressed
18
+ blocked: [], // renders that did not occur because an event was processing
19
+ childTags: [], // tags on me
20
+ clones: [], // elements on document. Needed at destroy process to know what to destroy
21
+ };
22
+ }
23
+ //# sourceMappingURL=TagJsSubject.class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TagJsSubject.class.js","sourceRoot":"","sources":["../../../ts/tag/update/TagJsSubject.class.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAElD,MAAM,OAAO,YAAgB,SAAQ,YAAe;IAClD,SAAS,GAAG,UAAU,CAAC,YAAY,CAAA;IACnC,8BAA8B;IAC9B,MAAM,GAAc,YAAY,EAAE,CAAA;CACnC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO;QACL,QAAQ,EAAE,IAAI,OAAO,EAAyB;QAC9C,OAAO,EAAE,EAAE,EAAE,mGAAmG;QAChH,SAAS,EAAE,EAAE;QACb,oFAAoF;QACpF,WAAW,EAAE,CAAC;QACd,aAAa,EAAE,EAAE;QACjB,MAAM,EAAE,SAAgB,EAAE,gCAAgC;QAC1D,OAAO,EAAE,EAAE,EAAE,6DAA6D;QAC1E,SAAS,EAAE,EAAE,EAAE,aAAa;QAC5B,MAAM,EAAE,EAAE,EAAE,0EAA0E;KACvF,CAAA;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Wrapper } from '../TemplaterResult.class.js';
2
+ import { TagSubject } from '../../subject.types.js';
3
+ import { AnySupport } from '../Support.class.js';
4
+ export declare function oneRenderToSupport(wrapper: Wrapper, subject: TagSubject, ownerSupport: AnySupport): import("../Support.class.js").Support;