taggedjs 2.3.28 → 2.3.30

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 (379) hide show
  1. package/index.js +1 -1
  2. package/js/Subject.d.ts +2 -1
  3. package/js/Subject.js +11 -7
  4. package/js/Subject.js.map +1 -1
  5. package/js/Tag.class.d.ts +1 -4
  6. package/js/Tag.class.js +29 -56
  7. package/js/Tag.class.js.map +1 -1
  8. package/js/Tag.utils.d.ts +7 -3
  9. package/js/Tag.utils.js +3 -3
  10. package/js/Tag.utils.js.map +1 -1
  11. package/js/TagSupport.class.d.ts +7 -11
  12. package/js/TagSupport.class.js +21 -92
  13. package/js/TagSupport.class.js.map +1 -1
  14. package/js/ValueSubject.d.ts +1 -1
  15. package/js/ValueSubject.js +3 -3
  16. package/js/ValueSubject.js.map +1 -1
  17. package/js/bindSubjectCallback.function.d.ts +2 -1
  18. package/js/bindSubjectCallback.function.js +14 -9
  19. package/js/bindSubjectCallback.function.js.map +1 -1
  20. package/js/deepFunctions.js +9 -4
  21. package/js/deepFunctions.js.map +1 -1
  22. package/js/elementDestroyCheck.function.d.ts +3 -3
  23. package/js/elementDestroyCheck.function.js.map +1 -1
  24. package/js/elementInitCheck.d.ts +1 -1
  25. package/js/elementInitCheck.js +4 -4
  26. package/js/elementInitCheck.js.map +1 -1
  27. package/js/gateway/loadTagGateway.function.d.ts +2 -2
  28. package/js/gateway/loadTagGateway.function.js.map +1 -1
  29. package/js/gateway/tagGateway.function.d.ts +3 -2
  30. package/js/gateway/tagGateway.function.js.map +1 -1
  31. package/js/gateway/tagGateway.utils.d.ts +4 -3
  32. package/js/gateway/tagGateway.utils.js +3 -15
  33. package/js/gateway/tagGateway.utils.js.map +1 -1
  34. package/js/getCallback.js +1 -1
  35. package/js/getCallback.js.map +1 -1
  36. package/js/hasTagSupportChanged.function.d.ts +7 -0
  37. package/js/hasTagSupportChanged.function.js +76 -0
  38. package/js/hasTagSupportChanged.function.js.map +1 -0
  39. package/js/index.d.ts +4 -2
  40. package/js/index.js +5 -2
  41. package/js/index.js.map +1 -1
  42. package/js/interpolateAttributes.js +24 -16
  43. package/js/interpolateAttributes.js.map +1 -1
  44. package/js/interpolateContentTemplates.d.ts +1 -1
  45. package/js/interpolateContentTemplates.js +8 -10
  46. package/js/interpolateContentTemplates.js.map +1 -1
  47. package/js/interpolateElement.d.ts +2 -0
  48. package/js/interpolateElement.js +1 -8
  49. package/js/interpolateElement.js.map +1 -1
  50. package/js/interpolateTemplate.d.ts +3 -3
  51. package/js/interpolateTemplate.js +18 -13
  52. package/js/interpolateTemplate.js.map +1 -1
  53. package/js/onDestroy.js +0 -3
  54. package/js/onDestroy.js.map +1 -1
  55. package/js/onInit.js +0 -4
  56. package/js/onInit.js.map +1 -1
  57. package/js/processNewValue.function.d.ts +2 -0
  58. package/js/processNewValue.function.js +29 -0
  59. package/js/processNewValue.function.js.map +1 -0
  60. package/js/processRegularValue.function.d.ts +7 -0
  61. package/js/processRegularValue.function.js +21 -0
  62. package/js/processRegularValue.function.js.map +1 -0
  63. package/js/processSubjectComponent.function.js +3 -19
  64. package/js/processSubjectComponent.function.js.map +1 -1
  65. package/js/processSubjectValue.function.d.ts +6 -5
  66. package/js/processSubjectValue.function.js +28 -42
  67. package/js/processSubjectValue.function.js.map +1 -1
  68. package/js/processTagArray.d.ts +1 -0
  69. package/js/processTagArray.js +46 -16
  70. package/js/processTagArray.js.map +1 -1
  71. package/js/processTagResult.function.d.ts +1 -2
  72. package/js/processTagResult.function.js +1 -17
  73. package/js/processTagResult.function.js.map +1 -1
  74. package/js/propState.function.d.ts +2 -0
  75. package/js/propState.function.js +3 -0
  76. package/js/propState.function.js.map +1 -0
  77. package/js/provider.utils.d.ts +2 -0
  78. package/js/provider.utils.js +34 -0
  79. package/js/provider.utils.js.map +1 -0
  80. package/js/providers.d.ts +2 -1
  81. package/js/providers.js +2 -2
  82. package/js/providers.js.map +1 -1
  83. package/js/redrawTag.function.d.ts +3 -2
  84. package/js/redrawTag.function.js +2 -5
  85. package/js/redrawTag.function.js.map +1 -1
  86. package/js/set.function.d.ts +23 -0
  87. package/{_js/state.js → js/set.function.js} +60 -64
  88. package/js/set.function.js.map +1 -0
  89. package/js/setLet.function.d.ts +3 -0
  90. package/js/setLet.function.js +31 -0
  91. package/js/setLet.function.js.map +1 -0
  92. package/js/setProp.function.d.ts +3 -0
  93. package/js/setProp.function.js +34 -0
  94. package/js/setProp.function.js.map +1 -0
  95. package/js/setUse.function.d.ts +1 -1
  96. package/js/state.d.ts +7 -6
  97. package/js/state.js +14 -12
  98. package/js/state.js.map +1 -1
  99. package/js/tag.d.ts +7 -3
  100. package/js/tag.js +42 -8
  101. package/js/tag.js.map +1 -1
  102. package/js/tagElement.d.ts +2 -1
  103. package/js/tagElement.js +16 -8
  104. package/js/tagElement.js.map +1 -1
  105. package/js/templater.utils.d.ts +0 -3
  106. package/js/templater.utils.js +22 -19
  107. package/js/templater.utils.js.map +1 -1
  108. package/js/updateExistingTag.function.d.ts +1 -1
  109. package/js/updateExistingTag.function.js +3 -9
  110. package/js/updateExistingTag.function.js.map +1 -1
  111. package/js/updateExistingTagComponent.function.js +12 -13
  112. package/js/updateExistingTagComponent.function.js.map +1 -1
  113. package/js/updateExistingValue.function.d.ts +5 -3
  114. package/js/updateExistingValue.function.js +82 -53
  115. package/js/updateExistingValue.function.js.map +1 -1
  116. package/js/watch.function.d.ts +3 -0
  117. package/js/watch.function.js +19 -0
  118. package/js/watch.function.js.map +1 -0
  119. package/package.json +1 -1
  120. package/_js/Clones.type.d.ts +0 -1
  121. package/_js/Clones.type.js +0 -2
  122. package/_js/Clones.type.js.map +0 -1
  123. package/_js/ElementTarget.interface.d.ts +0 -7
  124. package/_js/ElementTarget.interface.js +0 -2
  125. package/_js/ElementTarget.interface.js.map +0 -1
  126. package/_js/ElementTargetEvent.interface.d.ts +0 -6
  127. package/_js/ElementTargetEvent.interface.js +0 -2
  128. package/_js/ElementTargetEvent.interface.js.map +0 -1
  129. package/_js/Props.d.ts +0 -1
  130. package/_js/Props.js +0 -2
  131. package/_js/Props.js.map +0 -1
  132. package/_js/Subject.d.ts +0 -17
  133. package/_js/Subject.js +0 -43
  134. package/_js/Subject.js.map +0 -1
  135. package/_js/Tag.class.d.ts +0 -69
  136. package/_js/Tag.class.js +0 -258
  137. package/_js/Tag.class.js.map +0 -1
  138. package/_js/Tag.utils.d.ts +0 -12
  139. package/_js/Tag.utils.js +0 -31
  140. package/_js/Tag.utils.js.map +0 -1
  141. package/_js/ValueSubject.d.ts +0 -6
  142. package/_js/ValueSubject.js +0 -15
  143. package/_js/ValueSubject.js.map +0 -1
  144. package/_js/bindSubjectCallback.function.d.ts +0 -5
  145. package/_js/bindSubjectCallback.function.js +0 -19
  146. package/_js/bindSubjectCallback.function.js.map +0 -1
  147. package/_js/deepFunctions.d.ts +0 -2
  148. package/_js/deepFunctions.js +0 -76
  149. package/_js/deepFunctions.js.map +0 -1
  150. package/_js/elementDestroyCheck.function.d.ts +0 -3
  151. package/_js/elementDestroyCheck.function.js +0 -17
  152. package/_js/elementDestroyCheck.function.js.map +0 -1
  153. package/_js/elementInitCheck.d.ts +0 -2
  154. package/_js/elementInitCheck.js +0 -18
  155. package/_js/elementInitCheck.js.map +0 -1
  156. package/_js/gateway/gateway.web.component.d.ts +0 -11
  157. package/_js/gateway/gateway.web.component.js +0 -20
  158. package/_js/gateway/gateway.web.component.js.map +0 -1
  159. package/_js/gateway/index.d.ts +0 -3
  160. package/_js/gateway/index.js +0 -4
  161. package/_js/gateway/index.js.map +0 -1
  162. package/_js/gateway/loadTagGateway.function.d.ts +0 -2
  163. package/_js/gateway/loadTagGateway.function.js +0 -18
  164. package/_js/gateway/loadTagGateway.function.js.map +0 -1
  165. package/_js/gateway/tagGateway.function.d.ts +0 -4
  166. package/_js/gateway/tagGateway.function.js +0 -49
  167. package/_js/gateway/tagGateway.function.js.map +0 -1
  168. package/_js/gateway/tagGateway.utils.d.ts +0 -21
  169. package/_js/gateway/tagGateway.utils.js +0 -139
  170. package/_js/gateway/tagGateway.utils.js.map +0 -1
  171. package/_js/getCallback.d.ts +0 -3
  172. package/_js/getCallback.js +0 -50
  173. package/_js/getCallback.js.map +0 -1
  174. package/_js/getTagSupport.d.ts +0 -21
  175. package/_js/getTagSupport.js +0 -110
  176. package/_js/getTagSupport.js.map +0 -1
  177. package/_js/html.d.ts +0 -2
  178. package/_js/html.js +0 -5
  179. package/_js/html.js.map +0 -1
  180. package/_js/index.d.ts +0 -20
  181. package/_js/index.js +0 -25
  182. package/_js/index.js.map +0 -1
  183. package/_js/inputAttribute.d.ts +0 -1
  184. package/_js/inputAttribute.js +0 -19
  185. package/_js/inputAttribute.js.map +0 -1
  186. package/_js/interpolateAttributes.d.ts +0 -4
  187. package/_js/interpolateAttributes.js +0 -135
  188. package/_js/interpolateAttributes.js.map +0 -1
  189. package/_js/interpolateContentTemplates.d.ts +0 -6
  190. package/_js/interpolateContentTemplates.js +0 -54
  191. package/_js/interpolateContentTemplates.js.map +0 -1
  192. package/_js/interpolateElement.d.ts +0 -9
  193. package/_js/interpolateElement.js +0 -39
  194. package/_js/interpolateElement.js.map +0 -1
  195. package/_js/interpolateTemplate.d.ts +0 -17
  196. package/_js/interpolateTemplate.js +0 -64
  197. package/_js/interpolateTemplate.js.map +0 -1
  198. package/_js/interpolations.d.ts +0 -7
  199. package/_js/interpolations.js +0 -18
  200. package/_js/interpolations.js.map +0 -1
  201. package/_js/isInstance.d.ts +0 -6
  202. package/_js/isInstance.js +0 -10
  203. package/_js/isInstance.js.map +0 -1
  204. package/_js/js/Clones.type.d.ts +0 -1
  205. package/_js/js/Clones.type.js +0 -2
  206. package/_js/js/Clones.type.js.map +0 -1
  207. package/_js/js/Props.d.ts +0 -1
  208. package/_js/js/Props.js +0 -2
  209. package/_js/js/Props.js.map +0 -1
  210. package/_js/js/Subject.d.ts +0 -17
  211. package/_js/js/Subject.js +0 -43
  212. package/_js/js/Subject.js.map +0 -1
  213. package/_js/js/Tag.class.d.ts +0 -67
  214. package/_js/js/Tag.class.js +0 -241
  215. package/_js/js/Tag.class.js.map +0 -1
  216. package/_js/js/Tag.utils.d.ts +0 -12
  217. package/_js/js/Tag.utils.js +0 -31
  218. package/_js/js/Tag.utils.js.map +0 -1
  219. package/_js/js/ValueSubject.d.ts +0 -6
  220. package/_js/js/ValueSubject.js +0 -15
  221. package/_js/js/ValueSubject.js.map +0 -1
  222. package/_js/js/bindSubjectCallback.function.d.ts +0 -5
  223. package/_js/js/bindSubjectCallback.function.js +0 -19
  224. package/_js/js/bindSubjectCallback.function.js.map +0 -1
  225. package/_js/js/deepFunctions.d.ts +0 -2
  226. package/_js/js/deepFunctions.js +0 -76
  227. package/_js/js/deepFunctions.js.map +0 -1
  228. package/_js/js/elementDestroyCheck.function.d.ts +0 -3
  229. package/_js/js/elementDestroyCheck.function.js +0 -17
  230. package/_js/js/elementDestroyCheck.function.js.map +0 -1
  231. package/_js/js/elementInitCheck.d.ts +0 -2
  232. package/_js/js/elementInitCheck.js +0 -18
  233. package/_js/js/elementInitCheck.js.map +0 -1
  234. package/_js/js/getCallback.d.ts +0 -3
  235. package/_js/js/getCallback.js +0 -50
  236. package/_js/js/getCallback.js.map +0 -1
  237. package/_js/js/getTagSupport.d.ts +0 -22
  238. package/_js/js/getTagSupport.js +0 -116
  239. package/_js/js/getTagSupport.js.map +0 -1
  240. package/_js/js/html.d.ts +0 -2
  241. package/_js/js/html.js +0 -5
  242. package/_js/js/html.js.map +0 -1
  243. package/_js/js/index.d.ts +0 -19
  244. package/_js/js/index.js +0 -24
  245. package/_js/js/index.js.map +0 -1
  246. package/_js/js/inputAttribute.d.ts +0 -1
  247. package/_js/js/inputAttribute.js +0 -19
  248. package/_js/js/inputAttribute.js.map +0 -1
  249. package/_js/js/interpolateAttributes.d.ts +0 -4
  250. package/_js/js/interpolateAttributes.js +0 -127
  251. package/_js/js/interpolateAttributes.js.map +0 -1
  252. package/_js/js/interpolateContentTemplates.d.ts +0 -5
  253. package/_js/js/interpolateContentTemplates.js +0 -57
  254. package/_js/js/interpolateContentTemplates.js.map +0 -1
  255. package/_js/js/interpolateElement.d.ts +0 -9
  256. package/_js/js/interpolateElement.js +0 -32
  257. package/_js/js/interpolateElement.js.map +0 -1
  258. package/_js/js/interpolateTemplate.d.ts +0 -17
  259. package/_js/js/interpolateTemplate.js +0 -64
  260. package/_js/js/interpolateTemplate.js.map +0 -1
  261. package/_js/js/interpolations.d.ts +0 -8
  262. package/_js/js/interpolations.js +0 -17
  263. package/_js/js/interpolations.js.map +0 -1
  264. package/_js/js/isInstance.d.ts +0 -6
  265. package/_js/js/isInstance.js +0 -10
  266. package/_js/js/isInstance.js.map +0 -1
  267. package/_js/js/onDestroy.d.ts +0 -2
  268. package/_js/js/onDestroy.js +0 -20
  269. package/_js/js/onDestroy.js.map +0 -1
  270. package/_js/js/onInit.d.ts +0 -2
  271. package/_js/js/onInit.js +0 -19
  272. package/_js/js/onInit.js.map +0 -1
  273. package/_js/js/processSubjectComponent.function.d.ts +0 -8
  274. package/_js/js/processSubjectComponent.function.js +0 -53
  275. package/_js/js/processSubjectComponent.function.js.map +0 -1
  276. package/_js/js/processSubjectValue.function.d.ts +0 -16
  277. package/_js/js/processSubjectValue.function.js +0 -122
  278. package/_js/js/processSubjectValue.function.js.map +0 -1
  279. package/_js/js/processTagArray.d.ts +0 -9
  280. package/_js/js/processTagArray.js +0 -60
  281. package/_js/js/processTagArray.js.map +0 -1
  282. package/_js/js/processTagResult.function.d.ts +0 -10
  283. package/_js/js/processTagResult.function.js +0 -42
  284. package/_js/js/processTagResult.function.js.map +0 -1
  285. package/_js/js/providers.d.ts +0 -17
  286. package/_js/js/providers.js +0 -86
  287. package/_js/js/providers.js.map +0 -1
  288. package/_js/js/redrawTag.function.d.ts +0 -7
  289. package/_js/js/redrawTag.function.js +0 -9
  290. package/_js/js/redrawTag.function.js.map +0 -1
  291. package/_js/js/render.d.ts +0 -1
  292. package/_js/js/render.js +0 -24
  293. package/_js/js/render.js.map +0 -1
  294. package/_js/js/renderAppToElement.d.ts +0 -14
  295. package/_js/js/renderAppToElement.js +0 -57
  296. package/_js/js/renderAppToElement.js.map +0 -1
  297. package/_js/js/setUse.function.d.ts +0 -23
  298. package/_js/js/setUse.function.js +0 -14
  299. package/_js/js/setUse.function.js.map +0 -1
  300. package/_js/js/state.d.ts +0 -24
  301. package/_js/js/state.js +0 -98
  302. package/_js/js/state.js.map +0 -1
  303. package/_js/js/tag.d.ts +0 -8
  304. package/_js/js/tag.js +0 -46
  305. package/_js/js/tag.js.map +0 -1
  306. package/_js/js/tagElement.d.ts +0 -14
  307. package/_js/js/tagElement.js +0 -57
  308. package/_js/js/tagElement.js.map +0 -1
  309. package/_js/js/tagGateway.function.d.ts +0 -5
  310. package/_js/js/tagGateway.function.js +0 -119
  311. package/_js/js/tagGateway.function.js.map +0 -1
  312. package/_js/js/tagRunner.d.ts +0 -6
  313. package/_js/js/tagRunner.js +0 -19
  314. package/_js/js/tagRunner.js.map +0 -1
  315. package/_js/js/templater.utils.d.ts +0 -28
  316. package/_js/js/templater.utils.js +0 -99
  317. package/_js/js/templater.utils.js.map +0 -1
  318. package/_js/js/updateTag.utils.d.ts +0 -6
  319. package/_js/js/updateTag.utils.js +0 -84
  320. package/_js/js/updateTag.utils.js.map +0 -1
  321. package/_js/js/wait.d.ts +0 -1
  322. package/_js/js/wait.js +0 -8
  323. package/_js/js/wait.js.map +0 -1
  324. package/_js/onDestroy.d.ts +0 -2
  325. package/_js/onDestroy.js +0 -20
  326. package/_js/onDestroy.js.map +0 -1
  327. package/_js/onInit.d.ts +0 -2
  328. package/_js/onInit.js +0 -19
  329. package/_js/onInit.js.map +0 -1
  330. package/_js/processSubjectComponent.function.d.ts +0 -8
  331. package/_js/processSubjectComponent.function.js +0 -53
  332. package/_js/processSubjectComponent.function.js.map +0 -1
  333. package/_js/processSubjectValue.function.d.ts +0 -16
  334. package/_js/processSubjectValue.function.js +0 -122
  335. package/_js/processSubjectValue.function.js.map +0 -1
  336. package/_js/processTagArray.d.ts +0 -9
  337. package/_js/processTagArray.js +0 -60
  338. package/_js/processTagArray.js.map +0 -1
  339. package/_js/processTagResult.function.d.ts +0 -10
  340. package/_js/processTagResult.function.js +0 -40
  341. package/_js/processTagResult.function.js.map +0 -1
  342. package/_js/providers.d.ts +0 -17
  343. package/_js/providers.js +0 -86
  344. package/_js/providers.js.map +0 -1
  345. package/_js/redrawTag.function.d.ts +0 -7
  346. package/_js/redrawTag.function.js +0 -8
  347. package/_js/redrawTag.function.js.map +0 -1
  348. package/_js/render.d.ts +0 -1
  349. package/_js/render.js +0 -17
  350. package/_js/render.js.map +0 -1
  351. package/_js/renderAppToElement.d.ts +0 -14
  352. package/_js/renderAppToElement.js +0 -57
  353. package/_js/renderAppToElement.js.map +0 -1
  354. package/_js/setUse.function.d.ts +0 -23
  355. package/_js/setUse.function.js +0 -14
  356. package/_js/setUse.function.js.map +0 -1
  357. package/_js/state.d.ts +0 -21
  358. package/_js/state.js.map +0 -1
  359. package/_js/tag.d.ts +0 -7
  360. package/_js/tag.js +0 -46
  361. package/_js/tag.js.map +0 -1
  362. package/_js/tagElement.d.ts +0 -14
  363. package/_js/tagElement.js +0 -57
  364. package/_js/tagElement.js.map +0 -1
  365. package/_js/tagGateway.function.d.ts +0 -14
  366. package/_js/tagGateway.function.js +0 -138
  367. package/_js/tagGateway.function.js.map +0 -1
  368. package/_js/tagRunner.d.ts +0 -6
  369. package/_js/tagRunner.js +0 -19
  370. package/_js/tagRunner.js.map +0 -1
  371. package/_js/templater.utils.d.ts +0 -27
  372. package/_js/templater.utils.js +0 -98
  373. package/_js/templater.utils.js.map +0 -1
  374. package/_js/updateTag.utils.d.ts +0 -6
  375. package/_js/updateTag.utils.js +0 -102
  376. package/_js/updateTag.utils.js.map +0 -1
  377. package/_js/wait.d.ts +0 -1
  378. package/_js/wait.js +0 -8
  379. package/_js/wait.js.map +0 -1
