@studiometa/js-toolkit 2.11.2 → 3.0.0-alpha.1

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 (407) hide show
  1. package/Base/Base.d.ts +2 -2
  2. package/Base/Base.js +142 -79
  3. package/Base/Base.js.map +2 -2
  4. package/Base/features.d.ts +10 -2
  5. package/Base/features.js +23 -1
  6. package/Base/features.js.map +2 -2
  7. package/Base/managers/AbstractManager.d.ts +3 -3
  8. package/Base/managers/AbstractManager.js +21 -0
  9. package/Base/managers/AbstractManager.js.map +1 -1
  10. package/Base/managers/ActionManager.d.ts +4 -0
  11. package/Base/managers/ActionManager.js +10 -0
  12. package/Base/managers/ActionManager.js.map +7 -0
  13. package/Base/managers/ChildrenManager.d.ts +1 -1
  14. package/Base/managers/ChildrenManager.js +41 -8
  15. package/Base/managers/ChildrenManager.js.map +2 -2
  16. package/Base/managers/EventsManager.js +88 -7
  17. package/Base/managers/EventsManager.js.map +2 -2
  18. package/Base/managers/OptionsManager.js +25 -2
  19. package/Base/managers/OptionsManager.js.map +2 -2
  20. package/Base/managers/RefsManager.js +27 -6
  21. package/Base/managers/RefsManager.js.map +2 -2
  22. package/Base/managers/ResponsiveOptionsManager.js +22 -6
  23. package/Base/managers/ResponsiveOptionsManager.js.map +2 -2
  24. package/Base/managers/ServicesManager.d.ts +2 -4
  25. package/Base/managers/ServicesManager.js +56 -7
  26. package/Base/managers/ServicesManager.js.map +2 -2
  27. package/Base/utils.js +5 -1
  28. package/Base/utils.js.map +2 -2
  29. package/decorators/index.d.ts +0 -1
  30. package/decorators/index.js +0 -1
  31. package/decorators/index.js.map +2 -2
  32. package/decorators/withBreakpointManager.js +14 -4
  33. package/decorators/withBreakpointManager.js.map +2 -2
  34. package/decorators/withBreakpointObserver.js +13 -3
  35. package/decorators/withBreakpointObserver.js.map +2 -2
  36. package/decorators/withDrag.js +6 -0
  37. package/decorators/withDrag.js.map +1 -1
  38. package/decorators/withExtraConfig.js +3 -0
  39. package/decorators/withExtraConfig.js.map +1 -1
  40. package/decorators/withFreezedOptions.js +8 -0
  41. package/decorators/withFreezedOptions.js.map +1 -1
  42. package/decorators/withIntersectionObserver.js +10 -1
  43. package/decorators/withIntersectionObserver.js.map +2 -2
  44. package/decorators/withMountOnMediaQuery.js +17 -1
  45. package/decorators/withMountOnMediaQuery.js.map +2 -2
  46. package/decorators/withMountWhenInView.js +22 -1
  47. package/decorators/withMountWhenInView.js.map +2 -2
  48. package/decorators/withRelativePointer.js +6 -0
  49. package/decorators/withRelativePointer.js.map +1 -1
  50. package/decorators/withResponsiveOptions.js +3 -0
  51. package/decorators/withResponsiveOptions.js.map +1 -1
  52. package/decorators/withScrolledInView/utils.d.ts +12 -1
  53. package/decorators/withScrolledInView/utils.js +7 -7
  54. package/decorators/withScrolledInView/utils.js.map +2 -2
  55. package/decorators/withScrolledInView/withScrolledInView.js +13 -35
  56. package/decorators/withScrolledInView/withScrolledInView.js.map +2 -2
  57. package/helpers/createApp.d.ts +2 -1
  58. package/helpers/createApp.js +2 -2
  59. package/helpers/createApp.js.map +2 -2
  60. package/helpers/getDirectChildren.js.map +1 -1
  61. package/helpers/importOnInteraction.js +4 -4
  62. package/helpers/importOnInteraction.js.map +2 -2
  63. package/helpers/importWhenVisible.js +2 -1
  64. package/helpers/importWhenVisible.js.map +2 -2
  65. package/package.json +2 -10
  66. package/services/drag.js +8 -8
  67. package/services/drag.js.map +2 -2
  68. package/services/index.d.ts +1 -1
  69. package/services/index.js.map +2 -2
  70. package/services/key.js +2 -2
  71. package/services/key.js.map +2 -2
  72. package/services/load.js +3 -0
  73. package/services/load.js.map +1 -1
  74. package/services/pointer.d.ts +1 -1
  75. package/services/pointer.js +7 -7
  76. package/services/pointer.js.map +2 -2
  77. package/services/raf.js +4 -6
  78. package/services/raf.js.map +2 -2
  79. package/services/resize.d.ts +7 -6
  80. package/services/resize.js +19 -26
  81. package/services/resize.js.map +2 -2
  82. package/services/scroll.js +8 -8
  83. package/services/scroll.js.map +2 -2
  84. package/services/service.js +2 -2
  85. package/services/service.js.map +2 -2
  86. package/utils/Queue.js +30 -0
  87. package/utils/Queue.js.map +1 -1
  88. package/utils/SmartQueue.d.ts +1 -1
  89. package/utils/SmartQueue.js +13 -1
  90. package/utils/SmartQueue.js.map +2 -2
  91. package/utils/collide/collidePointRect.js +4 -1
  92. package/utils/collide/collidePointRect.js.map +1 -1
  93. package/utils/collide/collideRectRect.js +4 -1
  94. package/utils/collide/collideRectRect.js.map +1 -1
  95. package/utils/css/animate.d.ts +33 -15
  96. package/utils/css/animate.js +80 -34
  97. package/utils/css/animate.js.map +2 -2
  98. package/utils/css/classes.js +2 -3
  99. package/utils/css/classes.js.map +2 -2
  100. package/utils/css/getOffsetSizes.js +2 -2
  101. package/utils/css/getOffsetSizes.js.map +1 -1
  102. package/utils/css/index.d.ts +2 -1
  103. package/utils/css/index.js +4 -4
  104. package/utils/css/index.js.map +2 -2
  105. package/utils/css/matrix.d.ts +1 -1
  106. package/utils/css/matrix.js.map +2 -2
  107. package/utils/css/styles.js +2 -2
  108. package/utils/css/styles.js.map +2 -2
  109. package/utils/css/transform.d.ts +1 -1
  110. package/utils/css/transform.js +1 -1
  111. package/utils/css/transform.js.map +2 -2
  112. package/utils/css/transition.js +15 -0
  113. package/utils/css/transition.js.map +1 -1
  114. package/utils/css/utils.d.ts +1 -1
  115. package/utils/css/utils.js +1 -1
  116. package/utils/css/utils.js.map +2 -2
  117. package/utils/history.js +6 -5
  118. package/utils/history.js.map +2 -2
  119. package/utils/index.d.ts +5 -4
  120. package/utils/index.js +16 -16
  121. package/utils/index.js.map +2 -2
  122. package/utils/is.d.ts +12 -0
  123. package/utils/is.js +17 -0
  124. package/utils/is.js.map +2 -2
  125. package/utils/math/ease.d.ts +1 -0
  126. package/utils/math/ease.js +2 -0
  127. package/utils/math/ease.js.map +2 -2
  128. package/utils/math/index.d.ts +4 -3
  129. package/utils/math/index.js +5 -3
  130. package/utils/math/index.js.map +2 -2
  131. package/utils/math/mean.d.ts +1 -0
  132. package/utils/math/mean.js +17 -0
  133. package/utils/math/mean.js.map +7 -0
  134. package/utils/nextFrame.d.ts +4 -22
  135. package/utils/nextFrame.js +3 -10
  136. package/utils/nextFrame.js.map +2 -2
  137. package/utils/nextMicrotask.d.ts +4 -1
  138. package/utils/nextMicrotask.js +3 -3
  139. package/utils/nextMicrotask.js.map +2 -2
  140. package/utils/nextTick.d.ts +4 -1
  141. package/utils/nextTick.js +3 -3
  142. package/utils/nextTick.js.map +2 -2
  143. package/utils/random.d.ts +15 -0
  144. package/utils/random.js +15 -0
  145. package/utils/random.js.map +7 -0
  146. package/utils/scheduler.js +4 -4
  147. package/utils/scheduler.js.map +2 -2
  148. package/utils/scrollTo.d.ts +30 -6
  149. package/utils/scrollTo.js +97 -43
  150. package/utils/scrollTo.js.map +2 -2
  151. package/utils/string/endsWith.d.ts +8 -0
  152. package/utils/string/endsWith.js +13 -0
  153. package/utils/string/endsWith.js.map +7 -0
  154. package/utils/string/index.d.ts +2 -0
  155. package/utils/string/index.js +2 -0
  156. package/utils/string/index.js.map +2 -2
  157. package/utils/string/startsWith.d.ts +8 -0
  158. package/utils/string/startsWith.js +13 -0
  159. package/utils/string/startsWith.js.map +7 -0
  160. package/utils/string/withLeadingCharacters.js.map +1 -1
  161. package/utils/string/withTrailingCharacters.js.map +1 -1
  162. package/utils/string/withoutLeadingCharacters.js.map +1 -1
  163. package/utils/string/withoutLeadingCharactersRecursive.js.map +1 -1
  164. package/utils/string/withoutTrailingCharacters.js.map +1 -1
  165. package/utils/string/withoutTrailingCharactersRecursive.js.map +1 -1
  166. package/utils/{focusTrap.d.ts → trapFocus.d.ts} +2 -10
  167. package/utils/{focusTrap.js → trapFocus.js} +5 -9
  168. package/utils/trapFocus.js.map +7 -0
  169. package/utils/tween.d.ts +59 -10
  170. package/utils/tween.js +24 -18
  171. package/utils/tween.js.map +2 -2
  172. package/Base/Base.cjs +0 -325
  173. package/Base/Base.cjs.map +0 -7
  174. package/Base/features.cjs +0 -27
  175. package/Base/features.cjs.map +0 -7
  176. package/Base/index.cjs +0 -21
  177. package/Base/index.cjs.map +0 -7
  178. package/Base/managers/AbstractManager.cjs +0 -57
  179. package/Base/managers/AbstractManager.cjs.map +0 -7
  180. package/Base/managers/ChildrenManager.cjs +0 -123
  181. package/Base/managers/ChildrenManager.cjs.map +0 -7
  182. package/Base/managers/EventsManager.cjs +0 -220
  183. package/Base/managers/EventsManager.cjs.map +0 -7
  184. package/Base/managers/OptionsManager.cjs +0 -171
  185. package/Base/managers/OptionsManager.cjs.map +0 -7
  186. package/Base/managers/RefsManager.cjs +0 -104
  187. package/Base/managers/RefsManager.cjs.map +0 -7
  188. package/Base/managers/ResponsiveOptionsManager.cjs +0 -63
  189. package/Base/managers/ResponsiveOptionsManager.cjs.map +0 -7
  190. package/Base/managers/ServicesManager.cjs +0 -111
  191. package/Base/managers/ServicesManager.cjs.map +0 -7
  192. package/Base/managers/index.cjs +0 -39
  193. package/Base/managers/index.cjs.map +0 -7
  194. package/Base/types.cjs +0 -19
  195. package/Base/types.cjs.map +0 -7
  196. package/Base/utils.cjs +0 -91
  197. package/Base/utils.cjs.map +0 -7
  198. package/decorators/index.cjs +0 -33
  199. package/decorators/index.cjs.map +0 -7
  200. package/decorators/withBreakpointManager.cjs +0 -92
  201. package/decorators/withBreakpointManager.cjs.map +0 -7
  202. package/decorators/withBreakpointObserver.cjs +0 -118
  203. package/decorators/withBreakpointObserver.cjs.map +0 -7
  204. package/decorators/withDrag.cjs +0 -50
  205. package/decorators/withDrag.cjs.map +0 -7
  206. package/decorators/withExtraConfig.cjs +0 -43
  207. package/decorators/withExtraConfig.cjs.map +0 -7
  208. package/decorators/withFreezedOptions.cjs +0 -42
  209. package/decorators/withFreezedOptions.cjs.map +0 -7
  210. package/decorators/withIntersectionObserver.cjs +0 -62
  211. package/decorators/withIntersectionObserver.cjs.map +0 -7
  212. package/decorators/withMountOnMediaQuery.cjs +0 -70
  213. package/decorators/withMountOnMediaQuery.cjs.map +0 -7
  214. package/decorators/withMountWhenInView.cjs +0 -71
  215. package/decorators/withMountWhenInView.cjs.map +0 -7
  216. package/decorators/withMountWhenPrefersMotion.cjs +0 -30
  217. package/decorators/withMountWhenPrefersMotion.cjs.map +0 -7
  218. package/decorators/withRelativePointer.cjs +0 -50
  219. package/decorators/withRelativePointer.cjs.map +0 -7
  220. package/decorators/withResponsiveOptions.cjs +0 -38
  221. package/decorators/withResponsiveOptions.cjs.map +0 -7
  222. package/decorators/withScrolledInView/index.cjs +0 -22
  223. package/decorators/withScrolledInView/index.cjs.map +0 -7
  224. package/decorators/withScrolledInView/types.cjs +0 -19
  225. package/decorators/withScrolledInView/types.cjs.map +0 -7
  226. package/decorators/withScrolledInView/utils.cjs +0 -99
  227. package/decorators/withScrolledInView/utils.cjs.map +0 -7
  228. package/decorators/withScrolledInView/withScrolledInView.cjs +0 -216
  229. package/decorators/withScrolledInView/withScrolledInView.cjs.map +0 -7
  230. package/decorators/withVue2.cjs +0 -65
  231. package/decorators/withVue2.cjs.map +0 -7
  232. package/decorators/withVue2.d.ts +0 -16
  233. package/decorators/withVue2.js +0 -43
  234. package/decorators/withVue2.js.map +0 -7
  235. package/helpers/createApp.cjs +0 -58
  236. package/helpers/createApp.cjs.map +0 -7
  237. package/helpers/getClosestParent.cjs +0 -41
  238. package/helpers/getClosestParent.cjs.map +0 -7
  239. package/helpers/getDirectChildren.cjs +0 -47
  240. package/helpers/getDirectChildren.cjs.map +0 -7
  241. package/helpers/getInstanceFromElement.cjs +0 -32
  242. package/helpers/getInstanceFromElement.cjs.map +0 -7
  243. package/helpers/importOnInteraction.cjs +0 -48
  244. package/helpers/importOnInteraction.cjs.map +0 -7
  245. package/helpers/importOnMediaQuery.cjs +0 -44
  246. package/helpers/importOnMediaQuery.cjs.map +0 -7
  247. package/helpers/importWhenIdle.cjs +0 -46
  248. package/helpers/importWhenIdle.cjs.map +0 -7
  249. package/helpers/importWhenPrefersMotion.cjs +0 -36
  250. package/helpers/importWhenPrefersMotion.cjs.map +0 -7
  251. package/helpers/importWhenVisible.cjs +0 -43
  252. package/helpers/importWhenVisible.cjs.map +0 -7
  253. package/helpers/index.cjs +0 -49
  254. package/helpers/index.cjs.map +0 -7
  255. package/helpers/utils.cjs +0 -37
  256. package/helpers/utils.cjs.map +0 -7
  257. package/index.cjs +0 -31
  258. package/index.cjs.map +0 -7
  259. package/services/drag.cjs +0 -227
  260. package/services/drag.cjs.map +0 -7
  261. package/services/index.cjs +0 -47
  262. package/services/index.cjs.map +0 -7
  263. package/services/key.cjs +0 -93
  264. package/services/key.cjs.map +0 -7
  265. package/services/load.cjs +0 -57
  266. package/services/load.cjs.map +0 -7
  267. package/services/pointer.cjs +0 -145
  268. package/services/pointer.cjs.map +0 -7
  269. package/services/raf.cjs +0 -80
  270. package/services/raf.cjs.map +0 -7
  271. package/services/resize.cjs +0 -103
  272. package/services/resize.cjs.map +0 -7
  273. package/services/scroll.cjs +0 -115
  274. package/services/scroll.cjs.map +0 -7
  275. package/services/service.cjs +0 -69
  276. package/services/service.cjs.map +0 -7
  277. package/utils/Queue.cjs +0 -63
  278. package/utils/Queue.cjs.map +0 -7
  279. package/utils/SmartQueue.cjs +0 -57
  280. package/utils/SmartQueue.cjs.map +0 -7
  281. package/utils/collide/boundingRectToCircle.cjs +0 -36
  282. package/utils/collide/boundingRectToCircle.cjs.map +0 -7
  283. package/utils/collide/collideCircleCircle.cjs +0 -35
  284. package/utils/collide/collideCircleCircle.cjs.map +0 -7
  285. package/utils/collide/collideCircleRect.cjs +0 -47
  286. package/utils/collide/collideCircleRect.cjs.map +0 -7
  287. package/utils/collide/collidePointCircle.cjs +0 -32
  288. package/utils/collide/collidePointCircle.cjs.map +0 -7
  289. package/utils/collide/collidePointRect.cjs +0 -29
  290. package/utils/collide/collidePointRect.cjs.map +0 -7
  291. package/utils/collide/collideRectRect.cjs +0 -29
  292. package/utils/collide/collideRectRect.cjs.map +0 -7
  293. package/utils/collide/index.cjs +0 -43
  294. package/utils/collide/index.cjs.map +0 -7
  295. package/utils/css/animate.cjs +0 -193
  296. package/utils/css/animate.cjs.map +0 -7
  297. package/utils/css/classes.cjs +0 -52
  298. package/utils/css/classes.cjs.map +0 -7
  299. package/utils/css/getOffsetSizes.cjs +0 -48
  300. package/utils/css/getOffsetSizes.cjs.map +0 -7
  301. package/utils/css/index.cjs +0 -48
  302. package/utils/css/index.cjs.map +0 -7
  303. package/utils/css/matrix.cjs +0 -30
  304. package/utils/css/matrix.cjs.map +0 -7
  305. package/utils/css/styles.cjs +0 -45
  306. package/utils/css/styles.cjs.map +0 -7
  307. package/utils/css/transform.cjs +0 -91
  308. package/utils/css/transform.cjs.map +0 -7
  309. package/utils/css/transition.cjs +0 -126
  310. package/utils/css/transition.cjs.map +0 -7
  311. package/utils/css/utils.cjs +0 -32
  312. package/utils/css/utils.cjs.map +0 -7
  313. package/utils/debounce.cjs +0 -35
  314. package/utils/debounce.cjs.map +0 -7
  315. package/utils/dom/ancestors.cjs +0 -37
  316. package/utils/dom/ancestors.cjs.map +0 -7
  317. package/utils/dom/index.cjs +0 -21
  318. package/utils/dom/index.cjs.map +0 -7
  319. package/utils/focusTrap.cjs +0 -89
  320. package/utils/focusTrap.cjs.map +0 -7
  321. package/utils/focusTrap.js.map +0 -7
  322. package/utils/getComponentResolver.cjs +0 -38
  323. package/utils/getComponentResolver.cjs.map +0 -7
  324. package/utils/has.cjs +0 -29
  325. package/utils/has.cjs.map +0 -7
  326. package/utils/history.cjs +0 -91
  327. package/utils/history.cjs.map +0 -7
  328. package/utils/index.cjs +0 -72
  329. package/utils/index.cjs.map +0 -7
  330. package/utils/is.cjs +0 -41
  331. package/utils/is.cjs.map +0 -7
  332. package/utils/keyCodes.cjs +0 -36
  333. package/utils/keyCodes.cjs.map +0 -7
  334. package/utils/math/clamp.cjs +0 -29
  335. package/utils/math/clamp.cjs.map +0 -7
  336. package/utils/math/clamp01.cjs +0 -36
  337. package/utils/math/clamp01.cjs.map +0 -7
  338. package/utils/math/createEases.cjs +0 -33
  339. package/utils/math/createEases.cjs.map +0 -7
  340. package/utils/math/damp.cjs +0 -29
  341. package/utils/math/damp.cjs.map +0 -7
  342. package/utils/math/ease.cjs +0 -82
  343. package/utils/math/ease.cjs.map +0 -7
  344. package/utils/math/index.cjs +0 -50
  345. package/utils/math/index.cjs.map +0 -7
  346. package/utils/math/inertiaFinalValue.cjs +0 -43
  347. package/utils/math/inertiaFinalValue.cjs.map +0 -7
  348. package/utils/math/lerp.cjs +0 -29
  349. package/utils/math/lerp.cjs.map +0 -7
  350. package/utils/math/map.cjs +0 -29
  351. package/utils/math/map.cjs.map +0 -7
  352. package/utils/math/round.cjs +0 -29
  353. package/utils/math/round.cjs.map +0 -7
  354. package/utils/memoize.cjs +0 -48
  355. package/utils/memoize.cjs.map +0 -7
  356. package/utils/nextFrame.cjs +0 -41
  357. package/utils/nextFrame.cjs.map +0 -7
  358. package/utils/nextMicrotask.cjs +0 -30
  359. package/utils/nextMicrotask.cjs.map +0 -7
  360. package/utils/nextTick.cjs +0 -31
  361. package/utils/nextTick.cjs.map +0 -7
  362. package/utils/noop.cjs +0 -32
  363. package/utils/noop.cjs.map +0 -7
  364. package/utils/object/autoBind.cjs +0 -54
  365. package/utils/object/autoBind.cjs.map +0 -7
  366. package/utils/object/autoBind.d.ts +0 -14
  367. package/utils/object/autoBind.js +0 -26
  368. package/utils/object/autoBind.js.map +0 -7
  369. package/utils/object/getAllProperties.cjs +0 -39
  370. package/utils/object/getAllProperties.cjs.map +0 -7
  371. package/utils/object/index.cjs +0 -35
  372. package/utils/object/index.cjs.map +0 -7
  373. package/utils/object/index.d.ts +0 -2
  374. package/utils/object/index.js +0 -7
  375. package/utils/object/index.js.map +0 -7
  376. package/utils/scheduler.cjs +0 -75
  377. package/utils/scheduler.cjs.map +0 -7
  378. package/utils/scrollTo.cjs +0 -84
  379. package/utils/scrollTo.cjs.map +0 -7
  380. package/utils/string/index.cjs +0 -51
  381. package/utils/string/index.cjs.map +0 -7
  382. package/utils/string/withLeadingCharacters.cjs +0 -36
  383. package/utils/string/withLeadingCharacters.cjs.map +0 -7
  384. package/utils/string/withLeadingSlash.cjs +0 -36
  385. package/utils/string/withLeadingSlash.cjs.map +0 -7
  386. package/utils/string/withTrailingCharacters.cjs +0 -36
  387. package/utils/string/withTrailingCharacters.cjs.map +0 -7
  388. package/utils/string/withTrailingSlash.cjs +0 -36
  389. package/utils/string/withTrailingSlash.cjs.map +0 -7
  390. package/utils/string/withoutLeadingCharacters.cjs +0 -29
  391. package/utils/string/withoutLeadingCharacters.cjs.map +0 -7
  392. package/utils/string/withoutLeadingCharactersRecursive.cjs +0 -41
  393. package/utils/string/withoutLeadingCharactersRecursive.cjs.map +0 -7
  394. package/utils/string/withoutLeadingSlash.cjs +0 -36
  395. package/utils/string/withoutLeadingSlash.cjs.map +0 -7
  396. package/utils/string/withoutTrailingCharacters.cjs +0 -29
  397. package/utils/string/withoutTrailingCharacters.cjs.map +0 -7
  398. package/utils/string/withoutTrailingCharactersRecursive.cjs +0 -41
  399. package/utils/string/withoutTrailingCharactersRecursive.cjs.map +0 -7
  400. package/utils/string/withoutTrailingSlash.cjs +0 -36
  401. package/utils/string/withoutTrailingSlash.cjs.map +0 -7
  402. package/utils/throttle.cjs +0 -37
  403. package/utils/throttle.cjs.map +0 -7
  404. package/utils/tween.cjs +0 -118
  405. package/utils/tween.cjs.map +0 -7
  406. package/utils/wait.cjs +0 -31
  407. package/utils/wait.cjs.map +0 -7
