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
package/js/isInstance.js CHANGED
@@ -1,33 +1,41 @@
1
- import { ValueTypes } from './tag/ValueTypes.enum.js';
2
- export function isStaticTag(value) {
3
- return [
4
- ValueTypes.dom,
5
- ValueTypes.tag,
6
- ValueTypes.templater,
7
- ].includes(value?.tagJsType);
1
+ import { BasicTypes, ImmutableTypes, ValueTypes } from './tag/ValueTypes.enum.js';
2
+ export function isSimpleType(value) {
3
+ switch (value) {
4
+ case ImmutableTypes.string:
5
+ case ImmutableTypes.number:
6
+ case ImmutableTypes.boolean:
7
+ return true;
8
+ }
9
+ return false;
8
10
  }
9
- export function isTagTemplater(value) {
10
- return value?.tagJsType === ValueTypes.templater;
11
+ export function isStaticTag(value) {
12
+ switch (value?.tagJsType) {
13
+ case ValueTypes.dom:
14
+ case ValueTypes.tag:
15
+ case ValueTypes.templater:
16
+ return true;
17
+ }
18
+ return false;
11
19
  }
12
- // TODO: whats the difference between isTagClass and isTagComponent
20
+ /** passed in is expected to be a TemplaterResult */
13
21
  export function isTagComponent(value) {
14
- return value?.tagJsType === ValueTypes.tagComponent;
15
- }
16
- export function isTagClass(value) {
17
- const tagJsType = value?.tagJsType;
18
- return tagJsType && [ValueTypes.tag, ValueTypes.dom].includes(tagJsType);
22
+ const tagType = value?.tagJsType;
23
+ return tagType === ValueTypes.tagComponent || tagType === ValueTypes.stateRender;
19
24
  }
20
25
  // isSubjectLike
21
26
  export function isSubjectInstance(subject) {
22
- const isSubject = subject?.isSubject === true;
23
- return (isSubject || subject?.subscribe) ? true : false; // subject?.isSubject === true ||
24
- }
25
- export function isTagArray(value) {
26
- return value instanceof Array && value.every(x => [
27
- ValueTypes.tag,
28
- ValueTypes.templater,
29
- ValueTypes.dom,
30
- ValueTypes.tagComponent
31
- ].includes(x?.tagJsType));
27
+ return isObject(subject) && typeof subject.subscribe === BasicTypes.function;
28
+ }
29
+ export function isPromise(value) {
30
+ return value && isFunction(value.then);
31
+ }
32
+ export function isFunction(value) {
33
+ return typeof value === BasicTypes.function;
34
+ }
35
+ export function isObject(value) {
36
+ return typeof (value) === BasicTypes.object && value !== null;
37
+ }
38
+ export function isArray(value) {
39
+ return Array.isArray(value);
32
40
  }
33
41
  //# sourceMappingURL=isInstance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isInstance.js","sourceRoot":"","sources":["../ts/isInstance.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,MAAM,UAAU,WAAW,CACzB,KAAuC;IAEvC,OAAO;QACL,UAAU,CAAC,GAAG;QACd,UAAU,CAAC,GAAG;QACd,UAAU,CAAC,SAAS;KACrB,CAAC,QAAQ,CAAG,KAAa,EAAE,SAAS,CAAE,CAAA;AACzC,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,KAAiC;IAEjC,OAAQ,KAAyB,EAAE,SAAS,KAAK,UAAU,CAAC,SAAS,CAAA;AACvE,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,cAAc,CAC5B,KAAiC;IAEjC,OAAQ,KAAyB,EAAE,SAAS,KAAK,UAAU,CAAC,YAAY,CAAA;AAC1E,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,KAA2B;IAE3B,MAAM,SAAS,GAAI,KAAiB,EAAE,SAAS,CAAA;IAC/C,OAAO,SAAS,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;AAC1E,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,iBAAiB,CAC/B,OAAgC;IAEhC,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,KAAK,IAAI,CAAA;IAC7C,OAAO,CAAC,SAAS,IAAI,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAA,CAAC,kCAAkC;AAC5F,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,UAAU,CAAC,GAAG;QACd,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,GAAG;QACd,UAAU,CAAC,YAAY;KACxB,CAAC,QAAQ,CAAE,CAAC,EAAE,SAAS,CAAE,CAAC,CAAA;AAC7B,CAAC"}
1
+ {"version":3,"file":"isInstance.js","sourceRoot":"","sources":["../ts/isInstance.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAEjF,MAAM,UAAU,YAAY,CAAC,KAAU;IACrC,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,cAAc,CAAC,MAAM,CAAC;QAC3B,KAAK,cAAc,CAAC,MAAM,CAAC;QAC3B,KAAK,cAAc,CAAC,OAAO;YACzB,OAAO,IAAI,CAAA;IACf,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,KAA6C;IAE7C,QAAS,KAAa,EAAE,SAAS,EAAE,CAAC;QAClC,KAAK,UAAU,CAAC,GAAG,CAAC;QACpB,KAAK,UAAU,CAAC,GAAG,CAAC;QACpB,KAAK,UAAU,CAAC,SAAS;YACvB,OAAO,IAAI,CAAA;IACf,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,cAAc,CAC5B,KAAmD;IAEnD,MAAM,OAAO,GAAI,KAAyB,EAAE,SAAS,CAAA;IACrD,OAAO,OAAO,KAAK,UAAU,CAAC,YAAY,IAAI,OAAO,KAAK,UAAU,CAAC,WAAW,CAAA;AAClF,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,iBAAiB,CAC/B,OAAgC;IAEhC,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,UAAU,CAAC,QAAQ,CAAA;AAC9E,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAU;IAClC,OAAO,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AACxC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAU;IACnC,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC,QAAQ,CAAA;AAC7C,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAU;IACjC,OAAO,OAAM,CAAC,KAAK,CAAC,KAAK,UAAU,CAAC,MAAM,IAAI,KAAK,KAAK,IAAI,CAAA;AAC9D,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAU;IAChC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAC7B,CAAC"}
@@ -1,4 +1,4 @@
1
1
  export type Callback<A, B, C, D, E, F, T> = (a: A, b: B, c: C, d: D, e: E, f: F) => T;
2
2
  export declare const callbackMaker: () => <A, B, C, D, E, F, T>(callback: Callback<A, B, C, D, E, F, T>) => (a?: A | undefined, b?: B | undefined, c?: C | undefined, d?: D | undefined, e?: E | undefined, f?: F | undefined) => T;
3
3
  /** Wrap a function that will be called back. After the wrapper and function are called, a rendering cycle will update display */
4
- export declare function callback<A, B, C, D, E, F, T>(callback: Callback<A, B, C, D, E, F, T>): () => T;
4
+ export declare function callback<A, B, C, D, E, F, T>(callback: Callback<A, B, C, D, E, F, T>): (A?: A, B?: B, C?: C, D?: D, E?: E, F?: F) => T;
@@ -1,20 +1,21 @@
1
- import { setUse } from './setUse.function.js';
1
+ import { setUseMemory } from './setUse.function.js';
2
2
  import { SyncCallbackError } from '../errors.js';
3
3
  import { getSupportInCycle } from '../tag/getSupportInCycle.function.js';
4
4
  import callbackStateUpdate from './callbackStateUpdate.function.js';
5
5
  let innerCallback = (callback) => (a, b, c, d, e, f) => {
6
6
  throw new SyncCallbackError('Callback function was called immediately in sync and must instead be call async');
7
7
  };
8
- export const callbackMaker = () => innerCallback;
9
- const originalGetter = innerCallback; // callbackMaker
10
- setUse({
11
- beforeRender: support => initMemory(support),
12
- beforeRedraw: support => initMemory(support),
13
- afterRender: support => {
14
- support.subject.global.callbackMaker = true;
15
- innerCallback = originalGetter; // prevent crossing callbacks with another tag
16
- },
17
- });
8
+ export const callbackMaker = () => {
9
+ const support = getSupportInCycle();
10
+ // callback as typeof innerCallback
11
+ if (!support) {
12
+ throw syncError;
13
+ }
14
+ const oldState = setUseMemory.stateConfig.array;
15
+ return function triggerMaker(callback) {
16
+ return createTrigger(support, oldState, callback);
17
+ };
18
+ };
18
19
  const syncError = new SyncCallbackError('callback() was called outside of synchronous rendering. Use `callback = callbackMaker()` to create a callback that could be called out of sync with rendering');
19
20
  /** Wrap a function that will be called back. After the wrapper and function are called, a rendering cycle will update display */
20
21
  export function callback(callback) {
@@ -22,27 +23,17 @@ export function callback(callback) {
22
23
  if (!support) {
23
24
  throw syncError;
24
25
  }
25
- const oldState = setUse.memory.stateConfig.array;
26
- const trigger = (...args) => {
27
- const callbackMaker = support.subject.global.callbackMaker;
26
+ return createTrigger(support, setUseMemory.stateConfig.array, callback);
27
+ }
28
+ function createTrigger(support, oldState, toCallback) {
29
+ return function trigger(...args) {
30
+ const global = support.subject.global;
31
+ const callbackMaker = global.renderCount > 0;
28
32
  if (callbackMaker) {
29
- return callbackStateUpdate(support, callback, oldState, ...args);
33
+ return callbackStateUpdate(support, toCallback, oldState, ...args);
30
34
  }
31
- return callback(...args);
32
- };
33
- return trigger;
34
- }
35
- function initMemory(support) {
36
- const oldState = setUse.memory.stateConfig.array;
37
- innerCallback = (callback) => {
38
- const trigger = (...args) => {
39
- const callbackMaker = support.subject.global.callbackMaker;
40
- if (callbackMaker) {
41
- return callbackStateUpdate(support, callback, oldState, ...args);
42
- }
43
- return callback(...args);
44
- };
45
- return trigger;
35
+ // we are in sync with rendering, just run callback naturally
36
+ return toCallback(...args);
46
37
  };
47
38
  }
48
39
  //# sourceMappingURL=callbackMaker.function.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"callbackMaker.function.js","sourceRoot":"","sources":["../../ts/state/callbackMaker.function.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AACxE,OAAO,mBAAmB,MAAM,mCAAmC,CAAA;AAOnE,IAAI,aAAa,GAAG,CAClB,QAAiC,EACjC,EAAE,CAAC,CAAC,CAAI,EAAE,CAAI,EAAE,CAAI,EAAE,CAAI,EAAE,CAAI,EAAE,CAAI,EAAK,EAAE;IAC7C,MAAM,IAAI,iBAAiB,CAAC,iFAAiF,CAAC,CAAA;AAChH,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,aAAa,CAAA;AAEhD,MAAM,cAAc,GAAG,aAAa,CAAA,CAAC,gBAAgB;AAErD,MAAM,CAAC;IACL,YAAY,EAAE,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;IAC5C,YAAY,EAAE,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;IAC5C,WAAW,EAAE,OAAO,CAAC,EAAE;QACrB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAA;QAC3C,aAAa,GAAG,cAAc,CAAA,CAAC,8CAA8C;IAC/E,CAAC;CACF,CAAC,CAAA;AAEF,MAAM,SAAS,GAAG,IAAI,iBAAiB,CAAC,+JAA+J,CAAC,CAAA;AAExM,iIAAiI;AACjI,MAAM,UAAU,QAAQ,CACtB,QAAuC;IAEvC,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAA;IAEnC,IAAG,CAAC,OAAO,EAAE,CAAC;QACZ,MAAM,SAAS,CAAA;IACjB,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAA;IAChD,MAAM,OAAO,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE;QACjC,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAA;QAE1D,IAAG,aAAa,EAAE,CAAC;YACjB,OAAO,mBAAmB,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAA;QAClE,CAAC;QAED,OAAQ,QAAgB,CAAC,GAAG,IAAI,CAAC,CAAA;IACnC,CAAC,CAAA;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAS,UAAU,CAAE,OAA8B;IACjD,MAAM,QAAQ,GAAU,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAA;IACvD,aAAa,GAAG,CACd,QAAqD,EACrD,EAAE;QACF,MAAM,OAAO,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE;YACjC,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAA;YAE1D,IAAG,aAAa,EAAE,CAAC;gBACjB,OAAO,mBAAmB,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAA;YAClE,CAAC;YAED,OAAQ,QAAgB,CAAC,GAAG,IAAI,CAAC,CAAA;QACnC,CAAC,CAAA;QAED,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"callbackMaker.function.js","sourceRoot":"","sources":["../../ts/state/callbackMaker.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AACxE,OAAO,mBAAmB,MAAM,mCAAmC,CAAA;AAUnE,IAAI,aAAa,GAAG,CAClB,QAAiC,EACjC,EAAE,CAAC,CAAC,CAAI,EAAE,CAAI,EAAE,CAAI,EAAE,CAAI,EAAE,CAAI,EAAE,CAAI,EAAK,EAAE;IAC7C,MAAM,IAAI,iBAAiB,CAAC,iFAAiF,CAAC,CAAA;AAChH,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE;IAChC,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAA;IACnC,mCAAmC;IAEnC,IAAG,CAAC,OAAO,EAAE,CAAC;QACZ,MAAM,SAAS,CAAA;IACjB,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,CAAC,KAAK,CAAA;IAC/C,OAAO,SAAS,YAAY,CAC1B,QAAuC;QAEvC,OAAO,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;IACnD,CAAyB,CAAA;AAC3B,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,IAAI,iBAAiB,CAAC,+JAA+J,CAAC,CAAA;AAExM,iIAAiI;AACjI,MAAM,UAAU,QAAQ,CACtB,QAAuC;IAEvC,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAA;IAEnC,IAAG,CAAC,OAAO,EAAE,CAAC;QACZ,MAAM,SAAS,CAAA;IACjB,CAAC;IAED,OAAO,aAAa,CAAC,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;AACzE,CAAC;AAED,SAAS,aAAa,CACpB,OAAmB,EACnB,QAAe,EACf,UAAyC;IAEzC,OAAO,SAAS,OAAO,CAAC,GAAG,IAAW;QACpC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAmB,CAAA;QAClD,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,GAAG,CAAC,CAAA;QAE5C,IAAG,aAAa,EAAE,CAAC;YACjB,OAAO,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAA;QACpE,CAAC;QAED,6DAA6D;QAC7D,OAAQ,UAAkB,CAAC,GAAG,IAAI,CAAC,CAAA;IACrC,CAAC,CAAA;AACH,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import { BaseSupport, Support } from '../tag/Support.class.js';
2
- import { State } from './state.utils.js';
2
+ import { State } from './state.types.js';
3
3
  import { Callback } from './callbackMaker.function.js';
4
4
  export default function callbackStateUpdate<T>(support: Support | BaseSupport, callback: Callback<any, any, any, any, any, any, T>, oldState: State, ...args: any[]): T;
@@ -1,6 +1,9 @@
1
1
  import { renderSupport } from '../tag/render/renderSupport.function.js';
2
2
  import { syncStates } from './syncStates.function.js';
3
+ import { isPromise } from '../isInstance.js';
3
4
  export default function callbackStateUpdate(support, callback, oldState, ...args) {
5
+ const global = support.subject.global;
6
+ support = global.newest; // || support
4
7
  const state = support.state;
5
8
  // ensure that the oldest has the latest values first
6
9
  syncStates(state, oldState);
@@ -8,14 +11,12 @@ export default function callbackStateUpdate(support, callback, oldState, ...args
8
11
  const maybePromise = callback(...args);
9
12
  // send the oldest state changes into the newest
10
13
  syncStates(oldState, state);
11
- renderSupport(support, // support.global.newest as Support,
12
- false);
13
- if (maybePromise instanceof Promise) {
14
+ renderSupport(support);
15
+ if (isPromise(maybePromise)) {
14
16
  maybePromise.finally(() => {
15
17
  // send the oldest state changes into the newest
16
18
  syncStates(oldState, state);
17
- renderSupport(support, // support.global.newest as Support,
18
- false);
19
+ renderSupport(support);
19
20
  });
20
21
  }
21
22
  // return undefined as T
@@ -1 +1 @@
1
- {"version":3,"file":"callbackStateUpdate.function.js","sourceRoot":"","sources":["../../ts/state/callbackStateUpdate.function.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAA;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAGrD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CACzC,OAA8B,EAC9B,QAAkD,EAClD,QAAe,EACf,GAAG,IAAW;IAEd,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;IAE3B,qDAAqD;IACrD,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IAE3B,mBAAmB;IACnB,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,IAAiC,CAAC,CAAA;IAEnE,gDAAgD;IAChD,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IAC3B,aAAa,CACX,OAAO,EAAE,oCAAoC;IAC7C,KAAK,CACN,CAAA;IAED,IAAG,YAAY,YAAY,OAAO,EAAE,CAAC;QACnC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE;YACxB,gDAAgD;YAChD,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;YAE3B,aAAa,CACX,OAAO,EAAE,oCAAoC;YAC7C,KAAK,CACN,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,wBAAwB;IACxB,OAAO,YAAY,CAAA;AACrB,CAAC"}
1
+ {"version":3,"file":"callbackStateUpdate.function.js","sourceRoot":"","sources":["../../ts/state/callbackStateUpdate.function.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAA;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAGrD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE5C,MAAM,CAAC,OAAO,UAAU,mBAAmB,CACzC,OAA8B,EAC9B,QAAkD,EAClD,QAAe,EACf,GAAG,IAAW;IAEd,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAA0B,CAAA;IACzD,OAAO,GAAG,MAAM,CAAC,MAAM,CAAA,CAAC,aAAa;IACrC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;IAC3B,qDAAqD;IACrD,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IAE3B,mBAAmB;IACnB,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,IAAiC,CAAC,CAAA;IAEnE,gDAAgD;IAChD,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IAC3B,aAAa,CAAC,OAAO,CAAC,CAAA;IAEtB,IAAG,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;QAC1B,YAA6B,CAAC,OAAO,CAAC,GAAG,EAAE;YAC1C,gDAAgD;YAChD,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;YAE3B,aAAa,CAAC,OAAO,CAAC,CAAA;QACxB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,wBAAwB;IACxB,OAAO,YAAY,CAAA;AACrB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { StateConfig } from "./state.utils.js";
2
+ export declare class StateEchoBack {
3
+ }
4
+ export declare function getCallbackValue<T>(callback: StateConfig<T>): [T, T];
@@ -0,0 +1,10 @@
1
+ export class StateEchoBack {
2
+ }
3
+ // sends a fake value and then sets back to received value
4
+ export function getCallbackValue(callback) {
5
+ const oldState = callback(StateEchoBack); // get value and set to undefined
6
+ const [value] = oldState;
7
+ const [checkValue] = callback(value); // set back to original value
8
+ return [value, checkValue];
9
+ }
10
+ //# sourceMappingURL=getCallbackValue.function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCallbackValue.function.js","sourceRoot":"","sources":["../../ts/state/getCallbackValue.function.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,aAAa;CAAG;AAE7B,0DAA0D;AAC1D,MAAM,UAAU,gBAAgB,CAC9B,QAAwB;IAExB,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAoB,CAAC,CAAA,CAAC,iCAAiC;IACjF,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAA;IAExB,MAAM,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAE,KAAK,CAAE,CAAA,CAAC,6BAA6B;IACpE,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;AAC5B,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { StateConfigItem } from './state.types.js';
2
+ export declare function getStateValue<T>(state: StateConfigItem<T>): T | undefined;
@@ -0,0 +1,24 @@
1
+ import { getCallbackValue } from './state.utils.js';
2
+ const badLetState = 'letState function incorrectly used. Second item in array is not setting expected value.\n\n' +
3
+ 'For "let" state use `let name = state(default)(x => [name, name = x])`\n\n' +
4
+ 'For "const" state use `const name = state(default)()`\n\n' +
5
+ 'Problem state:\n';
6
+ export function getStateValue(state) {
7
+ const callback = state.callback;
8
+ // state()
9
+ if (!callback) {
10
+ return state.defaultValue;
11
+ }
12
+ // letState()
13
+ const [value, checkValue] = getCallbackValue(callback);
14
+ // TODO: not needed in production, needed in development
15
+ /*
16
+ if(checkValue !== StateEchoBack) {
17
+ const message = badLetState + (callback ? callback.toString() : JSON.stringify(state)) +'\n'
18
+ console.error(message, {state, callback, value, checkValue})
19
+ throw new Error(message)
20
+ }
21
+ */
22
+ return value;
23
+ }
24
+ //# sourceMappingURL=getStateValue.function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getStateValue.function.js","sourceRoot":"","sources":["../../ts/state/getStateValue.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAGnD,MAAM,WAAW,GAAG,6FAA6F;IACjH,4EAA4E;IAC5E,2DAA2D;IAC3D,kBAAkB,CAAA;AAElB,MAAM,UAAU,aAAa,CAC3B,KAAyB;IAEzB,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;IAE/B,UAAU;IACV,IAAG,CAAC,QAAQ,EAAE,CAAC;QACb,OAAO,KAAK,CAAC,YAAY,CAAA;IAC3B,CAAC;IAED,aAAa;IACb,MAAM,CAAC,KAAK,EAAC,UAAU,CAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IAErD,wDAAwD;IACxD;;;;;;MAME;IAEF,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -1,3 +1,9 @@
1
1
  import { Provider } from './providers.js';
2
2
  import { Support } from '../tag/Support.class.js';
3
- export declare function handleProviderChanges(appSupport: Support, provider: Provider): boolean;
3
+ export declare function handleProviderChanges(appSupport: Support, provider: Provider): TagWithProvider[];
4
+ type TagWithProvider = {
5
+ support: Support;
6
+ renderCount: number;
7
+ provider: Provider;
8
+ };
9
+ export {};
@@ -1,36 +1,22 @@
1
- import { deepClone } from '../deepFunctions.js';
2
- import { renderSupport } from '../tag/render/renderSupport.function.js';
3
1
  export function handleProviderChanges(appSupport, provider) {
4
- let hadChanged = false;
5
2
  const tagsWithProvider = getTagsWithProvider(appSupport, provider);
6
- for (let index = tagsWithProvider.length - 1; index >= 0; --index) {
7
- const { support, renderCount, provider } = tagsWithProvider[index];
8
- if (support.subject.global.deleted) {
9
- continue; // i was deleted after another tag processed
10
- }
11
- const notRendered = renderCount === support.subject.global.renderCount;
12
- if (notRendered) {
13
- hadChanged = true;
14
- provider.clone = deepClone(provider.instance);
15
- renderSupport(support.subject.global.newest, // support, // support.subject.global.newest as Support,
16
- false);
17
- continue;
18
- }
19
- }
20
- return hadChanged;
3
+ return tagsWithProvider;
21
4
  }
22
5
  /** Updates and returns memory of tag providers */
23
6
  function getTagsWithProvider(support, provider, memory = []) {
7
+ const global = support.subject.global;
24
8
  memory.push({
25
9
  support,
26
- renderCount: support.subject.global.renderCount,
10
+ renderCount: global.renderCount,
27
11
  provider,
28
12
  });
29
13
  const childTags = provider.children;
30
14
  for (let index = childTags.length - 1; index >= 0; --index) {
15
+ const child = childTags[index];
16
+ const cGlobal = child.subject.global;
31
17
  memory.push({
32
- support: childTags[index],
33
- renderCount: childTags[index].subject.global.renderCount,
18
+ support: child,
19
+ renderCount: cGlobal.renderCount,
34
20
  provider,
35
21
  });
36
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"handleProviderChanges.function.js","sourceRoot":"","sources":["../../ts/state/handleProviderChanges.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAK,yCAAyC,CAAA;AAGtE,MAAM,UAAU,qBAAqB,CACnC,UAAmB,EACnB,QAAkB;IAElB,IAAI,UAAU,GAAG,KAAK,CAAA;IACtB,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IAClE,KAAK,IAAI,KAAK,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;QAClE,MAAM,EAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;QAChE,IAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAClC,SAAQ,CAAC,4CAA4C;QACvD,CAAC;QAED,MAAM,WAAW,GAAG,WAAW,KAAK,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAA;QACtE,IAAG,WAAW,EAAE,CAAC;YACf,UAAU,GAAG,IAAI,CAAA;YACjB,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YAC7C,aAAa,CACX,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAiB,EAAE,wDAAwD;YAClG,KAAK,CACN,CAAA;YACD,SAAQ;QACV,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,kDAAkD;AAClD,SAAS,mBAAmB,CAC1B,OAAgB,EAChB,QAAkB,EAClB,SAA4B,EAAE;IAE9B,MAAM,CAAC,IAAI,CAAC;QACV,OAAO;QACP,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW;QAC/C,QAAQ;KACT,CAAC,CAAA;IAEF,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAA;IACnC,KAAK,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;QAC3D,MAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC;YACzB,WAAW,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW;YACxD,QAAQ;SACT,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"handleProviderChanges.function.js","sourceRoot":"","sources":["../../ts/state/handleProviderChanges.function.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,qBAAqB,CACnC,UAAmB,EACnB,QAAkB;IAElB,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IAElE,OAAO,gBAAgB,CAAA;AACzB,CAAC;AAED,kDAAkD;AAClD,SAAS,mBAAmB,CAC1B,OAAgB,EAChB,QAAkB,EAClB,SAA4B,EAAE;IAE9B,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAmB,CAAA;IAClD,MAAM,CAAC,IAAI,CAAC;QACV,OAAO;QACP,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,QAAQ;KACT,CAAC,CAAA;IAEF,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAA;IACnC,KAAK,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;QAC3D,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;QAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAmB,CAAA;QACjD,MAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,QAAQ;SACT,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -1,12 +1,11 @@
1
1
  export * from './watch.function.js';
2
- export { setUse } from './setUse.function.js';
2
+ export { setUseMemory } from './setUse.function.js';
3
3
  export { state } from './state.function.js';
4
4
  export * from './subject.function.js';
5
5
  export * from './letProp.function.js';
6
6
  export { letState } from './letState.function.js';
7
- export type { State } from './state.utils.js';
7
+ export * from './state.types.js';
8
8
  export { providers } from './providers.js';
9
9
  export * from './callbackMaker.function.js';
10
10
  export * from './onInit.js';
11
11
  export * from './onDestroy.js';
12
- export * from './children.js';
package/js/state/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  export * from './watch.function.js';
2
- export { setUse } from './setUse.function.js';
2
+ export { setUseMemory } from './setUse.function.js';
3
3
  export { state } from './state.function.js';
4
4
  export * from './subject.function.js';
5
5
  export * from './letProp.function.js';
6
6
  export { letState } from './letState.function.js';
7
+ export * from './state.types.js';
7
8
  export { providers } from './providers.js';
8
9
  export * from './callbackMaker.function.js';
9
10
  export * from './onInit.js';
10
11
  export * from './onDestroy.js';
11
- export * from './children.js';
12
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../ts/state/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAC3C,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAEjD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../ts/state/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAC3C,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,cAAc,kBAAkB,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA"}
@@ -1,3 +1,5 @@
1
1
  import { GetSet } from './state.utils.js';
2
2
  /** Used for variables that need to remain the same variable during render passes. If defaultValue is a function it is called only once, its return value is first state, and let value can changed */
3
3
  export declare function letState<T>(defaultValue: T | (() => T)): ((getSet: GetSet<T>) => T);
4
+ export declare function firstLetState<T>(defaultValue: T | (() => T)): (y: any) => any;
5
+ export declare function reLetState<T>(): (y: any) => T;
@@ -1,42 +1,42 @@
1
- import { getStateValue } from './state.utils.js';
2
- import { setUse } from './setUse.function.js';
1
+ import { getStateValue } from './getStateValue.function.js';
2
+ import { BasicTypes } from '../tag/ValueTypes.enum.js';
3
+ import { setUseMemory } from './setUse.function.js';
3
4
  /** Used for variables that need to remain the same variable during render passes. If defaultValue is a function it is called only once, its return value is first state, and let value can changed */
4
5
  export function letState(defaultValue) {
5
- const config = setUse.memory.stateConfig;
6
- const rearray = config.rearray;
7
- let getSetMethod;
8
- const restate = rearray[config.array.length];
9
- if (restate) {
10
- let oldValue = getStateValue(restate);
11
- getSetMethod = ((x) => [oldValue, oldValue = x]);
12
- const push = {
13
- get: () => getStateValue(push),
14
- callback: getSetMethod,
15
- lastValue: oldValue,
16
- defaultValue: restate.defaultValue,
17
- };
18
- config.array.push(push);
19
- return makeStateResult(oldValue, push);
20
- }
6
+ const config = setUseMemory.stateConfig;
7
+ return config.handlers.letHandler(defaultValue);
8
+ }
9
+ export function firstLetState(defaultValue) {
10
+ const config = setUseMemory.stateConfig;
21
11
  // State first time run
22
- const defaultFn = defaultValue instanceof Function ? defaultValue : () => defaultValue;
23
- let initValue = defaultFn();
24
- getSetMethod = ((x) => [initValue, initValue = x]);
12
+ const initValue = typeof (defaultValue) === BasicTypes.function ? defaultValue() : defaultValue;
25
13
  const push = {
26
- get: () => getStateValue(push),
27
- callback: getSetMethod,
28
- lastValue: initValue,
14
+ get: function getPushState() {
15
+ return getStateValue(push);
16
+ },
29
17
  defaultValue: initValue,
30
18
  };
31
19
  config.array.push(push);
32
20
  return makeStateResult(initValue, push);
33
21
  }
22
+ export function reLetState() {
23
+ const config = setUseMemory.stateConfig;
24
+ const rearray = config.rearray;
25
+ const restate = rearray[config.array.length];
26
+ let oldValue = getStateValue(restate);
27
+ const push = {
28
+ get: function getLetState() {
29
+ return getStateValue(push);
30
+ },
31
+ defaultValue: restate.defaultValue,
32
+ };
33
+ config.array.push(push);
34
+ return makeStateResult(oldValue, push);
35
+ }
34
36
  function makeStateResult(initValue, push) {
35
- // return initValue
36
- const result = (y) => {
37
- push.callback = y || (x => [initValue, initValue = x]);
37
+ return function msr(y) {
38
+ push.callback = y;
38
39
  return initValue;
39
40
  };
40
- return result;
41
41
  }
42
42
  //# sourceMappingURL=letState.function.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"letState.function.js","sourceRoot":"","sources":["../../ts/state/letState.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuD,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACrG,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAE7C,sMAAsM;AACtM,MAAM,UAAU,QAAQ,CACtB,YAA2B;IAE3B,MAAM,MAAM,GAAW,MAAM,CAAC,MAAM,CAAC,WAAW,CAAA;IAChD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAgB,CAAA;IACvC,IAAI,YAA4B,CAAA;IAEhC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAE5C,IAAG,OAAO,EAAE,CAAC;QACX,IAAI,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAM,CAAA;QAE1C,YAAY,GAAG,CAAC,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAA;QACnD,MAAM,IAAI,GAAuB;YAC/B,GAAG,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAM;YACnC,QAAQ,EAAE,YAAY;YACtB,SAAS,EAAE,QAAQ;YACnB,YAAY,EAAE,OAAO,CAAC,YAAY;SACnC,CAAA;QAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEvB,OAAO,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IACxC,CAAC;IAED,uBAAuB;IACvB,MAAM,SAAS,GAAG,YAAY,YAAY,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,YAAY,CAAA;IACtF,IAAI,SAAS,GAAG,SAAS,EAAE,CAAA;IAE3B,YAAY,GAAG,CAAC,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,CAAA;IACrD,MAAM,IAAI,GAAuB;QAC/B,GAAG,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAM;QACnC,QAAQ,EAAE,YAAY;QACtB,SAAS,EAAE,SAAS;QACpB,YAAY,EAAE,SAAS;KACxB,CAAA;IACD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEvB,OAAO,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;AACzC,CAAC;AAED,SAAS,eAAe,CACtB,SAAY,EACZ,IAAwB;IAExB,mBAAmB;IACnB,MAAM,MAAM,GAAI,CAAC,CAAM,EAAE,EAAE;QACzB,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,CAAA;QAEtD,OAAO,SAAS,CAAA;IAClB,CAAC,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"letState.function.js","sourceRoot":"","sources":["../../ts/state/letState.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAGnD,sMAAsM;AACtM,MAAM,UAAU,QAAQ,CACtB,YAA2B;IAE3B,MAAM,MAAM,GAAW,YAAY,CAAC,WAAW,CAAA;IAC/C,OAAO,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;AACjD,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,YAA2B;IAE3B,MAAM,MAAM,GAAW,YAAY,CAAC,WAAW,CAAA;IAC/C,uBAAuB;IACvB,MAAM,SAAS,GAAG,OAAM,CAAC,YAAY,CAAC,KAAK,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAE,YAAyB,EAAE,CAAC,CAAC,CAAC,YAAY,CAAA;IAC5G,MAAM,IAAI,GAAuB;QAC/B,GAAG,EAAE,SAAS,YAAY;YACxB,OAAO,aAAa,CAAC,IAAI,CAAM,CAAA;QACjC,CAAC;QACD,YAAY,EAAE,SAAS;KACxB,CAAA;IACD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEvB,OAAO,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;AACzC,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,MAAM,MAAM,GAAW,YAAY,CAAC,WAAW,CAAA;IAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAgB,CAAA;IACvC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAG5C,IAAI,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAM,CAAA;IAE1C,MAAM,IAAI,GAAuB;QAC/B,GAAG,EAAE,SAAS,WAAW;YACvB,OAAO,aAAa,CAAC,IAAI,CAAM,CAAA;QACjC,CAAC;QACD,YAAY,EAAE,OAAO,CAAC,YAAY;KACnC,CAAA;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEvB,OAAO,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;AACxC,CAAC;AAED,SAAS,eAAe,CACtB,SAAY,EACZ,IAAwB;IAExB,OAAO,SAAS,GAAG,CAAC,CAAM;QACxB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAA;QACjB,OAAO,SAAS,CAAA;IAClB,CAAC,CAAA;AACH,CAAC"}
@@ -1,9 +1,10 @@
1
1
  import { getSupportInCycle } from "../tag/getSupportInCycle.function.js";
2
2
  import { state } from "./state.function.js";
3
3
  export function onDestroy(callback) {
4
- state(() => {
4
+ state(function stateDestroy() {
5
5
  const support = getSupportInCycle();
6
- support?.subject.global.destroy$.toCallback(callback);
6
+ const global = support.subject.global;
7
+ global.destroy$.toCallback(callback);
7
8
  });
8
9
  }
9
10
  //# sourceMappingURL=onDestroy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"onDestroy.js","sourceRoot":"","sources":["../../ts/state/onDestroy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AACxE,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAI3C,MAAM,UAAU,SAAS,CACvB,QAA2B;IAE3B,KAAK,CAAC,GAAG,EAAE;QACT,MAAM,OAAO,GAAG,iBAAiB,EAAa,CAAA;QAC9C,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;IACvD,CAAC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"onDestroy.js","sourceRoot":"","sources":["../../ts/state/onDestroy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AACxE,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAI3C,MAAM,UAAU,SAAS,CACvB,QAA2B;IAE3B,KAAK,CAAC,SAAS,YAAY;QACzB,MAAM,OAAO,GAAG,iBAAiB,EAAa,CAAA;QAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAA0B,CAAA;QACzD,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;IACtC,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -2,7 +2,6 @@ import { Support } from '../tag/Support.class.js';
2
2
  export type Provider = {
3
3
  constructMethod: any;
4
4
  instance: any;
5
- clone: any;
6
5
  stateDiff: number;
7
6
  owner: Support;
8
7
  children: Support[];
@@ -1,40 +1,40 @@
1
- import { deepClone } from '../deepFunctions.js';
2
- import { setUse } from './setUse.function.js';
1
+ import { getSupportInCycle } from '../tag/getSupportInCycle.function.js';
2
+ import { setUseMemory } from './setUse.function.js';
3
3
  import { state } from './state.function.js';
4
4
  export const providers = {
5
5
  create: (constructMethod) => {
6
6
  const stateDiffMemory = state(() => ({ stateDiff: 0, provider: undefined }));
7
7
  // mimic how many states were called the first time
8
8
  if (stateDiffMemory.stateDiff) {
9
- for (let x = stateDiffMemory.stateDiff; x > 0; --x) {
9
+ let x = stateDiffMemory.stateDiff;
10
+ while (x--) {
10
11
  state(undefined);
11
12
  }
12
13
  const result = state(undefined);
13
14
  return result;
14
15
  }
15
16
  const result = state(() => {
16
- const memory = setUse.memory;
17
- const stateConfig = memory.stateConfig;
17
+ const stateConfig = setUseMemory.stateConfig;
18
18
  const oldStateCount = stateConfig.array.length;
19
19
  // Providers with provider requirements just need to use providers.create() and providers.inject()
20
- const instance = 'prototype' in constructMethod ? new constructMethod() : constructMethod();
20
+ const instance = constructMethod.prototype ? new constructMethod() : constructMethod();
21
21
  const support = stateConfig.support;
22
22
  const stateDiff = stateConfig.array.length - oldStateCount;
23
23
  const provider = {
24
24
  constructMethod,
25
25
  instance,
26
- clone: deepClone(instance),
27
26
  stateDiff,
28
27
  owner: support,
29
28
  children: [],
30
29
  };
31
30
  stateDiffMemory.provider = provider;
32
- support.subject.global.providers.push(provider);
31
+ const global = support.subject.global;
32
+ const providers = global.providers = global.providers || [];
33
+ providers.push(provider);
33
34
  stateDiffMemory.stateDiff = stateDiff;
34
35
  return instance;
35
36
  });
36
37
  const cm = constructMethod;
37
- // const compareTo = cm.compareTo = cm.compareTo || cm.toString()
38
38
  const compareTo = cm.compareTo = cm.toString();
39
39
  stateDiffMemory.provider.constructMethod.compareTo = compareTo;
40
40
  return result;
@@ -47,16 +47,21 @@ export const providers = {
47
47
  inject: (constructor) => {
48
48
  // find once, return same every time after
49
49
  return state(() => {
50
- const memory = setUse.memory;
50
+ // const memory = setUse.memory
51
51
  const cm = constructor;
52
52
  const compareTo = cm.compareTo = cm.compareTo || constructor.toString();
53
- const support = memory.stateConfig.support;
53
+ const support = getSupportInCycle(); // memory.stateConfig.support as Support
54
54
  const providers = [];
55
55
  let owner = {
56
56
  ownerSupport: support.ownerSupport
57
57
  };
58
58
  while (owner.ownerSupport) {
59
- const ownerProviders = owner.ownerSupport.subject.global.providers;
59
+ const ownGlobal = owner.ownerSupport.subject.global;
60
+ const ownerProviders = ownGlobal.providers;
61
+ if (!ownerProviders) {
62
+ owner = owner.ownerSupport; // cause reloop checking next parent
63
+ continue;
64
+ }
60
65
  const provider = ownerProviders.find(provider => {
61
66
  providers.push(provider);
62
67
  const constructorMatch = provider.constructMethod.compareTo === compareTo;
@@ -65,9 +70,9 @@ export const providers = {
65
70
  }
66
71
  });
67
72
  if (provider) {
68
- provider.clone = deepClone(provider.instance); // keep a copy of the latest before any change occur
69
- const support = memory.stateConfig.support;
70
- support.subject.global.providers.push(provider);
73
+ const global = support.subject.global;
74
+ const providers = global.providers = global.providers || [];
75
+ providers.push(provider);
71
76
  provider.children.push(support);
72
77
  return provider.instance;
73
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../ts/state/providers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../ts/state/providers.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { BaseSupport, Support } from '../tag/Support.class.js';
2
- export declare function providersChangeCheck(support: Support | BaseSupport): boolean;
1
+ import { AnySupport } from '../tag/Support.class.js';
2
+ export declare function providersChangeCheck(support: AnySupport): AnySupport[];