taggedjs 2.3.25 → 2.3.26

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 (315) hide show
  1. package/_js/ElementTarget.interface.d.ts +7 -0
  2. package/_js/ElementTarget.interface.js +2 -0
  3. package/_js/ElementTarget.interface.js.map +1 -0
  4. package/_js/ElementTargetEvent.interface.d.ts +6 -0
  5. package/_js/ElementTargetEvent.interface.js +2 -0
  6. package/_js/ElementTargetEvent.interface.js.map +1 -0
  7. package/_js/Tag.class.d.ts +69 -0
  8. package/_js/Tag.class.js +258 -0
  9. package/_js/Tag.class.js.map +1 -0
  10. package/_js/elementInitCheck.js.map +1 -0
  11. package/_js/gateway/gateway.web.component.d.ts +11 -0
  12. package/_js/gateway/gateway.web.component.js +20 -0
  13. package/_js/gateway/gateway.web.component.js.map +1 -0
  14. package/_js/gateway/index.d.ts +3 -0
  15. package/_js/gateway/index.js +4 -0
  16. package/_js/gateway/index.js.map +1 -0
  17. package/_js/gateway/loadTagGateway.function.d.ts +2 -0
  18. package/_js/gateway/loadTagGateway.function.js +18 -0
  19. package/_js/gateway/loadTagGateway.function.js.map +1 -0
  20. package/_js/gateway/tagGateway.function.d.ts +4 -0
  21. package/_js/gateway/tagGateway.function.js +49 -0
  22. package/_js/gateway/tagGateway.function.js.map +1 -0
  23. package/_js/gateway/tagGateway.utils.d.ts +21 -0
  24. package/_js/gateway/tagGateway.utils.js +139 -0
  25. package/_js/gateway/tagGateway.utils.js.map +1 -0
  26. package/_js/getCallback.d.ts +3 -0
  27. package/_js/getTagSupport.d.ts +21 -0
  28. package/_js/getTagSupport.js +110 -0
  29. package/_js/getTagSupport.js.map +1 -0
  30. package/_js/index.d.ts +20 -0
  31. package/_js/index.js +25 -0
  32. package/_js/index.js.map +1 -0
  33. package/_js/inputAttribute.js +19 -0
  34. package/_js/inputAttribute.js.map +1 -0
  35. package/_js/interpolateAttributes.js +135 -0
  36. package/_js/interpolateAttributes.js.map +1 -0
  37. package/_js/interpolateContentTemplates.d.ts +6 -0
  38. package/_js/interpolateContentTemplates.js +54 -0
  39. package/_js/interpolateContentTemplates.js.map +1 -0
  40. package/_js/interpolateElement.d.ts +9 -0
  41. package/_js/interpolateElement.js +39 -0
  42. package/_js/interpolateElement.js.map +1 -0
  43. package/_js/interpolations.d.ts +7 -0
  44. package/_js/interpolations.js +18 -0
  45. package/_js/interpolations.js.map +1 -0
  46. package/_js/js/Clones.type.d.ts +1 -0
  47. package/_js/js/Clones.type.js +2 -0
  48. package/_js/js/Clones.type.js.map +1 -0
  49. package/_js/js/Props.d.ts +1 -0
  50. package/_js/js/Props.js +2 -0
  51. package/_js/js/Props.js.map +1 -0
  52. package/_js/js/Subject.d.ts +17 -0
  53. package/_js/js/Subject.js +43 -0
  54. package/_js/js/Subject.js.map +1 -0
  55. package/_js/js/Tag.utils.d.ts +12 -0
  56. package/_js/js/Tag.utils.js +31 -0
  57. package/_js/js/Tag.utils.js.map +1 -0
  58. package/_js/js/ValueSubject.d.ts +6 -0
  59. package/_js/js/ValueSubject.js +15 -0
  60. package/_js/js/ValueSubject.js.map +1 -0
  61. package/_js/js/bindSubjectCallback.function.d.ts +5 -0
  62. package/_js/js/bindSubjectCallback.function.js +19 -0
  63. package/_js/js/bindSubjectCallback.function.js.map +1 -0
  64. package/_js/js/deepFunctions.d.ts +2 -0
  65. package/_js/js/deepFunctions.js +76 -0
  66. package/_js/js/deepFunctions.js.map +1 -0
  67. package/_js/js/elementDestroyCheck.function.d.ts +3 -0
  68. package/_js/js/elementDestroyCheck.function.js +17 -0
  69. package/_js/js/elementDestroyCheck.function.js.map +1 -0
  70. package/_js/js/elementInitCheck.d.ts +2 -0
  71. package/_js/js/elementInitCheck.js +18 -0
  72. package/_js/js/getCallback.js +50 -0
  73. package/_js/js/getCallback.js.map +1 -0
  74. package/_js/js/html.d.ts +2 -0
  75. package/_js/js/html.js +5 -0
  76. package/_js/js/html.js.map +1 -0
  77. package/_js/js/inputAttribute.d.ts +1 -0
  78. package/_js/js/interpolateAttributes.d.ts +4 -0
  79. package/_js/js/interpolateTemplate.d.ts +17 -0
  80. package/_js/js/interpolateTemplate.js +64 -0
  81. package/_js/js/interpolateTemplate.js.map +1 -0
  82. package/_js/js/isInstance.d.ts +6 -0
  83. package/_js/js/isInstance.js +10 -0
  84. package/_js/js/isInstance.js.map +1 -0
  85. package/_js/onDestroy.d.ts +2 -0
  86. package/_js/onDestroy.js +20 -0
  87. package/_js/onDestroy.js.map +1 -0
  88. package/_js/onInit.d.ts +2 -0
  89. package/_js/onInit.js +19 -0
  90. package/_js/onInit.js.map +1 -0
  91. package/_js/processSubjectComponent.function.d.ts +8 -0
  92. package/_js/processSubjectComponent.function.js +53 -0
  93. package/_js/processSubjectComponent.function.js.map +1 -0
  94. package/_js/processSubjectValue.function.d.ts +16 -0
  95. package/_js/processSubjectValue.function.js +122 -0
  96. package/_js/processSubjectValue.function.js.map +1 -0
  97. package/_js/processTagArray.d.ts +9 -0
  98. package/_js/processTagArray.js +60 -0
  99. package/_js/processTagArray.js.map +1 -0
  100. package/_js/processTagResult.function.d.ts +10 -0
  101. package/_js/processTagResult.function.js +40 -0
  102. package/_js/processTagResult.function.js.map +1 -0
  103. package/_js/providers.d.ts +17 -0
  104. package/_js/providers.js +86 -0
  105. package/_js/providers.js.map +1 -0
  106. package/_js/redrawTag.function.d.ts +7 -0
  107. package/_js/redrawTag.function.js +8 -0
  108. package/_js/redrawTag.function.js.map +1 -0
  109. package/_js/render.d.ts +1 -0
  110. package/_js/render.js +17 -0
  111. package/_js/render.js.map +1 -0
  112. package/_js/renderAppToElement.d.ts +14 -0
  113. package/_js/renderAppToElement.js +57 -0
  114. package/_js/renderAppToElement.js.map +1 -0
  115. package/_js/setUse.function.d.ts +23 -0
  116. package/_js/setUse.function.js +14 -0
  117. package/_js/setUse.function.js.map +1 -0
  118. package/_js/state.d.ts +21 -0
  119. package/_js/state.js +129 -0
  120. package/_js/state.js.map +1 -0
  121. package/_js/tag.d.ts +7 -0
  122. package/_js/tag.js +46 -0
  123. package/_js/tag.js.map +1 -0
  124. package/_js/tagElement.d.ts +14 -0
  125. package/_js/tagElement.js +57 -0
  126. package/_js/tagElement.js.map +1 -0
  127. package/_js/tagGateway.function.d.ts +14 -0
  128. package/_js/tagGateway.function.js +138 -0
  129. package/_js/tagGateway.function.js.map +1 -0
  130. package/_js/tagRunner.d.ts +6 -0
  131. package/_js/tagRunner.js +19 -0
  132. package/_js/tagRunner.js.map +1 -0
  133. package/_js/templater.utils.d.ts +27 -0
  134. package/_js/templater.utils.js +98 -0
  135. package/_js/templater.utils.js.map +1 -0
  136. package/_js/updateTag.utils.d.ts +6 -0
  137. package/_js/updateTag.utils.js +102 -0
  138. package/_js/updateTag.utils.js.map +1 -0
  139. package/index.js +1 -1
  140. package/js/ElementTarget.interface.d.ts +7 -0
  141. package/js/ElementTarget.interface.js +2 -0
  142. package/js/ElementTarget.interface.js.map +1 -0
  143. package/js/ElementTargetEvent.interface.d.ts +6 -0
  144. package/js/ElementTargetEvent.interface.js +2 -0
  145. package/js/ElementTargetEvent.interface.js.map +1 -0
  146. package/js/Tag.class.js +5 -5
  147. package/js/Tag.class.js.map +1 -1
  148. package/js/Tag.utils.d.ts +3 -2
  149. package/js/Tag.utils.js +4 -1
  150. package/js/Tag.utils.js.map +1 -1
  151. package/js/bindSubjectCallback.function.js +1 -0
  152. package/js/bindSubjectCallback.function.js.map +1 -1
  153. package/js/elementInitCheck.js.map +1 -1
  154. package/js/gateway/gateway.web.component.d.ts +1 -1
  155. package/js/gateway/gateway.web.component.js +1 -1
  156. package/js/gateway/gateway.web.component.js.map +1 -1
  157. package/js/gateway/index.d.ts +1 -1
  158. package/js/gateway/index.js +1 -0
  159. package/js/gateway/index.js.map +1 -1
  160. package/js/gateway/loadTagGateway.function.d.ts +1 -1
  161. package/js/gateway/loadTagGateway.function.js +1 -1
  162. package/js/gateway/loadTagGateway.function.js.map +1 -1
  163. package/js/gateway/tagGateway.function.d.ts +1 -28
  164. package/js/gateway/tagGateway.function.js +1 -139
  165. package/js/gateway/tagGateway.function.js.map +1 -1
  166. package/js/gateway/tagGateway.utils.d.ts +21 -0
  167. package/js/gateway/tagGateway.utils.js +139 -0
  168. package/js/gateway/tagGateway.utils.js.map +1 -0
  169. package/js/getCallback.d.ts +1 -1
  170. package/js/index.d.ts +1 -0
  171. package/js/index.js +1 -0
  172. package/js/index.js.map +1 -1
  173. package/js/interpolateAttributes.js +7 -4
  174. package/js/interpolateAttributes.js.map +1 -1
  175. package/js/processSubjectValue.function.d.ts +8 -1
  176. package/js/processSubjectValue.function.js +12 -5
  177. package/js/processSubjectValue.function.js.map +1 -1
  178. package/js/processTagArray.d.ts +10 -1
  179. package/js/processTagArray.js +9 -3
  180. package/js/processTagArray.js.map +1 -1
  181. package/js/processTagResult.function.d.ts +3 -1
  182. package/js/processTagResult.function.js +14 -10
  183. package/js/processTagResult.function.js.map +1 -1
  184. package/js/state.d.ts +3 -7
  185. package/js/state.js +27 -17
  186. package/js/state.js.map +1 -1
  187. package/js/tagElement.js +5 -2
  188. package/js/tagElement.js.map +1 -1
  189. package/js/updateTag.utils.d.ts +2 -1
  190. package/js/updateTag.utils.js +56 -11
  191. package/js/updateTag.utils.js.map +1 -1
  192. package/package.json +1 -1
  193. /package/{js/js → _js}/Clones.type.d.ts +0 -0
  194. /package/{js/js → _js}/Clones.type.js +0 -0
  195. /package/{js/js → _js}/Clones.type.js.map +0 -0
  196. /package/{js/js → _js}/Props.d.ts +0 -0
  197. /package/{js/js → _js}/Props.js +0 -0
  198. /package/{js/js → _js}/Props.js.map +0 -0
  199. /package/{js/js → _js}/Subject.d.ts +0 -0
  200. /package/{js/js → _js}/Subject.js +0 -0
  201. /package/{js/js → _js}/Subject.js.map +0 -0
  202. /package/{js/js → _js}/Tag.utils.d.ts +0 -0
  203. /package/{js/js → _js}/Tag.utils.js +0 -0
  204. /package/{js/js → _js}/Tag.utils.js.map +0 -0
  205. /package/{js/js → _js}/ValueSubject.d.ts +0 -0
  206. /package/{js/js → _js}/ValueSubject.js +0 -0
  207. /package/{js/js → _js}/ValueSubject.js.map +0 -0
  208. /package/{js/js → _js}/bindSubjectCallback.function.d.ts +0 -0
  209. /package/{js/js → _js}/bindSubjectCallback.function.js +0 -0
  210. /package/{js/js → _js}/bindSubjectCallback.function.js.map +0 -0
  211. /package/{js/js → _js}/deepFunctions.d.ts +0 -0
  212. /package/{js/js → _js}/deepFunctions.js +0 -0
  213. /package/{js/js → _js}/deepFunctions.js.map +0 -0
  214. /package/{js/js → _js}/elementDestroyCheck.function.d.ts +0 -0
  215. /package/{js/js → _js}/elementDestroyCheck.function.js +0 -0
  216. /package/{js/js → _js}/elementDestroyCheck.function.js.map +0 -0
  217. /package/{js/js → _js}/elementInitCheck.d.ts +0 -0
  218. /package/{js/js → _js}/elementInitCheck.js +0 -0
  219. /package/{js/js → _js}/getCallback.js +0 -0
  220. /package/{js/js → _js}/getCallback.js.map +0 -0
  221. /package/{js/js → _js}/html.d.ts +0 -0
  222. /package/{js/js → _js}/html.js +0 -0
  223. /package/{js/js → _js}/html.js.map +0 -0
  224. /package/{js/js → _js}/inputAttribute.d.ts +0 -0
  225. /package/{js/js → _js}/interpolateAttributes.d.ts +0 -0
  226. /package/{js/js → _js}/interpolateTemplate.d.ts +0 -0
  227. /package/{js/js → _js}/interpolateTemplate.js +0 -0
  228. /package/{js/js → _js}/interpolateTemplate.js.map +0 -0
  229. /package/{js/js → _js}/isInstance.d.ts +0 -0
  230. /package/{js/js → _js}/isInstance.js +0 -0
  231. /package/{js/js → _js}/isInstance.js.map +0 -0
  232. /package/{js → _js}/js/Tag.class.d.ts +0 -0
  233. /package/{js → _js}/js/Tag.class.js +0 -0
  234. /package/{js → _js}/js/Tag.class.js.map +0 -0
  235. /package/{js → _js}/js/elementInitCheck.js.map +0 -0
  236. /package/{js → _js}/js/getCallback.d.ts +0 -0
  237. /package/{js → _js}/js/getTagSupport.d.ts +0 -0
  238. /package/{js → _js}/js/getTagSupport.js +0 -0
  239. /package/{js → _js}/js/getTagSupport.js.map +0 -0
  240. /package/{js → _js}/js/index.d.ts +0 -0
  241. /package/{js → _js}/js/index.js +0 -0
  242. /package/{js → _js}/js/index.js.map +0 -0
  243. /package/{js → _js}/js/inputAttribute.js +0 -0
  244. /package/{js → _js}/js/inputAttribute.js.map +0 -0
  245. /package/{js → _js}/js/interpolateAttributes.js +0 -0
  246. /package/{js → _js}/js/interpolateAttributes.js.map +0 -0
  247. /package/{js → _js}/js/interpolateContentTemplates.d.ts +0 -0
  248. /package/{js → _js}/js/interpolateContentTemplates.js +0 -0
  249. /package/{js → _js}/js/interpolateContentTemplates.js.map +0 -0
  250. /package/{js → _js}/js/interpolateElement.d.ts +0 -0
  251. /package/{js → _js}/js/interpolateElement.js +0 -0
  252. /package/{js → _js}/js/interpolateElement.js.map +0 -0
  253. /package/{js → _js}/js/interpolations.d.ts +0 -0
  254. /package/{js → _js}/js/interpolations.js +0 -0
  255. /package/{js → _js}/js/interpolations.js.map +0 -0
  256. /package/{js → _js}/js/onDestroy.d.ts +0 -0
  257. /package/{js → _js}/js/onDestroy.js +0 -0
  258. /package/{js → _js}/js/onDestroy.js.map +0 -0
  259. /package/{js → _js}/js/onInit.d.ts +0 -0
  260. /package/{js → _js}/js/onInit.js +0 -0
  261. /package/{js → _js}/js/onInit.js.map +0 -0
  262. /package/{js → _js}/js/processSubjectComponent.function.d.ts +0 -0
  263. /package/{js → _js}/js/processSubjectComponent.function.js +0 -0
  264. /package/{js → _js}/js/processSubjectComponent.function.js.map +0 -0
  265. /package/{js → _js}/js/processSubjectValue.function.d.ts +0 -0
  266. /package/{js → _js}/js/processSubjectValue.function.js +0 -0
  267. /package/{js → _js}/js/processSubjectValue.function.js.map +0 -0
  268. /package/{js → _js}/js/processTagArray.d.ts +0 -0
  269. /package/{js → _js}/js/processTagArray.js +0 -0
  270. /package/{js → _js}/js/processTagArray.js.map +0 -0
  271. /package/{js → _js}/js/processTagResult.function.d.ts +0 -0
  272. /package/{js → _js}/js/processTagResult.function.js +0 -0
  273. /package/{js → _js}/js/processTagResult.function.js.map +0 -0
  274. /package/{js → _js}/js/providers.d.ts +0 -0
  275. /package/{js → _js}/js/providers.js +0 -0
  276. /package/{js → _js}/js/providers.js.map +0 -0
  277. /package/{js → _js}/js/redrawTag.function.d.ts +0 -0
  278. /package/{js → _js}/js/redrawTag.function.js +0 -0
  279. /package/{js → _js}/js/redrawTag.function.js.map +0 -0
  280. /package/{js → _js}/js/render.d.ts +0 -0
  281. /package/{js → _js}/js/render.js +0 -0
  282. /package/{js → _js}/js/render.js.map +0 -0
  283. /package/{js → _js}/js/renderAppToElement.d.ts +0 -0
  284. /package/{js → _js}/js/renderAppToElement.js +0 -0
  285. /package/{js → _js}/js/renderAppToElement.js.map +0 -0
  286. /package/{js → _js}/js/setUse.function.d.ts +0 -0
  287. /package/{js → _js}/js/setUse.function.js +0 -0
  288. /package/{js → _js}/js/setUse.function.js.map +0 -0
  289. /package/{js → _js}/js/state.d.ts +0 -0
  290. /package/{js → _js}/js/state.js +0 -0
  291. /package/{js → _js}/js/state.js.map +0 -0
  292. /package/{js → _js}/js/tag.d.ts +0 -0
  293. /package/{js → _js}/js/tag.js +0 -0
  294. /package/{js → _js}/js/tag.js.map +0 -0
  295. /package/{js → _js}/js/tagElement.d.ts +0 -0
  296. /package/{js → _js}/js/tagElement.js +0 -0
  297. /package/{js → _js}/js/tagElement.js.map +0 -0
  298. /package/{js → _js}/js/tagGateway.function.d.ts +0 -0
  299. /package/{js → _js}/js/tagGateway.function.js +0 -0
  300. /package/{js → _js}/js/tagGateway.function.js.map +0 -0
  301. /package/{js → _js}/js/tagRunner.d.ts +0 -0
  302. /package/{js → _js}/js/tagRunner.js +0 -0
  303. /package/{js → _js}/js/tagRunner.js.map +0 -0
  304. /package/{js → _js}/js/templater.utils.d.ts +0 -0
  305. /package/{js → _js}/js/templater.utils.js +0 -0
  306. /package/{js → _js}/js/templater.utils.js.map +0 -0
  307. /package/{js → _js}/js/updateTag.utils.d.ts +0 -0
  308. /package/{js → _js}/js/updateTag.utils.js +0 -0
  309. /package/{js → _js}/js/updateTag.utils.js.map +0 -0
  310. /package/{js → _js}/js/wait.d.ts +0 -0
  311. /package/{js → _js}/js/wait.js +0 -0
  312. /package/{js → _js}/js/wait.js.map +0 -0
  313. /package/{js → _js}/wait.d.ts +0 -0
  314. /package/{js → _js}/wait.js +0 -0
  315. /package/{js → _js}/wait.js.map +0 -0