@@ -1,89 +1,50 @@
1
+ import { StateMismatchError } from "./errors.js";
1
2
  import { setUse } from "./setUse.function.js";
2
3
  // TODO: rename
3
4
  setUse.memory.stateConfig = {
4
5
  array: [], // state memory on the first render
5
6
  rearray: [], // state memory to be used before the next render
6
7
  };
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);
8
+ export function makeStateResult(initValue, push) {
57
9
  // return initValue
58
- return (y) => {
10
+ const result = (y) => {
59
11
  push.callback = y || (x => [initValue, initValue = x]);
60
12
  return initValue;
61
13
  };
14
+ return result;
15
+ }
16
+ const waitingStates = [];
17
+ export function onNextStateOnly(callback) {
18
+ const config = setUse.memory.stateConfig;
19
+ if (!config.rearray.length) {
20
+ callback();
21
+ return;
22
+ }
23
+ waitingStates.push(callback);
62
24
  }
63
25
  setUse({
64
26
  beforeRender: (tagSupport) => initState(tagSupport),
65
27
  beforeRedraw: (tagSupport) => initState(tagSupport),
66
- afterRender: (tagSupport, tag) => {
28
+ afterRender: (tagSupport) => {
67
29
  const state = tagSupport.memory.state;
68
30
  const config = setUse.memory.stateConfig;
69
31
  if (config.rearray.length) {
70
32
  if (config.rearray.length !== config.array.length) {
71
33
  const message = `States lengths mismatched ${config.rearray.length} !== ${config.array.length}`;
72
- console.error(message, {
34
+ const error = new StateMismatchError(message, {
73
35
  oldStates: config.array,
74
36
  newStates: config.rearray,
75
37
  component: tagSupport.templater?.wrapper.original
76
38
  });
77
- throw new Error(message);
39
+ throw error;
78
40
  }
79
41
  }
80
- // config.rearray.length = 0 // clean up any previous runs
81
42
  config.rearray = []; // clean up any previous runs
82
- // state.newest.length = 0
83
- // state.newest.push(...config.array) as any
84
43
  state.newest = [...config.array];
85
44
  // config.array.length = 0
86
45
  config.array = [];
46
+ waitingStates.forEach(callback => callback());
47
+ waitingStates.length = 0;
87
48
  }
88
49
  });
89
50
  export function getStateValue(
@@ -97,11 +58,11 @@ state) {
97
58
  const [oldValue] = oldState;
98
59
  const [checkValue] = callback(oldValue); // set back to original value
99
60
  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})
61
+ const message = 'State property not used correctly. Second item in array is not setting value as expected.\n\n' +
62
+ 'For "let" state use `let name = state(default)(x => [name, name = x])`\n\n' +
63
+ 'For "const" state use `const name = state(default)()`\n\n' +
64
+ 'Problem state:\n' + (callback ? callback.toString() : JSON.stringify(state)) + '\n';
65
+ console.error(message, { state, callback, oldState, oldValue, checkValue });
105
66
  throw new Error(message);
106
67
  }
107
68
  return oldValue;
@@ -111,14 +72,21 @@ export class StateEchoBack {
111
72
  function initState(tagSupport) {
112
73
  const state = tagSupport.memory.state;
113
74
  const config = setUse.memory.stateConfig;
75
+ // TODO: This guard may no longer be needed
114
76
  if (config.rearray.length) {
115
77
  const message = 'last array not cleared';
116
78
  console.error(message, {
117
79
  config,
118
80
  component: tagSupport.templater?.wrapper.original,
119
81
  state,
82
+ expectedClearArray: config.rearray,
83
+ });
84
+ throw new StateMismatchError(message, {
85
+ config,
86
+ component: tagSupport.templater?.wrapper.original,
87
+ state,
88
+ expectedClearArray: config.rearray,
120
89
  });
121
- throw message;
122
90
  }
123
91
  // TODO: this maybe redundant and not needed
124
92
  config.rearray = []; // .length = 0
@@ -126,4 +94,32 @@ function initState(tagSupport) {
126
94
  config.rearray.push(...state.newest);
127
95
  }
128
96
  }
129
- //# sourceMappingURL=state.js.map
97
+ /** Used for variables that need to remain the same variable during render passes */
98
+ export function set(defaultValue) {
99
+ const config = setUse.memory.stateConfig;
100
+ let getSetMethod;
101
+ const restate = config.rearray[config.array.length];
102
+ if (restate) {
103
+ let oldValue = getStateValue(restate);
104
+ getSetMethod = ((x) => [oldValue, oldValue = x]);
105
+ const push = {
106
+ callback: getSetMethod,
107
+ lastValue: oldValue,
108
+ defaultValue: restate.defaultValue,
109
+ };
110
+ config.array.push(push);
111
+ return oldValue;
112
+ }
113
+ // State first time run
114
+ const defaultFn = defaultValue instanceof Function ? defaultValue : () => defaultValue;
115
+ let initValue = defaultFn();
116
+ getSetMethod = ((x) => [initValue, initValue = x]);
117
+ const push = {
118
+ callback: getSetMethod,
119
+ lastValue: initValue,
120
+ defaultValue: initValue,
121
+ };
122
+ config.array.push(push);
123
+ return initValue;
124
+ }
125
+ //# sourceMappingURL=set.function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set.function.js","sourceRoot":"","sources":["../ts/set.function.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { GetSet } from "./set.function.js";
2
+ /** Used for variables that need to remain the same variable during render passes */
3
+ export declare function setLet<T>(defaultValue: T | (() => T)): ((getSet: GetSet<T>) => T);
@@ -0,0 +1,31 @@
1
+ import { getStateValue, makeStateResult } from "./set.function.js";
2
+ import { setUse } from "./setUse.function.js";
3
+ /** Used for variables that need to remain the same variable during render passes */
4
+ export function setLet(defaultValue) {
5
+ const config = setUse.memory.stateConfig;
6
+ let getSetMethod;
7
+ const restate = config.rearray[config.array.length];
8
+ if (restate) {
9
+ let oldValue = getStateValue(restate);
10
+ getSetMethod = ((x) => [oldValue, oldValue = x]);
11
+ const push = {
12
+ callback: getSetMethod,
13
+ lastValue: oldValue,
14
+ defaultValue: restate.defaultValue,
15
+ };
16
+ config.array.push(push);
17
+ return makeStateResult(oldValue, push);
18
+ }
19
+ // State first time run
20
+ const defaultFn = defaultValue instanceof Function ? defaultValue : () => defaultValue;
21
+ let initValue = defaultFn();
22
+ getSetMethod = ((x) => [initValue, initValue = x]);
23
+ const push = {
24
+ callback: getSetMethod,
25
+ lastValue: initValue,
26
+ defaultValue: initValue,
27
+ };
28
+ config.array.push(push);
29
+ return makeStateResult(initValue, push);
30
+ }
31
+ //# sourceMappingURL=setLet.function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setLet.function.js","sourceRoot":"","sources":["../ts/setLet.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgD,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAChH,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAE7C,oFAAoF;AACpF,MAAM,UAAU,MAAM,CACpB,YAA2B;IAE3B,MAAM,MAAM,GAAW,MAAM,CAAC,MAAM,CAAC,WAAW,CAAA;IAChD,IAAI,YAA4B,CAAA;IAEhC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IACnD,IAAG,OAAO,EAAE,CAAC;QACX,IAAI,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAM,CAAA;QAE1C,YAAY,GAAG,CAAC,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAA;QACnD,MAAM,IAAI,GAAuB;YAC/B,QAAQ,EAAE,YAAY;YACtB,SAAS,EAAE,QAAQ;YACnB,YAAY,EAAE,OAAO,CAAC,YAAY;SACnC,CAAA;QAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEvB,OAAO,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IACxC,CAAC;IAED,uBAAuB;IACvB,MAAM,SAAS,GAAG,YAAY,YAAY,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,YAAY,CAAA;IACtF,IAAI,SAAS,GAAG,SAAS,EAAE,CAAA;IAE3B,YAAY,GAAG,CAAC,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,CAAA;IACrD,MAAM,IAAI,GAAuB;QAC/B,QAAQ,EAAE,YAAY;QACtB,SAAS,EAAE,SAAS;QACpB,YAAY,EAAE,SAAS;KACxB,CAAA;IACD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEvB,OAAO,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;AACzC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { GetSet } from "./set.function.js";
2
+ /** Used for variables that need to remain the same variable during render passes */
3
+ export declare function setProp<T>(getSet: GetSet<any>): T;
@@ -0,0 +1,34 @@
1
+ import { getStateValue } from "./set.function.js";
2
+ import { setUse } from "./setUse.function.js";
3
+ /** Used for variables that need to remain the same variable during render passes */
4
+ export function setProp(getSet) {
5
+ const config = setUse.memory.stateConfig;
6
+ const [propValue] = getSet(undefined);
7
+ getSet(propValue); // restore original value instead of undefined
8
+ const restate = config.rearray[config.array.length];
9
+ if (restate) {
10
+ let watchValue = restate.watch;
11
+ let oldValue = getStateValue(restate);
12
+ const push = {
13
+ callback: getSet,
14
+ lastValue: oldValue,
15
+ watch: restate.watch,
16
+ };
17
+ // has the prop value changed?
18
+ if (propValue != watchValue) {
19
+ push.watch = propValue;
20
+ oldValue = push.lastValue = propValue;
21
+ }
22
+ config.array.push(push);
23
+ getSet(oldValue);
24
+ return oldValue;
25
+ }
26
+ const push = {
27
+ callback: getSet,
28
+ lastValue: propValue,
29
+ watch: propValue,
30
+ };
31
+ config.array.push(push);
32
+ return propValue;
33
+ }
34
+ //# sourceMappingURL=setProp.function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setProp.function.js","sourceRoot":"","sources":["../ts/setProp.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgD,aAAa,EAAmB,MAAM,mBAAmB,CAAA;AAChH,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAE7C,oFAAoF;AACpF,MAAM,UAAU,OAAO,CACrB,MAAmB;IAEnB,MAAM,MAAM,GAAW,MAAM,CAAC,MAAM,CAAC,WAAW,CAAA;IAEhD,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,SAAc,CAAC,CAAA;IAC1C,MAAM,CAAC,SAAS,CAAC,CAAA,CAAC,8CAA8C;IAEhE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IACnD,IAAG,OAAO,EAAE,CAAC;QACX,IAAI,UAAU,GAAG,OAAO,CAAC,KAAU,CAAA;QACnC,IAAI,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAM,CAAA;QAE1C,MAAM,IAAI,GAAuB;YAC/B,QAAQ,EAAE,MAAM;YAChB,SAAS,EAAE,QAAQ;YACnB,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAA;QAED,8BAA8B;QAC9B,IAAG,SAAS,IAAI,UAAU,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAA;YACtB,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QACvC,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEvB,MAAM,CAAC,QAAQ,CAAC,CAAA;QAEhB,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,MAAM,IAAI,GAAuB;QAC/B,QAAQ,EAAE,MAAM;QAChB,SAAS,EAAE,SAAS;QACpB,KAAK,EAAE,SAAS;KACjB,CAAA;IACD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEvB,OAAO,SAAS,CAAA;AAClB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { Tag } from "./Tag.class.js";
2
2
  import { TagSupport } from "./TagSupport.class.js";
3
- import { Config } from "./state";
3
+ import { Config } from "./set.function.js";
4
4
  interface TagUse {
5
5
  beforeRender: (tagSupport: TagSupport, ownerTag: Tag) => void;
6
6
  beforeRedraw: (tagSupport: TagSupport, tag: Tag) => void;
package/js/state.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- export type StateConfig = (x?: any) => [any, any];
2
- type StateConfigItem = {
3
- callback?: StateConfig;
1
+ export type StateConfig<T> = (x: T) => [T, T];
2
+ type StateConfigItem<T> = {
3
+ callback?: StateConfig<T>;
4
4
  lastValue?: any;
5
5
  defaultValue?: any;
6
6
  };
7
- export type StateConfigArray = StateConfigItem[];
7
+ export type StateConfigArray = StateConfigItem<any>[];
8
8
  export type Config = {
9
9
  array: StateConfigArray;
10
10
  rearray: StateConfigArray;
@@ -12,10 +12,11 @@ export type Config = {
12
12
  export type State = {
13
13
  newest: StateConfigArray;
14
14
  };
15
+ export type GetSet<T> = (y: T) => [T, T];
15
16
  /** Used for variables that need to remain the same variable during render passes */
16
- export declare function state<T>(defaultValue: T | (() => T)): (x?: (y: T) => [T, T]) => T;
17
+ export declare function state<T>(defaultValue: T | (() => T)): ((getSet?: GetSet<T>) => T);
17
18
  export declare function onNextStateOnly(callback: () => unknown): void;
18
- export declare function getStateValue(state: StateConfigItem): any;
19
+ export declare function getStateValue<T>(state: StateConfigItem<T>): any;
19
20
  export declare class StateEchoBack {
20
21
  }
21
22
  export {};
package/js/state.js CHANGED
@@ -12,32 +12,34 @@ export function state(defaultValue) {
12
12
  const restate = config.rearray[config.array.length];
13
13
  if (restate) {
14
14
  let oldValue = getStateValue(restate);
15
- getSetMethod = (x => [oldValue, oldValue = x]);
15
+ getSetMethod = ((x) => [oldValue, oldValue = x]);
16
16
  const push = {
17
17
  callback: getSetMethod,
18
18
  lastValue: oldValue,
19
19
  defaultValue: restate.defaultValue,
20
20
  };
21
21
  config.array.push(push);
22
- return (y) => {
23
- push.callback = y || (x => [oldValue, oldValue = x]);
24
- return oldValue;
25
- };
22
+ return makeStateResult(oldValue, push);
26
23
  }
24
+ // State first time run
27
25
  const defaultFn = defaultValue instanceof Function ? defaultValue : () => defaultValue;
28
26
  let initValue = defaultFn();
29
- getSetMethod = (x => [initValue, initValue = x]);
27
+ getSetMethod = ((x) => [initValue, initValue = x]);
30
28
  const push = {
31
29
  callback: getSetMethod,
32
30
  lastValue: initValue,
33
31
  defaultValue: initValue,
34
32
  };
35
33
  config.array.push(push);
34
+ return makeStateResult(initValue, push);
35
+ }
36
+ function makeStateResult(initValue, push) {
36
37
  // return initValue
37
- return (y) => {
38
+ const result = (y) => {
38
39
  push.callback = y || (x => [initValue, initValue = x]);
39
40
  return initValue;
40
41
  };
42
+ return result;
41
43
  }
42
44
  const waitingStates = [];
43
45
  export function onNextStateOnly(callback) {
@@ -87,11 +89,11 @@ state) {
87
89
  const [oldValue] = oldState;
88
90
  const [checkValue] = callback(oldValue); // set back to original value
89
91
  if (checkValue !== StateEchoBack) {
90
- const message = 'State property not used correctly.\n\n' +
91
- 'For "let" state use `let name = state(default, x => [name, name = x])`\n\n' +
92
- 'For "const" state use `const name = state(default)`\n\n' +
93
- 'Problem function:\n' + state + '\n';
94
- // console.error(message, {callback, oldState, oldValue, checkValue})
92
+ const message = 'State property not used correctly. Second item in array is not setting value as expected.\n\n' +
93
+ 'For "let" state use `let name = state(default)(x => [name, name = x])`\n\n' +
94
+ 'For "const" state use `const name = state(default)()`\n\n' +
95
+ 'Problem state:\n' + (callback ? callback.toString() : JSON.stringify(state)) + '\n';
96
+ console.error(message, { state, callback, oldState, oldValue, checkValue });
95
97
  throw new Error(message);
96
98
  }
97
99
  return oldValue;
package/js/state.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../ts/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../ts/state.ts"],"names":[],"mappings":"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"}
package/js/tag.d.ts CHANGED
@@ -1,8 +1,12 @@
1
1
  import { Tag } from "./Tag.class.js";
2
- import { TagComponent } from "./templater.utils.js";
3
2
  import { ValueSubject } from "./ValueSubject.js";
4
3
  export type TagChildren = ValueSubject<Tag[]>;
5
4
  export type TagChildrenInput = Tag[] | Tag | TagChildren;
6
- export declare const tags: TagComponent[];
5
+ export type TagComponentArg<T extends any[]> = (...args: T) => Tag;
6
+ type FirstArgOptional<T extends any[]> = T['length'] extends 0 ? true : false;
7
+ export type TagComponentBase<T extends any[]> = (arg: FirstArgOptional<T> extends true ? (T[0] | void) : T[0], children?: TagChildrenInput) => Tag;
8
+ export declare const tags: TagComponentBase<any>[];
9
+ export type TagComponent = TagComponentBase<[any?, TagChildren?]> | TagComponentBase<[]>;
7
10
  /** Wraps a tag component in a state manager and always push children to last argument as any array */
8
- export declare function tag<T>(tagComponent: (((props: T, children: TagChildren) => Tag) | ((props: T) => Tag) | (() => Tag))): ((props?: T, children?: TagChildrenInput) => Tag);
11
+ export declare function tag<T extends any[]>(tagComponent: TagComponentArg<T>): (TagComponentBase<T>);
12
+ export {};
package/js/tag.js CHANGED
@@ -3,9 +3,12 @@ import { setUse } from "./setUse.function.js";
3
3
  import { TemplaterResult, alterProps } from "./templater.utils.js";
4
4
  import { ValueSubject } from "./ValueSubject.js";
5
5
  import { runTagCallback } from "./bindSubjectCallback.function.js";
6
+ import { deepClone } from "./deepFunctions.js";
7
+ import { TagSupport } from "./TagSupport.class.js";
6
8
  export const tags = [];
7
9
  let tagCount = 0;
8
10
  /** Wraps a tag component in a state manager and always push children to last argument as any array */
11
+ // export function tag<T>(a: T): T;
9
12
  export function tag(tagComponent) {
10
13
  const result = (function tagWrapper(props, children) {
11
14
  const isPropTag = isTagInstance(props) || isTagArray(props);
@@ -14,16 +17,47 @@ export function tag(tagComponent) {
14
17
  props = undefined;
15
18
  }
16
19
  const { childSubject, madeSubject } = kidsToTagArraySubject(children);
20
+ childSubject.isChildSubject = true;
17
21
  const templater = new TemplaterResult(props, childSubject);
18
- if (!isPropTag) {
19
- // wrap props that are functions
20
- alterProps(props, templater);
21
- }
22
22
  function innerTagWrap() {
23
23
  const originalFunction = innerTagWrap.original;
24
- const props = templater.tagSupport.props;
25
- const tag = originalFunction(props, childSubject);
26
- tag.setSupport(templater.tagSupport);
24
+ const oldTagSetup = templater.tagSupport;
25
+ const oldest = templater.oldest;
26
+ let props = oldTagSetup.propsConfig.latest;
27
+ let castedProps = alterProps(props, templater);
28
+ // CALL ORIGINAL COMPONENT FUNCTION
29
+ const tag = originalFunction(castedProps, childSubject);
30
+ if (oldTagSetup.mutatingRender === TagSupport.prototype.mutatingRender) {
31
+ oldTagSetup.oldest = tag;
32
+ // tag.tagSupport = oldTagSetup
33
+ oldTagSetup.mutatingRender = () => {
34
+ const exit = oldTagSetup.renderExistingTag(tag, templater);
35
+ if (exit) {
36
+ return tag;
37
+ }
38
+ if (tag.ownerTag) {
39
+ const newest = tag.ownerTag.tagSupport.render();
40
+ tag.ownerTag.tagSupport.newest = newest;
41
+ return tag;
42
+ }
43
+ return tag;
44
+ };
45
+ }
46
+ tag.tagSupport = new TagSupport(templater, oldTagSetup.children);
47
+ const clonedProps = deepClone(castedProps); // castedProps
48
+ tag.tagSupport.propsConfig = {
49
+ latest: props, // castedProps
50
+ latestCloned: clonedProps,
51
+ clonedProps: clonedProps,
52
+ lastClonedKidValues: tag.tagSupport.propsConfig.lastClonedKidValues,
53
+ };
54
+ tag.tagSupport.memory = oldTagSetup.memory;
55
+ tag.tagSupport.mutatingRender = oldTagSetup.mutatingRender;
56
+ oldTagSetup.newest = tag;
57
+ oldTagSetup.propsConfig = { ...tag.tagSupport.propsConfig };
58
+ if (oldest) {
59
+ oldest.tagSupport.propsConfig = { ...tag.tagSupport.propsConfig };
60
+ }
27
61
  if (madeSubject) {
28
62
  childSubject.value.forEach(kid => {
29
63
  kid.values.forEach((value, index) => {
@@ -77,7 +111,7 @@ function updateResult(result, tagComponent) {
77
111
  function updateComponent(tagComponent) {
78
112
  tagComponent.tags = tags;
79
113
  tagComponent.setUse = setUse;
80
- tagComponent.tagIndex = ++tagCount;
114
+ tagComponent.tagIndex = ++tagCount; // needed for things like HMR
81
115
  }
82
116
  class NoPropsGiven {
83
117
  }
package/js/tag.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tag.js","sourceRoot":"","sources":["../ts/tag.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tag.js","sourceRoot":"","sources":["../ts/tag.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { TagSupport } from "./TagSupport.class.js";
2
- import { TagComponent, TemplaterResult } from "./templater.utils.js";
2
+ import { TemplaterResult } from "./templater.utils.js";
3
3
  import { Tag } from "./Tag.class.js";
4
+ import { TagComponent } from "./tag.js";
4
5
  export declare function tagElement(app: TagComponent, // (...args: unknown[]) => TemplaterResult,
5
6
  element: HTMLElement | Element, props: unknown): {
6
7
  tag: Tag;
package/js/tagElement.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { runAfterRender, runBeforeRedraw, runBeforeRender } from "./tagRunner.js";
2
+ import { providersChangeCheck } from "./provider.utils.js";
2
3
  const appElements = [];
3
4
  export function tagElement(app, // (...args: unknown[]) => TemplaterResult,
4
5
  element, props) {
@@ -14,8 +15,10 @@ element, props) {
14
15
  // have a function setup and call the tagWrapper with (props, {update, async, on})
15
16
  const result = applyTagUpdater(wrapper);
16
17
  const { tag, tagSupport } = result;
18
+ // wrapper.tagSupport = tagSupport
17
19
  tag.appElement = element;
18
- addAppTagRender(tagSupport, tag);
20
+ tag.tagSupport.oldest = tag;
21
+ addAppTagRender(tag.tagSupport, tag);
19
22
  const templateElm = document.createElement('template');
20
23
  templateElm.setAttribute('tag-detail', 'app-template-placeholder');
21
24
  element.appendChild(templateElm);
@@ -29,22 +32,27 @@ export function applyTagUpdater(wrapper) {
29
32
  runBeforeRender(tagSupport, undefined);
30
33
  // Call the apps function for our tag templater
31
34
  const tag = wrapper.wrapper();
32
- tag.tagSupport = tagSupport;
33
- runAfterRender(tag.tagSupport, tag);
35
+ runAfterRender(tagSupport, tag);
34
36
  return { tag, tagSupport };
35
37
  }
36
38
  /** Overwrites arguments.tagSupport.mutatingRender */
37
39
  export function addAppTagRender(tagSupport, tag) {
38
- let lastTag;
40
+ let lastTag = tag;
39
41
  tagSupport.mutatingRender = () => {
42
+ const preRenderCount = tagSupport.memory.renderCount;
43
+ providersChangeCheck(tag);
44
+ // When the providers were checked, a render to myself occurred and I do not need to re-render again
45
+ if (preRenderCount !== tagSupport.memory.renderCount) {
46
+ return lastTag;
47
+ }
40
48
  runBeforeRedraw(tag.tagSupport, tag);
41
49
  const templater = tagSupport.templater; // wrapper
42
50
  const fromTag = lastTag = templater.wrapper();
43
- tagSupport.latestProps = fromTag.tagSupport.props;
44
- tagSupport.latestClonedProps = fromTag.tagSupport.clonedProps;
45
- fromTag.setSupport(tagSupport);
51
+ fromTag.tagSupport.memory = tagSupport.memory;
52
+ tagSupport.propsConfig = { ...fromTag.tagSupport.propsConfig };
53
+ tag.tagSupport.newest = fromTag;
46
54
  runAfterRender(tag.tagSupport, tag);
47
- tag.updateByTag(fromTag);
55
+ tagSupport.oldest.updateByTag(fromTag);
48
56
  tagSupport.newest = fromTag;
49
57
  return lastTag;
50
58
  };
@@ -1 +1 @@
1
- {"version":3,"file":"tagElement.js","sourceRoot":"","sources":["../ts/tagElement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tagElement.js","sourceRoot":"","sources":["../ts/tagElement.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import { Tag } from "./Tag.class.js";
2
2
  import { TagSupport } from "./TagSupport.class.js";
3
3
  import { Props } from "./Props.js";
4
- import { ValueSubject } from "./ValueSubject.js";
5
4
  import { TagChildren } from "./tag.js";
6
5
  export type Wrapper = (() => Tag) & {
7
6
  original: () => Tag;
@@ -24,6 +23,4 @@ export declare class TemplaterResult {
24
23
  export interface TemplateRedraw extends TemplaterResult {
25
24
  redraw: () => Tag | undefined;
26
25
  }
27
- export type TagComponent = (props: Props, // props or children
28
- children?: ValueSubject<Tag[]>) => Tag;
29
26
  export declare function alterProps(props: Props, templater: TemplaterResult): any;