taggedjs 2.3.27 → 2.3.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (399) hide show
  1. package/index.js +1 -1
  2. package/js/CustomError.d.ts +7 -0
  3. package/js/CustomError.js +9 -0
  4. package/js/CustomError.js.map +1 -0
  5. package/js/Errors.d.ts +14 -0
  6. package/js/Errors.js +21 -0
  7. package/js/Errors.js.map +1 -0
  8. package/js/Errors2.d.ts +14 -0
  9. package/js/Errors2.js +21 -0
  10. package/js/Errors2.js.map +1 -0
  11. package/js/Subject.d.ts +3 -2
  12. package/js/Subject.js +11 -7
  13. package/js/Subject.js.map +1 -1
  14. package/js/Tag.class.d.ts +6 -8
  15. package/js/Tag.class.js +35 -63
  16. package/js/Tag.class.js.map +1 -1
  17. package/js/Tag.utils.d.ts +9 -5
  18. package/js/Tag.utils.js +4 -16
  19. package/js/Tag.utils.js.map +1 -1
  20. package/js/TagSupport.class.d.ts +23 -0
  21. package/js/TagSupport.class.js +86 -0
  22. package/js/TagSupport.class.js.map +1 -0
  23. package/js/ValueSubject.d.ts +2 -2
  24. package/js/ValueSubject.js +3 -3
  25. package/js/ValueSubject.js.map +1 -1
  26. package/js/bindSubjectCallback.function.d.ts +6 -3
  27. package/js/bindSubjectCallback.function.js +25 -13
  28. package/js/bindSubjectCallback.function.js.map +1 -1
  29. package/js/deepFunctions.js +9 -4
  30. package/js/deepFunctions.js.map +1 -1
  31. package/js/elementDestroyCheck.function.d.ts +3 -3
  32. package/js/elementDestroyCheck.function.js.map +1 -1
  33. package/js/elementInitCheck.d.ts +1 -1
  34. package/js/elementInitCheck.js +4 -4
  35. package/js/elementInitCheck.js.map +1 -1
  36. package/js/gateway/loadTagGateway.function.d.ts +2 -2
  37. package/js/gateway/loadTagGateway.function.js.map +1 -1
  38. package/js/gateway/tagGateway.function.d.ts +3 -2
  39. package/js/gateway/tagGateway.function.js.map +1 -1
  40. package/js/gateway/tagGateway.utils.d.ts +4 -3
  41. package/js/gateway/tagGateway.utils.js +5 -7
  42. package/js/gateway/tagGateway.utils.js.map +1 -1
  43. package/js/getCallback.js +1 -1
  44. package/js/getCallback.js.map +1 -1
  45. package/js/getTagSupport.d.ts +1 -2
  46. package/js/getTagSupport.js +7 -11
  47. package/js/getTagSupport.js.map +1 -1
  48. package/js/hasTagSupportChanged.function.d.ts +7 -0
  49. package/js/hasTagSupportChanged.function.js +76 -0
  50. package/js/hasTagSupportChanged.function.js.map +1 -0
  51. package/js/index.d.ts +17 -7
  52. package/js/index.js +16 -7
  53. package/js/index.js.map +1 -1
  54. package/js/interpolateAttributes.js +24 -16
  55. package/js/interpolateAttributes.js.map +1 -1
  56. package/js/interpolateContentTemplates.d.ts +1 -1
  57. package/js/interpolateContentTemplates.js +8 -10
  58. package/js/interpolateContentTemplates.js.map +1 -1
  59. package/js/interpolateElement.d.ts +2 -0
  60. package/js/interpolateElement.js +1 -8
  61. package/js/interpolateElement.js.map +1 -1
  62. package/js/interpolateTemplate.d.ts +3 -3
  63. package/js/interpolateTemplate.js +18 -13
  64. package/js/interpolateTemplate.js.map +1 -1
  65. package/js/isInstance.d.ts +3 -2
  66. package/js/isInstance.js +3 -0
  67. package/js/isInstance.js.map +1 -1
  68. package/js/onDestroy.js +0 -3
  69. package/js/onDestroy.js.map +1 -1
  70. package/js/onInit.js +0 -4
  71. package/js/onInit.js.map +1 -1
  72. package/js/processNewValue.function.d.ts +2 -0
  73. package/js/processNewValue.function.js +29 -0
  74. package/js/processNewValue.function.js.map +1 -0
  75. package/js/processRegularValue.function.d.ts +7 -0
  76. package/js/processRegularValue.function.js +21 -0
  77. package/js/processRegularValue.function.js.map +1 -0
  78. package/js/processSubjectComponent.function.js +5 -21
  79. package/js/processSubjectComponent.function.js.map +1 -1
  80. package/js/processSubjectValue.function.d.ts +6 -6
  81. package/js/processSubjectValue.function.js +33 -48
  82. package/js/processSubjectValue.function.js.map +1 -1
  83. package/js/processTagArray.d.ts +1 -0
  84. package/js/processTagArray.js +60 -24
  85. package/js/processTagArray.js.map +1 -1
  86. package/js/processTagResult.function.d.ts +1 -2
  87. package/js/processTagResult.function.js +1 -17
  88. package/js/processTagResult.function.js.map +1 -1
  89. package/js/propState.function.d.ts +2 -0
  90. package/js/propState.function.js +3 -0
  91. package/js/propState.function.js.map +1 -0
  92. package/js/provider.utils.d.ts +2 -0
  93. package/js/provider.utils.js +34 -0
  94. package/js/provider.utils.js.map +1 -0
  95. package/js/providers.d.ts +2 -1
  96. package/js/providers.js +2 -2
  97. package/js/providers.js.map +1 -1
  98. package/js/redrawTag.function.d.ts +3 -2
  99. package/js/redrawTag.function.js +2 -4
  100. package/js/redrawTag.function.js.map +1 -1
  101. package/js/set.function.d.ts +23 -0
  102. package/{_js/state.js → js/set.function.js} +60 -64
  103. package/js/set.function.js.map +1 -0
  104. package/js/setLet.function.d.ts +3 -0
  105. package/js/setLet.function.js +31 -0
  106. package/js/setLet.function.js.map +1 -0
  107. package/js/setProp.function.d.ts +3 -0
  108. package/js/setProp.function.js +34 -0
  109. package/js/setProp.function.js.map +1 -0
  110. package/js/setUse.function.d.ts +2 -2
  111. package/js/state.d.ts +8 -6
  112. package/js/state.js +35 -15
  113. package/js/state.js.map +1 -1
  114. package/js/tag.d.ts +11 -6
  115. package/js/tag.js +84 -11
  116. package/js/tag.js.map +1 -1
  117. package/js/tagElement.d.ts +3 -2
  118. package/js/tagElement.js +21 -22
  119. package/js/tagElement.js.map +1 -1
  120. package/js/tagRunner.d.ts +1 -1
  121. package/js/templater.utils.d.ts +4 -5
  122. package/js/templater.utils.js +27 -24
  123. package/js/templater.utils.js.map +1 -1
  124. package/js/updateExistingTag.function.d.ts +4 -0
  125. package/js/updateExistingTag.function.js +15 -0
  126. package/js/updateExistingTag.function.js.map +1 -0
  127. package/js/updateExistingTagComponent.function.d.ts +4 -0
  128. package/js/updateExistingTagComponent.function.js +56 -0
  129. package/js/updateExistingTagComponent.function.js.map +1 -0
  130. package/js/updateExistingValue.function.d.ts +10 -0
  131. package/js/updateExistingValue.function.js +112 -0
  132. package/js/updateExistingValue.function.js.map +1 -0
  133. package/js/updateTag.utils.d.ts +1 -0
  134. package/js/updateTag.utils.js +5 -79
  135. package/js/updateTag.utils.js.map +1 -1
  136. package/js/watch.function.d.ts +3 -0
  137. package/js/watch.function.js +19 -0
  138. package/js/watch.function.js.map +1 -0
  139. package/package.json +1 -1
  140. package/_js/Clones.type.d.ts +0 -1
  141. package/_js/Clones.type.js +0 -2
  142. package/_js/Clones.type.js.map +0 -1
  143. package/_js/ElementTarget.interface.d.ts +0 -7
  144. package/_js/ElementTarget.interface.js +0 -2
  145. package/_js/ElementTarget.interface.js.map +0 -1
  146. package/_js/ElementTargetEvent.interface.d.ts +0 -6
  147. package/_js/ElementTargetEvent.interface.js +0 -2
  148. package/_js/ElementTargetEvent.interface.js.map +0 -1
  149. package/_js/Props.d.ts +0 -1
  150. package/_js/Props.js +0 -2
  151. package/_js/Props.js.map +0 -1
  152. package/_js/Subject.d.ts +0 -17
  153. package/_js/Subject.js +0 -43
  154. package/_js/Subject.js.map +0 -1
  155. package/_js/Tag.class.d.ts +0 -69
  156. package/_js/Tag.class.js +0 -258
  157. package/_js/Tag.class.js.map +0 -1
  158. package/_js/Tag.utils.d.ts +0 -12
  159. package/_js/Tag.utils.js +0 -31
  160. package/_js/Tag.utils.js.map +0 -1
  161. package/_js/ValueSubject.d.ts +0 -6
  162. package/_js/ValueSubject.js +0 -15
  163. package/_js/ValueSubject.js.map +0 -1
  164. package/_js/bindSubjectCallback.function.d.ts +0 -5
  165. package/_js/bindSubjectCallback.function.js +0 -19
  166. package/_js/bindSubjectCallback.function.js.map +0 -1
  167. package/_js/deepFunctions.d.ts +0 -2
  168. package/_js/deepFunctions.js +0 -76
  169. package/_js/deepFunctions.js.map +0 -1
  170. package/_js/elementDestroyCheck.function.d.ts +0 -3
  171. package/_js/elementDestroyCheck.function.js +0 -17
  172. package/_js/elementDestroyCheck.function.js.map +0 -1
  173. package/_js/elementInitCheck.d.ts +0 -2
  174. package/_js/elementInitCheck.js +0 -18
  175. package/_js/elementInitCheck.js.map +0 -1
  176. package/_js/gateway/gateway.web.component.d.ts +0 -11
  177. package/_js/gateway/gateway.web.component.js +0 -20
  178. package/_js/gateway/gateway.web.component.js.map +0 -1
  179. package/_js/gateway/index.d.ts +0 -3
  180. package/_js/gateway/index.js +0 -4
  181. package/_js/gateway/index.js.map +0 -1
  182. package/_js/gateway/loadTagGateway.function.d.ts +0 -2
  183. package/_js/gateway/loadTagGateway.function.js +0 -18
  184. package/_js/gateway/loadTagGateway.function.js.map +0 -1
  185. package/_js/gateway/tagGateway.function.d.ts +0 -4
  186. package/_js/gateway/tagGateway.function.js +0 -49
  187. package/_js/gateway/tagGateway.function.js.map +0 -1
  188. package/_js/gateway/tagGateway.utils.d.ts +0 -21
  189. package/_js/gateway/tagGateway.utils.js +0 -139
  190. package/_js/gateway/tagGateway.utils.js.map +0 -1
  191. package/_js/getCallback.d.ts +0 -3
  192. package/_js/getCallback.js +0 -50
  193. package/_js/getCallback.js.map +0 -1
  194. package/_js/getTagSupport.d.ts +0 -21
  195. package/_js/getTagSupport.js +0 -110
  196. package/_js/getTagSupport.js.map +0 -1
  197. package/_js/html.d.ts +0 -2
  198. package/_js/html.js +0 -5
  199. package/_js/html.js.map +0 -1
  200. package/_js/index.d.ts +0 -20
  201. package/_js/index.js +0 -25
  202. package/_js/index.js.map +0 -1
  203. package/_js/inputAttribute.d.ts +0 -1
  204. package/_js/inputAttribute.js +0 -19
  205. package/_js/inputAttribute.js.map +0 -1
  206. package/_js/interpolateAttributes.d.ts +0 -4
  207. package/_js/interpolateAttributes.js +0 -135
  208. package/_js/interpolateAttributes.js.map +0 -1
  209. package/_js/interpolateContentTemplates.d.ts +0 -6
  210. package/_js/interpolateContentTemplates.js +0 -54
  211. package/_js/interpolateContentTemplates.js.map +0 -1
  212. package/_js/interpolateElement.d.ts +0 -9
  213. package/_js/interpolateElement.js +0 -39
  214. package/_js/interpolateElement.js.map +0 -1
  215. package/_js/interpolateTemplate.d.ts +0 -17
  216. package/_js/interpolateTemplate.js +0 -64
  217. package/_js/interpolateTemplate.js.map +0 -1
  218. package/_js/interpolations.d.ts +0 -7
  219. package/_js/interpolations.js +0 -18
  220. package/_js/interpolations.js.map +0 -1
  221. package/_js/isInstance.d.ts +0 -6
  222. package/_js/isInstance.js +0 -10
  223. package/_js/isInstance.js.map +0 -1
  224. package/_js/js/Clones.type.d.ts +0 -1
  225. package/_js/js/Clones.type.js +0 -2
  226. package/_js/js/Clones.type.js.map +0 -1
  227. package/_js/js/Props.d.ts +0 -1
  228. package/_js/js/Props.js +0 -2
  229. package/_js/js/Props.js.map +0 -1
  230. package/_js/js/Subject.d.ts +0 -17
  231. package/_js/js/Subject.js +0 -43
  232. package/_js/js/Subject.js.map +0 -1
  233. package/_js/js/Tag.class.d.ts +0 -67
  234. package/_js/js/Tag.class.js +0 -241
  235. package/_js/js/Tag.class.js.map +0 -1
  236. package/_js/js/Tag.utils.d.ts +0 -12
  237. package/_js/js/Tag.utils.js +0 -31
  238. package/_js/js/Tag.utils.js.map +0 -1
  239. package/_js/js/ValueSubject.d.ts +0 -6
  240. package/_js/js/ValueSubject.js +0 -15
  241. package/_js/js/ValueSubject.js.map +0 -1
  242. package/_js/js/bindSubjectCallback.function.d.ts +0 -5
  243. package/_js/js/bindSubjectCallback.function.js +0 -19
  244. package/_js/js/bindSubjectCallback.function.js.map +0 -1
  245. package/_js/js/deepFunctions.d.ts +0 -2
  246. package/_js/js/deepFunctions.js +0 -76
  247. package/_js/js/deepFunctions.js.map +0 -1
  248. package/_js/js/elementDestroyCheck.function.d.ts +0 -3
  249. package/_js/js/elementDestroyCheck.function.js +0 -17
  250. package/_js/js/elementDestroyCheck.function.js.map +0 -1
  251. package/_js/js/elementInitCheck.d.ts +0 -2
  252. package/_js/js/elementInitCheck.js +0 -18
  253. package/_js/js/elementInitCheck.js.map +0 -1
  254. package/_js/js/getCallback.d.ts +0 -3
  255. package/_js/js/getCallback.js +0 -50
  256. package/_js/js/getCallback.js.map +0 -1
  257. package/_js/js/getTagSupport.d.ts +0 -22
  258. package/_js/js/getTagSupport.js +0 -116
  259. package/_js/js/getTagSupport.js.map +0 -1
  260. package/_js/js/html.d.ts +0 -2
  261. package/_js/js/html.js +0 -5
  262. package/_js/js/html.js.map +0 -1
  263. package/_js/js/index.d.ts +0 -19
  264. package/_js/js/index.js +0 -24
  265. package/_js/js/index.js.map +0 -1
  266. package/_js/js/inputAttribute.d.ts +0 -1
  267. package/_js/js/inputAttribute.js +0 -19
  268. package/_js/js/inputAttribute.js.map +0 -1
  269. package/_js/js/interpolateAttributes.d.ts +0 -4
  270. package/_js/js/interpolateAttributes.js +0 -127
  271. package/_js/js/interpolateAttributes.js.map +0 -1
  272. package/_js/js/interpolateContentTemplates.d.ts +0 -5
  273. package/_js/js/interpolateContentTemplates.js +0 -57
  274. package/_js/js/interpolateContentTemplates.js.map +0 -1
  275. package/_js/js/interpolateElement.d.ts +0 -9
  276. package/_js/js/interpolateElement.js +0 -32
  277. package/_js/js/interpolateElement.js.map +0 -1
  278. package/_js/js/interpolateTemplate.d.ts +0 -17
  279. package/_js/js/interpolateTemplate.js +0 -64
  280. package/_js/js/interpolateTemplate.js.map +0 -1
  281. package/_js/js/interpolations.d.ts +0 -8
  282. package/_js/js/interpolations.js +0 -17
  283. package/_js/js/interpolations.js.map +0 -1
  284. package/_js/js/isInstance.d.ts +0 -6
  285. package/_js/js/isInstance.js +0 -10
  286. package/_js/js/isInstance.js.map +0 -1
  287. package/_js/js/onDestroy.d.ts +0 -2
  288. package/_js/js/onDestroy.js +0 -20
  289. package/_js/js/onDestroy.js.map +0 -1
  290. package/_js/js/onInit.d.ts +0 -2
  291. package/_js/js/onInit.js +0 -19
  292. package/_js/js/onInit.js.map +0 -1
  293. package/_js/js/processSubjectComponent.function.d.ts +0 -8
  294. package/_js/js/processSubjectComponent.function.js +0 -53
  295. package/_js/js/processSubjectComponent.function.js.map +0 -1
  296. package/_js/js/processSubjectValue.function.d.ts +0 -16
  297. package/_js/js/processSubjectValue.function.js +0 -122
  298. package/_js/js/processSubjectValue.function.js.map +0 -1
  299. package/_js/js/processTagArray.d.ts +0 -9
  300. package/_js/js/processTagArray.js +0 -60
  301. package/_js/js/processTagArray.js.map +0 -1
  302. package/_js/js/processTagResult.function.d.ts +0 -10
  303. package/_js/js/processTagResult.function.js +0 -42
  304. package/_js/js/processTagResult.function.js.map +0 -1
  305. package/_js/js/providers.d.ts +0 -17
  306. package/_js/js/providers.js +0 -86
  307. package/_js/js/providers.js.map +0 -1
  308. package/_js/js/redrawTag.function.d.ts +0 -7
  309. package/_js/js/redrawTag.function.js +0 -9
  310. package/_js/js/redrawTag.function.js.map +0 -1
  311. package/_js/js/render.d.ts +0 -1
  312. package/_js/js/render.js +0 -24
  313. package/_js/js/render.js.map +0 -1
  314. package/_js/js/renderAppToElement.d.ts +0 -14
  315. package/_js/js/renderAppToElement.js +0 -57
  316. package/_js/js/renderAppToElement.js.map +0 -1
  317. package/_js/js/setUse.function.d.ts +0 -23
  318. package/_js/js/setUse.function.js +0 -14
  319. package/_js/js/setUse.function.js.map +0 -1
  320. package/_js/js/state.d.ts +0 -24
  321. package/_js/js/state.js +0 -98
  322. package/_js/js/state.js.map +0 -1
  323. package/_js/js/tag.d.ts +0 -8
  324. package/_js/js/tag.js +0 -46
  325. package/_js/js/tag.js.map +0 -1
  326. package/_js/js/tagElement.d.ts +0 -14
  327. package/_js/js/tagElement.js +0 -57
  328. package/_js/js/tagElement.js.map +0 -1
  329. package/_js/js/tagGateway.function.d.ts +0 -5
  330. package/_js/js/tagGateway.function.js +0 -119
  331. package/_js/js/tagGateway.function.js.map +0 -1
  332. package/_js/js/tagRunner.d.ts +0 -6
  333. package/_js/js/tagRunner.js +0 -19
  334. package/_js/js/tagRunner.js.map +0 -1
  335. package/_js/js/templater.utils.d.ts +0 -28
  336. package/_js/js/templater.utils.js +0 -99
  337. package/_js/js/templater.utils.js.map +0 -1
  338. package/_js/js/updateTag.utils.d.ts +0 -6
  339. package/_js/js/updateTag.utils.js +0 -84
  340. package/_js/js/updateTag.utils.js.map +0 -1
  341. package/_js/js/wait.d.ts +0 -1
  342. package/_js/js/wait.js +0 -8
  343. package/_js/js/wait.js.map +0 -1
  344. package/_js/onDestroy.d.ts +0 -2
  345. package/_js/onDestroy.js +0 -20
  346. package/_js/onDestroy.js.map +0 -1
  347. package/_js/onInit.d.ts +0 -2
  348. package/_js/onInit.js +0 -19
  349. package/_js/onInit.js.map +0 -1
  350. package/_js/processSubjectComponent.function.d.ts +0 -8
  351. package/_js/processSubjectComponent.function.js +0 -53
  352. package/_js/processSubjectComponent.function.js.map +0 -1
  353. package/_js/processSubjectValue.function.d.ts +0 -16
  354. package/_js/processSubjectValue.function.js +0 -122
  355. package/_js/processSubjectValue.function.js.map +0 -1
  356. package/_js/processTagArray.d.ts +0 -9
  357. package/_js/processTagArray.js +0 -60
  358. package/_js/processTagArray.js.map +0 -1
  359. package/_js/processTagResult.function.d.ts +0 -10
  360. package/_js/processTagResult.function.js +0 -40
  361. package/_js/processTagResult.function.js.map +0 -1
  362. package/_js/providers.d.ts +0 -17
  363. package/_js/providers.js +0 -86
  364. package/_js/providers.js.map +0 -1
  365. package/_js/redrawTag.function.d.ts +0 -7
  366. package/_js/redrawTag.function.js +0 -8
  367. package/_js/redrawTag.function.js.map +0 -1
  368. package/_js/render.d.ts +0 -1
  369. package/_js/render.js +0 -17
  370. package/_js/render.js.map +0 -1
  371. package/_js/renderAppToElement.d.ts +0 -14
  372. package/_js/renderAppToElement.js +0 -57
  373. package/_js/renderAppToElement.js.map +0 -1
  374. package/_js/setUse.function.d.ts +0 -23
  375. package/_js/setUse.function.js +0 -14
  376. package/_js/setUse.function.js.map +0 -1
  377. package/_js/state.d.ts +0 -21
  378. package/_js/state.js.map +0 -1
  379. package/_js/tag.d.ts +0 -7
  380. package/_js/tag.js +0 -46
  381. package/_js/tag.js.map +0 -1
  382. package/_js/tagElement.d.ts +0 -14
  383. package/_js/tagElement.js +0 -57
  384. package/_js/tagElement.js.map +0 -1
  385. package/_js/tagGateway.function.d.ts +0 -14
  386. package/_js/tagGateway.function.js +0 -138
  387. package/_js/tagGateway.function.js.map +0 -1
  388. package/_js/tagRunner.d.ts +0 -6
  389. package/_js/tagRunner.js +0 -19
  390. package/_js/tagRunner.js.map +0 -1
  391. package/_js/templater.utils.d.ts +0 -27
  392. package/_js/templater.utils.js +0 -98
  393. package/_js/templater.utils.js.map +0 -1
  394. package/_js/updateTag.utils.d.ts +0 -6
  395. package/_js/updateTag.utils.js +0 -102
  396. package/_js/updateTag.utils.js.map +0 -1
  397. package/_js/wait.d.ts +0 -1
  398. package/_js/wait.js +0 -8
  399. package/_js/wait.js.map +0 -1
