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
package/_js/state.d.ts ADDED
@@ -0,0 +1,21 @@
1
+ export type StateConfig = (x?: any) => [any, any];
2
+ type StateConfigItem = {
3
+ callback?: StateConfig;
4
+ lastValue?: any;
5
+ defaultValue?: any;
6
+ };
7
+ export type StateConfigArray = StateConfigItem[];
8
+ export type Config = {
9
+ array: StateConfigArray;
10
+ rearray: StateConfigArray;
11
+ };
12
+ export type State = {
13
+ newest: StateConfigArray;
14
+ };
15
+ /** Used for variables that need to remain the same variable during render passes */
16
+ export declare function state0<T>(defaultValue: T | (() => T), getSetMethod?: (x: T) => [T, T]): T;
17
+ export declare function state<T>(defaultValue: T | (() => T)): (x?: (y: T) => [T, T]) => T;
18
+ export declare function getStateValue(state: StateConfigItem): any;
19
+ export declare class StateEchoBack {
20
+ }
21
+ export {};
package/_js/state.js ADDED
@@ -0,0 +1,129 @@
1
+ import { setUse } from "./setUse.function.js";
2
+ // TODO: rename
3
+ setUse.memory.stateConfig = {
4
+ array: [], // state memory on the first render
5
+ rearray: [], // state memory to be used before the next render
6
+ };
7
+ /** Used for variables that need to remain the same variable during render passes */
8
+ export function state0(defaultValue, getSetMethod) {
9
+ const config = setUse.memory.stateConfig;
10
+ const restate = config.rearray[config.array.length];
11
+ if (restate) {
12
+ const oldValue = getStateValue(restate);
13
+ config.array.push({
14
+ callback: getSetMethod,
15
+ lastValue: oldValue,
16
+ defaultValue: restate.defaultValue,
17
+ });
18
+ return oldValue; // return old value instead
19
+ }
20
+ const defaultFn = defaultValue instanceof Function ? defaultValue : () => defaultValue;
21
+ const initValue = defaultFn();
22
+ config.array.push({
23
+ callback: getSetMethod,
24
+ lastValue: initValue,
25
+ defaultValue: initValue,
26
+ });
27
+ return initValue;
28
+ }
29
+ export function state(defaultValue) {
30
+ console.log('----------------');
31
+ const config = setUse.memory.stateConfig;
32
+ let getSetMethod;
33
+ const restate = config.rearray[config.array.length];
34
+ if (restate) {
35
+ let oldValue = getStateValue(restate);
36
+ getSetMethod = (x => [oldValue, oldValue = x]);
37
+ const push = {
38
+ callback: getSetMethod,
39
+ lastValue: oldValue,
40
+ defaultValue: restate.defaultValue,
41
+ };
42
+ config.array.push(push);
43
+ return (y) => {
44
+ push.callback = y || (x => [oldValue, oldValue = x]);
45
+ return oldValue;
46
+ };
47
+ }
48
+ const defaultFn = defaultValue instanceof Function ? defaultValue : () => defaultValue;
49
+ let initValue = defaultFn();
50
+ getSetMethod = (x => [initValue, initValue = x]);
51
+ const push = {
52
+ callback: getSetMethod,
53
+ lastValue: initValue,
54
+ defaultValue: initValue,
55
+ };
56
+ config.array.push(push);
57
+ // return initValue
58
+ return (y) => {
59
+ push.callback = y || (x => [initValue, initValue = x]);
60
+ return initValue;
61
+ };
62
+ }
63
+ setUse({
64
+ beforeRender: (tagSupport) => initState(tagSupport),
65
+ beforeRedraw: (tagSupport) => initState(tagSupport),
66
+ afterRender: (tagSupport, tag) => {
67
+ const state = tagSupport.memory.state;
68
+ const config = setUse.memory.stateConfig;
69
+ if (config.rearray.length) {
70
+ if (config.rearray.length !== config.array.length) {
71
+ const message = `States lengths mismatched ${config.rearray.length} !== ${config.array.length}`;
72
+ console.error(message, {
73
+ oldStates: config.array,
74
+ newStates: config.rearray,
75
+ component: tagSupport.templater?.wrapper.original
76
+ });
77
+ throw new Error(message);
78
+ }
79
+ }
80
+ // config.rearray.length = 0 // clean up any previous runs
81
+ config.rearray = []; // clean up any previous runs
82
+ // state.newest.length = 0
83
+ // state.newest.push(...config.array) as any
84
+ state.newest = [...config.array];
85
+ // config.array.length = 0
86
+ config.array = [];
87
+ }
88
+ });
89
+ export function getStateValue(
90
+ // state: StateConfig,
91
+ state) {
92
+ const callback = state.callback;
93
+ if (!callback) {
94
+ return state.defaultValue;
95
+ }
96
+ const oldState = callback(StateEchoBack); // get value and set to undefined
97
+ const [oldValue] = oldState;
98
+ const [checkValue] = callback(oldValue); // set back to original value
99
+ if (checkValue !== StateEchoBack) {
100
+ const message = 'State property not used correctly.\n\n' +
101
+ 'For "let" state use `let name = state(default, x => [name, name = x])`\n\n' +
102
+ 'For "const" state use `const name = state(default)`\n\n' +
103
+ 'Problem function:\n' + state + '\n';
104
+ // console.error(message, {callback, oldState, oldValue, checkValue})
105
+ throw new Error(message);
106
+ }
107
+ return oldValue;
108
+ }
109
+ export class StateEchoBack {
110
+ }
111
+ function initState(tagSupport) {
112
+ const state = tagSupport.memory.state;
113
+ const config = setUse.memory.stateConfig;
114
+ if (config.rearray.length) {
115
+ const message = 'last array not cleared';
116
+ console.error(message, {
117
+ config,
118
+ component: tagSupport.templater?.wrapper.original,
119
+ state,
120
+ });
121
+ throw message;
122
+ }
123
+ // TODO: this maybe redundant and not needed
124
+ config.rearray = []; // .length = 0
125
+ if (state?.newest.length) {
126
+ config.rearray.push(...state.newest);
127
+ }
128
+ }
129
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../ts/state.ts"],"names":[],"mappings":"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"}
package/_js/tag.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ import { Tag } from "./Tag.class.js";
2
+ import { TagComponent } from "./templater.utils.js";
3
+ export declare const tags: TagComponent[];
4
+ export type TagEnv = {
5
+ children?: Tag;
6
+ };
7
+ export declare function tag<T>(tagComponent: T | TagComponent): T;
package/_js/tag.js ADDED
@@ -0,0 +1,46 @@
1
+ import { isTagInstance } from "./isInstance.js";
2
+ import { setUse } from "./setUse.function.js";
3
+ import { TemplaterResult, getNewProps } from "./templater.utils.js";
4
+ export const tags = [];
5
+ let tagCount = 0;
6
+ export function tag(tagComponent) {
7
+ const result = (function tagWrapper(props, children) {
8
+ const isPropTag = isTagInstance(props);
9
+ const templater = new TemplaterResult(props);
10
+ const newProps = getNewProps(props, templater);
11
+ let argProps = newProps;
12
+ if (isPropTag) {
13
+ children = props;
14
+ argProps = noPropsGiven;
15
+ }
16
+ function innerTagWrap() {
17
+ const originalFunction = innerTagWrap.original;
18
+ const props = templater.tagSupport.props; // argProps
19
+ const tag = originalFunction(props, children);
20
+ tag.setSupport(templater.tagSupport);
21
+ return tag;
22
+ }
23
+ innerTagWrap.original = tagComponent;
24
+ templater.tagged = true;
25
+ templater.wrapper = innerTagWrap;
26
+ return templater;
27
+ }); // we override the function provided and pretend original is what's returned
28
+ updateResult(result, tagComponent);
29
+ // group tags together and have hmr pickup
30
+ updateComponent(tagComponent);
31
+ tags.push(tagComponent);
32
+ return result;
33
+ }
34
+ function updateResult(result, tagComponent) {
35
+ result.isTag = true;
36
+ result.original = tagComponent;
37
+ }
38
+ function updateComponent(tagComponent) {
39
+ tagComponent.tags = tags;
40
+ tagComponent.setUse = setUse;
41
+ tagComponent.tagIndex = ++tagCount;
42
+ }
43
+ class NoPropsGiven {
44
+ }
45
+ const noPropsGiven = new NoPropsGiven();
46
+ //# sourceMappingURL=tag.js.map
package/_js/tag.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tag.js","sourceRoot":"","sources":["../ts/tag.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAE7C,OAAO,EAAgB,eAAe,EAAW,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAE1F,MAAM,CAAC,MAAM,IAAI,GAAmB,EAAE,CAAA;AAEtC,IAAI,QAAQ,GAAG,CAAC,CAAA;AAWhB,MAAM,UAAU,GAAG,CACjB,YAA8B;IAE9B,MAAM,MAAM,GAAG,CAAC,SAAS,UAAU,CACjC,KAA8B,EAC9B,QAAc;QAEd,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;QACtC,MAAM,SAAS,GAAoB,IAAI,eAAe,CAAC,KAAK,CAAC,CAAA;QAC7D,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;QAE9C,IAAI,QAAQ,GAAG,QAAQ,CAAA;QACvB,IAAG,SAAS,EAAE,CAAC;YACb,QAAQ,GAAG,KAAY,CAAA;YACvB,QAAQ,GAAG,YAAY,CAAA;QACzB,CAAC;QAED,SAAS,YAAY;YACnB,MAAM,gBAAgB,GAAG,YAAY,CAAC,QAAwB,CAAA;YAC9D,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,KAAK,CAAA,CAAC,WAAW;YACpD,MAAM,GAAG,GAAG,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;YAC7C,GAAG,CAAC,UAAU,CAAE,SAAS,CAAC,UAAU,CAAE,CAAA;YACtC,OAAO,GAAG,CAAA;QACZ,CAAC;QAED,YAAY,CAAC,QAAQ,GAAG,YAAY,CAAA;QAGpC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAA;QACvB,SAAS,CAAC,OAAO,GAAG,YAAuB,CAAA;QAE3C,OAAO,SAAS,CAAA;IAClB,CAAC,CAAM,CAAA,CAAC,4EAA4E;IAEpF,YAAY,CAAC,MAAM,EAAE,YAA4B,CAAC,CAAA;IAElD,0CAA0C;IAC1C,eAAe,CAAC,YAAY,CAAC,CAAA;IAC7B,IAAI,CAAC,IAAI,CAAC,YAA4B,CAAC,CAAA;IAEvC,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,YAAY,CACnB,MAAW,EACX,YAA0B;IAE1B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAA;IACnB,MAAM,CAAC,QAAQ,GAAG,YAAY,CAAA;AAChC,CAAC;AAED,SAAS,eAAe,CACtB,YAAiB;IAEjB,YAAY,CAAC,IAAI,GAAG,IAAI,CAAA;IACxB,YAAY,CAAC,MAAM,GAAG,MAAM,CAAA;IAC5B,YAAY,CAAC,QAAQ,GAAG,EAAE,QAAQ,CAAA;AACpC,CAAC;AACD,MAAM,YAAY;CAAG;AACrB,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAA"}
@@ -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 tagElement(app: TagComponent, // (...args: unknown[]) => TemplaterResult,
5
+ element: HTMLElement | 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 tagElement(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=tagElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tagElement.js","sourceRoot":"","sources":["../ts/tagElement.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { Props } from "./Props.js";
2
+ import { TagComponent } from "./templater.utils.js";
3
+ export type dispatchEvent = (name: string, eventData: EventData) => void;
4
+ export type GatewayProps = Props & {
5
+ [key: string]: unknown;
6
+ dispatchEvent: dispatchEvent;
7
+ };
8
+ export declare function checkGateways(): void;
9
+ export declare const tagGateway: (component: TagComponent) => {
10
+ id: string;
11
+ };
12
+ export type EventData = {
13
+ detail: Record<string, any>;
14
+ };
@@ -0,0 +1,138 @@
1
+ import { redrawTag } from "./redrawTag.function.js";
2
+ import { tagElement } from "./tagElement.js";
3
+ export function checkGateways() {
4
+ Object.entries(gateways).forEach(([id, gateway]) => checkGateway(gateway));
5
+ }
6
+ function checkGateway(gateway) {
7
+ const { id, observer, tag } = gateway;
8
+ if (document.getElementById(id)) {
9
+ return true;
10
+ }
11
+ observer.disconnect();
12
+ tag.destroy();
13
+ delete gateways[id];
14
+ return false;
15
+ }
16
+ const namedTimeouts = {};
17
+ export const tagGateway = function tagGateway(component) {
18
+ const componentString = functionToHtmlId(component);
19
+ const id = '__tagTemplate_' + componentString;
20
+ if (namedTimeouts[id]) {
21
+ return namedTimeouts[id];
22
+ }
23
+ let intervalId;
24
+ let hitCount = 0;
25
+ const interval = 5;
26
+ function findElements() {
27
+ const elements = document.querySelectorAll('#' + id);
28
+ if (!elements.length) {
29
+ return elements.length;
30
+ }
31
+ // Element has been found, load
32
+ if (intervalId) {
33
+ clearInterval(intervalId);
34
+ }
35
+ delete namedTimeouts[id];
36
+ elements.forEach(element => {
37
+ const updateTag = element.updateTag;
38
+ if (updateTag) {
39
+ updateTag();
40
+ return;
41
+ }
42
+ const props = parsePropsString(element);
43
+ try {
44
+ const { tag } = tagElement(component, element, props);
45
+ watchElement(id, element, tag);
46
+ }
47
+ catch (err) {
48
+ console.warn('Failed to render component to element', { component, element, props });
49
+ throw err;
50
+ }
51
+ });
52
+ return elements.length;
53
+ }
54
+ function findElement() {
55
+ intervalId = setInterval(() => {
56
+ hitCount = hitCount + interval;
57
+ if (hitCount >= 2000) {
58
+ clearInterval(intervalId);
59
+ throw new Error(`TaggedJs Element ${id} not found`);
60
+ }
61
+ findElements();
62
+ }, interval);
63
+ }
64
+ const elementCounts = findElements();
65
+ if (elementCounts) {
66
+ return { id };
67
+ }
68
+ findElement();
69
+ namedTimeouts[id] = { id };
70
+ return namedTimeouts[id];
71
+ };
72
+ function parsePropsString(element) {
73
+ const propsString = element.getAttribute('props');
74
+ if (!propsString) {
75
+ return { element };
76
+ }
77
+ try {
78
+ const props = JSON.parse(propsString);
79
+ // props.element = element
80
+ props.dispatchEvent = function (name, eventData) {
81
+ const event = new CustomEvent(name, eventData);
82
+ element.dispatchEvent(event);
83
+ };
84
+ return props;
85
+ }
86
+ catch (err) {
87
+ console.warn('Failed to parse props on element', { element, propsString });
88
+ throw err;
89
+ }
90
+ }
91
+ function watchElement(id, targetNode, tag) {
92
+ let lastTag = tag;
93
+ const observer = new MutationObserver((mutationsList, observer) => {
94
+ if (!checkGateway(gateway)) {
95
+ return;
96
+ }
97
+ for (const mutation of mutationsList) {
98
+ if (mutation.type === 'attributes') {
99
+ updateTag();
100
+ }
101
+ }
102
+ });
103
+ function updateTag() {
104
+ const templater = tag.tagSupport.templater;
105
+ const oldProps = templater.tagSupport.props;
106
+ templater.tagSupport.props = parsePropsString(targetNode);
107
+ const isSameProps = JSON.stringify(oldProps) === JSON.stringify(templater.tagSupport.props);
108
+ if (isSameProps) {
109
+ return; // no reason to update, same props
110
+ }
111
+ templater.tagSupport.latestProps = templater.tagSupport.props;
112
+ const result = redrawTag(lastTag, templater);
113
+ // update records
114
+ gateway.tag = lastTag = result.retag;
115
+ }
116
+ ;
117
+ targetNode.updateTag = updateTag;
118
+ const gateway = { id, tag, observer };
119
+ gateways[id] = gateway;
120
+ // Configure the observer to watch for changes in child nodes and attributes
121
+ const config = { attributes: true };
122
+ // Start observing the target node for specified changes
123
+ observer.observe(targetNode, config);
124
+ }
125
+ function functionToHtmlId(func) {
126
+ // Convert function to string
127
+ let funcString = func.toString();
128
+ // Remove spaces and replace special characters with underscores
129
+ let cleanedString = funcString.replace(/\s+/g, '_')
130
+ .replace(/[^\w\d]/g, '_');
131
+ // Ensure the ID starts with a letter
132
+ if (!/^[a-zA-Z]/.test(cleanedString)) {
133
+ cleanedString = 'fn_' + cleanedString;
134
+ }
135
+ return cleanedString;
136
+ }
137
+ const gateways = {};
138
+ //# sourceMappingURL=tagGateway.function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tagGateway.function.js","sourceRoot":"","sources":["../ts/tagGateway.function.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Tag } from "./Tag.class.js";
2
+ import { TagSupport } from "./getTagSupport";
3
+ export declare function runBeforeRender(tagSupport: TagSupport, tagOwner: Tag): void;
4
+ export declare function runAfterRender(tagSupport: TagSupport, tag: Tag): void;
5
+ export declare function runBeforeRedraw(tagSupport: TagSupport, tag: Tag): void;
6
+ export declare function runBeforeDestroy(tagSupport: TagSupport, tag: Tag): void;
@@ -0,0 +1,19 @@
1
+ // TODO: This should be more like `new TaggedJs().use({})`
2
+ import { setUse } from "./setUse.function.js";
3
+ // Life cycle 1
4
+ export function runBeforeRender(tagSupport, tagOwner) {
5
+ setUse.tagUse.forEach(tagUse => tagUse.beforeRender(tagSupport, tagOwner));
6
+ }
7
+ // Life cycle 2
8
+ export function runAfterRender(tagSupport, tag) {
9
+ setUse.tagUse.forEach(tagUse => tagUse.afterRender(tagSupport, tag));
10
+ }
11
+ // Life cycle 3
12
+ export function runBeforeRedraw(tagSupport, tag) {
13
+ setUse.tagUse.forEach(tagUse => tagUse.beforeRedraw(tagSupport, tag));
14
+ }
15
+ // Life cycle 4 - end of life
16
+ export function runBeforeDestroy(tagSupport, tag) {
17
+ setUse.tagUse.forEach(tagUse => tagUse.beforeDestroy(tagSupport, tag));
18
+ }
19
+ //# sourceMappingURL=tagRunner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tagRunner.js","sourceRoot":"","sources":["../ts/tagRunner.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAI1D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAE7C,eAAe;AACf,MAAM,UAAU,eAAe,CAC7B,UAAsB,EACtB,QAAa;IAEb,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAA;AAC5E,CAAC;AAED,eAAe;AACf,MAAM,UAAU,cAAc,CAC5B,UAAsB,EACtB,GAAQ;IAER,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAA;AACtE,CAAC;AAED,eAAe;AACf,MAAM,UAAU,eAAe,CAC7B,UAAsB,EACtB,GAAQ;IAER,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAA;AACvE,CAAC;AAED,6BAA6B;AAC7B,MAAM,UAAU,gBAAgB,CAC9B,UAAsB,EACtB,GAAQ;IAER,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAA;AACxE,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { Tag } from "./Tag.class.js";
2
+ import { TagSupport } from "./getTagSupport.js";
3
+ import { Props } from "./Props.js";
4
+ export type Wrapper = (() => Tag) & {
5
+ original: () => Tag;
6
+ };
7
+ export declare class TemplaterResult {
8
+ tagged: boolean;
9
+ wrapper: Wrapper;
10
+ newest?: Tag;
11
+ oldest?: Tag;
12
+ tagSupport: TagSupport;
13
+ constructor(props: Props);
14
+ redraw?: (force?: boolean) => Tag | undefined;
15
+ isTemplater: boolean;
16
+ forceRenderTemplate(tagSupport: TagSupport, ownerTag: Tag): Tag;
17
+ renderWithSupport(tagSupport: TagSupport, existingTag: Tag | undefined, ownerTag?: Tag): {
18
+ remit: boolean;
19
+ retag: Tag;
20
+ };
21
+ }
22
+ export interface TemplateRedraw extends TemplaterResult {
23
+ redraw: () => Tag | undefined;
24
+ }
25
+ export type TagComponent = (props: Props, // props or children
26
+ children?: Tag) => Tag;
27
+ export declare function getNewProps(props: Props, templater: TemplaterResult): any;
@@ -0,0 +1,98 @@
1
+ import { getTagSupport } from "./getTagSupport.js";
2
+ import { isTagInstance } from "./isInstance.js";
3
+ import { runAfterRender, runBeforeRedraw, runBeforeRender } from "./tagRunner.js";
4
+ import { setUse } from "./setUse.function.js";
5
+ export class TemplaterResult {
6
+ tagged;
7
+ wrapper;
8
+ newest;
9
+ oldest;
10
+ tagSupport;
11
+ constructor(props) {
12
+ this.tagSupport = getTagSupport(this, props);
13
+ }
14
+ redraw;
15
+ isTemplater = true;
16
+ forceRenderTemplate(tagSupport, ownerTag) {
17
+ const tag = this.wrapper();
18
+ tag.setSupport(tagSupport);
19
+ tag.afterRender();
20
+ this.oldest = tag;
21
+ tagSupport.oldest = tag;
22
+ this.oldest = tag;
23
+ this.newest = tag;
24
+ tag.ownerTag = ownerTag;
25
+ return tag;
26
+ }
27
+ renderWithSupport(tagSupport, existingTag, ownerTag) {
28
+ /* BEFORE RENDER */
29
+ // signify to other operations that a rendering has occurred so they do not need to render again
30
+ ++tagSupport.memory.renderCount;
31
+ const runtimeOwnerTag = existingTag?.ownerTag || ownerTag;
32
+ if (tagSupport.oldest) {
33
+ // ensure props are the last ones used
34
+ tagSupport.props = tagSupport.latestProps;
35
+ tagSupport.clonedProps = tagSupport.latestClonedProps;
36
+ runBeforeRedraw(tagSupport, tagSupport.oldest);
37
+ }
38
+ else {
39
+ // first time render
40
+ runBeforeRender(tagSupport, runtimeOwnerTag);
41
+ // TODO: Logic below most likely could live within providers.ts inside the runBeforeRender function
42
+ const providers = setUse.memory.providerConfig;
43
+ providers.ownerTag = runtimeOwnerTag;
44
+ }
45
+ /* END: BEFORE RENDER */
46
+ const templater = this;
47
+ const retag = templater.wrapper();
48
+ /* AFTER */
49
+ tagSupport.latestProps = retag.tagSupport.props;
50
+ tagSupport.latestClonedProps = retag.tagSupport.clonedProps;
51
+ retag.setSupport(tagSupport);
52
+ runAfterRender(tagSupport, retag);
53
+ templater.newest = retag;
54
+ retag.ownerTag = runtimeOwnerTag;
55
+ const oldest = tagSupport.oldest = tagSupport.oldest || retag;
56
+ tagSupport.newest = retag;
57
+ const oldestTagSupport = oldest.tagSupport;
58
+ oldest.tagSupport = oldestTagSupport || tagSupport;
59
+ oldest.tagSupport.templater = templater;
60
+ // retag.setSupport(tagSupport)
61
+ const isSameTag = existingTag && existingTag.isLikeTag(retag);
62
+ // If previously was a tag and seems to be same tag, then just update current tag with new values
63
+ if (isSameTag) {
64
+ oldest.updateByTag(retag);
65
+ return { remit: false, retag };
66
+ }
67
+ return { remit: true, retag };
68
+ }
69
+ }
70
+ /* rewriter */
71
+ export function getNewProps(props, templater) {
72
+ function callback(toCall, callWith) {
73
+ const callbackResult = toCall(...callWith);
74
+ templater.newest?.ownerTag?.tagSupport.render();
75
+ return callbackResult;
76
+ }
77
+ const isPropTag = isTagInstance(props);
78
+ const watchProps = isPropTag ? 0 : props;
79
+ const newProps = resetFunctionProps(watchProps, callback);
80
+ return newProps;
81
+ }
82
+ function resetFunctionProps(props, callback) {
83
+ if (typeof (props) !== 'object') {
84
+ return props;
85
+ }
86
+ const newProps = { ...props };
87
+ Object.entries(newProps).forEach(([name, value]) => {
88
+ if (value instanceof Function) {
89
+ newProps[name] = (...args) => {
90
+ return callback(value, args);
91
+ };
92
+ return;
93
+ }
94
+ newProps[name] = value;
95
+ });
96
+ return newProps;
97
+ }
98
+ //# sourceMappingURL=templater.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templater.utils.js","sourceRoot":"","sources":["../ts/templater.utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { TagSubject } from "./Tag.utils.js";
2
+ import { TagSupport } from "./getTagSupport.js";
3
+ import { Subject } from "./Subject.js";
4
+ import { TemplaterResult } from "./templater.utils.js";
5
+ import { Tag } from "./Tag.class.js";
6
+ export declare function updateExistingValue(existing: Subject<Tag> | TemplaterResult | TagSubject, value: TemplaterResult | TagSupport | Function | Subject<any>, tag: Tag, variableName: string): void;