@semcore/core 17.0.0-prerelease.19 → 17.0.0-prerelease.20-prerelease.20

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 (355) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/lib/LastInteractionType.js +36 -22
  3. package/lib/LastInteractionType.js.map +1 -1
  4. package/lib/LastInteractionType.mjs +33 -19
  5. package/lib/LastInteractionType.mjs.map +1 -1
  6. package/lib/core-types/Component.js +41 -25
  7. package/lib/core-types/Component.js.map +1 -1
  8. package/lib/core-types/Component.mjs +38 -18
  9. package/lib/core-types/Component.mjs.map +1 -1
  10. package/lib/core-types/symbols.js +9 -9
  11. package/lib/core-types/symbols.js.map +1 -1
  12. package/lib/core-types/symbols.mjs +9 -9
  13. package/lib/core-types/symbols.mjs.map +1 -1
  14. package/lib/coreFactory.js +205 -143
  15. package/lib/coreFactory.js.map +1 -1
  16. package/lib/coreFactory.mjs +164 -118
  17. package/lib/coreFactory.mjs.map +1 -1
  18. package/lib/decorators/propsObserver.js +64 -36
  19. package/lib/decorators/propsObserver.js.map +1 -1
  20. package/lib/decorators/propsObserver.mjs +61 -33
  21. package/lib/decorators/propsObserver.mjs.map +1 -1
  22. package/lib/decorators/reactive.js +17 -17
  23. package/lib/decorators/reactive.js.map +1 -1
  24. package/lib/decorators/reactive.mjs +15 -15
  25. package/lib/decorators/reactive.mjs.map +1 -1
  26. package/lib/enhancement/Children.js +59 -51
  27. package/lib/enhancement/Children.js.map +1 -1
  28. package/lib/enhancement/Children.mjs +41 -47
  29. package/lib/enhancement/Children.mjs.map +1 -1
  30. package/lib/enhancement/Root.js +37 -36
  31. package/lib/enhancement/Root.js.map +1 -1
  32. package/lib/enhancement/Root.mjs +18 -28
  33. package/lib/enhancement/Root.mjs.map +1 -1
  34. package/lib/enhancement/dataName.js +8 -7
  35. package/lib/enhancement/dataName.js.map +1 -1
  36. package/lib/enhancement/dataName.mjs +5 -5
  37. package/lib/enhancement/dataName.mjs.map +1 -1
  38. package/lib/enhancement/enhance.js +9 -6
  39. package/lib/enhancement/enhance.js.map +1 -1
  40. package/lib/enhancement/enhance.mjs +7 -5
  41. package/lib/enhancement/enhance.mjs.map +1 -1
  42. package/lib/enhancement/functionDefaultProps.js +6 -6
  43. package/lib/enhancement/functionDefaultProps.js.map +1 -1
  44. package/lib/enhancement/functionDefaultProps.mjs +4 -4
  45. package/lib/enhancement/functionDefaultProps.mjs.map +1 -1
  46. package/lib/enhancement/i18n.js +13 -13
  47. package/lib/enhancement/i18n.js.map +1 -1
  48. package/lib/enhancement/i18n.mjs +9 -10
  49. package/lib/enhancement/i18n.mjs.map +1 -1
  50. package/lib/enhancement/inheritedName.js +8 -7
  51. package/lib/enhancement/inheritedName.js.map +1 -1
  52. package/lib/enhancement/inheritedName.mjs +5 -5
  53. package/lib/enhancement/inheritedName.mjs.map +1 -1
  54. package/lib/enhancement/staticChildren.js +56 -47
  55. package/lib/enhancement/staticChildren.js.map +1 -1
  56. package/lib/enhancement/staticChildren.mjs +48 -43
  57. package/lib/enhancement/staticChildren.mjs.map +1 -1
  58. package/lib/enhancement/style.js +27 -29
  59. package/lib/enhancement/style.js.map +1 -1
  60. package/lib/enhancement/style.mjs +20 -26
  61. package/lib/enhancement/style.mjs.map +1 -1
  62. package/lib/enhancement/uncontrolledProps.js +65 -46
  63. package/lib/enhancement/uncontrolledProps.js.map +1 -1
  64. package/lib/enhancement/uncontrolledProps.mjs +52 -43
  65. package/lib/enhancement/uncontrolledProps.mjs.map +1 -1
  66. package/lib/esm/LastInteractionType.mjs +33 -19
  67. package/lib/esm/core-types/Component.mjs +38 -18
  68. package/lib/esm/core-types/symbols.mjs +9 -9
  69. package/lib/esm/coreFactory.mjs +164 -118
  70. package/lib/esm/enhancement/Children.mjs +41 -47
  71. package/lib/esm/enhancement/Root.mjs +18 -28
  72. package/lib/esm/enhancement/dataName.mjs +5 -5
  73. package/lib/esm/enhancement/enhance.mjs +7 -5
  74. package/lib/esm/enhancement/functionDefaultProps.mjs +4 -4
  75. package/lib/esm/enhancement/i18n.mjs +9 -10
  76. package/lib/esm/enhancement/inheritedName.mjs +5 -5
  77. package/lib/esm/enhancement/staticChildren.mjs +48 -43
  78. package/lib/esm/enhancement/style.mjs +20 -26
  79. package/lib/esm/enhancement/uncontrolledProps.mjs +52 -43
  80. package/lib/esm/register.mjs +20 -12
  81. package/lib/esm/styled/reshadow-core.mjs +111 -98
  82. package/lib/esm/styled/sstyled.mjs +41 -31
  83. package/lib/esm/utils/assignProps.mjs +36 -32
  84. package/lib/esm/utils/enhances/WithI18n.mjs +17 -15
  85. package/lib/esm/utils/enhances/i18nEnhance.mjs +61 -47
  86. package/lib/esm/utils/logger.mjs +21 -13
  87. package/lib/esm/utils/pick.mjs +4 -4
  88. package/lib/esm/utils/ref.mjs +43 -27
  89. package/lib/esm/utils/use/useEnhancedEffect.mjs +1 -1
  90. package/lib/index.js +17 -17
  91. package/lib/register.js +24 -17
  92. package/lib/register.js.map +1 -1
  93. package/lib/register.mjs +20 -12
  94. package/lib/register.mjs.map +1 -1
  95. package/lib/styled/index.js +4 -4
  96. package/lib/styled/reshadow-core.js +104 -102
  97. package/lib/styled/reshadow-core.js.map +1 -1
  98. package/lib/styled/reshadow-core.mjs +111 -98
  99. package/lib/styled/reshadow-core.mjs.map +1 -1
  100. package/lib/styled/sstyled.js +53 -31
  101. package/lib/styled/sstyled.js.map +1 -1
  102. package/lib/styled/sstyled.mjs +41 -31
  103. package/lib/styled/sstyled.mjs.map +1 -1
  104. package/lib/theme/processor.js +222 -150
  105. package/lib/theme/processor.js.map +1 -1
  106. package/lib/theme/processor.mjs +221 -148
  107. package/lib/theme/processor.mjs.map +1 -1
  108. package/lib/theme/themes/dark.js +2 -2
  109. package/lib/theme/themes/dark.js.map +1 -1
  110. package/lib/theme/themes/default.js +2 -2
  111. package/lib/theme/themes/default.js.map +1 -1
  112. package/lib/theme/themes/highlights-dark.js +2 -2
  113. package/lib/theme/themes/highlights-dark.js.map +1 -1
  114. package/lib/theme/themes/highlights-light.js +2 -2
  115. package/lib/theme/themes/highlights-light.js.map +1 -1
  116. package/lib/theme/themes/light.js +2 -2
  117. package/lib/theme/themes/light.js.map +1 -1
  118. package/lib/theme/utils.js +215 -140
  119. package/lib/theme/utils.js.map +1 -1
  120. package/lib/theme/utils.mjs +214 -135
  121. package/lib/theme/utils.mjs.map +1 -1
  122. package/lib/utils/CSSinJS.js +10 -8
  123. package/lib/utils/CSSinJS.js.map +1 -1
  124. package/lib/utils/CSSinJS.mjs +7 -6
  125. package/lib/utils/CSSinJS.mjs.map +1 -1
  126. package/lib/utils/ThemeProvider.js +51 -44
  127. package/lib/utils/ThemeProvider.js.map +1 -1
  128. package/lib/utils/ThemeProvider.mjs +47 -36
  129. package/lib/utils/ThemeProvider.mjs.map +1 -1
  130. package/lib/utils/addonText.js +7 -4
  131. package/lib/utils/addonText.js.map +1 -1
  132. package/lib/utils/addonText.mjs +5 -2
  133. package/lib/utils/addonText.mjs.map +1 -1
  134. package/lib/utils/addonTextChildren.js +21 -15
  135. package/lib/utils/addonTextChildren.js.map +1 -1
  136. package/lib/utils/addonTextChildren.mjs +13 -7
  137. package/lib/utils/addonTextChildren.mjs.map +1 -1
  138. package/lib/utils/ariaProps.js +5 -7
  139. package/lib/utils/ariaProps.js.map +1 -1
  140. package/lib/utils/ariaProps.mjs +5 -7
  141. package/lib/utils/ariaProps.mjs.map +1 -1
  142. package/lib/utils/assignProps.js +37 -33
  143. package/lib/utils/assignProps.js.map +1 -1
  144. package/lib/utils/assignProps.mjs +36 -32
  145. package/lib/utils/assignProps.mjs.map +1 -1
  146. package/lib/utils/canUseDOM.js +1 -1
  147. package/lib/utils/capitalizeFirstLetter.js +1 -1
  148. package/lib/utils/color.js +95 -72
  149. package/lib/utils/color.js.map +1 -1
  150. package/lib/utils/color.mjs +94 -71
  151. package/lib/utils/color.mjs.map +1 -1
  152. package/lib/utils/compose.js +12 -3
  153. package/lib/utils/compose.js.map +1 -1
  154. package/lib/utils/compose.mjs +11 -2
  155. package/lib/utils/compose.mjs.map +1 -1
  156. package/lib/utils/createUUID.js +5 -5
  157. package/lib/utils/createUUID.js.map +1 -1
  158. package/lib/utils/createUUID.mjs +4 -4
  159. package/lib/utils/createUUID.mjs.map +1 -1
  160. package/lib/utils/cssToIntDefault.js +4 -3
  161. package/lib/utils/cssToIntDefault.js.map +1 -1
  162. package/lib/utils/cssToIntDefault.mjs +3 -2
  163. package/lib/utils/cssToIntDefault.mjs.map +1 -1
  164. package/lib/utils/enhances/WithCSS.js +8 -10
  165. package/lib/utils/enhances/WithCSS.js.map +1 -1
  166. package/lib/utils/enhances/WithCSS.mjs +6 -7
  167. package/lib/utils/enhances/WithCSS.mjs.map +1 -1
  168. package/lib/utils/enhances/WithI18n.js +19 -19
  169. package/lib/utils/enhances/WithI18n.js.map +1 -1
  170. package/lib/utils/enhances/WithI18n.mjs +17 -15
  171. package/lib/utils/enhances/WithI18n.mjs.map +1 -1
  172. package/lib/utils/enhances/a11yEnhance.js +39 -34
  173. package/lib/utils/enhances/a11yEnhance.js.map +1 -1
  174. package/lib/utils/enhances/a11yEnhance.mjs +36 -32
  175. package/lib/utils/enhances/a11yEnhance.mjs.map +1 -1
  176. package/lib/utils/enhances/animatedSizeEnhance.js +63 -55
  177. package/lib/utils/enhances/animatedSizeEnhance.js.map +1 -1
  178. package/lib/utils/enhances/animatedSizeEnhance.mjs +58 -50
  179. package/lib/utils/enhances/animatedSizeEnhance.mjs.map +1 -1
  180. package/lib/utils/enhances/contextEnhance.js +11 -12
  181. package/lib/utils/enhances/contextEnhance.js.map +1 -1
  182. package/lib/utils/enhances/contextEnhance.mjs +8 -9
  183. package/lib/utils/enhances/contextEnhance.mjs.map +1 -1
  184. package/lib/utils/enhances/i18nEnhance.js +67 -51
  185. package/lib/utils/enhances/i18nEnhance.js.map +1 -1
  186. package/lib/utils/enhances/i18nEnhance.mjs +61 -47
  187. package/lib/utils/enhances/i18nEnhance.mjs.map +1 -1
  188. package/lib/utils/enhances/resolveColorEnhance.js +10 -12
  189. package/lib/utils/enhances/resolveColorEnhance.js.map +1 -1
  190. package/lib/utils/enhances/resolveColorEnhance.mjs +6 -8
  191. package/lib/utils/enhances/resolveColorEnhance.mjs.map +1 -1
  192. package/lib/utils/eventEmitter.js +57 -30
  193. package/lib/utils/eventEmitter.js.map +1 -1
  194. package/lib/utils/eventEmitter.mjs +55 -26
  195. package/lib/utils/eventEmitter.mjs.map +1 -1
  196. package/lib/utils/findComponent.js +42 -35
  197. package/lib/utils/findComponent.js.map +1 -1
  198. package/lib/utils/findComponent.mjs +33 -26
  199. package/lib/utils/findComponent.mjs.map +1 -1
  200. package/lib/utils/fire.js +13 -7
  201. package/lib/utils/fire.js.map +1 -1
  202. package/lib/utils/fire.mjs +11 -5
  203. package/lib/utils/fire.mjs.map +1 -1
  204. package/lib/utils/focus-lock/focusBorders.js +32 -28
  205. package/lib/utils/focus-lock/focusBorders.js.map +1 -1
  206. package/lib/utils/focus-lock/focusBorders.mjs +32 -26
  207. package/lib/utils/focus-lock/focusBorders.mjs.map +1 -1
  208. package/lib/utils/focus-lock/getFocusableIn.js +6 -4
  209. package/lib/utils/focus-lock/getFocusableIn.js.map +1 -1
  210. package/lib/utils/focus-lock/getFocusableIn.mjs +6 -3
  211. package/lib/utils/focus-lock/getFocusableIn.mjs.map +1 -1
  212. package/lib/utils/focus-lock/isFocusInside.js +6 -5
  213. package/lib/utils/focus-lock/isFocusInside.js.map +1 -1
  214. package/lib/utils/focus-lock/isFocusInside.mjs +6 -4
  215. package/lib/utils/focus-lock/isFocusInside.mjs.map +1 -1
  216. package/lib/utils/focus-lock/isFocusable.js +12 -9
  217. package/lib/utils/focus-lock/isFocusable.js.map +1 -1
  218. package/lib/utils/focus-lock/isFocusable.mjs +11 -8
  219. package/lib/utils/focus-lock/isFocusable.mjs.map +1 -1
  220. package/lib/utils/focus-lock/setFocus.js +27 -21
  221. package/lib/utils/focus-lock/setFocus.js.map +1 -1
  222. package/lib/utils/focus-lock/setFocus.mjs +25 -19
  223. package/lib/utils/focus-lock/setFocus.mjs.map +1 -1
  224. package/lib/utils/getAccessibleName.js +22 -10
  225. package/lib/utils/getAccessibleName.js.map +1 -1
  226. package/lib/utils/getAccessibleName.mjs +21 -10
  227. package/lib/utils/getAccessibleName.mjs.map +1 -1
  228. package/lib/utils/getDisplayName.js +1 -1
  229. package/lib/utils/getEventTarget.js +32 -13
  230. package/lib/utils/getEventTarget.js.map +1 -1
  231. package/lib/utils/getEventTarget.mjs +31 -12
  232. package/lib/utils/getEventTarget.mjs.map +1 -1
  233. package/lib/utils/getOriginChildren.js +4 -4
  234. package/lib/utils/getOriginChildren.js.map +1 -1
  235. package/lib/utils/getRandomInt.js +1 -1
  236. package/lib/utils/getValue.js +6 -4
  237. package/lib/utils/getValue.js.map +1 -1
  238. package/lib/utils/getValue.mjs +5 -3
  239. package/lib/utils/getValue.mjs.map +1 -1
  240. package/lib/utils/hasLabels.js +27 -16
  241. package/lib/utils/hasLabels.js.map +1 -1
  242. package/lib/utils/hasLabels.mjs +24 -14
  243. package/lib/utils/hasLabels.mjs.map +1 -1
  244. package/lib/utils/hasParent.js +2 -3
  245. package/lib/utils/hasParent.js.map +1 -1
  246. package/lib/utils/hasParent.mjs +3 -2
  247. package/lib/utils/hasParent.mjs.map +1 -1
  248. package/lib/utils/ifChildren.js +4 -6
  249. package/lib/utils/ifChildren.js.map +1 -1
  250. package/lib/utils/ifChildren.mjs +2 -4
  251. package/lib/utils/ifChildren.mjs.map +1 -1
  252. package/lib/utils/injectStyle.js +13 -11
  253. package/lib/utils/injectStyle.js.map +1 -1
  254. package/lib/utils/injectStyle.mjs +10 -9
  255. package/lib/utils/injectStyle.mjs.map +1 -1
  256. package/lib/utils/inputProps.js +5 -5
  257. package/lib/utils/inputProps.js.map +1 -1
  258. package/lib/utils/inputProps.mjs +4 -4
  259. package/lib/utils/inputProps.mjs.map +1 -1
  260. package/lib/utils/isInteractiveElement.js +9 -7
  261. package/lib/utils/isInteractiveElement.js.map +1 -1
  262. package/lib/utils/isInteractiveElement.mjs +9 -7
  263. package/lib/utils/isInteractiveElement.mjs.map +1 -1
  264. package/lib/utils/isNode.js +5 -4
  265. package/lib/utils/isNode.js.map +1 -1
  266. package/lib/utils/isNode.mjs +2 -1
  267. package/lib/utils/isNode.mjs.map +1 -1
  268. package/lib/utils/isPromise.js +1 -1
  269. package/lib/utils/isRetina.js +2 -7
  270. package/lib/utils/isRetina.js.map +1 -1
  271. package/lib/utils/isRetina.mjs +1 -6
  272. package/lib/utils/isRetina.mjs.map +1 -1
  273. package/lib/utils/logger.js +25 -18
  274. package/lib/utils/logger.js.map +1 -1
  275. package/lib/utils/logger.mjs +21 -13
  276. package/lib/utils/logger.mjs.map +1 -1
  277. package/lib/utils/numericChecker.js +18 -11
  278. package/lib/utils/numericChecker.js.map +1 -1
  279. package/lib/utils/numericChecker.mjs +17 -10
  280. package/lib/utils/numericChecker.mjs.map +1 -1
  281. package/lib/utils/ownerDocument.js +2 -2
  282. package/lib/utils/ownerDocument.js.map +1 -1
  283. package/lib/utils/ownerDocument.mjs +1 -1
  284. package/lib/utils/ownerDocument.mjs.map +1 -1
  285. package/lib/utils/pick.js +5 -5
  286. package/lib/utils/pick.js.map +1 -1
  287. package/lib/utils/pick.mjs +4 -4
  288. package/lib/utils/pick.mjs.map +1 -1
  289. package/lib/utils/propsForElement.js +12 -10
  290. package/lib/utils/propsForElement.js.map +1 -1
  291. package/lib/utils/propsForElement.mjs +10 -8
  292. package/lib/utils/propsForElement.mjs.map +1 -1
  293. package/lib/utils/rafTrottle.js +14 -9
  294. package/lib/utils/rafTrottle.js.map +1 -1
  295. package/lib/utils/rafTrottle.mjs +12 -7
  296. package/lib/utils/rafTrottle.mjs.map +1 -1
  297. package/lib/utils/reactToText.js +8 -5
  298. package/lib/utils/reactToText.js.map +1 -1
  299. package/lib/utils/reactToText.mjs +6 -3
  300. package/lib/utils/reactToText.mjs.map +1 -1
  301. package/lib/utils/ref.js +47 -29
  302. package/lib/utils/ref.js.map +1 -1
  303. package/lib/utils/ref.mjs +43 -27
  304. package/lib/utils/ref.mjs.map +1 -1
  305. package/lib/utils/setRef.js +2 -2
  306. package/lib/utils/setRef.js.map +1 -1
  307. package/lib/utils/syncScroll.js +24 -24
  308. package/lib/utils/syncScroll.js.map +1 -1
  309. package/lib/utils/syncScroll.mjs +21 -21
  310. package/lib/utils/syncScroll.mjs.map +1 -1
  311. package/lib/utils/uncontroll.js +18 -8
  312. package/lib/utils/uncontroll.js.map +1 -1
  313. package/lib/utils/uncontroll.mjs +17 -8
  314. package/lib/utils/uncontroll.mjs.map +1 -1
  315. package/lib/utils/uniqueID.js +27 -22
  316. package/lib/utils/uniqueID.js.map +1 -1
  317. package/lib/utils/uniqueID.mjs +25 -18
  318. package/lib/utils/uniqueID.mjs.map +1 -1
  319. package/lib/utils/use/useColorResolver.js +21 -20
  320. package/lib/utils/use/useColorResolver.js.map +1 -1
  321. package/lib/utils/use/useColorResolver.mjs +18 -16
  322. package/lib/utils/use/useColorResolver.mjs.map +1 -1
  323. package/lib/utils/use/useEnhancedEffect.js +4 -4
  324. package/lib/utils/use/useEnhancedEffect.js.map +1 -1
  325. package/lib/utils/use/useEnhancedEffect.mjs +1 -1
  326. package/lib/utils/use/useEnhancedEffect.mjs.map +1 -1
  327. package/lib/utils/use/useEventCallback.js +10 -5
  328. package/lib/utils/use/useEventCallback.js.map +1 -1
  329. package/lib/utils/use/useEventCallback.mjs +8 -3
  330. package/lib/utils/use/useEventCallback.mjs.map +1 -1
  331. package/lib/utils/use/useEventListener.js +15 -11
  332. package/lib/utils/use/useEventListener.js.map +1 -1
  333. package/lib/utils/use/useEventListener.mjs +11 -7
  334. package/lib/utils/use/useEventListener.mjs.map +1 -1
  335. package/lib/utils/use/useFocusLock.js +94 -80
  336. package/lib/utils/use/useFocusLock.js.map +1 -1
  337. package/lib/utils/use/useFocusLock.mjs +88 -71
  338. package/lib/utils/use/useFocusLock.mjs.map +1 -1
  339. package/lib/utils/use/usePreventScroll.js +28 -26
  340. package/lib/utils/use/usePreventScroll.js.map +1 -1
  341. package/lib/utils/use/usePreventScroll.mjs +23 -21
  342. package/lib/utils/use/usePreventScroll.mjs.map +1 -1
  343. package/lib/utils/use/useScrollBarWidth.js +14 -8
  344. package/lib/utils/use/useScrollBarWidth.js.map +1 -1
  345. package/lib/utils/use/useScrollBarWidth.mjs +13 -8
  346. package/lib/utils/use/useScrollBarWidth.mjs.map +1 -1
  347. package/lib/utils/useCssVariable.js +37 -32
  348. package/lib/utils/useCssVariable.js.map +1 -1
  349. package/lib/utils/useCssVariable.mjs +34 -27
  350. package/lib/utils/useCssVariable.mjs.map +1 -1
  351. package/lib/utils/zIndexStacking.js +24 -28
  352. package/lib/utils/zIndexStacking.js.map +1 -1
  353. package/lib/utils/zIndexStacking.mjs +22 -23
  354. package/lib/utils/zIndexStacking.mjs.map +1 -1
  355. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"propsObserver.js","names":["propsObserver","propsToWatch","Class","constructor","args","_defineProperty2","default","props","observablePropKeys","length","Object","keys","forEach","key","__observableProps","onPropsChange","_","shouldEmitChanges","changedProps","entries","value","arePropsEqual","is","componentWillUnmount","undefined","render","_default","exports"],"sources":["../../src/decorators/propsObserver.ts"],"sourcesContent":["type WatchedProps<Props> = { [key in keyof Props]?: unknown };\n\ntype Constructor<Props> = new (...args: any[]) => {\n props: Props;\n onPropsChange(changedProps: WatchedProps<Props>): void;\n render(): React.ReactNode;\n componentWillUnmount?(): void;\n};\n\nfunction propsObserver<\n P extends Record<string, any>,\n C extends Constructor<P>,\n>(propsToWatch: Array<keyof P>) {\n return function (Class: C): C & Constructor<P> {\n return class extends Class {\n __observableProps: WatchedProps<P> = {};\n\n constructor(...args: any[]) {\n super(...args);\n\n if (!this.props) return;\n\n const observablePropKeys = propsToWatch.length === 0 ? Object.keys(this.props) : [...propsToWatch];\n\n observablePropKeys.forEach((key) => {\n this.__observableProps[key] = this.props[key];\n });\n }\n\n onPropsChange(_?: WatchedProps<P>) {\n let shouldEmitChanges = false;\n const changedProps: WatchedProps<P> = {};\n\n Object.entries(this.__observableProps).forEach(([key, value]: [key: keyof P, value: unknown]) => {\n const arePropsEqual = Object.is(value, this.props[key]);\n\n if (!arePropsEqual) {\n this.__observableProps[key] = this.props[key];\n changedProps[key] = this.props[key];\n\n shouldEmitChanges = true;\n }\n });\n\n if (!shouldEmitChanges) return;\n\n super.onPropsChange(changedProps);\n }\n\n componentWillUnmount() {\n super.componentWillUnmount?.();\n\n Object.keys(this.__observableProps).forEach((key: keyof P) => {\n this.__observableProps[key] = undefined;\n });\n }\n\n render() {\n this.onPropsChange();\n\n return super.render();\n }\n };\n };\n}\n\nexport default propsObserver;\n"],"mappings":";;;;;;;;AASA,SAASA,aAAaA,CAGpBC,YAA4B,EAAE;EAC9B,OAAO,UAAUC,KAAQ,EAAsB;IAC7C,OAAO,cAAcA,KAAK,CAAC;MAGzBC,WAAWA,CAAC,GAAGC,IAAW,EAAE;QAC1B,KAAK,CAAC,GAAGA,IAAI,CAAC;QAAC,IAAAC,gBAAA,CAAAC,OAAA,6BAHoB,CAAC,CAAC;QAKrC,IAAI,CAAC,IAAI,CAACC,KAAK,EAAE;QAEjB,MAAMC,kBAAkB,GAAGP,YAAY,CAACQ,MAAM,KAAK,CAAC,GAAGC,MAAM,CAACC,IAAI,CAAC,IAAI,CAACJ,KAAK,CAAC,GAAG,CAAC,GAAGN,YAAY,CAAC;QAElGO,kBAAkB,CAACI,OAAO,CAAEC,GAAG,IAAK;UAClC,IAAI,CAACC,iBAAiB,CAACD,GAAG,CAAC,GAAG,IAAI,CAACN,KAAK,CAACM,GAAG,CAAC;QAC/C,CAAC,CAAC;MACJ;MAEAE,aAAaA,CAACC,CAAmB,EAAE;QACjC,IAAIC,iBAAiB,GAAG,KAAK;QAC7B,MAAMC,YAA6B,GAAG,CAAC,CAAC;QAExCR,MAAM,CAACS,OAAO,CAAC,IAAI,CAACL,iBAAiB,CAAC,CAACF,OAAO,CAAC,CAAC,CAACC,GAAG,EAAEO,KAAK,CAAiC,KAAK;UAC/F,MAAMC,aAAa,GAAGX,MAAM,CAACY,EAAE,CAACF,KAAK,EAAE,IAAI,CAACb,KAAK,CAACM,GAAG,CAAC,CAAC;UAEvD,IAAI,CAACQ,aAAa,EAAE;YAClB,IAAI,CAACP,iBAAiB,CAACD,GAAG,CAAC,GAAG,IAAI,CAACN,KAAK,CAACM,GAAG,CAAC;YAC7CK,YAAY,CAACL,GAAG,CAAC,GAAG,IAAI,CAACN,KAAK,CAACM,GAAG,CAAC;YAEnCI,iBAAiB,GAAG,IAAI;UAC1B;QACF,CAAC,CAAC;QAEF,IAAI,CAACA,iBAAiB,EAAE;QAExB,KAAK,CAACF,aAAa,CAACG,YAAY,CAAC;MACnC;MAEAK,oBAAoBA,CAAA,EAAG;QACrB,KAAK,CAACA,oBAAoB,GAAG,CAAC;QAE9Bb,MAAM,CAACC,IAAI,CAAC,IAAI,CAACG,iBAAiB,CAAC,CAACF,OAAO,CAAEC,GAAY,IAAK;UAC5D,IAAI,CAACC,iBAAiB,CAACD,GAAG,CAAC,GAAGW,SAAS;QACzC,CAAC,CAAC;MACJ;MAEAC,MAAMA,CAAA,EAAG;QACP,IAAI,CAACV,aAAa,CAAC,CAAC;QAEpB,OAAO,KAAK,CAACU,MAAM,CAAC,CAAC;MACvB;IACF,CAAC;EACH,CAAC;AACH;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAArB,OAAA,GAEcN,aAAa","ignoreList":[]}
