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,38 +1,39 @@
1
1
  import { variableSuffix, variablePrefix } from "../../tag/Tag.class.js";
2
+ import { ImmutableTypes } from "../../tag/ValueTypes.enum.js";
2
3
  export const safeVar = '__safeTagVar';
3
4
  export function restorePlaceholders(elements) {
4
5
  elements.forEach(traverseAndRestore);
5
6
  }
6
7
  const safeReplacer = /__safeTagVar(\d+)/g;
7
8
  function traverseAndRestore(element) {
8
- if ('attributes' in element) {
9
- element.attributes = element.attributes.map(attr => {
9
+ if (element.at) {
10
+ element.at = element.at ? element.at.map(attr => {
10
11
  if (attr.length === 1) {
11
12
  return attr;
12
13
  }
13
- let [key, value] = attr;
14
- if (typeof value === 'string' && value.startsWith(safeVar)) {
14
+ const [, value] = attr;
15
+ if (typeof value === ImmutableTypes.string && value.startsWith(safeVar)) {
15
16
  const index = parseInt(value.replace(safeVar, ''), 10);
16
- value = variablePrefix + index + variableSuffix;
17
+ attr[1] = variablePrefix + index + variableSuffix;
17
18
  }
18
- return [key, value];
19
- });
19
+ return attr;
20
+ }) : [];
20
21
  }
21
- if ('children' in element) {
22
- const children = element.children;
22
+ if (element.ch) {
23
+ const children = element.ch;
23
24
  for (let i = 0; i < children.length; i++) {
24
25
  const child = children[i];
25
- if (child.nodeName === 'text') {
26
- if (typeof child.textContent !== 'string') {
26
+ if (child.nn === 'text') {
27
+ if (typeof child.tc !== ImmutableTypes.string) {
27
28
  return;
28
29
  }
29
- child.textContent = child.textContent.replace(safeReplacer, (match, index) => variablePrefix + index + variableSuffix);
30
+ child.tc = child.tc.replace(safeReplacer, (_match, index) => variablePrefix + index + variableSuffix);
30
31
  }
31
32
  traverseAndRestore(child);
32
33
  }
33
34
  // Remove empty children array
34
35
  if (children.length === 0) {
35
- delete element.children;
36
+ delete element.ch;
36
37
  }
37
38
  }
38
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"restorePlaceholders.function.js","sourceRoot":"","sources":["../../../ts/interpolations/optimizers/restorePlaceholders.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExE,MAAM,CAAC,MAAM,OAAO,GAAG,cAAc,CAAA;AAErC,MAAM,UAAU,mBAAmB,CAAC,QAAwB;IAC1D,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,YAAY,GAAG,oBAAoB,CAAA;AAEzC,SAAS,kBAAkB,CAAC,OAAmC;IAC7D,IAAI,YAAY,IAAI,OAAO,EAAE,CAAC;QAC5B,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACjD,IAAG,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrB,OAAO,IAAI,CAAA;YACb,CAAC;YAED,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAA;YACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;gBACtD,KAAK,GAAG,cAAc,GAAG,KAAK,GAAG,cAAc,CAAA;YACjD,CAAC;YACD,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,UAAU,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAA0B,CAAA;QACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAe,CAAA;YACvC,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;gBAC9B,IAAG,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;oBACzC,OAAM;gBACR,CAAC;gBAED,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAC3E,cAAc,GAAG,KAAK,GAAG,cAAc,CACxC,CAAA;YACH,CAAC;YACD,kBAAkB,CAAC,KAAK,CAAC,CAAA;QAC3B,CAAC;QAED,8BAA8B;QAC9B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,OAAO,CAAC,QAAQ,CAAA;QACzB,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"restorePlaceholders.function.js","sourceRoot":"","sources":["../../../ts/interpolations/optimizers/restorePlaceholders.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,MAAM,CAAC,MAAM,OAAO,GAAG,cAAc,CAAA;AAErC,MAAM,UAAU,mBAAmB,CAAC,QAAwB;IAC1D,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,YAAY,GAAG,oBAAoB,CAAA;AAEzC,SAAS,kBAAkB,CAAC,OAAwB;IAClD,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAC9C,IAAG,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrB,OAAO,IAAI,CAAA;YACb,CAAC;YAED,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,CAAA;YACtB,IAAI,OAAO,KAAK,KAAK,cAAc,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxE,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;gBACtD,IAAI,CAAC,CAAC,CAAC,GAAG,cAAc,GAAG,KAAK,GAAG,cAAc,CAAA;YACnD,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACT,CAAC;IAED,IAAK,OAAe,CAAC,EAAE,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAI,OAAe,CAAC,EAAoB,CAAA;QACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAe,CAAA;YACvC,IAAI,KAAK,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;gBACxB,IAAG,OAAO,KAAK,CAAC,EAAE,KAAK,cAAc,CAAC,MAAM,EAAE,CAAC;oBAC7C,OAAM;gBACR,CAAC;gBAED,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAC1D,cAAc,GAAG,KAAK,GAAG,cAAc,CACxC,CAAA;YACH,CAAC;YACD,kBAAkB,CAAC,KAAwB,CAAC,CAAA;QAC9C,CAAC;QAED,8BAA8B;QAC9B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,OAAO,CAAC,EAAE,CAAA;QACnB,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { ObjectElement, ObjectText } from "./ObjectNode.types.js";
2
+ export type ValuePos = {
3
+ set: (elements: any, value: any) => any;
4
+ isAttr?: boolean;
5
+ };
6
+ export type DomMetaMap = {
7
+ domMeta: (ObjectElement | ObjectText)[];
8
+ pos: ValuePos[];
9
+ };
10
+ export declare function replaceHoldersByPosMaps(parsedElements: (ObjectElement | ObjectText)[], values: unknown[], valuePositions: ValuePos[]): void;
@@ -0,0 +1,19 @@
1
+ export function replaceHoldersByPosMaps(parsedElements, values, valuePositions) {
2
+ Object.values(valuePositions).forEach((valuePosMeta, index) => replaceHolderByPosMap(parsedElements, values, valuePosMeta, index));
3
+ }
4
+ function replaceHolderByPosMap(parsedElements, values, valuePosition, valueIndex) {
5
+ valuePosition.set(parsedElements, values[valueIndex]);
6
+ /*
7
+ const posMap = [...valuePosition.pos]
8
+ const lastName = posMap.pop()
9
+ const varPart: any = posMap.reduce((
10
+ all: any,
11
+ name: string | number,
12
+ ) => {
13
+ return all[ name as any ]
14
+ }, parsedElements)
15
+
16
+ varPart[lastName as any] = values[valueIndex]
17
+ */
18
+ }
19
+ //# sourceMappingURL=test.function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.function.js","sourceRoot":"","sources":["../../../ts/interpolations/optimizers/test.function.ts"],"names":[],"mappings":"AAcA,MAAM,UAAU,uBAAuB,CACrC,cAA8C,EAC9C,MAAiB,EACjB,cAA0B;IAE1B,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE,CAC5D,qBAAqB,CAAC,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,CACnE,CAAA;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,cAA8C,EAC9C,MAAiB,EACjB,aAAuB,EACvB,UAAkB;IAElB,aAAa,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAA;IACrD;;;;;;;;;;;MAWE;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { ObjectChildren } from "./LikeObjectElement.type.js";
2
+ import { DomObjectElement, ObjectElement, ObjectText } from "./ObjectNode.types.js";
3
+ export type OneUnparsedHtml = (ObjectElement | ObjectText) & {
4
+ ch?: ObjectChildren;
5
+ at?: any[];
6
+ };
7
+ export type UnparsedHtml = OneUnparsedHtml[];
8
+ export type ParsedHtml = (DomObjectElement | ObjectText)[];
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../ts/interpolations/optimizers/types.ts"],"names":[],"mappings":""}
@@ -1,11 +1,16 @@
1
- import { Context } from '../tag/Tag.class.js';
2
1
  import { HowToSet } from './interpolateAttributes.js';
3
- import { BaseSupport, Support } from '../tag/Support.class.js';
4
- import { TagJsSubject } from '../tag/update/TagJsSubject.class.js';
2
+ import { AnySupport } from '../tag/Support.class.js';
3
+ import { ContextItem } from '../tag/Tag.class.js';
5
4
  export type AttrCombo = [
6
5
  string,
7
- (TagJsSubject<any> | string | null)?
6
+ (ContextItem | string | null)?
8
7
  ];
9
8
  /** Sets attribute value, subscribes to value updates */
10
- export declare function processAttribute(attrs: AttrCombo, element: Element, scope: Context, support: BaseSupport | Support, howToSet?: HowToSet): void;
9
+ export declare function processAttribute(attrs: AttrCombo, element: Element, support: AnySupport, howToSet?: HowToSet): void;
10
+ export declare function processNameValue(attrName: string, value: any, element: Element, howToSet: HowToSet): void;
11
+ export declare function processNameOnlyEmit(value: any, support: AnySupport, subject: ContextItem, element: Element, howToSet: HowToSet): void;
12
+ export declare function processAttributeEmit(isSpecial: boolean, newAttrValue: any, attrName: string, result: ContextItem, element: Element, support: AnySupport, howToSet: HowToSet): any;
11
13
  export type NoDisplayValue = false | null | undefined;
14
+ type DisplayValue = ((...args: unknown[]) => unknown) | string | boolean;
15
+ export declare function processAttributeSubjectValue(newAttrValue: DisplayValue | NoDisplayValue, element: Element, attrName: string, isSpecial: boolean, howToSet: HowToSet, support: AnySupport, subject: ContextItem): any;
16
+ export {};
@@ -2,143 +2,187 @@ import { specialAttribute } from './specialAttribute.js';
2
2
  import { isSubjectInstance } from '../isInstance.js';
3
3
  import { howToSetInputValue } from './interpolateAttributes.js';
4
4
  import { bindSubjectCallback } from './bindSubjectCallback.function.js';
5
- import { ValueTypes, empty } from '../tag/ValueTypes.enum.js';
6
- import { TagJsSubject } from '../tag/update/TagJsSubject.class.js';
5
+ import { ImmutableTypes, ValueTypes, empty } from '../tag/ValueTypes.enum.js';
6
+ import { paint, paintAwaits } from '../tag/paint.function.js';
7
7
  const INPUT = 'INPUT';
8
8
  const valueS = 'value';
9
9
  const ondoubleclick = 'ondoubleclick';
10
10
  /** Sets attribute value, subscribes to value updates */
11
- export function processAttribute(attrs, element, scope, support, howToSet = howToSetInputValue) {
11
+ export function processAttribute(attrs, element, support, howToSet = howToSetInputValue) {
12
12
  const attrName = attrs[0];
13
13
  const value = attrs[1];
14
- if (element.nodeName === INPUT && attrName === valueS) {
15
- howToSet = howToSetInputValue;
16
- }
17
14
  const isNameVar = attrs.length === 1; // isTagVar(attrName)
18
15
  if (isNameVar) {
19
- const contextValueSubject = attrName; // getContextValueByVarString(scope, attrName)
20
- let lastValue;
21
- // the above callback gets called immediately since its a ValueSubject()
22
- const sub = contextValueSubject.subscribe((value) => {
23
- if (value === lastValue) {
24
- return; // value did not change
25
- }
26
- processNameOnlyAttr(value, lastValue, element, support, howToSet);
27
- lastValue = value;
28
- });
29
- support.subject.global.subscriptions.push(sub); // this is where unsubscribe is picked up
30
- element.removeAttribute(attrName);
31
- return;
16
+ return processNameOnlyAttr(support, attrName, element, howToSet);
32
17
  }
33
18
  const isSubject = value && isSubjectInstance(value);
34
19
  // const isSubject = isTagVar(value)
35
20
  if (isSubject) {
36
- return processNameValueAttr(attrName, value, element, support, howToSet);
21
+ return processNameValueAttrSubject(attrName, value, element, support, howToSet);
37
22
  }
23
+ processNameValue(attrName, value, element, howToSet);
24
+ }
25
+ export function processNameValue(attrName, value, element, howToSet) {
38
26
  // Non dynamic
39
27
  const isSpecial = isSpecialAttr(attrName);
28
+ // TODO: enhance this condition
29
+ const global = value?.global;
30
+ if (global) {
31
+ global.attrName = attrName;
32
+ global.element = element;
33
+ global.howToSet = howToSet;
34
+ global.isSpecial = isSpecial;
35
+ }
40
36
  if (isSpecial) {
41
37
  return specialAttribute(attrName, value, element);
42
38
  }
43
39
  howToSet(element, attrName, value);
44
40
  }
45
- function processNameOnlyAttr(attrValue, lastValue, child, ownerSupport, howToSet) {
41
+ function processNameOnlyAttr(support, attrName, element, howToSet) {
42
+ const contextValue = attrName;
43
+ contextValue.global.element = element;
44
+ contextValue.global.howToSet = howToSet;
45
+ contextValue.global.isNameOnly = true;
46
+ paintAwaits.push(() => element.removeAttribute(attrName));
47
+ // the above callback gets called immediately since its a ValueSubject()
48
+ const contextValueSubject = contextValue.value;
49
+ if (isSubjectInstance(contextValueSubject)) {
50
+ const sub = contextValueSubject.subscribe((value) => {
51
+ processNameOnlyEmit(value, support, contextValue, element, howToSet);
52
+ if (!contextValueSubject.global.madeByTagJs) {
53
+ paint();
54
+ }
55
+ });
56
+ support.subject.global.subscriptions.push(sub); // this is where unsubscribe is picked up
57
+ return;
58
+ }
59
+ processNameOnlyEmit(contextValue.value, support, contextValue, element, howToSet);
60
+ return;
61
+ }
62
+ export function processNameOnlyEmit(value, support, subject, element, howToSet) {
63
+ if (value === support.subject.global.lastValue) {
64
+ return; // value did not change
65
+ }
66
+ processNameOnlyAttrValue(value, subject.global.lastValue, element, support, howToSet);
67
+ subject.global.lastValue = value;
68
+ }
69
+ function processNameOnlyAttrValue(attrValue, lastValue, element, ownerSupport, howToSet) {
46
70
  // check to remove previous attribute(s)
47
- if (lastValue && lastValue != attrValue) {
48
- if (typeof (lastValue) === ValueTypes.string) {
49
- child.removeAttribute(lastValue);
50
- }
51
- else if (lastValue instanceof Object) {
52
- for (const name in lastValue) {
53
- child.removeAttribute(name);
71
+ if (lastValue) {
72
+ if (lastValue instanceof Object) {
73
+ const isObStill = attrValue instanceof Object;
74
+ if (isObStill) {
75
+ for (const name in lastValue) {
76
+ if (name in attrValue) {
77
+ continue;
78
+ }
79
+ paintAwaits.push(() => element.removeAttribute(name));
80
+ // delete element[name]
81
+ }
82
+ }
83
+ else {
84
+ for (const name in lastValue) {
85
+ paintAwaits.push(() => element.removeAttribute(name));
86
+ // delete element[name]
87
+ }
54
88
  }
55
89
  }
56
90
  }
57
91
  // regular attributes
58
- if (typeof (attrValue) === ValueTypes.string) {
92
+ if (typeof (attrValue) === ImmutableTypes.string) {
59
93
  if (!attrValue.length) {
60
- return;
94
+ return; // ignore, do not set at this time
61
95
  }
62
- processNameValueAttr(attrValue, // name
63
- new TagJsSubject(empty), child, ownerSupport, howToSet);
96
+ howToSet(element, attrValue, empty);
64
97
  return;
65
98
  }
66
99
  // process an object of attributes ${{class:'something, checked:true}}
67
100
  if (attrValue instanceof Object) {
68
101
  for (const name in attrValue) {
69
- processNameValueAttr(name, attrValue[name], child, ownerSupport, howToSet);
102
+ processAttribute([name, attrValue[name]], element, ownerSupport, howToSet);
70
103
  }
71
104
  }
72
105
  }
73
106
  /** Processor for flat attributes and object attributes */
74
- function processNameValueAttr(attrName, result, child, support, howToSet) {
75
- // Most every variable comes in here since everything is made a ValueSubject
76
- if (isSubjectInstance(result)) {
77
- const isSpecial = isSpecialAttr(attrName);
78
- child.removeAttribute(attrName);
79
- let lastValue;
107
+ function processNameValueAttrSubject(attrName, result, element, support, howToSet) {
108
+ const isSpecial = isSpecialAttr(attrName);
109
+ if (isSpecial) {
110
+ paintAwaits.push(() => element.removeAttribute(attrName));
111
+ }
112
+ const contextValueSubject = result.value;
113
+ if (isSubjectInstance(contextValueSubject)) {
80
114
  const callback = (newAttrValue) => {
81
- // should the function be wrapped so every time its called we re-render?
82
- if (newAttrValue instanceof Function) {
83
- return callbackFun(support, newAttrValue, child, attrName, isSpecial, howToSet);
84
- }
85
- // TODO: we maybe able to block higher before instance of check
86
- if (lastValue === newAttrValue) {
87
- return lastValue;
88
- }
89
- lastValue = newAttrValue;
90
- return processAttributeSubjectValue(newAttrValue, child, attrName, isSpecial, howToSet);
115
+ processAttributeEmit(isSpecial, newAttrValue, attrName, result, element, support, howToSet);
91
116
  };
92
117
  // 🗞️ Subscribe. Above callback called immediately since its a ValueSubject()
93
- const sub = result.subscribe(callback);
118
+ const sub = contextValueSubject.subscribe(callback);
94
119
  // Record subscription for later unsubscribe when element destroyed
95
- support.subject.global.subscriptions.push(sub);
96
- return;
120
+ result.global.subscriptions.push(sub);
97
121
  }
98
- howToSet(child, attrName, result._value);
122
+ processAttributeEmit(isSpecial, result.value, attrName, result, element, support, howToSet);
99
123
  return;
100
124
  }
101
- function processAttributeSubjectValue(newAttrValue, child, attrName, isSpecial, howToSet) {
125
+ export function processAttributeEmit(isSpecial, newAttrValue, attrName, result, element, support, howToSet) {
126
+ // should the function be wrapped so every time its called we re-render?
127
+ if (newAttrValue instanceof Function) {
128
+ return callbackFun(support, newAttrValue, element, attrName, isSpecial, howToSet, result);
129
+ }
130
+ return processAttributeSubjectValue(newAttrValue, element, attrName, isSpecial, howToSet, support, result);
131
+ }
132
+ export function processAttributeSubjectValue(newAttrValue, element, attrName, isSpecial, howToSet, support, subject) {
102
133
  if (newAttrValue instanceof Function) {
103
134
  const fun = function (...args) {
104
- return newAttrValue(child, args);
135
+ return fun.tagFunction(element, args);
105
136
  };
106
137
  // access to original function
107
138
  fun.tagFunction = newAttrValue;
139
+ fun.support = support;
140
+ // shorthand corrections
108
141
  if (attrName === ondoubleclick) {
109
142
  attrName = 'ondblclick';
110
143
  }
111
- ;
112
- child[attrName] = fun;
144
+ console.log('funfunfun', attrName, fun);
145
+ element[attrName] = fun;
113
146
  return;
114
147
  }
115
- if (isSpecial) {
116
- specialAttribute(attrName, newAttrValue, child);
117
- return;
148
+ // its already the same value
149
+ if (subject.global.lastValue === newAttrValue) {
150
+ return subject.global.lastValue;
118
151
  }
119
- if (newAttrValue) {
120
- howToSet(child, attrName, newAttrValue);
152
+ subject.global.lastValue = newAttrValue;
153
+ if (isSpecial) {
154
+ specialAttribute(attrName, newAttrValue, element);
121
155
  return;
122
156
  }
123
157
  const isDeadValue = [undefined, false, null].includes(newAttrValue);
124
158
  if (isDeadValue) {
125
- child.removeAttribute(attrName);
159
+ paintAwaits.push(() => element.removeAttribute(attrName));
126
160
  return;
127
161
  }
128
162
  // value is 0
129
- howToSet(child, attrName, newAttrValue);
163
+ howToSet(element, attrName, newAttrValue);
130
164
  }
131
165
  /** Looking for (class | style) followed by a period */
132
166
  function isSpecialAttr(attrName) {
133
167
  return attrName.search(/^(class|style)(\.)/) >= 0;
134
168
  }
135
- function callbackFun(support, newAttrValue, child, attrName, isSpecial, howToSet) {
169
+ function callbackFun(support, newAttrValue, element, attrName, isSpecial, howToSet, subject) {
136
170
  const wrapper = support.templater.wrapper;
137
171
  const parentWrap = wrapper?.parentWrap;
138
- const oneRender = parentWrap?.oneRender;
172
+ const tagJsType = wrapper?.tagJsType || parentWrap?.tagJsType;
173
+ const oneRender = tagJsType === ValueTypes.oneRender;
139
174
  if (!oneRender) {
175
+ const prevFun = subject.global.lastValue;
176
+ if (prevFun && prevFun.tagFunction && prevFun.support) {
177
+ newAttrValue = prevFun;
178
+ prevFun.tagFunction = newAttrValue;
179
+ prevFun.support = support;
180
+ return prevFun;
181
+ }
182
+ // tag has state and will need all functions wrapped to cause re-renders
140
183
  newAttrValue = bindSubjectCallback(newAttrValue, support);
184
+ console.log('bind', attrName, { newAttrValue });
141
185
  }
142
- return processAttributeSubjectValue(newAttrValue, child, attrName, isSpecial, howToSet);
186
+ return processAttributeSubjectValue(newAttrValue, element, attrName, isSpecial, howToSet, support, subject);
143
187
  }
144
188
  //# sourceMappingURL=processAttribute.function.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"processAttribute.function.js","sourceRoot":"","sources":["../../ts/interpolations/processAttribute.function.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processAttribute.function.js","sourceRoot":"","sources":["../../ts/interpolations/processAttribute.function.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { TemplateValue } from '../tag/update/processFirstSubject.utils.js';
2
+ import { ContextItem } from '../tag/Context.types.js';
3
+ import { AnySupport } from '../tag/Support.class.js';
4
+ export declare function processSubUpdate(value: TemplateValue, contextItem: ContextItem, support: AnySupport): void;
@@ -0,0 +1,14 @@
1
+ import { updateExistingValue } from '../tag/update/updateExistingValue.function.js';
2
+ import { setUseMemory } from '../state/setUse.function.js';
3
+ import { paint } from '../tag/paint.function.js';
4
+ export function processSubUpdate(value, contextItem, support) {
5
+ if (value === contextItem.value) {
6
+ return; // same value emitted
7
+ }
8
+ updateExistingValue(contextItem, value, support);
9
+ if (!setUseMemory.stateConfig.support) {
10
+ paint();
11
+ }
12
+ return;
13
+ }
14
+ //# sourceMappingURL=processSubscriptionUpdate.function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processSubscriptionUpdate.function.js","sourceRoot":"","sources":["../../ts/interpolations/processSubscriptionUpdate.function.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAA;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAG1D,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAEhD,MAAM,UAAU,gBAAgB,CAC9B,KAAoB,EACpB,WAAwB,EACxB,OAAmB;IAEnB,IAAG,KAAK,KAAK,WAAW,CAAC,KAAK,EAAE,CAAC;QAC/B,OAAM,CAAC,qBAAqB;IAC9B,CAAC;IAED,mBAAmB,CACjB,WAAW,EACX,KAAK,EACL,OAAO,CACR,CAAA;IAED,IAAG,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QACrC,KAAK,EAAE,CAAA;IACT,CAAC;IAED,OAAM;AACR,CAAC"}
@@ -1,23 +1,32 @@
1
+ import { paintAwaits } from "../tag/paint.function.js";
1
2
  const style = 'style';
2
3
  const classS = 'class';
3
4
  export function specialAttribute(name, value, element) {
4
5
  const names = name.split('.');
6
+ const firstName = names[0];
5
7
  // style.position = "absolute"
6
- if (names[0] === style) {
7
- element.style[names[1]] = value;
8
+ if (firstName === style) {
9
+ paintAwaits.push(() => element.style[names[1]] = value); // attribute changes should come first
10
+ return;
8
11
  }
9
12
  // Example: class.width-full = "true"
10
- if (names[0] === classS) {
13
+ if (firstName === classS) {
11
14
  names.shift();
15
+ // truthy
12
16
  if (value) {
13
- for (let index = 0; index < names.length; ++index) {
14
- element.classList.add(names[index]);
17
+ for (const name of names) {
18
+ /*
19
+ if(element.classList.contains(name)) {
20
+ continue
21
+ }
22
+ */
23
+ paintAwaits.push(() => element.classList.add(name));
15
24
  }
25
+ return;
16
26
  }
17
- else {
18
- for (let index = 0; index < names.length; ++index) {
19
- element.classList.remove(names[index]);
20
- }
27
+ // falsy
28
+ for (const name of names) {
29
+ paintAwaits.push(() => element.classList.remove(name));
21
30
  }
22
31
  }
23
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"specialAttribute.js","sourceRoot":"","sources":["../../ts/interpolations/specialAttribute.ts"],"names":[],"mappings":"AAAA,MAAM,KAAK,GAAG,OAAO,CAAA;AACrB,MAAM,MAAM,GAAG,OAAO,CAAA;AAEtB,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,KAAU,EACV,OAAgB;IAEhB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAE7B,8BAA8B;IAC9B,IAAG,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;QACrB,OAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;IAC1C,CAAC;IAED,qCAAqC;IACrC,IAAG,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;QACvB,KAAK,CAAC,KAAK,EAAE,CAAA;QACb,IAAG,KAAK,EAAE,CAAC;YACT,KAAK,IAAI,KAAK,GAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC;gBAChD,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;YACrC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,IAAI,KAAK,GAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC;gBAChD,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;YACxC,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"specialAttribute.js","sourceRoot":"","sources":["../../ts/interpolations/specialAttribute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD,MAAM,KAAK,GAAG,OAAO,CAAA;AACrB,MAAM,MAAM,GAAG,OAAO,CAAA;AAEtB,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,KAAU,EACV,OAAgB;IAEhB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC7B,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IAE1B,8BAA8B;IAC9B,IAAG,SAAS,KAAK,KAAK,EAAE,CAAC;QACvB,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,CAAE,OAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAA,CAAC,sCAAsC;QACvG,OAAM;IACR,CAAC;IAED,qCAAqC;IACrC,IAAG,SAAS,KAAK,MAAM,EAAE,CAAC;QACxB,KAAK,CAAC,KAAK,EAAE,CAAA;QAEb,SAAS;QACT,IAAG,KAAK,EAAE,CAAC;YACT,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB;;;;kBAIE;gBACF,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;YACrD,CAAC;YACD,OAAM;QACR,CAAC;QAED,QAAQ;QACR,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;QACxD,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1,5 +1,13 @@
1
- import { InsertBefore } from './InsertBefore.type.js';
2
1
  import { InterpolateSubject } from '../tag/update/processFirstSubject.utils.js';
2
+ import { ContextItem } from '../tag/Context.types.js';
3
3
  import { AnySupport } from '../tag/Support.class.js';
4
4
  import { Counts } from './interpolateTemplate.js';
5
- export declare function subscribeToTemplate(fragment: DocumentFragment, insertBefore: InsertBefore, subject: InterpolateSubject, support: AnySupport, counts: Counts): void;
5
+ export type SubToTemplateOptions = {
6
+ insertBefore: Text;
7
+ subject: InterpolateSubject;
8
+ support: AnySupport;
9
+ counts: Counts;
10
+ contextItem: ContextItem;
11
+ appendTo?: Element;
12
+ };
13
+ export declare function subscribeToTemplate({ subject, support, counts, contextItem, appendTo, }: SubToTemplateOptions): void;
@@ -1,28 +1,27 @@
1
1
  import { processFirstSubjectValue } from '../tag/update/processFirstSubjectValue.function.js';
2
- import { updateExistingValue } from '../tag/update/updateExistingValue.function.js';
3
- import { swapInsertBefore } from '../tag/setTagPlaceholder.function.js';
4
- export function subscribeToTemplate(fragment, insertBefore, subject, support, counts) {
5
- let called = false;
6
- const onValue = (value) => {
7
- if (called) {
8
- updateExistingValue(subject, value, support, insertBefore);
9
- return;
2
+ import { setUseMemory } from '../state/setUse.function.js';
3
+ import { paint } from '../tag/paint.function.js';
4
+ import { processSubUpdate } from './processSubscriptionUpdate.function.js';
5
+ export function subscribeToTemplate({ subject, support, counts, contextItem, appendTo, }) {
6
+ let onValue = function onSubValue(value) {
7
+ processFirstSubjectValue(value, contextItem, support, { ...counts }, `rvp_-1_${support.templater.tag?.values.length}`, syncRun ? appendTo : undefined);
8
+ if (!syncRun && !setUseMemory.stateConfig.support) {
9
+ paint();
10
10
  }
11
- const templater = value;
12
- processFirstSubjectValue(templater, subject, insertBefore, support, {
13
- counts: { ...counts },
14
- }, syncRun ? fragment : undefined);
15
- called = true;
11
+ // from now on just run update
12
+ onValue = function subscriptionUpdate(value) {
13
+ processSubUpdate(value, contextItem, support);
14
+ };
15
+ };
16
+ const callback = function subValueProcessor(value) {
17
+ onValue(value);
16
18
  };
17
- // TODO: may noy be needed
18
- // leave no template tag
19
- if (!subject.global.placeholder) {
20
- subject.global.placeholder = swapInsertBefore(insertBefore);
21
- }
22
- const callback = (value) => onValue(value);
23
19
  let syncRun = true;
24
20
  const sub = subject.subscribe(callback);
21
+ contextItem.subject = subject;
25
22
  syncRun = false;
26
- support.subject.global.subscriptions.push(sub);
23
+ const global = support.subject.global;
24
+ const subs = global.subscriptions = global.subscriptions || [];
25
+ subs.push(sub);
27
26
  }
28
27
  //# sourceMappingURL=subscribeToTemplate.function.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscribeToTemplate.function.js","sourceRoot":"","sources":["../../ts/interpolations/subscribeToTemplate.function.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,oDAAoD,CAAA;AAC7F,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAA;AAInF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AAEvE,MAAM,UAAU,mBAAmB,CACjC,QAA0B,EAC1B,YAA0B,EAC1B,OAA2B,EAC3B,OAAmB,EACnB,MAAc;IAEd,IAAI,MAAM,GAAG,KAAK,CAAA;IAClB,MAAM,OAAO,GAAG,CAAC,KAAoB,EAAE,EAAE;QACvC,IAAG,MAAM,EAAE,CAAC;YACV,mBAAmB,CACjB,OAAO,EACP,KAAK,EACL,OAAO,EACP,YAAY,CACb,CAAA;YACD,OAAM;QACR,CAAC;QAED,MAAM,SAAS,GAAG,KAAwB,CAAA;QAC1C,wBAAwB,CACtB,SAAS,EACT,OAAO,EACP,YAAY,EACZ,OAAO,EACP;YACE,MAAM,EAAE,EAAC,GAAG,MAAM,EAAC;SACpB,EACD,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAC/B,CAAA;QAED,MAAM,GAAG,IAAI,CAAA;IACf,CAAC,CAAA;IAED,0BAA0B;IAC1B,wBAAwB;IACxB,IAAG,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAC/B,OAAO,CAAC,MAAM,CAAC,WAAW,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAA;IAC7D,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,KAAoB,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACzD,IAAI,OAAO,GAAG,IAAI,CAAA;IAClB,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,QAAe,CAAC,CAAA;IAC9C,OAAO,GAAG,KAAK,CAAA;IAEf,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAChD,CAAC"}
1
+ {"version":3,"file":"subscribeToTemplate.function.js","sourceRoot":"","sources":["../../ts/interpolations/subscribeToTemplate.function.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,oDAAoD,CAAA;AAE7F,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAI1D,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAA;AAY1E,MAAM,UAAU,mBAAmB,CAAC,EAClC,OAAO,EACP,OAAO,EACP,MAAM,EACN,WAAW,EACX,QAAQ,GACa;IACrB,IAAI,OAAO,GAAG,SAAS,UAAU,CAAC,KAAoB;QACpD,wBAAwB,CACtB,KAAK,EACL,WAAW,EACX,OAAO,EACP,EAAC,GAAG,MAAM,EAAC,EACX,UAAU,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,EAChD,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAC/B,CAAA;QAED,IAAG,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACjD,KAAK,EAAE,CAAA;QACT,CAAC;QAED,8BAA8B;QAC9B,OAAO,GAAG,SAAS,kBAAkB,CAAC,KAAoB;YACxD,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,CAAA;QAC/C,CAAC,CAAA;IACH,CAAC,CAAA;IAED,MAAM,QAAQ,GAAG,SAAS,iBAAiB,CAAC,KAAoB;QAC9D,OAAO,CAAC,KAAK,CAAC,CAAA;IAChB,CAAC,CAAA;IAED,IAAI,OAAO,GAAG,IAAI,CAAA;IAClB,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,QAAe,CAAC,CAAA;IAC9C,WAAW,CAAC,OAAO,GAAG,OAAO,CAAA;IAC7B,OAAO,GAAG,KAAK,CAAA;IAEf,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAmB,CAAA;IAClD,MAAM,IAAI,GAAG,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,EAAE,CAAA;IAC9D,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAChB,CAAC"}
@@ -1,9 +1,13 @@
1
1
  import { SubjectLike } from './subject/subject.utils.js';
2
- import { Dom, Tag } from './tag/Tag.class.js';
2
+ import { Support } from './tag/Support.class.js';
3
+ import { StringTag } from './tag/Tag.class.js';
3
4
  import { TemplaterResult } from './tag/TemplaterResult.class.js';
4
- export declare function isStaticTag(value?: TemplaterResult | Tag | unknown): boolean;
5
- export declare function isTagTemplater(value?: TemplaterResult | unknown): boolean;
6
- export declare function isTagComponent(value?: TemplaterResult | unknown): boolean;
7
- export declare function isTagClass(value?: Tag | Dom | unknown): boolean;
5
+ export declare function isSimpleType(value: any): boolean;
6
+ export declare function isStaticTag(value?: TemplaterResult | StringTag | unknown): boolean;
7
+ /** passed in is expected to be a TemplaterResult */
8
+ export declare function isTagComponent(value?: TemplaterResult | Exclude<unknown, Support>): boolean;
8
9
  export declare function isSubjectInstance(subject?: SubjectLike<any> | any): Boolean;
9
- export declare function isTagArray(value: unknown): boolean;
10
+ export declare function isPromise(value: any): any;
11
+ export declare function isFunction(value: any): boolean;
12
+ export declare function isObject(value: any): boolean;
13
+ export declare function isArray(value: any): boolean;