taggedjs 2.5.24 → 2.6.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 (347) hide show
  1. package/bundle.js +1 -1
  2. package/bundle.js.map +1 -1
  3. package/js/RegularValue.type.d.ts +1 -0
  4. package/js/RegularValue.type.js +2 -0
  5. package/js/RegularValue.type.js.map +1 -0
  6. package/js/alterProp.function.d.ts +7 -7
  7. package/js/alterProp.function.js +71 -73
  8. package/js/alterProp.function.js.map +1 -1
  9. package/js/deepFunctions.d.ts +2 -2
  10. package/js/deepFunctions.js +25 -33
  11. package/js/deepFunctions.js.map +1 -1
  12. package/js/index.d.ts +6 -9
  13. package/js/index.js +6 -10
  14. package/js/index.js.map +1 -1
  15. package/js/interpolations/attributes/ElementTargetEvent.interface.d.ts +6 -0
  16. package/js/interpolations/attributes/ElementTargetEvent.interface.js +2 -0
  17. package/js/interpolations/attributes/ElementTargetEvent.interface.js.map +1 -0
  18. package/js/interpolations/attributes/addSupportEventListener.function.d.ts +3 -0
  19. package/js/interpolations/attributes/addSupportEventListener.function.js +42 -0
  20. package/js/interpolations/attributes/addSupportEventListener.function.js.map +1 -0
  21. package/js/interpolations/attributes/bindSubjectCallback.function.d.ts +13 -0
  22. package/js/interpolations/attributes/bindSubjectCallback.function.js +74 -0
  23. package/js/interpolations/attributes/bindSubjectCallback.function.js.map +1 -0
  24. package/js/interpolations/attributes/elementInitCheck.d.ts +2 -0
  25. package/js/interpolations/attributes/elementInitCheck.js +18 -0
  26. package/js/interpolations/attributes/elementInitCheck.js.map +1 -0
  27. package/js/interpolations/attributes/getUpTags.function.d.ts +2 -0
  28. package/js/interpolations/attributes/getUpTags.function.js +35 -0
  29. package/js/interpolations/attributes/getUpTags.function.js.map +1 -0
  30. package/js/interpolations/attributes/howToSetInputValue.function.d.ts +2 -0
  31. package/js/interpolations/attributes/howToSetInputValue.function.js +11 -0
  32. package/js/interpolations/attributes/howToSetInputValue.function.js.map +1 -0
  33. package/js/interpolations/attributes/isSpecialAttribute.function.d.ts +3 -0
  34. package/js/interpolations/attributes/isSpecialAttribute.function.js +26 -0
  35. package/js/interpolations/attributes/isSpecialAttribute.function.js.map +1 -0
  36. package/js/interpolations/attributes/processAttribute.function.d.ts +19 -0
  37. package/js/interpolations/attributes/processAttribute.function.js +175 -0
  38. package/js/interpolations/attributes/processAttribute.function.js.map +1 -0
  39. package/js/interpolations/attributes/processAttributeCallback.function.d.ts +3 -0
  40. package/js/interpolations/attributes/processAttributeCallback.function.js +12 -0
  41. package/js/interpolations/attributes/processAttributeCallback.function.js.map +1 -0
  42. package/js/interpolations/attributes/processNameValueAttribute.function.d.ts +7 -0
  43. package/js/interpolations/attributes/processNameValueAttribute.function.js +24 -0
  44. package/js/interpolations/attributes/processNameValueAttribute.function.js.map +1 -0
  45. package/js/interpolations/attributes/renderTagArray.function.d.ts +2 -0
  46. package/js/interpolations/attributes/renderTagArray.function.js +17 -0
  47. package/js/interpolations/attributes/renderTagArray.function.js.map +1 -0
  48. package/js/interpolations/attributes/specialAttribute.d.ts +2 -0
  49. package/js/interpolations/attributes/specialAttribute.js +44 -0
  50. package/js/interpolations/attributes/specialAttribute.js.map +1 -0
  51. package/js/interpolations/bindSubjectCallback.function.d.ts +8 -7
  52. package/js/interpolations/bindSubjectCallback.function.js +13 -46
  53. package/js/interpolations/bindSubjectCallback.function.js.map +1 -1
  54. package/js/interpolations/index.d.ts +2 -0
  55. package/js/interpolations/index.js +3 -0
  56. package/js/interpolations/index.js.map +1 -0
  57. package/js/interpolations/interpolateAttributes.d.ts +0 -3
  58. package/js/interpolations/interpolateAttributes.js +2 -14
  59. package/js/interpolations/interpolateAttributes.js.map +1 -1
  60. package/js/interpolations/interpolateTemplate.d.ts +1 -4
  61. package/js/interpolations/interpolateTemplate.js +1 -29
  62. package/js/interpolations/interpolateTemplate.js.map +1 -1
  63. package/js/interpolations/optimizers/LikeObjectElement.type.d.ts +15 -0
  64. package/js/interpolations/optimizers/LikeObjectElement.type.js +2 -0
  65. package/js/interpolations/optimizers/LikeObjectElement.type.js.map +1 -0
  66. package/js/interpolations/optimizers/ObjectNode.types.d.ts +21 -14
  67. package/js/interpolations/optimizers/attachDomElements.function.d.ts +13 -0
  68. package/js/interpolations/optimizers/attachDomElements.function.js +107 -0
  69. package/js/interpolations/optimizers/attachDomElements.function.js.map +1 -0
  70. package/js/interpolations/optimizers/exchangeParsedForValues.function.d.ts +15 -0
  71. package/js/interpolations/optimizers/exchangeParsedForValues.function.js +2 -0
  72. package/js/interpolations/optimizers/exchangeParsedForValues.function.js.map +1 -0
  73. package/js/interpolations/optimizers/htmlInterpolationToDomMeta.function.d.ts +4 -3
  74. package/js/interpolations/optimizers/htmlInterpolationToDomMeta.function.js +121 -56
  75. package/js/interpolations/optimizers/htmlInterpolationToDomMeta.function.js.map +1 -1
  76. package/js/interpolations/optimizers/metaAttachDomElements.function.d.ts +9 -3
  77. package/js/interpolations/optimizers/metaAttachDomElements.function.js +82 -36
  78. package/js/interpolations/optimizers/metaAttachDomElements.function.js.map +1 -1
  79. package/js/interpolations/optimizers/replacePlaceholders.function.d.ts +3 -2
  80. package/js/interpolations/optimizers/replacePlaceholders.function.js +38 -59
  81. package/js/interpolations/optimizers/replacePlaceholders.function.js.map +1 -1
  82. package/js/interpolations/optimizers/restorePlaceholders.function.d.ts +1 -1
  83. package/js/interpolations/optimizers/restorePlaceholders.function.js +14 -13
  84. package/js/interpolations/optimizers/restorePlaceholders.function.js.map +1 -1
  85. package/js/interpolations/optimizers/test.function.d.ts +10 -0
  86. package/js/interpolations/optimizers/test.function.js +19 -0
  87. package/js/interpolations/optimizers/test.function.js.map +1 -0
  88. package/js/interpolations/optimizers/types.d.ts +8 -0
  89. package/js/interpolations/optimizers/types.js +2 -0
  90. package/js/interpolations/optimizers/types.js.map +1 -0
  91. package/js/interpolations/processAttribute.function.d.ts +10 -5
  92. package/js/interpolations/processAttribute.function.js +111 -67
  93. package/js/interpolations/processAttribute.function.js.map +1 -1
  94. package/js/interpolations/processSubscriptionUpdate.function.d.ts +4 -0
  95. package/js/interpolations/processSubscriptionUpdate.function.js +14 -0
  96. package/js/interpolations/processSubscriptionUpdate.function.js.map +1 -0
  97. package/js/interpolations/specialAttribute.js +18 -9
  98. package/js/interpolations/specialAttribute.js.map +1 -1
  99. package/js/interpolations/subscribeToTemplate.function.d.ts +10 -2
  100. package/js/interpolations/subscribeToTemplate.function.js +19 -20
  101. package/js/interpolations/subscribeToTemplate.function.js.map +1 -1
  102. package/js/isInstance.d.ts +10 -6
  103. package/js/isInstance.js +33 -25
  104. package/js/isInstance.js.map +1 -1
  105. package/js/state/callbackMaker.function.d.ts +1 -1
  106. package/js/state/callbackMaker.function.js +21 -30
  107. package/js/state/callbackMaker.function.js.map +1 -1
  108. package/js/state/callbackStateUpdate.function.d.ts +1 -1
  109. package/js/state/callbackStateUpdate.function.js +6 -5
  110. package/js/state/callbackStateUpdate.function.js.map +1 -1
  111. package/js/state/getCallbackValue.function.d.ts +4 -0
  112. package/js/state/getCallbackValue.function.js +10 -0
  113. package/js/state/getCallbackValue.function.js.map +1 -0
  114. package/js/state/getStateValue.function.d.ts +2 -0
  115. package/js/state/getStateValue.function.js +24 -0
  116. package/js/state/getStateValue.function.js.map +1 -0
  117. package/js/state/handleProviderChanges.function.d.ts +7 -1
  118. package/js/state/handleProviderChanges.function.js +7 -21
  119. package/js/state/handleProviderChanges.function.js.map +1 -1
  120. package/js/state/index.d.ts +2 -3
  121. package/js/state/index.js +2 -2
  122. package/js/state/index.js.map +1 -1
  123. package/js/state/letState.function.d.ts +2 -0
  124. package/js/state/letState.function.js +28 -28
  125. package/js/state/letState.function.js.map +1 -1
  126. package/js/state/onDestroy.js +3 -2
  127. package/js/state/onDestroy.js.map +1 -1
  128. package/js/state/providers.d.ts +0 -1
  129. package/js/state/providers.js +20 -15
  130. package/js/state/providers.js.map +1 -1
  131. package/js/state/providersChangeCheck.function.d.ts +2 -2
  132. package/js/state/providersChangeCheck.function.js +9 -10
  133. package/js/state/providersChangeCheck.function.js.map +1 -1
  134. package/js/state/setUse.function.d.ts +1 -11
  135. package/js/state/setUse.function.js +12 -13
  136. package/js/state/setUse.function.js.map +1 -1
  137. package/js/state/state.function.js +2 -47
  138. package/js/state/state.function.js.map +1 -1
  139. package/js/state/state.types.d.ts +8 -0
  140. package/js/state/state.types.js +2 -0
  141. package/js/state/state.types.js.map +1 -0
  142. package/js/state/state.utils.d.ts +11 -10
  143. package/js/state/state.utils.js +35 -65
  144. package/js/state/state.utils.js.map +1 -1
  145. package/js/state/stateHandlers.d.ts +2 -0
  146. package/js/state/stateHandlers.js +36 -0
  147. package/js/state/stateHandlers.js.map +1 -0
  148. package/js/state/subject.function.js +10 -6
  149. package/js/state/subject.function.js.map +1 -1
  150. package/js/state/syncStates.function.d.ts +1 -1
  151. package/js/state/syncStates.function.js +8 -5
  152. package/js/state/syncStates.function.js.map +1 -1
  153. package/js/state/watch.function.js +6 -6
  154. package/js/state/watch.function.js.map +1 -1
  155. package/js/subject/Subject.class.d.ts +9 -2
  156. package/js/subject/Subject.class.js +36 -11
  157. package/js/subject/Subject.class.js.map +1 -1
  158. package/js/subject/ValueSubject.d.ts +6 -1
  159. package/js/subject/ValueSubject.js +15 -1
  160. package/js/subject/ValueSubject.js.map +1 -1
  161. package/js/subject/combineLatest.function.js +2 -2
  162. package/js/subject/combineLatest.function.js.map +1 -1
  163. package/js/subject/subject.utils.js +5 -4
  164. package/js/subject/subject.utils.js.map +1 -1
  165. package/js/subject.types.d.ts +2 -10
  166. package/js/tag/Context.types.d.ts +21 -0
  167. package/js/tag/Context.types.js +2 -0
  168. package/js/tag/Context.types.js.map +1 -0
  169. package/js/tag/Support.class.d.ts +31 -66
  170. package/js/tag/Support.class.js +36 -285
  171. package/js/tag/Support.class.js.map +1 -1
  172. package/js/tag/Tag.class.d.ts +29 -28
  173. package/js/tag/Tag.class.js +34 -46
  174. package/js/tag/Tag.class.js.map +1 -1
  175. package/js/tag/TemplaterResult.class.d.ts +32 -38
  176. package/js/tag/TemplaterResult.class.js +11 -34
  177. package/js/tag/TemplaterResult.class.js.map +1 -1
  178. package/js/tag/ValueTypes.enum.d.ts +23 -13
  179. package/js/tag/ValueTypes.enum.js +28 -19
  180. package/js/tag/ValueTypes.enum.js.map +1 -1
  181. package/js/tag/buildBeforeElement.function.d.ts +10 -0
  182. package/js/tag/buildBeforeElement.function.js +47 -0
  183. package/js/tag/buildBeforeElement.function.js.map +1 -0
  184. package/js/tag/buildSupportContext.function.d.ts +3 -0
  185. package/js/tag/buildSupportContext.function.js +15 -0
  186. package/js/tag/buildSupportContext.function.js.map +1 -0
  187. package/js/tag/checkDestroyPrevious.function.d.ts +5 -8
  188. package/js/tag/checkDestroyPrevious.function.js +53 -71
  189. package/js/tag/checkDestroyPrevious.function.js.map +1 -1
  190. package/js/tag/clonePropsBy.function.d.ts +6 -0
  191. package/js/tag/clonePropsBy.function.js +27 -0
  192. package/js/tag/clonePropsBy.function.js.map +1 -0
  193. package/js/tag/cloneValueArray.function.d.ts +4 -3
  194. package/js/tag/cloneValueArray.function.js +17 -13
  195. package/js/tag/cloneValueArray.function.js.map +1 -1
  196. package/js/tag/destroy.support.d.ts +7 -5
  197. package/js/tag/destroy.support.js +44 -6
  198. package/js/tag/destroy.support.js.map +1 -1
  199. package/js/tag/destroySupport.function.d.ts +2 -0
  200. package/js/tag/destroySupport.function.js +21 -0
  201. package/js/tag/destroySupport.function.js.map +1 -0
  202. package/js/tag/destroyTag.function.js +4 -4
  203. package/js/tag/destroyTag.function.js.map +1 -1
  204. package/js/tag/domMetaCollector.d.ts +2 -2
  205. package/js/tag/domMetaCollector.js +12 -8
  206. package/js/tag/domMetaCollector.js.map +1 -1
  207. package/js/tag/elementDestroyCheck.function.js +4 -7
  208. package/js/tag/elementDestroyCheck.function.js.map +1 -1
  209. package/js/tag/executeWrap.function.d.ts +5 -0
  210. package/js/tag/executeWrap.function.js +23 -0
  211. package/js/tag/executeWrap.function.js.map +1 -0
  212. package/js/tag/getChildTagsToDestroy.function.d.ts +8 -0
  213. package/js/tag/getChildTagsToDestroy.function.js +47 -0
  214. package/js/tag/getChildTagsToDestroy.function.js.map +1 -0
  215. package/js/tag/getStringsId.function.d.ts +1 -1
  216. package/js/tag/getStringsId.function.js +1 -2
  217. package/js/tag/getStringsId.function.js.map +1 -1
  218. package/js/tag/getSupportInCycle.function.js +2 -2
  219. package/js/tag/getSupportInCycle.function.js.map +1 -1
  220. package/js/tag/getTagWrap.function.d.ts +2 -0
  221. package/js/tag/getTagWrap.function.js +24 -68
  222. package/js/tag/getTagWrap.function.js.map +1 -1
  223. package/js/tag/getValueType.function.d.ts +3 -2
  224. package/js/tag/getValueType.function.js +17 -30
  225. package/js/tag/getValueType.function.js.map +1 -1
  226. package/js/tag/hasPropChanges.function.js +4 -10
  227. package/js/tag/hasPropChanges.function.js.map +1 -1
  228. package/js/tag/hasSupportChanged.function.d.ts +6 -2
  229. package/js/tag/hasSupportChanged.function.js +143 -24
  230. package/js/tag/hasSupportChanged.function.js.map +1 -1
  231. package/js/tag/html.d.ts +5 -6
  232. package/js/tag/html.js +9 -3
  233. package/js/tag/html.js.map +1 -1
  234. package/js/tag/index.d.ts +11 -1
  235. package/js/tag/index.js +11 -1
  236. package/js/tag/index.js.map +1 -1
  237. package/js/tag/isLikeTags.function.d.ts +4 -3
  238. package/js/tag/isLikeTags.function.js +18 -31
  239. package/js/tag/isLikeTags.function.js.map +1 -1
  240. package/js/tag/key.d.ts +6 -0
  241. package/js/tag/key.js +9 -0
  242. package/js/tag/key.js.map +1 -0
  243. package/js/tag/kidsToTagArraySubject.function.d.ts +2 -2
  244. package/js/tag/kidsToTagArraySubject.function.js +2 -1
  245. package/js/tag/kidsToTagArraySubject.function.js.map +1 -1
  246. package/js/tag/paint.function.d.ts +15 -0
  247. package/js/tag/paint.function.js +42 -0
  248. package/js/tag/paint.function.js.map +1 -0
  249. package/js/tag/processUpdateAttrContext.function.d.ts +3 -0
  250. package/js/tag/processUpdateAttrContext.function.js +14 -0
  251. package/js/tag/processUpdateAttrContext.function.js.map +1 -0
  252. package/js/tag/processUpdateContext.function.d.ts +5 -0
  253. package/js/tag/processUpdateContext.function.js +35 -0
  254. package/js/tag/processUpdateContext.function.js.map +1 -0
  255. package/js/tag/render/destroyUnlikeTags.function.d.ts +3 -5
  256. package/js/tag/render/destroyUnlikeTags.function.js +1 -3
  257. package/js/tag/render/destroyUnlikeTags.function.js.map +1 -1
  258. package/js/tag/render/renderExistingTag.function.d.ts +4 -6
  259. package/js/tag/render/renderExistingTag.function.js +11 -27
  260. package/js/tag/render/renderExistingTag.function.js.map +1 -1
  261. package/js/tag/render/renderSubjectComponent.function.js +14 -5
  262. package/js/tag/render/renderSubjectComponent.function.js.map +1 -1
  263. package/js/tag/render/renderSupport.function.d.ts +8 -3
  264. package/js/tag/render/renderSupport.function.js +68 -32
  265. package/js/tag/render/renderSupport.function.js.map +1 -1
  266. package/js/tag/render/renderTagOnly.function.d.ts +4 -3
  267. package/js/tag/render/renderTagOnly.function.js +33 -24
  268. package/js/tag/render/renderTagOnly.function.js.map +1 -1
  269. package/js/tag/render/renderWithSupport.function.d.ts +8 -4
  270. package/js/tag/render/renderWithSupport.function.js +12 -10
  271. package/js/tag/render/renderWithSupport.function.js.map +1 -1
  272. package/js/tag/render/softDestroySupport.function.d.ts +1 -2
  273. package/js/tag/render/softDestroySupport.function.js +22 -18
  274. package/js/tag/render/softDestroySupport.function.js.map +1 -1
  275. package/js/tag/smartRemoveKids.function.d.ts +3 -0
  276. package/js/tag/smartRemoveKids.function.js +80 -0
  277. package/js/tag/smartRemoveKids.function.js.map +1 -0
  278. package/js/tag/tag.d.ts +16 -3
  279. package/js/tag/tag.js +48 -16
  280. package/js/tag/tag.js.map +1 -1
  281. package/js/tag/tag.types.d.ts +6 -4
  282. package/js/tag/tag.utils.d.ts +15 -12
  283. package/js/tag/tag.utils.js.map +1 -1
  284. package/js/tag/tagElement.d.ts +11 -5
  285. package/js/tag/tagElement.js +114 -41
  286. package/js/tag/tagElement.js.map +1 -1
  287. package/js/tag/tagRunner.d.ts +2 -4
  288. package/js/tag/tagRunner.js +17 -39
  289. package/js/tag/tagRunner.js.map +1 -1
  290. package/js/tag/textNode.js +1 -1
  291. package/js/tag/textNode.js.map +1 -1
  292. package/js/tag/update/TagJsSubject.class.d.ts +0 -6
  293. package/js/tag/update/TagJsSubject.class.js +1 -8
  294. package/js/tag/update/TagJsSubject.class.js.map +1 -1
  295. package/js/tag/update/afterChildrenBuilt.function.d.ts +6 -0
  296. package/js/tag/update/afterChildrenBuilt.function.js +25 -0
  297. package/js/tag/update/afterChildrenBuilt.function.js.map +1 -0
  298. package/js/tag/update/getNewGlobal.function.d.ts +2 -0
  299. package/js/tag/update/getNewGlobal.function.js +7 -0
  300. package/js/tag/update/getNewGlobal.function.js.map +1 -0
  301. package/js/tag/update/oneRenderToSupport.function.d.ts +2 -2
  302. package/js/tag/update/oneRenderToSupport.function.js +7 -7
  303. package/js/tag/update/oneRenderToSupport.function.js.map +1 -1
  304. package/js/tag/update/processFirstSubject.utils.d.ts +4 -11
  305. package/js/tag/update/processFirstSubjectComponent.function.d.ts +6 -0
  306. package/js/tag/update/processFirstSubjectComponent.function.js +36 -0
  307. package/js/tag/update/processFirstSubjectComponent.function.js.map +1 -0
  308. package/js/tag/update/processFirstSubjectValue.function.d.ts +8 -8
  309. package/js/tag/update/processFirstSubjectValue.function.js +75 -39
  310. package/js/tag/update/processFirstSubjectValue.function.js.map +1 -1
  311. package/js/tag/update/processNewValue.function.d.ts +4 -3
  312. package/js/tag/update/processNewValue.function.js +27 -27
  313. package/js/tag/update/processNewValue.function.js.map +1 -1
  314. package/js/tag/update/processRegularValue.function.d.ts +4 -6
  315. package/js/tag/update/processRegularValue.function.js +10 -23
  316. package/js/tag/update/processRegularValue.function.js.map +1 -1
  317. package/js/tag/update/processSubjectComponent.function.d.ts +3 -5
  318. package/js/tag/update/processSubjectComponent.function.js +18 -22
  319. package/js/tag/update/processSubjectComponent.function.js.map +1 -1
  320. package/js/tag/update/processTag.function.d.ts +13 -10
  321. package/js/tag/update/processTag.function.js +51 -37
  322. package/js/tag/update/processTag.function.js.map +1 -1
  323. package/js/tag/update/processTagArray.d.ts +7 -26
  324. package/js/tag/update/processTagArray.js +118 -141
  325. package/js/tag/update/processTagArray.js.map +1 -1
  326. package/js/tag/update/processTagResult.function.d.ts +4 -8
  327. package/js/tag/update/processTagResult.function.js +31 -30
  328. package/js/tag/update/processTagResult.function.js.map +1 -1
  329. package/js/tag/update/updateContextItem.function.d.ts +6 -2
  330. package/js/tag/update/updateContextItem.function.js +11 -9
  331. package/js/tag/update/updateContextItem.function.js.map +1 -1
  332. package/js/tag/update/updateExistingTagComponent.function.d.ts +7 -8
  333. package/js/tag/update/updateExistingTagComponent.function.js +76 -98
  334. package/js/tag/update/updateExistingTagComponent.function.js.map +1 -1
  335. package/js/tag/update/updateExistingValue.function.d.ts +4 -4
  336. package/js/tag/update/updateExistingValue.function.js +81 -101
  337. package/js/tag/update/updateExistingValue.function.js.map +1 -1
  338. package/js/tag/update/validateTemplater.function.d.ts +2 -0
  339. package/js/tag/update/validateTemplater.function.js +17 -0
  340. package/js/tag/update/validateTemplater.function.js.map +1 -0
  341. package/js/tag/updateSupportBy.function.d.ts +3 -0
  342. package/js/tag/updateSupportBy.function.js +18 -0
  343. package/js/tag/updateSupportBy.function.js.map +1 -0
  344. package/js/updateBeforeTemplate.function.d.ts +2 -3
  345. package/js/updateBeforeTemplate.function.js +10 -8
  346. package/js/updateBeforeTemplate.function.js.map +1 -1
  347. package/package.json +1 -1
