taggedjs 2.3.28 → 2.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
@@ -5,6 +5,7 @@ import { processTagArray } from "./processTagArray.js";
5
5
  import { TagSupport } from "./TagSupport.class.js";
6
6
  import { updateBetweenTemplates } from "./interpolateTemplate.js";
7
7
  import { ValueSubject } from "./ValueSubject.js";
8
+ import { processRegularValue } from "./processRegularValue.function.js";
8
9
  var ValueTypes;
9
10
  (function (ValueTypes) {
10
11
  ValueTypes["tag"] = "tag";
@@ -26,32 +27,28 @@ function getValueType(value) {
26
27
  }
27
28
  export function processSubjectValue(value, result, // could be tag via result.tag
28
29
  template, // <template end interpolate /> (will be removed)
29
- tag, // owner
30
+ ownerTag, // owner
30
31
  options) {
31
32
  const valueType = getValueType(value);
32
33
  // Previously was simple value, now its a tag of some sort
33
34
  const resultTag = result;
34
35
  const clone = resultTag.clone;
35
- if (valueType !== ValueTypes.value && clone) {
36
- const parent = clone.parentNode;
37
- template.removeAttribute('removedAt');
38
- parent.insertBefore(template, clone);
39
- parent.removeChild(clone);
40
- delete resultTag.clone;
41
- // result.clone = template
36
+ const noLongerSimpleValue = valueType !== ValueTypes.value && clone;
37
+ if (noLongerSimpleValue) {
38
+ destroySimpleValue(template, resultTag);
42
39
  }
43
40
  switch (valueType) {
44
41
  case ValueTypes.tag:
45
42
  return {
46
- clones: processTag(value, result, template, tag, options)
43
+ clones: processTag(value, result, template, ownerTag, options)
47
44
  };
48
45
  case ValueTypes.tagArray:
49
46
  return {
50
- clones: processTagArray(result, value, template, tag, options)
47
+ clones: processTagArray(result, value, template, ownerTag, options)
51
48
  };
52
49
  case ValueTypes.tagComponent:
53
50
  return {
54
- clones: processSubjectComponent(value, result, template, tag, options)
51
+ clones: processSubjectComponent(value, result, template, ownerTag, options)
55
52
  };
56
53
  }
57
54
  // *if processing WAS a tag BUT NOW its some other non-tag value
@@ -62,43 +59,25 @@ options) {
62
59
  };
63
60
  }
64
61
  return {
65
- clones: processRegularValue(value, result, template, tag)
62
+ clones: processRegularValue(value, result, template, ownerTag)
66
63
  };
67
64
  }
68
- function processRegularValue(value, result, // could be tag via result.tag
69
- template, // <template end interpolate /> (will be removed)
70
- tag) {
71
- const before = result.clone || template; // Either the template is on the doc OR its the first element we last put on doc
72
- // Processing of regular values
73
- const clone = updateBetweenTemplates(value, before);
74
- result.clone = clone; // remember single element put down, for future updates
75
- const clones = [];
76
- const oldPos = tag.clones.indexOf(before); // is the insertBefore guide being considered one of the tags clones?
77
- const isOnlyGuideInClones = oldPos >= 0 && !tag.clones.includes(clone);
78
- const exchangeGuideForClone = isOnlyGuideInClones && !before.parentNode; // guide is in clones AND guide is not on the document
79
- if (exchangeGuideForClone) {
80
- tag.clones.splice(oldPos, 1); // remove insertBefore guide from tag
81
- tag.clones.push(clone); // exchange guide for element actually on document
82
- clones.push(clone); // record the one element that in the end is on the document
83
- }
84
- return clones;
85
- }
86
65
  export function processTag(value, result, // could be tag via result.tag
87
66
  template, // <template end interpolate /> (will be removed)
88
- tag, // owner
67
+ ownerTag, // owner
89
68
  options) {
90
69
  // first time seeing this tag?
91
70
  if (!value.tagSupport) {
92
71
  value.tagSupport = new TagSupport({}, // the template is provided via html`` call
93
72
  new ValueSubject([]));
94
73
  // asking me to render will cause my parent to render
95
- value.tagSupport.mutatingRender = tag.tagSupport.mutatingRender;
74
+ value.tagSupport.mutatingRender = () => {
75
+ ownerTag.tagSupport.render();
76
+ };
96
77
  value.tagSupport.oldest = value.tagSupport.oldest || value;
97
- tag.children.push(value);
98
- value.ownerTag = tag;
99
- result.sideTag = tag;
78
+ ownerTag.children.push(value);
79
+ value.ownerTag = ownerTag;
100
80
  }
101
- // (result as any).template = template
102
81
  result.template = template;
103
82
  const clones = processTagResult(value, result, // Function will attach result.tag
104
83
  template, options);
@@ -113,16 +92,23 @@ options) {
113
92
  // const parentNode = lastFirstChild.parentNode || template.parentNode
114
93
  // put the template back down
115
94
  lastFirstChild.parentNode.insertBefore(template, lastFirstChild);
95
+ const clone = updateBetweenTemplates(value,
96
+ // template // template, // this will be removed from document inside this function
97
+ lastFirstChild);
98
+ result.clone = clone;
116
99
  // cleanup old
117
- if (result.clone) {
118
- result.clone.parentNode.removeChild(result.clone);
119
- }
120
100
  delete result.tag;
101
+ /* destroy logic */
121
102
  const stagger = options.counts.removed;
122
103
  const promise = tag.destroy({ stagger }).then(animated => options.counts.removed = stagger + animated);
123
- delete result.tag;
124
- const clone = updateBetweenTemplates(value, template);
125
- result.clone = clone;
104
+ /* end: destroy logic */
126
105
  return promise;
127
106
  }
107
+ export function destroySimpleValue(template, resultTag) {
108
+ const clone = resultTag.clone;
109
+ const parent = clone.parentNode;
110
+ parent.insertBefore(template, clone);
111
+ parent.removeChild(clone);
112
+ delete resultTag.clone;
113
+ }
128
114
  //# sourceMappingURL=processSubjectValue.function.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"processSubjectValue.function.js","sourceRoot":"","sources":["../ts/processSubjectValue.function.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processSubjectValue.function.js","sourceRoot":"","sources":["../ts/processSubjectValue.function.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ export type LastArrayItem = {
9
9
  export type TagArraySubject = ValueSubject<Tag[]> & {
10
10
  lastArray: LastArrayItem[];
11
11
  template: Element;
12
+ isChildSubject?: boolean;
12
13
  };
13
14
  export declare function processTagArray(result: TagArraySubject, value: Tag[], // arry of Tag classes
14
15
  template: Element, // <template end interpolate />
@@ -1,6 +1,5 @@
1
1
  import { ValueSubject } from "./ValueSubject.js";
2
2
  import { TagSupport } from "./TagSupport.class.js";
3
- import { processTagResult } from "./processTagResult.function.js";
4
3
  import { ArrayNoKeyError } from "./errors.js";
5
4
  export function processTagArray(result, value, // arry of Tag classes
6
5
  template, // <template end interpolate />
@@ -16,7 +15,7 @@ ownerTag, options) {
16
15
  const lessLength = newLength < at;
17
16
  const subTag = value[index - removed];
18
17
  const subArrayValue = subTag?.arrayValue;
19
- const destroyItem = lessLength || subArrayValue !== item.tag.arrayValue;
18
+ const destroyItem = lessLength || !areLikeValues(subArrayValue, item.tag.arrayValue);
20
19
  if (destroyItem) {
21
20
  const last = result.lastArray[index];
22
21
  const tag = last.tag;
@@ -33,13 +32,20 @@ ownerTag, options) {
33
32
  // const masterBefore = template || (template as any).clone
34
33
  const before = template || template.clone;
35
34
  value.forEach((subTag, index) => {
36
- subTag.tagSupport = new TagSupport({}, new ValueSubject([]));
37
- subTag.tagSupport.mutatingRender = () => {
38
- ownerTag.tagSupport.render();
39
- return subTag;
40
- }; // fake having a render function
35
+ const previous = result.lastArray[index];
36
+ const previousSupport = subTag.tagSupport || previous?.tag.tagSupport;
37
+ subTag.tagSupport = previousSupport || new TagSupport({}, new ValueSubject([]));
38
+ if (previousSupport) {
39
+ previousSupport.newest = subTag;
40
+ }
41
+ else {
42
+ subTag.tagSupport.mutatingRender = () => {
43
+ ownerTag.tagSupport.render(); // call owner for needed updates
44
+ return subTag;
45
+ };
46
+ ownerTag.children.push(subTag);
47
+ }
41
48
  subTag.ownerTag = ownerTag;
42
- ownerTag.children.push(subTag);
43
49
  // check for html``.key()
44
50
  const keyNotSet = subTag.arrayValue;
45
51
  if (keyNotSet?.isArrayValueNeverSet) {
@@ -53,20 +59,44 @@ ownerTag, options) {
53
59
  const err = new ArrayNoKeyError(message, details);
54
60
  throw err;
55
61
  }
56
- const previous = result.lastArray[index];
57
- if (previous) {
58
- const isSame = previous.tag.arrayValue === subTag.arrayValue;
62
+ const couldBeSame = result.lastArray.length > index;
63
+ if (couldBeSame) {
64
+ const isSame = areLikeValues(previous.tag.arrayValue, subTag.arrayValue);
59
65
  if (isSame) {
60
- previous.tag.updateValues(subTag.values);
66
+ subTag.tagSupport = subTag.tagSupport || previous.tag.tagSupport;
67
+ previous.tag.updateByTag(subTag);
68
+ return [];
61
69
  }
62
70
  return [];
63
71
  }
64
- const nextClones = processTagResult(subTag, result, before, {
65
- index,
66
- ...options,
67
- });
72
+ const nextClones = processAddTagArrayItem(before, subTag, result, index, options);
68
73
  clones.push(...nextClones);
69
74
  });
70
75
  return clones;
71
76
  }
77
+ function processAddTagArrayItem(before, subTag, result, index, options) {
78
+ // Added to previous array
79
+ result.lastArray.push({
80
+ tag: subTag, index
81
+ });
82
+ const counts = {
83
+ added: options.counts.added + index,
84
+ removed: options.counts.removed,
85
+ };
86
+ const lastFirstChild = before; // tag.clones[0] // insertBefore.lastFirstChild
87
+ const nextClones = subTag.buildBeforeElement(lastFirstChild, { counts, forceElement: options.forceElement });
88
+ return nextClones;
89
+ }
90
+ /** compare two values. If both values are arrays then the items will be compared */
91
+ function areLikeValues(valueA, valueB) {
92
+ if (valueA === valueB) {
93
+ return true;
94
+ }
95
+ const bothArrays = valueA instanceof Array && valueB instanceof Array;
96
+ const matchLengths = bothArrays && valueA.length == valueB.length;
97
+ if (matchLengths) {
98
+ return valueA.every((item, index) => item == valueB[index]);
99
+ }
100
+ return false;
101
+ }
72
102
  //# sourceMappingURL=processTagArray.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"processTagArray.js","sourceRoot":"","sources":["../ts/processTagArray.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processTagArray.js","sourceRoot":"","sources":["../ts/processTagArray.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,7 @@ import { TagArraySubject } from "./processTagArray.js";
5
5
  import { TagSubject } from "./Tag.utils.js";
6
6
  export declare function processTagResult(tag: Tag, result: TagArraySubject | TagSubject | Function, // used for recording past and current value
7
7
  insertBefore: Element, // <template end interpolate />
8
- { index, counts, forceElement, }: {
9
- index?: number;
8
+ { counts, forceElement, }: {
10
9
  counts: Counts;
11
10
  forceElement?: boolean;
12
11
  }): Clones;
@@ -1,22 +1,6 @@
1
1
  export function processTagResult(tag, result, // used for recording past and current value
2
2
  insertBefore, // <template end interpolate />
3
- { index, counts, forceElement, }) {
4
- // *for
5
- if (index !== undefined) {
6
- const resultArray = result.lastArray;
7
- const existing = resultArray[index];
8
- if (existing?.tag.isLikeTag(tag)) {
9
- existing.tag.updateByTag(tag);
10
- return [];
11
- }
12
- // Added to previous array
13
- resultArray.push({
14
- tag, index
15
- });
16
- const lastFirstChild = insertBefore; // tag.clones[0] // insertBefore.lastFirstChild
17
- const clones = tag.buildBeforeElement(lastFirstChild, { counts, forceElement });
18
- return clones;
19
- }
3
+ { counts, forceElement, }) {
20
4
  // *if appears we already have seen
21
5
  const subjectTag = result;
22
6
  const rTag = subjectTag.tag;
@@ -1 +1 @@
1
- {"version":3,"file":"processTagResult.function.js","sourceRoot":"","sources":["../ts/processTagResult.function.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,gBAAgB,CAC9B,GAAQ,EACR,MAA+C,EAAE,4CAA4C;AAC7F,YAAqB,EAAE,+BAA+B;AACtD,EACE,KAAK,EAAE,MAAM,EAAE,YAAY,GAK5B;IAED,OAAO;IACP,IAAG,KAAK,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,WAAW,GAAI,MAA0B,CAAC,SAAS,CAAA;QACzD,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;QAEnC,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;QAGD,0BAA0B;QAC1B,WAAW,CAAC,IAAI,CAAC;YACf,GAAG,EAAE,KAAK;SACX,CAAC,CAAA;QAEF,MAAM,cAAc,GAAG,YAAY,CAAA,CAAC,mDAAmD;QACvF,MAAM,MAAM,GAAG,GAAG,CAAC,kBAAkB,CAAC,cAAc,EAAE,EAAC,MAAM,EAAE,YAAY,EAAC,CAAC,CAAA;QAE7E,OAAO,MAAM,CAAA;IACf,CAAC;IAED,mCAAmC;IACnC,MAAM,UAAU,GAAG,MAAoB,CAAA;IACvC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAA;IAC3B,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,UAAU,CAAC,GAAG,GAAG,GAAG,CAAA,CAAC,wDAAwD;IAE7E,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"processTagResult.function.js","sourceRoot":"","sources":["../ts/processTagResult.function.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,gBAAgB,CAC9B,GAAQ,EACR,MAA+C,EAAE,4CAA4C;AAC7F,YAAqB,EAAE,+BAA+B;AACtD,EACE,MAAM,EAAE,YAAY,GAIrB;IAED,mCAAmC;IACnC,MAAM,UAAU,GAAG,MAAoB,CAAA;IACvC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAA;IAC3B,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,UAAU,CAAC,GAAG,GAAG,GAAG,CAAA,CAAC,wDAAwD;IAE7E,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { GetSet } from "./set.function";
2
+ export declare function propState<T>(watchPropValue: T, getSet: GetSet<T>): void;
@@ -0,0 +1,3 @@
1
+ export function propState(watchPropValue, getSet) {
2
+ }
3
+ //# sourceMappingURL=propState.function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"propState.function.js","sourceRoot":"","sources":["../ts/propState.function.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS,CACvB,cAAiB,EACjB,MAAiB;AAGnB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Tag } from "./Tag.class.js";
2
+ export declare function providersChangeCheck(tag: Tag): void;
@@ -0,0 +1,34 @@
1
+ import { deepClone, deepEqual } from "./deepFunctions.js";
2
+ export function providersChangeCheck(tag) {
3
+ const providersWithChanges = tag.tagSupport.memory.providers.filter(provider => !deepEqual(provider.instance, provider.clone));
4
+ // reset clones
5
+ providersWithChanges.forEach(provider => {
6
+ const appElement = tag.getAppElement();
7
+ handleProviderChanges(appElement, provider);
8
+ provider.clone = deepClone(provider.instance);
9
+ });
10
+ }
11
+ function handleProviderChanges(appElement, provider) {
12
+ const tagsWithProvider = getTagsWithProvider(appElement, provider);
13
+ tagsWithProvider.forEach(({ tag, renderCount, provider }) => {
14
+ const notRendered = renderCount === tag.tagSupport.memory.renderCount;
15
+ if (notRendered) {
16
+ provider.clone = deepClone(provider.instance);
17
+ tag.tagSupport.render();
18
+ }
19
+ });
20
+ }
21
+ function getTagsWithProvider(tag, provider, memory = []) {
22
+ const compare = tag.tagSupport.memory.providers;
23
+ const hasProvider = compare.find(xProvider => xProvider.constructMethod === provider.constructMethod);
24
+ if (hasProvider) {
25
+ memory.push({
26
+ tag,
27
+ renderCount: tag.tagSupport.memory.renderCount,
28
+ provider: hasProvider
29
+ });
30
+ }
31
+ tag.children.forEach(child => getTagsWithProvider(child, provider, memory));
32
+ return memory;
33
+ }
34
+ //# sourceMappingURL=provider.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.utils.js","sourceRoot":"","sources":["../ts/provider.utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAGzD,MAAM,UAAU,oBAAoB,CAAC,GAAQ;IAC3C,MAAM,oBAAoB,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAC7E,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAC9C,CAAA;IAED,eAAe;IACf,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QACtC,MAAM,UAAU,GAAG,GAAG,CAAC,aAAa,EAAE,CAAA;QAEtC,qBAAqB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAE3C,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,UAAe,EACf,QAAkB;IAElB,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IAElE,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAC,EAAE,EAAE;QACxD,MAAM,WAAW,GAAG,WAAW,KAAK,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAA;QACrE,IAAG,WAAW,EAAE,CAAC;YACf,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YAC7C,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,CAAA;QACzB,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,GAAQ,EACR,QAAkB,EAClB,SAIM,EAAE;IAER,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAA;IAE/C,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAC9B,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,eAAe,KAAK,QAAQ,CAAC,eAAe,CACpE,CAAA;IAED,IAAG,WAAW,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC;YACV,GAAG;YACH,WAAW,EAAE,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW;YAC9C,QAAQ,EAAE,WAAW;SACtB,CAAC,CAAA;IACJ,CAAC;IAED,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAA;IAE3E,OAAO,MAAM,CAAA;AACf,CAAC"}
package/js/providers.d.ts CHANGED
@@ -3,6 +3,7 @@ export type Provider = {
3
3
  instance: any;
4
4
  clone: any;
5
5
  };
6
+ type ProviderConstructor<T> = (new (...args: any[]) => T) | (() => T);
6
7
  type functionProvider = <T>() => T;
7
8
  type classProvider = new <T>(...args: any[]) => T;
8
9
  export declare const providers: {
@@ -12,6 +13,6 @@ export declare const providers: {
12
13
  * @param {(new (...args: any[]) => T) | () => T} constructor
13
14
  * @returns {T}
14
15
  */
15
- inject: (constructor: any) => any;
16
+ inject: <T_1>(constructor: ProviderConstructor<T_1>) => T_1;
16
17
  };
17
18
  export {};
package/js/providers.js CHANGED
@@ -3,7 +3,7 @@ import { setUse } from "./setUse.function.js";
3
3
  // TODO: rename
4
4
  setUse.memory.providerConfig = {
5
5
  providers: [],
6
- currentTagSupport: undefined,
6
+ //currentTagSupport: undefined as TagSupport | undefined,
7
7
  ownerTag: undefined,
8
8
  };
9
9
  function get(constructMethod) {
@@ -76,7 +76,7 @@ setUse({
76
76
  });
77
77
  function run(tagSupport, ownerTag) {
78
78
  const config = setUse.memory.providerConfig;
79
- config.currentTagSuport = tagSupport;
79
+ // config.currentTagSupport = tagSupport
80
80
  config.ownerTag = ownerTag;
81
81
  if (tagSupport.memory.providers.length) {
82
82
  config.providers.length = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"providers.js","sourceRoot":"","sources":["../ts/providers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../ts/providers.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
+ import { TagSupport } from "./TagSupport.class.js";
1
2
  import { TemplaterResult } from "./templater.utils.js";
2
3
  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): {
4
+ export declare function redrawTag(tagSupport: TagSupport, templater: TemplaterResult, // latest tag function to call for rendering
5
+ existingTag?: Tag, ownerTag?: Tag): {
5
6
  remit: boolean;
6
7
  retag: Tag;
7
8
  };
@@ -1,8 +1,5 @@
1
- import { TagSupport } from "./TagSupport.class.js";
2
- export function redrawTag(existingTag, templater, // latest tag function to call for rendering
3
- ownerTag) {
4
- // TODO: The or condition here may not be needed since its an obvious "re"draw
5
- const tagSupport = existingTag?.tagSupport || new TagSupport(templater, templater.tagSupport.children);
1
+ export function redrawTag(tagSupport, templater, // latest tag function to call for rendering
2
+ existingTag, ownerTag) {
6
3
  const result = templater.renderWithSupport(tagSupport, existingTag, ownerTag);
7
4
  return result;
8
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"redrawTag.function.js","sourceRoot":"","sources":["../ts/redrawTag.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAIlD,MAAM,UAAU,SAAS,CACvB,WAA4B,EAC5B,SAA0B,EAAE,4CAA4C;AACxE,QAAc;IAEd,8EAA8E;IAC9E,MAAM,UAAU,GAAG,WAAW,EAAE,UAAU,IAAI,IAAI,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;IAEtG,MAAM,MAAM,GAAG,SAAS,CAAC,iBAAiB,CACxC,UAAU,EACV,WAAW,EACX,QAAQ,CACT,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"redrawTag.function.js","sourceRoot":"","sources":["../ts/redrawTag.function.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,SAAS,CACvB,UAAsB,EACtB,SAA0B,EAAE,4CAA4C;AACxE,WAAiB,EACjB,QAAc;IAEd,MAAM,MAAM,GAAG,SAAS,CAAC,iBAAiB,CACxC,UAAU,EACV,WAAW,EACX,QAAQ,CACT,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -0,0 +1,23 @@
1
+ export type StateConfig<T> = (x: T) => [T, T];
2
+ export type StateConfigItem<T> = {
3
+ callback?: StateConfig<T>;
4
+ lastValue?: T;
5
+ defaultValue?: T;
6
+ watch?: T;
7
+ };
8
+ export type StateConfigArray = StateConfigItem<any>[];
9
+ export type Config = {
10
+ array: StateConfigArray;
11
+ rearray: StateConfigArray;
12
+ };
13
+ export type State = {
14
+ newest: StateConfigArray;
15
+ };
16
+ export type GetSet<T> = (y: T) => [T, T];
17
+ export declare function makeStateResult<T>(initValue: T, push: StateConfigItem<T>): (y: any) => T;
18
+ export declare function onNextStateOnly(callback: () => unknown): void;
19
+ export declare function getStateValue<T>(state: StateConfigItem<T>): T | undefined;
20
+ export declare class StateEchoBack {
21
+ }
22
+ /** Used for variables that need to remain the same variable during render passes */
23
+ export declare function set<T>(defaultValue: T | (() => T)): T;