@@ -1,76 +0,0 @@
1
- export function deepClone(obj, visited = new WeakMap()) {
2
- // If obj is a primitive type or null, return it directly
3
- if (obj === null || typeof obj !== 'object') {
4
- return obj;
5
- }
6
- // If obj is already visited, return the cloned reference
7
- if (visited.has(obj)) {
8
- return visited.get(obj);
9
- }
10
- // Handle special cases like Date and RegExp
11
- if (obj instanceof Date) {
12
- return new Date(obj);
13
- }
14
- if (obj instanceof RegExp) {
15
- return new RegExp(obj);
16
- }
17
- // Create an empty object or array with the same prototype
18
- const clone = Array.isArray(obj) ? [] : Object.create(Object.getPrototypeOf(obj));
19
- // Register the cloned object to avoid cyclic references
20
- visited.set(obj, clone);
21
- // Clone each property or element of the object or array
22
- if (Array.isArray(obj)) {
23
- for (let i = 0; i < obj.length; i++) {
24
- clone[i] = deepClone(obj[i], visited);
25
- }
26
- }
27
- else {
28
- for (const key in obj) {
29
- if (obj.hasOwnProperty(key)) {
30
- clone[key] = deepClone(obj[key], visited);
31
- }
32
- }
33
- }
34
- return clone;
35
- }
36
- export function deepEqual(obj1, obj2) {
37
- if (obj1 === obj2) {
38
- return true;
39
- }
40
- if (typeof obj1 !== 'object' ||
41
- typeof obj2 !== 'object' ||
42
- obj1 === null ||
43
- obj2 === null) {
44
- return false;
45
- }
46
- const keys1 = Object.keys(obj1);
47
- const keys2 = Object.keys(obj2);
48
- if (keys1.length !== keys2.length) {
49
- return false;
50
- }
51
- for (const key of keys1) {
52
- if (!keys2.includes(key) || !deepEqual(obj1[key], obj2[key])) {
53
- if (obj1[key] instanceof Function && obj2[key] instanceof Function && obj1[key].toString() === obj2[key].toString()) {
54
- continue;
55
- }
56
- return false;
57
- }
58
- }
59
- // Check if obj1 and obj2 are both arrays
60
- if (Array.isArray(obj1) && Array.isArray(obj2)) {
61
- if (obj1.length !== obj2.length) {
62
- return false;
63
- }
64
- for (let i = 0; i < obj1.length; i++) {
65
- if (!deepEqual(obj1[i], obj2[i])) {
66
- return false;
67
- }
68
- }
69
- }
70
- else if (Array.isArray(obj1) || Array.isArray(obj2)) {
71
- // One is an array, and the other is not
72
- return false;
73
- }
74
- return true;
75
- }
76
- //# sourceMappingURL=deepFunctions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deepFunctions.js","sourceRoot":"","sources":["../ts/deepFunctions.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export declare function elementDestroyCheck(nextSibling: Element & {
2
- ondestroy?: (event: Event) => any;
3
- }, stagger: number): any;
@@ -1,17 +0,0 @@
1
- export function elementDestroyCheck(nextSibling, stagger) {
2
- const onDestroyDoubleWrap = nextSibling.ondestroy;
3
- if (!onDestroyDoubleWrap) {
4
- return;
5
- }
6
- const onDestroyWrap = onDestroyDoubleWrap.tagFunction;
7
- if (!onDestroyWrap) {
8
- return;
9
- }
10
- const onDestroy = onDestroyWrap.tagFunction;
11
- if (!onDestroy) {
12
- return;
13
- }
14
- const event = { target: nextSibling, stagger };
15
- return onDestroy(event);
16
- }
17
- //# sourceMappingURL=elementDestroyCheck.function.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"elementDestroyCheck.function.js","sourceRoot":"","sources":["../ts/elementDestroyCheck.function.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,mBAAmB,CACjC,WAA0D,EAC1D,OAAe;IAEf,MAAM,mBAAmB,GAAG,WAAW,CAAC,SAAS,CAAA;IACjD,IAAG,CAAC,mBAAmB,EAAE,CAAC;QACxB,OAAM;IACR,CAAC;IAED,MAAM,aAAa,GAAI,mBAA2B,CAAC,WAAW,CAAA;IAC9D,IAAG,CAAC,aAAa,EAAE,CAAC;QAClB,OAAM;IACR,CAAC;IAED,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,CAAA;IAC3C,IAAG,CAAC,SAAS,EAAE,CAAC;QACd,OAAM;IACR,CAAC;IAED,MAAM,KAAK,GAAG,EAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAqB,CAAA;IAChE,OAAO,SAAS,CAAC,KAAK,CAAC,CAAA;AACzB,CAAC"}
@@ -1,2 +0,0 @@
1
- import { Counts } from "./interpolateTemplate.js";
2
- export declare function elementInitCheck(nextSibling: Element | ChildNode, counts: Counts): void;
@@ -1,18 +0,0 @@
1
- export function elementInitCheck(nextSibling, counts) {
2
- const onInitDoubleWrap = nextSibling.oninit;
3
- if (!onInitDoubleWrap) {
4
- return;
5
- }
6
- const onInitWrap = onInitDoubleWrap.tagFunction;
7
- if (!onInitWrap) {
8
- return;
9
- }
10
- const onInit = onInitWrap.tagFunction;
11
- if (!onInit) {
12
- return;
13
- }
14
- const event = { target: nextSibling, stagger: counts.added };
15
- onInit(event);
16
- ++counts.added;
17
- }
18
- //# sourceMappingURL=elementInitCheck.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"elementInitCheck.js","sourceRoot":"","sources":["../ts/elementInitCheck.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,gBAAgB,CAC9B,WAAgC,EAChC,MAAc;IAEd,MAAM,gBAAgB,GAAI,WAAmB,CAAC,MAAM,CAAA;IACpD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpB,OAAM;IACV,CAAC;IAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,WAAW,CAAA;IAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,OAAM;IACV,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAA;IACrC,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,OAAM;IACV,CAAC;IAED,MAAM,KAAK,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,EAAwC,CAAA;IAClG,MAAM,CAAC,KAAK,CAAC,CAAA;IACb,EAAE,MAAM,CAAC,KAAK,CAAA;AAChB,CAAC"}
@@ -1,11 +0,0 @@
1
- import { Gateway } from "./tagGateway.utils.js";
2
- /** <tag-element id="" props="json-string" />
3
- * For Angular @NgModule({schemas: [CUSTOM_ELEMENTS_SCHEMA]}) is required
4
- */
5
- export declare class TagElement extends HTMLElement {
6
- gateway: Gateway;
7
- constructor();
8
- disconnectedCallback(): void;
9
- }
10
- /** Call me one time */
11
- export declare function initWebComponents(): void;
@@ -1,20 +0,0 @@
1
- import { checkByElement, destroyGateway } from "./tagGateway.utils.js";
2
- /** <tag-element id="" props="json-string" />
3
- * For Angular @NgModule({schemas: [CUSTOM_ELEMENTS_SCHEMA]}) is required
4
- */
5
- export class TagElement extends HTMLElement {
6
- gateway;
7
- constructor() {
8
- super();
9
- // attributes are not available right away
10
- setTimeout(() => this.gateway = checkByElement(this), 0);
11
- }
12
- disconnectedCallback() {
13
- destroyGateway(this.gateway);
14
- }
15
- }
16
- /** Call me one time */
17
- export function initWebComponents() {
18
- customElements.define('tag-element', TagElement);
19
- }
20
- //# sourceMappingURL=gateway.web.component.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gateway.web.component.js","sourceRoot":"","sources":["../../ts/gateway/gateway.web.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,cAAc,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAE/E;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,WAAW;IACzC,OAAO,CAAU;IAEjB;QACE,KAAK,EAAE,CAAA;QACP,0CAA0C;QAC1C,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;IAC1D,CAAC;IAED,oBAAoB;QAClB,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC9B,CAAC;CACF;AAED,uBAAuB;AACvB,MAAM,UAAU,iBAAiB;IAC/B,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,CAAA;AAClD,CAAC"}
@@ -1,3 +0,0 @@
1
- export { loadTagGateway } from "./loadTagGateway.function.js";
2
- export { initWebComponents } from "./gateway.web.component.js";
3
- export { tagGateway } from "./tagGateway.function.js";
@@ -1,4 +0,0 @@
1
- export { loadTagGateway } from "./loadTagGateway.function.js";
2
- export { initWebComponents } from "./gateway.web.component.js";
3
- export { tagGateway } from "./tagGateway.function.js";
4
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../ts/gateway/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA"}
@@ -1,2 +0,0 @@
1
- import { TagComponent } from "../index.js";
2
- export declare function loadTagGateway(component: TagComponent): string;
@@ -1,18 +0,0 @@
1
- import { initWebComponents } from "./gateway.web.component.js";
2
- import { gatewayTagIds, getTagId } from "./tagGateway.utils.js";
3
- let hasInitWebComponents = false;
4
- export function loadTagGateway(component) {
5
- if (!hasInitWebComponents) {
6
- try {
7
- initWebComponents();
8
- }
9
- catch (err) {
10
- throw err;
11
- }
12
- hasInitWebComponents = true;
13
- }
14
- const id = getTagId(component);
15
- gatewayTagIds[id] = component;
16
- return id;
17
- }
18
- //# sourceMappingURL=loadTagGateway.function.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loadTagGateway.function.js","sourceRoot":"","sources":["../../ts/gateway/loadTagGateway.function.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAE/D,IAAI,oBAAoB,GAAG,KAAK,CAAA;AAEhC,MAAM,UAAU,cAAc,CAAC,SAAuB;IACpD,IAAG,CAAC,oBAAoB,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,iBAAiB,EAAE,CAAA;QACrB,CAAC;QAAC,OAAM,GAAG,EAAE,CAAC;YACZ,MAAM,GAAG,CAAA;QACX,CAAC;QAED,oBAAoB,GAAG,IAAI,CAAA;IAC7B,CAAC;IAED,MAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAA;IAC9B,aAAa,CAAC,EAAE,CAAC,GAAG,SAAS,CAAA;IAC7B,OAAO,EAAE,CAAA;AACX,CAAC"}
@@ -1,4 +0,0 @@
1
- import { TagComponent } from "../index.js";
2
- export declare const tagGateway: (component: TagComponent) => {
3
- id: string;
4
- };
@@ -1,49 +0,0 @@
1
- import { checkElement, getTagId } from "./tagGateway.utils.js";
2
- const namedTimeouts = {};
3
- export const tagGateway = function tagGateway(component) {
4
- const id = getTagId(component);
5
- if (namedTimeouts[id]) {
6
- return namedTimeouts[id];
7
- }
8
- let intervalId;
9
- let hitCount = 0;
10
- const interval = 5;
11
- function findElements() {
12
- const elements = checkTagElementsById(id, component);
13
- if (!elements.length) {
14
- return elements.length;
15
- }
16
- // Element has been found, load
17
- if (intervalId) {
18
- clearInterval(intervalId);
19
- }
20
- delete namedTimeouts[id];
21
- return elements.length;
22
- }
23
- function findElement() {
24
- intervalId = setInterval(() => {
25
- hitCount = hitCount + interval;
26
- if (hitCount >= 2000) {
27
- clearInterval(intervalId);
28
- throw new Error(`TaggedJs Element ${id} not found`);
29
- }
30
- findElements();
31
- }, interval);
32
- }
33
- const elementCounts = findElements();
34
- if (elementCounts) {
35
- return { id };
36
- }
37
- findElement();
38
- namedTimeouts[id] = { id };
39
- return namedTimeouts[id];
40
- };
41
- function checkTagElementsById(id, component) {
42
- const elements = document.querySelectorAll('#' + id);
43
- return checkTagElements(id, elements, component);
44
- }
45
- function checkTagElements(id, elements, component) {
46
- elements.forEach(element => checkElement(id, element, component));
47
- return elements;
48
- }
49
- //# sourceMappingURL=tagGateway.function.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tagGateway.function.js","sourceRoot":"","sources":["../../ts/gateway/tagGateway.function.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAE9D,MAAM,aAAa,GAAwB,EAAE,CAAA;AAE7C,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,UAAU,CAC3C,SAAuB;IAEvB,MAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAA;IAE9B,IAAG,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC;QACrB,OAAO,aAAa,CAAC,EAAE,CAAC,CAAA;IAC1B,CAAC;IAED,IAAI,UAA0B,CAAA;IAC9B,IAAI,QAAQ,GAAG,CAAC,CAAA;IAChB,MAAM,QAAQ,GAAG,CAAC,CAAA;IAElB,SAAS,YAAY;QACnB,MAAM,QAAQ,GAAG,oBAAoB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAA;QAEpD,IAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpB,OAAO,QAAQ,CAAC,MAAM,CAAA;QACxB,CAAC;QAED,+BAA+B;QAC/B,IAAG,UAAU,EAAE,CAAC;YACd,aAAa,CAAC,UAAU,CAAC,CAAA;QAC3B,CAAC;QACD,OAAO,aAAa,CAAC,EAAE,CAAC,CAAA;QAExB,OAAO,QAAQ,CAAC,MAAM,CAAA;IACxB,CAAC;IAED,SAAS,WAAW;QAClB,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;YAC5B,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAA;YAE9B,IAAG,QAAQ,IAAI,IAAI,EAAE,CAAC;gBACpB,aAAa,CAAC,UAAU,CAAC,CAAA;gBACzB,MAAM,IAAI,KAAK,CAAC,oBAAoB,EAAE,YAAY,CAAC,CAAA;YACrD,CAAC;YAED,YAAY,EAAE,CAAA;QAChB,CAAC,EAAE,QAAQ,CAAC,CAAA;IACd,CAAC;IAED,MAAM,aAAa,GAAG,YAAY,EAAE,CAAA;IACpC,IAAG,aAAa,EAAE,CAAC;QACjB,OAAO,EAAE,EAAE,EAAE,CAAA;IACf,CAAC;IAED,WAAW,EAAE,CAAA;IAEb,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAA;IAE1B,OAAO,aAAa,CAAC,EAAE,CAAC,CAAA;AAC1B,CAAC,CAAA;AAED,SAAS,oBAAoB,CAC3B,EAAU,EACV,SAAuB;IAEvB,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,GAAG,EAAE,CAAC,CAAA;IACpD,OAAO,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAA;AAClD,CAAC;AAED,SAAS,gBAAgB,CACvB,EAAU,EACV,QAA6B,EAC7B,SAAuB;IAEvB,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAA;IAEjE,OAAO,QAAQ,CAAA;AACjB,CAAC"}
@@ -1,21 +0,0 @@
1
- import { TagComponent, Tag } from "../index.js";
2
- export declare const gatewayTagIds: {
3
- [id: string]: TagComponent;
4
- };
5
- export declare function checkAllGateways(): void;
6
- export declare function checkGateways(gateways: Gateway[]): void;
7
- export declare function destroyGateway(gateway: Gateway): void;
8
- export declare function getTagId(component: TagComponent): string;
9
- export type EventData = {
10
- detail: Record<string, any>;
11
- };
12
- export type Gateway = {
13
- tag: Tag;
14
- id: string;
15
- observer: MutationObserver;
16
- element: HTMLElement;
17
- component: TagComponent;
18
- updateTag: () => unknown;
19
- };
20
- export declare function checkByElement(element: HTMLElement | Element): Gateway;
21
- export declare function checkElement(id: string, element: Element, component: TagComponent): Gateway;
@@ -1,139 +0,0 @@
1
- import { redrawTag, tagElement } from "../index.js";
2
- import { loadTagGateway } from "./loadTagGateway.function.js";
3
- const gateways = {};
4
- export const gatewayTagIds = {};
5
- export function checkAllGateways() {
6
- Object.entries(gateways).forEach(([id, gateways]) => checkGateways(gateways));
7
- }
8
- export function checkGateways(gateways) {
9
- gateways.forEach(gateway => checkGateway(gateway));
10
- }
11
- function checkGateway(gateway) {
12
- const { element } = gateway;
13
- if (document.body.contains(element)) {
14
- return; // its still good, do not continue to destroy
15
- }
16
- destroyGateway(gateway);
17
- return false;
18
- }
19
- export function destroyGateway(gateway) {
20
- const { id, observer, tag } = gateway;
21
- observer.disconnect();
22
- tag.destroy();
23
- delete gateways[id];
24
- }
25
- export function getTagId(component) {
26
- const componentString = functionToHtmlId(component);
27
- return '__tagTemplate_' + componentString;
28
- }
29
- function parsePropsString(element) {
30
- const propsString = element.getAttribute('props');
31
- if (!propsString) {
32
- return { element };
33
- }
34
- try {
35
- const props = JSON.parse(propsString);
36
- // attribute eventProps as output bindings
37
- const eventPropsString = element.getAttribute('events');
38
- if (eventPropsString) {
39
- eventPropsString.split(',').map(x => x.trim()).map((name) => {
40
- props[name] = (value) => dispatchEvent(name, { detail: { [name]: value } });
41
- });
42
- }
43
- const dispatchEvent = function (name, eventData) {
44
- const event = new CustomEvent(name, eventData);
45
- element.dispatchEvent(event);
46
- };
47
- // props.dispatchEvent = dispatchEvent
48
- return props;
49
- }
50
- catch (err) {
51
- console.warn('Failed to parse props on element', { element, propsString });
52
- throw err;
53
- }
54
- }
55
- /** adds to gateways[id].push */
56
- function watchElement(id, targetNode, tag, component) {
57
- let lastTag = tag;
58
- const observer = new MutationObserver(mutationsList => {
59
- if (!checkGateway(gateway)) {
60
- return;
61
- }
62
- for (const mutation of mutationsList) {
63
- if (mutation.type === 'attributes') {
64
- updateTag();
65
- }
66
- }
67
- });
68
- function updateTag() {
69
- const templater = tag.tagSupport.templater;
70
- const oldProps = templater.tagSupport.props;
71
- const newProps = parsePropsString(targetNode);
72
- templater.tagSupport.props = newProps;
73
- const isSameProps = JSON.stringify(oldProps) === JSON.stringify(newProps);
74
- if (isSameProps) {
75
- return; // no reason to update, same props
76
- }
77
- templater.tagSupport.latestProps = newProps;
78
- const result = redrawTag(lastTag, templater);
79
- // update records
80
- gateway.tag = lastTag = result.retag;
81
- }
82
- loadTagGateway(component);
83
- const gateway = {
84
- id, tag, observer, component, element: targetNode, updateTag,
85
- };
86
- gateways[id] = gateways[id] || [];
87
- gateways[id].push(gateway);
88
- targetNode.gateway = gateway;
89
- // Configure the observer to watch for changes in child nodes and attributes
90
- const config = { attributes: true };
91
- // Start observing the target node for specified changes
92
- observer.observe(targetNode, config);
93
- return gateway;
94
- }
95
- function functionToHtmlId(func) {
96
- // Convert function to string
97
- let funcString = func.toString();
98
- // Remove spaces and replace special characters with underscores
99
- let cleanedString = funcString.replace(/\s+/g, '_')
100
- .replace(/[^\w\d]/g, '_');
101
- // Ensure the ID starts with a letter
102
- if (!/^[a-zA-Z]/.test(cleanedString)) {
103
- cleanedString = 'fn_' + cleanedString;
104
- }
105
- return cleanedString;
106
- }
107
- export function checkByElement(element) {
108
- const id = element.id || element.getAttribute('id');
109
- if (!id) {
110
- const message = 'Cannot check a tag on element with no id attribute';
111
- console.warn(message, { id, element });
112
- throw new Error(message);
113
- }
114
- const component = gatewayTagIds[id];
115
- if (!component) {
116
- const message = `Cannot find a tag registered by id of ${id}`;
117
- console.warn(message, { id, element });
118
- throw new Error(message);
119
- }
120
- return checkElement(id, element, component);
121
- }
122
- export function checkElement(id, element, component) {
123
- const gateway = element.gateway;
124
- if (gateway) {
125
- gateway.updateTag();
126
- return gateway;
127
- }
128
- const props = parsePropsString(element);
129
- try {
130
- const { tag } = tagElement(component, element, props);
131
- // watch element AND add to gateways[id].push()
132
- return watchElement(id, element, tag, component);
133
- }
134
- catch (err) {
135
- console.warn('Failed to render component to element', { component, element, props });
136
- throw err;
137
- }
138
- }
139
- //# sourceMappingURL=tagGateway.utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tagGateway.utils.js","sourceRoot":"","sources":["../../ts/gateway/tagGateway.utils.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- type Callback = <T>(...args: unknown[]) => (T | void);
2
- export declare let getCallback: () => (callback: Callback) => () => void;
3
- export {};
@@ -1,50 +0,0 @@
1
- import { setUse } from "./setUse.function.js";
2
- import { getStateValue } from "./state.js";
3
- export let getCallback = () => (callback) => () => {
4
- throw new Error('The real callback function was called and that should never occur');
5
- };
6
- setUse({
7
- beforeRender: (tagSupport) => initMemory(tagSupport),
8
- beforeRedraw: (tagSupport) => initMemory(tagSupport),
9
- // afterRender: (tagSupport: TagSupport) => {},
10
- });
11
- function updateState(stateFrom, stateTo) {
12
- stateFrom.forEach((state, index) => {
13
- const fromValue = getStateValue(state);
14
- const callback = stateTo[index].callback;
15
- if (callback) {
16
- callback(fromValue); // set the value
17
- }
18
- stateTo[index].lastValue = fromValue; // record the value
19
- });
20
- }
21
- function initMemory(tagSupport) {
22
- getCallback = () => {
23
- const oldState = setUse.memory.stateConfig.array;
24
- const callbackMaker = (callback) => {
25
- const trigger = (...args) => triggerStateUpdate(tagSupport, callback, oldState, ...args);
26
- return trigger;
27
- };
28
- return callbackMaker;
29
- };
30
- }
31
- function triggerStateUpdate(tagSupport, callback, oldState, ...args) {
32
- const state = tagSupport.memory.state;
33
- const newest = state.newest;
34
- // ensure that the oldest has the latest values first
35
- updateState(newest, oldState);
36
- // run the callback
37
- const promise = callback(...args);
38
- // send the oldest state changes into the newest
39
- updateState(oldState, newest);
40
- tagSupport.render();
41
- // TODO: turn back on below
42
- if (promise instanceof Promise) {
43
- promise.finally(() => {
44
- // send the oldest state changes into the newest
45
- updateState(oldState, newest);
46
- tagSupport.render();
47
- });
48
- }
49
- }
50
- //# sourceMappingURL=getCallback.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getCallback.js","sourceRoot":"","sources":["../ts/getCallback.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAA2B,aAAa,EAAE,MAAM,YAAY,CAAA;AAInE,MAAM,CAAC,IAAI,WAAW,GAAG,GAAG,EAAE,CAAC,CAAC,QAAkB,EAAE,EAAE,CAAC,GAAS,EAAE;IAChE,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAA;AACtF,CAAC,CAAA;AAED,MAAM,CAAC;IACL,YAAY,EAAE,CAAC,UAAsB,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;IAChE,YAAY,EAAE,CAAC,UAAsB,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;IAChE,+CAA+C;CAChD,CAAC,CAAA;AAEF,SAAS,WAAW,CAClB,SAA2B,EAC3B,OAAyB;IAEzB,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACjC,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;QACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAA;QAExC,IAAG,QAAQ,EAAE,CAAC;YACZ,QAAQ,CAAE,SAAS,CAAE,CAAA,CAAC,gBAAgB;QACxC,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,SAAS,CAAA,CAAC,mBAAmB;IAC1D,CAAC,CAAC,CAAA;AACJ,CAAC;AAKD,SAAS,UAAU,CAAE,UAAsB;IACzC,WAAW,GAAG,GAAG,EAAE;QACjB,MAAM,QAAQ,GAAqB,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAA;QAElE,MAAM,aAAa,GAAkB,CACnC,QAAkB,EAClB,EAAE;YACF,MAAM,OAAO,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,kBAAkB,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAA;YAC/F,OAAO,OAAO,CAAA;QAChB,CAAC,CAAA;QAED,OAAO,aAAa,CAAA;IACtB,CAAC,CAAA;AACH,CAAC;AAED,SAAS,kBAAkB,CACzB,UAAsB,EACtB,QAAkB,EAClB,QAA0B,EAC1B,GAAG,IAAW;IAEd,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,KAAc,CAAA;IAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;IAE3B,qDAAqD;IACrD,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAE7B,mBAAmB;IACnB,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAA;IAEjC,gDAAgD;IAChD,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAE7B,UAAU,CAAC,MAAM,EAAE,CAAA;IAEnB,2BAA2B;IAC3B,IAAG,OAAO,YAAY,OAAO,EAAE,CAAC;QAC9B,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE;YACnB,gDAAgD;YAChD,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAE7B,UAAU,CAAC,MAAM,EAAE,CAAA;QACrB,CAAC,CAAC,CAAA;IACJ,CAAC;AACH,CAAC"}
@@ -1,21 +0,0 @@
1
- import { Props } from "./Props.js";
2
- import { Tag, TagMemory } from "./Tag.class.js";
3
- import { TemplaterResult } from "./templater.utils.js";
4
- export declare class TagSupport {
5
- templater: TemplaterResult;
6
- props?: unknown;
7
- clonedProps: Props;
8
- latestProps: Props;
9
- latestClonedProps: Props;
10
- memory: TagMemory;
11
- constructor(templater: TemplaterResult, props?: unknown);
12
- oldest?: Tag;
13
- newest?: Tag;
14
- hasPropChanges(props: any, // natural props
15
- pastCloneProps: any, // previously cloned props
16
- compareToProps: any): boolean;
17
- mutatingRender(): Tag;
18
- render(): Tag;
19
- renderExistingTag(tag: Tag, newTemplater: TemplaterResult): boolean;
20
- }
21
- export declare function getTagSupport(templater: TemplaterResult, props?: Props): TagSupport;
@@ -1,110 +0,0 @@
1
- import { deepClone, deepEqual } from "./deepFunctions.js";
2
- import { getNewProps } from "./templater.utils.js";
3
- export class TagSupport {
4
- templater;
5
- props;
6
- // props from **constructor** are converted for comparing over renders
7
- clonedProps;
8
- latestProps; // new props NOT cloned props
9
- latestClonedProps;
10
- memory = {
11
- context: {}, // populated after reading interpolated.values array converted to an object {variable0, variable:1}
12
- state: {
13
- newest: [],
14
- },
15
- providers: [],
16
- /** Indicator of re-rending. Saves from double rending something already rendered */
17
- renderCount: 0,
18
- };
19
- constructor(templater, props) {
20
- this.templater = templater;
21
- this.props = props;
22
- this.latestProps = props; // getNewProps(props, templater)
23
- const latestProps = getNewProps(props, templater);
24
- this.latestClonedProps = deepClone(latestProps);
25
- this.clonedProps = this.latestClonedProps;
26
- }
27
- // TODO: these below may not be in use
28
- oldest;
29
- newest;
30
- hasPropChanges(props, // natural props
31
- pastCloneProps, // previously cloned props
32
- compareToProps) {
33
- const oldProps = this.props;
34
- const isCommonEqual = props === undefined && props === compareToProps;
35
- const isEqual = isCommonEqual || deepEqual(pastCloneProps, oldProps);
36
- return !isEqual;
37
- }
38
- mutatingRender() {
39
- const message = 'Tag function "render()" was called in sync but can only be called async';
40
- console.error(message, { tagSupport: this });
41
- throw new Error(message);
42
- } // loaded later and only callable async
43
- render() {
44
- ++this.memory.renderCount;
45
- return this.mutatingRender();
46
- } // ensure this function still works even during deconstructing
47
- renderExistingTag(tag, newTemplater) {
48
- const preRenderCount = this.memory.renderCount;
49
- providersChangeCheck(tag);
50
- // When the providers were checked, a render to myself occurred and I do not need to re-render again
51
- if (preRenderCount !== this.memory.renderCount) {
52
- return true;
53
- }
54
- const oldTemplater = tag.tagSupport.templater;
55
- const nowProps = newTemplater.tagSupport.props; // natural props
56
- const oldProps = oldTemplater?.tagSupport.props; // previously cloned props
57
- const newProps = newTemplater.tagSupport.clonedProps; // new props cloned
58
- console.log('rendering existing tag');
59
- return renderTag(this, nowProps, oldProps, newProps, this.templater);
60
- }
61
- }
62
- export function getTagSupport(templater, props) {
63
- const tagSupport = new TagSupport(templater, props);
64
- return tagSupport;
65
- }
66
- function providersChangeCheck(tag) {
67
- const providersWithChanges = tag.tagSupport.memory.providers.filter(provider => {
68
- return !deepEqual(provider.instance, provider.clone);
69
- });
70
- // reset clones
71
- providersWithChanges.forEach(provider => {
72
- const appElement = tag.getAppElement();
73
- handleProviderChanges(appElement, provider);
74
- provider.clone = deepClone(provider.instance);
75
- });
76
- }
77
- function handleProviderChanges(appElement, provider) {
78
- const tagsWithProvider = getTagsWithProvider(appElement, provider);
79
- tagsWithProvider.forEach(({ tag, renderCount, provider }) => {
80
- const unRendered = renderCount === tag.tagSupport.memory.renderCount;
81
- if (unRendered) {
82
- provider.clone = deepClone(provider.instance);
83
- tag.tagSupport.render();
84
- }
85
- });
86
- }
87
- function getTagsWithProvider(tag, provider, memory = []) {
88
- const hasProvider = tag.tagSupport.memory.providers.find(xProvider => xProvider.constructMethod === provider.constructMethod);
89
- if (hasProvider) {
90
- memory.push({
91
- tag,
92
- renderCount: tag.tagSupport.memory.renderCount,
93
- provider: hasProvider
94
- });
95
- }
96
- tag.children.forEach(child => getTagsWithProvider(child, provider, memory));
97
- return memory;
98
- }
99
- function renderTag(tagSupport, nowProps, // natural props
100
- oldProps, // previously NOT cloned props
101
- newProps, // now props cloned
102
- templater) {
103
- const hasPropsChanged = tagSupport.hasPropChanges(nowProps, newProps, oldProps);
104
- tagSupport.newest = templater.redraw(); // No change detected, just redraw me only
105
- if (!hasPropsChanged) {
106
- return true;
107
- }
108
- return false;
109
- }
110
- //# sourceMappingURL=getTagSupport.js.map