@@ -1,22 +1,24 @@
1
- import { afterElmBuild } from '../../interpolations/interpolateTemplate.js';
2
- import { Support } from '../Support.class.js';
3
- import { ValueSubject } from '../../subject/index.js';
4
- /** When first time render, adds to owner childTags */
5
- export function processTag(templater, ownerSupport, // owner
1
+ import { getHtmlSupport } from '../Support.class.js';
2
+ import { ValueTypes } from '../ValueTypes.enum.js';
3
+ import { paintAppends } from '../paint.function.js';
4
+ import { subscribeToTemplate } from '../../interpolations/subscribeToTemplate.function.js';
5
+ import { buildBeforeElement } from '../buildBeforeElement.function.js';
6
+ import { checkTagValueChange } from '../checkDestroyPrevious.function.js';
7
+ /** When first time render, adds to owner childTags
8
+ * Used for BOTH inserts & updates to values that were something else
9
+ * Intended use only for updates
10
+ */
11
+ export function processTag(ownerSupport, // owner
6
12
  subject) {
7
- let support = subject.support;
8
- // first time seeing this tag?
9
- if (!support) {
10
- support = newSupportByTemplater(templater, ownerSupport, subject);
11
- }
12
- subject.support = support;
13
+ const global = subject.global;
14
+ const support = global.newest;
13
15
  support.ownerSupport = ownerSupport;
14
- const newFragment = support.buildBeforeElement(undefined, { counts: { added: 0, removed: 0 } });
15
- const children = [...newFragment.children];
16
- const placeholder = subject.global.placeholder;
17
- const parentNode = placeholder.parentNode;
18
- parentNode.insertBefore(newFragment, placeholder);
19
- afterChildrenBuilt(children, subject, ownerSupport);
16
+ subject.checkValueChange = checkTagValueChange;
17
+ const ph = subject.placeholder;
18
+ const result = buildBeforeElement(support, undefined, ph, { counts: { added: 0, removed: 0 } });
19
+ for (const sub of result.subs) {
20
+ subscribeToTemplate(sub);
21
+ }
20
22
  return support;
21
23
  }
22
24
  export function tagFakeTemplater(tag) {
@@ -27,33 +29,45 @@ export function tagFakeTemplater(tag) {
27
29
  }
28
30
  export function getFakeTemplater() {
29
31
  const fake = {
30
- children: new ValueSubject([]), // no children
31
- // props: {} as Props,
32
- props: [],
33
- isTag: true,
34
- tagJsType: 'templater',
35
- tagged: false,
36
- html: () => fake,
37
- dom: () => fake,
38
- key: () => fake,
32
+ tagJsType: ValueTypes.templater,
39
33
  };
40
34
  return fake;
41
35
  }
42
36
  /** Create Support for a tag component */
43
37
  export function newSupportByTemplater(templater, ownerSupport, subject) {
44
- const support = new Support(templater, ownerSupport, subject);
45
- setupNewSupport(support, ownerSupport, subject);
46
- ownerSupport.subject.global.childTags.push(support);
38
+ const support = getHtmlSupport(templater, ownerSupport, ownerSupport.appSupport, subject);
39
+ const global = subject.global;
40
+ global.context = [];
47
41
  return support;
48
42
  }
49
- export function setupNewSupport(support, ownerSupport, subject) {
50
- support.subject = subject;
51
- subject.global.oldest = support;
52
- subject.global.newest = support;
53
- // asking me to render will cause my parent to render
43
+ export function processNewTag(templater, ownerSupport, // owner
44
+ subject, // could be tag via result.tag
45
+ appendTo) {
46
+ subject.checkValueChange = checkTagValueChange;
47
+ const support = newSupportByTemplater(templater, ownerSupport, subject);
54
48
  support.ownerSupport = ownerSupport;
55
- }
56
- export function afterChildrenBuilt(children, subject, ownerSupport) {
57
- children.forEach(x => afterElmBuild(x, { counts: { added: 0, removed: 0 } }, subject.global.context, ownerSupport));
49
+ const result = buildBeforeElement(support, appendTo, undefined, { counts: { added: 0, removed: 0 } });
50
+ for (const dom of result.dom) {
51
+ if (dom.marker) {
52
+ paintAppends.push({
53
+ element: dom.marker,
54
+ relative: appendTo, // ph.parentNode as Element,
55
+ });
56
+ }
57
+ if (dom.domElement) {
58
+ paintAppends.push({
59
+ element: dom.domElement,
60
+ relative: appendTo, // ph.parentNode as Element,
61
+ });
62
+ }
63
+ }
64
+ let index = -1;
65
+ const length = result.subs.length - 1;
66
+ //++painting.locks
67
+ while (index++ < length) {
68
+ const sub = result.subs[index];
69
+ subscribeToTemplate(sub);
70
+ }
71
+ return support;
58
72
  }
59
73
  //# sourceMappingURL=processTag.function.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"processTag.function.js","sourceRoot":"","sources":["../../../ts/tag/update/processTag.function.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processTag.function.js","sourceRoot":"","sources":["../../../ts/tag/update/processTag.function.ts"],"names":[],"mappings":"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"}
@@ -1,27 +1,8 @@
1
- import { InsertBefore } from '../../interpolations/InsertBefore.type.js';
2
- import { Tag, TagTemplate } from '../Tag.class.js';
3
- import { Counts } from '../../interpolations/interpolateTemplate.js';
4
- import { BaseSupport, Support } from '../Support.class.js';
5
1
  import { TemplaterResult } from '../TemplaterResult.class.js';
6
- import { TagJsSubject } from './TagJsSubject.class.js';
7
- export type LastArrayItem = {
8
- support: Support;
9
- index: number;
10
- deleted?: boolean;
11
- };
12
- type LastArrayMeta = {
13
- array: LastArrayItem[];
14
- lastRuns?: {
15
- [index: number]: TagTemplate;
16
- };
17
- };
18
- export type TagArraySubject = TagJsSubject<Tag[]> & {
19
- insertBefore: InsertBefore;
20
- lastArray?: LastArrayMeta;
21
- };
22
- export declare function processTagArray(subject: TagArraySubject, value: (TemplaterResult | Tag)[], // arry of Tag classes
23
- insertBefore: InsertBefore, // <template end interpolate />
24
- ownerSupport: BaseSupport | Support, options: {
25
- counts: Counts;
26
- }, fragment?: DocumentFragment): InsertBefore[];
27
- export {};
2
+ import { BaseSupport, Support } from '../Support.class.js';
3
+ import { Counts } from '../../interpolations/interpolateTemplate.js';
4
+ import { ContextItem } from '../Context.types.js';
5
+ import { StringTag } from '../Tag.class.js';
6
+ export declare function processTagArray(subject: ContextItem, value: (TemplaterResult | StringTag)[], // arry of Tag classes
7
+ ownerSupport: BaseSupport | Support, counts: Counts, appendTo?: Element): void;
8
+ export declare function destroyArrayItem(item: ContextItem, counts: Counts): void;
@@ -1,161 +1,138 @@
1
1
  // taggedjs-no-compile
2
- import { ArrayNoKeyError } from '../../errors.js';
3
- import { destroyArrayTag } from '../checkDestroyPrevious.function.js';
4
- import { newSupportByTemplater, setupNewSupport, tagFakeTemplater } from './processTag.function.js';
5
- import { Support } from '../Support.class.js';
6
- import { isTagClass } from '../../isInstance.js';
7
- import { renderTagOnly } from '../render/renderTagOnly.function.js';
8
- import { TagJsSubject } from './TagJsSubject.class.js';
9
- import { afterChildrenBuilt } from './processTag.function.js';
10
- import { textNode } from '../textNode.js';
2
+ import { paintAppends, paintInsertBefores, paintRemoves } from '../paint.function.js';
3
+ import { processFirstSubjectValue } from './processFirstSubjectValue.function.js';
4
+ import { checkSimpleValueChange } from '../checkDestroyPrevious.function.js';
5
+ import { updateExistingValue } from './updateExistingValue.function.js';
6
+ import { processNewArrayValue } from './processNewValue.function.js';
7
+ import { destroySupport } from '../destroySupport.function.js';
11
8
  export function processTagArray(subject, value, // arry of Tag classes
12
- insertBefore, // <template end interpolate />
13
- ownerSupport, options, fragment) {
14
- const clones = ownerSupport.subject.global.clones; // []
15
- let lastArray = subject.lastArray = subject.lastArray || { array: [] };
16
- if (!subject.global.placeholder) {
17
- setPlaceholderElm(insertBefore, subject);
9
+ ownerSupport, counts, appendTo) {
10
+ if (!subject.lastArray) {
11
+ subject.lastArray = [];
18
12
  }
19
- const runtimeInsertBefore = subject.global.placeholder;
13
+ let lastArray = subject.lastArray;
14
+ let runtimeInsertBefore = subject.placeholder;
20
15
  let removed = 0;
21
16
  /** 🗑️ remove previous items first */
22
- lastArray.array = lastArray.array.filter((item, index) => {
23
- const newLength = value.length - 1;
24
- const at = index - removed;
25
- const lessLength = newLength < at;
26
- if (lessLength) {
27
- destroyArrayItem(lastArray.array, index, options);
28
- ++removed;
29
- return false;
30
- }
31
- const subTag = value[index - removed];
32
- const tagClass = isTagClass(subTag);
33
- let tag = subTag;
34
- let templater = subTag.templater;
35
- let prevArrayValue;
36
- if (tagClass) {
37
- prevArrayValue = tag.arrayValue;
38
- }
39
- else {
40
- templater = subTag;
41
- tag = templater.tag;
42
- prevArrayValue = templater.arrayValue;
43
- }
44
- // const tag = subTag?.templater.tag as Tag
45
- const lastTag = item.support.templater.tag;
46
- const lastArrayValue = lastTag.arrayValue;
47
- const destroyItem = !areLikeValues(prevArrayValue, lastArrayValue);
48
- if (destroyItem) {
49
- destroyArrayItem(lastArray.array, index, options);
50
- ++removed;
51
- return false;
52
- }
53
- return true;
17
+ const filteredLast = subject.lastArray = lastArray.filter(function lastArrayFilter(item, index) {
18
+ const newRemoved = reviewLastArrayItem(item, value, index, lastArray, removed, counts);
19
+ removed = removed + newRemoved;
20
+ return newRemoved === 0;
54
21
  });
22
+ // const eAppendTo = existed ? undefined : appendTo
23
+ const eAppendTo = appendTo; // existed ? undefined : appendTo
55
24
  const length = value.length;
56
25
  for (let index = 0; index < length; ++index) {
57
- const item = value[index];
58
- const previous = lastArray.array[index];
59
- const previousSupport = previous?.support;
60
- const subTag = item;
61
- const tagClass = isTagClass(subTag);
62
- const itemSubject = previousSupport?.subject || new TagJsSubject(undefined);
63
- let templater = subTag.templater;
64
- let support;
65
- if (tagClass) {
66
- if (!templater) {
67
- templater = tagFakeTemplater(subTag);
68
- }
69
- support = new Support(templater, ownerSupport, itemSubject);
70
- }
71
- else {
72
- templater = subTag;
73
- support = setupNewTemplater(templater, ownerSupport, itemSubject);
74
- }
75
- // share global between old and new
76
- if (previousSupport) {
77
- const prevSubject = previousSupport.subject;
78
- const global = prevSubject.global;
79
- setupNewSupport(support, ownerSupport, prevSubject);
80
- support.subject.global = global;
81
- global.newest = support;
82
- }
83
- else {
84
- setupNewSupport(support, ownerSupport, itemSubject);
85
- }
86
- // check for html``.key()
87
- const tag = templater.tag || subTag;
88
- const keySet = 'arrayValue' in tag;
89
- if (!keySet) {
90
- const details = {
91
- // template: support.getTemplate().string,
92
- array: value,
93
- };
94
- const message = 'Use html`...`.key(item) instead of html`...` to template an Array';
95
- console.error(message, details);
96
- const err = new ArrayNoKeyError(message, details);
97
- throw err;
98
- }
99
- const couldBeSame = lastArray.array.length > index;
100
- if (couldBeSame) {
101
- const prevSupport = previous.support;
102
- const prevGlobal = prevSupport.subject.global;
103
- const oldest = prevGlobal.oldest;
104
- oldest.updateBy(support);
105
- continue;
106
- }
107
- processAddTagArrayItem(runtimeInsertBefore, support, index, options, lastArray.array, fragment);
108
- ownerSupport.subject.global.childTags.push(support);
26
+ const newSubject = reviewArrayItem(value, index, filteredLast, ownerSupport, runtimeInsertBefore, counts, eAppendTo);
27
+ runtimeInsertBefore = newSubject.placeholder;
109
28
  }
110
- return clones;
111
29
  }
112
- function setPlaceholderElm(insertBefore, subject) {
113
- const placeholder = subject.global.placeholder = textNode.cloneNode(false);
114
- const parentNode = insertBefore.parentNode;
115
- parentNode.insertBefore(placeholder, insertBefore);
116
- parentNode.removeChild(insertBefore);
30
+ function reviewArrayItem(array, index, lastArray, ownerSupport, runtimeInsertBefore, // used during updates
31
+ counts, appendTo) {
32
+ const item = array[index];
33
+ const previous = lastArray[index];
34
+ if (previous) {
35
+ return reviewPreviousArrayItem(item, previous, lastArray, ownerSupport, index, runtimeInsertBefore, counts, appendTo);
36
+ }
37
+ return processAddTagArrayItem(item, runtimeInsertBefore, // thisInsert as any,
38
+ ownerSupport, counts, lastArray, appendTo);
39
+ }
40
+ function reviewPreviousArrayItem(item, itemSubject, lastArray, ownerSupport, index, runtimeInsertBefore, // used during updates
41
+ counts, appendTo) {
42
+ const couldBeSame = lastArray.length > index;
43
+ if (couldBeSame) {
44
+ updateExistingValue(itemSubject, item, ownerSupport);
45
+ return itemSubject;
46
+ }
47
+ const result = processAddTagArrayItem(item, runtimeInsertBefore, // thisInsert as any,
48
+ ownerSupport, counts, lastArray, appendTo);
49
+ return result;
117
50
  }
118
- function processAddTagArrayItem(before, support, index, options, lastArray, fragment) {
119
- const lastValue = {
120
- support, index
51
+ function processAddTagArrayItem(value, before, // used during updates
52
+ ownerSupport, counts, lastArray, appendTo) {
53
+ const itemSubject = {
54
+ value,
55
+ checkValueChange: checkSimpleValueChange,
56
+ withinOwnerElement: false, // TODO: we need to pass down depth so we can answer this truthfully
121
57
  };
58
+ counts.added = counts.added + 1; // index
59
+ const subPlaceholder = document.createTextNode('');
60
+ itemSubject.placeholder = subPlaceholder;
61
+ if (!appendTo) {
62
+ paintInsertBefores.push({
63
+ element: subPlaceholder,
64
+ relative: before,
65
+ });
66
+ }
67
+ processNewArrayValue(value, ownerSupport, itemSubject);
68
+ processFirstSubjectValue(value, itemSubject, ownerSupport, // support,
69
+ counts, `rvp_${lastArray.length}_array`, appendTo);
70
+ // after processing
71
+ itemSubject.value = value;
122
72
  // Added to previous array
123
- lastArray.push(lastValue);
124
- const counts = {
125
- added: options.counts.added + index,
126
- removed: options.counts.removed,
127
- };
128
- // TODO: This might be causing double clones delete issues because all array items share same placeholder
129
- support.subject.global.placeholder = before; // newTempElm
130
- const newFragment = support.buildBeforeElement(undefined, { counts });
131
- const children = [...newFragment.children];
132
- const placeholder = before; // subject.global.placeholder as Text
133
- const parentNode = placeholder.parentNode;
134
- parentNode.insertBefore(newFragment, placeholder);
135
- afterChildrenBuilt(children, support.subject, support);
73
+ lastArray.push(itemSubject);
74
+ if (appendTo) {
75
+ paintAppends.push({
76
+ element: subPlaceholder,
77
+ relative: appendTo,
78
+ });
79
+ }
80
+ return itemSubject;
136
81
  }
137
- /** compare two values. If both values are arrays then the items will be compared */
138
- function areLikeValues(valueA, valueB) {
139
- if (valueA === valueB) {
140
- return true;
82
+ export function destroyArrayItem(item, counts) {
83
+ const global = item.global;
84
+ const support = global.newest;
85
+ global.deleted = true;
86
+ if (support) {
87
+ destroySupport(support, counts.removed);
141
88
  }
142
- const bothArrays = valueA instanceof Array && valueB instanceof Array;
143
- const matchLengths = bothArrays && valueA.length == valueB.length;
144
- if (matchLengths) {
145
- return valueA.every((item, index) => item === valueB[index]);
89
+ else {
90
+ const element = item.simpleValueElm;
91
+ delete item.simpleValueElm;
92
+ paintRemoves.push(element);
146
93
  }
147
- return false;
94
+ ++counts.removed;
148
95
  }
149
- function setupNewTemplater(templater, ownerSupport, itemSubject) {
150
- const support = newSupportByTemplater(templater, ownerSupport, itemSubject);
151
- renderTagOnly(support, support, itemSubject, ownerSupport);
152
- return support;
96
+ function reviewLastArrayItem(subTag, value, index, lastArray, removed, counts) {
97
+ const newLength = value.length - 1;
98
+ const at = index - removed;
99
+ const lessLength = at < 0 || newLength < at;
100
+ if (lessLength) {
101
+ destroyArrayItem(lastArray[index], counts);
102
+ ++removed;
103
+ return 1;
104
+ }
105
+ /*
106
+ const nowValue = getArrayValueByItem(subTag)
107
+ const lastArrayValue = lastArray.array[index].arrayValue
108
+ */
109
+ // check for html``.key()
110
+ /*
111
+ const keySet = 'arrayValue' in tag
112
+ if (!keySet) {
113
+ const details = {
114
+ array: value.map(item => item.values || item),
115
+ vdom: (tag as any)?.support.templater.tag.dom,
116
+ tag,
117
+ lastArray: lastArray.array[index]
118
+ }
119
+ const message = 'Found Tag in array without key value, during array update. Be sure to use "html`...`.key(unique)" OR import TaggedJs "key" "key(unique).html = CustomTag(props)"'
120
+ console.error(message, details)
121
+ const err = new ArrayNoKeyError(message, details)
122
+ throw err
123
+ }
124
+ */
125
+ /*
126
+ const destroyItem = nowValue !== lastArrayValue
127
+ if(destroyItem) {
128
+ destroyArrayItem(lastArray.array, index, counts)
129
+ ++removed
130
+ return 1
131
+ }
132
+ */
133
+ return 0;
153
134
  }
154
- function destroyArrayItem(lastArray, index, options) {
155
- const last = lastArray[index];
156
- const support = last.support;
157
- destroyArrayTag(support, options.counts);
158
- last.deleted = true;
159
- ++options.counts.removed;
135
+ function getArrayValueByItem(item) {
136
+ return item?.arrayValue || item;
160
137
  }
161
138
  //# sourceMappingURL=processTagArray.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"processTagArray.js","sourceRoot":"","sources":["../../../ts/tag/update/processTagArray.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processTagArray.js","sourceRoot":"","sources":["../../../ts/tag/update/processTagArray.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,5 @@
1
1
  import { Counts } from '../../interpolations/interpolateTemplate.js';
2
- import { TagArraySubject } from './processTagArray.js';
3
- import { TagSubject } from '../../subject.types.js';
4
- import { Support } from '../Support.class.js';
5
- /** checks if previous support exists on subject or as a last global support. If first render, calls builder. Otherwise calls support.updateBy() */
6
- export declare function processTagResult(support: Support, subject: TagArraySubject | TagSubject | Function, // used for recording past and current value
7
- { counts, }: {
8
- counts: Counts;
9
- }, fragment?: DocumentFragment): Support;
2
+ import { AnySupport } from '../Support.class.js';
3
+ import { ContextItem } from '../Context.types.js';
4
+ export declare function processReplaceTagResult(support: AnySupport, counts: Counts, contextItem: ContextItem): AnySupport;
5
+ export declare function processFirstTagResult(support: AnySupport, counts: Counts, appendTo: Element): AnySupport;
@@ -1,37 +1,38 @@
1
- /** checks if previous support exists on subject or as a last global support. If first render, calls builder. Otherwise calls support.updateBy() */
2
- export function processTagResult(support, subject, // used for recording past and current value
3
- { counts, }, fragment) {
4
- // *if appears we already have seen
5
- const subjectTag = subject;
6
- const lastSupport = subjectTag.support;
7
- const prevSupport = lastSupport?.subject.global.oldest || undefined;
8
- const justUpdate = prevSupport;
9
- if (prevSupport && justUpdate) {
10
- return processTagResultUpdate(support, subjectTag, prevSupport);
1
+ import { paintAppends } from '../paint.function.js';
2
+ import { subscribeToTemplate } from '../../interpolations/subscribeToTemplate.function.js';
3
+ import { buildBeforeElement } from '../buildBeforeElement.function.js';
4
+ import { checkTagValueChange } from '../index.js';
5
+ export function processReplaceTagResult(support, counts, contextItem) {
6
+ contextItem.checkValueChange = checkTagValueChange;
7
+ const ph = contextItem.placeholder;
8
+ const result = buildBeforeElement(support, undefined, ph, { counts });
9
+ const subs = result.subs;
10
+ for (const sub of subs) {
11
+ subscribeToTemplate(sub);
11
12
  }
12
- const newFragment = support.buildBeforeElement(undefined, { counts });
13
- //if(fragment) {
14
- // fragment.appendChild(newFragment)
15
- //} else {
16
- const placeholder = subject.global.placeholder;
17
- const parentNode = placeholder.parentNode;
18
- parentNode.insertBefore(newFragment, placeholder);
19
- //}
20
13
  return support;
21
14
  }
22
- function processTagResultUpdate(support, subject, // used for recording past and current value
23
- prevSupport) {
24
- // components
25
- if (subject instanceof Function) {
26
- const newSupport = subject(prevSupport);
27
- prevSupport.updateBy(newSupport);
28
- subject.support = newSupport;
29
- return newSupport;
15
+ export function processFirstTagResult(support, counts, appendTo) {
16
+ let appendIndex = paintAppends.length;
17
+ const result = buildBeforeElement(support, appendTo, undefined, { counts });
18
+ for (const dom of result.dom) {
19
+ if (dom.domElement) {
20
+ paintAppends.splice(appendIndex++, 0, {
21
+ element: dom.domElement,
22
+ relative: appendTo,
23
+ });
24
+ }
25
+ if (dom.marker) {
26
+ paintAppends.splice(appendIndex++, 0, {
27
+ element: dom.marker,
28
+ relative: appendTo,
29
+ });
30
+ }
31
+ }
32
+ const subs = result.subs;
33
+ for (const sub of subs) {
34
+ subscribeToTemplate(sub);
30
35
  }
31
- // ??? - new removed
32
- // prevSupport.updateBy(support)
33
- subject.global.oldest.updateBy(support);
34
- subject.support = support;
35
36
  return support;
36
37
  }
37
38
  //# sourceMappingURL=processTagResult.function.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"processTagResult.function.js","sourceRoot":"","sources":["../../../ts/tag/update/processTagResult.function.ts"],"names":[],"mappings":"AAKA,mJAAmJ;AACnJ,MAAM,UAAU,gBAAgB,CAC9B,OAAgB,EAChB,OAAgD,EAAE,4CAA4C;AAC9F,EACE,MAAM,GAGP,EACD,QAA2B;IAE3B,mCAAmC;IACnC,MAAM,UAAU,GAAG,OAAqB,CAAA;IACxC,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAA;IACtC,MAAM,WAAW,GAAG,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,SAAS,CAAA;IACnE,MAAM,UAAU,GAAG,WAAW,CAAA;IAE9B,IAAG,WAAW,IAAI,UAAU,EAAE,CAAC;QAC7B,OAAO,sBAAsB,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,CAAA;IACjE,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,SAAS,EAAE,EAAC,MAAM,EAAC,CAAC,CAAA;IACnE,gBAAgB;IAChB,qCAAqC;IACrC,UAAU;IACR,MAAM,WAAW,GAAI,OAAsB,CAAC,MAAM,CAAC,WAAmB,CAAA;IACtE,MAAM,UAAU,GAAG,WAAW,CAAC,UAAwB,CAAA;IACvD,UAAU,CAAC,YAAY,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;IACnD,GAAG;IAEH,OAAO,OAAO,CAAA;AAChB,CAAC;AAGD,SAAS,sBAAsB,CAC7B,OAAgB,EAChB,OAA6D,EAAE,4CAA4C;AAC3G,WAAkC;IAElC,aAAa;IACb,IAAG,OAAO,YAAY,QAAQ,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;QACvC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAE/B;QAAC,OAAiC,CAAC,OAAO,GAAG,UAAU,CAAA;QACxD,OAAO,UAAU,CAAA;IACnB,CAAC;IAED,oBAAoB;IACpB,gCAAgC;IAChC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IACvC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAA;IAEzB,OAAO,OAAO,CAAA;AAChB,CAAC"}
1
+ {"version":3,"file":"processTagResult.function.js","sourceRoot":"","sources":["../../../ts/tag/update/processTagResult.function.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAsB,MAAM,sBAAsB,CAAA;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sDAAsD,CAAA;AAE1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjD,MAAM,UAAU,uBAAuB,CACrC,OAAmB,EACnB,MAAc,EACd,WAAwB;IAExB,WAAW,CAAC,gBAAgB,GAAG,mBAAmB,CAAA;IAClD,MAAM,EAAE,GAAG,WAAW,CAAC,WAAmB,CAAA;IAE1C,MAAM,MAAM,GAAG,kBAAkB,CAC/B,OAAO,EACP,SAAS,EACT,EAAE,EACF,EAAC,MAAM,EAAC,CACT,CAAA;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;IACxB,KAAI,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACtB,mBAAmB,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,OAAmB,EACnB,MAAc,EACd,QAAiB;IAEjB,IAAI,WAAW,GAAG,YAAY,CAAC,MAAM,CAAA;IAErC,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAC,MAAM,EAAC,CAAC,CAAA;IACzE,KAAI,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAG,GAAG,CAAC,UAAU,EAAE,CAAC;YAClB,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE;gBACpC,OAAO,EAAE,GAAG,CAAC,UAAU;gBACvB,QAAQ,EAAE,QAAQ;aACnB,CAAC,CAAA;QACJ,CAAC;QACD,IAAG,GAAG,CAAC,MAAM,EAAE,CAAC;YACd,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE;gBACpC,OAAO,EAAE,GAAG,CAAC,MAAM;gBACnB,QAAQ,EAAE,QAAQ;aACnB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;IACxB,KAAI,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACtB,mBAAmB,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -1,3 +1,7 @@
1
1
  import { TemplateValue } from './processFirstSubject.utils.js';
2
- import { Context } from '../Tag.class.js';
3
- export declare function updateContextItem(context: Context, index: number, value: TemplateValue): void;
2
+ import { ContextItem } from '../Tag.class.js';
3
+ import { TypedValue } from '../getValueType.function.js';
4
+ import { AnySupport } from '../Support.class.js';
5
+ /** return boolean indicated if render took place */
6
+ export declare function updateContextItem(contextItem: ContextItem, value: TemplateValue, ownerSupport: AnySupport, valueType: TypedValue): boolean;
7
+ export declare function updateOneContextValue(value: TemplateValue, contextItem: ContextItem): void;
@@ -1,12 +1,14 @@
1
- import { isSubjectInstance } from '../../isInstance.js';
2
- export function updateContextItem(context, index, value) {
3
- const subject = context[index];
4
- const isSub = isSubjectInstance(value);
5
- if (isSub) {
6
- return; // emits on its own
7
- }
1
+ import { updateExistingValue } from './updateExistingValue.function.js';
2
+ /** return boolean indicated if render took place */
3
+ export function updateContextItem(contextItem, value, ownerSupport, valueType) {
4
+ contextItem.global.nowValueType = valueType;
8
5
  // listeners will evaluate updated values to possibly update display(s)
9
- subject.next(value);
10
- return;
6
+ const result = updateExistingValue(contextItem, value, ownerSupport).rendered;
7
+ updateOneContextValue(value, contextItem);
8
+ return result;
9
+ }
10
+ export function updateOneContextValue(value, contextItem) {
11
+ contextItem.value = value;
12
+ contextItem.global.lastValue = value;
11
13
  }
12
14
  //# sourceMappingURL=updateContextItem.function.js.map