@@ -0,0 +1,53 @@
1
+ import { runBeforeRedraw, runBeforeRender } from "./tagRunner.js";
2
+ import { setUse } from "./setUse.function.js";
3
+ import { processTagResult } from "./processTagResult.function.js";
4
+ export function processSubjectComponent(value, result, template, ownerTag, options) {
5
+ // TODO: This below check not needed in production mode
6
+ if (value.tagged !== true) {
7
+ let name = value.wrapper.original.name || value.wrapper.original.constructor?.name;
8
+ if (name === 'Function') {
9
+ name = undefined;
10
+ }
11
+ const label = name || value.wrapper.original.toString().substring(0, 120);
12
+ const error = new Error(`Not a tag component. Wrap your function with tag(). Example tag(props => html\`\`) on component:\n\n${label}\n\n`);
13
+ throw error;
14
+ }
15
+ const templater = value;
16
+ const tagSupport = value.tagSupport;
17
+ tagSupport.mutatingRender = () => {
18
+ // Is this NOT my first render
19
+ if (result.tag) {
20
+ const exit = tagSupport.renderExistingTag(result.tag, templater);
21
+ if (exit) {
22
+ return result.tag;
23
+ }
24
+ }
25
+ // draw to my parent
26
+ const newest = tagSupport.newest = ownerTag.tagSupport.render();
27
+ return newest;
28
+ };
29
+ let retag = templater.newest;
30
+ const providers = setUse.memory.providerConfig;
31
+ providers.ownerTag = ownerTag;
32
+ const isFirstTime = !retag || options.forceElement;
33
+ if (isFirstTime) {
34
+ if (!retag) {
35
+ runBeforeRender(tagSupport, ownerTag);
36
+ }
37
+ // only true when options.forceElement
38
+ if (retag) {
39
+ runBeforeRedraw(tagSupport, retag);
40
+ }
41
+ retag = templater.forceRenderTemplate(tagSupport, ownerTag);
42
+ }
43
+ ownerTag.children.push(retag);
44
+ tagSupport.latestProps = retag.tagSupport.props;
45
+ tagSupport.latestClonedProps = retag.tagSupport.clonedProps;
46
+ tagSupport.memory = retag.tagSupport.memory;
47
+ retag.setSupport(tagSupport);
48
+ const clones = processTagResult(retag, result, // The element set here will be removed from document. Also result.tag will be added in here
49
+ template, // <template end interpolate /> (will be removed)
50
+ options);
51
+ return clones;
52
+ }
53
+ //# sourceMappingURL=processSubjectComponent.function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processSubjectComponent.function.js","sourceRoot":"","sources":["../ts/processSubjectComponent.function.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAEjE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAG7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAGjE,MAAM,UAAU,uBAAuB,CACrC,KAAsB,EACtB,MAAkB,EAClB,QAAiB,EACjB,QAAa,EACb,OAAiD;IAEjD,uDAAuD;IACvD,IAAG,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QACzB,IAAI,IAAI,GAAuB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAA;QAEtG,IAAG,IAAI,KAAK,UAAU,EAAE,CAAC;YACvB,IAAI,GAAG,SAAS,CAAA;QAClB,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAC,GAAG,CAAC,CAAA;QACxE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,uGAAuG,KAAK,MAAM,CAAC,CAAA;QAC3I,MAAM,KAAK,CAAA;IACb,CAAC;IAED,MAAM,SAAS,GAAG,KAAwB,CAAA;IAC1C,MAAM,UAAU,GAAe,KAAK,CAAC,UAAU,CAAA;IAE/C,UAAU,CAAC,cAAc,GAAG,GAAG,EAAE;QAC/B,8BAA8B;QAC9B,IAAG,MAAM,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,IAAI,GAAG,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;YAChE,IAAG,IAAI,EAAE,CAAC;gBACR,OAAO,MAAM,CAAC,GAAG,CAAA;YACnB,CAAC;QACH,CAAC;QAED,oBAAoB;QACpB,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,CAAA;QAC/D,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;IAED,IAAI,KAAK,GAAG,SAAS,CAAC,MAAa,CAAA;IAEnC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAA;IAC9C,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAE7B,MAAM,WAAW,GAAG,CAAC,KAAK,IAAI,OAAO,CAAC,YAAY,CAAA;IAElD,IAAG,WAAW,EAAE,CAAC;QACf,IAAG,CAAC,KAAK,EAAE,CAAC;YACV,eAAe,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QACvC,CAAC;QAED,sCAAsC;QACtC,IAAG,KAAK,EAAE,CAAC;YACT,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;QACpC,CAAC;QAED,KAAK,GAAG,SAAS,CAAC,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IAC7D,CAAC;IAED,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAE7B,UAAU,CAAC,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAA;IAC/C,UAAU,CAAC,iBAAiB,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAA;IAC3D,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAA;IAE3C,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;IAE5B,MAAM,MAAM,GAAG,gBAAgB,CAC7B,KAAK,EACL,MAAM,EAAE,4FAA4F;IACpG,QAAQ,EAAE,iDAAiD;IAC3D,OAAO,CACR,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { Clones } from "./Clones.type.js";
2
+ import { Tag } from "./Tag.class.js";
3
+ import { Counts, Template } from "./interpolateTemplate.js";
4
+ type processOptions = {
5
+ forceElement?: boolean;
6
+ counts: Counts;
7
+ };
8
+ export type ClonesAndPromise = {
9
+ clones: Clones;
10
+ promise?: Promise<any>;
11
+ };
12
+ export declare function processSubjectValue(value: any, result: any, // could be tag via result.tag
13
+ template: Template, // <template end interpolate /> (will be removed)
14
+ tag: Tag, // owner
15
+ options: processOptions): ClonesAndPromise;
16
+ export {};
@@ -0,0 +1,122 @@
1
+ import { processSubjectComponent } from "./processSubjectComponent.function.js";
2
+ import { processTagResult } from "./processTagResult.function.js";
3
+ import { isTagComponent, isTagInstance } from "./isInstance.js";
4
+ import { processTagArray } from "./processTagArray.js";
5
+ import { getTagSupport } from "./getTagSupport.js";
6
+ import { updateBetweenTemplates } from "./interpolateTemplate.js";
7
+ var ValueTypes;
8
+ (function (ValueTypes) {
9
+ ValueTypes["tag"] = "tag";
10
+ ValueTypes["tagArray"] = "tag-array";
11
+ ValueTypes["tagComponent"] = "tag-component";
12
+ ValueTypes["value"] = "value";
13
+ })(ValueTypes || (ValueTypes = {}));
14
+ function getValueType(value) {
15
+ if (isTagComponent(value)) {
16
+ return ValueTypes.tagComponent;
17
+ }
18
+ if (isTagInstance(value)) {
19
+ return ValueTypes.tag;
20
+ }
21
+ if (value instanceof Array && value.every(x => isTagInstance(x))) {
22
+ return ValueTypes.tagArray;
23
+ }
24
+ return ValueTypes.value;
25
+ }
26
+ export function processSubjectValue(value, result, // could be tag via result.tag
27
+ template, // <template end interpolate /> (will be removed)
28
+ tag, // owner
29
+ options) {
30
+ const valueType = getValueType(value);
31
+ // Previously was simple value, now its a tag of some sort
32
+ if (valueType !== ValueTypes.value && result.clone) {
33
+ const clone = result.clone;
34
+ const parent = clone.parentNode;
35
+ template.removeAttribute('removedAt');
36
+ parent.insertBefore(template, clone);
37
+ parent.removeChild(clone);
38
+ delete result.clone;
39
+ // result.clone = template
40
+ }
41
+ switch (valueType) {
42
+ case ValueTypes.tag:
43
+ return {
44
+ clones: processTag(value, result, template, tag, options)
45
+ };
46
+ case ValueTypes.tagArray:
47
+ return {
48
+ clones: processTagArray(result, value, template, tag, options)
49
+ };
50
+ case ValueTypes.tagComponent:
51
+ return {
52
+ clones: processSubjectComponent(value, result, template, tag, options)
53
+ };
54
+ }
55
+ // *if processing WAS a tag BUT NOW its some other non-tag value
56
+ if (result.tag) {
57
+ return {
58
+ clones: [],
59
+ promise: processWasTag(value, result, template, options),
60
+ };
61
+ }
62
+ return {
63
+ clones: processRegularValue(value, result, template, tag)
64
+ };
65
+ }
66
+ function processRegularValue(value, result, // could be tag via result.tag
67
+ template, // <template end interpolate /> (will be removed)
68
+ tag) {
69
+ const before = result.clone || template; // Either the template is on the doc OR its the first element we last put on doc
70
+ // Processing of regular values
71
+ const clone = updateBetweenTemplates(value, before);
72
+ result.clone = clone; // remember single element put down, for future updates
73
+ const clones = [];
74
+ const oldPos = tag.clones.indexOf(before); // is the insertBefore guide being considered one of the tags clones?
75
+ const isOnlyGuideInClones = oldPos >= 0 && !tag.clones.includes(clone);
76
+ const exchangeGuideForClone = isOnlyGuideInClones && !before.parentNode; // guide is in clones AND guide is not on the document
77
+ if (exchangeGuideForClone) {
78
+ tag.clones.splice(oldPos, 1); // remove insertBefore guide from tag
79
+ tag.clones.push(clone); // exchange guide for element actually on document
80
+ clones.push(clone); // record the one element that in the end is on the document
81
+ }
82
+ return clones;
83
+ }
84
+ function processTag(value, result, // could be tag via result.tag
85
+ template, // <template end interpolate /> (will be removed)
86
+ tag, // owner
87
+ options) {
88
+ // first time seeing this tag?
89
+ if (!value.tagSupport) {
90
+ value.tagSupport = getTagSupport({});
91
+ // asking me to render will cause my parent to render
92
+ value.tagSupport.mutatingRender = tag.tagSupport.mutatingRender;
93
+ value.tagSupport.oldest = value.tagSupport.oldest || value;
94
+ tag.children.push(value);
95
+ value.ownerTag = tag;
96
+ }
97
+ const clones = processTagResult(value, result, // Function will attach result.tag
98
+ template, options);
99
+ return clones;
100
+ }
101
+ function processWasTag(value, result, // could be tag via result.tag,
102
+ template, // <template end interpolate /> (will be removed)
103
+ options) {
104
+ const tag = result.tag;
105
+ // put the template back
106
+ const lastFirstChild = result.clone || template; // result.tag.clones[0] // template.lastFirstChild
107
+ // const parentNode = lastFirstChild.parentNode || template.parentNode
108
+ // put the template back down
109
+ lastFirstChild.parentNode.insertBefore(template, lastFirstChild);
110
+ // cleanup old
111
+ if (result.clone) {
112
+ result.clone.parentNode.removeChild(result.clone);
113
+ }
114
+ delete result.tag;
115
+ const stagger = options.counts.removed;
116
+ const promise = tag.destroy({ stagger }).then(animated => options.counts.removed = stagger + animated);
117
+ delete result.tag;
118
+ const clone = updateBetweenTemplates(value, template);
119
+ result.clone = clone;
120
+ return promise;
121
+ }
122
+ //# sourceMappingURL=processSubjectValue.function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processSubjectValue.function.js","sourceRoot":"","sources":["../ts/processSubjectValue.function.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Clones } from "./Clones.type.js";
2
+ import { Tag } from "./Tag.class.js";
3
+ import { Counts } from "./interpolateTemplate.js";
4
+ export declare function processTagArray(result: any, value: Tag[], // arry of Tag classes
5
+ template: Element, // <template end interpolate />
6
+ ownerTag: Tag, options: {
7
+ counts: Counts;
8
+ forceElement?: boolean;
9
+ }): Clones;
@@ -0,0 +1,60 @@
1
+ import { getTagSupport } from "./getTagSupport.js";
2
+ import { processTagResult } from "./processTagResult.function.js";
3
+ export function processTagArray(result, value, // arry of Tag classes
4
+ template, // <template end interpolate />
5
+ ownerTag, options) {
6
+ const clones = [];
7
+ result.lastArray = result.lastArray || []; // {tag, index}[] populated in processTagResult
8
+ let removed = 0;
9
+ /** 🗑️ remove previous items first */
10
+ result.lastArray = result.lastArray.filter((item, index) => {
11
+ const lessLength = value.length - 1 < index - removed;
12
+ const subTag = value[index - removed];
13
+ const subArrayValue = subTag?.arrayValue;
14
+ if (lessLength || subArrayValue !== item.tag.arrayValue) {
15
+ const last = result.lastArray[index];
16
+ const tag = last.tag;
17
+ tag.destroy({
18
+ stagger: options.counts.removed,
19
+ byParent: false
20
+ });
21
+ ++removed;
22
+ ++options.counts.removed;
23
+ return false;
24
+ }
25
+ return true;
26
+ });
27
+ // const masterBefore = template || (template as any).clone
28
+ const before = template || template.clone;
29
+ value.forEach((subTag, index) => {
30
+ subTag.tagSupport = getTagSupport({}); // {...ownerTag.tagSupport} // ownerTag.tagSupport.templater
31
+ subTag.tagSupport.mutatingRender = () => {
32
+ ownerTag.tagSupport.render();
33
+ return subTag;
34
+ }; // fake having a render function
35
+ subTag.ownerTag = ownerTag;
36
+ ownerTag.children.push(subTag);
37
+ if (subTag.arrayValue === undefined) {
38
+ // appears arrayValue is not there but maybe arrayValue is actually the value of undefined
39
+ if (!Object.keys(subTag).includes('arrayValue')) {
40
+ const err = new Error('Use html`...`.key(item) instead of html`...` to template an Array');
41
+ err.code = 'add-array-key';
42
+ throw err;
43
+ }
44
+ }
45
+ const previous = result.lastArray[index];
46
+ if (previous) {
47
+ if (previous.tag.arrayValue === subTag.arrayValue) {
48
+ previous.tag.updateValues(subTag.values);
49
+ }
50
+ return [];
51
+ }
52
+ const nextClones = processTagResult(subTag, result, before, {
53
+ index,
54
+ ...options,
55
+ });
56
+ clones.push(...nextClones);
57
+ });
58
+ return clones;
59
+ }
60
+ //# sourceMappingURL=processTagArray.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processTagArray.js","sourceRoot":"","sources":["../ts/processTagArray.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { Tag } from "./Tag.class.js";
2
+ import { Clones } from "./Clones.type.js";
3
+ import { Counts } from "./interpolateTemplate.js";
4
+ export declare function processTagResult(tag: Tag, result: any, // used for recording past and current value
5
+ insertBefore: Element, // <template end interpolate />
6
+ { index, counts, forceElement, }: {
7
+ index?: number;
8
+ counts: Counts;
9
+ forceElement?: boolean;
10
+ }): Clones;
@@ -0,0 +1,40 @@
1
+ export function processTagResult(tag, result, // used for recording past and current value
2
+ insertBefore, // <template end interpolate />
3
+ { index, counts, forceElement, }) {
4
+ // *for
5
+ if (index !== undefined) {
6
+ const existing = result.lastArray[index];
7
+ if (existing?.tag.isLikeTag(tag)) {
8
+ existing.tag.updateByTag(tag);
9
+ return [];
10
+ }
11
+ const lastFirstChild = insertBefore; // tag.clones[0] // insertBefore.lastFirstChild
12
+ const clones = tag.buildBeforeElement(lastFirstChild, { counts, forceElement });
13
+ result.lastArray.push({
14
+ tag, index
15
+ });
16
+ return clones;
17
+ }
18
+ // *if appears we already have seen
19
+ const rTag = result.tag;
20
+ if (rTag && !forceElement) {
21
+ // are we just updating an if we already had?
22
+ if (rTag.isLikeTag(tag)) {
23
+ // components
24
+ if (result instanceof Function) {
25
+ const newTag = result(rTag.tagSupport);
26
+ rTag.updateByTag(newTag);
27
+ return [];
28
+ }
29
+ rTag.updateByTag(tag);
30
+ return []; // no clones created in element already on stage
31
+ }
32
+ }
33
+ const clones = tag.buildBeforeElement(insertBefore, {
34
+ counts,
35
+ forceElement,
36
+ });
37
+ result.tag = tag; // let reprocessing know we saw this previously as an if
38
+ return clones;
39
+ }
40
+ //# sourceMappingURL=processTagResult.function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processTagResult.function.js","sourceRoot":"","sources":["../ts/processTagResult.function.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,gBAAgB,CAC9B,GAAQ,EACR,MAAW,EAAE,4CAA4C;AACzD,YAAqB,EAAE,+BAA+B;AACtD,EACE,KAAK,EAAE,MAAM,EAAE,YAAY,GAK5B;IAED,OAAO;IACP,IAAG,KAAK,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QAExC,IAAG,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YAC7B,OAAO,EAAE,CAAA;QACX,CAAC;QAED,MAAM,cAAc,GAAG,YAAY,CAAA,CAAC,+CAA+C;QAEnF,MAAM,MAAM,GAAG,GAAG,CAAC,kBAAkB,CAAC,cAAc,EAAE,EAAC,MAAM,EAAE,YAAY,EAAC,CAAC,CAAA;QAE7E,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YACpB,GAAG,EAAE,KAAK;SACX,CAAC,CAAA;QAEF,OAAO,MAAM,CAAA;IACf,CAAC;IAED,mCAAmC;IACnC,MAAM,IAAI,GAAQ,MAAM,CAAC,GAAG,CAAA;IAC5B,IAAG,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACzB,6CAA6C;QAC7C,IAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,aAAa;YACb,IAAG,MAAM,YAAY,QAAQ,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;gBACtC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;gBACxB,OAAO,EAAE,CAAA;YACX,CAAC;YAED,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YAErB,OAAO,EAAE,CAAA,CAAC,gDAAgD;QAC5D,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,CAAC,kBAAkB,CAAC,YAAY,EAAE;QAClD,MAAM;QACN,YAAY;KACb,CAAC,CAAA;IACF,MAAM,CAAC,GAAG,GAAG,GAAG,CAAA,CAAC,wDAAwD;IAEzE,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -0,0 +1,17 @@
1
+ export type Provider = {
2
+ constructMethod: any;
3
+ instance: any;
4
+ clone: any;
5
+ };
6
+ type functionProvider = <T>() => T;
7
+ type classProvider = new <T>(...args: any[]) => T;
8
+ export declare const providers: {
9
+ create: <T>(constructMethod: classProvider | functionProvider) => T;
10
+ /**
11
+ * @template T
12
+ * @param {(new (...args: any[]) => T) | () => T} constructor
13
+ * @returns {T}
14
+ */
15
+ inject: (constructor: any) => any;
16
+ };
17
+ export {};
@@ -0,0 +1,86 @@
1
+ import { deepClone } from "./deepFunctions.js";
2
+ import { setUse } from "./setUse.function.js";
3
+ // TODO: rename
4
+ setUse.memory.providerConfig = {
5
+ providers: [],
6
+ currentTagSupport: undefined,
7
+ ownerTag: undefined,
8
+ };
9
+ function get(constructMethod) {
10
+ const config = setUse.memory.providerConfig;
11
+ const providers = config.providers;
12
+ return providers.find(provider => provider.constructMethod === constructMethod);
13
+ }
14
+ export const providers = {
15
+ create: (constructMethod) => {
16
+ const existing = get(constructMethod);
17
+ if (existing) {
18
+ existing.clone = deepClone(existing.instance);
19
+ return existing.instance;
20
+ }
21
+ // Providers with provider requirements just need to use providers.create() and providers.inject()
22
+ const instance = constructMethod.constructor ? new constructMethod() : constructMethod();
23
+ const config = setUse.memory.providerConfig;
24
+ config.providers.push({
25
+ constructMethod,
26
+ instance,
27
+ clone: deepClone(instance)
28
+ });
29
+ return instance;
30
+ },
31
+ /**
32
+ * @template T
33
+ * @param {(new (...args: any[]) => T) | () => T} constructor
34
+ * @returns {T}
35
+ */
36
+ inject: (constructor) => {
37
+ const oldValue = get(constructor);
38
+ if (oldValue) {
39
+ return oldValue.instance;
40
+ }
41
+ const config = setUse.memory.providerConfig;
42
+ let owner = {
43
+ ownerTag: config.ownerTag
44
+ };
45
+ while (owner.ownerTag) {
46
+ const ownerProviders = owner.ownerTag.tagSupport.memory.providers;
47
+ const provider = ownerProviders.find(provider => {
48
+ if (provider.constructMethod === constructor) {
49
+ return true;
50
+ }
51
+ });
52
+ if (provider) {
53
+ provider.clone = deepClone(provider.instance); // keep a copy of the latest before any change occur
54
+ config.providers.push(provider);
55
+ return provider.instance;
56
+ }
57
+ owner = owner.ownerTag; // cause reloop
58
+ }
59
+ const msg = `Could not inject provider: ${constructor.name} ${constructor}`;
60
+ console.warn(`${msg}. Available providers`, config.providers);
61
+ throw new Error(msg);
62
+ }
63
+ };
64
+ setUse({
65
+ beforeRender: (tagSupport, ownerTag) => {
66
+ run(tagSupport, ownerTag);
67
+ },
68
+ beforeRedraw: (tagSupport, tag) => {
69
+ run(tagSupport, tag.ownerTag);
70
+ },
71
+ afterRender: (tagSupport) => {
72
+ const config = setUse.memory.providerConfig;
73
+ tagSupport.memory.providers = [...config.providers];
74
+ config.providers.length = 0;
75
+ }
76
+ });
77
+ function run(tagSupport, ownerTag) {
78
+ const config = setUse.memory.providerConfig;
79
+ config.currentTagSuport = tagSupport;
80
+ config.ownerTag = ownerTag;
81
+ if (tagSupport.memory.providers.length) {
82
+ config.providers.length = 0;
83
+ config.providers.push(...tagSupport.memory.providers);
84
+ }
85
+ }
86
+ //# sourceMappingURL=providers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../ts/providers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { TemplaterResult } from "./templater.utils.js";
2
+ import { Tag } from "./Tag.class.js";
3
+ export declare function redrawTag(existingTag: Tag | undefined, templater: TemplaterResult, // latest tag function to call for rendering
4
+ ownerTag?: Tag): {
5
+ remit: boolean;
6
+ retag: Tag;
7
+ };
@@ -0,0 +1,8 @@
1
+ import { getTagSupport } from "./getTagSupport.js";
2
+ export function redrawTag(existingTag, templater, // latest tag function to call for rendering
3
+ ownerTag) {
4
+ const tagSupport = existingTag?.tagSupport || getTagSupport(templater);
5
+ const result = templater.renderWithSupport(tagSupport, existingTag, ownerTag);
6
+ return result;
7
+ }
8
+ //# sourceMappingURL=redrawTag.function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redrawTag.function.js","sourceRoot":"","sources":["../ts/redrawTag.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAIlD,MAAM,UAAU,SAAS,CACvB,WAA4B,EAC5B,SAA0B,EAAE,4CAA4C;AACxE,QAAc;IAEd,MAAM,UAAU,GAAG,WAAW,EAAE,UAAU,IAAI,aAAa,CAAC,SAAS,CAAC,CAAA;IAEtE,MAAM,MAAM,GAAG,SAAS,CAAC,iBAAiB,CACxC,UAAU,EACV,WAAW,EACX,QAAQ,CACT,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function buildClones(temporary: Element, insertBefore: Element): ChildNode[];
package/_js/render.js ADDED
@@ -0,0 +1,17 @@
1
+ export function buildClones(temporary, insertBefore) {
2
+ const clones = [];
3
+ const template = temporary.children[0];
4
+ let nextSibling = template.content.firstChild;
5
+ while (nextSibling) {
6
+ const nextNextSibling = nextSibling.nextSibling;
7
+ buildSibling(nextSibling, insertBefore);
8
+ clones.push(nextSibling);
9
+ nextSibling = nextNextSibling;
10
+ }
11
+ return clones;
12
+ }
13
+ function buildSibling(nextSibling, insertBefore) {
14
+ const parentNode = insertBefore.parentNode;
15
+ parentNode.insertBefore(nextSibling, insertBefore);
16
+ }
17
+ //# sourceMappingURL=render.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../ts/render.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,WAAW,CACzB,SAAkB,EAClB,YAAqB;IAErB,MAAM,MAAM,GAAG,EAAE,CAAA;IACjB,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAwB,CAAA;IAC7D,IAAI,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAA;IAE7C,OAAO,WAAW,EAAE,CAAC;QACnB,MAAM,eAAe,GAAG,WAAW,CAAC,WAAW,CAAA;QAC/C,YAAY,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;QACvC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACxB,WAAW,GAAG,eAAe,CAAA;IAC/B,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,YAAY,CACnB,WAAsB,EACtB,YAAqB;IAErB,MAAM,UAAU,GAAG,YAAY,CAAC,UAAwB,CAAA;IACxD,UAAU,CAAC,YAAY,CACrB,WAAW,EACX,YAAY,CACb,CAAA;AACH,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { TagSupport } from "./getTagSupport.js";
2
+ import { TagComponent, TemplaterResult } from "./templater.utils.js";
3
+ import { Tag } from "./Tag.class.js";
4
+ export declare function renderAppToElement(app: TagComponent, // (...args: unknown[]) => TemplaterResult,
5
+ element: Element, props: unknown): {
6
+ tag: Tag;
7
+ tags: TagComponent[];
8
+ };
9
+ export declare function applyTagUpdater(wrapper: TemplaterResult): {
10
+ tag: Tag;
11
+ tagSupport: TagSupport;
12
+ };
13
+ /** Overwrites arguments.tagSupport.mutatingRender */
14
+ export declare function addAppTagRender(tagSupport: TagSupport, tag: Tag): void;
@@ -0,0 +1,57 @@
1
+ import { runBeforeRender } from "./tagRunner.js";
2
+ const appElements = [];
3
+ export function renderAppToElement(app, // (...args: unknown[]) => TemplaterResult,
4
+ element, props) {
5
+ const appElmIndex = appElements.findIndex(appElm => appElm.element === element);
6
+ if (appElmIndex >= 0) {
7
+ appElements[appElmIndex].tag.destroy();
8
+ appElements.splice(appElmIndex, 1);
9
+ console.warn('Found and destroyed app element already rendered to element', { element });
10
+ }
11
+ // Create the app which returns [props, runOneTimeFunction]
12
+ const wrapper = app(props);
13
+ // have a function setup and call the tagWrapper with (props, {update, async, on})
14
+ const result = applyTagUpdater(wrapper);
15
+ const { tag, tagSupport } = result;
16
+ tag.appElement = element;
17
+ addAppTagRender(tagSupport, tag);
18
+ // const context = tag.updateValues(tag.values)
19
+ const templateElm = document.createElement('template');
20
+ templateElm.setAttribute('tag-detail', 'app-template-placeholder');
21
+ element.appendChild(templateElm);
22
+ tag.buildBeforeElement(templateElm);
23
+ element.setUse = app.original.setUse;
24
+ appElements.push({ element, tag });
25
+ return { tag, tags: app.original.tags };
26
+ }
27
+ export function applyTagUpdater(wrapper) {
28
+ const tagSupport = wrapper.tagSupport; // getTagSupport(0, wrapper)
29
+ runBeforeRender(tagSupport, undefined);
30
+ // Call the apps function for our tag templater
31
+ // const templater = tagSupport.templater as TemplaterResult
32
+ const tag = wrapper.wrapper(); // templater.wrapper()
33
+ tag.tagSupport = tagSupport;
34
+ tag.afterRender();
35
+ return { tag, tagSupport };
36
+ }
37
+ /** Overwrites arguments.tagSupport.mutatingRender */
38
+ export function addAppTagRender(tagSupport, tag) {
39
+ let lastTag;
40
+ tagSupport.mutatingRender = () => {
41
+ tag.beforeRedraw();
42
+ const templater = tagSupport.templater; // wrapper
43
+ const fromTag = lastTag = templater.wrapper();
44
+ // tagSupport.props = fromTag.tagSupport.props
45
+ tagSupport.latestProps = fromTag.tagSupport.props;
46
+ tagSupport.latestClonedProps = fromTag.tagSupport.clonedProps;
47
+ fromTag.setSupport(tagSupport);
48
+ tag.afterRender();
49
+ tag.updateByTag(fromTag);
50
+ if (lastTag) {
51
+ lastTag.destroy({ stagger: 0 });
52
+ }
53
+ tagSupport.newest = fromTag;
54
+ return lastTag;
55
+ };
56
+ }
57
+ //# sourceMappingURL=renderAppToElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderAppToElement.js","sourceRoot":"","sources":["../ts/renderAppToElement.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { Tag } from "./Tag.class.js";
2
+ import { TagSupport } from "./getTagSupport";
3
+ import { Config } from "./state";
4
+ interface TagUse {
5
+ beforeRender: (tagSupport: TagSupport, ownerTag: Tag) => void;
6
+ beforeRedraw: (tagSupport: TagSupport, tag: Tag) => void;
7
+ afterRender: (tagSupport: TagSupport, tag: Tag) => void;
8
+ beforeDestroy: (tagSupport: TagSupport, tag: Tag) => void;
9
+ }
10
+ export type UseOptions = {
11
+ beforeRender?: (tagSupport: TagSupport, ownerTag: Tag) => void;
12
+ beforeRedraw?: (tagSupport: TagSupport, tag: Tag) => void;
13
+ afterRender?: (tagSupport: TagSupport, tag: Tag) => void;
14
+ beforeDestroy?: (tagSupport: TagSupport, tag: Tag) => void;
15
+ };
16
+ export declare function setUse(use: UseOptions): void;
17
+ export declare namespace setUse {
18
+ var tagUse: TagUse[];
19
+ var memory: Record<string, any> & {
20
+ stateConfig: Config;
21
+ };
22
+ }
23
+ export {};
@@ -0,0 +1,14 @@
1
+ const tagUse = [];
2
+ export function setUse(use) {
3
+ // must provide defaults
4
+ const useMe = {
5
+ beforeRender: use.beforeRender || (() => undefined),
6
+ beforeRedraw: use.beforeRedraw || (() => undefined),
7
+ afterRender: use.afterRender || (() => undefined),
8
+ beforeDestroy: use.beforeDestroy || (() => undefined),
9
+ };
10
+ setUse.tagUse.push(useMe);
11
+ }
12
+ setUse.tagUse = tagUse;
13
+ setUse.memory = {};
14
+ //# sourceMappingURL=setUse.function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setUse.function.js","sourceRoot":"","sources":["../ts/setUse.function.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,GAAa,EAAE,CAAA;AAsB3B,MAAM,UAAU,MAAM,CAAC,GAAe;IACpC,wBAAwB;IACxB,MAAM,KAAK,GAAW;QACpB,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;QACnD,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;QACnD,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;QACjD,aAAa,EAAE,GAAG,CAAC,aAAa,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;KACtD,CAAA;IAED,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC3B,CAAC;AAED,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;AACtB,MAAM,CAAC,MAAM,GAAG,EAAkD,CAAA"}