1
+ {"version":3,"file":"propsObserver.js","names":["propsObserver","propsToWatch","Class","_Class2","_class","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","_callSuper2","concat","_defineProperty2","props","_possibleConstructorReturn2","observablePropKeys","Object","keys","_toConsumableArray2","forEach","key","__observableProps","_inherits2","_createClass2","value","onPropsChange","_","_this2","shouldEmitChanges","changedProps","entries","_ref","_ref2","_slicedToArray2","arePropsEqual","is","_superPropGet3","componentWillUnmount","_superPropGet2","_this3","undefined","render","_default","exports"],"sources":["../../src/decorators/propsObserver.ts"],"sourcesContent":["type WatchedProps<Props> = { [key in keyof Props]?: unknown };\n\ntype Constructor<Props> = new (...args: any[]) => {\n props: Props;\n onPropsChange(changedProps: WatchedProps<Props>): void;\n render(): React.ReactNode;\n componentWillUnmount?(): void;\n};\n\nfunction propsObserver<\n P extends Record<string, any>,\n C extends Constructor<P>,\n>(propsToWatch: Array<keyof P>) {\n return function (Class: C): C & Constructor<P> {\n return class extends Class {\n __observableProps: WatchedProps<P> = {};\n\n constructor(...args: any[]) {\n super(...args);\n\n if (!this.props) return;\n\n const observablePropKeys = propsToWatch.length === 0 ? Object.keys(this.props) : [...propsToWatch];\n\n observablePropKeys.forEach((key) => {\n this.__observableProps[key] = this.props[key];\n });\n }\n\n onPropsChange(_?: WatchedProps<P>) {\n let shouldEmitChanges = false;\n const changedProps: WatchedProps<P> = {};\n\n Object.entries(this.__observableProps).forEach(([key, value]: [key: keyof P, value: unknown]) => {\n const arePropsEqual = Object.is(value, this.props[key]);\n\n if (!arePropsEqual) {\n this.__observableProps[key] = this.props[key];\n changedProps[key] = this.props[key];\n\n shouldEmitChanges = true;\n }\n });\n\n if (!shouldEmitChanges) return;\n\n super.onPropsChange(changedProps);\n }\n\n componentWillUnmount() {\n super.componentWillUnmount?.();\n\n Object.keys(this.__observableProps).forEach((key: keyof P) => {\n this.__observableProps[key] = undefined;\n });\n }\n\n render() {\n this.onPropsChange();\n\n return super.render();\n }\n };\n };\n}\n\nexport default propsObserver;\n"],"mappings":"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","ignoreList":[]}
@@ -1,41 +1,69 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
3
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
4
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
5
+ import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
6
+ import _callSuper from "@babel/runtime/helpers/esm/callSuper";
7
+ import _superPropGet from "@babel/runtime/helpers/esm/superPropGet";
8
+ import _inherits from "@babel/runtime/helpers/esm/inherits";
1
9
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
10
  function propsObserver(propsToWatch) {
3
11
  return function (Class) {
4
- return class extends Class {
5
- constructor(...args) {
6
- super(...args);
7
- _defineProperty(this, "__observableProps", {});
8
- if (!this.props) return;
9
- const observablePropKeys = propsToWatch.length === 0 ? Object.keys(this.props) : [...propsToWatch];
10
- observablePropKeys.forEach(key => {
11
- this.__observableProps[key] = this.props[key];
12
+ return /*#__PURE__*/function (_Class2) {
13
+ function _class() {
14
+ var _this;
15
+ _classCallCheck(this, _class);
16
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
17
+ args[_key] = arguments[_key];
18
+ }
19
+ _this = _callSuper(this, _class, [].concat(args));
20
+ _defineProperty(_this, "__observableProps", {});
21
+ if (!_this.props) return _possibleConstructorReturn(_this);
22
+ var observablePropKeys = propsToWatch.length === 0 ? Object.keys(_this.props) : _toConsumableArray(propsToWatch);
23
+ observablePropKeys.forEach(function (key) {
24
+ _this.__observableProps[key] = _this.props[key];
12
25
  });
26
+ return _this;
13
27
  }
14
- onPropsChange(_) {
15
- let shouldEmitChanges = false;
16
- const changedProps = {};
17
- Object.entries(this.__observableProps).forEach(([key, value]) => {
18
- const arePropsEqual = Object.is(value, this.props[key]);
19
- if (!arePropsEqual) {
20
- this.__observableProps[key] = this.props[key];
21
- changedProps[key] = this.props[key];
22
- shouldEmitChanges = true;
23
- }
24
- });
25
- if (!shouldEmitChanges) return;
26
- super.onPropsChange(changedProps);
27
- }
28
- componentWillUnmount() {
29
- super.componentWillUnmount?.();
30
- Object.keys(this.__observableProps).forEach(key => {
31
- this.__observableProps[key] = undefined;
32
- });
33
- }
34
- render() {
35
- this.onPropsChange();
36
- return super.render();
37
- }
38
- };
28
+ _inherits(_class, _Class2);
29
+ return _createClass(_class, [{
30
+ key: "onPropsChange",
31
+ value: function onPropsChange(_) {
32
+ var _this2 = this;
33
+ var shouldEmitChanges = false;
34
+ var changedProps = {};
35
+ Object.entries(this.__observableProps).forEach(function (_ref) {
36
+ var _ref2 = _slicedToArray(_ref, 2),
37
+ key = _ref2[0],
38
+ value = _ref2[1];
39
+ var arePropsEqual = Object.is(value, _this2.props[key]);
40
+ if (!arePropsEqual) {
41
+ _this2.__observableProps[key] = _this2.props[key];
42
+ changedProps[key] = _this2.props[key];
43
+ shouldEmitChanges = true;
44
+ }
45
+ });
46
+ if (!shouldEmitChanges) return;
47
+ _superPropGet(_class, "onPropsChange", this, 3)([changedProps]);
48
+ }
49
+ }, {
50
+ key: "componentWillUnmount",
51
+ value: function componentWillUnmount() {
52
+ var _superPropGet2,
53
+ _this3 = this;
54
+ (_superPropGet2 = _superPropGet(_class, "componentWillUnmount", this, 3)) === null || _superPropGet2 === void 0 || _superPropGet2([]);
55
+ Object.keys(this.__observableProps).forEach(function (key) {
56
+ _this3.__observableProps[key] = undefined;
57
+ });
58
+ }
59
+ }, {
60
+ key: "render",
61
+ value: function render() {
62
+ this.onPropsChange();
63
+ return _superPropGet(_class, "render", this, 3)([]);
64
+ }
65
+ }]);
66
+ }(Class);
39
67
  };
40
68
  }
41
69
  export default propsObserver;
@@ -1 +1 @@
1
- {"version":3,"file":"propsObserver.mjs","names":["propsObserver","propsToWatch","Class","constructor","args","_defineProperty","props","observablePropKeys","length","Object","keys","forEach","key","__observableProps","onPropsChange","_","shouldEmitChanges","changedProps","entries","value","arePropsEqual","is","componentWillUnmount","undefined","render"],"sources":["../../src/decorators/propsObserver.ts"],"sourcesContent":["type WatchedProps<Props> = { [key in keyof Props]?: unknown };\n\ntype Constructor<Props> = new (...args: any[]) => {\n props: Props;\n onPropsChange(changedProps: WatchedProps<Props>): void;\n render(): React.ReactNode;\n componentWillUnmount?(): void;\n};\n\nfunction propsObserver<\n P extends Record<string, any>,\n C extends Constructor<P>,\n>(propsToWatch: Array<keyof P>) {\n return function (Class: C): C & Constructor<P> {\n return class extends Class {\n __observableProps: WatchedProps<P> = {};\n\n constructor(...args: any[]) {\n super(...args);\n\n if (!this.props) return;\n\n const observablePropKeys = propsToWatch.length === 0 ? Object.keys(this.props) : [...propsToWatch];\n\n observablePropKeys.forEach((key) => {\n this.__observableProps[key] = this.props[key];\n });\n }\n\n onPropsChange(_?: WatchedProps<P>) {\n let shouldEmitChanges = false;\n const changedProps: WatchedProps<P> = {};\n\n Object.entries(this.__observableProps).forEach(([key, value]: [key: keyof P, value: unknown]) => {\n const arePropsEqual = Object.is(value, this.props[key]);\n\n if (!arePropsEqual) {\n this.__observableProps[key] = this.props[key];\n changedProps[key] = this.props[key];\n\n shouldEmitChanges = true;\n }\n });\n\n if (!shouldEmitChanges) return;\n\n super.onPropsChange(changedProps);\n }\n\n componentWillUnmount() {\n super.componentWillUnmount?.();\n\n Object.keys(this.__observableProps).forEach((key: keyof P) => {\n this.__observableProps[key] = undefined;\n });\n }\n\n render() {\n this.onPropsChange();\n\n return super.render();\n }\n };\n };\n}\n\nexport default propsObserver;\n"],"mappings":";AASA,SAASA,aAAaA,CAGpBC,YAA4B,EAAE;EAC9B,OAAO,UAAUC,KAAQ,EAAsB;IAC7C,OAAO,cAAcA,KAAK,CAAC;MAGzBC,WAAWA,CAAC,GAAGC,IAAW,EAAE;QAC1B,KAAK,CAAC,GAAGA,IAAI,CAAC;QAACC,eAAA,4BAHoB,CAAC,CAAC;QAKrC,IAAI,CAAC,IAAI,CAACC,KAAK,EAAE;QAEjB,MAAMC,kBAAkB,GAAGN,YAAY,CAACO,MAAM,KAAK,CAAC,GAAGC,MAAM,CAACC,IAAI,CAAC,IAAI,CAACJ,KAAK,CAAC,GAAG,CAAC,GAAGL,YAAY,CAAC;QAElGM,kBAAkB,CAACI,OAAO,CAAEC,GAAG,IAAK;UAClC,IAAI,CAACC,iBAAiB,CAACD,GAAG,CAAC,GAAG,IAAI,CAACN,KAAK,CAACM,GAAG,CAAC;QAC/C,CAAC,CAAC;MACJ;MAEAE,aAAaA,CAACC,CAAmB,EAAE;QACjC,IAAIC,iBAAiB,GAAG,KAAK;QAC7B,MAAMC,YAA6B,GAAG,CAAC,CAAC;QAExCR,MAAM,CAACS,OAAO,CAAC,IAAI,CAACL,iBAAiB,CAAC,CAACF,OAAO,CAAC,CAAC,CAACC,GAAG,EAAEO,KAAK,CAAiC,KAAK;UAC/F,MAAMC,aAAa,GAAGX,MAAM,CAACY,EAAE,CAACF,KAAK,EAAE,IAAI,CAACb,KAAK,CAACM,GAAG,CAAC,CAAC;UAEvD,IAAI,CAACQ,aAAa,EAAE;YAClB,IAAI,CAACP,iBAAiB,CAACD,GAAG,CAAC,GAAG,IAAI,CAACN,KAAK,CAACM,GAAG,CAAC;YAC7CK,YAAY,CAACL,GAAG,CAAC,GAAG,IAAI,CAACN,KAAK,CAACM,GAAG,CAAC;YAEnCI,iBAAiB,GAAG,IAAI;UAC1B;QACF,CAAC,CAAC;QAEF,IAAI,CAACA,iBAAiB,EAAE;QAExB,KAAK,CAACF,aAAa,CAACG,YAAY,CAAC;MACnC;MAEAK,oBAAoBA,CAAA,EAAG;QACrB,KAAK,CAACA,oBAAoB,GAAG,CAAC;QAE9Bb,MAAM,CAACC,IAAI,CAAC,IAAI,CAACG,iBAAiB,CAAC,CAACF,OAAO,CAAEC,GAAY,IAAK;UAC5D,IAAI,CAACC,iBAAiB,CAACD,GAAG,CAAC,GAAGW,SAAS;QACzC,CAAC,CAAC;MACJ;MAEAC,MAAMA,CAAA,EAAG;QACP,IAAI,CAACV,aAAa,CAAC,CAAC;QAEpB,OAAO,KAAK,CAACU,MAAM,CAAC,CAAC;MACvB;IACF,CAAC;EACH,CAAC;AACH;AAEA,eAAexB,aAAa","ignoreList":[]}
1
+ {"version":3,"file":"propsObserver.mjs","names":["propsObserver","propsToWatch","Class","_Class2","_class","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","concat","_defineProperty","props","_possibleConstructorReturn","observablePropKeys","Object","keys","_toConsumableArray","forEach","key","__observableProps","_inherits","_createClass","value","onPropsChange","_","_this2","shouldEmitChanges","changedProps","entries","_ref","_ref2","_slicedToArray","arePropsEqual","is","_superPropGet","componentWillUnmount","_superPropGet2","_this3","undefined","render"],"sources":["../../src/decorators/propsObserver.ts"],"sourcesContent":["type WatchedProps<Props> = { [key in keyof Props]?: unknown };\n\ntype Constructor<Props> = new (...args: any[]) => {\n props: Props;\n onPropsChange(changedProps: WatchedProps<Props>): void;\n render(): React.ReactNode;\n componentWillUnmount?(): void;\n};\n\nfunction propsObserver<\n P extends Record<string, any>,\n C extends Constructor<P>,\n>(propsToWatch: Array<keyof P>) {\n return function (Class: C): C & Constructor<P> {\n return class extends Class {\n __observableProps: WatchedProps<P> = {};\n\n constructor(...args: any[]) {\n super(...args);\n\n if (!this.props) return;\n\n const observablePropKeys = propsToWatch.length === 0 ? Object.keys(this.props) : [...propsToWatch];\n\n observablePropKeys.forEach((key) => {\n this.__observableProps[key] = this.props[key];\n });\n }\n\n onPropsChange(_?: WatchedProps<P>) {\n let shouldEmitChanges = false;\n const changedProps: WatchedProps<P> = {};\n\n Object.entries(this.__observableProps).forEach(([key, value]: [key: keyof P, value: unknown]) => {\n const arePropsEqual = Object.is(value, this.props[key]);\n\n if (!arePropsEqual) {\n this.__observableProps[key] = this.props[key];\n changedProps[key] = this.props[key];\n\n shouldEmitChanges = true;\n }\n });\n\n if (!shouldEmitChanges) return;\n\n super.onPropsChange(changedProps);\n }\n\n componentWillUnmount() {\n super.componentWillUnmount?.();\n\n Object.keys(this.__observableProps).forEach((key: keyof P) => {\n this.__observableProps[key] = undefined;\n });\n }\n\n render() {\n this.onPropsChange();\n\n return super.render();\n }\n };\n };\n}\n\nexport default propsObserver;\n"],"mappings":"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","ignoreList":[]}
@@ -3,27 +3,27 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
7
- const isPrimitiveValue = value => value !== Object(value);
6
+ exports["default"] = void 0;
7
+ var isPrimitiveValue = function isPrimitiveValue(value) {
8
+ return value !== Object(value);
9
+ };
8
10
  function reactive(watchedFieldsOrCb, cb) {
9
11
  return function (_, ctx) {
10
- const {
11
- addInitializer,
12
- name
13
- } = ctx;
12
+ var addInitializer = ctx.addInitializer,
13
+ name = ctx.name;
14
14
  addInitializer(function () {
15
- const thisRoot = this;
16
- const isPrimitive = isPrimitiveValue(this[name]);
17
- const callback = typeof watchedFieldsOrCb === 'function' ? watchedFieldsOrCb : cb;
18
- const fields = Array.isArray(watchedFieldsOrCb) ? watchedFieldsOrCb : null;
15
+ var thisRoot = this;
16
+ var isPrimitive = isPrimitiveValue(this[name]);
17
+ var callback = typeof watchedFieldsOrCb === 'function' ? watchedFieldsOrCb : cb;
18
+ var fields = Array.isArray(watchedFieldsOrCb) ? watchedFieldsOrCb : null;
19
19
  if (isPrimitive) {
20
- let value = this[name];
20
+ var value = this[name];
21
21
  Object.defineProperty(this, name, {
22
- get() {
22
+ get: function get() {
23
23
  return value;
24
24
  },
25
- set(newValue) {
26
- const oldValue = value;
25
+ set: function set(newValue) {
26
+ var oldValue = value;
27
27
  value = newValue;
28
28
  if (oldValue !== newValue) {
29
29
  callback.call(thisRoot, name, newValue);
@@ -35,9 +35,9 @@ function reactive(watchedFieldsOrCb, cb) {
35
35
  } else {
36
36
  // @ts-ignore
37
37
  this[name] = new Proxy(this[name], {
38
- set(target, p, newValue) {
38
+ set: function set(target, p, newValue) {
39
39
  target[p] = newValue;
40
- if (fields?.length === 0 || fields?.includes(p)) {
40
+ if ((fields === null || fields === void 0 ? void 0 : fields.length) === 0 || fields !== null && fields !== void 0 && fields.includes(p)) {
41
41
  callback.call(thisRoot, p, newValue);
42
42
  }
43
43
  return true;
@@ -47,5 +47,5 @@ function reactive(watchedFieldsOrCb, cb) {
47
47
  });
48
48
  };
49
49
  }
50
- var _default = exports.default = reactive;
50
+ var _default = exports["default"] = reactive;
51
51
  //# sourceMappingURL=reactive.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reactive.js","names":["isPrimitiveValue","value","Object","reactive","watchedFieldsOrCb","cb","_","ctx","addInitializer","name","thisRoot","isPrimitive","callback","fields","Array","isArray","defineProperty","get","set","newValue","oldValue","call","enumerable","configurable","Proxy","target","p","length","includes","_default","exports","default"],"sources":["../../src/decorators/reactive.ts"],"sourcesContent":["type Primitive = string | number | boolean | symbol | bigint | null | undefined;\ntype IsReadonly<This, Property extends keyof This> =\n (<F>() => F extends { [P in Property]: This[Property] } ? 1 : 2) extends\n (<F>() => F extends { -readonly [P in Property]: This[Property] } ? 1 : 2)\n ? false\n : true;\ntype Callback<This> = (this: This, field: string | symbol, newValue: unknown) => void;\ntype ReturnType<\n This,\n Property extends keyof This = keyof This,\n> = IsReadonly<This, Property> extends true\n ? (_: undefined, ctx: ClassFieldDecoratorContext<This, This[Property]>) => void\n : This[Property] extends Primitive\n ? (_: undefined, ctx: ClassFieldDecoratorContext<This, This[Property]>) => void\n : never;\n\nconst isPrimitiveValue = (value: unknown) => value !== Object(value);\n\nfunction reactive<\n This,\n Property extends keyof This,\n Value = This[Property],\n>(cb: Value extends Primitive ? Callback<This> : never): ReturnType<This>;\nfunction reactive<\n This,\n Property extends keyof This,\n Value = This[Property],\n>(watchedFields: Value extends Primitive ? never : Array<keyof Value>, cb: Callback<This>): ReturnType<This>;\n\nfunction reactive<\n This,\n Property extends keyof This,\n>(watchedFieldsOrCb: Array<keyof This[Property]> | Callback<This>, cb?: Callback<This>) {\n return function (_: undefined, ctx: ClassFieldDecoratorContext<This, This[Property]>) {\n const { addInitializer, name } = ctx;\n\n addInitializer(function (this: This) {\n const thisRoot = this;\n\n const isPrimitive = isPrimitiveValue(this[name as Property]);\n\n const callback = typeof watchedFieldsOrCb === 'function' ? watchedFieldsOrCb : cb!;\n const fields = Array.isArray(watchedFieldsOrCb) ? watchedFieldsOrCb : null;\n\n if (isPrimitive) {\n let value = this[name as Property];\n\n Object.defineProperty(this, name, {\n get() {\n return value;\n },\n set(newValue) {\n const oldValue = value;\n\n value = newValue;\n\n if (oldValue !== newValue) {\n callback.call(thisRoot, name, newValue);\n }\n },\n enumerable: true,\n configurable: true,\n });\n } else {\n // @ts-ignore\n this[name] = new Proxy(this[name], {\n set(target, p, newValue) {\n target[p] = newValue;\n\n if (fields?.length === 0 || fields?.includes(p as keyof This[Property])) {\n callback.call(thisRoot, p, newValue);\n }\n\n return true;\n },\n });\n }\n });\n };\n}\n\nexport default reactive;\n"],"mappings":";;;;;;AAgBA,MAAMA,gBAAgB,GAAIC,KAAc,IAAKA,KAAK,KAAKC,MAAM,CAACD,KAAK,CAAC;AAapE,SAASE,QAAQA,CAGfC,iBAA+D,EAAEC,EAAmB,EAAE;EACtF,OAAO,UAAUC,CAAY,EAAEC,GAAqD,EAAE;IACpF,MAAM;MAAEC,cAAc;MAAEC;IAAK,CAAC,GAAGF,GAAG;IAEpCC,cAAc,CAAC,YAAsB;MACnC,MAAME,QAAQ,GAAG,IAAI;MAErB,MAAMC,WAAW,GAAGX,gBAAgB,CAAC,IAAI,CAACS,IAAI,CAAa,CAAC;MAE5D,MAAMG,QAAQ,GAAG,OAAOR,iBAAiB,KAAK,UAAU,GAAGA,iBAAiB,GAAGC,EAAG;MAClF,MAAMQ,MAAM,GAAGC,KAAK,CAACC,OAAO,CAACX,iBAAiB,CAAC,GAAGA,iBAAiB,GAAG,IAAI;MAE1E,IAAIO,WAAW,EAAE;QACf,IAAIV,KAAK,GAAG,IAAI,CAACQ,IAAI,CAAa;QAElCP,MAAM,CAACc,cAAc,CAAC,IAAI,EAAEP,IAAI,EAAE;UAChCQ,GAAGA,CAAA,EAAG;YACJ,OAAOhB,KAAK;UACd,CAAC;UACDiB,GAAGA,CAACC,QAAQ,EAAE;YACZ,MAAMC,QAAQ,GAAGnB,KAAK;YAEtBA,KAAK,GAAGkB,QAAQ;YAEhB,IAAIC,QAAQ,KAAKD,QAAQ,EAAE;cACzBP,QAAQ,CAACS,IAAI,CAACX,QAAQ,EAAED,IAAI,EAAEU,QAAQ,CAAC;YACzC;UACF,CAAC;UACDG,UAAU,EAAE,IAAI;UAChBC,YAAY,EAAE;QAChB,CAAC,CAAC;MACJ,CAAC,MAAM;QACL;QACA,IAAI,CAACd,IAAI,CAAC,GAAG,IAAIe,KAAK,CAAC,IAAI,CAACf,IAAI,CAAC,EAAE;UACjCS,GAAGA,CAACO,MAAM,EAAEC,CAAC,EAAEP,QAAQ,EAAE;YACvBM,MAAM,CAACC,CAAC,CAAC,GAAGP,QAAQ;YAEpB,IAAIN,MAAM,EAAEc,MAAM,KAAK,CAAC,IAAId,MAAM,EAAEe,QAAQ,CAACF,CAAyB,CAAC,EAAE;cACvEd,QAAQ,CAACS,IAAI,CAACX,QAAQ,EAAEgB,CAAC,EAAEP,QAAQ,CAAC;YACtC;YAEA,OAAO,IAAI;UACb;QACF,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;EACJ,CAAC;AACH;AAAC,IAAAU,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc5B,QAAQ","ignoreList":[]}
1
+ {"version":3,"file":"reactive.js","names":["isPrimitiveValue","value","Object","reactive","watchedFieldsOrCb","cb","_","ctx","addInitializer","name","thisRoot","isPrimitive","callback","fields","Array","isArray","defineProperty","get","set","newValue","oldValue","call","enumerable","configurable","Proxy","target","p","length","includes","_default","exports"],"sources":["../../src/decorators/reactive.ts"],"sourcesContent":["type Primitive = string | number | boolean | symbol | bigint | null | undefined;\ntype IsReadonly<This, Property extends keyof This> =\n (<F>() => F extends { [P in Property]: This[Property] } ? 1 : 2) extends\n (<F>() => F extends { -readonly [P in Property]: This[Property] } ? 1 : 2)\n ? false\n : true;\ntype Callback<This> = (this: This, field: string | symbol, newValue: unknown) => void;\ntype ReturnType<\n This,\n Property extends keyof This = keyof This,\n> = IsReadonly<This, Property> extends true\n ? (_: undefined, ctx: ClassFieldDecoratorContext<This, This[Property]>) => void\n : This[Property] extends Primitive\n ? (_: undefined, ctx: ClassFieldDecoratorContext<This, This[Property]>) => void\n : never;\n\nconst isPrimitiveValue = (value: unknown) => value !== Object(value);\n\nfunction reactive<\n This,\n Property extends keyof This,\n Value = This[Property],\n>(cb: Value extends Primitive ? Callback<This> : never): ReturnType<This>;\nfunction reactive<\n This,\n Property extends keyof This,\n Value = This[Property],\n>(watchedFields: Value extends Primitive ? never : Array<keyof Value>, cb: Callback<This>): ReturnType<This>;\n\nfunction reactive<\n This,\n Property extends keyof This,\n>(watchedFieldsOrCb: Array<keyof This[Property]> | Callback<This>, cb?: Callback<This>) {\n return function (_: undefined, ctx: ClassFieldDecoratorContext<This, This[Property]>) {\n const { addInitializer, name } = ctx;\n\n addInitializer(function (this: This) {\n const thisRoot = this;\n\n const isPrimitive = isPrimitiveValue(this[name as Property]);\n\n const callback = typeof watchedFieldsOrCb === 'function' ? watchedFieldsOrCb : cb!;\n const fields = Array.isArray(watchedFieldsOrCb) ? watchedFieldsOrCb : null;\n\n if (isPrimitive) {\n let value = this[name as Property];\n\n Object.defineProperty(this, name, {\n get() {\n return value;\n },\n set(newValue) {\n const oldValue = value;\n\n value = newValue;\n\n if (oldValue !== newValue) {\n callback.call(thisRoot, name, newValue);\n }\n },\n enumerable: true,\n configurable: true,\n });\n } else {\n // @ts-ignore\n this[name] = new Proxy(this[name], {\n set(target, p, newValue) {\n target[p] = newValue;\n\n if (fields?.length === 0 || fields?.includes(p as keyof This[Property])) {\n callback.call(thisRoot, p, newValue);\n }\n\n return true;\n },\n });\n }\n });\n };\n}\n\nexport default reactive;\n"],"mappings":";;;;;;AAgBA,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,KAAc;EAAA,OAAKA,KAAK,KAAKC,MAAM,CAACD,KAAK,CAAC;AAAA;AAapE,SAASE,QAAQA,CAGfC,iBAA+D,EAAEC,EAAmB,EAAE;EACtF,OAAO,UAAUC,CAAY,EAAEC,GAAqD,EAAE;IACpF,IAAQC,cAAc,GAAWD,GAAG,CAA5BC,cAAc;MAAEC,IAAI,GAAKF,GAAG,CAAZE,IAAI;IAE5BD,cAAc,CAAC,YAAsB;MACnC,IAAME,QAAQ,GAAG,IAAI;MAErB,IAAMC,WAAW,GAAGX,gBAAgB,CAAC,IAAI,CAACS,IAAI,CAAa,CAAC;MAE5D,IAAMG,QAAQ,GAAG,OAAOR,iBAAiB,KAAK,UAAU,GAAGA,iBAAiB,GAAGC,EAAG;MAClF,IAAMQ,MAAM,GAAGC,KAAK,CAACC,OAAO,CAACX,iBAAiB,CAAC,GAAGA,iBAAiB,GAAG,IAAI;MAE1E,IAAIO,WAAW,EAAE;QACf,IAAIV,KAAK,GAAG,IAAI,CAACQ,IAAI,CAAa;QAElCP,MAAM,CAACc,cAAc,CAAC,IAAI,EAAEP,IAAI,EAAE;UAChCQ,GAAG,WAAHA,GAAGA,CAAA,EAAG;YACJ,OAAOhB,KAAK;UACd,CAAC;UACDiB,GAAG,WAAHA,GAAGA,CAACC,QAAQ,EAAE;YACZ,IAAMC,QAAQ,GAAGnB,KAAK;YAEtBA,KAAK,GAAGkB,QAAQ;YAEhB,IAAIC,QAAQ,KAAKD,QAAQ,EAAE;cACzBP,QAAQ,CAACS,IAAI,CAACX,QAAQ,EAAED,IAAI,EAAEU,QAAQ,CAAC;YACzC;UACF,CAAC;UACDG,UAAU,EAAE,IAAI;UAChBC,YAAY,EAAE;QAChB,CAAC,CAAC;MACJ,CAAC,MAAM;QACL;QACA,IAAI,CAACd,IAAI,CAAC,GAAG,IAAIe,KAAK,CAAC,IAAI,CAACf,IAAI,CAAC,EAAE;UACjCS,GAAG,WAAHA,GAAGA,CAACO,MAAM,EAAEC,CAAC,EAAEP,QAAQ,EAAE;YACvBM,MAAM,CAACC,CAAC,CAAC,GAAGP,QAAQ;YAEpB,IAAI,CAAAN,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEc,MAAM,MAAK,CAAC,IAAId,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEe,QAAQ,CAACF,CAAyB,CAAC,EAAE;cACvEd,QAAQ,CAACS,IAAI,CAACX,QAAQ,EAAEgB,CAAC,EAAEP,QAAQ,CAAC;YACtC;YAEA,OAAO,IAAI;UACb;QACF,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;EACJ,CAAC;AACH;AAAC,IAAAU,QAAA,GAAAC,OAAA,cAEc3B,QAAQ","ignoreList":[]}
@@ -1,23 +1,23 @@
1
- const isPrimitiveValue = value => value !== Object(value);
1
+ var isPrimitiveValue = function isPrimitiveValue(value) {
2
+ return value !== Object(value);
3
+ };
2
4
  function reactive(watchedFieldsOrCb, cb) {
3
5
  return function (_, ctx) {
4
- const {
5
- addInitializer,
6
- name
7
- } = ctx;
6
+ var addInitializer = ctx.addInitializer,
7
+ name = ctx.name;
8
8
  addInitializer(function () {
9
- const thisRoot = this;
10
- const isPrimitive = isPrimitiveValue(this[name]);
11
- const callback = typeof watchedFieldsOrCb === 'function' ? watchedFieldsOrCb : cb;
12
- const fields = Array.isArray(watchedFieldsOrCb) ? watchedFieldsOrCb : null;
9
+ var thisRoot = this;
10
+ var isPrimitive = isPrimitiveValue(this[name]);
11
+ var callback = typeof watchedFieldsOrCb === 'function' ? watchedFieldsOrCb : cb;
12
+ var fields = Array.isArray(watchedFieldsOrCb) ? watchedFieldsOrCb : null;
13
13
  if (isPrimitive) {
14
- let value = this[name];
14
+ var value = this[name];
15
15
  Object.defineProperty(this, name, {
16
- get() {
16
+ get: function get() {
17
17
  return value;
18
18
  },
19
- set(newValue) {
20
- const oldValue = value;
19
+ set: function set(newValue) {
20
+ var oldValue = value;
21
21
  value = newValue;
22
22
  if (oldValue !== newValue) {
23
23
  callback.call(thisRoot, name, newValue);
@@ -29,9 +29,9 @@ function reactive(watchedFieldsOrCb, cb) {
29
29
  } else {
30
30
  // @ts-ignore
31
31
  this[name] = new Proxy(this[name], {
32
- set(target, p, newValue) {
32
+ set: function set(target, p, newValue) {
33
33
  target[p] = newValue;
34
- if (fields?.length === 0 || fields?.includes(p)) {
34
+ if ((fields === null || fields === void 0 ? void 0 : fields.length) === 0 || fields !== null && fields !== void 0 && fields.includes(p)) {
35
35
  callback.call(thisRoot, p, newValue);
36
36
  }
37
37
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"reactive.mjs","names":["isPrimitiveValue","value","Object","reactive","watchedFieldsOrCb","cb","_","ctx","addInitializer","name","thisRoot","isPrimitive","callback","fields","Array","isArray","defineProperty","get","set","newValue","oldValue","call","enumerable","configurable","Proxy","target","p","length","includes"],"sources":["../../src/decorators/reactive.ts"],"sourcesContent":["type Primitive = string | number | boolean | symbol | bigint | null | undefined;\ntype IsReadonly<This, Property extends keyof This> =\n (<F>() => F extends { [P in Property]: This[Property] } ? 1 : 2) extends\n (<F>() => F extends { -readonly [P in Property]: This[Property] } ? 1 : 2)\n ? false\n : true;\ntype Callback<This> = (this: This, field: string | symbol, newValue: unknown) => void;\ntype ReturnType<\n This,\n Property extends keyof This = keyof This,\n> = IsReadonly<This, Property> extends true\n ? (_: undefined, ctx: ClassFieldDecoratorContext<This, This[Property]>) => void\n : This[Property] extends Primitive\n ? (_: undefined, ctx: ClassFieldDecoratorContext<This, This[Property]>) => void\n : never;\n\nconst isPrimitiveValue = (value: unknown) => value !== Object(value);\n\nfunction reactive<\n This,\n Property extends keyof This,\n Value = This[Property],\n>(cb: Value extends Primitive ? Callback<This> : never): ReturnType<This>;\nfunction reactive<\n This,\n Property extends keyof This,\n Value = This[Property],\n>(watchedFields: Value extends Primitive ? never : Array<keyof Value>, cb: Callback<This>): ReturnType<This>;\n\nfunction reactive<\n This,\n Property extends keyof This,\n>(watchedFieldsOrCb: Array<keyof This[Property]> | Callback<This>, cb?: Callback<This>) {\n return function (_: undefined, ctx: ClassFieldDecoratorContext<This, This[Property]>) {\n const { addInitializer, name } = ctx;\n\n addInitializer(function (this: This) {\n const thisRoot = this;\n\n const isPrimitive = isPrimitiveValue(this[name as Property]);\n\n const callback = typeof watchedFieldsOrCb === 'function' ? watchedFieldsOrCb : cb!;\n const fields = Array.isArray(watchedFieldsOrCb) ? watchedFieldsOrCb : null;\n\n if (isPrimitive) {\n let value = this[name as Property];\n\n Object.defineProperty(this, name, {\n get() {\n return value;\n },\n set(newValue) {\n const oldValue = value;\n\n value = newValue;\n\n if (oldValue !== newValue) {\n callback.call(thisRoot, name, newValue);\n }\n },\n enumerable: true,\n configurable: true,\n });\n } else {\n // @ts-ignore\n this[name] = new Proxy(this[name], {\n set(target, p, newValue) {\n target[p] = newValue;\n\n if (fields?.length === 0 || fields?.includes(p as keyof This[Property])) {\n callback.call(thisRoot, p, newValue);\n }\n\n return true;\n },\n });\n }\n });\n };\n}\n\nexport default reactive;\n"],"mappings":"AAgBA,MAAMA,gBAAgB,GAAIC,KAAc,IAAKA,KAAK,KAAKC,MAAM,CAACD,KAAK,CAAC;AAapE,SAASE,QAAQA,CAGfC,iBAA+D,EAAEC,EAAmB,EAAE;EACtF,OAAO,UAAUC,CAAY,EAAEC,GAAqD,EAAE;IACpF,MAAM;MAAEC,cAAc;MAAEC;IAAK,CAAC,GAAGF,GAAG;IAEpCC,cAAc,CAAC,YAAsB;MACnC,MAAME,QAAQ,GAAG,IAAI;MAErB,MAAMC,WAAW,GAAGX,gBAAgB,CAAC,IAAI,CAACS,IAAI,CAAa,CAAC;MAE5D,MAAMG,QAAQ,GAAG,OAAOR,iBAAiB,KAAK,UAAU,GAAGA,iBAAiB,GAAGC,EAAG;MAClF,MAAMQ,MAAM,GAAGC,KAAK,CAACC,OAAO,CAACX,iBAAiB,CAAC,GAAGA,iBAAiB,GAAG,IAAI;MAE1E,IAAIO,WAAW,EAAE;QACf,IAAIV,KAAK,GAAG,IAAI,CAACQ,IAAI,CAAa;QAElCP,MAAM,CAACc,cAAc,CAAC,IAAI,EAAEP,IAAI,EAAE;UAChCQ,GAAGA,CAAA,EAAG;YACJ,OAAOhB,KAAK;UACd,CAAC;UACDiB,GAAGA,CAACC,QAAQ,EAAE;YACZ,MAAMC,QAAQ,GAAGnB,KAAK;YAEtBA,KAAK,GAAGkB,QAAQ;YAEhB,IAAIC,QAAQ,KAAKD,QAAQ,EAAE;cACzBP,QAAQ,CAACS,IAAI,CAACX,QAAQ,EAAED,IAAI,EAAEU,QAAQ,CAAC;YACzC;UACF,CAAC;UACDG,UAAU,EAAE,IAAI;UAChBC,YAAY,EAAE;QAChB,CAAC,CAAC;MACJ,CAAC,MAAM;QACL;QACA,IAAI,CAACd,IAAI,CAAC,GAAG,IAAIe,KAAK,CAAC,IAAI,CAACf,IAAI,CAAC,EAAE;UACjCS,GAAGA,CAACO,MAAM,EAAEC,CAAC,EAAEP,QAAQ,EAAE;YACvBM,MAAM,CAACC,CAAC,CAAC,GAAGP,QAAQ;YAEpB,IAAIN,MAAM,EAAEc,MAAM,KAAK,CAAC,IAAId,MAAM,EAAEe,QAAQ,CAACF,CAAyB,CAAC,EAAE;cACvEd,QAAQ,CAACS,IAAI,CAACX,QAAQ,EAAEgB,CAAC,EAAEP,QAAQ,CAAC;YACtC;YAEA,OAAO,IAAI;UACb;QACF,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;EACJ,CAAC;AACH;AAEA,eAAehB,QAAQ","ignoreList":[]}
1
+ {"version":3,"file":"reactive.mjs","names":["isPrimitiveValue","value","Object","reactive","watchedFieldsOrCb","cb","_","ctx","addInitializer","name","thisRoot","isPrimitive","callback","fields","Array","isArray","defineProperty","get","set","newValue","oldValue","call","enumerable","configurable","Proxy","target","p","length","includes"],"sources":["../../src/decorators/reactive.ts"],"sourcesContent":["type Primitive = string | number | boolean | symbol | bigint | null | undefined;\ntype IsReadonly<This, Property extends keyof This> =\n (<F>() => F extends { [P in Property]: This[Property] } ? 1 : 2) extends\n (<F>() => F extends { -readonly [P in Property]: This[Property] } ? 1 : 2)\n ? false\n : true;\ntype Callback<This> = (this: This, field: string | symbol, newValue: unknown) => void;\ntype ReturnType<\n This,\n Property extends keyof This = keyof This,\n> = IsReadonly<This, Property> extends true\n ? (_: undefined, ctx: ClassFieldDecoratorContext<This, This[Property]>) => void\n : This[Property] extends Primitive\n ? (_: undefined, ctx: ClassFieldDecoratorContext<This, This[Property]>) => void\n : never;\n\nconst isPrimitiveValue = (value: unknown) => value !== Object(value);\n\nfunction reactive<\n This,\n Property extends keyof This,\n Value = This[Property],\n>(cb: Value extends Primitive ? Callback<This> : never): ReturnType<This>;\nfunction reactive<\n This,\n Property extends keyof This,\n Value = This[Property],\n>(watchedFields: Value extends Primitive ? never : Array<keyof Value>, cb: Callback<This>): ReturnType<This>;\n\nfunction reactive<\n This,\n Property extends keyof This,\n>(watchedFieldsOrCb: Array<keyof This[Property]> | Callback<This>, cb?: Callback<This>) {\n return function (_: undefined, ctx: ClassFieldDecoratorContext<This, This[Property]>) {\n const { addInitializer, name } = ctx;\n\n addInitializer(function (this: This) {\n const thisRoot = this;\n\n const isPrimitive = isPrimitiveValue(this[name as Property]);\n\n const callback = typeof watchedFieldsOrCb === 'function' ? watchedFieldsOrCb : cb!;\n const fields = Array.isArray(watchedFieldsOrCb) ? watchedFieldsOrCb : null;\n\n if (isPrimitive) {\n let value = this[name as Property];\n\n Object.defineProperty(this, name, {\n get() {\n return value;\n },\n set(newValue) {\n const oldValue = value;\n\n value = newValue;\n\n if (oldValue !== newValue) {\n callback.call(thisRoot, name, newValue);\n }\n },\n enumerable: true,\n configurable: true,\n });\n } else {\n // @ts-ignore\n this[name] = new Proxy(this[name], {\n set(target, p, newValue) {\n target[p] = newValue;\n\n if (fields?.length === 0 || fields?.includes(p as keyof This[Property])) {\n callback.call(thisRoot, p, newValue);\n }\n\n return true;\n },\n });\n }\n });\n };\n}\n\nexport default reactive;\n"],"mappings":"AAgBA,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,KAAc;EAAA,OAAKA,KAAK,KAAKC,MAAM,CAACD,KAAK,CAAC;AAAA;AAapE,SAASE,QAAQA,CAGfC,iBAA+D,EAAEC,EAAmB,EAAE;EACtF,OAAO,UAAUC,CAAY,EAAEC,GAAqD,EAAE;IACpF,IAAQC,cAAc,GAAWD,GAAG,CAA5BC,cAAc;MAAEC,IAAI,GAAKF,GAAG,CAAZE,IAAI;IAE5BD,cAAc,CAAC,YAAsB;MACnC,IAAME,QAAQ,GAAG,IAAI;MAErB,IAAMC,WAAW,GAAGX,gBAAgB,CAAC,IAAI,CAACS,IAAI,CAAa,CAAC;MAE5D,IAAMG,QAAQ,GAAG,OAAOR,iBAAiB,KAAK,UAAU,GAAGA,iBAAiB,GAAGC,EAAG;MAClF,IAAMQ,MAAM,GAAGC,KAAK,CAACC,OAAO,CAACX,iBAAiB,CAAC,GAAGA,iBAAiB,GAAG,IAAI;MAE1E,IAAIO,WAAW,EAAE;QACf,IAAIV,KAAK,GAAG,IAAI,CAACQ,IAAI,CAAa;QAElCP,MAAM,CAACc,cAAc,CAAC,IAAI,EAAEP,IAAI,EAAE;UAChCQ,GAAG,WAAHA,GAAGA,CAAA,EAAG;YACJ,OAAOhB,KAAK;UACd,CAAC;UACDiB,GAAG,WAAHA,GAAGA,CAACC,QAAQ,EAAE;YACZ,IAAMC,QAAQ,GAAGnB,KAAK;YAEtBA,KAAK,GAAGkB,QAAQ;YAEhB,IAAIC,QAAQ,KAAKD,QAAQ,EAAE;cACzBP,QAAQ,CAACS,IAAI,CAACX,QAAQ,EAAED,IAAI,EAAEU,QAAQ,CAAC;YACzC;UACF,CAAC;UACDG,UAAU,EAAE,IAAI;UAChBC,YAAY,EAAE;QAChB,CAAC,CAAC;MACJ,CAAC,MAAM;QACL;QACA,IAAI,CAACd,IAAI,CAAC,GAAG,IAAIe,KAAK,CAAC,IAAI,CAACf,IAAI,CAAC,EAAE;UACjCS,GAAG,WAAHA,GAAGA,CAACO,MAAM,EAAEC,CAAC,EAAEP,QAAQ,EAAE;YACvBM,MAAM,CAACC,CAAC,CAAC,GAAGP,QAAQ;YAEpB,IAAI,CAAAN,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEc,MAAM,MAAK,CAAC,IAAId,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEe,QAAQ,CAACF,CAAyB,CAAC,EAAE;cACvEd,QAAQ,CAACS,IAAI,CAACX,QAAQ,EAAEgB,CAAC,EAAEP,QAAQ,CAAC;YACtC;YAEA,OAAO,IAAI;UACb;QACF,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;EACJ,CAAC;AACH;AAEA,eAAehB,QAAQ","ignoreList":[]}
@@ -1,16 +1,25 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.default = void 0;
7
+ exports["default"] = void 0;
8
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
9
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
8
12
  var _react = _interopRequireDefault(require("react"));
9
13
  var _symbols = require("../core-types/symbols");
10
- const CHILDREN_SELF = Symbol('CHILDREN_SELF');
11
- const GETTER_REG = /^get[\w]+Props$/;
14
+ var _excluded = ["handlers", "getters"],
15
+ _excluded2 = ["handlers"];
16
+ var CHILDREN_SELF = Symbol('CHILDREN_SELF');
17
+ var GETTER_REG = /^get[\w]+Props$/;
12
18
  function splitPropsAndGetters(props) {
13
- return Object.entries(props).reduce((acc, [key, value]) => {
19
+ return Object.entries(props).reduce(function (acc, _ref) {
20
+ var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
21
+ key = _ref2[0],
22
+ value = _ref2[1];
14
23
  if (GETTER_REG.exec(key) === null) {
15
24
  acc.props[key] = value;
16
25
  } else {
@@ -28,83 +37,82 @@ function getterToArray(getter) {
28
37
  }
29
38
  return getter;
30
39
  }
31
- function mergeObjects(a = {}, b = {}) {
32
- const core = {
33
- ...a,
34
- ...b
35
- };
36
- return Object.keys(core).reduce((acc, key) => {
40
+ function mergeObjects() {
41
+ var a = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
42
+ var b = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
43
+ var core = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, a), b);
44
+ return Object.keys(core).reduce(function (acc, key) {
37
45
  a[key] = getterToArray(a[key]);
38
46
  b[key] = getterToArray(b[key]);
39
- acc[key] = [...a[key], ...b[key]];
47
+ acc[key] = [].concat((0, _toConsumableArray2["default"])(a[key]), (0, _toConsumableArray2["default"])(b[key]));
40
48
  return acc;
41
49
  }, {});
42
50
  }
43
51
  function assignGettersChain(getters) {
44
- return function (props = {}) {
45
- return getters.reduce((acc, getter) => {
52
+ return function () {
53
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
54
+ return getters.reduce(function (acc, getter) {
46
55
  return getter(acc);
47
56
  }, props);
48
57
  };
49
58
  }
50
59
  function createChildren(Context, contexts) {
51
- const Children = function () {
52
- const children = Children.origin;
60
+ var _Children = function Children() {
61
+ var children = _Children.origin;
53
62
  if (typeof children === 'function') {
54
- const {
55
- handlers = {},
56
- getters = {},
57
- ...props
58
- } = [...contexts, Context].reduce((acc, ctx) => {
59
- const {
60
- handlers,
61
- ...propsAndGetters
62
- } = _react.default.useContext(ctx);
63
- const {
64
- props,
65
- getters
66
- } = splitPropsAndGetters(propsAndGetters);
67
- return Object.assign({}, acc, {
68
- handlers: Object.assign({}, acc.handlers, handlers),
69
- getters: mergeObjects(acc.getters, getters),
70
- ...props
71
- });
72
- }, Children.props);
73
- const mergedGetters = Object.entries(getters).reduce((acc, [key, value]) => {
63
+ var _reduce = [].concat((0, _toConsumableArray2["default"])(contexts), [Context]).reduce(function (acc, ctx) {
64
+ var _ref3 = _react["default"].useContext(ctx),
65
+ handlers = _ref3.handlers,
66
+ propsAndGetters = (0, _objectWithoutProperties2["default"])(_ref3, _excluded2);
67
+ var _splitPropsAndGetters = splitPropsAndGetters(propsAndGetters),
68
+ props = _splitPropsAndGetters.props,
69
+ getters = _splitPropsAndGetters.getters;
70
+ return Object.assign({}, acc, (0, _objectSpread2["default"])({
71
+ handlers: Object.assign({}, acc.handlers, handlers),
72
+ getters: mergeObjects(acc.getters, getters)
73
+ }, props));
74
+ }, _Children.props),
75
+ _reduce$handlers = _reduce.handlers,
76
+ handlers = _reduce$handlers === void 0 ? {} : _reduce$handlers,
77
+ _reduce$getters = _reduce.getters,
78
+ getters = _reduce$getters === void 0 ? {} : _reduce$getters,
79
+ props = (0, _objectWithoutProperties2["default"])(_reduce, _excluded);
80
+ var mergedGetters = Object.entries(getters).reduce(function (acc, _ref4) {
81
+ var _ref5 = (0, _slicedToArray2["default"])(_ref4, 2),
82
+ key = _ref5[0],
83
+ value = _ref5[1];
74
84
  acc[key] = assignGettersChain(value);
75
85
  return acc;
76
86
  }, {});
77
- return children({
78
- ...props,
79
- ...mergedGetters
80
- }, handlers);
87
+ return children((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, props), mergedGetters), handlers);
81
88
  } else if (children === undefined) {
82
89
  return null;
83
90
  }
84
91
  return children;
85
92
  };
86
- Children.origin = null;
87
- Children.props = {};
88
- Children[_symbols.CHILDREN_COMPONENT] = true;
89
- return Children;
93
+ _Children.origin = null;
94
+ _Children.props = {};
95
+ _Children[_symbols.CHILDREN_COMPONENT] = true;
96
+ return _Children;
90
97
  }
91
98
  function Enhancement(Context, parent) {
92
99
  return {
93
- init: function () {
94
- const contexts = (Array.isArray(parent) ? parent : [parent]).map(component => component[_symbols.CONTEXT_COMPONENT]).filter(Boolean);
100
+ init: function init() {
101
+ var contexts = (Array.isArray(parent) ? parent : [parent]).map(function (component) {
102
+ return component[_symbols.CONTEXT_COMPONENT];
103
+ }).filter(Boolean);
95
104
  this[CHILDREN_SELF] = createChildren(Context, contexts);
96
105
  },
97
- asProps: function (props) {
106
+ asProps: function asProps(props) {
98
107
  // TODO: learn the reason what it was used for (by lsroman)
99
108
  // this[CHILDREN_SELF].origin = _Children ? _Children.origin : children;
100
109
  this[CHILDREN_SELF].origin = props.children;
101
110
  this[CHILDREN_SELF].props = props;
102
- return {
103
- ...props,
111
+ return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, props), {}, {
104
112
  Children: this[CHILDREN_SELF]
105
- };
113
+ });
106
114
  }
107
115
  };
108
116
  }
109
- var _default = exports.default = Enhancement;
117
+ var _default = exports["default"] = Enhancement;
110
118
  //# sourceMappingURL=Children.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Children.js","names":["_react","_interopRequireDefault","require","_symbols","CHILDREN_SELF","Symbol","GETTER_REG","splitPropsAndGetters","props","Object","entries","reduce","acc","key","value","exec","getters","getterToArray","getter","Array","isArray","mergeObjects","a","b","core","keys","assignGettersChain","createChildren","Context","contexts","Children","children","origin","handlers","ctx","propsAndGetters","React","useContext","assign","mergedGetters","undefined","CHILDREN_COMPONENT","Enhancement","parent","init","map","component","CONTEXT_COMPONENT","filter","Boolean","asProps","_default","exports","default"],"sources":["../../src/enhancement/Children.tsx"],"sourcesContent":["import React from 'react';\n\nimport { CONTEXT_COMPONENT, CHILDREN_COMPONENT } from '../core-types/symbols';\n\nconst CHILDREN_SELF = Symbol('CHILDREN_SELF');\n\nconst GETTER_REG = /^get[\\w]+Props$/;\n\nfunction splitPropsAndGetters(props: any) {\n return Object.entries(props).reduce(\n (acc: any, [key, value]) => {\n if (GETTER_REG.exec(key) === null) {\n acc.props[key] = value;\n } else {\n acc.getters[key] = value;\n }\n return acc;\n },\n { props: {}, getters: {} },\n );\n}\n\nfunction getterToArray(getter: any) {\n if (!Array.isArray(getter)) {\n return typeof getter === 'function' ? [getter] : [];\n }\n return getter;\n}\n\nfunction mergeObjects(a: any = {}, b: any = {}) {\n const core = { ...a, ...b };\n return Object.keys(core).reduce((acc: any, key) => {\n a[key] = getterToArray(a[key]);\n b[key] = getterToArray(b[key]);\n acc[key] = [...a[key], ...b[key]];\n return acc;\n }, {});\n}\n\nfunction assignGettersChain(getters: Array<Function>) {\n return function (props = {}) {\n return getters.reduce((acc, getter) => {\n return getter(acc);\n }, props);\n };\n}\n\nfunction createChildren(Context: any, contexts: any) {\n const Children: any = function () {\n const children = Children.origin;\n if (typeof children === 'function') {\n const {\n handlers = {},\n getters = {},\n ...props\n } = [...contexts, Context].reduce((acc, ctx) => {\n const { handlers, ...propsAndGetters } = React.useContext(ctx) as any;\n const { props, getters } = splitPropsAndGetters(propsAndGetters);\n return Object.assign({}, acc, {\n handlers: Object.assign({}, acc.handlers, handlers),\n getters: mergeObjects(acc.getters, getters),\n ...props,\n });\n }, Children.props);\n\n const mergedGetters = Object.entries(getters).reduce((acc: any, [key, value]) => {\n acc[key] = assignGettersChain(value as []);\n return acc;\n }, {});\n\n return children({ ...props, ...mergedGetters }, handlers);\n } else if (children === undefined) {\n return null;\n }\n return children;\n };\n Children.origin = null;\n Children.props = {};\n Children[CHILDREN_COMPONENT] = true;\n return Children;\n}\n\nfunction Enhancement(this: any, Context: any, parent: any) {\n return {\n init: function (this: any) {\n const contexts = (Array.isArray(parent) ? parent : [parent])\n .map((component) => component[CONTEXT_COMPONENT])\n .filter(Boolean);\n this[CHILDREN_SELF] = createChildren(Context, contexts);\n },\n asProps: function (this: any, props: any) {\n // TODO: learn the reason what it was used for (by lsroman)\n // this[CHILDREN_SELF].origin = _Children ? _Children.origin : children;\n this[CHILDREN_SELF].origin = props.children;\n this[CHILDREN_SELF].props = props;\n return {\n ...props,\n Children: this[CHILDREN_SELF],\n };\n },\n };\n}\n\nexport default Enhancement;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Children.js","names":["_react","_interopRequireDefault","require","_symbols","_excluded","_excluded2","CHILDREN_SELF","Symbol","GETTER_REG","splitPropsAndGetters","props","Object","entries","reduce","acc","_ref","_ref2","_slicedToArray2","key","value","exec","getters","getterToArray","getter","Array","isArray","mergeObjects","a","arguments","length","undefined","b","core","_objectSpread2","keys","concat","_toConsumableArray2","assignGettersChain","createChildren","Context","contexts","Children","children","origin","_reduce","ctx","_ref3","React","useContext","handlers","propsAndGetters","_objectWithoutProperties2","_splitPropsAndGetters","assign","_reduce$handlers","_reduce$getters","mergedGetters","_ref4","_ref5","CHILDREN_COMPONENT","Enhancement","parent","init","map","component","CONTEXT_COMPONENT","filter","Boolean","asProps","_default","exports"],"sources":["../../src/enhancement/Children.tsx"],"sourcesContent":["import React from 'react';\n\nimport { CONTEXT_COMPONENT, CHILDREN_COMPONENT } from '../core-types/symbols';\n\nconst CHILDREN_SELF = Symbol('CHILDREN_SELF');\n\nconst GETTER_REG = /^get[\\w]+Props$/;\n\nfunction splitPropsAndGetters(props: any) {\n return Object.entries(props).reduce(\n (acc: any, [key, value]) => {\n if (GETTER_REG.exec(key) === null) {\n acc.props[key] = value;\n } else {\n acc.getters[key] = value;\n }\n return acc;\n },\n { props: {}, getters: {} },\n );\n}\n\nfunction getterToArray(getter: any) {\n if (!Array.isArray(getter)) {\n return typeof getter === 'function' ? [getter] : [];\n }\n return getter;\n}\n\nfunction mergeObjects(a: any = {}, b: any = {}) {\n const core = { ...a, ...b };\n return Object.keys(core).reduce((acc: any, key) => {\n a[key] = getterToArray(a[key]);\n b[key] = getterToArray(b[key]);\n acc[key] = [...a[key], ...b[key]];\n return acc;\n }, {});\n}\n\nfunction assignGettersChain(getters: Array<Function>) {\n return function (props = {}) {\n return getters.reduce((acc, getter) => {\n return getter(acc);\n }, props);\n };\n}\n\nfunction createChildren(Context: any, contexts: any) {\n const Children: any = function () {\n const children = Children.origin;\n if (typeof children === 'function') {\n const {\n handlers = {},\n getters = {},\n ...props\n } = [...contexts, Context].reduce((acc, ctx) => {\n const { handlers, ...propsAndGetters } = React.useContext(ctx) as any;\n const { props, getters } = splitPropsAndGetters(propsAndGetters);\n return Object.assign({}, acc, {\n handlers: Object.assign({}, acc.handlers, handlers),\n getters: mergeObjects(acc.getters, getters),\n ...props,\n });\n }, Children.props);\n\n const mergedGetters = Object.entries(getters).reduce((acc: any, [key, value]) => {\n acc[key] = assignGettersChain(value as []);\n return acc;\n }, {});\n\n return children({ ...props, ...mergedGetters }, handlers);\n } else if (children === undefined) {\n return null;\n }\n return children;\n };\n Children.origin = null;\n Children.props = {};\n Children[CHILDREN_COMPONENT] = true;\n return Children;\n}\n\nfunction Enhancement(this: any, Context: any, parent: any) {\n return {\n init: function (this: any) {\n const contexts = (Array.isArray(parent) ? parent : [parent])\n .map((component) => component[CONTEXT_COMPONENT])\n .filter(Boolean);\n this[CHILDREN_SELF] = createChildren(Context, contexts);\n },\n asProps: function (this: any, props: any) {\n // TODO: learn the reason what it was used for (by lsroman)\n // this[CHILDREN_SELF].origin = _Children ? _Children.origin : children;\n this[CHILDREN_SELF].origin = props.children;\n this[CHILDREN_SELF].props = props;\n return {\n ...props,\n Children: this[CHILDREN_SELF],\n };\n },\n };\n}\n\nexport default Enhancement;\n"],"mappings":"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","ignoreList":[]}