package/Base/Base.d.ts CHANGED
@@ -191,7 +191,7 @@ export declare class Base<T extends BaseProps = BaseProps> extends EventTarget {
191
191
  */
192
192
  $emit(event: string, ...args: unknown[]): void;
193
193
  /**
194
- * Factory method to generate multiple instance of the class.
194
+ * Register and mount all instances of the component.
195
195
  */
196
- static $factory(nameOrSelector: string): Base[];
196
+ static $register(nameOrSelector?: string): Base[];
197
197
  }
package/Base/Base.js CHANGED
@@ -8,49 +8,34 @@ import {
8
8
  } from "./managers/index.js";
9
9
  import { noop, isDev, isFunction, isArray } from "../utils/index.js";
10
10
  let id = 0;
11
- function createAndTestManagers(instance) {
12
- [
13
- {
14
- prop: "__options",
15
- constructorName: "OptionsManager",
16
- constructor: OptionsManager
17
- },
18
- {
19
- prop: "__services",
20
- constructorName: "ServicesManager",
21
- constructor: ServicesManager
22
- },
23
- {
24
- prop: "__events",
25
- constructorName: "EventsManager",
26
- constructor: EventsManager
27
- },
28
- {
29
- prop: "__refs",
30
- constructorName: "RefsManager",
31
- constructor: RefsManager
32
- },
33
- {
34
- prop: "__children",
35
- constructorName: "ChildrenManager",
36
- constructor: ChildrenManager
37
- }
38
- ].forEach(({ prop, constructorName, constructor }) => {
39
- instance[prop] = new instance.__managers[constructorName](instance);
40
- if (isDev && !(instance[prop] instanceof constructor)) {
41
- throw new Error(
42
- `The \`$managers.${constructorName}\` must extend the \`${constructorName}\` class.`
43
- );
44
- }
45
- });
46
- }
47
11
  class Base extends EventTarget {
12
+ /**
13
+ * This is a Base instance.
14
+ */
48
15
  static $isBase = true;
16
+ /**
17
+ * The instance parent.
18
+ */
49
19
  $parent = null;
20
+ /**
21
+ * The instance id.
22
+ */
50
23
  $id;
24
+ /**
25
+ * The root element.
26
+ */
51
27
  $el;
28
+ /**
29
+ * The state of the component.
30
+ */
52
31
  $isMounted = false;
32
+ /**
33
+ * Store the event handlers.
34
+ */
53
35
  __eventHandlers = /* @__PURE__ */ new Map();
36
+ /**
37
+ * Get the root instance of the app.
38
+ */
54
39
  get $root() {
55
40
  if (!this.$parent) {
56
41
  return this;
@@ -65,6 +50,9 @@ class Base extends EventTarget {
65
50
  }
66
51
  return root;
67
52
  }
53
+ /**
54
+ * Merge configuration with the parents' configurations.
55
+ */
68
56
  get __config() {
69
57
  let proto = Object.getPrototypeOf(this);
70
58
  let { config } = proto.constructor;
@@ -86,11 +74,13 @@ class Base extends EventTarget {
86
74
  static config = {
87
75
  name: "Base",
88
76
  emits: [
77
+ // hook events
89
78
  "before-mounted",
90
79
  "mounted",
91
80
  "updated",
92
81
  "destroyed",
93
82
  "terminated",
83
+ // default services' events
94
84
  "ticked",
95
85
  "scrolled",
96
86
  "resized",
@@ -116,15 +106,27 @@ class Base extends EventTarget {
116
106
  return this.__children;
117
107
  }
118
108
  __events;
109
+ /**
110
+ * Small helper to log stuff.
111
+ */
119
112
  get $log() {
120
113
  return this.__options.log ? window.console.log.bind(window, `[${this.__config.name}]`) : noop;
121
114
  }
115
+ /**
116
+ * Small helper to make warning easier.
117
+ */
122
118
  get $warn() {
123
119
  return this.__options.log ? window.console.warn.bind(window, `[${this.__config.name}]`) : noop;
124
120
  }
121
+ /**
122
+ * Small helper to debug information.
123
+ */
125
124
  get __debug() {
126
125
  return isDev && this.__options.debug ? window.console.log.bind(window, `[debug] [${this.$id}]`) : noop;
127
126
  }
127
+ /**
128
+ * Get manager constructors.
129
+ */
128
130
  get __managers() {
129
131
  return {
130
132
  ChildrenManager,
@@ -134,6 +136,9 @@ class Base extends EventTarget {
134
136
  ServicesManager
135
137
  };
136
138
  }
139
+ /**
140
+ * Call an instance method and emit corresponding events.
141
+ */
137
142
  __callMethod(method, ...args) {
138
143
  if (isDev) {
139
144
  this.__debug("callMethod", method, ...args);
@@ -147,10 +152,21 @@ class Base extends EventTarget {
147
152
  }
148
153
  return this[method].call(this, ...args);
149
154
  }
155
+ /**
156
+ * Test if the given event has been bound to the instance.
157
+ *
158
+ * @param {string} event The event's name.
159
+ * @returns {boolean} Wether the given event has been bound or not.
160
+ */
150
161
  __hasEvent(event) {
151
162
  const eventHandlers = this.__eventHandlers.get(event);
152
163
  return eventHandlers && eventHandlers.size > 0;
153
164
  }
165
+ /**
166
+ * Class constructor where all the magic takes place.
167
+ *
168
+ * @param {HTMLElement} element The component's root element dd.
169
+ */
154
170
  constructor(element) {
155
171
  super();
156
172
  if (!element) {
@@ -173,11 +189,16 @@ class Base extends EventTarget {
173
189
  this.$el.__base__ = /* @__PURE__ */ new WeakMap();
174
190
  }
175
191
  this.$el.__base__.set(this.__ctor, this);
176
- createAndTestManagers(this);
192
+ for (const service of ["Options", "Services", "Events", "Refs", "Children"]) {
193
+ this[`__${service.toLowerCase()}`] = new this.__managers[`${service}Manager`](this);
194
+ }
177
195
  if (isDev) {
178
196
  this.__debug("constructor", this);
179
197
  }
180
198
  }
199
+ /**
200
+ * Trigger the `mounted` callback.
201
+ */
181
202
  $mount() {
182
203
  if (this.$isMounted) {
183
204
  return this;
@@ -186,34 +207,34 @@ class Base extends EventTarget {
186
207
  if (isDev) {
187
208
  this.__debug("$mount");
188
209
  }
189
- [
190
- () => this.$children.registerAll(),
191
- () => this.$refs.registerAll(),
192
- () => this.__events.bindRootElement(),
193
- () => this.$services.enableAll(),
194
- () => this.$children.mountAll(),
195
- () => {
196
- this.$isMounted = true;
197
- },
198
- () => this.__callMethod("mounted")
199
- ].forEach(addToQueue);
210
+ addToQueue(() => this.$children.registerAll());
211
+ addToQueue(() => this.$refs.registerAll());
212
+ addToQueue(() => this.__events.bindRootElement());
213
+ addToQueue(() => this.$services.enableAll());
214
+ addToQueue(() => this.$children.mountAll());
215
+ addToQueue(() => this.$isMounted = true);
216
+ addToQueue(() => this.__callMethod("mounted"));
200
217
  return this;
201
218
  }
219
+ /**
220
+ * Update the instance children.
221
+ */
202
222
  $update() {
203
223
  if (isDev) {
204
224
  this.__debug("$update");
205
225
  }
206
- [
207
- () => this.$refs.unregisterAll(),
208
- () => this.$services.disableAll(),
209
- () => this.$children.registerAll(),
210
- () => this.$refs.registerAll(),
211
- () => this.$services.enableAll(),
212
- () => this.$children.updateAll(),
213
- () => this.__callMethod("updated")
214
- ].forEach(addToQueue);
226
+ addToQueue(() => this.$refs.unregisterAll());
227
+ addToQueue(() => this.$services.disableAll());
228
+ addToQueue(() => this.$children.registerAll());
229
+ addToQueue(() => this.$refs.registerAll());
230
+ addToQueue(() => this.$services.enableAll());
231
+ addToQueue(() => this.$children.updateAll());
232
+ addToQueue(() => this.__callMethod("updated"));
215
233
  return this;
216
234
  }
235
+ /**
236
+ * Trigger the `destroyed` callback.
237
+ */
217
238
  $destroy() {
218
239
  if (!this.$isMounted) {
219
240
  return this;
@@ -221,28 +242,31 @@ class Base extends EventTarget {
221
242
  if (isDev) {
222
243
  this.__debug("$destroy");
223
244
  }
224
- [
225
- () => {
226
- this.$isMounted = false;
227
- },
228
- () => this.__events.unbindRootElement(),
229
- () => this.$refs.unregisterAll(),
230
- () => this.$services.disableAll(),
231
- () => this.$children.destroyAll(),
232
- () => this.__callMethod("destroyed")
233
- ].forEach(addToQueue);
245
+ addToQueue(() => this.$isMounted = false);
246
+ addToQueue(() => this.__events.unbindRootElement());
247
+ addToQueue(() => this.$refs.unregisterAll());
248
+ addToQueue(() => this.$services.disableAll());
249
+ addToQueue(() => this.$children.destroyAll());
250
+ addToQueue(() => this.__callMethod("destroyed"));
234
251
  return this;
235
252
  }
253
+ /**
254
+ * Terminate a child instance when it is not needed anymore.
255
+ */
236
256
  $terminate() {
237
257
  if (isDev) {
238
258
  this.__debug("$terminate");
239
259
  }
240
- [
241
- () => this.$destroy(),
242
- () => this.__callMethod("terminated"),
243
- () => this.$el.__base__.set(this.__ctor, "terminated")
244
- ].forEach(addToQueue);
260
+ addToQueue(() => this.$destroy());
261
+ addToQueue(() => this.__callMethod("terminated"));
262
+ addToQueue(() => this.$el.__base__.set(this.__ctor, "terminated"));
245
263
  }
264
+ /**
265
+ * Add an emitted event.
266
+ *
267
+ * @param {string} event The event name.
268
+ * @returns {void}
269
+ */
246
270
  __addEmits(event) {
247
271
  const ctor = this.__ctor;
248
272
  if (isArray(ctor.config.emits)) {
@@ -251,14 +275,35 @@ class Base extends EventTarget {
251
275
  ctor.config.emits = [event];
252
276
  }
253
277
  }
278
+ /**
279
+ * Remove an emitted event.
280
+ *
281
+ * @param {string} event The event name.
282
+ * @returns {void}
283
+ */
254
284
  __removeEmits(event) {
255
285
  const ctor = this.__ctor;
256
286
  const index = ctor.config.emits.indexOf(event);
257
287
  ctor.config.emits.splice(index, 1);
258
288
  }
289
+ /**
290
+ * Get the instance constructor.
291
+ */
259
292
  get __ctor() {
260
293
  return this.constructor;
261
294
  }
295
+ /**
296
+ * Bind a listener function to an event.
297
+ *
298
+ * @param {string} event
299
+ * Name of the event.
300
+ * @param {EventListenerOrEventListenerObject} listener
301
+ * Function to be called.
302
+ * @param {boolean|AddEventListenerOptions} [options]
303
+ * Options for the `removeEventListener` method.
304
+ * @returns {() => void}
305
+ * A function to unbind the listener.
306
+ */
262
307
  $on(event, listener, options) {
263
308
  if (isDev) {
264
309
  this.__debug("$on", event, listener, options);
@@ -275,6 +320,17 @@ class Base extends EventTarget {
275
320
  this.$off(event, listener, options);
276
321
  };
277
322
  }
323
+ /**
324
+ * Unbind a listener function from an event.
325
+ *
326
+ * @param {string} event
327
+ * Name of the event.
328
+ * @param {EventListenerOrEventListenerObject} listener
329
+ * Function to be removed.
330
+ * @param {boolean|EventListenerOptions} [options]
331
+ * Options for the `removeEventListener` method.
332
+ * @returns {void}
333
+ */
278
334
  $off(event, listener, options) {
279
335
  if (isDev) {
280
336
  this.__debug("$off", event, listener);
@@ -283,19 +339,26 @@ class Base extends EventTarget {
283
339
  const target = getEventTarget(this, event, this.__config);
284
340
  target.removeEventListener(event, listener, options);
285
341
  }
342
+ /**
343
+ * Emits an event.
344
+ *
345
+ * @param {string} event Name of the event.
346
+ * @param {any[]} args The arguments to apply to the functions bound to this event.
347
+ * @returns {void}
348
+ */
286
349
  $emit(event, ...args) {
287
350
  if (isDev) {
288
351
  this.__debug("$emit", event, args);
289
352
  }
290
353
  this.dispatchEvent(new CustomEvent(event, { detail: args }));
291
354
  }
292
- static $factory(nameOrSelector) {
293
- if (isDev && !nameOrSelector) {
294
- throw new Error(
295
- "The $factory method requires a component\u2019s name or selector to be specified."
296
- );
297
- }
298
- return getComponentElements(nameOrSelector).map((el) => new this(el).$mount());
355
+ /**
356
+ * Register and mount all instances of the component.
357
+ */
358
+ static $register(nameOrSelector) {
359
+ return getComponentElements(nameOrSelector ?? this.config.name).map(
360
+ (el) => new this(el).$mount()
361
+ );
299
362
  }
300
363
  }
301
364
  export {
package/Base/Base.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../packages/js-toolkit/Base/Base.ts"],
4
- "sourcesContent": ["/* eslint-disable no-use-before-define */\nimport { getComponentElements, getEventTarget, addToQueue } from './utils.js';\nimport {\n ChildrenManager,\n RefsManager,\n ServicesManager,\n EventsManager,\n OptionsManager,\n} from './managers/index.js';\nimport { noop, isDev, isFunction, isArray } from '../utils/index.js';\n\nlet id = 0;\n\n/**\n * Test if the managers' instances implement the default manager.\n *\n * @throws\n */\nfunction createAndTestManagers(instance: Base): void {\n [\n {\n prop: '__options',\n constructorName: 'OptionsManager',\n constructor: OptionsManager,\n },\n {\n prop: '__services',\n constructorName: 'ServicesManager',\n constructor: ServicesManager,\n },\n {\n prop: '__events',\n constructorName: 'EventsManager',\n constructor: EventsManager,\n },\n {\n prop: '__refs',\n constructorName: 'RefsManager',\n constructor: RefsManager,\n },\n {\n prop: '__children',\n constructorName: 'ChildrenManager',\n constructor: ChildrenManager,\n },\n ].forEach(({ prop, constructorName, constructor }) => {\n instance[prop] = new instance.__managers[constructorName](instance);\n if (isDev && !(instance[prop] instanceof constructor)) {\n throw new Error(\n `The \\`$managers.${constructorName}\\` must extend the \\`${constructorName}\\` class.`,\n );\n }\n });\n}\n\nexport type BaseEl = HTMLElement & { __base__?: WeakMap<BaseConstructor, Base | 'terminated'> };\nexport type BaseConstructor<T extends Base = Base> = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n new (...args: any[]): T;\n prototype: Base;\n} & Pick<typeof Base, keyof typeof Base>;\nexport type BaseAsyncConstructor<T extends Base = Base> = (\n instance: Base,\n) => Promise<BaseConstructor<T> | { default: BaseConstructor<T> }>;\nexport type BaseOptions = { [name: string]: unknown };\nexport type BaseRefs = { [name: string]: HTMLElement | HTMLElement[] };\nexport type BaseChildren = { [nameOrSelector: string]: Base[] | Promise<Base>[] };\nexport type BaseConfigComponents = {\n [nameOrSelector: string]: BaseConstructor | BaseAsyncConstructor;\n};\n\nexport type BaseConfig = {\n name: string;\n debug?: boolean;\n log?: boolean;\n refs?: string[];\n emits?: string[];\n components?: BaseConfigComponents;\n options?: import('./managers/OptionsManager').OptionsSchema;\n};\n\nexport type BaseProps = {\n $el?: HTMLElement;\n $options?: BaseOptions;\n $refs?: BaseRefs;\n $children?: BaseChildren;\n $parent?: Base;\n};\n\nexport type Managers = {\n ChildrenManager: typeof ChildrenManager;\n EventsManager: typeof EventsManager;\n OptionsManager: typeof OptionsManager;\n RefsManager: typeof RefsManager;\n ServicesManager: typeof ServicesManager;\n};\n\n/**\n * Base class.\n */\nexport class Base<T extends BaseProps = BaseProps> extends EventTarget {\n /**\n * This is a Base instance.\n */\n static readonly $isBase = true as const;\n\n /**\n * The instance parent.\n */\n $parent: T['$parent'] & Base = null;\n\n /**\n * The instance id.\n */\n $id: string;\n\n /**\n * The root element.\n */\n $el: T['$el'] & BaseEl;\n\n /**\n * The state of the component.\n */\n $isMounted = false;\n\n /**\n * Store the event handlers.\n */\n __eventHandlers: Map<string, Set<EventListenerOrEventListenerObject>> = new Map();\n\n /**\n * Get the root instance of the app.\n */\n get $root(): Base {\n if (!this.$parent) {\n return this;\n }\n\n let parent = this.$parent;\n let root = this.$parent;\n\n while (parent) {\n if (!parent.$parent) {\n root = parent;\n }\n\n parent = parent.$parent;\n }\n\n return root;\n }\n\n /**\n * Merge configuration with the parents' configurations.\n */\n get __config(): BaseConfig {\n let proto = Object.getPrototypeOf(this);\n let { config } = proto.constructor;\n\n while (proto.constructor.config && proto.constructor.$isBase) {\n config = { ...proto.constructor.config, ...config };\n\n if (proto.constructor.config.options) {\n config.options = { ...proto.constructor.config.options, ...config.options };\n }\n\n if (proto.constructor.config.emits && config.emits) {\n config.emits = [...proto.constructor.config.emits, ...config.emits];\n }\n\n proto = Object.getPrototypeOf(proto);\n }\n\n config.options = config.options ?? {};\n config.refs = config.refs ?? [];\n config.components = config.components ?? {};\n\n return config;\n }\n\n static config: BaseConfig = {\n name: 'Base',\n emits: [\n // hook events\n 'before-mounted',\n 'mounted',\n 'updated',\n 'destroyed',\n 'terminated',\n // default services' events\n 'ticked',\n 'scrolled',\n 'resized',\n 'moved',\n 'loaded',\n 'keyed',\n ],\n };\n\n __services: ServicesManager;\n\n get $services(): ServicesManager {\n return this.__services;\n }\n\n __refs: RefsManager & T['$refs'] & BaseRefs;\n\n get $refs(): RefsManager & T['$refs'] & BaseRefs {\n return this.__refs;\n }\n\n __options: OptionsManager & T['$options'] & BaseOptions;\n\n get $options(): OptionsManager & T['$options'] & BaseOptions {\n return this.__options;\n }\n\n __children: ChildrenManager & T['$children'] & BaseChildren;\n\n get $children(): ChildrenManager & T['$children'] & BaseChildren {\n return this.__children;\n }\n\n __events: EventsManager;\n\n /**\n * Small helper to log stuff.\n */\n get $log(): (...args: unknown[]) => void {\n return this.__options.log ? window.console.log.bind(window, `[${this.__config.name}]`) : noop;\n }\n\n /**\n * Small helper to make warning easier.\n */\n get $warn(): (...args: unknown[]) => void {\n return this.__options.log ? window.console.warn.bind(window, `[${this.__config.name}]`) : noop;\n }\n\n /**\n * Small helper to debug information.\n */\n get __debug(): (...args: unknown[]) => void {\n return isDev && this.__options.debug\n ? window.console.log.bind(window, `[debug] [${this.$id}]`)\n : noop;\n }\n\n /**\n * Get manager constructors.\n */\n get __managers(): Managers {\n return {\n ChildrenManager,\n EventsManager,\n OptionsManager,\n RefsManager,\n ServicesManager,\n };\n }\n\n /**\n * Call an instance method and emit corresponding events.\n */\n __callMethod(method: string, ...args: unknown[]): unknown {\n if (isDev) {\n this.__debug('callMethod', method, ...args);\n }\n\n this.$emit(method, ...args);\n\n // We always emit an event, but we do not call the method if it does not exist\n if (!isFunction(this[method])) {\n return null;\n }\n\n if (isDev) {\n this.__debug(method, this, ...args);\n }\n\n return this[method].call(this, ...args);\n }\n\n /**\n * Test if the given event has been bound to the instance.\n *\n * @param {string} event The event's name.\n * @returns {boolean} Wether the given event has been bound or not.\n */\n __hasEvent(event: string): boolean {\n const eventHandlers = this.__eventHandlers.get(event);\n return eventHandlers && eventHandlers.size > 0;\n }\n\n /**\n * Class constructor where all the magic takes place.\n *\n * @param {HTMLElement} element The component's root element dd.\n */\n constructor(element: HTMLElement) {\n super();\n\n if (!element) {\n if (isDev) {\n throw new Error('The root element must be defined.');\n }\n return;\n }\n\n const { __config } = this;\n\n if (__config.name === 'Base') {\n if (isDev) {\n throw new Error('The `config.name` property is required.');\n }\n return;\n }\n\n this.$id = `${__config.name}-${id}`;\n id += 1;\n\n this.$el = element;\n\n if (!this.$el.__base__) {\n this.$el.__base__ = new WeakMap();\n }\n\n this.$el.__base__.set(this.__ctor, this);\n\n createAndTestManagers(this);\n\n if (isDev) {\n this.__debug('constructor', this);\n }\n }\n\n /**\n * Trigger the `mounted` callback.\n */\n $mount(): this {\n if (this.$isMounted) {\n return this;\n }\n\n this.$emit('before-mounted');\n\n if (isDev) {\n this.__debug('$mount');\n }\n\n [\n () => this.$children.registerAll(),\n () => this.$refs.registerAll(),\n () => this.__events.bindRootElement(),\n () => this.$services.enableAll(),\n () => this.$children.mountAll(),\n // eslint-disable-next-line prettier/prettier\n () => {\n this.$isMounted = true;\n },\n () => this.__callMethod('mounted'),\n ].forEach(addToQueue);\n\n return this;\n }\n\n /**\n * Update the instance children.\n */\n $update(): this {\n if (isDev) {\n this.__debug('$update');\n }\n\n [\n // Undo\n () => this.$refs.unregisterAll(),\n () => this.$services.disableAll(),\n // Redo\n () => this.$children.registerAll(),\n () => this.$refs.registerAll(),\n () => this.$services.enableAll(),\n // Update\n () => this.$children.updateAll(),\n () => this.__callMethod('updated'),\n ].forEach(addToQueue);\n\n return this;\n }\n\n /**\n * Trigger the `destroyed` callback.\n */\n $destroy(): this {\n if (!this.$isMounted) {\n return this;\n }\n\n if (isDev) {\n this.__debug('$destroy');\n }\n\n [\n // eslint-disable-next-line prettier/prettier\n () => {\n this.$isMounted = false;\n },\n () => this.__events.unbindRootElement(),\n () => this.$refs.unregisterAll(),\n () => this.$services.disableAll(),\n () => this.$children.destroyAll(),\n () => this.__callMethod('destroyed'),\n ].forEach(addToQueue);\n\n return this;\n }\n\n /**\n * Terminate a child instance when it is not needed anymore.\n */\n $terminate(): void {\n if (isDev) {\n this.__debug('$terminate');\n }\n\n [\n // First, destroy the component.\n () => this.$destroy(),\n // Execute the `terminated` hook if it exists\n () => this.__callMethod('terminated'),\n // Delete instance\n () => this.$el.__base__.set(this.__ctor, 'terminated'),\n ].forEach(addToQueue);\n }\n\n /**\n * Add an emitted event.\n *\n * @param {string} event The event name.\n * @returns {void}\n */\n __addEmits(event: string): void {\n const ctor = this.__ctor;\n if (isArray(ctor.config.emits)) {\n ctor.config.emits.push(event);\n } else {\n ctor.config.emits = [event];\n }\n }\n\n /**\n * Remove an emitted event.\n *\n * @param {string} event The event name.\n * @returns {void}\n */\n __removeEmits(event: string): void {\n const ctor = this.__ctor;\n const index = ctor.config.emits.indexOf(event);\n ctor.config.emits.splice(index, 1);\n }\n\n /**\n * Get the instance constructor.\n */\n get __ctor(): BaseConstructor {\n return this.constructor as BaseConstructor;\n }\n\n /**\n * Bind a listener function to an event.\n *\n * @param {string} event\n * Name of the event.\n * @param {EventListenerOrEventListenerObject} listener\n * Function to be called.\n * @param {boolean|AddEventListenerOptions} [options]\n * Options for the `removeEventListener` method.\n * @returns {() => void}\n * A function to unbind the listener.\n */\n $on(\n event: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): () => void {\n if (isDev) {\n this.__debug('$on', event, listener, options);\n }\n\n let set = this.__eventHandlers.get(event);\n\n if (!set) {\n set = new Set();\n this.__eventHandlers.set(event, set);\n }\n\n set.add(listener);\n\n const target = getEventTarget(this, event, this.__config);\n target.addEventListener(event, listener, options);\n\n return () => {\n this.$off(event, listener, options);\n };\n }\n\n /**\n * Unbind a listener function from an event.\n *\n * @param {string} event\n * Name of the event.\n * @param {EventListenerOrEventListenerObject} listener\n * Function to be removed.\n * @param {boolean|EventListenerOptions} [options]\n * Options for the `removeEventListener` method.\n * @returns {void}\n */\n $off(\n event: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n ) {\n if (isDev) {\n this.__debug('$off', event, listener);\n }\n\n this.__eventHandlers.get(event).delete(listener);\n\n const target = getEventTarget(this, event, this.__config);\n target.removeEventListener(event, listener, options);\n }\n\n /**\n * Emits an event.\n *\n * @param {string} event Name of the event.\n * @param {any[]} args The arguments to apply to the functions bound to this event.\n * @returns {void}\n */\n $emit(event: string, ...args: unknown[]) {\n if (isDev) {\n this.__debug('$emit', event, args);\n }\n\n this.dispatchEvent(new CustomEvent(event, { detail: args }));\n }\n\n /**\n * Factory method to generate multiple instance of the class.\n */\n static $factory(nameOrSelector: string): Base[] {\n if (isDev && !nameOrSelector) {\n throw new Error(\n 'The $factory method requires a component\u2019s name or selector to be specified.',\n );\n }\n\n return getComponentElements(nameOrSelector).map((el) => new this(el).$mount());\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable no-use-before-define */\nimport { getComponentElements, getEventTarget, addToQueue } from './utils.js';\nimport {\n ChildrenManager,\n RefsManager,\n ServicesManager,\n EventsManager,\n OptionsManager,\n} from './managers/index.js';\nimport { noop, isDev, isFunction, isArray } from '../utils/index.js';\n\nlet id = 0;\n\nexport type BaseEl = HTMLElement & { __base__?: WeakMap<BaseConstructor, Base | 'terminated'> };\nexport type BaseConstructor<T extends Base = Base> = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n new (...args: any[]): T;\n prototype: Base;\n} & Pick<typeof Base, keyof typeof Base>;\nexport type BaseAsyncConstructor<T extends Base = Base> = (\n instance: Base,\n) => Promise<BaseConstructor<T> | { default: BaseConstructor<T> }>;\nexport type BaseOptions = { [name: string]: unknown };\nexport type BaseRefs = { [name: string]: HTMLElement | HTMLElement[] };\nexport type BaseChildren = { [nameOrSelector: string]: Base[] | Promise<Base>[] };\nexport type BaseConfigComponents = {\n [nameOrSelector: string]: BaseConstructor | BaseAsyncConstructor;\n};\n\nexport type BaseConfig = {\n name: string;\n debug?: boolean;\n log?: boolean;\n refs?: string[];\n emits?: string[];\n components?: BaseConfigComponents;\n options?: import('./managers/OptionsManager').OptionsSchema;\n};\n\nexport type BaseProps = {\n $el?: HTMLElement;\n $options?: BaseOptions;\n $refs?: BaseRefs;\n $children?: BaseChildren;\n $parent?: Base;\n};\n\nexport type Managers = {\n ChildrenManager: typeof ChildrenManager;\n EventsManager: typeof EventsManager;\n OptionsManager: typeof OptionsManager;\n RefsManager: typeof RefsManager;\n ServicesManager: typeof ServicesManager;\n};\n\n/**\n * Base class.\n */\nexport class Base<T extends BaseProps = BaseProps> extends EventTarget {\n /**\n * This is a Base instance.\n */\n static readonly $isBase = true as const;\n\n /**\n * The instance parent.\n */\n $parent: T['$parent'] & Base = null;\n\n /**\n * The instance id.\n */\n $id: string;\n\n /**\n * The root element.\n */\n $el: T['$el'] & BaseEl;\n\n /**\n * The state of the component.\n */\n $isMounted = false;\n\n /**\n * Store the event handlers.\n */\n __eventHandlers: Map<string, Set<EventListenerOrEventListenerObject>> = new Map();\n\n /**\n * Get the root instance of the app.\n */\n get $root(): Base {\n if (!this.$parent) {\n return this;\n }\n\n let parent = this.$parent;\n let root = this.$parent;\n\n while (parent) {\n if (!parent.$parent) {\n root = parent;\n }\n\n parent = parent.$parent;\n }\n\n return root;\n }\n\n /**\n * Merge configuration with the parents' configurations.\n */\n get __config(): BaseConfig {\n let proto = Object.getPrototypeOf(this);\n let { config } = proto.constructor;\n\n while (proto.constructor.config && proto.constructor.$isBase) {\n config = { ...proto.constructor.config, ...config };\n\n if (proto.constructor.config.options) {\n config.options = { ...proto.constructor.config.options, ...config.options };\n }\n\n if (proto.constructor.config.emits && config.emits) {\n config.emits = [...proto.constructor.config.emits, ...config.emits];\n }\n\n proto = Object.getPrototypeOf(proto);\n }\n\n config.options = config.options ?? {};\n config.refs = config.refs ?? [];\n config.components = config.components ?? {};\n\n return config;\n }\n\n static config: BaseConfig = {\n name: 'Base',\n emits: [\n // hook events\n 'before-mounted',\n 'mounted',\n 'updated',\n 'destroyed',\n 'terminated',\n // default services' events\n 'ticked',\n 'scrolled',\n 'resized',\n 'moved',\n 'loaded',\n 'keyed',\n ],\n };\n\n __services: ServicesManager;\n\n get $services(): ServicesManager {\n return this.__services;\n }\n\n __refs: RefsManager & T['$refs'] & BaseRefs;\n\n get $refs(): RefsManager & T['$refs'] & BaseRefs {\n return this.__refs;\n }\n\n __options: OptionsManager & T['$options'] & BaseOptions;\n\n get $options(): OptionsManager & T['$options'] & BaseOptions {\n return this.__options;\n }\n\n __children: ChildrenManager & T['$children'] & BaseChildren;\n\n get $children(): ChildrenManager & T['$children'] & BaseChildren {\n return this.__children;\n }\n\n __events: EventsManager;\n\n /**\n * Small helper to log stuff.\n */\n get $log(): (...args: unknown[]) => void {\n return this.__options.log ? window.console.log.bind(window, `[${this.__config.name}]`) : noop;\n }\n\n /**\n * Small helper to make warning easier.\n */\n get $warn(): (...args: unknown[]) => void {\n return this.__options.log ? window.console.warn.bind(window, `[${this.__config.name}]`) : noop;\n }\n\n /**\n * Small helper to debug information.\n */\n get __debug(): (...args: unknown[]) => void {\n return isDev && this.__options.debug\n ? window.console.log.bind(window, `[debug] [${this.$id}]`)\n : noop;\n }\n\n /**\n * Get manager constructors.\n */\n get __managers(): Managers {\n return {\n ChildrenManager,\n EventsManager,\n OptionsManager,\n RefsManager,\n ServicesManager,\n };\n }\n\n /**\n * Call an instance method and emit corresponding events.\n */\n __callMethod(method: string, ...args: unknown[]): unknown {\n if (isDev) {\n this.__debug('callMethod', method, ...args);\n }\n\n this.$emit(method, ...args);\n\n // We always emit an event, but we do not call the method if it does not exist\n if (!isFunction(this[method])) {\n return null;\n }\n\n if (isDev) {\n this.__debug(method, this, ...args);\n }\n\n return this[method].call(this, ...args);\n }\n\n /**\n * Test if the given event has been bound to the instance.\n *\n * @param {string} event The event's name.\n * @returns {boolean} Wether the given event has been bound or not.\n */\n __hasEvent(event: string): boolean {\n const eventHandlers = this.__eventHandlers.get(event);\n return eventHandlers && eventHandlers.size > 0;\n }\n\n /**\n * Class constructor where all the magic takes place.\n *\n * @param {HTMLElement} element The component's root element dd.\n */\n constructor(element: HTMLElement) {\n super();\n\n if (!element) {\n if (isDev) {\n throw new Error('The root element must be defined.');\n }\n return;\n }\n\n const { __config } = this;\n\n if (__config.name === 'Base') {\n if (isDev) {\n throw new Error('The `config.name` property is required.');\n }\n return;\n }\n\n this.$id = `${__config.name}-${id}`;\n id += 1;\n\n this.$el = element;\n\n if (!this.$el.__base__) {\n this.$el.__base__ = new WeakMap();\n }\n\n this.$el.__base__.set(this.__ctor, this);\n\n for (const service of ['Options', 'Services', 'Events', 'Refs', 'Children']) {\n this[`__${service.toLowerCase()}`] = new this.__managers[`${service}Manager`](this);\n }\n\n if (isDev) {\n this.__debug('constructor', this);\n }\n }\n\n /**\n * Trigger the `mounted` callback.\n */\n $mount(): this {\n if (this.$isMounted) {\n return this;\n }\n\n this.$emit('before-mounted');\n\n if (isDev) {\n this.__debug('$mount');\n }\n\n addToQueue(() => this.$children.registerAll());\n addToQueue(() => this.$refs.registerAll());\n addToQueue(() => this.__events.bindRootElement());\n addToQueue(() => this.$services.enableAll());\n addToQueue(() => this.$children.mountAll());\n // eslint-disable-next-line no-return-assign\n addToQueue(() => (this.$isMounted = true));\n addToQueue(() => this.__callMethod('mounted'));\n\n return this;\n }\n\n /**\n * Update the instance children.\n */\n $update(): this {\n if (isDev) {\n this.__debug('$update');\n }\n\n // Undo\n addToQueue(() => this.$refs.unregisterAll());\n addToQueue(() => this.$services.disableAll());\n // Redo\n addToQueue(() => this.$children.registerAll());\n addToQueue(() => this.$refs.registerAll());\n addToQueue(() => this.$services.enableAll());\n // Update\n addToQueue(() => this.$children.updateAll());\n addToQueue(() => this.__callMethod('updated'));\n\n return this;\n }\n\n /**\n * Trigger the `destroyed` callback.\n */\n $destroy(): this {\n if (!this.$isMounted) {\n return this;\n }\n\n if (isDev) {\n this.__debug('$destroy');\n }\n\n // eslint-disable-next-line no-return-assign\n addToQueue(() => (this.$isMounted = false));\n addToQueue(() => this.__events.unbindRootElement());\n addToQueue(() => this.$refs.unregisterAll());\n addToQueue(() => this.$services.disableAll());\n addToQueue(() => this.$children.destroyAll());\n addToQueue(() => this.__callMethod('destroyed'));\n\n return this;\n }\n\n /**\n * Terminate a child instance when it is not needed anymore.\n */\n $terminate(): void {\n if (isDev) {\n this.__debug('$terminate');\n }\n\n // First, destroy the component.\n addToQueue(() => this.$destroy());\n // Execute the `terminated` hook if it exists\n addToQueue(() => this.__callMethod('terminated'));\n // Delete instance\n addToQueue(() => this.$el.__base__.set(this.__ctor, 'terminated'));\n }\n\n /**\n * Add an emitted event.\n *\n * @param {string} event The event name.\n * @returns {void}\n */\n __addEmits(event: string): void {\n const ctor = this.__ctor;\n if (isArray(ctor.config.emits)) {\n ctor.config.emits.push(event);\n } else {\n ctor.config.emits = [event];\n }\n }\n\n /**\n * Remove an emitted event.\n *\n * @param {string} event The event name.\n * @returns {void}\n */\n __removeEmits(event: string): void {\n const ctor = this.__ctor;\n const index = ctor.config.emits.indexOf(event);\n ctor.config.emits.splice(index, 1);\n }\n\n /**\n * Get the instance constructor.\n */\n get __ctor(): BaseConstructor {\n return this.constructor as BaseConstructor;\n }\n\n /**\n * Bind a listener function to an event.\n *\n * @param {string} event\n * Name of the event.\n * @param {EventListenerOrEventListenerObject} listener\n * Function to be called.\n * @param {boolean|AddEventListenerOptions} [options]\n * Options for the `removeEventListener` method.\n * @returns {() => void}\n * A function to unbind the listener.\n */\n $on(\n event: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): () => void {\n if (isDev) {\n this.__debug('$on', event, listener, options);\n }\n\n let set = this.__eventHandlers.get(event);\n\n if (!set) {\n set = new Set();\n this.__eventHandlers.set(event, set);\n }\n\n set.add(listener);\n\n const target = getEventTarget(this, event, this.__config);\n target.addEventListener(event, listener, options);\n\n return () => {\n this.$off(event, listener, options);\n };\n }\n\n /**\n * Unbind a listener function from an event.\n *\n * @param {string} event\n * Name of the event.\n * @param {EventListenerOrEventListenerObject} listener\n * Function to be removed.\n * @param {boolean|EventListenerOptions} [options]\n * Options for the `removeEventListener` method.\n * @returns {void}\n */\n $off(\n event: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n ) {\n if (isDev) {\n this.__debug('$off', event, listener);\n }\n\n this.__eventHandlers.get(event).delete(listener);\n\n const target = getEventTarget(this, event, this.__config);\n target.removeEventListener(event, listener, options);\n }\n\n /**\n * Emits an event.\n *\n * @param {string} event Name of the event.\n * @param {any[]} args The arguments to apply to the functions bound to this event.\n * @returns {void}\n */\n $emit(event: string, ...args: unknown[]) {\n if (isDev) {\n this.__debug('$emit', event, args);\n }\n\n this.dispatchEvent(new CustomEvent(event, { detail: args }));\n }\n\n /**\n * Register and mount all instances of the component.\n */\n static $register(nameOrSelector?: string): Base[] {\n return getComponentElements(nameOrSelector ?? this.config.name).map((el) =>\n new this(el).$mount(),\n );\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,2 +1,10 @@
1
- export type Features = Record<'asyncChildren', boolean>;
2
- export declare const features: Map<"asyncChildren", boolean>;
1
+ export type Features = {
2
+ asyncChildren: boolean;
3
+ breakpoints: Record<string, string>;
4
+ };
5
+ interface FeaturesMap extends Map<keyof Features, Features[keyof Features]> {
6
+ get<T extends keyof Features>(key: T): Features[T];
7
+ set<T extends keyof Features>(key: T, value: Features[T]): this;
8
+ }
9
+ export declare const features: FeaturesMap;
10
+ export {};
package/Base/features.js CHANGED
@@ -1,4 +1,26 @@
1
- const features = /* @__PURE__ */ new Map([["asyncChildren", false]]);
1
+ const features = /* @__PURE__ */ new Map([
2
+ ["asyncChildren", false],
3
+ [
4
+ "breakpoints",
5
+ {
6
+ xxs: "0rem",
7
+ xs: "30rem",
8
+ // 480px
9
+ s: "48rem",
10
+ // 768px
11
+ m: "64rem",
12
+ // 1024px
13
+ l: "80rem",
14
+ // 1280px
15
+ xl: "90rem",
16
+ // 1440px
17
+ xxl: "120rem",
18
+ // 1920px
19
+ xxxl: "160rem"
20
+ // 2560px
21
+ }
22
+ ]
23
+ ]);
2
24
  export {
3
25
  features
4
26
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../packages/js-toolkit/Base/features.ts"],
4
- "sourcesContent": ["export type Features = Record<'asyncChildren', boolean>;\n\nexport const features = new Map<keyof Features, boolean>([['asyncChildren', false]]);\n"],
5
- "mappings": "AAEO,MAAM,WAAW,oBAAI,IAA6B,CAAC,CAAC,iBAAiB,KAAK,CAAC,CAAC;",
4
+ "sourcesContent": ["export type Features = {\n asyncChildren: boolean;\n breakpoints: Record<string, string>;\n};\n\ninterface FeaturesMap extends Map<keyof Features, Features[keyof Features]> {\n get<T extends keyof Features>(key: T): Features[T];\n set<T extends keyof Features>(key: T, value: Features[T]): this;\n}\n\nexport const features = new Map<keyof Features, Features[keyof Features]>([\n ['asyncChildren', false],\n [\n 'breakpoints',\n {\n xxs: '0rem',\n xs: '30rem', // 480px\n s: '48rem', // 768px\n m: '64rem', // 1024px\n l: '80rem', // 1280px\n xl: '90rem', // 1440px\n xxl: '120rem', // 1920px\n xxxl: '160rem', // 2560px\n },\n ],\n]) as FeaturesMap;\n"],
5
+ "mappings": "AAUO,MAAM,WAAW,oBAAI,IAA8C;AAAA,EACxE,CAAC,iBAAiB,KAAK;AAAA,EACvB;AAAA,IACE;AAAA,IACA;AAAA,MACE,KAAK;AAAA,MACL,IAAI;AAAA;AAAA,MACJ,GAAG;AAAA;AAAA,MACH,GAAG;AAAA;AAAA,MACH,GAAG;AAAA;AAAA,MACH,IAAI;AAAA;AAAA,MACJ,KAAK;AAAA;AAAA,MACL,MAAM;AAAA;AAAA,IACR;AAAA,EACF;AACF,CAAC;",
6
6
  "names": []
7
7
  }
@@ -11,16 +11,16 @@ export declare class AbstractManager {
11
11
  * Get the base instance root element.
12
12
  */
13
13
  get __element(): HTMLElement & {
14
- __base__?: WeakMap<import("../Base.js").BaseConstructor<Base<import("../Base.js").BaseProps>>, Base<import("../Base.js").BaseProps> | "terminated">;
14
+ __base__?: WeakMap<import("Base/Base.js").BaseConstructor<Base<import("Base/Base.js").BaseProps>>, Base<import("Base/Base.js").BaseProps> | "terminated">;
15
15
  };
16
16
  /**
17
17
  * Get the base instance config.
18
18
  */
19
- get __config(): import("../Base.js").BaseConfig;
19
+ get __config(): import("Base/Base.js").BaseConfig;
20
20
  /**
21
21
  * Get the events manager.
22
22
  */
23
- get __eventsManager(): import("./EventsManager.js").EventsManager;
23
+ get __eventsManager(): import("Base/managers/EventsManager.js").EventsManager;
24
24
  /**
25
25
  * Class constructor.
26
26
  */
@@ -1,18 +1,39 @@
1
1
  class AbstractManager {
2
+ /**
3
+ * Base instance.
4
+ */
2
5
  __base;
6
+ /**
7
+ * Get the base instance root element.
8
+ */
3
9
  get __element() {
4
10
  return this.__base.$el;
5
11
  }
12
+ /**
13
+ * Get the base instance config.
14
+ */
6
15
  get __config() {
7
16
  return this.__base.__config;
8
17
  }
18
+ /**
19
+ * Get the events manager.
20
+ */
9
21
  get __eventsManager() {
10
22
  return this.__base.__events;
11
23
  }
24
+ /**
25
+ * Class constructor.
26
+ */
12
27
  constructor(base) {
13
28
  this.__base = base;
14
29
  this.__hideProperties(["__base"]);
15
30
  }
31
+ /**
32
+ * Prevent a list of properties from being enumerable and writable.
33
+ *
34
+ * @param {string[]} properties
35
+ * @returns {void}
36
+ */
16
37
  __hideProperties(properties) {
17
38
  Object.defineProperties(
18
39
  this,
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../packages/js-toolkit/Base/managers/AbstractManager.ts"],
4
4
  "sourcesContent": ["import type { Base } from '../index.js';\n\n/**\n * AbstractManager class.\n */\nexport class AbstractManager {\n /**\n * Base instance.\n */\n __base: Base;\n\n /**\n * Get the base instance root element.\n */\n get __element() {\n return this.__base.$el;\n }\n\n /**\n * Get the base instance config.\n */\n get __config() {\n return this.__base.__config;\n }\n\n /**\n * Get the events manager.\n */\n get __eventsManager() {\n return this.__base.__events;\n }\n\n /**\n * Class constructor.\n */\n constructor(base: Base) {\n this.__base = base;\n this.__hideProperties(['__base']);\n }\n\n /**\n * Prevent a list of properties from being enumerable and writable.\n *\n * @param {string[]} properties\n * @returns {void}\n */\n __hideProperties(properties: string[]) {\n Object.defineProperties(\n this,\n Object.fromEntries(\n properties.map((property) => [\n property,\n {\n enumerable: false,\n writable: false,\n value: this[property],\n },\n ]),\n ),\n );\n }\n}\n"],
5
- "mappings": "AAKO,MAAM,gBAAgB;AAAA,EAI3B;AAAA,EAKA,IAAI,YAAY;AACd,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAKA,IAAI,WAAW;AACb,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAKA,IAAI,kBAAkB;AACpB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAKA,YAAY,MAAY;AACtB,SAAK,SAAS;AACd,SAAK,iBAAiB,CAAC,QAAQ,CAAC;AAAA,EAClC;AAAA,EAQA,iBAAiB,YAAsB;AACrC,WAAO;AAAA,MACL;AAAA,MACA,OAAO;AAAA,QACL,WAAW,IAAI,CAAC,aAAa;AAAA,UAC3B;AAAA,UACA;AAAA,YACE,YAAY;AAAA,YACZ,UAAU;AAAA,YACV,OAAO,KAAK;AAAA,UACd;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AACF;",
5
+ "mappings": "AAKO,MAAM,gBAAgB;AAAA;AAAA;AAAA;AAAA,EAI3B;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,YAAY;AACd,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,WAAW;AACb,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,kBAAkB;AACpB,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA,EAKA,YAAY,MAAY;AACtB,SAAK,SAAS;AACd,SAAK,iBAAiB,CAAC,QAAQ,CAAC;AAAA,EAClC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,iBAAiB,YAAsB;AACrC,WAAO;AAAA,MACL;AAAA,MACA,OAAO;AAAA,QACL,WAAW,IAAI,CAAC,aAAa;AAAA,UAC3B;AAAA,UACA;AAAA,YACE,YAAY;AAAA,YACZ,UAAU;AAAA,YACV,OAAO,KAAK,QAAQ;AAAA,UACtB;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AACF;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,4 @@
1
+ import { AbstractManager } from './AbstractManager.js';
2
+ export declare class ActionManager extends AbstractManager {
3
+ registerAll(): void;
4
+ }
@@ -0,0 +1,10 @@
1
+ import { AbstractManager } from "./AbstractManager.js";
2
+ class ActionManager extends AbstractManager {
3
+ registerAll() {
4
+ this.__element.querySelectorAll("[data-on]");
5
+ }
6
+ }
7
+ export {
8
+ ActionManager
9
+ };
10
+ //# sourceMappingURL=ActionManager.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../packages/js-toolkit/Base/managers/ActionManager.ts"],
4
+ "sourcesContent": ["import { AbstractManager } from './AbstractManager.js';\n\nexport class ActionManager extends AbstractManager {\n registerAll() {\n this.__element.querySelectorAll('[data-on]');\n }\n}\n"],
5
+ "mappings": "AAAA,SAAS,uBAAuB;AAEzB,MAAM,sBAAsB,gBAAgB;AAAA,EACjD,cAAc;AACZ,SAAK,UAAU,iBAAiB,WAAW;AAAA,EAC7C;AACF;",
6
+ "names": []
7
+ }
@@ -49,5 +49,5 @@ export declare class ChildrenManager extends AbstractManager {
49
49
  * @private
50
50
  */
51
51
  __register(name: string, component: BaseConstructor | BaseAsyncConstructor): void;
52
- __getValue(name: string, component: BaseConstructor | BaseAsyncConstructor): (Base<import("../Base.js").BaseProps> | "terminated" | Promise<Base<import("../Base.js").BaseProps> | "terminated">)[];
52
+ __getValue(name: string, component: BaseConstructor | BaseAsyncConstructor): (Base<import("Base/Base.js").BaseProps> | "terminated" | Promise<Base<import("Base/Base.js").BaseProps> | "terminated">)[];
53
53
  }